From 216e61afbe72463bc9832ec3055c134fe6b4c415 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo Date: Fri, 2 Aug 2024 12:06:58 +0200 Subject: [PATCH 1/9] Fix jsx test --- lib/test/__snapshots__/browser.test.ts.snap | 16 ++++++++++++++-- lib/test/annotations.ts | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/test/__snapshots__/browser.test.ts.snap b/lib/test/__snapshots__/browser.test.ts.snap index 222c940..2ee8fc4 100644 --- a/lib/test/__snapshots__/browser.test.ts.snap +++ b/lib/test/__snapshots__/browser.test.ts.snap @@ -837,13 +837,25 @@ exports[`extract annottations from jsx 1`] = ` exports[`extract annottations from jsx 2`] = ` { - "lang": "mdx", + "lang": "jsx", "lines": [ { "lineNumber": 1, "tokens": [ { - "content": "const x = ", + "content": "const ", + "style": { + "color": "#569CD6", + }, + }, + { + "content": "x", + "style": { + "color": "#4FC1FF", + }, + }, + { + "content": " = ", "style": { "color": "#D4D4D4", }, diff --git a/lib/test/annotations.ts b/lib/test/annotations.ts index a122f73..f463212 100644 --- a/lib/test/annotations.ts +++ b/lib/test/annotations.ts @@ -74,7 +74,7 @@ const x =
const result = await extractAnnotations(code, "jsx", ["foo"]); expect(result).toMatchSnapshot(); - const hResult = await highlight(result.code, "mdx", "dark-plus", { + const hResult = await highlight(result.code, "jsx", "dark-plus", { annotations: result.annotations, }); expect(hResult).toMatchSnapshot(); From 73975a28c8a637ebe65ccf766abf1b56b7217d2b Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo Date: Fri, 2 Aug 2024 13:47:31 +0200 Subject: [PATCH 2/9] Remove cjs --- lib/dist/index.cjs.js | 1 - lib/test/__snapshots__/esm.test.ts.snap | 16 ++++++++++++++-- lib/test/cjs.test.ts | 7 ------- 3 files changed, 14 insertions(+), 10 deletions(-) delete mode 100644 lib/dist/index.cjs.js delete mode 100644 lib/test/cjs.test.ts diff --git a/lib/dist/index.cjs.js b/lib/dist/index.cjs.js deleted file mode 100644 index 6cc7f65..0000000 --- a/lib/dist/index.cjs.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";function A(A){if(A&&A.__esModule)return A;var B=Object.create(null);return A&&Object.keys(A).forEach((function(Q){if("default"!==Q){var g=Object.getOwnPropertyDescriptor(A,Q);Object.defineProperty(B,Q,g.get?g:{enumerable:!0,get:function(){return A[Q]}})}})),B.default=A,Object.freeze(B)}function B(A,B){var Q=require("fs"),g=require("path"),E=g.parse,C=require("os");var I=function(A,B){var Q="/";/^([A-Za-z]:)/.test(A)?Q="":/^\\\\/.test(A)&&(Q="\\\\");for(var C=[A],I=E(A);I.dir!==C[C.length-1];)C.push(I.dir),I=E(I.dir);return C.reduce((function(A,E){return A.concat(B.map((function(A){return g.resolve(Q,E,A)})))}),[])};const D=C.homedir||function(){var A=process.env.HOME,B=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;return"win32"===process.platform?process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||A||null:"darwin"===process.platform?A||(B?"/Users/"+B:null):"linux"===process.platform?A||(0===process.getuid()?"/root":B?"/home/"+B:null):A||null};var w="win32"!==process.platform&&Q.realpathSync&&"function"==typeof Q.realpathSync.native?Q.realpathSync.native:Q.realpathSync,o=D(),s=function(A,B,Q){return Q&&!1===Q.preserveSymlinks?A(B):B},e=function(A,B,Q){for(var E=function(A,B,Q){var g=B&&B.moduleDirectory?[].concat(B.moduleDirectory):["node_modules"];if(B&&"function"==typeof B.paths)return B.paths(Q,A,(function(){return I(A,g)}),B);var E=I(A,g);return B&&B.paths?E.concat(B.paths):E}(B,Q,A),C=0;CA.promises)),C=await Promise.resolve().then((function(){return A(require("path"))})),{URL:I}=await Promise.resolve().then((function(){return A(require("url"))})),D=new I(".","undefined"==typeof document?new(require("url").URL)("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("index.cjs.js",document.baseURI).href).pathname;try{let A=C.resolve(D,"..",Q),B=C.resolve(A,g);const I=await E.readFile(B,"utf8");if(!I)throw new Error("no results");return JSON.parse(I)}catch(A){const I=B("@code-hike/lighter",{basedir:D});let w=C.resolve(I,"..","..",Q),o=C.resolve(w,g);return JSON.parse(await E.readFile(o,"utf8"))}}async function g(B){if("function"==typeof fetch){const A=await fetch(`https://lighter.codehike.org/${B}.json`);return await A.json()}const Q=await Promise.resolve().then((function(){return A(require("https"))})),g={host:"lighter.codehike.org",path:`/${B}.json`,method:"GET"};return new Promise(((A,B)=>{const E=Q.request(g,(B=>{let Q="";B.on("data",(A=>{Q+=A})),B.on("end",(()=>{A(JSON.parse(Q))}))}));E.on("error",(A=>{B(A)})),E.end()}))}Object.defineProperty(exports,"__esModule",{value:!0});const E=A=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(A),C=(A,B)=>A.match(new RegExp(`.{${B}}`,"g")),I=A=>parseInt(A.repeat(2/A.length),16);function D(A,B){return void 0!==A?A/255:"number"!=typeof B||B<0||B>1?1:B}function w(A,B){if(!A)return A;const{r:Q,g:g,b:w,a:o}=function(A){if(!A)return;if(!E(A))throw new Error("Invalid color string, must be a valid hex color");const B=Math.floor((A.length-1)/3),Q=C(A.slice(1),B),[g,w,o,s]=Q.map(I);return{r:g,g:w,b:o,a:D(s,1)}}(A);return function(A){if(!A)return;const{r:B,g:Q,b:g,a:E}=A,C=Math.round(255*E);return`#${B.toString(16).padStart(2,"0")}${Q.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${C.toString(16).padStart(2,"0")}`}({r:Q,g:g,b:w,a:o*B})}function o(A,B){const Q=A.colors||{};if(Q[B])return Q[B];const g=e[B];if(!g)throw new Error(`Unknown theme color key: ${B}`);return"string"==typeof g?o(A,g):function(A,B){const Q=B[A.type];if(Array.isArray(Q)){const[B,g,...E]=Q;return B(o(A,g),...E)}return Q}(A,g)}const s="#6FC3DF",e={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:s},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[w,"tab.activeForeground",.5],light:[w,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:s},"tab.activeBorderTop":{hc:s},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:s},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:s},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:s},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[w,"editor.background",.9],light:[w,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},c=new Map,i=new Map;async function t(A){if("string"==typeof A){const B=A;if(!h.includes(B))throw new n(B);if(!c.has(B)){const A=async function(A){try{return await Q("themes",A+".json")}catch(B){return await g(`themes/${A}`)}}(B).then((A=>(i.set(B,A),A)));c.set(B,A)}return c.get(B)}return A}function M(A){let B=null;if("string"==typeof A){if(B=i.get(A),!B)throw new Error("Syntax highlighting error: theme not loaded")}else B=A;return function(A){if(!A)return;const B=A.settings||A.tokenColors||[],Q={name:A.name||"unknown-theme",type:a(A),foreground:"",background:"",settings:B,colors:A.colors||{},colorNames:A.colorNames},g=B.find((A=>!A.scope));if(g){const{foreground:A,background:B}=(null==g?void 0:g.settings)||{},E={};A&&!Q.colors["editor.foreground"]&&(E["editor.foreground"]=A),B&&!Q.colors["editor.background"]&&(E["editor.background"]=B),Object.keys(E).length>0&&(Q.colors=Object.assign(Object.assign({},Q.colors),E)),Q.foreground=A,Q.background=B}g||(Q.settings=[{settings:{foreground:o(Q,"editor.foreground"),background:o(Q,"editor.background")}},...Q.settings]);if(Q.background=Q.background||o(Q,"editor.background"),Q.foreground=Q.foreground||o(Q,"editor.foreground"),"from-css"===A.type&&!Q.colorNames){const A={};let B=0;Q.settings=Q.settings.map((Q=>{const g=Object.assign(Object.assign({},Q),{settings:Object.assign({},Q.settings)}),{foreground:E,background:C}=g.settings||{};return E&&!A[E]&&(A[E]=`#${B.toString(16).padStart(6,"0")}`,B++),C&&!A[C]&&(A[C]=`#${B.toString(16).padStart(6,"0")}`,B++),E&&(g.settings.foreground=A[E]),C&&(g.settings.background=A[C]),g})),Q.colorNames=A}return Q}(B)}function a(A){var B;if("from-css"===A.type)return"from-css";return"light"===(A.type?A.type:(null===(B=A.name)||void 0===B?void 0:B.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const h=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class n extends Error{constructor(A){super(`Unknown theme: ${A}`),this.theme=A}}function r(A){const B=B=>"colorScheme"===B?function(A){return"from-css"===A.type?"var(--ch-0)":A.type}(A):"foreground"===B?A.foreground:"background"===B?A.background:o(A,B);return{colorScheme:B("colorScheme"),foreground:B("foreground"),background:B("background"),lighter:{inlineBackground:B("lighter.inlineBackground")},editor:{background:B("editor.background"),foreground:B("editor.foreground"),lineHighlightBackground:B("editor.lineHighlightBackground"),rangeHighlightBackground:B("editor.rangeHighlightBackground"),infoForeground:B("editor.infoForeground"),selectionBackground:B("editor.selectionBackground")},focusBorder:B("focusBorder"),tab:{activeBackground:B("tab.activeBackground"),activeForeground:B("tab.activeForeground"),inactiveBackground:B("tab.inactiveBackground"),inactiveForeground:B("tab.inactiveForeground"),border:B("tab.border"),activeBorder:B("tab.activeBorder"),activeBorderTop:B("tab.activeBorderTop")},editorGroup:{border:B("editorGroup.border")},editorGroupHeader:{tabsBackground:B("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:B("editorLineNumber.foreground")},input:{background:B("input.background"),foreground:B("input.foreground"),border:B("input.border")},icon:{foreground:B("icon.foreground")},sideBar:{background:B("sideBar.background"),foreground:B("sideBar.foreground"),border:B("sideBar.border")},list:{activeSelectionBackground:B("list.activeSelectionBackground"),activeSelectionForeground:B("list.activeSelectionForeground"),hoverBackground:B("list.hoverBackground"),hoverForeground:B("list.hoverForeground")}}}const F={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",cpp:"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",cue:"source.cue",cypher:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile","dream-maker":"source.dm",elixir:"source.elixir",elm:"source.elm",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fish:"source.fish",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase","glimmer-js":"source.gjs","glimmer-ts":"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic",http:"source.http",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js","jinja-html":"text.html.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",kotlin:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",less:"source.css.less",liquid:"text.html.liquid",lisp:"source.lisp",logo:"source.logo",lua:"source.lua",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdx:"source.mdx",mermaid:"source.mermaid",narrat:"source.narrat",nextflow:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",polar:"source.polar",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",r:"source.r",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",console:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",sparql:"source.sparql",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",tasl:"source.tasl",tcl:"source.tcl",tex:"text.tex",toml:"source.toml",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",v:"source.v",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml","vue-html":"text.html.vue-html",vue:"source.vue",vyper:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wolfram:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript"},G={"source.abap":{id:"abap",path:"abap.tmLanguage.json",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",path:"actionscript-3.tmLanguage.json",embeddedScopes:[]},"source.ada":{id:"ada",path:"ada.tmLanguage.json",embeddedScopes:[]},"source.apacheconf":{id:"apache",path:"apache.tmLanguage.json",embeddedScopes:[]},"source.apex":{id:"apex",path:"apex.tmLanguage.json",embeddedScopes:[]},"source.apl":{id:"apl",path:"apl.tmLanguage.json",embeddedScopes:["source.java","source.json","source.js","source.css","text.xml","text.html.basic"]},"source.applescript":{id:"applescript",path:"applescript.tmLanguage.json",embeddedScopes:[]},"source.ara":{id:"ara",path:"ara.tmLanguage.json",embeddedScopes:[]},"source.asm.x86_64":{id:"asm",path:"asm.tmLanguage.json",embeddedScopes:[]},"source.astro":{id:"astro",path:"astro.tmLanguage.json",embeddedScopes:["source.tsx","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.ts","source.js","source.json"]},"source.awk":{id:"awk",path:"awk.tmLanguage.json",embeddedScopes:[]},"source.ballerina":{id:"ballerina",path:"ballerina.tmLanguage.json",embeddedScopes:[]},"source.batchfile":{id:"bat",path:"bat.tmLanguage.json",embeddedScopes:[]},"text.beancount":{id:"beancount",path:"beancount.tmLanguage.json",embeddedScopes:[]},"source.berry":{id:"berry",path:"berry.tmLanguage.json",embeddedScopes:[]},"text.bibtex":{id:"bibtex",path:"bibtex.tmLanguage.json",embeddedScopes:[]},"source.bicep":{id:"bicep",path:"bicep.tmLanguage.json",embeddedScopes:[]},"text.html.php.blade":{id:"blade",path:"blade.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.c":{id:"c",path:"c.tmLanguage.json",embeddedScopes:[]},"source.cadence":{id:"cadence",path:"cadence.tmLanguage.json",embeddedScopes:[]},"source.clar":{id:"clarity",path:"clarity.tmLanguage.json",embeddedScopes:[]},"source.clojure":{id:"clojure",path:"clojure.tmLanguage.json",embeddedScopes:[]},"source.cmake":{id:"cmake",path:"cmake.tmLanguage.json",embeddedScopes:[]},"source.cobol":{id:"cobol",path:"cobol.tmLanguage.json",embeddedScopes:["source.css","source.js","source.java","text.html.basic","source.sql"]},"source.ql":{id:"codeql",path:"codeql.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.coffee":{id:"coffee",path:"coffee.tmLanguage.json",embeddedScopes:["source.js"]},"source.cpp":{id:"cpp",path:"cpp.tmLanguage.json",embeddedScopes:["source.c","source.sql","source.glsl"]},"source.crystal":{id:"crystal",path:"crystal.tmLanguage.json",embeddedScopes:["source.shell","source.js","source.c","source.css","source.sql","text.html.basic"]},"source.cs":{id:"csharp",path:"csharp.tmLanguage.json",embeddedScopes:[]},"source.css":{id:"css",path:"css.tmLanguage.json",embeddedScopes:[]},"source.cue":{id:"cue",path:"cue.tmLanguage.json",embeddedScopes:[]},"source.cypher":{id:"cypher",path:"cypher.tmLanguage.json",embeddedScopes:[]},"source.d":{id:"d",path:"d.tmLanguage.json",embeddedScopes:[]},"source.dart":{id:"dart",path:"dart.tmLanguage.json",embeddedScopes:[]},"source.dax":{id:"dax",path:"dax.tmLanguage.json",embeddedScopes:[]},"source.diff":{id:"diff",path:"diff.tmLanguage.json",embeddedScopes:[]},"source.dockerfile":{id:"docker",path:"docker.tmLanguage.json",embeddedScopes:[]},"source.dm":{id:"dream-maker",path:"dream-maker.tmLanguage.json",embeddedScopes:[]},"source.elixir":{id:"elixir",path:"elixir.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.elm":{id:"elm",path:"elm.tmLanguage.json",embeddedScopes:["source.c","source.glsl"]},"text.html.erb":{id:"erb",path:"erb.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.sql","text.xml","source.css","source.js","source.ruby","text.html.basic"]},"source.erlang":{id:"erlang",path:"erlang.tmLanguage.json",embeddedScopes:[]},"source.fish":{id:"fish",path:"fish.tmLanguage.json",embeddedScopes:[]},"source.fsharp":{id:"fsharp",path:"fsharp.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.gdresource":{id:"gdresource",path:"gdresource.tmLanguage.json",embeddedScopes:["source.gdscript","source.gdshader"]},"source.gdscript":{id:"gdscript",path:"gdscript.tmLanguage.json",embeddedScopes:[]},"source.gdshader":{id:"gdshader",path:"gdshader.tmLanguage.json",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",path:"gherkin.tmLanguage.json",embeddedScopes:[]},"text.git-commit":{id:"git-commit",path:"git-commit.tmLanguage.json",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",path:"git-rebase.tmLanguage.json",embeddedScopes:["source.shell"]},"source.gjs":{id:"glimmer-js",path:"glimmer-js.tmLanguage.json",embeddedScopes:["source.yaml","source.css","text.html.basic","text.html.handlebars","source.js"]},"source.gts":{id:"glimmer-ts",path:"glimmer-ts.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic","text.html.handlebars","source.ts"]},"source.glsl":{id:"glsl",path:"glsl.tmLanguage.json",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",path:"gnuplot.tmLanguage.json",embeddedScopes:[]},"source.go":{id:"go",path:"go.tmLanguage.json",embeddedScopes:[]},"source.graphql":{id:"graphql",path:"graphql.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js"]},"source.groovy":{id:"groovy",path:"groovy.tmLanguage.json",embeddedScopes:[]},"source.hack":{id:"hack",path:"hack.tmLanguage.json",embeddedScopes:["source.css","source.js","source.sql","text.html.basic"]},"text.haml":{id:"haml",path:"haml.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.php","source.r","source.perl","source.makefile","source.java","source.ini","source.lua","source.shell","source.c","source.sql","text.xml","text.html.basic","source.css","text.html.markdown","source.coffee","source.sass","source.js","source.ruby"]},"text.html.handlebars":{id:"handlebars",path:"handlebars.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic"]},"source.haskell":{id:"haskell",path:"haskell.tmLanguage.json",embeddedScopes:[]},"source.hcl":{id:"hcl",path:"hcl.tmLanguage.json",embeddedScopes:[]},"source.hjson":{id:"hjson",path:"hjson.tmLanguage.json",embeddedScopes:[]},"source.hlsl":{id:"hlsl",path:"hlsl.tmLanguage.json",embeddedScopes:[]},"text.html.basic":{id:"html",path:"html.tmLanguage.json",embeddedScopes:["source.css","source.js"]},"source.http":{id:"http",path:"http.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js","source.java","source.graphql","text.xml","source.json","source.shell"]},"source.imba":{id:"imba",path:"imba.tmLanguage.json",embeddedScopes:[]},"source.ini":{id:"ini",path:"ini.tmLanguage.json",embeddedScopes:[]},"source.java":{id:"java",path:"java.tmLanguage.json",embeddedScopes:[]},"source.js":{id:"javascript",path:"javascript.tmLanguage.json",embeddedScopes:[]},"text.html.jinja":{id:"jinja-html",path:"jinja-html.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.jison":{id:"jison",path:"jison.tmLanguage.json",embeddedScopes:["source.js"]},"source.json":{id:"json",path:"json.tmLanguage.json",embeddedScopes:[]},"source.json5":{id:"json5",path:"json5.tmLanguage.json",embeddedScopes:[]},"source.json.comments":{id:"jsonc",path:"jsonc.tmLanguage.json",embeddedScopes:[]},"source.json.lines":{id:"jsonl",path:"jsonl.tmLanguage.json",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",path:"jsonnet.tmLanguage.json",embeddedScopes:[]},"source.jssm":{id:"jssm",path:"jssm.tmLanguage.json",embeddedScopes:[]},"source.js.jsx":{id:"jsx",path:"jsx.tmLanguage.json",embeddedScopes:[]},"source.julia":{id:"julia",path:"julia.tmLanguage.json",embeddedScopes:["source.c","source.glsl","source.sql","source.r","source.js","source.python","source.cpp"]},"source.kotlin":{id:"kotlin",path:"kotlin.tmLanguage.json",embeddedScopes:[]},"source.kusto":{id:"kusto",path:"kusto.tmLanguage.json",embeddedScopes:[]},"text.tex.latex":{id:"latex",path:"latex.tmLanguage.json",embeddedScopes:["source.glsl","source.shell","source.sql","source.cpp","source.c","source.r","source.gnuplot","source.scala","source.rust","source.yaml","source.python","source.ts","source.js","source.ruby","source.julia","source.lua","source.java","text.xml","text.html.basic","source.haskell","source.css","text.tex"]},"source.css.less":{id:"less",path:"less.tmLanguage.json",embeddedScopes:["source.css"]},"text.html.liquid":{id:"liquid",path:"liquid.tmLanguage.json",embeddedScopes:["source.js","source.json","source.css","text.html.basic"]},"source.lisp":{id:"lisp",path:"lisp.tmLanguage.json",embeddedScopes:[]},"source.logo":{id:"logo",path:"logo.tmLanguage.json",embeddedScopes:[]},"source.lua":{id:"lua",path:"lua.tmLanguage.json",embeddedScopes:["source.c"]},"source.makefile":{id:"make",path:"make.tmLanguage.json",embeddedScopes:[]},"text.html.markdown":{id:"markdown",path:"markdown.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css"]},"text.marko":{id:"marko",path:"marko.tmLanguage.json",embeddedScopes:["source.js","source.css.scss","source.css.less","source.css"]},"source.matlab":{id:"matlab",path:"matlab.tmLanguage.json",embeddedScopes:[]},"source.mdx":{id:"mdx",path:"mdx.tmLanguage.json",embeddedScopes:["source.gnuplot","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","text.html.handlebars","source.dart","source.fsharp","source.powershell","source.perl.6","source.json.comments","text.pug","source.groovy","text.git-rebase","text.git-commit","source.batchfile","text.xml.xsl","source.asp.vb.net","source.php","source.js.jsx","source.glsl","source.ts","source.swift","text.xml","source.sql","text.shell-session","source.shell","source.css.scss","source.scala","source.rust","source.ruby","source.r","source.python","source.perl","source.objc","text.html.markdown","source.makefile","source.lua","source.css.less","source.kotlin","source.julia","source.json","source.js","source.java","source.ini","text.html.basic","source.haskell","source.graphql","source.go","source.erlang","source.elm","source.elixir","source.dockerfile","source.diff","source.css","source.cs","source.cpp","source.coffee","source.clojure","source.c","source.yaml","source.toml","source.tsx"]},"source.mermaid":{id:"mermaid",path:"mermaid.tmLanguage.json",embeddedScopes:[]},"source.narrat":{id:"narrat",path:"narrat.tmLanguage.json",embeddedScopes:[]},"source.nextflow":{id:"nextflow",path:"nextflow.tmLanguage.json",embeddedScopes:[]},"source.nginx":{id:"nginx",path:"nginx.tmLanguage.json",embeddedScopes:["source.c","source.lua"]},"source.nim":{id:"nim",path:"nim.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.ini","source.java","text.html.markdown","source.glsl","source.css","source.js","text.xml","text.html.basic","source.c"]},"source.nix":{id:"nix",path:"nix.tmLanguage.json",embeddedScopes:[]},"source.objc":{id:"objective-c",path:"objective-c.tmLanguage.json",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",path:"objective-cpp.tmLanguage.json",embeddedScopes:[]},"source.ocaml":{id:"ocaml",path:"ocaml.tmLanguage.json",embeddedScopes:[]},"source.pascal":{id:"pascal",path:"pascal.tmLanguage.json",embeddedScopes:[]},"source.perl":{id:"perl",path:"perl.tmLanguage.json",embeddedScopes:["source.java","source.sql","source.js","source.css","text.xml","text.html.basic"]},"source.php":{id:"php",path:"php.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.plsql.oracle":{id:"plsql",path:"plsql.tmLanguage.json",embeddedScopes:[]},"source.polar":{id:"polar",path:"polar.tmLanguage.json",embeddedScopes:[]},"source.css.postcss":{id:"postcss",path:"postcss.tmLanguage.json",embeddedScopes:[]},"source.powerquery":{id:"powerquery",path:"powerquery.tmLanguage.json",embeddedScopes:[]},"source.powershell":{id:"powershell",path:"powershell.tmLanguage.json",embeddedScopes:[]},"source.prisma":{id:"prisma",path:"prisma.tmLanguage.json",embeddedScopes:[]},"source.prolog":{id:"prolog",path:"prolog.tmLanguage.json",embeddedScopes:[]},"source.proto":{id:"proto",path:"proto.tmLanguage.json",embeddedScopes:[]},"text.pug":{id:"pug",path:"pug.tmLanguage.json",embeddedScopes:["text.html.basic","source.coffee","source.stylus","source.css.scss","source.sass","source.css","source.js"]},"source.puppet":{id:"puppet",path:"puppet.tmLanguage.json",embeddedScopes:[]},"source.purescript":{id:"purescript",path:"purescript.tmLanguage.json",embeddedScopes:[]},"source.python":{id:"python",path:"python.tmLanguage.json",embeddedScopes:[]},"source.r":{id:"r",path:"r.tmLanguage.json",embeddedScopes:[]},"source.perl.6":{id:"raku",path:"raku.tmLanguage.json",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",path:"razor.tmLanguage.json",embeddedScopes:["source.css","source.js","source.cs","text.html.basic"]},"source.reg":{id:"reg",path:"reg.tmLanguage.json",embeddedScopes:[]},"source.rel":{id:"rel",path:"rel.tmLanguage.json",embeddedScopes:[]},"source.riscv":{id:"riscv",path:"riscv.tmLanguage.json",embeddedScopes:[]},"source.rst":{id:"rst",path:"rst.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.c","source.css","text.xml","text.html.basic","source.sql","source.glsl","source.ruby","source.cmake","source.yaml","source.shell","source.js","source.python","source.cpp"]},"source.ruby":{id:"ruby",path:"ruby.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.js","source.c","source.css","source.sql","text.xml","text.html.basic"]},"source.rust":{id:"rust",path:"rust.tmLanguage.json",embeddedScopes:[]},"source.sas":{id:"sas",path:"sas.tmLanguage.json",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",path:"sass.tmLanguage.json",embeddedScopes:[]},"source.scala":{id:"scala",path:"scala.tmLanguage.json",embeddedScopes:[]},"source.scheme":{id:"scheme",path:"scheme.tmLanguage.json",embeddedScopes:[]},"source.css.scss":{id:"scss",path:"scss.tmLanguage.json",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",path:"shaderlab.tmLanguage.json",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",path:"shellscript.tmLanguage.json",embeddedScopes:[]},"text.shell-session":{id:"shellsession",path:"shellsession.tmLanguage.json",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",path:"smalltalk.tmLanguage.json",embeddedScopes:[]},"source.solidity":{id:"solidity",path:"solidity.tmLanguage.json",embeddedScopes:[]},"source.sparql":{id:"sparql",path:"sparql.tmLanguage.json",embeddedScopes:["source.turtle"]},"source.sql":{id:"sql",path:"sql.tmLanguage.json",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",path:"ssh-config.tmLanguage.json",embeddedScopes:[]},"source.stata":{id:"stata",path:"stata.tmLanguage.json",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",path:"stylus.tmLanguage.json",embeddedScopes:[]},"source.svelte":{id:"svelte",path:"svelte.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.json.comments","source.json","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","text.html.markdown","text.pug","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.coffee","source.ts","source.js"]},"source.swift":{id:"swift",path:"swift.tmLanguage.json",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",path:"system-verilog.tmLanguage.json",embeddedScopes:[]},"source.tasl":{id:"tasl",path:"tasl.tmLanguage.json",embeddedScopes:[]},"source.tcl":{id:"tcl",path:"tcl.tmLanguage.json",embeddedScopes:[]},"text.tex":{id:"tex",path:"tex.tmLanguage.json",embeddedScopes:["source.r"]},"source.toml":{id:"toml",path:"toml.tmLanguage.json",embeddedScopes:[]},"source.tsx":{id:"tsx",path:"tsx.tmLanguage.json",embeddedScopes:[]},"source.turtle":{id:"turtle",path:"turtle.tmLanguage.json",embeddedScopes:[]},"text.html.twig":{id:"twig",path:"twig.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.json","source.sql","text.xml","text.html.basic","source.ruby","source.python","source.php","source.js","source.css"]},"source.txt":{id:"txt",path:"txt.tmLanguage.json",embeddedScopes:[]},"source.ts":{id:"typescript",path:"typescript.tmLanguage.json",embeddedScopes:[]},"source.v":{id:"v",path:"v.tmLanguage.json",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",path:"vb.tmLanguage.json",embeddedScopes:[]},"source.verilog":{id:"verilog",path:"verilog.tmLanguage.json",embeddedScopes:[]},"source.vhdl":{id:"vhdl",path:"vhdl.tmLanguage.json",embeddedScopes:[]},"source.viml":{id:"viml",path:"viml.tmLanguage.json",embeddedScopes:[]},"text.html.vue-html":{id:"vue-html",path:"vue-html.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic","source.js","source.vue"]},"source.vue":{id:"vue",path:"vue.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.js","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic"]},"source.vyper":{id:"vyper",path:"vyper.tmLanguage.json",embeddedScopes:[]},"source.wat":{id:"wasm",path:"wasm.tmLanguage.json",embeddedScopes:[]},"source.wenyan":{id:"wenyan",path:"wenyan.tmLanguage.json",embeddedScopes:[]},"source.wgsl":{id:"wgsl",path:"wgsl.tmLanguage.json",embeddedScopes:[]},"source.wolfram":{id:"wolfram",path:"wolfram.tmLanguage.json",embeddedScopes:[]},"text.xml":{id:"xml",path:"xml.tmLanguage.json",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",path:"xsl.tmLanguage.json",embeddedScopes:["source.java","text.xml"]},"source.yaml":{id:"yaml",path:"yaml.tmLanguage.json",embeddedScopes:[]},"source.zenscript":{id:"zenscript",path:"zenscript.tmLanguage.json",embeddedScopes:[]}};var N={d:(A,B)=>{for(var Q in B)N.o(B,Q)&&!N.o(A,Q)&&Object.defineProperty(A,Q,{enumerable:!0,get:B[Q]})},o:(A,B)=>Object.prototype.hasOwnProperty.call(A,B)},L={};N.d(L,{_X:()=>XA,Bz:()=>vA,ot:()=>TA,u:()=>WA,jG:()=>Y,Pn:()=>ZA});const H="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var k;function R(A,B){const Q=[],g=function(A){let B=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,Q=B.exec(A);return{next:()=>{if(!Q)return null;const g=Q[0];return Q=B.exec(A),g}}}(A);let E=g.next();for(;null!==E;){let A=0;if(2===E.length&&":"===E.charAt(1)){switch(E.charAt(0)){case"R":A=1;break;case"L":A=-1;break;default:console.log(`Unknown priority ${E} in scope selector`)}E=g.next()}let B=I();if(Q.push({matcher:B,priority:A}),","!==E)break;E=g.next()}return Q;function C(){if("-"===E){E=g.next();const A=C();return B=>!!A&&!A(B)}if("("===E){E=g.next();const A=function(){const A=[];let B=I();for(;B&&(A.push(B),"|"===E||","===E);){do{E=g.next()}while("|"===E||","===E);B=I()}return B=>A.some((A=>A(B)))}();return")"===E&&(E=g.next()),A}if(K(E)){const A=[];do{A.push(E),E=g.next()}while(K(E));return Q=>B(A,Q)}return null}function I(){const A=[];let B=C();for(;B;)A.push(B),B=C();return B=>A.every((A=>A(B)))}}function K(A){return!!A&&!!A.match(/[\w\.:]+/)}function Y(A){"function"==typeof A.dispose&&A.dispose()}function U(A){return Array.isArray(A)?function(A){let B=[];for(let Q=0,g=A.length;Q{for(let Q in B)A[Q]=B[Q]})),A}function P(A){const B=~A.lastIndexOf("/")||~A.lastIndexOf("\\");return 0===B?A:~B==A.length-1?P(A.substring(0,A.length-1)):A.substr(1+~B)}!function(A){A.toBinaryStr=function(A){let B=A.toString(2);for(;B.length<32;)B="0"+B;return B},A.print=function(B){const Q=A.getLanguageId(B),g=A.getTokenType(B),E=A.getFontStyle(B),C=A.getForeground(B),I=A.getBackground(B);console.log({languageId:Q,tokenType:g,fontStyle:E,foreground:C,background:I})},A.getLanguageId=function(A){return(255&A)>>>0},A.getTokenType=function(A){return(768&A)>>>8},A.containsBalancedBrackets=function(A){return 0!=(1024&A)},A.getFontStyle=function(A){return(30720&A)>>>11},A.getForeground=function(A){return(16744448&A)>>>15},A.getBackground=function(A){return(4278190080&A)>>>24},A.set=function(B,Q,g,E,C,I,D){let w=A.getLanguageId(B),o=A.getTokenType(B),s=A.containsBalancedBrackets(B)?1:0,e=A.getFontStyle(B),c=A.getForeground(B),i=A.getBackground(B);return 0!==Q&&(w=Q),8!==g&&(o=g),null!==E&&(s=E?1:0),-1!==C&&(e=C),0!==I&&(c=I),0!==D&&(i=D),(w<<0|o<<8|s<<10|e<<11|c<<15|i<<24)>>>0}}(k||(k={}));let y=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class J{static hasCaptures(A){return null!==A&&(y.lastIndex=0,y.test(A))}static replaceCaptures(A,B,Q){return A.replace(y,((A,g,E,C)=>{let I=Q[parseInt(g||E,10)];if(!I)return A;{let A=B.substring(I.start,I.end);for(;"."===A[0];)A=A.substring(1);switch(C){case"downcase":return A.toLowerCase();case"upcase":return A.toUpperCase();default:return A}}}))}}function S(A,B){return AB?1:0}function p(A,B){if(null===A&&null===B)return 0;if(!A)return-1;if(!B)return 1;let Q=A.length,g=B.length;if(Q===g){for(let g=0;g`);return}const C=Q.lookup(B);A instanceof m?v({baseGrammar:C,selfGrammar:E},g):T(A.ruleName,{baseGrammar:C,selfGrammar:E,repository:E.repository},g);const I=Q.injections(A.scopeName);if(I)for(const A of I)g.add(new m(A))}function T(A,B,Q){B.repository&&B.repository[A]&&X([B.repository[A]],B,Q)}function v(A,B){A.selfGrammar.patterns&&Array.isArray(A.selfGrammar.patterns)&&X(A.selfGrammar.patterns,{...A,repository:A.selfGrammar.repository},B),A.selfGrammar.injections&&X(Object.values(A.selfGrammar.injections),{...A,repository:A.selfGrammar.repository},B)}function X(A,B,Q){for(const g of A){if(Q.visitedRule.has(g))continue;Q.visitedRule.add(g);const A=g.repository?u({},B.repository,g.repository):B.repository;Array.isArray(g.patterns)&&X(g.patterns,{...B,repository:A},Q);const E=g.include;if(!E)continue;const C=$(E);switch(C.kind){case 0:v({...B,selfGrammar:B.baseGrammar},Q);break;case 1:v(B,Q);break;case 2:T(C.ruleName,{...B,repository:A},Q);break;case 3:case 4:const g=C.scopeName===B.selfGrammar.scopeName?B.selfGrammar:C.scopeName===B.baseGrammar.scopeName?B.baseGrammar:void 0;if(g){const E={baseGrammar:B.baseGrammar,selfGrammar:g,repository:A};4===C.kind?T(C.ruleName,E,Q):v(E,Q)}else 4===C.kind?Q.add(new O(C.scopeName,C.ruleName)):Q.add(new m(C.scopeName))}}}class Z{constructor(){this.kind=0}}class j{constructor(){this.kind=1}}class V{constructor(A){this.ruleName=A,this.kind=2}}class z{constructor(A){this.scopeName=A,this.kind=3}}class _{constructor(A,B){this.scopeName=A,this.ruleName=B,this.kind=4}}function $(A){if("$base"===A)return new Z;if("$self"===A)return new j;const B=A.indexOf("#");if(-1===B)return new z(A);if(0===B)return new V(A.substring(1));{const Q=A.substring(0,B),g=A.substring(B+1);return new _(Q,g)}}const AA=/\\(\d+)/,BA=/\\(\d+)/g;class QA{constructor(A,B,Q,g){this.$location=A,this.id=B,this._name=Q||null,this._nameIsCapturing=J.hasCaptures(this._name),this._contentName=g||null,this._contentNameIsCapturing=J.hasCaptures(this._contentName)}get debugName(){const A=this.$location?`${P(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${A}`}getName(A,B){return this._nameIsCapturing&&null!==this._name&&null!==A&&null!==B?J.replaceCaptures(this._name,A,B):this._name}getContentName(A,B){return this._contentNameIsCapturing&&null!==this._contentName?J.replaceCaptures(this._contentName,A,B):this._contentName}}class gA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.retokenizeCapturedWithRuleId=E}dispose(){}collectPatterns(A,B){throw new Error("Not supported!")}compile(A,B){throw new Error("Not supported!")}compileAG(A,B,Q,g){throw new Error("Not supported!")}}class EA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,null),this._match=new oA(g,this.id),this.captures=E,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(A,B){B.push(this._match)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new sA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class CA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.patterns=E.patterns,this.hasMissingPatterns=E.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(A,B){for(const Q of this.patterns)A.getRule(Q).collectPatterns(A,B)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new sA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class IA extends QA{constructor(A,B,Q,g,E,C,I,D,w,o){super(A,B,Q,g),this._begin=new oA(E,this.id),this.beginCaptures=C,this._end=new oA(I||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=D,this.applyEndPatternLast=w||!1,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(A,B){return this._end.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A,B).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledPatterns(A,B){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new sA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,B):this._cachedCompiledPatterns.setSource(0,B)),this._cachedCompiledPatterns}}class DA extends QA{constructor(A,B,Q,g,E,C,I,D,w){super(A,B,Q,g),this._begin=new oA(E,this.id),this.beginCaptures=C,this.whileCaptures=D,this._while=new oA(I,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=w.patterns,this.hasMissingPatterns=w.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(A,B){return this._while.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new sA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(A,B){return this._getCachedCompiledWhilePatterns(A,B).compile(A)}compileWhileAG(A,B,Q,g){return this._getCachedCompiledWhilePatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledWhilePatterns(A,B){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new sA,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,B||"￿"),this._cachedCompiledWhilePatterns}}class wA{static createCaptureRule(A,B,Q,g,E){return A.registerRule((A=>new gA(B,A,Q,g,E)))}static getCompiledRuleId(A,B,Q){return A.id||B.registerRule((g=>{if(A.id=g,A.match)return new EA(A.$vscodeTextmateLocation,A.id,A.name,A.match,wA._compileCaptures(A.captures,B,Q));if(void 0===A.begin){A.repository&&(Q=u({},Q,A.repository));let g=A.patterns;return void 0===g&&A.include&&(g=[{include:A.include}]),new CA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,wA._compilePatterns(g,B,Q))}return A.while?new DA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,wA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.while,wA._compileCaptures(A.whileCaptures||A.captures,B,Q),wA._compilePatterns(A.patterns,B,Q)):new IA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,wA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.end,wA._compileCaptures(A.endCaptures||A.captures,B,Q),A.applyEndPatternLast,wA._compilePatterns(A.patterns,B,Q))})),A.id}static _compileCaptures(A,B,Q){let g=[];if(A){let E=0;for(const B in A){if("$vscodeTextmateLocation"===B)continue;const A=parseInt(B,10);A>E&&(E=A)}for(let A=0;A<=E;A++)g[A]=null;for(const E in A){if("$vscodeTextmateLocation"===E)continue;const C=parseInt(E,10);let I=0;A[E].patterns&&(I=wA.getCompiledRuleId(A[E],B,Q)),g[C]=wA.createCaptureRule(B,A[E].$vscodeTextmateLocation,A[E].name,A[E].contentName,I)}}return g}static _compilePatterns(A,B,Q){let g=[];if(A)for(let E=0,C=A.length;EA.substring(B.start,B.end)));return BA.lastIndex=0,this.source.replace(BA,((A,B)=>d(Q[parseInt(B,10)]||"")))}_buildAnchorCache(){let A,B,Q,g,E=[],C=[],I=[],D=[];for(A=0,B=this.source.length;AA.source));this._cached=new eA(A,B,this._items.map((A=>A.ruleId)))}return this._cached}compileAG(A,B,Q){return this._hasAnchors?B?Q?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G0):Q?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G0):this.compile(A)}_resolveAnchors(A,B,Q){let g=this._items.map((A=>A.resolveAnchors(B,Q)));return new eA(A,g,this._items.map((A=>A.ruleId)))}}class eA{constructor(A,B,Q){this.regExps=B,this.rules=Q,this.scanner=A.createOnigScanner(B)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const A=[];for(let B=0,Q=this.rules.length;Bthis._root.match(A)))}static createFromRawTheme(A,B){return this.createFromParsedTheme(function(A){if(!A)return[];if(!A.settings||!Array.isArray(A.settings))return[];let B=A.settings,Q=[],g=0;for(let A=0,E=B.length;A1&&(s=C.slice(0,C.length-1),s.reverse()),Q[g++]=new aA(o,s,A,I,D,w)}}return Q}(A),B)}static createFromParsedTheme(A,B){return function(A,B){A.sort(((A,B)=>{let Q=S(A.scope,B.scope);return 0!==Q?Q:(Q=p(A.parentScopes,B.parentScopes),0!==Q?Q:A.index-B.index)}));let Q=0,g="#000000",E="#ffffff";for(;A.length>=1&&""===A[0].scope;){let B=A.shift();-1!==B.fontStyle&&(Q=B.fontStyle),null!==B.foreground&&(g=B.foreground),null!==B.background&&(E=B.background)}let C=new hA(B),I=new MA(Q,C.getId(g),C.getId(E)),D=new rA(new nA(0,null,-1,0,0),[]);for(let B=0,Q=A.length;Bfunction(A,B){if(null===B)return!0;let Q=0,g=B[Q];for(;A;){if(tA(A.scopeName,g)){if(Q++,Q===B.length)return!0;g=B[Q]}A=A.parent}return!1}(A.parent,B.parentScopes)));return Q?new MA(Q.fontStyle,Q.foreground,Q.background):null}}class iA{constructor(A,B){this.parent=A,this.scopeName=B}static push(A,B){for(const Q of B)A=new iA(A,Q);return A}static from(...A){let B=null;for(let Q=0;QA?console.log("how did this happen?"):this.scopeDepth=A,-1!==B&&(this.fontStyle=B),0!==Q&&(this.foreground=Q),0!==g&&(this.background=g)}}class rA{constructor(A,B=[],Q={}){this._mainRule=A,this._children=Q,this._rulesWithParentScopes=B}static _sortBySpecificity(A){return 1===A.length||A.sort(this._cmpBySpecificity),A}static _cmpBySpecificity(A,B){if(A.scopeDepth===B.scopeDepth){const Q=A.parentScopes,g=B.parentScopes;let E=null===Q?0:Q.length,C=null===g?0:g.length;if(E===C)for(let A=0;A{const B=this._scopeToLanguage(A),Q=this._toStandardTokenType(A);return new FA(B,Q)})),this._defaultAttributes=new FA(A,8),this._embeddedLanguagesMatcher=new NA(Object.entries(B||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(A){return null===A?GA._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(A)}_scopeToLanguage(A){return this._embeddedLanguagesMatcher.match(A)||0}_toStandardTokenType(A){const B=A.match(GA.STANDARD_TOKEN_TYPE_REGEXP);if(!B)return 8;switch(B[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}GA._NULL_SCOPE_METADATA=new FA(0,0),GA.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class NA{constructor(A){if(0===A.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(A);const B=A.map((([A,B])=>d(A)));B.sort(),B.reverse(),this.scopesRegExp=new RegExp(`^((${B.join(")|(")}))($|\\.)`,"")}}match(A){if(!this.scopesRegExp)return;const B=A.match(this.scopesRegExp);return B?this.values.get(B[1]):void 0}}class LA{constructor(A,B){this.stack=A,this.stoppedEarly=B}}function HA(A,B,Q,g,E,C,I,D){const w=B.content.length;let o=!1,s=-1;if(I){const I=function(A,B,Q,g,E,C){let I=E.beginRuleCapturedEOL?0:-1;const D=[];for(let B=E;B;B=B.pop()){const Q=B.getRule(A);Q instanceof DA&&D.push({rule:Q,stack:B})}for(let w=D.pop();w;w=D.pop()){const{ruleScanner:D,findOptions:o}=RA(w.rule,A,w.stack.endRule,Q,g===I),s=D.findNextMatchSync(B,g,o);if(H&&(console.log(" scanning for while rule"),console.log(D.toString())),!s){H&&console.log(" popping "+w.rule.debugName+" - "+w.rule.debugWhileRegExp),E=w.stack.pop();break}if(-2!==s.ruleId){E=w.stack.pop();break}s.captureIndices&&s.captureIndices.length&&(C.produce(w.stack,s.captureIndices[0].start),KA(A,B,Q,w.stack,C,w.rule.whileCaptures,s.captureIndices),C.produce(w.stack,s.captureIndices[0].end),I=s.captureIndices[0].end,s.captureIndices[0].end>g&&(g=s.captureIndices[0].end,Q=!1))}return{stack:E,linePos:g,anchorPosition:I,isFirstLine:Q}}(A,B,Q,g,E,C);E=I.stack,g=I.linePos,Q=I.isFirstLine,s=I.anchorPosition}const e=Date.now();for(;!o;){if(0!==D&&Date.now()-e>D)return new LA(E,!0);c()}return new LA(E,!1);function c(){H&&(console.log(""),console.log(`@@scanNext ${g}: |${B.content.substr(g).replace(/\n$/,"\\n")}|`));const I=function(A,B,Q,g,E,C){const I=function(A,B,Q,g,E,C){const I=E.getRule(A),{ruleScanner:D,findOptions:w}=kA(I,A,E.endRule,Q,g===C);let o=0;H&&(o=x());const s=D.findNextMatchSync(B,g,w);if(H){const A=x()-o;A>5&&console.warn(`Rule ${I.debugName} (${I.id}) matching took ${A} against '${B}'`),console.log(` scanning for (linePos: ${g}, anchorPosition: ${C})`),console.log(D.toString()),s&&console.log(`matched rule id: ${s.ruleId} from ${s.captureIndices[0].start} to ${s.captureIndices[0].end}`)}return s?{captureIndices:s.captureIndices,matchedRuleId:s.ruleId}:null}(A,B,Q,g,E,C),D=A.getInjections();if(0===D.length)return I;const w=function(A,B,Q,g,E,C,I){let D,w=Number.MAX_VALUE,o=null,s=0;const e=C.contentNameScopesList.getScopeNames();for(let C=0,c=A.length;C=w)&&(w=h,o=a.captureIndices,D=a.ruleId,s=c.priority,w===E))break}return o?{priorityMatch:-1===s,captureIndices:o,matchedRuleId:D}:null}(D,A,B,Q,g,E,C);if(!w)return I;if(!I)return w;const o=I.captureIndices[0].start,s=w.captureIndices[0].start;return s0)&&D[0].end>g;if(-1===e){const I=E.getRule(A);H&&console.log(" popping "+I.debugName+" - "+I.debugEndRegExp),C.produce(E,D[0].start),E=E.withContentNameScopesList(E.nameScopesList),KA(A,B,Q,E,C,I.endCaptures,D),C.produce(E,D[0].end);const e=E;if(E=E.parent,s=e.getAnchorPos(),!c&&e.getEnterPos()===g)return H&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),E=e,C.produce(E,w),void(o=!0)}else{const I=A.getRule(e);C.produce(E,D[0].start);const i=E,t=I.getName(B.content,D),M=E.contentNameScopesList.pushAttributed(t,A);if(E=E.push(e,g,s,D[0].end===w,null,M,M),I instanceof IA){const g=I;H&&console.log(" pushing "+g.debugName+" - "+g.debugBeginRegExp),KA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.endHasBackReferences&&(E=E.withEndRule(g.getEndWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return H&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else if(I instanceof DA){const g=I;H&&console.log(" pushing "+g.debugName),KA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.whileHasBackReferences&&(E=E.withEndRule(g.getWhileWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return H&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else{const g=I;if(H&&console.log(" matched "+g.debugName+" - "+g.debugMatchRegExp),KA(A,B,Q,E,C,g.captures,D),C.produce(E,D[0].end),E=E.pop(),!c)return H&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),E=E.safePop(),C.produce(E,w),void(o=!0)}}D[0].end>g&&(g=D[0].end,Q=!1)}}function kA(A,B,Q,g,E){return{ruleScanner:A.compileAG(B,Q,g,E),findOptions:0}}function RA(A,B,Q,g,E){return{ruleScanner:A.compileWhileAG(B,Q,g,E),findOptions:0}}function KA(A,B,Q,g,E,C,I){if(0===C.length)return;const D=B.content,w=Math.min(C.length,I.length),o=[],s=I[0].end;for(let B=0;Bs)break;for(;o.length>0&&o[o.length-1].endPos<=e.start;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop();if(o.length>0?E.produceFromScopes(o[o.length-1].scopes,e.start):E.produce(g,e.start),w.retokenizeCapturedWithRuleId){const B=w.getName(D,I),C=g.contentNameScopesList.pushAttributed(B,A),o=w.getContentName(D,I),s=C.pushAttributed(o,A),c=g.push(w.retokenizeCapturedWithRuleId,e.start,-1,!1,null,C,s),i=A.createOnigString(D.substring(0,e.end));HA(A,i,Q&&0===e.start,e.start,c,E,!1,0),Y(i);continue}const c=w.getName(D,I);if(null!==c){const B=(o.length>0?o[o.length-1].scopes:g.contentNameScopesList).pushAttributed(c,A);o.push(new YA(B,e.end))}}for(;o.length>0;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop()}class YA{constructor(A,B){this.scopes=A,this.endPos=B}}function UA(A,B,Q,g,E){const C=R(B,uA),I=wA.getCompiledRuleId(Q,g,E.repository);for(const Q of C)A.push({debugSelector:B,matcher:Q.matcher,ruleId:I,grammar:E,priority:Q.priority})}function uA(A,B){if(B.length{for(let g=Q;gQ&&A.substr(0,Q)===B&&"."===A[Q]}class yA{constructor(A,B,Q,g,E,C,I,D){if(this._rootScopeName=A,this.balancedBracketSelectors=C,this._onigLib=D,this._basicScopeAttributesProvider=new GA(Q,g),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=I,this._grammar=JA(B,null),this._injections=null,this._tokenTypeMatchers=[],E)for(const A of Object.keys(E)){const B=R(A,uA);for(const Q of B)this._tokenTypeMatchers.push({matcher:Q.matcher,type:E[A]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const A of this._ruleId2desc)A&&A.dispose()}createOnigScanner(A){return this._onigLib.createOnigScanner(A)}createOnigString(A){return this._onigLib.createOnigString(A)}getMetadataForScope(A){return this._basicScopeAttributesProvider.getBasicScopeAttributes(A)}_collectInjections(){const A=[],B=this._rootScopeName,Q=(A=>A===this._rootScopeName?this._grammar:this.getExternalGrammar(A))(B);if(Q){const g=Q.injections;if(g)for(let B in g)UA(A,B,g[B],this,Q);const E=this._grammarRepository.injections(B);E&&E.forEach((B=>{const Q=this.getExternalGrammar(B);if(Q){const B=Q.injectionSelector;B&&UA(A,B,Q,this,Q)}}))}return A.sort(((A,B)=>A.priority-B.priority)),A}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),H&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const A of this._injections)console.log(` - ${A.debugSelector}`)}return this._injections}registerRule(A){const B=++this._lastRuleId,Q=A(B);return this._ruleId2desc[B]=Q,Q}getRule(A){return this._ruleId2desc[A]}getExternalGrammar(A,B){if(this._includedGrammars[A])return this._includedGrammars[A];if(this._grammarRepository){const Q=this._grammarRepository.lookup(A);if(Q)return this._includedGrammars[A]=JA(Q,B&&B.$base),this._includedGrammars[A]}}tokenizeLine(A,B,Q=0){const g=this._tokenize(A,B,!1,Q);return{tokens:g.lineTokens.getResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}tokenizeLine2(A,B,Q=0){const g=this._tokenize(A,B,!0,Q);return{tokens:g.lineTokens.getBinaryResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}_tokenize(A,B,Q,g){let E;if(-1===this._rootId&&(this._rootId=wA.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),B&&B!==pA.NULL)E=!1,B.reset();else{E=!0;const A=this._basicScopeAttributesProvider.getDefaultAttributes(),Q=this.themeProvider.getDefaults(),g=k.set(0,A.languageId,A.tokenType,null,Q.fontStyle,Q.foregroundId,Q.backgroundId),C=this.getRule(this._rootId).getName(null,null);let I;I=C?SA.createRootAndLookUpScopeName(C,g,this):SA.createRoot("unknown",g),B=new pA(null,this._rootId,-1,-1,!1,null,I,I)}A+="\n";const C=this.createOnigString(A),I=C.content.length,D=new dA(Q,A,this._tokenTypeMatchers,this.balancedBracketSelectors),w=HA(this,C,E,0,B,D,!0,g);return Y(C),{lineLength:I,lineTokens:D,ruleStack:w.stack,stoppedEarly:w.stoppedEarly}}}function JA(A,B){return(A=U(A)).repository=A.repository||{},A.repository.$self={$vscodeTextmateLocation:A.$vscodeTextmateLocation,patterns:A.patterns,name:A.scopeName},A.repository.$base=B||A.repository.$self,A}class SA{constructor(A,B,Q){this.parent=A,this.scopePath=B,this.tokenAttributes=Q}static fromExtension(A,B){let Q=A,g=A?.scopePath??null;for(const A of B)g=iA.push(g,A.scopeNames),Q=new SA(Q,g,A.encodedTokenAttributes);return Q}static createRoot(A,B){return new SA(null,new iA(null,A),B)}static createRootAndLookUpScopeName(A,B,Q){const g=Q.getMetadataForScope(A),E=new iA(null,A),C=Q.themeProvider.themeMatch(E),I=SA.mergeAttributes(B,g,C);return new SA(null,E,I)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(A){return SA.equals(this,A)}static equals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.scopeName!==B.scopeName||A.tokenAttributes!==B.tokenAttributes)return!1;A=A.parent,B=B.parent}}static mergeAttributes(A,B,Q){let g=-1,E=0,C=0;return null!==Q&&(g=Q.fontStyle,E=Q.foregroundId,C=Q.backgroundId),k.set(A,B.languageId,B.tokenType,null,g,E,C)}pushAttributed(A,B){if(null===A)return this;if(-1===A.indexOf(" "))return SA._pushAttributed(this,A,B);const Q=A.split(/ /g);let g=this;for(const A of Q)g=SA._pushAttributed(g,A,B);return g}static _pushAttributed(A,B,Q){const g=Q.getMetadataForScope(B),E=A.scopePath.push(B),C=Q.themeProvider.themeMatch(E),I=SA.mergeAttributes(A.tokenAttributes,g,C);return new SA(A,E,I)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push({encodedTokenAttributes:Q.tokenAttributes,scopeNames:Q.scopePath.getExtensionIfDefined(Q.parent?.scopePath??null)}),Q=Q.parent;return Q===A?B.reverse():void 0}}class pA{constructor(A,B,Q,g,E,C,I,D){this.parent=A,this.ruleId=B,this.beginRuleCapturedEOL=E,this.endRule=C,this.nameScopesList=I,this.contentNameScopesList=D,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=Q,this._anchorPos=g}equals(A){return null!==A&&pA._equals(this,A)}static _equals(A,B){return A===B||!!this._structuralEquals(A,B)&&SA.equals(A.contentNameScopesList,B.contentNameScopesList)}static _structuralEquals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.depth!==B.depth||A.ruleId!==B.ruleId||A.endRule!==B.endRule)return!1;A=A.parent,B=B.parent}}clone(){return this}static _reset(A){for(;A;)A._enterPos=-1,A._anchorPos=-1,A=A.parent}reset(){pA._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(A,B,Q,g,E,C,I){return new pA(this,A,B,Q,g,E,C,I)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(A){return A.getRule(this.ruleId)}toString(){const A=[];return this._writeString(A,0),"["+A.join(",")+"]"}_writeString(A,B){return this.parent&&(B=this.parent._writeString(A,B)),A[B++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,B}withContentNameScopesList(A){return this.contentNameScopesList===A?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,A)}withEndRule(A){return this.endRule===A?this:new pA(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,A,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(A){let B=this;for(;B&&B._enterPos===A._enterPos;){if(B.ruleId===A.ruleId)return!0;B=B.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(A,B){const Q=SA.fromExtension(A?.nameScopesList??null,B.nameScopesList);return new pA(A,B.ruleId,B.enterPos??-1,B.anchorPos??-1,B.beginRuleCapturedEOL,B.endRule,Q,SA.fromExtension(Q,B.contentNameScopesList))}}pA.NULL=new pA(null,0,0,0,!1,null,null,null);class lA{constructor(A,B){this.allowAny=!1,this.balancedBracketScopes=A.flatMap((A=>"*"===A?(this.allowAny=!0,[]):R(A,uA).map((A=>A.matcher)))),this.unbalancedBracketScopes=B.flatMap((A=>R(A,uA).map((A=>A.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(A){for(const B of this.unbalancedBracketScopes)if(B(A))return!1;for(const B of this.balancedBracketScopes)if(B(A))return!0;return this.allowAny}}class dA{constructor(A,B,Q,g){this.balancedBracketSelectors=g,this._emitBinaryTokens=A,this._tokenTypeOverrides=Q,this._lineText=H?B:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(A,B){this.produceFromScopes(A.contentNameScopesList,B)}produceFromScopes(A,B){if(this._lastTokenEndIndex>=B)return;if(this._emitBinaryTokens){let Q=A?.tokenAttributes??0,g=!1;if(this.balancedBracketSelectors?.matchesAlways&&(g=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const B=A?.getScopeNames()??[];for(const A of this._tokenTypeOverrides)A.matcher(B)&&(Q=k.set(Q,0,A.type,null,-1,0,0));this.balancedBracketSelectors&&(g=this.balancedBracketSelectors.match(B))}if(g&&(Q=k.set(Q,0,8,g,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===Q)return void(this._lastTokenEndIndex=B);if(H){const Q=A?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A0&&this._tokens[this._tokens.length-1].startIndex===B-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(A,B){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===B-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._binaryTokens[this._binaryTokens.length-2]=0);const Q=new Uint32Array(this._binaryTokens.length);for(let A=0,B=this._binaryTokens.length;A0;)10===A.charCodeAt(E)?(E++,C++,I=0):(E++,I++),B--}function w(A){null===Q?E=A:D(A-E)}function o(){for(;E0&&65279===A.charCodeAt(0)&&(E=1);let i=0,t=null,M=[],a=[],h=null;function n(A,B){M.push(i),a.push(t),i=A,t=B}function r(){if(0===M.length)return F("illegal state stack");i=M.pop(),t=a.pop()}function F(B){throw new Error("Near offset "+E+": "+B+" ~~~"+A.substr(E,50)+"~~~")}const G=function(){if(null===h)return F("missing ");let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t[h]=A,h=null,n(1,A)},N=function(){if(null===h)return F("missing ");let A=[];t[h]=A,h=null,n(2,A)},L=function(){let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t.push(A),n(1,A)},H=function(){let A=[];t.push(A),n(2,A)};function k(){if(1!==i)return F("unexpected ");r()}function R(){return 1===i||2!==i?F("unexpected "):void r()}function K(A){if(1===i){if(null===h)return F("missing ");t[h]=A,h=null}else 2===i?t.push(A):t=A}function Y(A){if(isNaN(A))return F("cannot parse float");if(1===i){if(null===h)return F("missing ");t[h]=A,h=null}else 2===i?t.push(A):t=A}function U(A){if(isNaN(A))return F("cannot parse integer");if(1===i){if(null===h)return F("missing ");t[h]=A,h=null}else 2===i?t.push(A):t=A}function u(A){if(1===i){if(null===h)return F("missing ");t[h]=A,h=null}else 2===i?t.push(A):t=A}function P(A){if(1===i){if(null===h)return F("missing ");t[h]=A,h=null}else 2===i?t.push(A):t=A}function y(A){if(1===i){if(null===h)return F("missing ");t[h]=A,h=null}else 2===i?t.push(A):t=A}function J(){let A=c(">"),B=!1;return 47===A.charCodeAt(A.length-1)&&(B=!0,A=A.substring(0,A.length-1)),{name:A.trim(),isClosed:B}}function S(A){if(A.isClosed)return"";let B=c(""),B.replace(/&#([0-9]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,10))})).replace(/&#x([0-9a-f]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,16))})).replace(/&|<|>|"|'/g,(function(A){switch(A){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return A}))}for(;E=g));){const w=A.charCodeAt(E);if(D(1),60!==w)return F("expected <");if(E>=g)return F("unexpected end of input");const c=A.charCodeAt(E);if(63===c){D(1),e("?>");continue}if(33===c){if(D(1),s("--")){e("--\x3e");continue}e(">");continue}if(47===c){if(D(1),o(),s("plist")){e(">");continue}if(s("dict")){e(">"),k();continue}if(s("array")){e(">"),R();continue}return F("unexpected closed tag")}let M=J();switch(M.name){case"dict":1===i?G():2===i?L():(t={},null!==Q&&(t[Q]={filename:B,line:C,char:I}),n(1,t)),M.isClosed&&k();continue;case"array":1===i?N():2===i?H():(t=[],n(2,t)),M.isClosed&&R();continue;case"key":p=S(M),1!==i?F("unexpected "):null!==h?F("too many "):h=p;continue;case"string":K(S(M));continue;case"real":Y(parseFloat(S(M)));continue;case"integer":U(parseInt(S(M),10));continue;case"date":u(new Date(S(M)));continue;case"data":P(S(M));continue;case"true":S(M),y(!0);continue;case"false":S(M),y(!1);continue}if(!/^plist/.test(M.name))return F("unexpected opened tag "+M.name)}var p;return t}function xA(A,B){throw new Error("Near offset "+A.pos+": "+B+" ~~~"+A.source.substr(A.pos,50)+"~~~")}class mA{constructor(A){this.source=A,this.pos=0,this.len=A.length,this.line=1,this.char=0}}class OA{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(A){return{filename:A,line:this.line,char:this.char}}}function qA(A,B){B.value=null,B.type=0,B.offset=-1,B.len=-1,B.line=-1,B.char=-1;let Q,g=A.source,E=A.pos,C=A.len,I=A.line,D=A.char;for(;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),32!==Q&&9!==Q&&13!==Q){if(10!==Q)break;E++,I++,D=0}else E++,D++}if(B.offset=E,B.line=I,B.char=D,34===Q){for(B.type=1,E++,D++;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),E++,D++,92!==Q){if(34===Q)break}else E++,D++}B.value=g.substring(B.offset+1,E-1).replace(/\\u([0-9A-Fa-f]{4})/g,((A,B)=>String.fromCodePoint(parseInt(B,16)))).replace(/\\(.)/g,((B,Q)=>{switch(Q){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:xA(A,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===Q)B.type=2,E++,D++;else if(123===Q)B.type=3,E++,D++;else if(93===Q)B.type=4,E++,D++;else if(125===Q)B.type=5,E++,D++;else if(58===Q)B.type=6,E++,D++;else if(44===Q)B.type=7,E++,D++;else if(110===Q){if(B.type=8,E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;E++,D++}else if(116===Q){if(B.type=9,E++,D++,Q=g.charCodeAt(E),114!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else if(102===Q){if(B.type=10,E++,D++,Q=g.charCodeAt(E),97!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),115!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else for(B.type=11;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),!(46===Q||Q>=48&&Q<=57||101===Q||69===Q||45===Q||43===Q))break;E++,D++}return B.len=E-B.offset,null===B.value&&(B.value=g.substr(B.offset,B.len)),A.pos=E,A.line=I,A.char=D,!0}class bA{constructor(A,B){this._onigLibPromise=B,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=A}dispose(){for(const A of this._grammars.values())A.dispose()}setTheme(A){this._theme=A}getColorMap(){return this._theme.getColorMap()}addGrammar(A,B){this._rawGrammars.set(A.scopeName,A),B&&this._injectionGrammars.set(A.scopeName,B)}lookup(A){return this._rawGrammars.get(A)}injections(A){return this._injectionGrammars.get(A)}getDefaults(){return this._theme.getDefaults()}themeMatch(A){return this._theme.match(A)}async grammarForScopeName(A,B,Q,g,E){if(!this._grammars.has(A)){let C=this._rawGrammars.get(A);if(!C)return null;this._grammars.set(A,function(A,B,Q,g,E,C,I,D){return new yA(A,B,Q,g,E,C,I,D)}(A,C,B,Q,g,E,this,await this._onigLibPromise))}return this._grammars.get(A)}}function WA(A,B){let Q=0;const g=[];let E=A,C=B;for(;E!==C;)E&&(!C||E.depth>=C.depth)?(Q++,E=E.parent):(g.push(C.toStateStackFrame()),C=C.parent);return{pops:Q,newFrames:g.reverse()}}function TA(A,B){let Q=A;for(let A=0;A0;)await Promise.all(C.Q.map((A=>this._loadSingleGrammar(A.scopeName)))),C.processQueue();return this._grammarForScopeName(A,B,Q,g,E)}async _loadSingleGrammar(A){return this._ensureGrammarCache.has(A)||this._ensureGrammarCache.set(A,this._doLoadSingleGrammar(A)),this._ensureGrammarCache.get(A)}async _doLoadSingleGrammar(A){const B=await this._options.loadGrammar(A);if(B){const Q="function"==typeof this._options.getInjections?this._options.getInjections(A):void 0;this._syncRegistry.addGrammar(B,Q)}}async addGrammar(A,B=[],Q=0,g=null){return this._syncRegistry.addGrammar(A,B),await this._grammarForScopeName(A.scopeName,Q,g)}_grammarForScopeName(A,B=0,Q=null,g=null,E=null){return this._syncRegistry.grammarForScopeName(A,B,Q,g,E)}}const XA=pA.NULL,ZA=function(A,B=null){return null!==B&&/\.json$/.test(B)?(Q=A,H?function(A,B,Q){let g=new mA(A),E=new OA,C=0,I=null,D=[],w=[];function o(){D.push(C),w.push(I)}function s(){C=D.pop(),I=w.pop()}function e(A){xA(g,A)}for(;qA(g,E);){if(0===C){if(null!==I&&e("too many constructs in root"),3===E.type){I={},I.$vscodeTextmateLocation=E.toLocation(B),o(),C=1;continue}if(2===E.type){I=[],o(),C=4;continue}e("unexpected token in root")}if(2===C){if(5===E.type){s();continue}if(7===E.type){C=3;continue}e("expected , or }")}if(1===C||3===C){if(1===C&&5===E.type){s();continue}if(1===E.type){let A=E.value;if(qA(g,E)&&6===E.type||e("expected colon"),qA(g,E)||e("expected value"),C=2,1===E.type){I[A]=E.value;continue}if(8===E.type){I[A]=null;continue}if(9===E.type){I[A]=!0;continue}if(10===E.type){I[A]=!1;continue}if(11===E.type){I[A]=parseFloat(E.value);continue}if(2===E.type){let B=[];I[A]=B,o(),C=4,I=B;continue}if(3===E.type){let Q={};Q.$vscodeTextmateLocation=E.toLocation(B),I[A]=Q,o(),C=1,I=Q;continue}}e("unexpected token in dict")}if(5===C){if(4===E.type){s();continue}if(7===E.type){C=6;continue}e("expected , or ]")}if(4===C||6===C){if(4===C&&4===E.type){s();continue}if(C=5,1===E.type){I.push(E.value);continue}if(8===E.type){I.push(null);continue}if(9===E.type){I.push(!0);continue}if(10===E.type){I.push(!1);continue}if(11===E.type){I.push(parseFloat(E.value));continue}if(2===E.type){let A=[];I.push(A),o(),C=4,I=A;continue}if(3===E.type){let A={};A.$vscodeTextmateLocation=E.toLocation(B),I.push(A),o(),C=1,I=A;continue}e("unexpected token in array")}e("unknown state")}return 0!==w.length&&e("unclosed constructs"),I}(Q,B):JSON.parse(Q)):function(A,B){return H?function(A,B,Q){return fA(A,B,"$vscodeTextmateLocation")}(A,B):function(A){return fA(A,null,null)}(A)}(A,B);var Q};var jA=L.Bz,VA=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(A){var B,Q,g=void 0!==(A=A||{})?A:{};g.ready=new Promise((function(A,g){B=A,Q=g}));var E,C=Object.assign({},g),I=!1;E=function(A){let B;return"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(B=read(A,"binary"),"object"==typeof B||L(Q),B);var Q},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var D,w,o=g.print||console.log.bind(console),s=g.printErr||console.warn.bind(console);Object.assign(g,C),C=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(D=g.wasmBinary),g.noExitRuntime,"object"!=typeof WebAssembly&&L("no native wasm support detected");var e,c,i,t=!1,M="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(A,B,Q){for(var g=B+Q,E=B;A[E]&&!(E>=g);)++E;if(E-B>16&&A.buffer&&M)return M.decode(A.subarray(B,E));for(var C="";B>10,56320|1023&o)}}else C+=String.fromCharCode((31&I)<<6|D)}else C+=String.fromCharCode(I)}return C}function h(A){e=A,g.HEAP8=new Int8Array(A),g.HEAP16=new Int16Array(A),g.HEAP32=new Int32Array(A),g.HEAPU8=c=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=i=new Uint32Array(A),g.HEAPF32=new Float32Array(A),g.HEAPF64=new Float64Array(A)}g.INITIAL_MEMORY;var n=[],r=[],F=[],G=0,N=null;function L(A){g.onAbort&&g.onAbort(A),s(A="Aborted("+A+")"),t=!0,A+=". Build with -sASSERTIONS for more info.";var B=new WebAssembly.RuntimeError(A);throw Q(B),B}var H,k,R,K="data:application/octet-stream;base64,";function Y(A){return A.startsWith(K)}function U(A){try{if(A==H&&D)return new Uint8Array(D);if(E)return E(A);throw"both async and sync fetching of the wasm failed"}catch(A){L(A)}}function u(A){for(;A.length>0;)A.shift()(g)}function P(A){try{return w.grow(A-e.byteLength+65535>>>16),h(w.buffer),1}catch(A){}}Y(H="onig.wasm")||(k=H,H=g.locateFile?g.locateFile(k,""):""+k),R="undefined"!=typeof dateNow?dateNow:()=>performance.now();var y=[null,[],[]];function J(A,B){var Q=y[A];0===B||10===B?((1===A?o:s)(a(Q,0)),Q.length=0):Q.push(B)}var S,p={emscripten_get_now:R,emscripten_memcpy_big:function(A,B,Q){c.copyWithin(A,B,B+Q)},emscripten_resize_heap:function(A){var B=c.length,Q=2147483648;if((A>>>=0)>Q)return!1;let g=(A,B)=>A+(B-A%B)%B;for(var E=1;E<=4;E*=2){var C=B*(1+.2/E);if(C=Math.min(C,A+100663296),P(Math.min(Q,g(Math.max(A,C),65536))))return!0}return!1},fd_write:function(A,B,Q,g){for(var E=0,C=0;C>2],D=i[B+4>>2];B+=8;for(var w=0;w>2]=E,0}};function l(A){function Q(){S||(S=!0,g.calledRun=!0,t||(u(r),B(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)A=g.postRun.shift(),F.unshift(A);var A;u(F)}()))}G>0||(function(){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)A=g.preRun.shift(),n.unshift(A);var A;u(n)}(),G>0||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),Q()}),1)):Q()))}if(function(){var A={env:p,wasi_snapshot_preview1:p};function B(A,B){var Q,E=A.exports;g.asm=E,h((w=g.asm.memory).buffer),g.asm.__indirect_function_table,Q=g.asm.__wasm_call_ctors,r.unshift(Q),function(A){if(G--,g.monitorRunDependencies&&g.monitorRunDependencies(G),0==G&&N){var B=N;N=null,B()}}()}function E(A){B(A.instance)}function C(B){return(!D&&I&&"function"==typeof fetch?fetch(H,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+H+"'";return A.arrayBuffer()})).catch((function(){return U(H)})):Promise.resolve().then((function(){return U(H)}))).then((function(B){return WebAssembly.instantiate(B,A)})).then((function(A){return A})).then(B,(function(A){s("failed to asynchronously prepare wasm: "+A),L(A)}))}if(G++,g.monitorRunDependencies&&g.monitorRunDependencies(G),g.instantiateWasm)try{return g.instantiateWasm(A,B)}catch(A){s("Module.instantiateWasm callback failed with error: "+A),Q(A)}(D||"function"!=typeof WebAssembly.instantiateStreaming||Y(H)||"function"!=typeof fetch?C(E):fetch(H,{credentials:"same-origin"}).then((function(B){return WebAssembly.instantiateStreaming(B,A).then(E,(function(A){return s("wasm streaming compile failed: "+A),s("falling back to ArrayBuffer instantiation"),C(E)}))}))).catch(Q)}(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.__wasm_call_ctors).apply(null,arguments)},g.___errno_location=function(){return(g.___errno_location=g.asm.__errno_location).apply(null,arguments)},g._omalloc=function(){return(g._omalloc=g.asm.omalloc).apply(null,arguments)},g._ofree=function(){return(g._ofree=g.asm.ofree).apply(null,arguments)},g._getLastOnigError=function(){return(g._getLastOnigError=g.asm.getLastOnigError).apply(null,arguments)},g._createOnigScanner=function(){return(g._createOnigScanner=g.asm.createOnigScanner).apply(null,arguments)},g._freeOnigScanner=function(){return(g._freeOnigScanner=g.asm.freeOnigScanner).apply(null,arguments)},g._findNextOnigScannerMatch=function(){return(g._findNextOnigScannerMatch=g.asm.findNextOnigScannerMatch).apply(null,arguments)},g._findNextOnigScannerMatchDbg=function(){return(g._findNextOnigScannerMatchDbg=g.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},g.stackSave=function(){return(g.stackSave=g.asm.stackSave).apply(null,arguments)},g.stackRestore=function(){return(g.stackRestore=g.asm.stackRestore).apply(null,arguments)},g.stackAlloc=function(){return(g.stackAlloc=g.asm.stackAlloc).apply(null,arguments)},g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.dynCall_jiji).apply(null,arguments)},g.UTF8ToString=function(A,B){return A?a(c,A,B):""},N=function A(){S||l(),S||(N=A)},g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return l(),A.ready});let zA=null;class _A{static _utf8ByteLength(A){let B=0;for(let Q=0,g=A.length;Q=55296&&E<=56319&&Q+1=56320&&B<=57343&&(C=65536+(E-55296<<10)|B-56320,I=!0)}B+=C<=127?1:C<=2047?2:C<=65535?3:4,I&&Q++}return B}constructor(A){const B=A.length,Q=_A._utf8ByteLength(A),g=Q!==B,E=g?new Uint32Array(B+1):null;g&&(E[B]=Q);const C=g?new Uint32Array(Q+1):null;g&&(C[Q]=B);const I=new Uint8Array(Q);let D=0;for(let Q=0;Q=55296&&w<=56319&&Q+1=56320&&B<=57343&&(o=65536+(w-55296<<10)|B-56320,s=!0)}g&&(E[Q]=D,s&&(E[Q+1]=D),o<=127?C[D+0]=Q:o<=2047?(C[D+0]=Q,C[D+1]=Q):o<=65535?(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q):(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q,C[D+3]=Q)),o<=127?I[D++]=o:o<=2047?(I[D++]=192|(1984&o)>>>6,I[D++]=128|(63&o)>>>0):o<=65535?(I[D++]=224|(61440&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0):(I[D++]=240|(1835008&o)>>>18,I[D++]=128|(258048&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0),s&&Q++}this.utf16Length=B,this.utf8Length=Q,this.utf16Value=A,this.utf8Value=I,this.utf16OffsetToUtf8=E,this.utf8OffsetToUtf16=C}createString(A){const B=A._omalloc(this.utf8Length);return A.HEAPU8.set(this.utf8Value,B),B}}class $A{constructor(A){if(this.id=++$A.LAST_ID,!zA)throw new Error("Must invoke loadWASM first.");this._onigBinding=zA,this.content=A;const B=new _A(A);this.utf16Length=B.utf16Length,this.utf8Length=B.utf8Length,this.utf16OffsetToUtf8=B.utf16OffsetToUtf8,this.utf8OffsetToUtf16=B.utf8OffsetToUtf16,this.utf8Length<1e4&&!$A._sharedPtrInUse?($A._sharedPtr||($A._sharedPtr=zA._omalloc(1e4)),$A._sharedPtrInUse=!0,zA.HEAPU8.set(B.utf8Value,$A._sharedPtr),this.ptr=$A._sharedPtr):this.ptr=B.createString(zA)}convertUtf8OffsetToUtf16(A){return this.utf8OffsetToUtf16?A<0?0:A>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[A]:A}convertUtf16OffsetToUtf8(A){return this.utf16OffsetToUtf8?A<0?0:A>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[A]:A}dispose(){this.ptr===$A._sharedPtr?$A._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}$A.LAST_ID=0,$A._sharedPtr=0,$A._sharedPtrInUse=!1;class AB{constructor(A){if(!zA)throw new Error("Must invoke loadWASM first.");const B=[],Q=[];for(let g=0,E=A.length;gWebAssembly.instantiateStreaming(A,B)}(g):function(A){return async B=>{const Q=await A.arrayBuffer();return WebAssembly.instantiate(Q,B)}}(g):function(A){return B=>WebAssembly.instantiate(A,B)}(g)}return QB=new Promise(((A,B)=>{g=A,E=B})),function(A,B,Q,g){VA({print:B,instantiateWasm:(B,Q)=>{if("undefined"==typeof performance){const A=()=>Date.now();B.env.emscripten_get_now=A,B.wasi_snapshot_preview1.emscripten_get_now=A}return A(B).then((A=>Q(A.instance)),g),{}}}).then((A=>{zA=A,Q()}))}(B,Q,g,E),QB}function EB(A){return new $A(A)}function CB(A){return new AB(A)}function IB(A){const B=F[A];if(!B)return;const{id:Q}=G[B];return{id:Q,scopeName:B}}const DB=new Map;let wB,oB;async function sB(A){if(DB.has(A))return DB.get(A);const B=function(A){return G[A]}(A);if(!B)return Promise.resolve(void 0);let Q;if(void 0===wB&&(Q=eB(B.path),wB=Q.then((()=>!0)).catch((()=>!1))),void 0===oB&&(oB=await wB),oB){const g=Q||eB(B.path);return DB.set(A,g),g}const E=g(`grammars/${B.id}`);B.embeddedScopes.forEach((A=>{if(!DB.has(A)){const B=E.then((B=>B.find((B=>B.scopeName===A))));DB.set(A,B)}}));const C=E.then((B=>B.find((B=>B.scopeName===A))));return DB.set(A,C),C}async function eB(A){return await Q("grammars",A)}const cB=30720,iB=16744448,tB=16775168,MB=11,aB=15,hB={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function nB(A,B,Q,g){const{tokens:E,ruleStack:C}=A.tokenizeLine2(Q,B),I=[];let D=Q.length;for(let A=E.length-2;A>=0;A-=2){const B=E[A],g=E[A+1],C=Q.slice(B,D);I.unshift({content:C,metadata:g}),D=B}let w=[];if(null==g?void 0:g.preserveWhitespace)w=I;else for(let A=0;A0?w[w.length-1].content+=B.content:A{const{rawTokens:E,nextStack:C}=nB(B,g,A,{preserveWhitespace:!0}),I=E.map((({content:A,metadata:B})=>({content:A,style:FB(B,Q)}))),D=function(A,B,Q,g){const{tokens:E}=Q.tokenizeLine(A,B),C=[];for(let B=0;B{if(w+=A.content.length,Q>>aB]},g=(A&cB)>>>MB;return g&hB.Italic&&(Q.fontStyle="italic"),g&hB.Bold&&(Q.fontWeight="bold"),g&hB.Underline&&(Q.textDecoration="underline"),g&hB.Strikethrough&&(Q.textDecoration="line-through"),Q}var GB=function(A){var B=null;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)B=Buffer.from(A,"base64");else{var Q=globalThis.atob(A),g=Q.length;B=new Uint8Array(new ArrayBuffer(g));for(var E=0;E({createOnigScanner:CB,createOnigString:EB})));NB=new jA({onigLib:A,loadGrammar:A=>sB(A)})}const B=A.filter((A=>!LB(A))).map((A=>{const B=IB(A);if(!B)throw new RB(A);return NB.loadGrammar(B.scopeName)}));return Promise.all(B)}function kB(A){if(LB(A))return{langId:A,grammar:null};const B=IB(A);if(!B)throw new RB(A);const Q=function(A){const{_syncRegistry:B}=NB;return null==B?void 0:B._grammars.get(A)}(B.scopeName);if(!Q)throw new Error(`Syntax highlighting error: grammar for ${A} not loaded`);return{langId:B.id,grammar:Q}}class RB extends Error{constructor(A){super(`Unknown language: ${A}`),this.alias=A}}function KB(A,B,Q){NB.setTheme(Q);const g=function(A){const B=NB.getColorMap();return A.colorNames?B.map((B=>Object.keys(A.colorNames).find((Q=>A.colorNames[Q].toUpperCase()===B.toUpperCase()))||B)):B}(Q);return function(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=nB(B,g,A);return g=C,E.map((({content:A,metadata:B})=>({content:A,style:FB(B,Q)})))}))}(A,B,g)}function YB(A){return A.split(/\r?\n|\r/g).map((A=>[{content:A,style:{}}]))}function UB(A,B){return PB(A.slice(1,-1)).map((A=>{const{from:Q,to:g}=uB(A);return{lineNumber:B,fromColumn:Q,toColumn:g}}))}function uB(A){const[B,Q]=A.split(":");if(!yB(B))throw new JB(B);const g=Number(B);if(g<1)throw new SB;if(Q){if(!yB(Q))throw new JB(Q);return{from:g,to:+Q}}return{from:g,to:g}}function PB(A){return A.split(/,(?![^\[]*\])/g)}function yB(A){A=A.toString();var B=Math.abs(A),Q=parseInt(A,10);return!isNaN(B)&&Q===B&&B.toString()===A}class JB extends Error{constructor(A){super(`Invalid number "${A}" in range string`),this.number=A,Object.setPrototypeOf(this,new.target.prototype)}}class SB extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const pB="#001",lB="#010",dB={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:pB}},{scope:"comment",settings:{foreground:lB}}]};function fB(A,B,Q,g){const E=B?KB(A,B,dB):YB(A),C=[];let I=1;const D=E.map((A=>{const{annotations:B,lineWithoutComments:E}=function(A,B,Q,g){if(g in xB&&A.some((A=>A.style.color===lB))){const B=xB[g];A=A.flatMap((A=>{if(A.style.color!==lB)return[A];const Q=A.content.trimStart();if(Q.startsWith(B)){const g=Q.slice(B.length),E=[{content:A.content.slice(0,A.content.length-g.length),style:{color:pB}}];return g.length&&E.push({content:g,style:A.style}),E}return[A]}))}if(!A.some((A=>A.style.color===pB)))return{annotations:[],lineWithoutComments:A};const E=[];let C=0;for(;C!A.tokens.includes(B)));I.every((A=>""===A.content.trim()))&&(I=null);return{annotations:E.map((A=>({name:A.name,query:A.query,lineNumber:A.lineNumber,rangeString:A.rangeString}))),lineWithoutComments:I}}(A,g,I,Q);if(C.push(...B),!E)return null;const D=E.map((A=>A.content)).join("");return["mdx","jsx","tsx"].includes(Q)&&B.length>0&&"{}"===D.trim()?null:(I++,D)})).filter((A=>null!==A)).join("\n"),w=C.map((A=>{var{rangeString:B,lineNumber:Q}=A,g=function(A,B){var Q={};for(var g in A)Object.prototype.hasOwnProperty.call(A,g)&&B.indexOf(g)<0&&(Q[g]=A[g]);if(null!=A&&"function"==typeof Object.getOwnPropertySymbols){var E=0;for(g=Object.getOwnPropertySymbols(A);EA.ranges.length>0));return{newCode:D,annotations:w}}const xB={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function mB(A,B,Q){return A&&A.startsWith("(/")?function(A,B,Q){const g=B.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);const E=new RegExp(g[1],g[2]),C=A.split(/\r?\n/).slice(Q-1).join("\n");if(!E.global){const A=E.exec(C);if(!A)return[];const B=C.slice(0,A.index).split("\n").length+Q-1;return[{fromLineNumber:B,toLineNumber:B+A[0].split("\n").length-1}]}let I;const D=[];for(;I=E.exec(C);){const A=C.slice(0,I.index).split("\n").length+Q-1,B=A+I[0].split("\n").length-1,g=D[D.length-1];g&&g.fromLineNumber===A||D.push({fromLineNumber:A,toLineNumber:B})}return D}(Q,A,B):A&&A.startsWith("[/")?function(A,B,Q){const g=B.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);let E=g[2]||"";E+="d";const C=new RegExp(g[1],E);let I=A.split(/\r?\n/);I=I.slice(Q-1),C.multiline||(I=[I[0]]);const D=[];return I.forEach(((A,B)=>{if(!C.global){if(D.length>0)return;const g=C.exec(A);if(!g)return;const E=g.indices[1]||g.indices[0];return void D.push({lineNumber:B+Q,fromColumn:E[0]+1,toColumn:E[1]})}let g;for(;g=C.exec(A);){const A=g.indices[1]||g.indices[0];D.push({lineNumber:B+Q,fromColumn:A[0]+1,toColumn:A[1]})}})),D}(Q,A,B):function(A,B){return A?A.startsWith("[")?UB(A,B):PB(A.slice(1,-1)).map((A=>{if(A.includes("[")){const[Q,g]=A.split("["),E=Number(Q),C=B+E-1;if(!yB(C))throw new JB(Q);return UB("["+g,C)}const{from:Q,to:g}=uB(A);return[{fromLineNumber:Q+B-1,toLineNumber:g+B-1}]})).flat():[{fromLineNumber:B,toLineNumber:B}]}(A,B)}function OB(A,B){var Q;const g=A.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),E=g[1],C=g[2],I=null===(Q=g[3])||void 0===Q?void 0:Q.trim();return B.includes(E)?{name:E,rangeString:C,query:I}:null}function qB(A,B){let Q=[],g=1;return A.forEach((A=>{Q.push({fromColumn:g,toColumn:g+A.content.length-1,token:A}),g+=A.content.length})),B.forEach((A=>{Q=function(A,B){const{range:Q}=B,{fromColumn:g,toColumn:E}=Q,C=[];let I=0;for(;IE){const[A,Q]=WB(B,E+1);D.tokens.push(A),C.push(Q)}else D.tokens.push(B);I++}else C.push(D);for(;IbB(A)))}function bB(A){return"tokens"in A?{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromColumn:A.fromColumn,toColumn:A.toColumn,tokens:A.tokens.map((A=>bB(A)))}:A.token}function WB(A,B){if("token"in A){const Q=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(0,B-A.fromColumn)}),g=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(B-A.fromColumn)});return[Object.assign(Object.assign({},A),{toColumn:B-1,token:Q}),Object.assign(Object.assign({},A),{fromColumn:B,token:g})]}{const Q=[],g=[];A.tokens.forEach((A=>{if(A.toColumn=B)g.push(A);else{const[E,C]=WB(A,B);Q.push(E),g.push(C)}}));return[Object.assign(Object.assign({},A),{toColumn:B-1,tokens:Q}),Object.assign(Object.assign({},A),{fromColumn:B,tokens:g})]}}function TB(A,B){let Q=A.map(((A,B)=>({fromLineNumber:B+1,toLineNumber:B+1,line:A})));return B.forEach((A=>{Q=function(A,B){const{range:Q,name:g,query:E}=B,{fromLineNumber:C,toLineNumber:I}=Q,D=[];let w=0;for(;wI){const[A,Q]=XB(B,I+1);o.lines.push(A),D.push(Q)}else o.lines.push(B);w++}else D.push(o);for(;wvB(A)))}function vB(A){return"line"in A?{lineNumber:A.fromLineNumber,tokens:A.line.tokens}:{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromLineNumber:A.fromLineNumber,toLineNumber:A.toLineNumber,lines:A.lines.map((A=>vB(A)))}}function XB(A,B){if("line"in A)return[Object.assign(Object.assign({},A),{toLineNumber:B-1}),Object.assign(Object.assign({},A),{fromLineNumber:B})];{const Q=[],g=[];return A.lines.forEach((A=>{if(A.toLineNumber=B)g.push(A);else{const[E,C]=XB(A,B);Q.push(E),g.push(C)}})),[Object.assign(Object.assign({},A),{toLineNumber:B-1,lines:Q}),Object.assign(Object.assign({},A),{fromLineNumber:B,lines:g})]}}function ZB(A,B){const{inlineAnnotations:Q,multilineAnnotations:g}=function(A){const B=[],Q=[];return A.forEach((A=>{A.ranges.forEach((g=>{"lineNumber"in g?B.push(Object.assign(Object.assign({},A),{range:g})):Q.push(Object.assign(Object.assign({},A),{range:g}))}))})),{inlineAnnotations:B,multilineAnnotations:Q}}(B);return TB(A.map(((A,B)=>{const g=Q.filter((A=>A.range.lineNumber===B+1));return{lineNumber:B+1,tokens:qB(A,g)}})),g)}var jB=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],VB={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function zB(A,B){const Q=A.indexOf("[",B);if(-1!==Q){const B=A.indexOf("m",Q);return{sequence:A.substring(Q+2,B).split(";"),startPosition:Q,position:B+1}}return{position:A.length}}function _B(A,B){let Q=1;const g=A[B+Q++];let E;if("2"===g){const g=[A[B+Q++],A[B+Q++],A[B+Q]].map((A=>Number.parseInt(A)));3!==g.length||g.some((A=>Number.isNaN(A)))||(E={type:"rgb",rgb:g})}else if("5"===g){const g=Number.parseInt(A[B+Q]);Number.isNaN(g)||(E={type:"table",index:Number(g)})}return[Q,E]}function $B(A){const B=[];for(let Q=0;Q=90&&E<=97?B.push({type:"setForegroundColor",value:{type:"named",name:jB[E-90+8]}}):E>=100&&E<=107&&B.push({type:"setBackgroundColor",value:{type:"named",name:jB[E-100+8]}})}return B}function AQ(A,B){const Q=function(){let A=null,B=null,Q=new Set;return{parse(g){const E=[];let C=0;do{const I=zB(g,C),D=I.sequence?g.substring(C,I.startPosition):g.substring(C);if(D.length>0&&E.push({value:D,foreground:A,background:B,decorations:new Set(Q)}),I.sequence){const g=$B(I.sequence);for(const E of g)"resetAll"===E.type?(A=null,B=null,Q.clear()):"resetForegroundColor"===E.type?A=null:"resetBackgroundColor"===E.type?B=null:"resetDecoration"===E.type&&Q.delete(E.value);for(const E of g)"setForegroundColor"===E.type?A=E.value:"setBackgroundColor"===E.type?B=E.value:"setDecoration"===E.type&&Q.add(E.value)}C=I.position}while(Cfunction(A,B,Q){const g=A.parse(B),E=g.map((({value:A,foreground:B,background:g,decorations:E})=>{const C=BQ(B,Q),I={};C&&(I.color=C);const D=BQ(g,Q);return D&&(I.background=D),E.has("bold")&&(I.fontWeight="bold"),E.has("italic")&&(I.fontStyle="italic"),E.has("underline")&&(I.textDecoration="underline"),E.has("strikethrough")&&(I.textDecoration="line-through"),E.has("reverse")&&(I.color=D,I.background=C),E.has("dim")&&(I.opacity=.5),{content:A,style:I}}));return E}(Q,A,B)));return g}function BQ(A,B){if(A){if("named"===A.type){return o(B,"terminal.ansi"+(A.name[0].toUpperCase()+A.name.slice(1)))}if("rgb"===A.type){const[B,Q,g]=A.rgb;return`rgb(${B}, ${Q}, ${g})`}}}async function QQ(A,B){await Promise.all([HB(A),t(B)])}function gQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");const{langId:I,grammar:D}=kB(C),w=M(Q),s="text"==I?YB(E):"terminal"==I?AQ(E,w):(null==g?void 0:g.scopes)?function(A,B,Q){return NB.setTheme(Q),rB(A,B,NB.getColorMap())}(E,D,w):KB(E,D,w),e="terminal"==I?function(A){return{color:o(A,"terminal.foreground"),background:o(A,"terminal.background")}}(w):{color:w.foreground,background:w.background};if(function(A){return"annotations"in A}(g)){return{lines:ZB(s,(null==g?void 0:g.annotations)||[]),lang:I,style:e}}return{lines:s,lang:I,style:e}}exports.LANG_NAMES=["abap","actionscript-3","ada","apache","apex","apl","applescript","ara","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","cadence","cdc","clarity","clj","clojure","cmake","cmd","cobol","codeql","coffee","console","cpp","crystal","cs","csharp","css","cue","cypher","d","dart","dax","diff","docker","dockerfile","dream-maker","elixir","elm","erb","erl","erlang","f#","fish","fs","fsharp","fsl","gdresource","gdscript","gdshader","gherkin","git-commit","git-rebase","glimmer-js","glimmer-ts","glsl","gnuplot","go","graphql","groovy","hack","haml","handlebars","haskell","hbs","hcl","hjson","hlsl","hs","html","http","imba","ini","jade","java","javascript","jinja-html","jison","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kusto","latex","less","liquid","lisp","logo","lua","make","makefile","markdown","marko","matlab","md","mdx","mermaid","narrat","nextflow","nginx","nim","nix","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","polar","postcss","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","r","raku","razor","rb","reg","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","sparql","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","tasl","tcl","terminal","tex","text","toml","ts","tsx","turtle","twig","txt","typescript","v","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vyper","wasm","wenyan","wgsl","wolfram","xml","xsl","yaml","yml","zenscript","zsh","文言"],exports.THEME_NAMES=h,exports.UnknownLanguageError=RB,exports.UnknownThemeError=n,exports.extractAnnotations=async function(A,B,Q){if(!Q)return{code:A,annotations:[]};await HB([B]);const{grammar:g,langId:E}=kB(B),{newCode:C,annotations:I}=fB(A,g,E,Q);return{code:C,annotations:I}},exports.getThemeColors=async function(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");return await QQ([],A),r(M(A))},exports.getThemeColorsSync=function(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");return r(M(A))},exports.highlight=async function(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");return await QQ([C],Q),gQ(E,C,Q,g)},exports.highlightSync=gQ,exports.preload=QQ; diff --git a/lib/test/__snapshots__/esm.test.ts.snap b/lib/test/__snapshots__/esm.test.ts.snap index 222c940..2ee8fc4 100644 --- a/lib/test/__snapshots__/esm.test.ts.snap +++ b/lib/test/__snapshots__/esm.test.ts.snap @@ -837,13 +837,25 @@ exports[`extract annottations from jsx 1`] = ` exports[`extract annottations from jsx 2`] = ` { - "lang": "mdx", + "lang": "jsx", "lines": [ { "lineNumber": 1, "tokens": [ { - "content": "const x = ", + "content": "const ", + "style": { + "color": "#569CD6", + }, + }, + { + "content": "x", + "style": { + "color": "#4FC1FF", + }, + }, + { + "content": " = ", "style": { "color": "#D4D4D4", }, diff --git a/lib/test/cjs.test.ts b/lib/test/cjs.test.ts deleted file mode 100644 index f7026ff..0000000 --- a/lib/test/cjs.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { highlight, extractAnnotations } from "../dist/index.cjs.js"; -import { runTests } from "./highlight.js"; -import { runAnnotationTests } from "./annotations.js"; - -runTests({ highlight }); - -runAnnotationTests({ extractAnnotations, highlight }); From c1cb766fd81b2e1307f5b2e29190bae06656fb83 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo Date: Fri, 2 Aug 2024 13:54:56 +0200 Subject: [PATCH 3/9] mjs grammars --- lib/dist/grammar/abap.mjs | 1 + lib/dist/grammar/actionscript-3.mjs | 1 + lib/dist/grammar/ada.mjs | 1 + lib/dist/grammar/angular-html.mjs | 1 + lib/dist/grammar/angular-ts.mjs | 1 + lib/dist/grammar/apache.mjs | 1 + lib/dist/grammar/apex.mjs | 1 + lib/dist/grammar/apl.mjs | 1 + lib/dist/grammar/applescript.mjs | 1 + lib/dist/grammar/ara.mjs | 1 + lib/dist/grammar/asciidoc.mjs | 1 + lib/dist/grammar/asm.mjs | 1 + lib/dist/grammar/astro.mjs | 1 + lib/dist/grammar/awk.mjs | 1 + lib/dist/grammar/ballerina.mjs | 1 + lib/dist/grammar/bat.mjs | 1 + lib/dist/grammar/beancount.mjs | 1 + lib/dist/grammar/berry.mjs | 1 + lib/dist/grammar/bibtex.mjs | 1 + lib/dist/grammar/bicep.mjs | 1 + lib/dist/grammar/blade.mjs | 1 + lib/dist/grammar/c.mjs | 1 + lib/dist/grammar/cadence.mjs | 1 + lib/dist/grammar/clarity.mjs | 1 + lib/dist/grammar/clojure.mjs | 1 + lib/dist/grammar/cmake.mjs | 1 + lib/dist/grammar/cobol.mjs | 1 + lib/dist/grammar/codeowners.mjs | 1 + lib/dist/grammar/codeql.mjs | 1 + lib/dist/grammar/coffee.mjs | 1 + lib/dist/grammar/common-lisp.mjs | 1 + lib/dist/grammar/cpp.mjs | 1 + lib/dist/grammar/crystal.mjs | 1 + lib/dist/grammar/csharp.mjs | 1 + lib/dist/grammar/css.mjs | 1 + lib/dist/grammar/csv.mjs | 1 + lib/dist/grammar/cue.mjs | 1 + lib/dist/grammar/cypher.mjs | 1 + lib/dist/grammar/d.mjs | 1 + lib/dist/grammar/dart.mjs | 1 + lib/dist/grammar/dax.mjs | 1 + lib/dist/grammar/desktop.mjs | 1 + lib/dist/grammar/diff.mjs | 1 + lib/dist/grammar/docker.mjs | 1 + lib/dist/grammar/dotenv.mjs | 1 + lib/dist/grammar/dream-maker.mjs | 1 + lib/dist/grammar/edge.mjs | 1 + lib/dist/grammar/elixir.mjs | 1 + lib/dist/grammar/elm.mjs | 1 + lib/dist/grammar/emacs-lisp.mjs | 1 + lib/dist/grammar/erb.mjs | 1 + lib/dist/grammar/erlang.mjs | 1 + lib/dist/grammar/fennel.mjs | 1 + lib/dist/grammar/fish.mjs | 1 + lib/dist/grammar/fluent.mjs | 1 + lib/dist/grammar/fortran-fixed-form.mjs | 1 + lib/dist/grammar/fortran-free-form.mjs | 1 + lib/dist/grammar/fsharp.mjs | 1 + lib/dist/grammar/gdresource.mjs | 1 + lib/dist/grammar/gdscript.mjs | 1 + lib/dist/grammar/gdshader.mjs | 1 + lib/dist/grammar/genie.mjs | 1 + lib/dist/grammar/gherkin.mjs | 1 + lib/dist/grammar/git-commit.mjs | 1 + lib/dist/grammar/git-rebase.mjs | 1 + lib/dist/grammar/gleam.mjs | 1 + lib/dist/grammar/glimmer-js.mjs | 1 + lib/dist/grammar/glimmer-ts.mjs | 1 + lib/dist/grammar/glsl.mjs | 1 + lib/dist/grammar/gnuplot.mjs | 1 + lib/dist/grammar/go.mjs | 1 + lib/dist/grammar/graphql.mjs | 1 + lib/dist/grammar/groovy.mjs | 1 + lib/dist/grammar/hack.mjs | 1 + lib/dist/grammar/haml.mjs | 1 + lib/dist/grammar/handlebars.mjs | 1 + lib/dist/grammar/haskell.mjs | 1 + lib/dist/grammar/haxe.mjs | 1 + lib/dist/grammar/hcl.mjs | 1 + lib/dist/grammar/hjson.mjs | 1 + lib/dist/grammar/hlsl.mjs | 1 + lib/dist/grammar/html-derivative.mjs | 1 + lib/dist/grammar/html.mjs | 1 + lib/dist/grammar/http.mjs | 1 + lib/dist/grammar/hxml.mjs | 1 + lib/dist/grammar/hy.mjs | 1 + lib/dist/grammar/imba.mjs | 1 + lib/dist/grammar/ini.mjs | 1 + lib/dist/grammar/java.mjs | 1 + lib/dist/grammar/javascript.mjs | 1 + lib/dist/grammar/jinja.mjs | 1 + lib/dist/grammar/jison.mjs | 1 + lib/dist/grammar/json.mjs | 1 + lib/dist/grammar/json5.mjs | 1 + lib/dist/grammar/jsonc.mjs | 1 + lib/dist/grammar/jsonl.mjs | 1 + lib/dist/grammar/jsonnet.mjs | 1 + lib/dist/grammar/jssm.mjs | 1 + lib/dist/grammar/jsx.mjs | 1 + lib/dist/grammar/julia.mjs | 1 + lib/dist/grammar/kotlin.mjs | 1 + lib/dist/grammar/kusto.mjs | 1 + lib/dist/grammar/latex.mjs | 1 + lib/dist/grammar/lean.mjs | 1 + lib/dist/grammar/less.mjs | 1 + lib/dist/grammar/liquid.mjs | 1 + lib/dist/grammar/log.mjs | 1 + lib/dist/grammar/logo.mjs | 1 + lib/dist/grammar/lua.mjs | 1 + lib/dist/grammar/luau.mjs | 1 + lib/dist/grammar/make.mjs | 1 + lib/dist/grammar/markdown.mjs | 1 + lib/dist/grammar/marko.mjs | 1 + lib/dist/grammar/matlab.mjs | 1 + lib/dist/grammar/mdc.mjs | 1 + lib/dist/grammar/mdx.mjs | 1 + lib/dist/grammar/mermaid.mjs | 1 + lib/dist/grammar/mojo.mjs | 1 + lib/dist/grammar/move.mjs | 1 + lib/dist/grammar/narrat.mjs | 1 + lib/dist/grammar/nextflow.mjs | 1 + lib/dist/grammar/nginx.mjs | 1 + lib/dist/grammar/nim.mjs | 1 + lib/dist/grammar/nix.mjs | 1 + lib/dist/grammar/nushell.mjs | 1 + lib/dist/grammar/objective-c.mjs | 1 + lib/dist/grammar/objective-cpp.mjs | 1 + lib/dist/grammar/ocaml.mjs | 1 + lib/dist/grammar/pascal.mjs | 1 + lib/dist/grammar/perl.mjs | 1 + lib/dist/grammar/php.mjs | 1 + lib/dist/grammar/plsql.mjs | 1 + lib/dist/grammar/po.mjs | 1 + lib/dist/grammar/postcss.mjs | 1 + lib/dist/grammar/powerquery.mjs | 1 + lib/dist/grammar/powershell.mjs | 1 + lib/dist/grammar/prisma.mjs | 1 + lib/dist/grammar/prolog.mjs | 1 + lib/dist/grammar/proto.mjs | 1 + lib/dist/grammar/pug.mjs | 1 + lib/dist/grammar/puppet.mjs | 1 + lib/dist/grammar/purescript.mjs | 1 + lib/dist/grammar/python.mjs | 1 + lib/dist/grammar/qml.mjs | 1 + lib/dist/grammar/qmldir.mjs | 1 + lib/dist/grammar/qss.mjs | 1 + lib/dist/grammar/r.mjs | 1 + lib/dist/grammar/racket.mjs | 1 + lib/dist/grammar/raku.mjs | 1 + lib/dist/grammar/razor.mjs | 1 + lib/dist/grammar/reg.mjs | 1 + lib/dist/grammar/regexp.mjs | 1 + lib/dist/grammar/rel.mjs | 1 + lib/dist/grammar/riscv.mjs | 1 + lib/dist/grammar/rst.mjs | 1 + lib/dist/grammar/ruby.mjs | 1 + lib/dist/grammar/rust.mjs | 1 + lib/dist/grammar/sas.mjs | 1 + lib/dist/grammar/sass.mjs | 1 + lib/dist/grammar/scala.mjs | 1 + lib/dist/grammar/scheme.mjs | 1 + lib/dist/grammar/scss.mjs | 1 + lib/dist/grammar/shaderlab.mjs | 1 + lib/dist/grammar/shellscript.mjs | 1 + lib/dist/grammar/shellsession.mjs | 1 + lib/dist/grammar/smalltalk.mjs | 1 + lib/dist/grammar/solidity.mjs | 1 + lib/dist/grammar/soy.mjs | 1 + lib/dist/grammar/sparql.mjs | 1 + lib/dist/grammar/splunk.mjs | 1 + lib/dist/grammar/sql.mjs | 1 + lib/dist/grammar/ssh-config.mjs | 1 + lib/dist/grammar/stata.mjs | 1 + lib/dist/grammar/stylus.mjs | 1 + lib/dist/grammar/svelte.mjs | 1 + lib/dist/grammar/swift.mjs | 1 + lib/dist/grammar/system-verilog.mjs | 1 + lib/dist/grammar/systemd.mjs | 1 + lib/dist/grammar/tasl.mjs | 1 + lib/dist/grammar/tcl.mjs | 1 + lib/dist/grammar/templ.mjs | 1 + lib/dist/grammar/terraform.mjs | 1 + lib/dist/grammar/tex.mjs | 1 + lib/dist/grammar/toml.mjs | 1 + lib/dist/grammar/ts-tags.mjs | 1 + lib/dist/grammar/tsv.mjs | 1 + lib/dist/grammar/tsx.mjs | 1 + lib/dist/grammar/turtle.mjs | 1 + lib/dist/grammar/twig.mjs | 1 + lib/dist/grammar/typescript.mjs | 1 + lib/dist/grammar/typespec.mjs | 1 + lib/dist/grammar/typst.mjs | 1 + lib/dist/grammar/v.mjs | 1 + lib/dist/grammar/vala.mjs | 1 + lib/dist/grammar/vb.mjs | 1 + lib/dist/grammar/verilog.mjs | 1 + lib/dist/grammar/vhdl.mjs | 1 + lib/dist/grammar/viml.mjs | 1 + lib/dist/grammar/vue-html.mjs | 1 + lib/dist/grammar/vue.mjs | 1 + lib/dist/grammar/vyper.mjs | 1 + lib/dist/grammar/wasm.mjs | 1 + lib/dist/grammar/wenyan.mjs | 1 + lib/dist/grammar/wgsl.mjs | 1 + lib/dist/grammar/wikitext.mjs | 1 + lib/dist/grammar/wolfram.mjs | 1 + lib/dist/grammar/xml.mjs | 1 + lib/dist/grammar/xsl.mjs | 1 + lib/dist/grammar/yaml.mjs | 1 + lib/dist/grammar/zenscript.mjs | 1 + lib/dist/grammar/zig.mjs | 1 + lib/grammars/abap.tmLanguage.json | 378 - lib/grammars/actionscript-3.tmLanguage.json | 949 - lib/grammars/ada.tmLanguage.json | 3871 ---- lib/grammars/apache.tmLanguage.json | 562 - lib/grammars/apex.tmLanguage.json | 3199 --- lib/grammars/apl.tmLanguage.json | 1468 -- lib/grammars/applescript.tmLanguage.json | 1403 -- lib/grammars/ara.tmLanguage.json | 425 - lib/grammars/asm.tmLanguage.json | 1346 -- lib/grammars/astro.tmLanguage.json | 773 - lib/grammars/awk.tmLanguage.json | 386 - lib/grammars/ballerina.tmLanguage.json | 3784 ---- lib/grammars/bat.tmLanguage.json | 788 - lib/grammars/beancount.tmLanguage.json | 829 - lib/grammars/berry.tmLanguage.json | 123 - lib/grammars/bibtex.tmLanguage.json | 401 - lib/grammars/bicep.tmLanguage.json | 236 - lib/grammars/blade.tmLanguage.json | 3867 ---- lib/grammars/c.tmLanguage.json | 3555 ---- lib/grammars/cadence.tmLanguage.json | 738 - lib/grammars/clarity.tmLanguage.json | 875 - lib/grammars/clojure.tmLanguage.json | 431 - lib/grammars/cmake.tmLanguage.json | 139 - lib/grammars/cobol.tmLanguage.json | 1121 -- lib/grammars/codeql.tmLanguage.json | 1485 -- lib/grammars/coffee.tmLanguage.json | 1316 -- lib/grammars/cpp-macro.tmLanguage.json | 9366 --------- lib/grammars/cpp.tmLanguage.json | 16474 ---------------- lib/grammars/crystal.tmLanguage.json | 1868 -- lib/grammars/csharp.tmLanguage.json | 5010 ----- lib/grammars/css.tmLanguage.json | 1865 -- lib/grammars/cue.tmLanguage.json | 1126 -- lib/grammars/cypher.tmLanguage.json | 349 - lib/grammars/d.tmLanguage.json | 3180 --- lib/grammars/dart.tmLanguage.json | 528 - lib/grammars/dax.tmLanguage.json | 185 - lib/grammars/diff.tmLanguage.json | 160 - lib/grammars/docker.tmLanguage.json | 102 - lib/grammars/dream-maker.tmLanguage.json | 636 - lib/grammars/elixir.tmLanguage.json | 1013 - lib/grammars/elm.tmLanguage.json | 748 - lib/grammars/erb.tmLanguage.json | 153 - lib/grammars/erlang.tmLanguage.json | 1730 -- lib/grammars/fish.tmLanguage.json | 189 - lib/grammars/fsharp.tmLanguage.json | 1835 -- lib/grammars/gdresource.tmLanguage.json | 326 - lib/grammars/gdscript.tmLanguage.json | 883 - lib/grammars/gdshader.tmLanguage.json | 403 - lib/grammars/gherkin.tmLanguage.json | 132 - lib/grammars/git-commit.tmLanguage.json | 90 - lib/grammars/git-rebase.tmLanguage.json | 61 - lib/grammars/glimmer-js.tmLanguage.json | 98 - lib/grammars/glimmer-ts.tmLanguage.json | 98 - lib/grammars/glsl.tmLanguage.json | 58 - lib/grammars/gnuplot.tmLanguage.json | 887 - lib/grammars/go.tmLanguage.json | 1017 - lib/grammars/graphql.tmLanguage.json | 1289 -- lib/grammars/groovy.tmLanguage.json | 1383 -- lib/grammars/hack.tmLanguage.json | 2645 --- lib/grammars/haml.tmLanguage.json | 596 - lib/grammars/handlebars.tmLanguage.json | 852 - lib/grammars/haskell.tmLanguage.json | 2428 --- lib/grammars/hcl.tmLanguage.json | 780 - lib/grammars/hjson.tmLanguage.json | 819 - lib/grammars/hlsl.tmLanguage.json | 217 - lib/grammars/html.tmLanguage.json | 2643 --- lib/grammars/http.tmLanguage.json | 297 - lib/grammars/imba.tmLanguage.json | 2693 --- lib/grammars/ini.tmLanguage.json | 113 - lib/grammars/java.tmLanguage.json | 1855 -- lib/grammars/javascript.tmLanguage.json | 5989 ------ lib/grammars/jinja-html.tmLanguage.json | 16 - lib/grammars/jinja.tmLanguage.json | 345 - lib/grammars/jison.tmLanguage.json | 712 - lib/grammars/json.tmLanguage.json | 213 - lib/grammars/json5.tmLanguage.json | 241 - lib/grammars/jsonc.tmLanguage.json | 213 - lib/grammars/jsonl.tmLanguage.json | 213 - lib/grammars/jsonnet.tmLanguage.json | 211 - lib/grammars/jssm.tmLanguage.json | 156 - lib/grammars/jsx.tmLanguage.json | 5989 ------ lib/grammars/julia.tmLanguage.json | 983 - lib/grammars/kotlin.tmLanguage.json | 566 - lib/grammars/kusto.tmLanguage.json | 684 - lib/grammars/latex.tmLanguage.json | 2365 --- lib/grammars/less.tmLanguage.json | 542 - lib/grammars/liquid.tmLanguage.json | 987 - lib/grammars/lisp.tmLanguage.json | 117 - lib/grammars/logo.tmLanguage.json | 56 - lib/grammars/lua.tmLanguage.json | 942 - lib/grammars/make.tmLanguage.json | 634 - lib/grammars/markdown.tmLanguage.json | 3037 --- lib/grammars/marko.tmLanguage.json | 1342 -- lib/grammars/matlab.tmLanguage.json | 1130 -- lib/grammars/mdx.tmLanguage.json | 5627 ------ lib/grammars/mermaid.tmLanguage.json | 1343 -- lib/grammars/narrat.tmLanguage.json | 227 - lib/grammars/nextflow.tmLanguage.json | 299 - lib/grammars/nginx.tmLanguage.json | 2122 -- lib/grammars/nim.tmLanguage.json | 1521 -- lib/grammars/nix.tmLanguage.json | 1198 -- lib/grammars/objective-c.tmLanguage.json | 3755 ---- lib/grammars/objective-cpp.tmLanguage.json | 7247 ------- lib/grammars/ocaml.tmLanguage.json | 2961 --- lib/grammars/pascal.tmLanguage.json | 145 - lib/grammars/perl.tmLanguage.json | 2977 --- lib/grammars/php-html.tmLanguage.json | 98 - lib/grammars/php.tmLanguage.json | 4030 ---- lib/grammars/plsql.tmLanguage.json | 232 - lib/grammars/polar.tmLanguage.json | 331 - lib/grammars/postcss.tmLanguage.json | 374 - lib/grammars/powerquery.tmLanguage.json | 346 - lib/grammars/powershell.tmLanguage.json | 1029 - lib/grammars/prisma.tmLanguage.json | 441 - lib/grammars/prolog.tmLanguage.json | 296 - lib/grammars/proto.tmLanguage.json | 504 - lib/grammars/pug.tmLanguage.json | 1038 - lib/grammars/puppet.tmLanguage.json | 774 - lib/grammars/purescript.tmLanguage.json | 886 - lib/grammars/python.tmLanguage.json | 4213 ---- lib/grammars/r.tmLanguage.json | 642 - lib/grammars/raku.tmLanguage.json | 315 - lib/grammars/razor.tmLanguage.json | 1809 -- lib/grammars/reg.tmLanguage.json | 133 - lib/grammars/rel.tmLanguage.json | 200 - lib/grammars/riscv.tmLanguage.json | 294 - lib/grammars/rst.tmLanguage.json | 740 - lib/grammars/ruby.tmLanguage.json | 2775 --- lib/grammars/rust.tmLanguage.json | 1170 -- lib/grammars/sas.tmLanguage.json | 301 - lib/grammars/sass.tmLanguage.json | 615 - lib/grammars/scala.tmLanguage.json | 1304 -- lib/grammars/scheme.tmLanguage.json | 381 - lib/grammars/scss.tmLanguage.json | 1879 -- lib/grammars/shaderlab.tmLanguage.json | 204 - lib/grammars/shellscript.tmLanguage.json | 2009 -- lib/grammars/shellsession.tmLanguage.json | 30 - lib/grammars/smalltalk.tmLanguage.json | 239 - lib/grammars/solidity.tmLanguage.json | 1208 -- lib/grammars/sparql.tmLanguage.json | 40 - lib/grammars/sql.tmLanguage.json | 635 - lib/grammars/ssh-config.tmLanguage.json | 84 - lib/grammars/stata.tmLanguage.json | 3045 --- lib/grammars/stylus.tmLanguage.json | 1202 -- lib/grammars/svelte.tmLanguage.json | 1161 -- lib/grammars/swift.tmLanguage.json | 3303 ---- lib/grammars/system-verilog.tmLanguage.json | 1055 - lib/grammars/tasl.tmLanguage.json | 290 - lib/grammars/tcl.tmLanguage.json | 290 - lib/grammars/tex.tmLanguage.json | 286 - lib/grammars/toml.tmLanguage.json | 430 - lib/grammars/tsx.tmLanguage.json | 5989 ------ lib/grammars/turtle.tmLanguage.json | 257 - lib/grammars/twig.tmLanguage.json | 1372 -- .../{txt.tmLanguage.json => txt.json} | 0 lib/grammars/typescript.tmLanguage.json | 5740 ------ lib/grammars/v.tmLanguage.json | 994 - lib/grammars/vb.tmLanguage.json | 238 - lib/grammars/verilog.tmLanguage.json | 303 - lib/grammars/vhdl.tmLanguage.json | 1436 -- lib/grammars/viml.tmLanguage.json | 441 - lib/grammars/vue-html.tmLanguage.json | 558 - lib/grammars/vue.tmLanguage.json | 1237 -- lib/grammars/vyper.tmLanguage.json | 5420 ----- lib/grammars/wasm.tmLanguage.json | 830 - lib/grammars/wenyan.tmLanguage.json | 129 - lib/grammars/wgsl.tmLanguage.json | 380 - lib/grammars/wolfram.tmLanguage.json | 2363 --- lib/grammars/xml.tmLanguage.json | 387 - lib/grammars/xsl.tmLanguage.json | 94 - lib/grammars/yaml.tmLanguage.json | 621 - lib/grammars/zenscript.tmLanguage.json | 254 - 383 files changed, 211 insertions(+), 232437 deletions(-) create mode 100644 lib/dist/grammar/abap.mjs create mode 100644 lib/dist/grammar/actionscript-3.mjs create mode 100644 lib/dist/grammar/ada.mjs create mode 100644 lib/dist/grammar/angular-html.mjs create mode 100644 lib/dist/grammar/angular-ts.mjs create mode 100644 lib/dist/grammar/apache.mjs create mode 100644 lib/dist/grammar/apex.mjs create mode 100644 lib/dist/grammar/apl.mjs create mode 100644 lib/dist/grammar/applescript.mjs create mode 100644 lib/dist/grammar/ara.mjs create mode 100644 lib/dist/grammar/asciidoc.mjs create mode 100644 lib/dist/grammar/asm.mjs create mode 100644 lib/dist/grammar/astro.mjs create mode 100644 lib/dist/grammar/awk.mjs create mode 100644 lib/dist/grammar/ballerina.mjs create mode 100644 lib/dist/grammar/bat.mjs create mode 100644 lib/dist/grammar/beancount.mjs create mode 100644 lib/dist/grammar/berry.mjs create mode 100644 lib/dist/grammar/bibtex.mjs create mode 100644 lib/dist/grammar/bicep.mjs create mode 100644 lib/dist/grammar/blade.mjs create mode 100644 lib/dist/grammar/c.mjs create mode 100644 lib/dist/grammar/cadence.mjs create mode 100644 lib/dist/grammar/clarity.mjs create mode 100644 lib/dist/grammar/clojure.mjs create mode 100644 lib/dist/grammar/cmake.mjs create mode 100644 lib/dist/grammar/cobol.mjs create mode 100644 lib/dist/grammar/codeowners.mjs create mode 100644 lib/dist/grammar/codeql.mjs create mode 100644 lib/dist/grammar/coffee.mjs create mode 100644 lib/dist/grammar/common-lisp.mjs create mode 100644 lib/dist/grammar/cpp.mjs create mode 100644 lib/dist/grammar/crystal.mjs create mode 100644 lib/dist/grammar/csharp.mjs create mode 100644 lib/dist/grammar/css.mjs create mode 100644 lib/dist/grammar/csv.mjs create mode 100644 lib/dist/grammar/cue.mjs create mode 100644 lib/dist/grammar/cypher.mjs create mode 100644 lib/dist/grammar/d.mjs create mode 100644 lib/dist/grammar/dart.mjs create mode 100644 lib/dist/grammar/dax.mjs create mode 100644 lib/dist/grammar/desktop.mjs create mode 100644 lib/dist/grammar/diff.mjs create mode 100644 lib/dist/grammar/docker.mjs create mode 100644 lib/dist/grammar/dotenv.mjs create mode 100644 lib/dist/grammar/dream-maker.mjs create mode 100644 lib/dist/grammar/edge.mjs create mode 100644 lib/dist/grammar/elixir.mjs create mode 100644 lib/dist/grammar/elm.mjs create mode 100644 lib/dist/grammar/emacs-lisp.mjs create mode 100644 lib/dist/grammar/erb.mjs create mode 100644 lib/dist/grammar/erlang.mjs create mode 100644 lib/dist/grammar/fennel.mjs create mode 100644 lib/dist/grammar/fish.mjs create mode 100644 lib/dist/grammar/fluent.mjs create mode 100644 lib/dist/grammar/fortran-fixed-form.mjs create mode 100644 lib/dist/grammar/fortran-free-form.mjs create mode 100644 lib/dist/grammar/fsharp.mjs create mode 100644 lib/dist/grammar/gdresource.mjs create mode 100644 lib/dist/grammar/gdscript.mjs create mode 100644 lib/dist/grammar/gdshader.mjs create mode 100644 lib/dist/grammar/genie.mjs create mode 100644 lib/dist/grammar/gherkin.mjs create mode 100644 lib/dist/grammar/git-commit.mjs create mode 100644 lib/dist/grammar/git-rebase.mjs create mode 100644 lib/dist/grammar/gleam.mjs create mode 100644 lib/dist/grammar/glimmer-js.mjs create mode 100644 lib/dist/grammar/glimmer-ts.mjs create mode 100644 lib/dist/grammar/glsl.mjs create mode 100644 lib/dist/grammar/gnuplot.mjs create mode 100644 lib/dist/grammar/go.mjs create mode 100644 lib/dist/grammar/graphql.mjs create mode 100644 lib/dist/grammar/groovy.mjs create mode 100644 lib/dist/grammar/hack.mjs create mode 100644 lib/dist/grammar/haml.mjs create mode 100644 lib/dist/grammar/handlebars.mjs create mode 100644 lib/dist/grammar/haskell.mjs create mode 100644 lib/dist/grammar/haxe.mjs create mode 100644 lib/dist/grammar/hcl.mjs create mode 100644 lib/dist/grammar/hjson.mjs create mode 100644 lib/dist/grammar/hlsl.mjs create mode 100644 lib/dist/grammar/html-derivative.mjs create mode 100644 lib/dist/grammar/html.mjs create mode 100644 lib/dist/grammar/http.mjs create mode 100644 lib/dist/grammar/hxml.mjs create mode 100644 lib/dist/grammar/hy.mjs create mode 100644 lib/dist/grammar/imba.mjs create mode 100644 lib/dist/grammar/ini.mjs create mode 100644 lib/dist/grammar/java.mjs create mode 100644 lib/dist/grammar/javascript.mjs create mode 100644 lib/dist/grammar/jinja.mjs create mode 100644 lib/dist/grammar/jison.mjs create mode 100644 lib/dist/grammar/json.mjs create mode 100644 lib/dist/grammar/json5.mjs create mode 100644 lib/dist/grammar/jsonc.mjs create mode 100644 lib/dist/grammar/jsonl.mjs create mode 100644 lib/dist/grammar/jsonnet.mjs create mode 100644 lib/dist/grammar/jssm.mjs create mode 100644 lib/dist/grammar/jsx.mjs create mode 100644 lib/dist/grammar/julia.mjs create mode 100644 lib/dist/grammar/kotlin.mjs create mode 100644 lib/dist/grammar/kusto.mjs create mode 100644 lib/dist/grammar/latex.mjs create mode 100644 lib/dist/grammar/lean.mjs create mode 100644 lib/dist/grammar/less.mjs create mode 100644 lib/dist/grammar/liquid.mjs create mode 100644 lib/dist/grammar/log.mjs create mode 100644 lib/dist/grammar/logo.mjs create mode 100644 lib/dist/grammar/lua.mjs create mode 100644 lib/dist/grammar/luau.mjs create mode 100644 lib/dist/grammar/make.mjs create mode 100644 lib/dist/grammar/markdown.mjs create mode 100644 lib/dist/grammar/marko.mjs create mode 100644 lib/dist/grammar/matlab.mjs create mode 100644 lib/dist/grammar/mdc.mjs create mode 100644 lib/dist/grammar/mdx.mjs create mode 100644 lib/dist/grammar/mermaid.mjs create mode 100644 lib/dist/grammar/mojo.mjs create mode 100644 lib/dist/grammar/move.mjs create mode 100644 lib/dist/grammar/narrat.mjs create mode 100644 lib/dist/grammar/nextflow.mjs create mode 100644 lib/dist/grammar/nginx.mjs create mode 100644 lib/dist/grammar/nim.mjs create mode 100644 lib/dist/grammar/nix.mjs create mode 100644 lib/dist/grammar/nushell.mjs create mode 100644 lib/dist/grammar/objective-c.mjs create mode 100644 lib/dist/grammar/objective-cpp.mjs create mode 100644 lib/dist/grammar/ocaml.mjs create mode 100644 lib/dist/grammar/pascal.mjs create mode 100644 lib/dist/grammar/perl.mjs create mode 100644 lib/dist/grammar/php.mjs create mode 100644 lib/dist/grammar/plsql.mjs create mode 100644 lib/dist/grammar/po.mjs create mode 100644 lib/dist/grammar/postcss.mjs create mode 100644 lib/dist/grammar/powerquery.mjs create mode 100644 lib/dist/grammar/powershell.mjs create mode 100644 lib/dist/grammar/prisma.mjs create mode 100644 lib/dist/grammar/prolog.mjs create mode 100644 lib/dist/grammar/proto.mjs create mode 100644 lib/dist/grammar/pug.mjs create mode 100644 lib/dist/grammar/puppet.mjs create mode 100644 lib/dist/grammar/purescript.mjs create mode 100644 lib/dist/grammar/python.mjs create mode 100644 lib/dist/grammar/qml.mjs create mode 100644 lib/dist/grammar/qmldir.mjs create mode 100644 lib/dist/grammar/qss.mjs create mode 100644 lib/dist/grammar/r.mjs create mode 100644 lib/dist/grammar/racket.mjs create mode 100644 lib/dist/grammar/raku.mjs create mode 100644 lib/dist/grammar/razor.mjs create mode 100644 lib/dist/grammar/reg.mjs create mode 100644 lib/dist/grammar/regexp.mjs create mode 100644 lib/dist/grammar/rel.mjs create mode 100644 lib/dist/grammar/riscv.mjs create mode 100644 lib/dist/grammar/rst.mjs create mode 100644 lib/dist/grammar/ruby.mjs create mode 100644 lib/dist/grammar/rust.mjs create mode 100644 lib/dist/grammar/sas.mjs create mode 100644 lib/dist/grammar/sass.mjs create mode 100644 lib/dist/grammar/scala.mjs create mode 100644 lib/dist/grammar/scheme.mjs create mode 100644 lib/dist/grammar/scss.mjs create mode 100644 lib/dist/grammar/shaderlab.mjs create mode 100644 lib/dist/grammar/shellscript.mjs create mode 100644 lib/dist/grammar/shellsession.mjs create mode 100644 lib/dist/grammar/smalltalk.mjs create mode 100644 lib/dist/grammar/solidity.mjs create mode 100644 lib/dist/grammar/soy.mjs create mode 100644 lib/dist/grammar/sparql.mjs create mode 100644 lib/dist/grammar/splunk.mjs create mode 100644 lib/dist/grammar/sql.mjs create mode 100644 lib/dist/grammar/ssh-config.mjs create mode 100644 lib/dist/grammar/stata.mjs create mode 100644 lib/dist/grammar/stylus.mjs create mode 100644 lib/dist/grammar/svelte.mjs create mode 100644 lib/dist/grammar/swift.mjs create mode 100644 lib/dist/grammar/system-verilog.mjs create mode 100644 lib/dist/grammar/systemd.mjs create mode 100644 lib/dist/grammar/tasl.mjs create mode 100644 lib/dist/grammar/tcl.mjs create mode 100644 lib/dist/grammar/templ.mjs create mode 100644 lib/dist/grammar/terraform.mjs create mode 100644 lib/dist/grammar/tex.mjs create mode 100644 lib/dist/grammar/toml.mjs create mode 100644 lib/dist/grammar/ts-tags.mjs create mode 100644 lib/dist/grammar/tsv.mjs create mode 100644 lib/dist/grammar/tsx.mjs create mode 100644 lib/dist/grammar/turtle.mjs create mode 100644 lib/dist/grammar/twig.mjs create mode 100644 lib/dist/grammar/typescript.mjs create mode 100644 lib/dist/grammar/typespec.mjs create mode 100644 lib/dist/grammar/typst.mjs create mode 100644 lib/dist/grammar/v.mjs create mode 100644 lib/dist/grammar/vala.mjs create mode 100644 lib/dist/grammar/vb.mjs create mode 100644 lib/dist/grammar/verilog.mjs create mode 100644 lib/dist/grammar/vhdl.mjs create mode 100644 lib/dist/grammar/viml.mjs create mode 100644 lib/dist/grammar/vue-html.mjs create mode 100644 lib/dist/grammar/vue.mjs create mode 100644 lib/dist/grammar/vyper.mjs create mode 100644 lib/dist/grammar/wasm.mjs create mode 100644 lib/dist/grammar/wenyan.mjs create mode 100644 lib/dist/grammar/wgsl.mjs create mode 100644 lib/dist/grammar/wikitext.mjs create mode 100644 lib/dist/grammar/wolfram.mjs create mode 100644 lib/dist/grammar/xml.mjs create mode 100644 lib/dist/grammar/xsl.mjs create mode 100644 lib/dist/grammar/yaml.mjs create mode 100644 lib/dist/grammar/zenscript.mjs create mode 100644 lib/dist/grammar/zig.mjs delete mode 100644 lib/grammars/abap.tmLanguage.json delete mode 100644 lib/grammars/actionscript-3.tmLanguage.json delete mode 100644 lib/grammars/ada.tmLanguage.json delete mode 100644 lib/grammars/apache.tmLanguage.json delete mode 100644 lib/grammars/apex.tmLanguage.json delete mode 100644 lib/grammars/apl.tmLanguage.json delete mode 100644 lib/grammars/applescript.tmLanguage.json delete mode 100644 lib/grammars/ara.tmLanguage.json delete mode 100644 lib/grammars/asm.tmLanguage.json delete mode 100644 lib/grammars/astro.tmLanguage.json delete mode 100644 lib/grammars/awk.tmLanguage.json delete mode 100644 lib/grammars/ballerina.tmLanguage.json delete mode 100644 lib/grammars/bat.tmLanguage.json delete mode 100644 lib/grammars/beancount.tmLanguage.json delete mode 100644 lib/grammars/berry.tmLanguage.json delete mode 100644 lib/grammars/bibtex.tmLanguage.json delete mode 100644 lib/grammars/bicep.tmLanguage.json delete mode 100644 lib/grammars/blade.tmLanguage.json delete mode 100644 lib/grammars/c.tmLanguage.json delete mode 100644 lib/grammars/cadence.tmLanguage.json delete mode 100644 lib/grammars/clarity.tmLanguage.json delete mode 100644 lib/grammars/clojure.tmLanguage.json delete mode 100644 lib/grammars/cmake.tmLanguage.json delete mode 100644 lib/grammars/cobol.tmLanguage.json delete mode 100644 lib/grammars/codeql.tmLanguage.json delete mode 100644 lib/grammars/coffee.tmLanguage.json delete mode 100644 lib/grammars/cpp-macro.tmLanguage.json delete mode 100644 lib/grammars/cpp.tmLanguage.json delete mode 100644 lib/grammars/crystal.tmLanguage.json delete mode 100644 lib/grammars/csharp.tmLanguage.json delete mode 100644 lib/grammars/css.tmLanguage.json delete mode 100644 lib/grammars/cue.tmLanguage.json delete mode 100644 lib/grammars/cypher.tmLanguage.json delete mode 100644 lib/grammars/d.tmLanguage.json delete mode 100644 lib/grammars/dart.tmLanguage.json delete mode 100644 lib/grammars/dax.tmLanguage.json delete mode 100644 lib/grammars/diff.tmLanguage.json delete mode 100644 lib/grammars/docker.tmLanguage.json delete mode 100644 lib/grammars/dream-maker.tmLanguage.json delete mode 100644 lib/grammars/elixir.tmLanguage.json delete mode 100644 lib/grammars/elm.tmLanguage.json delete mode 100644 lib/grammars/erb.tmLanguage.json delete mode 100644 lib/grammars/erlang.tmLanguage.json delete mode 100644 lib/grammars/fish.tmLanguage.json delete mode 100644 lib/grammars/fsharp.tmLanguage.json delete mode 100644 lib/grammars/gdresource.tmLanguage.json delete mode 100644 lib/grammars/gdscript.tmLanguage.json delete mode 100644 lib/grammars/gdshader.tmLanguage.json delete mode 100644 lib/grammars/gherkin.tmLanguage.json delete mode 100644 lib/grammars/git-commit.tmLanguage.json delete mode 100644 lib/grammars/git-rebase.tmLanguage.json delete mode 100644 lib/grammars/glimmer-js.tmLanguage.json delete mode 100644 lib/grammars/glimmer-ts.tmLanguage.json delete mode 100644 lib/grammars/glsl.tmLanguage.json delete mode 100644 lib/grammars/gnuplot.tmLanguage.json delete mode 100644 lib/grammars/go.tmLanguage.json delete mode 100644 lib/grammars/graphql.tmLanguage.json delete mode 100644 lib/grammars/groovy.tmLanguage.json delete mode 100644 lib/grammars/hack.tmLanguage.json delete mode 100644 lib/grammars/haml.tmLanguage.json delete mode 100644 lib/grammars/handlebars.tmLanguage.json delete mode 100644 lib/grammars/haskell.tmLanguage.json delete mode 100644 lib/grammars/hcl.tmLanguage.json delete mode 100644 lib/grammars/hjson.tmLanguage.json delete mode 100644 lib/grammars/hlsl.tmLanguage.json delete mode 100644 lib/grammars/html.tmLanguage.json delete mode 100644 lib/grammars/http.tmLanguage.json delete mode 100644 lib/grammars/imba.tmLanguage.json delete mode 100644 lib/grammars/ini.tmLanguage.json delete mode 100644 lib/grammars/java.tmLanguage.json delete mode 100644 lib/grammars/javascript.tmLanguage.json delete mode 100644 lib/grammars/jinja-html.tmLanguage.json delete mode 100644 lib/grammars/jinja.tmLanguage.json delete mode 100644 lib/grammars/jison.tmLanguage.json delete mode 100644 lib/grammars/json.tmLanguage.json delete mode 100644 lib/grammars/json5.tmLanguage.json delete mode 100644 lib/grammars/jsonc.tmLanguage.json delete mode 100644 lib/grammars/jsonl.tmLanguage.json delete mode 100644 lib/grammars/jsonnet.tmLanguage.json delete mode 100644 lib/grammars/jssm.tmLanguage.json delete mode 100644 lib/grammars/jsx.tmLanguage.json delete mode 100644 lib/grammars/julia.tmLanguage.json delete mode 100644 lib/grammars/kotlin.tmLanguage.json delete mode 100644 lib/grammars/kusto.tmLanguage.json delete mode 100644 lib/grammars/latex.tmLanguage.json delete mode 100644 lib/grammars/less.tmLanguage.json delete mode 100644 lib/grammars/liquid.tmLanguage.json delete mode 100644 lib/grammars/lisp.tmLanguage.json delete mode 100644 lib/grammars/logo.tmLanguage.json delete mode 100644 lib/grammars/lua.tmLanguage.json delete mode 100644 lib/grammars/make.tmLanguage.json delete mode 100644 lib/grammars/markdown.tmLanguage.json delete mode 100644 lib/grammars/marko.tmLanguage.json delete mode 100644 lib/grammars/matlab.tmLanguage.json delete mode 100644 lib/grammars/mdx.tmLanguage.json delete mode 100644 lib/grammars/mermaid.tmLanguage.json delete mode 100644 lib/grammars/narrat.tmLanguage.json delete mode 100644 lib/grammars/nextflow.tmLanguage.json delete mode 100644 lib/grammars/nginx.tmLanguage.json delete mode 100644 lib/grammars/nim.tmLanguage.json delete mode 100644 lib/grammars/nix.tmLanguage.json delete mode 100644 lib/grammars/objective-c.tmLanguage.json delete mode 100644 lib/grammars/objective-cpp.tmLanguage.json delete mode 100644 lib/grammars/ocaml.tmLanguage.json delete mode 100644 lib/grammars/pascal.tmLanguage.json delete mode 100644 lib/grammars/perl.tmLanguage.json delete mode 100644 lib/grammars/php-html.tmLanguage.json delete mode 100644 lib/grammars/php.tmLanguage.json delete mode 100644 lib/grammars/plsql.tmLanguage.json delete mode 100644 lib/grammars/polar.tmLanguage.json delete mode 100644 lib/grammars/postcss.tmLanguage.json delete mode 100644 lib/grammars/powerquery.tmLanguage.json delete mode 100644 lib/grammars/powershell.tmLanguage.json delete mode 100644 lib/grammars/prisma.tmLanguage.json delete mode 100644 lib/grammars/prolog.tmLanguage.json delete mode 100644 lib/grammars/proto.tmLanguage.json delete mode 100644 lib/grammars/pug.tmLanguage.json delete mode 100644 lib/grammars/puppet.tmLanguage.json delete mode 100644 lib/grammars/purescript.tmLanguage.json delete mode 100644 lib/grammars/python.tmLanguage.json delete mode 100644 lib/grammars/r.tmLanguage.json delete mode 100644 lib/grammars/raku.tmLanguage.json delete mode 100644 lib/grammars/razor.tmLanguage.json delete mode 100644 lib/grammars/reg.tmLanguage.json delete mode 100644 lib/grammars/rel.tmLanguage.json delete mode 100644 lib/grammars/riscv.tmLanguage.json delete mode 100644 lib/grammars/rst.tmLanguage.json delete mode 100644 lib/grammars/ruby.tmLanguage.json delete mode 100644 lib/grammars/rust.tmLanguage.json delete mode 100644 lib/grammars/sas.tmLanguage.json delete mode 100644 lib/grammars/sass.tmLanguage.json delete mode 100644 lib/grammars/scala.tmLanguage.json delete mode 100644 lib/grammars/scheme.tmLanguage.json delete mode 100644 lib/grammars/scss.tmLanguage.json delete mode 100644 lib/grammars/shaderlab.tmLanguage.json delete mode 100644 lib/grammars/shellscript.tmLanguage.json delete mode 100644 lib/grammars/shellsession.tmLanguage.json delete mode 100644 lib/grammars/smalltalk.tmLanguage.json delete mode 100644 lib/grammars/solidity.tmLanguage.json delete mode 100644 lib/grammars/sparql.tmLanguage.json delete mode 100644 lib/grammars/sql.tmLanguage.json delete mode 100644 lib/grammars/ssh-config.tmLanguage.json delete mode 100644 lib/grammars/stata.tmLanguage.json delete mode 100644 lib/grammars/stylus.tmLanguage.json delete mode 100644 lib/grammars/svelte.tmLanguage.json delete mode 100644 lib/grammars/swift.tmLanguage.json delete mode 100644 lib/grammars/system-verilog.tmLanguage.json delete mode 100644 lib/grammars/tasl.tmLanguage.json delete mode 100644 lib/grammars/tcl.tmLanguage.json delete mode 100644 lib/grammars/tex.tmLanguage.json delete mode 100644 lib/grammars/toml.tmLanguage.json delete mode 100644 lib/grammars/tsx.tmLanguage.json delete mode 100644 lib/grammars/turtle.tmLanguage.json delete mode 100644 lib/grammars/twig.tmLanguage.json rename lib/grammars/{txt.tmLanguage.json => txt.json} (100%) delete mode 100644 lib/grammars/typescript.tmLanguage.json delete mode 100644 lib/grammars/v.tmLanguage.json delete mode 100644 lib/grammars/vb.tmLanguage.json delete mode 100644 lib/grammars/verilog.tmLanguage.json delete mode 100644 lib/grammars/vhdl.tmLanguage.json delete mode 100644 lib/grammars/viml.tmLanguage.json delete mode 100644 lib/grammars/vue-html.tmLanguage.json delete mode 100644 lib/grammars/vue.tmLanguage.json delete mode 100644 lib/grammars/vyper.tmLanguage.json delete mode 100644 lib/grammars/wasm.tmLanguage.json delete mode 100644 lib/grammars/wenyan.tmLanguage.json delete mode 100644 lib/grammars/wgsl.tmLanguage.json delete mode 100644 lib/grammars/wolfram.tmLanguage.json delete mode 100644 lib/grammars/xml.tmLanguage.json delete mode 100644 lib/grammars/xsl.tmLanguage.json delete mode 100644 lib/grammars/yaml.tmLanguage.json delete mode 100644 lib/grammars/zenscript.tmLanguage.json diff --git a/lib/dist/grammar/abap.mjs b/lib/dist/grammar/abap.mjs new file mode 100644 index 0000000..0d83ec4 --- /dev/null +++ b/lib/dist/grammar/abap.mjs @@ -0,0 +1 @@ +var n="ABAP",e=["abap","ABAP"],a="/\\*\\*|\\{\\s*$",t="\\*\\*/|^\\s*\\}",s="abap",i=[{captures:{1:{name:"punctuation.definition.comment.abap"}},match:"^\\*.*\\n?",name:"comment.line.full.abap"},{captures:{1:{name:"punctuation.definition.comment.abap"}},match:'".*\\n?',name:"comment.line.partial.abap"},{match:"(?|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)",name:"variable.other.abap"},{match:"\\b[0-9]+(\\b|\\.|,)",name:"constant.numeric.abap"},{match:"(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)",name:"storage.modifier.class.abap"},{begin:"(?]*)+(?=\\s+|\\.)"},{begin:"(?=[A-Za-z_][A-Za-z0-9_]*)",end:"(?![A-Za-z0-9_])",patterns:[{include:"#generic_names"}]}]},{begin:"(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)",name:"storage.modifier.method.abap"}]},{begin:"(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-\\?]*)",beginCaptures:{1:{name:"storage.type.block.abap"},2:{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)",name:"storage.modifier.form.abap"},{include:"#abaptypes"},{include:"#keywords_followed_by_braces"}]},{match:"(?i)(endclass|endmethod|endform|endinterface)",name:"storage.type.block.end.abap"},{match:"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)",name:"variable.other.field.symbol.abap"},{include:"#keywords"},{include:"#abap_constants"},{include:"#reserved_names"},{include:"#operators"},{include:"#builtin_functions"},{include:"#abaptypes"},{include:"#system_fields"},{include:"#sql_functions"},{include:"#sql_types"}],o={abap_constants:{match:"(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|abap_undefined|table_line|\n%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|\nadabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\s|\\.|,)",name:"constant.language.abap"},abaptypes:{patterns:[{match:"(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)",name:"support.type.abap"},{match:"(?ix)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)",name:"keyword.control.simple.abap"}]},arithmetic_operator:{match:"(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)",name:"keyword.control.simple.abap"},builtin_functions:{match:"(?ix)(?<=\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\()",name:"entity.name.function.builtin.abap"},comparison_operator:{match:"(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)",name:"keyword.control.simple.abap"},control_keywords:{match:"(?ix)(^|\\s)(\nat|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|\nendloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)",name:"keyword.control.flow.abap"},generic_names:{match:"[A-Za-z_][A-Za-z0-9_]*"},keywords:{patterns:[{include:"#main_keywords"},{include:"#text_symbols"},{include:"#control_keywords"},{include:"#keywords_followed_by_braces"}]},keywords_followed_by_braces:{captures:{1:{name:"keyword.control.simple.abap"},2:{name:"variable.other.abap"}},match:"(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((?)\\)"},logical_operator:{match:"(?i)(?<=\\s)(not|or|and)(?=\\s)",name:"keyword.control.simple.abap"},main_keywords:{match:"(?ix)(?<=^|\\s)(\nabap-source|\nabstract|\naccept|\naccepting|\naccess|\naccording|\naction|\nactivation|\nactual|\nadd|\nadd-corresponding|\nadjacent|\nalias|\naliases|\nalign|\nall|\nallocate|\nalpha|\namdp|\nanalysis|\nanalyzer|\nappend|\nappending|\napplication|\narchive|\narea|\narithmetic|\nas|\nascending|\nassert|\nassign|\nassigned|\nassigning|\nassociation|\nasynchronous|\nat|\nattributes|\nauthority|\nauthority-check|\nauthorization|\nauto|\nback|\nbackground|\nbackward|\nbadi|\nbase|\nbefore|\nbegin|\nbehavior|\nbetween|\nbinary|\nbit|\nblank|\nblanks|\nblock|\nblocks|\nbound|\nboundaries|\nbounds|\nboxed|\nbreak|\nbreak-point|\nbuffer|\nby|\nbypassing|\nbyte|\nbyte-order|\ncall|\ncalling|\ncast|\ncasting|\ncds|\ncenter|\ncentered|\nchange|\nchanging|\nchannels|\nchar-to-hex|\ncharacter|\ncheck|\ncheckbox|\ncid|\ncircular|\nclass|\nclass-data|\nclass-events|\nclass-method|\nclass-methods|\nclass-pool|\ncleanup|\nclear|\nclient|\nclients|\nclock|\nclone|\nclose|\ncnt|\ncode|\ncollect|\ncolor|\ncolumn|\ncomment|\ncomments|\ncommit|\ncommon|\ncommunication|\ncomparing|\ncomponent|\ncomponents|\ncompression|\ncompute|\nconcatenate|\ncond|\ncondense|\ncondition|\nconnection|\nconstant|\nconstants|\ncontext|\ncontexts|\ncontrol|\ncontrols|\nconv|\nconversion|\nconvert|\ncopy|\ncorresponding|\ncount|\ncountry|\ncover|\ncreate|\ncurrency|\ncurrent|\ncursor|\ncustomer-function|\ndata|\ndatabase|\ndatainfo|\ndataset|\ndate|\ndaylight|\nddl|\ndeallocate|\ndecimals|\ndeclarations|\ndeep|\ndefault|\ndeferred|\ndefine|\ndelete|\ndeleting|\ndemand|\ndescending|\ndescribe|\ndestination|\ndetail|\ndetermine|\ndialog|\ndid|\ndirectory|\ndiscarding|\ndisplay|\ndisplay-mode|\ndistance|\ndistinct|\ndivide|\ndivide-corresponding|\ndummy|\nduplicate|\nduplicates|\nduration|\nduring|\ndynpro|\nedit|\neditor-call|\nempty|\nenabled|\nenabling|\nencoding|\nend|\nend-enhancement-section|\nend-of-definition|\nend-of-page|\nend-of-selection|\nend-test-injection|\nend-test-seam|\nendenhancement|\nendexec|\nendfunction|\nendian|\nending|\nendmodule|\nendprovide|\nendselect|\nendwith|\nengineering|\nenhancement|\nenhancement-point|\nenhancement-section|\nenhancements|\nentities|\nentity|\nentries|\nentry|\nenum|\nenvironment|\nequiv|\nerrors|\nescape|\nescaping|\nevent|\nevents|\nexact|\nexcept|\nexception|\nexception-table|\nexceptions|\nexcluding|\nexec|\nexecute|\nexists|\nexit|\nexit-command|\nexpanding|\nexplicit|\nexponent|\nexport|\nexporting|\nextended|\nextension|\nextract|\nfail|\nfailed|\nfeatures|\nfetch|\nfield|\nfield-groups|\nfield-symbols|\nfields|\nfile|\nfill|\nfilter|\nfilters|\nfinal|\nfind|\nfirst|\nfirst-line|\nfixed-point|\nflush|\nfollowing|\nfor|\nformat|\nforward|\nfound|\nframe|\nframes|\nfree|\nfrom|\nfull|\nfunction|\nfunction-pool|\ngenerate|\nget|\ngiving|\ngraph|\ngroup|\ngroups|\nhandle|\nhandler|\nhashed|\nhaving|\nheader|\nheaders|\nheading|\nhelp-id|\nhelp-request|\nhide|\nhint|\nhold|\nhotspot|\nicon|\nid|\nidentification|\nidentifier|\nignore|\nignoring|\nimmediately|\nimplemented|\nimplicit|\nimport|\nimporting|\nin|\ninactive|\nincl|\ninclude|\nincludes|\nincrement|\nindex|\nindex-line|\nindicators|\ninfotypes|\ninheriting|\ninit|\ninitial|\ninitialization|\ninner|\ninput|\ninsert|\ninstance|\ninstances|\nintensified|\ninterface|\ninterface-pool|\ninterfaces|\ninternal|\nintervals|\ninto|\ninverse|\ninverted-date|\nis|\niso|\njob|\njoin|\nkeep|\nkeeping|\nkernel|\nkey|\nkeys|\nkeywords|\nkind|\nlanguage|\nlast|\nlate|\nlayout|\nleading|\nleave|\nleft|\nleft-justified|\nleftplus|\nleftspace|\nlegacy|\nlength|\nlet|\nlevel|\nlevels|\nlike|\nline|\nline-count|\nline-selection|\nline-size|\nlinefeed|\nlines|\nlink|\nlist|\nlist-processing|\nlistbox|\nload|\nload-of-program|\nlocal|\nlocale|\nlock|\nlocks|\nlog-point|\nlogical|\nlower|\nmapped|\nmapping|\nmargin|\nmark|\nmask|\nmatch|\nmatchcode|\nmaximum|\nmembers|\nmemory|\nmesh|\nmessage|\nmessage-id|\nmessages|\nmessaging|\nmethod|\nmethods|\nmode|\nmodif|\nmodifier|\nmodify|\nmodule|\nmove|\nmove-corresponding|\nmultiply|\nmultiply-corresponding|\nname|\nnametab|\nnative|\nnested|\nnesting|\nnew|\nnew-line|\nnew-page|\nnew-section|\nnext|\nno|\nno-display|\nno-extension|\nno-gap|\nno-gaps|\nno-grouping|\nno-heading|\nno-scrolling|\nno-sign|\nno-title|\nno-zero|\nnodes|\nnon-unicode|\nnon-unique|\nnumber|\nobject|\nobjects|\nobjmgr|\nobligatory|\noccurence|\noccurences|\noccurrence|\noccurrences|\noccurs|\nof|\noffset|\non|\nonly|\nopen|\noptional|\noption|\noptions|\norder|\nothers|\nout|\nouter|\noutput|\noutput-length|\noverflow|\noverlay|\npack|\npackage|\npad|\npadding|\npage|\nparameter|\nparameter-table|\nparameters|\npart|\npartially|\npcre|\nperform|\nperforming|\npermissions|\npf-status|\nplaces|\npool|\nposition|\npragmas|\npreceeding|\nprecompiled|\npreferred|\npreserving|\nprimary|\nprint|\nprint-control|\nprivate|\nprivileged|\nprocedure|\nprogram|\nproperty|\nprotected|\nprovide|\npush|\npushbutton|\nput|\nquery|\nqueue-only|\nqueueonly|\nquickinfo|\nradiobutton|\nraising|\nrange|\nranges|\nread|\nread-only|\nreceive|\nreceived|\nreceiving|\nredefinition|\nreduce|\nref|\nreference|\nrefresh|\nregex|\nreject|\nrenaming|\nreplace|\nreplacement|\nreplacing|\nreport|\nreported|\nrequest|\nrequested|\nrequired|\nreserve|\nreset|\nresolution|\nrespecting|\nresponse|\nrestore|\nresult|\nresults|\nresumable|\nresume|\nretry|\nreturn|\nreturning|\nright|\nright-justified|\nrightplus|\nrightspace|\nrollback|\nrows|\nrp-provide-from-last|\nrun|\nsap|\nsap-spool|\nsave|\nsaving|\nscale_preserving|\nscale_preserving_scientific|\nscan|\nscientific|\nscientific_with_leading_zero|\nscreen|\nscroll|\nscroll-boundary|\nscrolling|\nsearch|\nseconds|\nsection|\nselect|\nselect-options|\nselection|\nselection-screen|\nselection-set|\nselection-sets|\nselection-table|\nselections|\nsend|\nseparate|\nseparated|\nsession|\nset|\nshared|\nshift|\nshortdump|\nshortdump-id|\nsign|\nsign_as_postfix|\nsimple|\nsimulation|\nsingle|\nsize|\nskip|\nskipping|\nsmart|\nsome|\nsort|\nsortable|\nsorted|\nsource|\nspecified|\nsplit|\nspool|\nspots|\nsql|\nstable|\nstamp|\nstandard|\nstart-of-selection|\nstarting|\nstate|\nstatement|\nstatements|\nstatic|\nstatics|\nstatusinfo|\nstep|\nstep-loop|\nstop|\nstructure|\nstructures|\nstyle|\nsubkey|\nsubmatches|\nsubmit|\nsubroutine|\nsubscreen|\nsubstring|\nsubtract|\nsubtract-corresponding|\nsuffix|\nsum|\nsummary|\nsupplied|\nsupply|\nsuppress|\nswitch|\nsymbol|\nsyntax-check|\nsyntax-trace|\nsystem-call|\nsystem-exceptions|\ntab|\ntabbed|\ntable|\ntables|\ntableview|\ntabstrip|\ntarget|\ntask|\ntasks|\ntest|\ntest-injection|\ntest-seam|\ntesting|\ntext|\ntextpool|\nthen|\nthrow|\ntime|\ntimes|\ntimestamp|\ntimezone|\ntitle|\ntitlebar|\nto|\ntokens|\ntop-lines|\ntop-of-page|\ntrace-file|\ntrace-table|\ntrailing|\ntransaction|\ntransfer|\ntransformation|\ntranslate|\ntransporting|\ntrmac|\ntruncate|\ntruncation|\ntype|\ntype-pool|\ntype-pools|\ntypes|\nuline|\nunassign|\nunbounded|\nunder|\nunicode|\nunion|\nunique|\nunit|\nunix|\nunpack|\nuntil|\nunwind|\nup|\nupdate|\nupper|\nuser|\nuser-command|\nusing|\nutf-8|\nuuid|\nvalid|\nvalidate|\nvalue|\nvalue-request|\nvalues|\nvary|\nvarying|\nversion|\nvia|\nvisible|\nwait|\nwhen|\nwhere|\nwidth|\nwindow|\nwindows|\nwith|\nwith-heading|\nwith-title|\nwithout|\nword|\nwork|\nworkspace|\nwrite|\nxml|\nxsd|\nyes|\nzero|\nzone\n)(?=\\s|\\.|:|,)",name:"keyword.control.simple.abap"},operators:{patterns:[{include:"#other_operator"},{include:"#arithmetic_operator"},{include:"#comparison_operator"},{include:"#logical_operator"}]},other_operator:{match:"(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)",name:"keyword.control.simple.abap"},reserved_names:{match:"(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)",name:"constant.language.abap"},sql_functions:{match:"(?ix)(?<=\\s)(\nabap_system_timezone|\nabap_user_timezone|\nabs|\nadd_days|\nadd_months|\nallow_precision_loss|\nas_geo_json|\navg|\nbintohex|\ncast|\nceil|\ncoalesce|\nconcat_with_space|\nconcat|\ncorr_spearman|\ncorr|\ncount|\ncurrency_conversion|\ndatn_add_days|\ndatn_add_months|\ndatn_days_between|\ndats_add_days|\ndats_add_months|\ndats_days_between|\ndats_from_datn|\ndats_is_valid|\ndats_tims_to_tstmp|\ndats_to_datn|\ndayname|\ndays_between|\ndense_rank|\ndivision|\ndiv|\nextract_day|\nextract_hour|\nextract_minute|\nextract_month|\nextract_second|\nextract_year|\nfirst_value|\nfloor|\ngrouping|\nhextobin|\ninitcap|\ninstr|\nis_valid|\nlag|\nlast_value|\nlead|\nleft|\nlength|\nlike_regexpr|\nlocate_regexpr_after|\nlocate_regexpr|\nlocate|\nlower|\nlpad|\nltrim|\nmax|\nmedian|\nmin|\nmod|\nmonthname|\nntile|\noccurrences_regexpr|\nover|\nproduct|\nrank|\nreplace_regexpr|\nreplace|\nrigth|\nround|\nrow_number|\nrpad|\nrtrim|\nstddev|\nstring_agg|\nsubstring_regexpr|\nsubstring|\nsum|\ntims_from_timn|\ntims_is_valid|\ntims_to_timn|\nto_blob|\nto_clob|\ntstmp_add_seconds|\ntstmp_current_utctimestamp|\ntstmp_is_valid|\ntstmp_seconds_between|\ntstmp_to_dats|\ntstmp_to_dst|\ntstmp_to_tims|\ntstmpl_from_utcl|\ntstmpl_to_utcl|\nunit_conversion|\nupper|\nutcl_add_seconds|\nutcl_current|\nutcl_seconds_between|\nuuid|\nvar|\nweekday\n)(?=\\()",name:"entity.name.function.sql.abap"},sql_types:{match:"(?ix)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))",name:"entity.name.type.sql.abap"},system_fields:{captures:{1:{name:"variable.language.abap"},2:{name:"variable.language.abap"}},match:"(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)"},text_symbols:{captures:{1:{name:"keyword.control.simple.abap"},2:{name:"constant.numeric.abap"}},match:"(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)"}},r="source.abap",c={displayName:n,fileTypes:e,foldingStartMarker:a,foldingStopMarker:t,name:s,patterns:i,repository:o,scopeName:r};export{c as default,n as displayName,e as fileTypes,a as foldingStartMarker,t as foldingStopMarker,s as name,i as patterns,o as repository,r as scopeName}; diff --git a/lib/dist/grammar/actionscript-3.mjs b/lib/dist/grammar/actionscript-3.mjs new file mode 100644 index 0000000..52950f7 --- /dev/null +++ b/lib/dist/grammar/actionscript-3.mjs @@ -0,0 +1 @@ +var e="ActionScript",t=["as"],n="actionscript-3",a=[{include:"#comments"},{include:"#package"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"},{include:"#import"},{include:"#mxml"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"}],i={arithmetic_operators:{match:"(\\+|\\-|/|%|(?|\\^|!|\\?)",name:"keyword.operator.actionscript.3"},metadata:{begin:"\\[\\s*\\b(\\w+)\\b",beginCaptures:{1:{name:"keyword.other.actionscript.3"}},end:"\\]",name:"meta.metadata_info.actionscript.3",patterns:[{include:"#metadata_info"}]},metadata_info:{begin:"\\(",end:"\\)",patterns:[{include:"#strings"},{captures:{1:{name:"variable.parameter.actionscript.3"},2:{name:"keyword.operator.actionscript.3"}},match:"(\\w+)\\s*(=)"}]},method:{begin:"(?x) (^|\\s+) ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? (?=\\bfunction\\b)",beginCaptures:{3:{name:"storage.modifier.actionscript.3"},5:{name:"storage.modifier.actionscript.3"},7:{name:"storage.modifier.actionscript.3"},8:{name:"storage.modifier.actionscript.3"}},end:"(?<=(;|\\}))",name:"meta.method.actionscript.3",patterns:[{include:"#functions"},{include:"#code_block"}]},mxml:{begin:"",name:"meta.cdata.actionscript.3",patterns:[{include:"#comments"},{include:"#import"},{include:"#metadata"},{include:"#class"},{include:"#namespace_declaration"},{include:"#use_namespace"},{include:"#class_declaration"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_keywords"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"}]},namespace_declaration:{captures:{2:{name:"storage.modifier.actionscript.3"},3:{name:"storage.modifier.actionscript.3"}},match:"(?x) ((\\w+)\\s+)? (namespace) \\s+ (?:[A-Za-z0-9_\\$]+)",name:"meta.namespace_declaration.actionscript.3"},numbers:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.actionscript.3"},object_literal:{begin:"\\{",end:"\\}",name:"meta.object_literal.actionscript.3",patterns:[{include:"#object_literal"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#functions"}]},other_keywords:{match:"\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\b",name:"keyword.other.actionscript.3"},other_operators:{match:"(\\.|=)",name:"keyword.operator.actionscript.3"},package:{begin:"(^|\\s+)(package)\\b",beginCaptures:{2:{name:"keyword.other.actionscript.3"}},end:"\\}",name:"meta.package.actionscript.3",patterns:[{include:"#package_name"},{include:"#variable_declaration"},{include:"#method"},{include:"#comments"},{include:"#return_type"},{include:"#import"},{include:"#use_namespace"},{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#metadata"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"}]},package_name:{begin:"(?<=package)\\s+([\\w\\._]*)\\b",end:"\\{",name:"meta.package_name.actionscript.3"},parameters:{begin:"(\\.\\.\\.)?\\s*([A-Za-z\\_\\$][A-Za-z0-9_\\$]*)(?:\\s*(\\:)\\s*(?:(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)))?(?:\\s*(=))?",beginCaptures:{1:{name:"keyword.operator.actionscript.3"},2:{name:"variable.parameter.actionscript.3"},3:{name:"keyword.operator.actionscript.3"},4:{name:"support.type.actionscript.3"},5:{name:"support.type.actionscript.3"},6:{name:"support.type.actionscript.3"},7:{name:"keyword.operator.actionscript.3"}},end:",|(?=\\))",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#comments"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#guess_type"},{include:"#guess_constant"}]},primitive_error_types:{captures:{1:{name:"support.class.error.actionscript.3"}},match:"\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\b"},primitive_functions:{captures:{1:{name:"support.function.actionscript.3"}},match:"\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()"},primitive_types:{captures:{1:{name:"support.class.builtin.actionscript.3"}},match:"\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\*(?<=a))\\b"},regexp:{begin:"(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])",end:"$|(/)[igm]*",name:"string.regex.actionscript.3",patterns:[{match:"\\\\.",name:"constant.character.escape.actionscript.3"},{match:"\\[(\\\\\\]|[^\\]])*\\]",name:"constant.character.class.actionscript.3"}]},return_type:{captures:{1:{name:"keyword.operator.actionscript.3"},2:{name:"support.type.actionscript.3"},3:{name:"support.type.actionscript.3"},4:{name:"support.type.actionscript.3"}},match:"(\\:)\\s*(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)"},strings:{patterns:[{begin:'@"',end:'"',name:"string.quoted.verbatim.actionscript.3"},{begin:'"',end:'"',name:"string.quoted.double.actionscript.3",patterns:[{include:"#escapes"}]},{begin:"'",end:"'",name:"string.quoted.single.actionscript.3",patterns:[{include:"#escapes"}]}]},use_namespace:{captures:{2:{name:"keyword.other.actionscript.3"},3:{name:"keyword.other.actionscript.3"},4:{name:"storage.modifier.actionscript.3"}},match:"(?x) (^|\\s+|;) (use\\s+)? (namespace) \\s+ (\\w+) \\s* (;|$)"},variable_declaration:{captures:{2:{name:"storage.modifier.actionscript.3"},4:{name:"storage.modifier.actionscript.3"},6:{name:"storage.modifier.actionscript.3"},7:{name:"storage.modifier.actionscript.3"},8:{name:"keyword.operator.actionscript.3"}},match:"(?x) ((static)\\s+)? ((\\w+)\\s+)? ((static)\\s+)? (const|var) \\s+ (?:[A-Za-z0-9_\\$]+)(?:\\s*(:))?",name:"meta.variable_declaration.actionscript.3"},vector_creation_operators:{match:"(<|>)",name:"keyword.operator.actionscript.3"}},c="source.actionscript.3",r={displayName:e,fileTypes:t,name:n,patterns:a,repository:i,scopeName:c};export{r as default,e as displayName,t as fileTypes,n as name,a as patterns,i as repository,c as scopeName}; diff --git a/lib/dist/grammar/ada.mjs b/lib/dist/grammar/ada.mjs new file mode 100644 index 0000000..ddf4eea --- /dev/null +++ b/lib/dist/grammar/ada.mjs @@ -0,0 +1 @@ +var e="Ada",a="ada",n=[{include:"#library_unit"},{include:"#comment"},{include:"#use_clause"},{include:"#with_clause"},{include:"#pragma"},{include:"#keyword"}],t={abort_statement:{begin:"(?i)\\babort\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.abort.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.task.ada"}]},accept_statement:{begin:"(?i)\\b(accept)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.control.ada"},2:{name:"entity.name.accept.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"entity.name.accept.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.accept.ada",patterns:[{begin:"(?i)\\bdo\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#statement"}]},{include:"#parameter_profile"}]},access_definition:{captures:{1:{name:"storage.visibility.ada"},2:{name:"storage.visibility.ada"},3:{name:"storage.modifier.ada"},4:{name:"entity.name.type.ada"}},match:"(?i)(not\\s+null\\s+)?(access)\\s+(constant\\s+)?((?:\\w|\\d|\\.|_)+)\\b",name:"meta.declaration.access.definition.ada"},access_type_definition:{begin:"(?i)\\b(not\\s+null\\s+)?(access)\\b",beginCaptures:{1:{name:"storage.visibility.ada"},2:{name:"storage.visibility.ada"}},end:"(?i)(?=(with|;))",name:"meta.declaration.type.definition.access.ada",patterns:[{match:"(?i)\\ball\\b",name:"storage.visibility.ada"},{match:"(?i)\\bconstant\\b",name:"storage.modifier.ada"},{include:"#subtype_mark"}]},actual_parameter_part:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{match:",",name:"punctuation.ada"},{include:"#parameter_association"}]},adding_operator:{match:"(\\+|-|\\&)",name:"keyword.operator.adding.ada"},array_aggregate:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.definition.array.aggregate.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#positional_array_aggregate"},{include:"#array_component_association"}]},array_component_association:{captures:{1:{name:"variable.name.ada"},2:{name:"keyword.other.ada"},3:{patterns:[{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:"(?i)\\b([^(=>)]*)\\s*(=>)\\s*([^,\\)]+)",name:"meta.definition.array.aggregate.component.ada"},array_dimensions:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.declaration.type.definition.array.dimensions.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"(?i)\\brange\\b",name:"storage.modifier.ada"},{match:"<>",name:"keyword.modifier.unknown.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#expression"},{patterns:[{include:"#subtype_mark"}]}]},array_type_definition:{begin:"(?i)\\barray\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)(?=(with|;))",name:"meta.declaration.type.definition.array.ada",patterns:[{include:"#array_dimensions"},{match:"(?i)\\bof\\b",name:"storage.modifier.ada"},{match:"(?i)\\baliased\\b",name:"storage.visibility.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},aspect_clause:{begin:"(?i)\\b(for)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#subtype_mark"}]},3:{name:"punctuation.ada"},5:{name:"keyword.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.aspect.clause.ada",patterns:[{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=;)",endCaptures:{0:{name:"punctuation.ada"}},patterns:[{include:"#record_representation_clause"},{include:"#array_aggregate"},{include:"#expression"}]},{begin:"(?i)(?<=for)",captures:{0:{name:"keyword.ada"}},end:"(?i)(?=use)",patterns:[{captures:{1:{patterns:[{include:"#subtype_mark"}]},2:{patterns:[{include:"#attribute"}]}},match:"((?:\\w|\\d|_)+)('((?:\\w|\\d|_)+))?"}]}]},aspect_definition:{begin:"=>",beginCaptures:{0:{name:"keyword.other.ada"}},end:"(?i)(?=(,|;|\\bis\\b))",name:"meta.aspect.definition.ada",patterns:[{include:"#expression"}]},aspect_mark:{captures:{1:{name:"keyword.control.directive.ada"},2:{name:"punctuation.ada"},3:{name:"entity.other.attribute-name.ada"}},match:"(?i)\\b((?:\\w|\\d|\\.|_)+)(?:(')(class))?\\b",name:"meta.aspect.mark.ada"},aspect_specification:{begin:"(?i)\\bwith\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(;|\\bis\\b))",name:"meta.aspect.specification.ada",patterns:[{match:",",name:"punctuation.ada"},{captures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"}},match:"(?i)\\b(null)\\s+(record)\\b"},{begin:"(?i)\\brecord\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)\\b(end)\\s+(record)\\b",endCaptures:{1:{name:"keyword.ada"},2:{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]},{captures:{0:{name:"storage.visibility.ada"}},match:"(?i)\\bprivate\\b"},{include:"#aspect_definition"},{include:"#aspect_mark"},{include:"#comment"}]},assignment_statement:{begin:"\\b((?:\\w|\\d|\\.|_|\\(|\\)|\"|'|\\s)+)\\s*(:=)",beginCaptures:{1:{patterns:[{match:"((?:\\w|\\d|\\.|_)+)",name:"variable.name.ada"},{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{include:"#expression"}]}]},2:{name:"keyword.operator.new.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.assignment.ada",patterns:[{include:"#expression"},{include:"#comment"}]},attribute:{captures:{1:{name:"punctuation.ada"},2:{name:"entity.other.attribute-name.ada"}},match:"(')((?:\\w|\\d|_)+)\\b",name:"meta.attribute.ada"},based_literal:{captures:{1:{name:"constant.numeric.base.ada"},2:{name:"punctuation.ada"},3:{name:"punctuation.ada"},4:{name:"punctuation.radix-point.ada"},5:{name:"punctuation.ada"},6:{name:"constant.numeric.base.ada"},7:{patterns:[{include:"#exponent_part"}]}},match:"(?i)(\\d(?:(_)?\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?",name:"constant.numeric.ada"},basic_declaration:{patterns:[{include:"#type_declaration"},{include:"#subtype_declaration"},{include:"#exception_declaration"},{include:"#object_declaration"},{include:"#single_protected_declaration"},{include:"#single_task_declaration"},{include:"#subprogram_specification"},{include:"#package_declaration"},{include:"#pragma"},{include:"#comment"}]},basic_declarative_item:{patterns:[{include:"#basic_declaration"},{include:"#aspect_clause"},{include:"#use_clause"},{include:"#keyword"}]},block_statement:{begin:"(?i)\\bdeclare\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(end)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.label.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.block.ada",patterns:[{begin:"(?i)(?<=declare)",end:"(?i)\\bbegin\\b",endCaptures:{0:{name:"keyword.ada"}},patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},{begin:"(?i)(?<=begin)",end:"(?i)(?=end)",patterns:[{include:"#statement"}]}]},body:{patterns:[{include:"#subprogram_body"},{include:"#package_body"},{include:"#task_body"},{include:"#protected_body"}]},case_statement:{begin:"(?i)\\bcase\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(case)\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.case.ada",patterns:[{begin:"(?i)(?<=case)\\b",end:"(?i)\\bis\\b",endCaptures:{0:{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"=>",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.case.alternative.ada",patterns:[{match:"(?i)\\bothers\\b",name:"keyword.modifier.unknown.ada"},{match:"\\|",name:"punctuation.ada"},{include:"#expression"}]},{include:"#statement"}]},character_literal:{captures:{0:{patterns:[{match:"'",name:"punctuation.definition.string.ada"}]}},match:"'.'",name:"string.quoted.single.ada"},comment:{patterns:[{include:"#preprocessor"},{include:"#comment-section"},{include:"#comment-doc"},{include:"#comment-line"}]},"comment-doc":{captures:{1:{name:"comment.line.double-dash.ada"},2:{name:"punctuation.definition.tag.ada"},3:{name:"entity.name.tag.ada"},4:{name:"comment.line.double-dash.ada"}},match:"(--)\\s*(@)(\\w+)\\s+(.*)$",name:"comment.block.documentation.ada"},"comment-line":{match:"--.*$",name:"comment.line.double-dash.ada"},"comment-section":{captures:{1:{name:"entity.name.section.ada"}},match:"--\\s*([^-].*?[^-])\\s*--\\s*$",name:"comment.line.double-dash.ada"},component_clause:{begin:"(?i)\\b((?:\\w|\\d|_)+)\\b",beginCaptures:{0:{name:"variable.name.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.aspect.clause.record.representation.component.ada",patterns:[{begin:"(?i)\\bat\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)\\b(?=range)\\b",patterns:[{include:"#expression"}]},{include:"#range_constraint"}]},component_declaration:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"}]},2:{name:"punctuation.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.type.definition.record.component.ada",patterns:[{patterns:[{match:":=",name:"keyword.operator.new.ada"},{include:"#expression"}]},{include:"#component_definition"}]},component_definition:{patterns:[{match:"(?i)\\baliased\\b",name:"storage.visibility.ada"},{match:"(?i)\\brange\\b",name:"storage.modifier.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#access_definition"},{include:"#subtype_mark"}]},component_item:{patterns:[{include:"#component_declaration"},{include:"#variant_part"},{include:"#comment"},{include:"#aspect_clause"},{captures:{1:{name:"keyword.ada"},2:{name:"punctuation.ada"}},match:"(?i)\\b(null)\\s*(;)"}]},composite_constraint:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.declaration.constraint.composite.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"\\.\\.",name:"keyword.ada"},{captures:{1:{name:"variable.name.ada"},2:{name:"keyword.other.ada"},3:{patterns:[{include:"#expression"}]}},match:"(?i)\\b((?:\\w|\\d|_)+)\\s*(=>)\\s*([^,\\)])+\\b"},{include:"#expression"}]},decimal_literal:{captures:{1:{name:"punctuation.ada"},2:{name:"punctuation.radix-point.ada"},3:{name:"punctuation.ada"},4:{patterns:[{include:"#exponent_part"}]}},match:"\\d(?:(_)?\\d)*(?:(\\.)\\d(?:(_)?\\d)*)?([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?",name:"constant.numeric.ada"},declarative_item:{patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},delay_relative_statement:{begin:"(?i)\\b(delay)\\b",beginCaptures:{1:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},delay_statement:{patterns:[{include:"#delay_until_statement"},{include:"#delay_relative_statement"}]},delay_until_statement:{begin:"(?i)\\b(delay)\\s+(until)\\b",beginCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.delay.until.ada",patterns:[{include:"#expression"}]},derived_type_definition:{name:"meta.declaration.type.definition.derived.ada",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?i)(?=(\\bwith\\b|;))",patterns:[{match:"(?i)\\band\\b",name:"storage.modifier.ada"},{include:"#subtype_mark"}]},{match:"(?i)\\b(abstract|and|limited|tagged)\\b",name:"storage.modifier.ada"},{match:"(?i)\\bprivate\\b",name:"storage.visibility.ada"},{include:"#subtype_mark"}]},discriminant_specification:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"}]},2:{name:"punctuation.ada"}},end:"(?=(;|\\)))",patterns:[{begin:":=",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#expression"}]},{captures:{1:{name:"storage.visibility.ada"},2:{patterns:[{include:"#subtype_mark"}]}},match:"(?i)(not\\s+null\\s+)?((?:\\w|\\d|\\.|_)+)\\b"},{include:"#access_definition"}]},entry_body:{begin:"(?i)\\b(entry)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.entry.ada"}},end:"(?i)\\b(end)\\s*(\\s\\2)\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.entry.ada"},3:{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=begin)\\b",patterns:[{include:"#declarative_item"}]},{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#statement"}]},{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=is)\\b",patterns:[{include:"#expression"}]},{include:"#parameter_profile"}]},entry_declaration:{begin:"(?i)\\b(?:(not)?\\s+(overriding)\\s+)?(entry)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"},3:{name:"keyword.ada"},4:{name:"entity.name.entry.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},patterns:[{include:"#parameter_profile"}]},enumeration_type_definition:{begin:"\\(",beginCaptures:{0:{name:"punctuation.ada"}},end:"\\)",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.type.definition.enumeration.ada",patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"},{include:"#comment"}]},exception_declaration:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)\\s*(exception)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"entity.name.exception.ada"}]},2:{name:"punctuation.ada"},3:{name:"storage.type.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.exception.ada",patterns:[{match:"(?i)\\b(renames)\\s+((\\w|\\d|_|\\.)+)",name:"entity.name.exception.ada"}]},exit_statement:{begin:"(?i)\\bexit\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.exit.ada",patterns:[{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?=;)",patterns:[{include:"#expression"}]},{match:"(?:\\w|\\d|_)+",name:"entity.name.label.ada"}]},exponent_part:{captures:{1:{name:"punctuation.exponent-mark.ada"},2:{name:"keyword.operator.unary.ada"},3:{name:"punctuation.ada"}},match:"([eE])(\\+|\\-)?\\d(?:(_)?\\d)*"},expression:{name:"meta.expression.ada",patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.ada"},{match:"=>(\\+)?",name:"keyword.other.ada"},{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{include:"#expression"}]},{match:",",name:"punctuation.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#value"},{include:"#attribute"},{include:"#comment"},{include:"#operator"},{match:"(?i)\\b(and|or|xor)\\b",name:"keyword.ada"},{match:"(?i)\\b(if|then|else|elsif|in|for|(?",endCaptures:{0:{name:"keyword.other.ada"}},patterns:[{include:"#expression"}]},handled_sequence_of_statements:{patterns:[{begin:"(?i)\\bexception\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",name:"meta.handler.exception.ada",patterns:[{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"=>",endCaptures:{0:{name:"keyword.other.ada"}},patterns:[{captures:{1:{name:"variable.name.ada"},2:{name:"punctuation.ada"}},match:"\\b((?:\\w|\\d|\\.|_)+)\\s*(:)"},{match:"\\|",name:"punctuation.ada"},{match:"(?i)\\bothers\\b",name:"keyword.ada"},{match:"(?:\\w|\\d|\\.|_)+",name:"entity.name.exception.ada"}]},{include:"#statement"}]},{include:"#statement"}]},highest_precedence_operator:{match:"(?i)(\\*\\*|\\babs\\b|\\bnot\\b)",name:"keyword.operator.highest-precedence.ada"},if_statement:{begin:"(?i)\\bif\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(if)\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"punctuation.ada"}},name:"meta.statement.if.ada",patterns:[{begin:"(?i)\\belsif\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)(?:(?",name:"keyword.modifier.unknown.ada"},{match:"(\\+|-|\\*|/)",name:"keyword.operator.arithmetic.ada"},{match:":=",name:"keyword.operator.assignment.ada"},{match:"(=|/=|<|>|<=|>=)",name:"keyword.operator.logic.ada"},{match:"\\&",name:"keyword.operator.concatenation.ada"}]},known_discriminant_part:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",name:"meta.declaration.type.discriminant.ada",patterns:[{match:";",name:"punctuation.ada"},{include:"#discriminant_specification"}]},label:{captures:{1:{name:"punctuation.label.ada"},2:{name:"entity.name.label.ada"},3:{name:"punctuation.label.ada"}},match:"(<<)?((?:\\w|\\d|_)+)\\s*(:[^=]|>>)",name:"meta.label.ada"},library_unit:{name:"meta.library.unit.ada",patterns:[{include:"#package_body"},{include:"#package_specification"},{include:"#subprogram_body"}]},loop_statement:{patterns:[{include:"#simple_loop_statement"},{include:"#while_loop_statement"},{include:"#for_loop_statement"}]},modular_type_definition:{begin:"(?i)\\b(mod)\\b",beginCaptures:{1:{name:"storage.modifier.ada"}},end:"(?i)(?=(with|;))",patterns:[{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},multiplying_operator:{match:"(?i)(\\*|/|\\bmod\\b|\\brem\\b)",name:"keyword.operator.multiplying.ada"},null_statement:{captures:{1:{name:"keyword.ada"},2:{name:"punctuation.ada"}},match:"(?i)\\b(null)\\s*(;)",name:"meta.statement.null.ada"},object_declaration:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)*)\\s*(:)",beginCaptures:{1:{patterns:[{match:",",name:"punctuation.ada"},{match:"\\b(\\w|\\d|_)+\\b",name:"variable.name.ada"}]},2:{name:"punctuation.ada"}},end:"(;)",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.object.ada",patterns:[{begin:"(?<=:)",end:"(?:(?=;)|(:=)|(\\brenames\\b))",endCaptures:{1:{name:"keyword.operator.new.ada"},2:{name:"keyword.ada"}},patterns:[{match:"(?i)\\bconstant\\b",name:"storage.modifier.ada"},{match:"(?i)\\baliased\\b",name:"storage.visibility.ada"},{include:"#aspect_specification"},{include:"#subtype_mark"}]},{begin:"(?<=:=)",end:"(?=;)",patterns:[{include:"#aspect_specification"},{include:"#expression"}]},{begin:"(?<=renames)",end:"(?=;)",patterns:[{include:"#aspect_specification"}]}]},operator:{patterns:[{include:"#highest_precedence_operator"},{include:"#multiplying_operator"},{include:"#adding_operator"},{include:"#relational_operator"},{include:"#logical_operator"}]},package_body:{begin:"(?i)\\b(package)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.ada"},3:{patterns:[{include:"#package_mark"}]}},end:"(?i)\\b(end)\\s+(\\3)\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#package_mark"}]},3:{name:"punctuation.ada"}},name:"meta.declaration.package.body.ada",patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#handled_sequence_of_statements"}]},{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(\\bbegin\\b|\\bend\\b))",patterns:[{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},package_declaration:{patterns:[{include:"#package_specification"}]},package_mark:{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.package.ada"},package_specification:{begin:"(?i)\\b(package)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#package_mark"}]}},end:"(?i)(?:\\b(end)\\s+(\\2)\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{patterns:[{include:"#package_mark"}]},3:{name:"punctuation.ada"}},name:"meta.declaration.package.specification.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(end|;))",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=;)",name:"meta.declaration.package.generic.ada",patterns:[{include:"#package_mark"},{include:"#actual_parameter_part"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#basic_declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},parameter_association:{patterns:[{captures:{1:{name:"variable.parameter.ada"},2:{name:"keyword.other.ada"}},match:"((?:\\w|\\d|_)+)\\s*(=>)"},{include:"#expression"}]},parameter_profile:{begin:"\\(",captures:{0:{name:"punctuation.ada"}},end:"\\)",patterns:[{match:";",name:"punctuation.ada"},{include:"#parameter_specification"}]},parameter_specification:{patterns:[{begin:":(?!=)",beginCaptures:{0:{name:"punctuation.ada"}},end:"(?=[:;)])",name:"meta.type.annotation.ada",patterns:[{match:"(?i)\\b(in|out)\\b",name:"keyword.ada"},{include:"#subtype_mark"}]},{begin:":=",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=[:;)])",patterns:[{include:"#expression"}]},{match:",",name:"punctuation.ada"},{match:"\\b(?:\\w|\\d|\\.|_)+\\b",name:"variable.parameter.ada"},{include:"#comment"}]},positional_array_aggregate:{name:"meta.definition.array.aggregate.positional.ada",patterns:[{captures:{1:{name:"keyword.ada"},2:{name:"keyword.other.ada"},3:{patterns:[{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]}},match:"(?i)\\b(others)\\s*(=>)\\s*([^,\\)]+)"},{include:"#expression"}]},pragma:{begin:"(?i)\\b(pragma)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.control.directive.ada"}},end:"(;)",endCaptures:{1:{name:"punctuation.ada"}},name:"meta.pragma.ada",patterns:[{include:"#expression"}]},preprocessor:{name:"meta.preprocessor.ada",patterns:[{captures:{1:{name:"punctuation.definition.directive.ada"},2:{name:"keyword.control.directive.conditional.ada"},3:{patterns:[{include:"#expression"}]}},match:"^\\s*(#)(if|elsif)\\s+(.*)$"},{captures:{1:{name:"punctuation.definition.directive.ada"},2:{name:"keyword.control.directive.conditional"},3:{name:"punctuation.ada"}},match:"^\\s*(#)(end if)(;)"},{captures:{1:{name:"punctuation.definition.directive.ada"},2:{name:"keyword.control.directive.conditional"}},match:"^\\s*(#)(else)"}]},procedure_body:{begin:"(?i)\\b(overriding\\s+)?(procedure)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"storage.visibility.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.function.ada"}},end:"(?i)(?:\\b(end)\\s+(\\3)\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.function.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(with|begin|;))",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{0:{name:"keyword.operator.new.ada"}},end:"(?=;)",name:"meta.declaration.package.generic.ada",patterns:[{match:"((?:\\w|\\d|\\.|_)+)",name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{match:"(?i)\\b(null|abstract)\\b",name:"storage.modifier.ada"},{include:"#declarative_item"}]},{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=\\bend\\b)",patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#subprogram_renaming_declaration"},{include:"#aspect_specification"},{include:"#parameter_profile"},{include:"#comment"}]},procedure_call_statement:{begin:"(?i)\\b((?:\\w|\\d|_|\\.)+)\\b",beginCaptures:{1:{name:"entity.name.function.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.call.ada",patterns:[{include:"#attribute"},{include:"#actual_parameter_part"},{include:"#comment"}]},procedure_specification:{patterns:[{include:"#procedure_body"}]},protected_body:{begin:"(?i)\\b(protected)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.body.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\3)\\s*)(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.body.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.procedure.body.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#protected_operation_item"}]}]},protected_element_declaration:{patterns:[{include:"#subprogram_specification"},{include:"#aspect_clause"},{include:"#entry_declaration"},{include:"#component_declaration"},{include:"#pragma"}]},protected_operation_item:{patterns:[{include:"#subprogram_specification"},{include:"#subprogram_body"},{include:"#aspect_clause"},{include:"#entry_body"}]},raise_expression:{begin:"(?i)\\braise\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?=;)",name:"meta.expression.raise.ada",patterns:[{begin:"(?i)\\bwith\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(;|\\))",patterns:[{include:"#expression"}]},{match:"\\b(\\w|\\d|_)+\\b",name:"entity.name.exception.ada"}]},raise_statement:{begin:"(?i)\\braise\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.raise.ada",patterns:[{begin:"(?i)\\bwith\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?=;)",patterns:[{include:"#expression"}]},{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.exception.ada"}]},range_constraint:{begin:"(?i)\\brange\\b",beginCaptures:{0:{name:"storage.modifier.ada"}},end:"(?=(\\bwith\\b|;))",patterns:[{match:"\\.\\.",name:"keyword.ada"},{match:"<>",name:"keyword.modifier.unknown.ada"},{include:"#expression"}]},real_type_definition:{name:"meta.declaration.type.definition.real-type.ada",patterns:[{include:"#scalar_constraint"}]},record_representation_clause:{begin:"(?i)\\b(record)\\b",beginCaptures:{1:{name:"storage.modifier.ada"}},end:"(?i)\\b(end)\\s+(record)\\b",endCaptures:{1:{name:"keyword.ada"},2:{name:"storage.modifier.ada"}},name:"meta.aspect.clause.record.representation.ada",patterns:[{include:"#component_clause"},{include:"#comment"}]},record_type_definition:{patterns:[{captures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"},3:{name:"storage.modifier.ada"},4:{name:"storage.modifier.ada"},5:{name:"storage.modifier.ada"}},match:"(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(null)\\s+(record)\\b",name:"meta.declaration.type.definition.record.null.ada",patterns:[{include:"#component_item"}]},{begin:"(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(record)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"storage.modifier.ada"},3:{name:"storage.modifier.ada"},4:{name:"storage.modifier.ada"}},end:"(?i)\\b(end)\\s+(record)\\b",endCaptures:{1:{name:"keyword.ada"},2:{name:"storage.modifier.ada"}},name:"meta.declaration.type.definition.record.ada",patterns:[{include:"#component_item"}]}]},regular_type_declaration:{begin:"(?i)\\b(type)\\b",beginCaptures:{1:{name:"keyword.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.type.definition.regular.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(with(?!\\s+(private))|;))",patterns:[{include:"#type_definition"}]},{begin:"(?i)\\b(?<=type)\\b",end:"(?i)(?=(is|;))",patterns:[{include:"#known_discriminant_part"},{include:"#subtype_mark"}]},{include:"#aspect_specification"}]},relational_operator:{match:"(=|/=|<|<=|>|>=)",name:"keyword.operator.relational.ada"},requeue_statement:{begin:"(?i)\\brequeue\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.requeue.ada",patterns:[{match:"(?i)\\b(with|abort)\\b",name:"keyword.control.ada"},{match:"\\b(\\w|\\d|\\.|_)+\\b",name:"entity.name.function.ada"}]},result_profile:{begin:"(?i)\\breturn\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(is|with|renames|;))",patterns:[{include:"#subtype_mark"}]},return_statement:{begin:"(?i)\\breturn\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.statement.return.ada",patterns:[{begin:"(?i)\\bdo\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(return)\\s*(?=;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"}},patterns:[{include:"#label"},{include:"#statement"}]},{captures:{1:{name:"variable.name.ada"},2:{name:"punctuation.ada"},3:{name:"entity.name.type.ada"}},match:"\\b((?:\\w|\\d|_)+)\\s*(:)\\s*((?:\\w|\\d|\\.|_)+)\\b"},{match:":=",name:"keyword.operator.new.ada"},{include:"#expression"}]},scalar_constraint:{name:"meta.declaration.constraint.scalar.ada",patterns:[{begin:"(?i)\\b(digits|delta)\\b",beginCaptures:{1:{name:"storage.modifier.ada"}},end:"(?i)(?=\\brange\\b|\\bdigits\\b|\\bwith\\b|;)",patterns:[{include:"#expression"}]},{include:"#range_constraint"},{include:"#expression"}]},select_alternative:{patterns:[{begin:"(?i)\\bterminate\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}}},{include:"#statement"}]},select_statement:{begin:"(?i)\\bselect\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(select)\\b",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"}},name:"meta.statement.select.ada",patterns:[{begin:"(?i)\\b(?:(or)|(?<=select))\\b",beginCaptures:{1:{name:"keyword.control.ada"}},end:"(?i)\\b(?=(or|else|end))\\b",patterns:[{include:"#guard"},{include:"#select_alternative"}]},{begin:"(?i)\\belse\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#statement"}]}]},signed_integer_type_definition:{patterns:[{include:"#range_constraint"}]},simple_loop_statement:{begin:"(?i)\\bloop\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"entity.name.label.ada"},4:{name:"punctuation.ada"}},name:"meta.statement.loop.ada",patterns:[{include:"#statement"}]},single_protected_declaration:{begin:"(?i)\\b(protected)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.protected.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.protected.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.protected.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(\\bend\\b|;))",patterns:[{begin:"(?i)\\bnew\\b",captures:{0:{name:"keyword.ada"}},end:"(?i)\\bwith\\b",patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#protected_element_declaration"},{include:"#comment"}]},{include:"#comment"}]},single_task_declaration:{begin:"(?i)\\b(task)\\s+((?:\\w|\\d|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"}},end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"},3:{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bnew\\b",captures:{0:{name:"keyword.ada"}},end:"(?i)\\bwith\\b",patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},statement:{patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(end)\\s*(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"punctuation.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#label"},{include:"#null_statement"},{include:"#return_statement"},{include:"#assignment_statement"},{include:"#exit_statement"},{include:"#goto_statement"},{include:"#requeue_statement"},{include:"#delay_statement"},{include:"#abort_statement"},{include:"#raise_statement"},{include:"#if_statement"},{include:"#case_statement"},{include:"#loop_statement"},{include:"#block_statement"},{include:"#select_statement"},{include:"#accept_statement"},{include:"#pragma"},{include:"#procedure_call_statement"},{include:"#comment"}]},string_literal:{captures:{1:{name:"punctuation.definition.string.ada"},2:{name:"punctuation.definition.string.ada"}},match:'(").*?(")',name:"string.quoted.double.ada"},subprogram_body:{name:"meta.declaration.subprogram.body.ada",patterns:[{include:"#procedure_body"},{include:"#function_body"}]},subprogram_renaming_declaration:{begin:"(?i)\\brenames\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(with|;))",patterns:[{match:"(?:\\w|\\d|_|\\.)+",name:"entity.name.function.ada"}]},subprogram_specification:{name:"meta.declaration.subprogram.specification.ada",patterns:[{include:"#procedure_specification"},{include:"#function_specification"}]},subtype_declaration:{begin:"(?i)\\bsubtype\\b",beginCaptures:{0:{name:"keyword.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.declaration.subtype.ada",patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=;)",patterns:[{match:"(?i)\\b(not\\s+null)\\b",name:"storage.modifier.ada"},{include:"#composite_constraint"},{include:"#aspect_specification"},{include:"#subtype_indication"}]},{begin:"(?i)(?<=subtype)",end:"(?i)\\b(?=is)\\b",patterns:[{include:"#subtype_mark"}]}]},subtype_indication:{name:"meta.declaration.indication.subtype.ada",patterns:[{include:"#scalar_constraint"},{include:"#subtype_mark"}]},subtype_mark:{patterns:[{match:"(?i)\\b(access|aliased|not\\s+null|constant)\\b",name:"storage.visibility.ada"},{include:"#attribute"},{include:"#actual_parameter_part"},{begin:"(?i)\\b(procedure|function)\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#parameter_profile"},{begin:"(?i)\\breturn\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#subtype_mark"}]}]},{captures:{0:{patterns:[{match:"[_.]",name:"punctuation.ada"}]}},match:"\\b(?:\\w|\\d|\\.|_)+\\b",name:"entity.name.type.ada"},{include:"#comment"}]},task_body:{begin:"(?i)\\b(task)\\s+(body)\\s+((\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.task.ada"}},end:"(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.task.body.ada",patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=end)",patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)(?=(with|begin))",patterns:[{include:"#declarative_item"}]}]},task_item:{patterns:[{include:"#aspect_clause"},{include:"#entry_declaration"}]},task_type_declaration:{begin:"(?i)\\b(task)\\s+(type)\\s+((\\w|\\d|\\.|_)+)\\b",beginCaptures:{1:{name:"storage.modifier.ada"},2:{name:"keyword.ada"},3:{name:"entity.name.task.ada"}},end:"(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)",endCaptures:{1:{name:"keyword.ada"},2:{name:"entity.name.task.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.type.task.ada",patterns:[{include:"#known_discriminant_part"},{begin:"(?i)\\bis\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bnew\\b",captures:{0:{name:"keyword.ada"}},end:"(?i)\\bwith\\b",patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},type_declaration:{name:"meta.declaration.type.ada",patterns:[{include:"#full_type_declaration"}]},type_definition:{name:"meta.declaration.type.definition.ada",patterns:[{include:"#enumeration_type_definition"},{include:"#integer_type_definition"},{include:"#real_type_definition"},{include:"#array_type_definition"},{include:"#record_type_definition"},{include:"#access_type_definition"},{include:"#interface_type_definition"},{include:"#derived_type_definition"}]},use_clause:{name:"meta.context.use.ada",patterns:[{include:"#use_type_clause"},{include:"#use_package_clause"}]},use_package_clause:{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.other.using.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.context.use.package.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#package_mark"}]},use_type_clause:{begin:"(?i)\\b(use)\\s+(?:(all)\\s+)?(type)\\b",beginCaptures:{1:{name:"keyword.other.using.ada"},2:{name:"keyword.modifier.ada"},3:{name:"keyword.modifier.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.context.use.type.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#subtype_mark"}]},value:{patterns:[{include:"#based_literal"},{include:"#decimal_literal"},{include:"#character_literal"},{include:"#string_literal"}]},variant_part:{begin:"(?i)\\bcase\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"(?i)\\b(end)\\s+(case);",endCaptures:{1:{name:"keyword.ada"},2:{name:"keyword.ada"},3:{name:"punctuation.ada"}},name:"meta.declaration.variant.ada",patterns:[{begin:"(?i)\\b(?<=case)\\b",end:"(?i)\\bis\\b",endCaptures:{0:{name:"keyword.ada"}},patterns:[{match:"(?:\\w|\\d|_)+",name:"variable.name.ada"},{include:"#comment"}]},{begin:"(?i)\\b(?<=is)\\b",end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bwhen\\b",beginCaptures:{0:{name:"keyword.ada"}},end:"=>",endCaptures:{0:{name:"keyword.other.ada"}},patterns:[{match:"\\|",name:"punctuation.ada"},{match:"(?i)\\bothers\\b",name:"keyword.ada"},{include:"#expression"}]},{include:"#component_item"}]}]},while_loop_statement:{begin:"(?i)\\bwhile\\b",beginCaptures:{0:{name:"keyword.control.ada"}},end:"(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",endCaptures:{1:{name:"keyword.control.ada"},2:{name:"keyword.control.ada"},3:{name:"entity.name.label.ada"},4:{name:"punctuation.ada"}},name:"meta.statement.loop.while.ada",patterns:[{begin:"(?i)(?<=while)\\b",end:"(?i)\\bloop\\b",endCaptures:{0:{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},with_clause:{begin:"(?i)\\b(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\b",beginCaptures:{1:{name:"keyword.modifier.ada"},2:{name:"storage.visibility.ada"},3:{name:"keyword.other.using.ada"}},end:";",endCaptures:{0:{name:"punctuation.ada"}},name:"meta.context.with.ada",patterns:[{match:",",name:"punctuation.ada"},{include:"#package_mark"}]}},i="source.ada",d={displayName:"Ada",name:"ada",patterns:n,repository:t,scopeName:i};export{d as default,e as displayName,a as name,n as patterns,t as repository,i as scopeName}; diff --git a/lib/dist/grammar/angular-html.mjs b/lib/dist/grammar/angular-html.mjs new file mode 100644 index 0000000..0eb78f1 --- /dev/null +++ b/lib/dist/grammar/angular-html.mjs @@ -0,0 +1 @@ +var t="Angular HTML",e={"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"}]}},a="angular-html",n=[{include:"text.html.basic#core-minus-invalid"},{begin:"(]*)(?)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],m="text.html.derivative.ng",i={displayName:t,injections:e,name:a,patterns:n,scopeName:m};export{i as default,t as displayName,e as injections,a as name,n as patterns,m as scopeName}; diff --git a/lib/dist/grammar/angular-ts.mjs b/lib/dist/grammar/angular-ts.mjs new file mode 100644 index 0000000..813de9a --- /dev/null +++ b/lib/dist/grammar/angular-ts.mjs @@ -0,0 +1 @@ +var e="Angular TypeScript",n="angular-ts",a=[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],t={"access-modifier":{match:"(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(?)",name:"meta.arrow.ts"},{begin:"(?x) (?:\n(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n)\n)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.ts",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.ts"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.ts",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.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.ts",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:"(?)",name:"cast.expr.ts"},{begin:"(?:(?*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]},{begin:"(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]}]},"class-declaration":{begin:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ts"}},end:"(?=$)",name:"comment.line.triple-slash.directive.ts",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.ts"},2:{name:"entity.name.tag.directive.ts"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.ts"}},name:"meta.tag.ts",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.ts"},{match:"=",name:"keyword.operator.assignment.ts"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"(?x)\n((@)author)\n\\s+\n(\n[^@\\s<>*/]\n(?:[^@<>*/]|\\*[^/])*\n)\n(?:\n\\s*\n(<)\n([^>\\s]+)\n(>)\n)?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)\n\\s+ (as) \\s+\n((?:[^@\\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:"()|(?=\\*/)",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.ts"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)see)\n\\s+\n(?:\n\n(\n(?=https?://)\n(?:[^\\s*]|\\*[^/])+\n)\n|\n\n(\n(?!\n\nhttps?://\n|\n\n(?:\\[[^\\[\\]]*\\])?\n{@(?:link|linkcode|linkplain|tutorial)\\b\n)\n\n(?:[^@\\s*/]|\\*[^/])+\n)\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n(?:\n\\s* , \\s*\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)*\n)"},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n(\n(@)\n(?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)"},{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.ts"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n(?:\\[\\])?\n\\.\n[\\w$]+\n)*\n(?:\n\\s*\n(=)\n\\s*\n(\n\n(?>\n\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |\n'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |\n\\[ (?:(?:\\*(?!/))|[^*])*? \\] |\n(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*\n)*\n)\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",name:"variable.other.jsdoc"}]},{begin:"(?x)\n(\n(@)\n(?:define|enum|exception|export|extends|lends|implements|modifies\n|namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n|yields?)\n)\n\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n(\n(@)\n(?:alias|augments|callback|constructs|emits|event|fires|exports?\n|extends|external|function|func|host|lends|listens|interface|memberof!?\n|method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n(?:\n[^{}@\\s*] | \\*[^/]\n)+\n)"},{begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ts"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ts"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ts"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ts"},{captures:{1:{name:"keyword.operator.logical.ts"},2:{name:"keyword.operator.assignment.compound.ts"},3:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ts"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ts"},{match:"\\=",name:"keyword.operator.assignment.ts"},{match:"--",name:"keyword.operator.decrement.ts"},{match:"\\+\\+",name:"keyword.operator.increment.ts"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ts"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?x)(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.ts variable.object.property.ts"},{match:"\\?",name:"keyword.operator.optional.ts"},{match:"\\!",name:"keyword.operator.definiteassignment.ts"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.ts punctuation.accessor.optional.ts"},{match:"\\!",name:"meta.function-call.ts keyword.operator.definiteassignment.ts"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.ts"}]},"function-declaration":{begin:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n))"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.ts"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ts"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"keyword.operator.new.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.property.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?x)(?=(\\b(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},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.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},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.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},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.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},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.ts"}},match:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?])",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},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.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},contentName:"meta.arrow.ts meta.return.type.arrow.ts",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",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.ts"}},end:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n|\n(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.ts"},2:{name:"support.type.object.module.ts"},3:{name:"punctuation.accessor.ts"},4:{name:"punctuation.accessor.optional.ts"},5:{name:"support.type.object.module.ts"}},match:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.ts"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.ts"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.ts"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?)\n))\n)\n)\n)",end:"(?<=\\))",name:"meta.type.function.ts",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.ts"}},end:"(?)(?:\\?]|//|$)",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.ts",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.ts"},2:{name:"entity.name.type.ts"},3:{name:"keyword.operator.expression.extends.ts"}},match:"(?)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.ts"},2:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.ts"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",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.ts"}},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.ts"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.ts"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?)\n))\n))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},end:"(?=$|^|[;,=}]|((?)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.ts entity.name.function.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=$|^|[,);}\\]]|((?)"},{captures:{1:{name:"punctuation.definition.tag.apacheconf"},2:{name:"entity.tag.apacheconf"},3:{name:"punctuation.definition.tag.apacheconf"}},match:"()"},{captures:{3:{name:"string.regexp.apacheconf"},4:{name:"string.replacement.apacheconf"}},match:"(?<=(Rewrite(Rule|Cond)))\\s+(.+?)\\s+(.+?)($|\\s)"},{captures:{2:{name:"entity.status.apacheconf"},3:{name:"string.regexp.apacheconf"},5:{name:"string.path.apacheconf"}},match:"(?<=RedirectMatch)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{2:{name:"entity.status.apacheconf"},3:{name:"string.path.apacheconf"},5:{name:"string.path.apacheconf"}},match:"(?<=Redirect)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{1:{name:"string.regexp.apacheconf"},3:{name:"string.path.apacheconf"}},match:"(?<=ScriptAliasMatch|AliasMatch)\\s+(.+?)\\s+((.+?)\\s)?"},{captures:{1:{name:"string.path.apacheconf"},3:{name:"string.path.apacheconf"}},match:"(?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{1:{name:"keyword.core.apacheconf"}},match:"\\b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\\w+|MaxRanges)\\b"},{captures:{1:{name:"keyword.mpm.apacheconf"}},match:"\\b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b"},{captures:{1:{name:"keyword.access.apacheconf"}},match:"\\b(Allow|Deny|Order)\\b"},{captures:{1:{name:"keyword.actions.apacheconf"}},match:"\\b(Action|Script)\\b"},{captures:{1:{name:"keyword.alias.apacheconf"}},match:"\\b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b"},{captures:{1:{name:"keyword.auth.apacheconf"}},match:"\\b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\\b"},{captures:{1:{name:"keyword.auth_anon.apacheconf"}},match:"\\b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b"},{captures:{1:{name:"keyword.auth_dbm.apacheconf"}},match:"\\b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b"},{captures:{1:{name:"keyword.auth_digest.apacheconf"}},match:"\\b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\\b"},{captures:{1:{name:"keyword.auth_ldap.apacheconf"}},match:"\\b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b"},{captures:{1:{name:"keyword.autoindex.apacheconf"}},match:"\\b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\\b"},{captures:{1:{name:"keyword.filter.apacheconf"}},match:"\\b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\\b"},{captures:{1:{name:"keyword.cache.apacheconf"}},match:"\\b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b"},{captures:{1:{name:"keyword.cern_meta.apacheconf"}},match:"\\b(MetaDir|MetaFiles|MetaSuffix)\\b"},{captures:{1:{name:"keyword.cgi.apacheconf"}},match:"\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b"},{captures:{1:{name:"keyword.cgid.apacheconf"}},match:"\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b"},{captures:{1:{name:"keyword.charset_lite.apacheconf"}},match:"\\b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b"},{captures:{1:{name:"keyword.dav.apacheconf"}},match:"\\b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b"},{captures:{1:{name:"keyword.deflate.apacheconf"}},match:"\\b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b"},{captures:{1:{name:"keyword.dir.apacheconf"}},match:"\\b(DirectoryIndex|DirectorySlash|FallbackResource)\\b"},{captures:{1:{name:"keyword.disk_cache.apacheconf"}},match:"\\b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b"},{captures:{1:{name:"keyword.dumpio.apacheconf"}},match:"\\b(DumpIOInput|DumpIOOutput)\\b"},{captures:{1:{name:"keyword.env.apacheconf"}},match:"\\b(PassEnv|SetEnv|UnsetEnv)\\b"},{captures:{1:{name:"keyword.expires.apacheconf"}},match:"\\b(ExpiresActive|ExpiresByType|ExpiresDefault)\\b"},{captures:{1:{name:"keyword.ext_filter.apacheconf"}},match:"\\b(ExtFilterDefine|ExtFilterOptions)\\b"},{captures:{1:{name:"keyword.file_cache.apacheconf"}},match:"\\b(CacheFile|MMapFile)\\b"},{captures:{1:{name:"keyword.filter.apacheconf"}},match:"\\b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\\b"},{captures:{1:{name:"keyword.headers.apacheconf"}},match:"\\b(Header|RequestHeader)\\b"},{captures:{1:{name:"keyword.imap.apacheconf"}},match:"\\b(ImapBase|ImapDefault|ImapMenu)\\b"},{captures:{1:{name:"keyword.include.apacheconf"}},match:"\\b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b"},{captures:{1:{name:"keyword.isapi.apacheconf"}},match:"\\b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b"},{captures:{1:{name:"keyword.ldap.apacheconf"}},match:"\\b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b"},{captures:{1:{name:"keyword.log.apacheconf"}},match:"\\b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b"},{captures:{1:{name:"keyword.mem_cache.apacheconf"}},match:"\\b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b"},{captures:{1:{name:"keyword.mime.apacheconf"}},match:"\\b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b"},{captures:{1:{name:"keyword.misc.apacheconf"}},match:"\\b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b"},{captures:{1:{name:"keyword.negotiation.apacheconf"}},match:"\\b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b"},{captures:{1:{name:"keyword.nw_ssl.apacheconf"}},match:"\\b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b"},{captures:{1:{name:"keyword.proxy.apacheconf"}},match:"\\b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b"},{captures:{1:{name:"keyword.rewrite.apacheconf"}},match:"\\b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b"},{captures:{1:{name:"keyword.setenvif.apacheconf"}},match:"\\b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b"},{captures:{1:{name:"keyword.so.apacheconf"}},match:"\\b(LoadFile|LoadModule)\\b"},{captures:{1:{name:"keyword.ssl.apacheconf"}},match:"\\b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\\b"},{captures:{1:{name:"keyword.substitute.apacheconf"}},match:"\\b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\\b"},{captures:{1:{name:"keyword.usertrack.apacheconf"}},match:"\\b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b"},{captures:{1:{name:"keyword.vhost_alias.apacheconf"}},match:"\\b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b"},{captures:{1:{name:"keyword.php.apacheconf"},3:{name:"entity.property.apacheconf"},5:{name:"string.value.apacheconf"}},match:'\\b(php_value|php_flag|php_admin_value|php_admin_flag)\\b(\\s+(.+?)(\\s+(".+?"|.+?))?)?\\s'},{captures:{1:{name:"punctuation.variable.apacheconf"},3:{name:"variable.env.apacheconf"},4:{name:"variable.misc.apacheconf"},5:{name:"punctuation.variable.apacheconf"}},match:"(%\\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})"},{captures:{1:{name:"entity.mime-type.apacheconf"}},match:"\\b((text|image|application|video|audio)/.+?)\\s"},{captures:{1:{name:"entity.helper.apacheconf"}},match:"\\b(?i)(export|from|unset|set|on|off)\\b"},{captures:{1:{name:"constant.numeric.integer.decimal.apacheconf"}},match:"\\b(\\d+)\\b"},{captures:{1:{name:"punctuation.definition.flag.apacheconf"},2:{name:"string.flag.apacheconf"},3:{name:"punctuation.definition.flag.apacheconf"}},match:"\\s(\\[)(.*?)(\\])\\s"}],r="source.apacheconf",o={displayName:e,fileTypes:a,name:t,patterns:c,scopeName:r};export{o as default,e as displayName,a as fileTypes,t as name,c as patterns,r as scopeName}; diff --git a/lib/dist/grammar/apex.mjs b/lib/dist/grammar/apex.mjs new file mode 100644 index 0000000..b07bc19 --- /dev/null +++ b/lib/dist/grammar/apex.mjs @@ -0,0 +1 @@ +var e="Apex",n=["apex","cls","trigger"],a="apex",t=[{include:"#javadoc-comment"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],i={"annotation-declaration":{begin:"([@][_[:alpha:]]+)\\b",beginCaptures:{1:{name:"storage.type.annotation.apex"}},end:"(?<=\\)|$)",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"argument-list":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"array-creation-expression":{begin:"(?x)\n\\b(new)\\b\\s*\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)?\\s*\n(?=\\[)",beginCaptures:{1:{name:"keyword.control.new.apex"},2:{patterns:[{include:"#support-type"},{include:"#type"}]}},end:"(?<=\\])",patterns:[{include:"#bracketed-argument-list"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"boolean-literal":{patterns:[{match:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])"},"catch-clause":{begin:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s*\n(?:(\\g)\\b)?"}]},{include:"#comment"},{include:"#block"}]},"class-declaration":{begin:"(?=\\bclass\\b)",end:"(?<=\\})",patterns:[{begin:"(?x)\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.other.class.apex"},2:{name:"entity.name.type.class.apex"}},end:"(?=\\{)",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"},{include:"#implements-class"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#class-or-trigger-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"class-or-trigger-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#type-declarations"},{include:"#field-declaration"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"colon-expression":{match:":",name:"keyword.operator.conditional.colon.apex"},comment:{patterns:[{begin:"/\\*(\\*)?",beginCaptures:{0:{name:"punctuation.definition.comment.apex"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},{begin:"(^\\s+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.apex"}},end:"(?=$)",patterns:[{begin:"(?)",patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:"\\b(?:(this))\\b\\s*(?=\\()",beginCaptures:{1:{name:"keyword.other.this.apex"}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"date-literal-with-params":{captures:{1:{name:"keyword.operator.query.date.apex"}},match:"\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\s*\\:\\d+)\\b"},"date-literals":{captures:{1:{name:"keyword.operator.query.date.apex"}},match:"\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\b\\s*"},declarations:{patterns:[{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},directives:{patterns:[{include:"#punctuation-semicolon"}]},"do-statement":{begin:"(?",beginCaptures:{0:{name:"keyword.operator.arrow.apex"}},end:"(?=[,\\);}])",patterns:[{include:"#expression"}]},"expression-operators":{patterns:[{match:"\\*=|/=|%=|\\+=|-=",name:"keyword.operator.assignment.compound.apex"},{match:"\\&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.apex"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.apex"},{match:"==|!=",name:"keyword.operator.comparison.apex"},{match:"<=|>=|<|>",name:"keyword.operator.relational.apex"},{match:"\\!|&&|\\|\\|",name:"keyword.operator.logical.apex"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.apex"},{match:"\\=",name:"keyword.operator.assignment.apex"},{match:"--",name:"keyword.operator.decrement.apex"},{match:"\\+\\+",name:"keyword.operator.increment.apex"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.apex"}]},"extends-class":{begin:"(extends)\\b\\s+([_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"keyword.other.extends.apex"},2:{name:"entity.name.type.extends.apex"}},end:"(?={|implements)"},"field-declaration":{begin:"(?x)\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s+\n(\\g)\\s*\n(?!=>|==)(?=,|;|=|$)",beginCaptures:{1:{patterns:[{include:"#support-type"},{include:"#type"}]},5:{name:"entity.name.variable.field.apex"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.field.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"finally-clause":{begin:"(?\n(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?this)\\s*\n(?=\\[)",beginCaptures:{1:{patterns:[{include:"#type"}]},6:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},7:{name:"keyword.other.this.apex"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"}]},"initializer-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-declaration":{begin:"(?=\\binterface\\b)",end:"(?<=\\})",patterns:[{begin:"(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"keyword.other.interface.apex"},2:{name:"entity.name.type.interface.apex"}},end:"(?=\\{)",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#type-parameter-list"},{include:"#extends-class"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#interface-members"}]},{include:"#javadoc-comment"},{include:"#comment"}]},"interface-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"invocation-expression":{begin:"(?x)\n(?:(\\??\\.)\\s*)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?\\s*<([^<>]|\\g)+>\\s*)?\\s*\n(?=\\()",beginCaptures:{1:{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},2:{name:"entity.name.function.apex"},3:{patterns:[{include:"#type-arguments"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"javadoc-comment":{patterns:[{begin:"^\\s*(/\\*\\*)(?!/)",beginCaptures:{1:{name:"punctuation.definition.comment.apex"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.apex"}},name:"comment.block.javadoc.apex",patterns:[{match:"@(deprecated|author|return|see|serial|since|version|usage|name|link)\\b",name:"keyword.other.documentation.javadoc.apex"},{captures:{1:{name:"keyword.other.documentation.javadoc.apex"},2:{name:"entity.name.variable.parameter.apex"}},match:"(@param)\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.javadoc.apex"},2:{name:"entity.name.type.class.apex"}},match:"(@(?:exception|throws))\\s+(\\S+)"},{captures:{1:{name:"string.quoted.single.apex"}},match:"(`([^`]+?)`)"}]}]},literal:{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#string-literal"}]},"local-constant-declaration":{begin:"(?x)\n(?\\b(?:const)\\b)\\s*\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s+\n(\\g)\\s*\n(?=,|;|=)",beginCaptures:{1:{name:"storage.modifier.apex"},2:{patterns:[{include:"#type"}]},6:{name:"entity.name.variable.local.apex"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"}]},"local-variable-declaration":{begin:"(?x)\n(?:\n(?:(\\bref)\\s+)?(\\bvar\\b)|\n(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\n)\\s+\n(\\g)\\s*\n(?=,|;|=|\\))",beginCaptures:{1:{name:"storage.modifier.apex"},2:{name:"keyword.other.var.apex"},3:{patterns:[{include:"#support-type"},{include:"#type"}]},7:{name:"entity.name.variable.local.apex"}},end:"(?=;|\\))",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.apex"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"member-access-expression":{patterns:[{captures:{1:{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},2:{name:"variable.other.object.property.apex"}},match:"(?x)\n(\\??\\.)\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<)"},{captures:{1:{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},2:{name:"variable.other.object.apex"},3:{patterns:[{include:"#type-arguments"}]}},match:"(?x)\n(\\??\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\\s*<([^<>]|\\g)+>\\s*)\n(?=\n(\\s*\\?)?\n\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)"},{captures:{1:{name:"variable.other.object.apex"}},match:"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n(\\s*\\?)?\n\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)"}]},"merge-expression":{begin:"(merge)\\b\\s+",beginCaptures:{1:{name:"support.function.apex"}},end:"(?<=\\;)",patterns:[{include:"#object-creation-expression"},{include:"#merge-type-statement"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"merge-type-statement":{captures:{1:{name:"variable.other.readwrite.apex"},2:{name:"variable.other.readwrite.apex"},3:{name:"punctuation.terminator.statement.apex"}},match:"([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)"},"method-declaration":{begin:"(?x)\n(?\n(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",beginCaptures:{1:{patterns:[{include:"#support-type"},{include:"#type"}]},6:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},7:{patterns:[{include:"#support-type"},{include:"#method-name-custom"}]},8:{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"method-name-custom":{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.function.apex"},"named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{1:{name:"entity.name.variable.parameter.apex"},2:{name:"punctuation.separator.colon.apex"}},end:"(?=(,|\\)|\\]))",patterns:[{include:"#expression"}]},"null-literal":{match:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s*\n(?=\\{|$)"},"object-creation-expression-with-parameters":{begin:"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s*\n(?=\\()",beginCaptures:{1:{name:"support.function.apex"},2:{name:"keyword.control.new.apex"},3:{patterns:[{include:"#support-type"},{include:"#type"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"operator-assignment":{match:"(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s+\n(\\g)"},"parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},"parenthesized-parameter-list":{begin:"(\\()",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"(\\))",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#comment"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},"property-accessors":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{match:"\\b(private|protected)\\b",name:"storage.modifier.apex"},{match:"\\b(get)\\b",name:"keyword.other.get.apex"},{match:"\\b(set)\\b",name:"keyword.other.set.apex"},{include:"#comment"},{include:"#expression-body"},{include:"#block"},{include:"#punctuation-semicolon"}]},"property-declaration":{begin:"(?x)\n(?!.*\\b(?:class|interface|enum)\\b)\\s*\n(?\n(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)*\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?\\g)\\s*\n(?=\\{|=>|$)",beginCaptures:{1:{patterns:[{include:"#type"}]},6:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},7:{name:"entity.name.variable.property.apex"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"punctuation-accessor":{match:"\\.",name:"punctuation.accessor.apex"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.apex"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.apex"},"query-operators":{captures:{1:{name:"keyword.operator.query.apex"}},match:"\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\b\\s*"},"return-statement":{begin:"(?",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#punctuation-comma"}]},"support-class":{captures:{1:{name:"support.class.apex"}},match:"\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b"},"support-expression":{begin:"(?x)\n(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s)",beginCaptures:{1:{name:"support.class.apex"}},end:"(?<=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)",patterns:[{include:"#support-type"},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.function.apex"}},match:"(?:(\\.))([[:alpha:]]*)(?=\\()"},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.type.apex"}},match:"(?:(\\.))([[:alpha:]]+)"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{include:"#comment"},{include:"#statement"}]},"support-functions":{captures:{1:{name:"support.function.apex"}},match:"\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b"},"support-name":{patterns:[{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.function.apex"}},match:"(\\.)\\s*([[:alpha:]]*)(?=\\()"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"support.type.apex"}},match:"(\\.)\\s*([_[:alpha:]]*)"}]},"support-type":{name:"support.apex",patterns:[{include:"#comment"},{include:"#support-class"},{include:"#support-functions"},{include:"#support-name"}]},"switch-statement":{begin:"(?x)\n(switch)\\b\\s+\n(on)\\b\\s+\n(?:([_.?\\'\\(\\)[:alnum:]]+)\\s*)?\n(\\{)",beginCaptures:{1:{name:"keyword.control.switch.apex"},2:{name:"keyword.control.switch.on.apex"},3:{patterns:[{include:"#statement"},{include:"#parenthesized-expression"}]},4:{name:"punctuation.curlybrace.open.apex"}},end:"(\\})",endCaptures:{0:{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#when-string"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"this-expression":{captures:{1:{name:"keyword.other.this.apex"}},match:"\\b(?:(this))\\b"},"throw-expression":{captures:{1:{name:"keyword.control.flow.throw.apex"}},match:"(?",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.apex"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#punctuation-comma"}]},"type-builtin":{captures:{1:{name:"keyword.type.apex"}},match:"\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b"},"type-declarations":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#annotation-declaration"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#class-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#trigger-declaration"},{include:"#punctuation-semicolon"}]},"type-name":{patterns:[{captures:{1:{name:"storage.type.apex"},2:{name:"punctuation.accessor.apex"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)"},{captures:{1:{name:"punctuation.accessor.apex"},2:{name:"storage.type.apex"}},match:"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"storage.type.apex"}]},"type-nullable-suffix":{captures:{0:{name:"punctuation.separator.question-mark.apex"}},match:"\\?"},"type-parameter-list":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.apex"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{captures:{1:{name:"entity.name.type.type-parameter.apex"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b"},{include:"#comment"},{include:"#punctuation-comma"}]},"using-scope":{captures:{1:{name:"keyword.operator.query.using.apex"}},match:"((USING SCOPE)\\b\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\b\\s*"},"variable-initializer":{begin:"(?)",beginCaptures:{1:{name:"keyword.operator.assignment.apex"}},end:"(?=[,\\)\\];}])",patterns:[{include:"#expression"}]},"when-else-statement":{begin:"(when)\\b\\s+(else)\\b\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{name:"keyword.control.switch.else.apex"}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-multiple-statement":{begin:"(when)\\b\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-sobject-statement":{begin:"(when)\\b\\s+([_[:alnum:]]+)\\s+([_[:alnum:]]+)\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{name:"storage.type.apex"},3:{name:"entity.name.variable.local.apex"}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-statement":{begin:"(when)\\b\\s+([\\'_\\-[:alnum:]]+)\\s*",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{patterns:[{include:"#expression"}]}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-string":{begin:"(when)(\\b\\s*)((\\')[_.\\,\\'\\s*[:alnum:]]+)",beginCaptures:{1:{name:"keyword.control.switch.when.apex"},2:{name:"punctuation.whitespace.apex"},3:{patterns:[{include:"#when-string-statement"},{include:"#punctuation-comma"}]}},end:"(?<=\\})",patterns:[{include:"#block"},{include:"#expression"}]},"when-string-statement":{patterns:[{begin:"\\'",beginCaptures:{0:{name:"punctuation.definition.string.begin.apex"}},end:"\\'",endCaptures:{0:{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.apex"}]},"where-clause":{captures:{1:{name:"keyword.operator.query.where.apex"}},match:"\\b(WHERE)\\b\\s*"},"while-statement":{begin:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.apex"}},name:"string.unquoted.cdata.apex"},"xml-character-entity":{patterns:[{captures:{1:{name:"punctuation.definition.constant.apex"},3:{name:"punctuation.definition.constant.apex"}},match:"(?x)\n(&)\n(\n(?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n(?:\\#[[:digit:]]+)|\n(?:\\#x[[:xdigit:]]+)\n)\n(;)",name:"constant.character.entity.apex"},{match:"&",name:"invalid.illegal.bad-ampersand.apex"}]},"xml-comment":{begin:"\x3c!--",beginCaptures:{0:{name:"punctuation.definition.comment.apex"}},end:"--\x3e",endCaptures:{0:{name:"punctuation.definition.comment.apex"}},name:"comment.block.apex"},"xml-doc-comment":{patterns:[{include:"#xml-comment"},{include:"#xml-character-entity"},{include:"#xml-cdata"},{include:"#xml-tag"}]},"xml-string":{patterns:[{begin:"\\'",beginCaptures:{0:{name:"punctuation.definition.string.begin.apex"}},end:"\\'",endCaptures:{0:{name:"punctuation.definition.string.end.apex"}},name:"string.quoted.single.apex",patterns:[{include:"#xml-character-entity"}]},{begin:'\\"',beginCaptures:{0:{name:"punctuation.definition.stringdoublequote.begin.apex"}},end:'\\"',endCaptures:{0:{name:"punctuation.definition.stringdoublequote.end.apex"}},name:"string.quoted.double.apex",patterns:[{include:"#xml-character-entity"}]}]},"xml-tag":{begin:"(?x)\n()",endCaptures:{1:{name:"punctuation.definition.tag.apex"}},name:"meta.tag.apex",patterns:[{include:"#xml-attribute"}]}},r="source.apex",s={displayName:e,fileTypes:n,name:a,patterns:t,repository:i,scopeName:r};export{s as default,e as displayName,n as fileTypes,a as name,t as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/apl.mjs b/lib/dist/grammar/apl.mjs new file mode 100644 index 0000000..d53dd14 --- /dev/null +++ b/lib/dist/grammar/apl.mjs @@ -0,0 +1 @@ +var a="APL",e=["apl","apla","aplc","aplf","apli","apln","aplo","dyalog","dyapp","mipage"],n="(?x)\n# APL symbols\n[⌶-⍺]\n|\n\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\t(?:gnu[-._]?apl|aplx?|dyalog)\n(?:$|\\s)\n|\n\n# Modeline\n(?i:\n\t# Emacs\n\t-\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n\t\tapl\n\t(?=[\\s;]|(?]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s* set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\t\tapl\n\t(?=\\s|:|$)\n)",t="{",o="}",r="apl",i=[{match:"\\A#!.*$",name:"comment.line.shebang.apl"},{include:"#heredocs"},{include:"#main"},{begin:"^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$",beginCaptures:{1:{name:"entity.name.command.eof.apl"},2:{name:"punctuation.definition.command.apl"},3:{name:"punctuation.definition.command.apl"},4:{patterns:[{include:"#comment"}]}},contentName:"text.embedded.apl",end:"(?=N)A"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.round.bracket.begin.apl"}},end:"\\)",endCaptures:{0:{name:"punctuation.round.bracket.end.apl"}},name:"meta.round.bracketed.group.apl",patterns:[{include:"#main"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.square.bracket.begin.apl"}},end:"\\]",endCaptures:{0:{name:"punctuation.square.bracket.end.apl"}},name:"meta.square.bracketed.group.apl",patterns:[{include:"#main"}]},{begin:"^\\s*((\\))\\S+)",beginCaptures:{1:{name:"entity.name.command.apl"},2:{name:"punctuation.definition.command.apl"}},end:"$",name:"meta.system.command.apl",patterns:[{include:"#command-arguments"},{include:"#command-switches"},{include:"#main"}]},{begin:"^\\s*((\\])\\S+)",beginCaptures:{1:{name:"entity.name.command.apl"},2:{name:"punctuation.definition.command.apl"}},end:"$",name:"meta.user.command.apl",patterns:[{include:"#command-arguments"},{include:"#command-switches"},{include:"#main"}]}],p={class:{patterns:[{begin:"(?x)\n(?<=\\s|^)\n((:)Class)\n\\s+\n(\n'[^']*'?\n|\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n\\s*\n(\n(:)\n\\s*\n(?:\n(\n'[^']*'?\n|\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n\\s*\n)?\n)?\n(.*?)$",beginCaptures:{0:{name:"meta.class.apl"},1:{name:"keyword.control.class.apl"},2:{name:"punctuation.definition.class.apl"},3:{name:"entity.name.type.class.apl",patterns:[{include:"#strings"}]},4:{name:"entity.other.inherited-class.apl"},5:{name:"punctuation.separator.inheritance.apl"},6:{patterns:[{include:"#strings"}]},7:{name:"entity.other.class.interfaces.apl",patterns:[{include:"#csv"}]}},end:"(?<=\\s|^)((:)EndClass)(?=\\b)",endCaptures:{1:{name:"keyword.control.class.apl"},2:{name:"punctuation.definition.class.apl"}},patterns:[{begin:"(?<=\\s|^)(:)Field(?=\\s)",beginCaptures:{0:{name:"keyword.control.field.apl"},1:{name:"punctuation.definition.field.apl"}},end:"\\s*(←.*)?(?:$|(?=⍝))",endCaptures:{0:{name:"entity.other.initial-value.apl"},1:{patterns:[{include:"#main"}]}},name:"meta.field.apl",patterns:[{match:"(?<=\\s|^)Public(?=\\s|$)",name:"storage.modifier.access.public.apl"},{match:"(?<=\\s|^)Private(?=\\s|$)",name:"storage.modifier.access.private.apl"},{match:"(?<=\\s|^)Shared(?=\\s|$)",name:"storage.modifier.shared.apl"},{match:"(?<=\\s|^)Instance(?=\\s|$)",name:"storage.modifier.instance.apl"},{match:"(?<=\\s|^)ReadOnly(?=\\s|$)",name:"storage.modifier.readonly.apl"},{captures:{1:{patterns:[{include:"#strings"}]}},match:"(?x)\n(\n'[^']*'?\n|\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)",name:"entity.name.type.apl"}]},{include:"$self"}]}]},"command-arguments":{patterns:[{begin:"\\b(?=\\S)",end:"\\b(?=\\s)",name:"variable.parameter.argument.apl",patterns:[{include:"#main"}]}]},"command-switches":{patterns:[{begin:"(?x)\n(?<=\\s)(-)\n(\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(=)",beginCaptures:{1:{name:"punctuation.delimiter.switch.apl"},2:{name:"entity.name.switch.apl"},3:{name:"punctuation.assignment.switch.apl"}},end:"\\b(?=\\s)",name:"variable.parameter.switch.apl",patterns:[{include:"#main"}]},{captures:{1:{name:"punctuation.delimiter.switch.apl"},2:{name:"entity.name.switch.apl"}},match:"(?x)\n(?<=\\s)(-)\n(\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(?!=)",name:"variable.parameter.switch.apl"}]},comment:{patterns:[{begin:"⍝",captures:{0:{name:"punctuation.definition.comment.apl"}},end:"$",name:"comment.line.apl"}]},csv:{patterns:[{match:",",name:"punctuation.separator.apl"},{include:"$self"}]},definition:{patterns:[{begin:"(?x) ^\\s*? (?# 1: keyword.operator.nabla.apl) (∇) (?: \\s* (?: (?# 2: entity.function.return-value.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) | \\s* (?# 3: entity.function.return-value.shy.apl) ( (\\{) (?# 4: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 5: punctuation.definition.return-value.end.apl) | (\\() (?# 6: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 7: punctuation.definition.return-value.end.apl) | (\\(\\s*\\{) (?# 8: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 9: punctuation.definition.return-value.end.apl) | (\\{\\s*\\() (?# 10: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 11: punctuation.definition.return-value.end.apl) ) \\s* ) \\s* (?# 12: keyword.operator.assignment.apl) (←) )? \\s* (?: (?# MONADIC) (?: (?# 13: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 14: entity.function.axis.apl) ( (?# 15: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 16: invalid.illegal.extra-characters.apl) (.*?) | (?# 17: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 18: punctuation.definition.axis.end.apl) (\\]) )? \\s*? (?# 19: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | (\\() (?# 20: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 21: punctuation.definition.arguments.end.apl) ) \\s* (?=;|$) ) | (?# DYADIC/AMBIVALENT) (?#==================) (?: (?# 22: entity.function.arguments.left.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s+ ) | (?# 23: entity.function.arguments.left.optional.apl) ( (\\{) (?# 24: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 25: punctuation.definition.arguments.end.apl) | (\\(\\s*\\{) (?# 26: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 27: punctuation.definition.arguments.end.apl) | (\\{\\s*\\() (?# 28: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 29: punctuation.definition.arguments.end.apl) ) )? \\s* (?: (?# 30: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 31: entity.function.axis.apl) ( (?# 32: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 33: invalid.illegal.extra-characters.apl) (.*?) | (?# 34: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 35: punctuation.definition.axis.end.apl) (\\]) )? | (?# 36: entity.function.operands.apl) ( (?# 37: punctuation.definition.operands.begin.apl) (\\() (?# 38: entity.function.operands.left.apl) ( \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* )? \\s* (?# 39: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s*? (?# 40: entity.function.axis.apl) ( (?# 41: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 42: invalid.illegal.extra-characters.apl) (.*?) | (?# 43: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 44: punctuation.definition.axis.end.apl) (\\]) )? \\s* (?# 45: entity.function.operands.right.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )? (?# 46: punctuation.definition.operands.end.apl) (\\)) ) ) \\s* (?# 47: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | \\s* (\\() (?# 48: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 49: punctuation.definition.arguments.end.apl) )? (?#==================) ) \\s* (?# 50: invalid.illegal.arguments.right.apl) ([^;]+)? (?# 51: entity.function.local-variables.apl) ( (?# 52: Include “;”) ( (?> \\s* ; (?: \\s* [⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )+ )+ ) | (?# 53: invalid.illegal.local-variables.apl) ([^⍝]+) )? \\s* (?# 54: comment.line.apl) (⍝.*)? $",beginCaptures:{0:{name:"entity.function.definition.apl"},1:{name:"keyword.operator.nabla.apl"},2:{name:"entity.function.return-value.apl"},3:{name:"entity.function.return-value.shy.apl"},4:{name:"punctuation.definition.return-value.begin.apl"},5:{name:"punctuation.definition.return-value.end.apl"},6:{name:"punctuation.definition.return-value.begin.apl"},7:{name:"punctuation.definition.return-value.end.apl"},8:{name:"punctuation.definition.return-value.begin.apl"},9:{name:"punctuation.definition.return-value.end.apl"},10:{name:"punctuation.definition.return-value.begin.apl"},11:{name:"punctuation.definition.return-value.end.apl"},12:{name:"keyword.operator.assignment.apl"},13:{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},14:{name:"entity.function.axis.apl"},15:{name:"punctuation.definition.axis.begin.apl"},16:{name:"invalid.illegal.extra-characters.apl"},17:{name:"invalid.illegal.apl"},18:{name:"punctuation.definition.axis.end.apl"},19:{name:"entity.function.arguments.right.apl"},20:{name:"punctuation.definition.arguments.begin.apl"},21:{name:"punctuation.definition.arguments.end.apl"},22:{name:"entity.function.arguments.left.apl"},23:{name:"entity.function.arguments.left.optional.apl"},24:{name:"punctuation.definition.arguments.begin.apl"},25:{name:"punctuation.definition.arguments.end.apl"},26:{name:"punctuation.definition.arguments.begin.apl"},27:{name:"punctuation.definition.arguments.end.apl"},28:{name:"punctuation.definition.arguments.begin.apl"},29:{name:"punctuation.definition.arguments.end.apl"},30:{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},31:{name:"entity.function.axis.apl"},32:{name:"punctuation.definition.axis.begin.apl"},33:{name:"invalid.illegal.extra-characters.apl"},34:{name:"invalid.illegal.apl"},35:{name:"punctuation.definition.axis.end.apl"},36:{name:"entity.function.operands.apl"},37:{name:"punctuation.definition.operands.begin.apl"},38:{name:"entity.function.operands.left.apl"},39:{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},40:{name:"entity.function.axis.apl"},41:{name:"punctuation.definition.axis.begin.apl"},42:{name:"invalid.illegal.extra-characters.apl"},43:{name:"invalid.illegal.apl"},44:{name:"punctuation.definition.axis.end.apl"},45:{name:"entity.function.operands.right.apl"},46:{name:"punctuation.definition.operands.end.apl"},47:{name:"entity.function.arguments.right.apl"},48:{name:"punctuation.definition.arguments.begin.apl"},49:{name:"punctuation.definition.arguments.end.apl"},50:{name:"invalid.illegal.arguments.right.apl"},51:{name:"entity.function.local-variables.apl"},52:{patterns:[{match:";",name:"punctuation.separator.apl"}]},53:{name:"invalid.illegal.local-variables.apl"},54:{name:"comment.line.apl"}},end:"^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$",endCaptures:{1:{name:"keyword.operator.nabla.apl"},2:{name:"keyword.operator.lock.apl"},3:{name:"comment.line.apl"}},name:"meta.function.apl",patterns:[{captures:{0:{name:"entity.function.local-variables.apl"},1:{patterns:[{match:";",name:"punctuation.separator.apl"}]}},match:"(?x)\n^\\s*\n(\n(?>\n;\n(?:\n\\s*\n[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\\s*\n)+\n)+\n)",name:"entity.function.definition.apl"},{include:"$self"}]}]},"embedded-apl":{patterns:[{begin:"(?i)(<(\\?|%)(?:apl(?=\\s+)|=))",beginCaptures:{1:{name:"punctuation.section.embedded.begin.apl"}},end:"(?<=\\s)(\\2>)",endCaptures:{1:{name:"punctuation.section.embedded.end.apl"}},name:"meta.embedded.block.apl",patterns:[{include:"#main"}]}]},embolden:{patterns:[{match:".+",name:"markup.bold.identifier.apl"}]},heredocs:{patterns:[{begin:"^.*?⎕INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"text.embedded.html.basic",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"text.html.basic"},{include:"#embedded-apl"}]},{begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"text.embedded.xml",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"text.xml"},{include:"#embedded-apl"}]},{begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"source.embedded.css",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"source.css"},{include:"#embedded-apl"}]},{begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"source.embedded.js",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"source.js"},{include:"#embedded-apl"}]},{begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"source.embedded.json",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"source.json"},{include:"#embedded-apl"}]},{begin:"^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},contentName:"text.embedded.plain",end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"#embedded-apl"}]},{begin:"^.*?⎕INP\\s+('|\")(.*?)\\1.*$",beginCaptures:{0:{patterns:[{include:"#main"}]}},end:"^.*?\\2.*?$",endCaptures:{0:{name:"constant.other.apl"}},name:"meta.heredoc.apl",patterns:[{include:"$self"}]}]},label:{patterns:[{captures:{1:{name:"entity.label.name.apl"},2:{name:"punctuation.definition.label.end.apl"}},match:"(?x)\n^\\s*\n(\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(:)",name:"meta.label.apl"}]},lambda:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.lambda.begin.apl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.lambda.end.apl"}},name:"meta.lambda.function.apl",patterns:[{include:"#main"},{include:"#lambda-variables"}]},"lambda-variables":{patterns:[{match:"⍺⍺",name:"constant.language.lambda.operands.left.apl"},{match:"⍵⍵",name:"constant.language.lambda.operands.right.apl"},{match:"[⍺⍶]",name:"constant.language.lambda.arguments.left.apl"},{match:"[⍵⍹]",name:"constant.language.lambda.arguments.right.apl"},{match:"χ",name:"constant.language.lambda.arguments.axis.apl"},{match:"∇∇",name:"constant.language.lambda.operands.self.operator.apl"},{match:"∇",name:"constant.language.lambda.operands.self.function.apl"},{match:"λ",name:"constant.language.lambda.symbol.apl"}]},main:{patterns:[{include:"#class"},{include:"#definition"},{include:"#comment"},{include:"#label"},{include:"#sck"},{include:"#strings"},{include:"#number"},{include:"#lambda"},{include:"#sysvars"},{include:"#symbols"},{include:"#name"}]},name:{patterns:[{match:"(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*",name:"variable.other.readwrite.apl"}]},number:{patterns:[{match:"¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*",name:"constant.numeric.apl"}]},sck:{patterns:[{captures:{1:{name:"punctuation.definition.sck.begin.apl"}},match:"(?<=\\s|^)(:)[A-Za-z]+",name:"keyword.control.sck.apl"}]},strings:{patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.apl"}},end:"'|$",endCaptures:{0:{name:"punctuation.definition.string.end.apl"}},name:"string.quoted.single.apl",patterns:[{match:"[^']*[^'\\n\\r\\\\]$",name:"invalid.illegal.string.apl"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.apl"}},end:'"|$',endCaptures:{0:{name:"punctuation.definition.string.end.apl"}},name:"string.quoted.double.apl",patterns:[{match:'[^"]*[^"\\n\\r\\\\]$',name:"invalid.illegal.string.apl"}]}]},symbols:{patterns:[{match:"(?<=\\s)←(?=\\s|$)",name:"keyword.spaced.operator.assignment.apl"},{match:"(?<=\\s)→(?=\\s|$)",name:"keyword.spaced.control.goto.apl"},{match:"(?<=\\s)≡(?=\\s|$)",name:"keyword.spaced.operator.identical.apl"},{match:"(?<=\\s)≢(?=\\s|$)",name:"keyword.spaced.operator.not-identical.apl"},{match:"\\+",name:"keyword.operator.plus.apl"},{match:"[-−]",name:"keyword.operator.minus.apl"},{match:"×",name:"keyword.operator.times.apl"},{match:"÷",name:"keyword.operator.divide.apl"},{match:"⌊",name:"keyword.operator.floor.apl"},{match:"⌈",name:"keyword.operator.ceiling.apl"},{match:"[∣|]",name:"keyword.operator.absolute.apl"},{match:"[⋆*]",name:"keyword.operator.exponent.apl"},{match:"⍟",name:"keyword.operator.logarithm.apl"},{match:"○",name:"keyword.operator.circle.apl"},{match:"!",name:"keyword.operator.factorial.apl"},{match:"∧",name:"keyword.operator.and.apl"},{match:"∨",name:"keyword.operator.or.apl"},{match:"⍲",name:"keyword.operator.nand.apl"},{match:"⍱",name:"keyword.operator.nor.apl"},{match:"<",name:"keyword.operator.less.apl"},{match:"≤",name:"keyword.operator.less-or-equal.apl"},{match:"=",name:"keyword.operator.equal.apl"},{match:"≥",name:"keyword.operator.greater-or-equal.apl"},{match:">",name:"keyword.operator.greater.apl"},{match:"≠",name:"keyword.operator.not-equal.apl"},{match:"[∼~]",name:"keyword.operator.tilde.apl"},{match:"\\?",name:"keyword.operator.random.apl"},{match:"[∊∈]",name:"keyword.operator.member-of.apl"},{match:"⍷",name:"keyword.operator.find.apl"},{match:",",name:"keyword.operator.comma.apl"},{match:"⍪",name:"keyword.operator.comma-bar.apl"},{match:"⌷",name:"keyword.operator.squad.apl"},{match:"⍳",name:"keyword.operator.iota.apl"},{match:"⍴",name:"keyword.operator.rho.apl"},{match:"↑",name:"keyword.operator.take.apl"},{match:"↓",name:"keyword.operator.drop.apl"},{match:"⊣",name:"keyword.operator.left.apl"},{match:"⊢",name:"keyword.operator.right.apl"},{match:"⊤",name:"keyword.operator.encode.apl"},{match:"⊥",name:"keyword.operator.decode.apl"},{match:"\\/",name:"keyword.operator.slash.apl"},{match:"⌿",name:"keyword.operator.slash-bar.apl"},{match:"\\x5C",name:"keyword.operator.backslash.apl"},{match:"⍀",name:"keyword.operator.backslash-bar.apl"},{match:"⌽",name:"keyword.operator.rotate-last.apl"},{match:"⊖",name:"keyword.operator.rotate-first.apl"},{match:"⍉",name:"keyword.operator.transpose.apl"},{match:"⍋",name:"keyword.operator.grade-up.apl"},{match:"⍒",name:"keyword.operator.grade-down.apl"},{match:"⌹",name:"keyword.operator.quad-divide.apl"},{match:"≡",name:"keyword.operator.identical.apl"},{match:"≢",name:"keyword.operator.not-identical.apl"},{match:"⊂",name:"keyword.operator.enclose.apl"},{match:"⊃",name:"keyword.operator.pick.apl"},{match:"∩",name:"keyword.operator.intersection.apl"},{match:"∪",name:"keyword.operator.union.apl"},{match:"⍎",name:"keyword.operator.hydrant.apl"},{match:"⍕",name:"keyword.operator.thorn.apl"},{match:"⊆",name:"keyword.operator.underbar-shoe-left.apl"},{match:"⍸",name:"keyword.operator.underbar-iota.apl"},{match:"¨",name:"keyword.operator.each.apl"},{match:"⍤",name:"keyword.operator.rank.apl"},{match:"⌸",name:"keyword.operator.quad-equal.apl"},{match:"⍨",name:"keyword.operator.commute.apl"},{match:"⍣",name:"keyword.operator.power.apl"},{match:"\\.",name:"keyword.operator.dot.apl"},{match:"∘",name:"keyword.operator.jot.apl"},{match:"⍠",name:"keyword.operator.quad-colon.apl"},{match:"&",name:"keyword.operator.ampersand.apl"},{match:"⌶",name:"keyword.operator.i-beam.apl"},{match:"⌺",name:"keyword.operator.quad-diamond.apl"},{match:"@",name:"keyword.operator.at.apl"},{match:"◊",name:"keyword.operator.lozenge.apl"},{match:";",name:"keyword.operator.semicolon.apl"},{match:"¯",name:"keyword.operator.high-minus.apl"},{match:"←",name:"keyword.operator.assignment.apl"},{match:"→",name:"keyword.control.goto.apl"},{match:"⍬",name:"constant.language.zilde.apl"},{match:"⋄",name:"keyword.operator.diamond.apl"},{match:"⍫",name:"keyword.operator.lock.apl"},{match:"⎕",name:"keyword.operator.quad.apl"},{match:"##",name:"constant.language.namespace.parent.apl"},{match:"#",name:"constant.language.namespace.root.apl"},{match:"⌻",name:"keyword.operator.quad-jot.apl"},{match:"⌼",name:"keyword.operator.quad-circle.apl"},{match:"⌾",name:"keyword.operator.circle-jot.apl"},{match:"⍁",name:"keyword.operator.quad-slash.apl"},{match:"⍂",name:"keyword.operator.quad-backslash.apl"},{match:"⍃",name:"keyword.operator.quad-less.apl"},{match:"⍄",name:"keyword.operator.greater.apl"},{match:"⍅",name:"keyword.operator.vane-left.apl"},{match:"⍆",name:"keyword.operator.vane-right.apl"},{match:"⍇",name:"keyword.operator.quad-arrow-left.apl"},{match:"⍈",name:"keyword.operator.quad-arrow-right.apl"},{match:"⍊",name:"keyword.operator.tack-down.apl"},{match:"⍌",name:"keyword.operator.quad-caret-down.apl"},{match:"⍍",name:"keyword.operator.quad-del-up.apl"},{match:"⍏",name:"keyword.operator.vane-up.apl"},{match:"⍐",name:"keyword.operator.quad-arrow-up.apl"},{match:"⍑",name:"keyword.operator.tack-up.apl"},{match:"⍓",name:"keyword.operator.quad-caret-up.apl"},{match:"⍔",name:"keyword.operator.quad-del-down.apl"},{match:"⍖",name:"keyword.operator.vane-down.apl"},{match:"⍗",name:"keyword.operator.quad-arrow-down.apl"},{match:"⍘",name:"keyword.operator.underbar-quote.apl"},{match:"⍚",name:"keyword.operator.underbar-diamond.apl"},{match:"⍛",name:"keyword.operator.underbar-jot.apl"},{match:"⍜",name:"keyword.operator.underbar-circle.apl"},{match:"⍞",name:"keyword.operator.quad-quote.apl"},{match:"⍡",name:"keyword.operator.dotted-tack-up.apl"},{match:"⍢",name:"keyword.operator.dotted-del.apl"},{match:"⍥",name:"keyword.operator.dotted-circle.apl"},{match:"⍦",name:"keyword.operator.stile-shoe-up.apl"},{match:"⍧",name:"keyword.operator.stile-shoe-left.apl"},{match:"⍩",name:"keyword.operator.dotted-greater.apl"},{match:"⍭",name:"keyword.operator.stile-tilde.apl"},{match:"⍮",name:"keyword.operator.underbar-semicolon.apl"},{match:"⍯",name:"keyword.operator.quad-not-equal.apl"},{match:"⍰",name:"keyword.operator.quad-question.apl"}]},sysvars:{patterns:[{captures:{1:{name:"punctuation.definition.quad.apl"},2:{name:"punctuation.definition.quad-quote.apl"}},match:"(?:(⎕)|(⍞))[A-Za-z]*",name:"support.system.variable.apl"}]}},l="source.apl",m={displayName:"APL",fileTypes:e,firstLineMatch:n,foldingStartMarker:"{",foldingStopMarker:"}",name:"apl",patterns:i,repository:p,scopeName:l};export{m as default,a as displayName,e as fileTypes,n as firstLineMatch,t as foldingStartMarker,o as foldingStopMarker,r as name,i as patterns,p as repository,l as scopeName}; diff --git a/lib/dist/grammar/applescript.mjs b/lib/dist/grammar/applescript.mjs new file mode 100644 index 0000000..8cd4d0c --- /dev/null +++ b/lib/dist/grammar/applescript.mjs @@ -0,0 +1 @@ +var e="AppleScript",t=["applescript","scpt","script editor"],n="^#!.*(osascript)",a="applescript",s=[{include:"#blocks"},{include:"#inline"}],i={"attributes.considering-ignoring":{patterns:[{match:",",name:"punctuation.separator.array.attributes.applescript"},{match:"\\b(and)\\b",name:"keyword.control.attributes.and.applescript"},{match:"\\b(?i:case|diacriticals|hyphens|numeric\\s+strings|punctuation|white\\s+space)\\b",name:"constant.other.attributes.text.applescript"},{match:"\\b(?i:application\\s+responses)\\b",name:"constant.other.attributes.application.applescript"}]},blocks:{patterns:[{begin:"^\\s*(script)\\s+(\\w+)",beginCaptures:{1:{name:"keyword.control.script.applescript"},2:{name:"entity.name.type.script-object.applescript"}},end:"^\\s*(end(?:\\s+script)?)(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.script.applescript"}},name:"meta.block.script.applescript",patterns:[{include:"$self"}]},{begin:"^(?x)\n\\s*(to|on)\\s+\n(\\w+)\n(\\()\n((?:[\\s,:\\{\\}]*(?:\\w+)?)*)\n(\\))\n",beginCaptures:{1:{name:"keyword.control.function.applescript"},2:{name:"entity.name.function.handler.applescript"},3:{name:"punctuation.definition.parameters.begin.applescript"},4:{name:"variable.parameter.handler.applescript"},5:{name:"punctuation.definition.parameters.end.applescript"}},comment:"\n\t\t\t\t\t\tThis is not a very well-designed rule. For now,\n\t\t\t\t\t\twe can leave it like this though, as it sorta works.\n\t\t\t\t\t",end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.function.applescript"}},name:"meta.function.positional.applescript",patterns:[{include:"$self"}]},{begin:"^(?x)\n\\s*(to|on)\\s+\n(\\w+)\n(?:\\s+\n(of|in)\\s+\n(\\w+)\n)?\n(?=\\s+(above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\b)\n",beginCaptures:{1:{name:"keyword.control.function.applescript"},2:{name:"entity.name.function.handler.applescript"},3:{name:"keyword.control.function.applescript"},4:{name:"variable.parameter.handler.direct.applescript"}},comment:"TODO: match `given` parameters",end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.function.applescript"}},name:"meta.function.prepositional.applescript",patterns:[{captures:{1:{name:"keyword.control.preposition.applescript"},2:{name:"variable.parameter.handler.applescript"}},match:"\\b(?i:above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\s+(\\w+)\\b"},{include:"$self"}]},{begin:"^(?x)\n\\s*(to|on)\\s+\n(\\w+)\n(?=\\s*(--.*?)?$)\n",beginCaptures:{1:{name:"keyword.control.function.applescript"},2:{name:"entity.name.function.handler.applescript"}},end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{1:{name:"keyword.control.function.applescript"}},name:"meta.function.parameterless.applescript",patterns:[{include:"$self"}]},{include:"#blocks.tell"},{include:"#blocks.repeat"},{include:"#blocks.statement"},{include:"#blocks.other"}]},"blocks.other":{patterns:[{begin:"^\\s*(considering)\\b",end:"^\\s*(end(?:\\s+considering)?)(?=\\s*(--.*?)?$)",name:"meta.block.considering.applescript",patterns:[{begin:"(?<=considering)",end:"(?|<|≥|>=|≤|<=)",name:"keyword.operator.comparison.applescript"},{match:"(?ix)\\b\n(and|or|div|mod|as|not\n|(a\\s+)?(ref(\\s+to)?|reference\\s+to)\n|equal(s|\\s+to)|contains?|comes\\s+(after|before)|(start|begin|end)s?\\s+with\n)\n\\b",name:"keyword.operator.word.applescript"},{comment:"In double quotes so we can use a single quote in the keywords.",match:"(?ix)\\b\n(is(n't|\\s+not)?(\\s+(equal(\\s+to)?|(less|greater)\\s+than(\\s+or\\s+equal(\\s+to)?)?|in|contained\\s+by))?\n|does(n't|\\s+not)\\s+(equal|come\\s+(before|after)|contain)\n)\n\\b",name:"keyword.operator.word.applescript"},{match:"\\b(?i:some|every|whose|where|that|id|index|\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\s+of|after|behind|in\\s+(front|back|beginning|end)\\s+of)\\b",name:"keyword.operator.reference.applescript"},{match:"\\b(?i:continue|return|exit(\\s+repeat)?)\\b",name:"keyword.control.loop.applescript"},{match:"\\b(?i:about|above|after|against|and|apart\\s+from|around|as|aside\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b",name:"keyword.other.applescript"}]},"built-in.punctuation":{patterns:[{match:"¬",name:"punctuation.separator.continuation.line.applescript"},{comment:"the : in property assignments",match:":",name:"punctuation.separator.key-value.property.applescript"},{comment:"the parentheses in groups",match:"[()]",name:"punctuation.section.group.applescript"}]},"built-in.support":{patterns:[{match:"\\b(?i:POSIX\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\s+string|time\\s+string|length|rest|reverse|items?|contents|quoted\\s+form|characters?|paragraphs?|words?)\\b",name:"support.function.built-in.property.applescript"},{match:"\\b(?i:activate|log|clipboard\\s+info|set\\s+the\\s+clipboard\\s+to|the\\s+clipboard|info\\s+for|list\\s+(disks|folder)|mount\\s+volume|path\\s+to(\\s+resource)?|close\\s+access|get\\s+eof|open\\s+for\\s+access|read|set\\s+eof|write|open\\s+location|current\\s+date|do\\s+shell\\s+script|get\\s+volume\\s+settings|random\\s+number|round|set\\s+volume|system\\s+(attribute|info)|time\\s+to\\s+GMT|load\\s+script|run\\s+script|scripting\\s+components|store\\s+script|copy|count|get|launch|run|set|ASCII\\s+(character|number)|localized\\s+string|offset|summarize|beep|choose\\s+(application|color|file(\\s+name)?|folder|from\\s+list|remote\\s+application|URL)|delay|display\\s+(alert|dialog)|say)\\b",name:"support.function.built-in.command.applescript"},{match:"\\b(?i:get|run)\\b",name:"support.function.built-in.applescript"},{match:"\\b(?i:anything|data|text|upper\\s+case|propert(y|ies))\\b",name:"support.class.built-in.applescript"},{match:"\\b(?i:alias|class)(es)?\\b",name:"support.class.built-in.applescript"},{match:"\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\s+specification)?|handler|integer|item|keystroke|linked\\s+list|list|machine|number|picture|preposition|POSIX\\s+file|real|record|reference(\\s+form)?|RGB\\s+color|script|sound|text\\s+item|type\\s+class|vector|writing\\s+code(\\s+info)?|zone|((international|styled(\\s+(Clipboard|Unicode))?|Unicode)\\s+)?text|((C|encoded|Pascal)\\s+)?string)s?\\b",name:"support.class.built-in.applescript"},{match:"(?ix)\\b\n(\t(cubic\\s+(centi)?|square\\s+(kilo)?|centi|kilo)met(er|re)s\n|\tsquare\\s+(yards|feet|miles)|cubic\\s+(yards|feet|inches)|miles|inches\n|\tlit(re|er)s|gallons|quarts\n|\t(kilo)?grams|ounces|pounds\n|\tdegrees\\s+(Celsius|Fahrenheit|Kelvin)\n)\n\\b",name:"support.class.built-in.unit.applescript"},{match:"\\b(?i:seconds|minutes|hours|days)\\b",name:"support.class.built-in.time.applescript"}]},comments:{patterns:[{begin:"^\\s*(#!)",captures:{1:{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.number-sign.applescript"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.applescript"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.number-sign.applescript"}]},{begin:"(^[ \\t]+)?(?=--)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.applescript"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{0:{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.double-dash.applescript"}]},{begin:"\\(\\*",captures:{0:{name:"punctuation.definition.comment.applescript"}},end:"\\*\\)",name:"comment.block.applescript",patterns:[{include:"#comments.nested"}]}]},"comments.nested":{patterns:[{begin:"\\(\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.applescript"}},end:"\\*\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.applescript"}},name:"comment.block.applescript",patterns:[{include:"#comments.nested"}]}]},"data-structures":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.array.begin.applescript"}},comment:'We cannot necessarily distinguish "records" from "arrays", and so this could be either.',end:"\\}",endCaptures:{0:{name:"punctuation.definition.array.end.applescript"}},name:"meta.array.applescript",patterns:[{captures:{1:{name:"constant.other.key.applescript"},2:{name:"meta.identifier.applescript"},3:{name:"punctuation.definition.identifier.applescript"},4:{name:"punctuation.definition.identifier.applescript"},5:{name:"punctuation.separator.key-value.applescript"}},match:"(\\w+|((\\|)[^|\\n]*(\\|)))\\s*(:)"},{match:":",name:"punctuation.separator.key-value.applescript"},{match:",",name:"punctuation.separator.array.applescript"},{include:"#inline"}]},{begin:'(?:(?<=application )|(?<=app ))(")',captures:{1:{name:"punctuation.definition.string.applescript"}},end:'(")',name:"string.quoted.double.application-name.applescript",patterns:[{match:"\\\\.",name:"constant.character.escape.applescript"}]},{begin:'(")',captures:{1:{name:"punctuation.definition.string.applescript"}},end:'(")',name:"string.quoted.double.applescript",patterns:[{match:"\\\\.",name:"constant.character.escape.applescript"}]},{captures:{1:{name:"punctuation.definition.identifier.applescript"},2:{name:"punctuation.definition.identifier.applescript"}},match:"(\\|)[^|\\n]*(\\|)",name:"meta.identifier.applescript"},{captures:{1:{name:"punctuation.definition.data.applescript"},2:{name:"support.class.built-in.applescript"},3:{name:"storage.type.utxt.applescript"},4:{name:"string.unquoted.data.applescript"},5:{name:"punctuation.definition.data.applescript"},6:{name:"keyword.operator.applescript"},7:{name:"support.class.built-in.applescript"}},match:"(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\s+(as)\\s+(?i:Unicode\\s+text))?",name:"constant.other.data.utxt.applescript"},{begin:"(«)(\\w+)\\b(?=\\s)",beginCaptures:{1:{name:"punctuation.definition.data.applescript"},2:{name:"support.class.built-in.applescript"}},end:"(»)",endCaptures:{1:{name:"punctuation.definition.data.applescript"}},name:"constant.other.data.raw.applescript"},{captures:{1:{name:"punctuation.definition.data.applescript"},2:{name:"punctuation.definition.data.applescript"}},match:"(«)[^»]*(»)",name:"invalid.illegal.data.applescript"}]},finder:{patterns:[{match:"\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\b",name:"support.class.finder.items.applescript"},{match:"\\b((Finder|desktop|information|preferences|clipping) )windows?\\b",name:"support.class.finder.window-classes.applescript"},{match:"\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\b",name:"support.class.finder.type-definitions.applescript"},{match:"\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\b",name:"support.function.finder.items.applescript"},{match:"\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\b",name:"support.constant.finder.applescript"},{match:"\\b(visible)\\b",name:"support.variable.finder.applescript"}]},inline:{patterns:[{include:"#comments"},{include:"#data-structures"},{include:"#built-in"},{include:"#standardadditions"}]},itunes:{patterns:[{match:"\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\b",name:"support.class.itunes.applescript"},{match:"\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\b",name:"support.function.itunes.applescript"},{match:"\\b(current (playlist|stream (title|URL)|track)|player state)\\b",name:"support.constant.itunes.applescript"},{match:"\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\b",name:"support.variable.itunes.applescript"}]},"standard-suite":{patterns:[{match:"\\b(colors?|documents?|items?|windows?)\\b",name:"support.class.standard-suite.applescript"},{match:"\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\b",name:"support.function.standard-suite.applescript"},{match:"\\b(name|frontmost|version)\\b",name:"support.constant.standard-suite.applescript"},{match:"\\b(selection)\\b",name:"support.variable.standard-suite.applescript"},{match:"\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\b",name:"support.class.text-suite.applescript"}]},standardadditions:{patterns:[{match:"\\b((alert|dialog) reply)\\b",name:"support.class.standardadditions.user-interaction.applescript"},{match:"\\b(file information)\\b",name:"support.class.standardadditions.file.applescript"},{match:"\\b(POSIX files?|system information|volume settings)\\b",name:"support.class.standardadditions.miscellaneous.applescript"},{match:"\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\b",name:"support.class.standardadditions.internet.applescript"},{match:"\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\b",name:"support.function.standardadditions.file.applescript"},{match:"\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\b",name:"support.function.standardadditions.user-interaction.applescript"},{match:"\\b(ASCII (character|number)|localized string|offset|summarize)\\b",name:"support.function.standardadditions.string.applescript"},{match:"\\b(set the clipboard to|the clipboard|clipboard info)\\b",name:"support.function.standardadditions.clipboard.applescript"},{match:"\\b(open for access|close access|read|write|get eof|set eof)\\b",name:"support.function.standardadditions.file-i-o.applescript"},{match:"\\b((load|store|run) script|scripting components)\\b",name:"support.function.standardadditions.scripting.applescript"},{match:"\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\b",name:"support.function.standardadditions.miscellaneous.applescript"},{match:"\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\b",name:"support.function.standardadditions.folder-actions.applescript"},{match:"\\b(open location|handle CGI request)\\b",name:"support.function.standardadditions.internet.applescript"}]},"system-events":{patterns:[{match:"\\b(audio (data|file))\\b",name:"support.class.system-events.audio-file.applescript"},{match:"\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\b",name:"support.class.system-events.disk-folder-file.applescript"},{match:"\\b(delete|open|move)\\b",name:"support.function.system-events.disk-folder-file.applescript"},{match:"\\b(folder actions?|scripts?)\\b",name:"support.class.system-events.folder-actions.applescript"},{match:"\\b(attach action to|attached scripts|edit action of|remove action from)\\b",name:"support.function.system-events.folder-actions.applescript"},{match:"\\b(movie data|movie file)\\b",name:"support.class.system-events.movie-file.applescript"},{match:"\\b(log out|restart|shut down|sleep)\\b",name:"support.function.system-events.power.applescript"},{match:"\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\b",name:"support.class.system-events.processes.applescript"},{match:"\\b(click|key code|keystroke|perform|select)\\b",name:"support.function.system-events.processes.applescript"},{match:"\\b(property list (file|item))\\b",name:"support.class.system-events.property-list.applescript"},{match:"\\b(annotation|QuickTime (data|file)|track)s?\\b",name:"support.class.system-events.quicktime-file.applescript"},{match:"\\b((abort|begin|end) transaction)\\b",name:"support.function.system-events.system-events.applescript"},{match:"\\b(XML (attribute|data|element|file)s?)\\b",name:"support.class.system-events.xml.applescript"},{match:"\\b(print settings|users?|login items?)\\b",name:"support.class.sytem-events.other.applescript"}]},textmate:{patterns:[{match:"\\b(print settings)\\b",name:"support.class.textmate.applescript"},{match:"\\b(get url|insert|reload bundles)\\b",name:"support.function.textmate.applescript"}]}},r="source.applescript",p={displayName:e,fileTypes:t,firstLineMatch:n,name:a,patterns:s,repository:i,scopeName:r};export{p as default,e as displayName,t as fileTypes,n as firstLineMatch,a as name,s as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/ara.mjs b/lib/dist/grammar/ara.mjs new file mode 100644 index 0000000..54f8b10 --- /dev/null +++ b/lib/dist/grammar/ara.mjs @@ -0,0 +1 @@ +var a="Ara",e=["ara"],n="ara",t=[{include:"#namespace"},{include:"#named-arguments"},{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#numbers"},{include:"#operators"},{include:"#type"},{include:"#function-call"}],r={"class-name":{patterns:[{begin:"\\b(?i)(?=|&=|\\|=|<<=|>>=|\\?\\?=)",name:"keyword.assignments.ara"},{comment:"logical operators",match:"(\\^|\\||\\|\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\?\\?|\\?|:|\\?:)(?!=)",name:"keyword.operators.ara"},{comment:"comparison operators",match:"(==|===|!==|!=|<=|>=|<|>)(?!=)",name:"keyword.operator.comparison.ara"},{comment:"math operators",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))",name:"keyword.operator.math.ara"},{comment:"single equal assignment operator",match:"(?])=(?!=|>)",name:"keyword.operator.assignment.ara"},{captures:{1:{name:"punctuation.brackets.round.ara"},2:{name:"punctuation.brackets.square.ara"},3:{name:"punctuation.brackets.curly.ara"},4:{name:"keyword.operator.comparison.ara"},5:{name:"punctuation.brackets.round.ara"},6:{name:"punctuation.brackets.square.ara"},7:{name:"punctuation.brackets.curly.ara"}},comment:"less than, greater than (special case)",match:"(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))"},{comment:"arrow method call, arrow property access",match:"(?x)\n(?:\n-> | \\?->\n)",name:"keyword.operator.arrow.ara"},{comment:"double arrow key-value pair",match:"(?x)\n(?:\n=>\n)",name:"keyword.operator.double-arrow.ara"},{comment:"static method call, static property access",match:"(?x)\n(?:\n::\n)",name:"keyword.operator.static.ara"},{comment:"closure creation",match:"(?x)\n(?:\n\\(\\.\\.\\.\\)\n)",name:"keyword.operator.closure.ara"},{comment:"spread operator",match:"(?x)\n(?:\n\\.\\.\\.\n)",name:"keyword.operator.spread.ara"},{comment:"namespace operator",match:"\\\\",name:"keyword.operator.namespace.ara"}]},strings:{patterns:[{begin:"'",end:"'",name:"string.quoted.single.ara",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.ara"}]},{begin:'"',end:'"',name:"string.quoted.double.ara",patterns:[{include:"#interpolation"}]}]},type:{name:"support.type.php",patterns:[{match:"\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\b",name:"support.type.php"},{begin:"([A-Za-z_][A-Za-z0-9_]*)<",beginCaptures:{1:{name:"support.class.php"}},end:">",patterns:[{include:"#type-annotation"}]},{begin:"(shape\\()",end:"((,|\\.\\.\\.)?\\s*\\))",endCaptures:{1:{name:"keyword.operator.key.php"}},name:"storage.type.shape.php",patterns:[{include:"#type-annotation"},{include:"#strings"},{include:"#constants"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{begin:"\\(fn\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{include:"#class-name"},{include:"#comments"}]},"user-function-call":{begin:"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()",end:"(?i)[a-z_][a-z_0-9]*(?=\\s*\\()",endCaptures:{0:{name:"entity.name.function.php"}},name:"meta.function-call.php",patterns:[{include:"#namespace"}]}},c="source.ara",o={displayName:"Ara",fileTypes:e,name:"ara",patterns:t,repository:r,scopeName:c};export{o as default,a as displayName,e as fileTypes,n as name,t as patterns,r as repository,c as scopeName}; diff --git a/lib/dist/grammar/asciidoc.mjs b/lib/dist/grammar/asciidoc.mjs new file mode 100644 index 0000000..f78c586 --- /dev/null +++ b/lib/dist/grammar/asciidoc.mjs @@ -0,0 +1 @@ +var e="AsciiDoc",c=["ad","asc","adoc","asciidoc","adoc.txt"],n="asciidoc",i=[{include:"#comment"},{include:"#callout-list-item"},{include:"#titles"},{include:"#attribute-entry"},{include:"#blocks"},{include:"#block-title"},{include:"#tables"},{include:"#horizontal-rule"},{include:"#list"},{include:"#inlines"},{include:"#block-attribute"},{include:"#line-break"}],t={"admonition-paragraph":{patterns:[{begin:"(?=(?>(?:^\\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--|====)$|^\\p{Blank}*$)",name:"markup.admonition.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(={4,})\\s*$",comment:"example block",end:"(?<=\\1)",patterns:[{include:"#inlines"},{include:"#list"}]},{begin:"^(-{2})\\s*$",comment:"open block",end:"(?<=\\1)",patterns:[{include:"#inlines"},{include:"#list"}]}]},{begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\:\\p{Blank}+",captures:{1:{name:"entity.name.function.asciidoc"}},end:"^\\p{Blank}*$",name:"markup.admonition.asciidoc",patterns:[{include:"#inlines"}]}]},"anchor-macro":{patterns:[{captures:{1:{name:"support.constant.asciidoc"},2:{name:"markup.blockid.asciidoc"},3:{name:"string.unquoted.asciidoc"},4:{name:"support.constant.asciidoc"}},match:"(?)(?=(?: ?)*$)",name:"callout.source.code.asciidoc"}]},"block-title":{patterns:[{begin:"^\\.([^\\p{Blank}.].*)",captures:{1:{name:"markup.heading.blocktitle.asciidoc"}},end:"$"}]},blocks:{patterns:[{include:"#front-matter-block"},{include:"#comment-paragraph"},{include:"#admonition-paragraph"},{include:"#quote-paragraph"},{include:"#listing-paragraph"},{include:"#source-paragraphs"},{include:"#passthrough-paragraph"},{include:"#example-paragraph"},{include:"#sidebar-paragraph"},{include:"#literal-paragraph"},{include:"#open-block"}]},"callout-list-item":{patterns:[{captures:{1:{name:"constant.other.symbol.asciidoc"},2:{name:"constant.numeric.asciidoc"},3:{name:"constant.other.symbol.asciidoc"},4:{patterns:[{include:"#inlines"}]}},match:"^(<)(\\d+)(>)\\p{Blank}+(.*)$",name:"callout.asciidoc"}]},characters:{patterns:[{captures:{1:{name:"constant.character.asciidoc"},3:{name:"constant.character.asciidoc"}},match:"(?(?:^\\[(comment)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--)$|^\\p{Blank}*$)",name:"comment.block.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(comment)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{begin:"^(-{2})\\s*$",comment:"open block",end:"^(\\1)$",patterns:[{include:"#inlines"},{include:"#list"}]},{include:"#inlines"}]}]},emphasis:{patterns:[{captures:{1:{name:"markup.meta.attribute-list.asciidoc"},2:{name:"markup.italic.asciidoc"},3:{name:"punctuation.definition.asciidoc"},5:{name:"punctuation.definition.asciidoc"}},match:"(?(?:^\\[(example)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--|====)$|^\\p{Blank}*$)",name:"markup.block.example.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(example)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{begin:"^(={4,})$",comment:"example block",end:"^(\\1)$",patterns:[{include:"$self"}]},{begin:"^(-{2})$",comment:"open block",end:"^(\\1)$",patterns:[{include:"$self"}]},{include:"#inlines"}]},{begin:"^(={4,})$",end:"^(\\1)$",name:"markup.block.example.asciidoc",patterns:[{include:"$self"}]}]},"footnote-macro":{patterns:[{begin:"(?\\(\\)\\[\\];])((?\\(\\)\\[\\];])((?(?:^\\[(listing)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--)$|^\\p{Blank}*$)",name:"markup.block.listing.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(listing)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",end:"^(\\1)$"},{begin:"^(-{2})\\s*$",comment:"open block",end:"^(\\1)$"},{include:"#inlines"}]}]},"literal-paragraph":{patterns:[{begin:"(?=(?>(?:^\\[(literal)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.)$|^\\p{Blank}*$)",name:"markup.block.literal.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(literal)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{begin:"^(\\.{4,})$",comment:"literal block",end:"^(\\1)$"},{begin:"^(-{2})\\s*$",comment:"open block",end:"^(\\1)$"},{include:"#inlines"}]},{begin:"^(\\.{4,})$",end:"^(\\1)$",name:"markup.block.literal.asciidoc"}]},mark:{patterns:[{captures:{1:{name:"markup.meta.attribute-list.asciidoc"},2:{name:"markup.mark.asciidoc"},3:{name:"punctuation.definition.asciidoc"},5:{name:"punctuation.definition.asciidoc"}},match:"(?\\+{2,3}|\\${2})(.*?)(\\k)",name:"markup.macro.inline.passthrough.asciidoc"},{begin:"(?(?:^\\[(pass)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--|\\+\\+)$|^\\p{Blank}*$)",name:"markup.block.passthrough.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(pass)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{begin:"^(\\+{4,})\\s*$",comment:"passthrough block",end:"(?<=\\1)",patterns:[{include:"text.html.basic"}]},{begin:"^(-{2})\\s*$",comment:"open block",end:"(?<=\\1)",patterns:[{include:"text.html.basic"}]}]},{begin:"(^\\+{4,}$)",end:"\\1",name:"markup.block.passthrough.asciidoc",patterns:[{include:"text.html.basic"}]}]},"quote-paragraph":{patterns:[{begin:"(?=(?>(?:^\\[(quote|verse)((?:,|#|\\.|%)([^,\\]]+))*\\]$)))",end:'((?<=____|""|--)$|^\\p{Blank}*$)',name:"markup.italic.quotes.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(quote|verse)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{include:"#inlines"},{begin:"^([_]{4,})\\s*$",comment:"quotes block",end:"(?<=\\1)",patterns:[{include:"#inlines"},{include:"#list"}]},{begin:'^("{2})\\s*$',comment:"air quotes",end:"(?<=\\1)",patterns:[{include:"#inlines"},{include:"#list"}]},{begin:"^(-{2})\\s*$",comment:"open block",end:"(?<=\\1)$",patterns:[{include:"#inlines"},{include:"#list"}]}]},{begin:'^("")$',end:"^\\1$",name:"markup.italic.quotes.asciidoc",patterns:[{include:"#inlines"},{include:"#list"}]},{begin:"^\\p{Blank}*(>) ",end:"^\\p{Blank}*?$",name:"markup.italic.quotes.asciidoc",patterns:[{include:"#inlines"},{include:"#list"}]}]},"sidebar-paragraph":{patterns:[{begin:"(?=(?>(?:^\\[(sidebar)((?:,|#|\\.|%)[^\\]]+)*\\]$)))",end:"((?<=--|\\*\\*\\*\\*)$|^\\p{Blank}*$)",name:"markup.block.sidebar.asciidoc",patterns:[{captures:{0:{patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(sidebar)((?:,|#|\\.|%)([^,\\]]+))*\\]$"},{include:"#block-title"},{begin:"^(\\*{4,})$",comment:"sidebar block",end:"^(\\1)$",patterns:[{include:"$self"}]},{begin:"^(-{2})$",comment:"open block",end:"^(\\1)$",patterns:[{include:"$self"}]},{include:"#inlines"}]},{begin:"^(\\*{4,})$",end:"^(\\1)$",name:"markup.block.sidebar.asciidoc",patterns:[{include:"$self"}]}]},"source-asciidoctor":{patterns:[{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(c))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.c.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(c))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.c",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.c"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.c",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.c"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.c",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.c"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(clojure))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.clojure.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(clojure))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.clojure",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.clojure"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.clojure",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.clojure"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.clojure",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.clojure"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(coffee-?(script)?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.coffee.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(coffee-?(script)?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.coffee",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.coffee"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.coffee",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.coffee"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.coffee",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.coffee"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(c(pp|\\+\\+)))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.cpp.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(c(pp|\\+\\+)))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.cpp",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.cpp"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.cpp",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.cpp"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.cpp",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.cpp"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(css))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.css.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(css))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.css",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.css",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.css",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(cs(harp)?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.cs.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(cs(harp)?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.cs",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.cs"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.cs",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.cs"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.cs",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.cs"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(diff|patch|rej))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.diff.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(diff|patch|rej))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.diff",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.diff"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.diff",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.diff"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.diff",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.diff"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(docker(file)?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.dockerfile.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(docker(file)?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.dockerfile",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.dockerfile"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.dockerfile",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.dockerfile"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.dockerfile",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.dockerfile"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(elixir))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.elixir.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(elixir))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.elixir",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.elixir"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.elixir",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.elixir"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.elixir",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.elixir"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(elm))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.elm.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(elm))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.elm",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.elm"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.elm",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.elm"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.elm",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.elm"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(erlang))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.erlang.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(erlang))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.erlang",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.erlang"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.erlang",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.erlang"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.erlang",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.erlang"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(go(lang)?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.go.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(go(lang)?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.go",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.go"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.go",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.go"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.go",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.go"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(groovy))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.groovy.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(groovy))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.groovy",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.groovy"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.groovy",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.groovy"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.groovy",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.groovy"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(haskell))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.haskell.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(haskell))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.haskell",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.haskell"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.haskell",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.haskell"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.haskell",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.haskell"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(html))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.html.basic.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(html))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"text.embedded.html.basic",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.basic"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"text.embedded.html.basic",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.basic"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"text.embedded.html.basic",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.basic"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(java))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.java.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(java))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.java",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.java"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.java",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.java"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.java",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.java"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(javascript|js))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.js.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(javascript|js))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.js",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.js"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.js",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.js"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.js",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.js"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(json))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.json.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(json))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.json",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.json"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.json",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.json"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.json",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.json"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(jsx))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.js.jsx.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(jsx))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.js.jsx",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.js.jsx"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.js.jsx",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.js.jsx"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.js.jsx",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.js.jsx"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(julia))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.julia.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(julia))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.julia",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.julia"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.julia",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.julia"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.julia",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.julia"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(kotlin|kts?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.kotlin.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(kotlin|kts?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.kotlin",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.kotlin"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.kotlin",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.kotlin"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.kotlin",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.kotlin"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(less))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.css.less.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(less))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.css.less",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css.less"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.css.less",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css.less"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.css.less",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css.less"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(make(file)?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.makefile.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(make(file)?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.makefile",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.makefile"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.makefile",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.makefile"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.makefile",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.makefile"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(markdown|mdown|md))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.gfm.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(markdown|mdown|md))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.gfm",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.gfm"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.gfm",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.gfm"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.gfm",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.gfm"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(mustache))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.html.mustache.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(mustache))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"text.embedded.html.mustache",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.mustache"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"text.embedded.html.mustache",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.mustache"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"text.embedded.html.mustache",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.mustache"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(objc|objective-c))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.objc.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(objc|objective-c))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.objc",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.objc"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.objc",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.objc"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.objc",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.objc"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(ocaml))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.ocaml.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(ocaml))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.ocaml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ocaml"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.ocaml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ocaml"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.ocaml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ocaml"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(perl))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.perl.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(perl))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.perl",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.perl"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.perl",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.perl"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.perl",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.perl"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(perl6))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.perl6.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(perl6))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.perl6",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.perl6"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.perl6",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.perl6"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.perl6",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.perl6"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(php))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.html.php.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(php))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"text.embedded.html.php",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.php"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"text.embedded.html.php",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.php"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"text.embedded.html.php",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.html.php"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(properties))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.asciidoc.properties.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(properties))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.asciidoc.properties",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.asciidoc.properties"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.asciidoc.properties",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.asciidoc.properties"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.asciidoc.properties",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.asciidoc.properties"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(py(thon)?))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.python.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(py(thon)?))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.python",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.python"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.python",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.python"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.python",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.python"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(r))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.r.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(r))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.r",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.r"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.r",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.r"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.r",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.r"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(ruby|rb))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.ruby.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(ruby|rb))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.ruby",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ruby"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.ruby",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ruby"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.ruby",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ruby"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(rust|rs))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.rust.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(rust|rs))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.rust",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.rust"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.rust",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.rust"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.rust",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.rust"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(sass))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.sass.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(sass))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.sass",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.sass"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.sass",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.sass"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.sass",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.sass"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(scala))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.scala.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(scala))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.scala",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.scala"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.scala",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.scala"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.scala",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.scala"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(scss))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.css.scss.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(scss))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.css.scss",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css.scss"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.css.scss",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css.scss"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.css.scss",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.css.scss"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(sh|bash|shell))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.shell.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(sh|bash|shell))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.shell",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.shell"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.shell",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.shell"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.shell",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.shell"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(sql))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.sql.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(sql))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.sql",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.sql"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.sql",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.sql"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.sql",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.sql"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(swift))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.swift.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(swift))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.swift",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.swift"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.swift",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.swift"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.swift",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.swift"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(toml))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.toml.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(toml))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.toml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.toml"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.toml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.toml"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.toml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.toml"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(typescript|ts))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.ts.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(typescript|ts))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.ts",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ts"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.ts",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ts"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.ts",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.ts"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(xml))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.xml.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(xml))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"text.embedded.xml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.xml"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"text.embedded.xml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.xml"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"text.embedded.xml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"text.xml"}]}]},{begin:"(?=(?>(?:^\\[(source)(?:,|#)\\p{Blank}*(?i:(ya?ml))((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",name:"markup.code.yaml.asciidoc",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)(?:,|#)\\p{Blank}*(?i:(ya?ml))((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",contentName:"source.embedded.yaml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.yaml"}]},{begin:"^(-{2})\\s*$",comment:"open block",contentName:"source.embedded.yaml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.yaml"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",contentName:"source.embedded.yaml",end:"^(\\1)$",patterns:[{include:"#block-callout"},{include:"#include-directive"},{include:"source.yaml"}]}]},{begin:"(?=(?>(?:^\\[(source)((?:,|#)[^\\]]+)*\\]$)))",end:"((?<=--|\\.\\.\\.\\.)$|^\\p{Blank}*$)",patterns:[{captures:{0:{name:"markup.heading.asciidoc",patterns:[{include:"#block-attribute-inner"}]}},match:"^\\[(source)((?:,|#)([^,\\]]+))*\\]$"},{include:"#inlines"},{include:"#block-title"},{begin:"^(-{4,})\\s*$",comment:"listing block",end:"^(\\1)$",name:"markup.raw.asciidoc",patterns:[{include:"#block-callout"},{include:"#include-directive"}]},{begin:"^(-{2})\\s*$",comment:"open block",end:"^(\\1)$",name:"markup.raw.asciidoc",patterns:[{include:"#block-callout"},{include:"#include-directive"}]},{begin:"^(\\.{4})\\s*$",comment:"literal block",end:"^(\\1)$",name:"markup.raw.asciidoc",patterns:[{include:"#block-callout"},{include:"#include-directive"}]}]},{begin:"^(-{4,})\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},end:"^(\\1)$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.raw.asciidoc",patterns:[{include:"#block-callout"},{include:"#include-directive"}]}]},"source-markdown":{patterns:[{begin:"^\\s*(`{3,})\\s*(?i:(c))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.c",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.c.asciidoc",patterns:[{include:"#block-callout"},{include:"source.c"}]},{begin:"^\\s*(`{3,})\\s*(?i:(clojure))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.clojure",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.clojure.asciidoc",patterns:[{include:"#block-callout"},{include:"source.clojure"}]},{begin:"^\\s*(`{3,})\\s*(?i:(coffee-?(script)?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.coffee",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.coffee.asciidoc",patterns:[{include:"#block-callout"},{include:"source.coffee"}]},{begin:"^\\s*(`{3,})\\s*(?i:(c(pp|\\+\\+)))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.cpp",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.cpp.asciidoc",patterns:[{include:"#block-callout"},{include:"source.cpp"}]},{begin:"^\\s*(`{3,})\\s*(?i:(css))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.css",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.css.asciidoc",patterns:[{include:"#block-callout"},{include:"source.css"}]},{begin:"^\\s*(`{3,})\\s*(?i:(cs(harp)?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.cs",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.cs.asciidoc",patterns:[{include:"#block-callout"},{include:"source.cs"}]},{begin:"^\\s*(`{3,})\\s*(?i:(diff|patch|rej))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.diff",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.diff.asciidoc",patterns:[{include:"#block-callout"},{include:"source.diff"}]},{begin:"^\\s*(`{3,})\\s*(?i:(docker(file)?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.dockerfile",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.dockerfile.asciidoc",patterns:[{include:"#block-callout"},{include:"source.dockerfile"}]},{begin:"^\\s*(`{3,})\\s*(?i:(elixir))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.elixir",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.elixir.asciidoc",patterns:[{include:"#block-callout"},{include:"source.elixir"}]},{begin:"^\\s*(`{3,})\\s*(?i:(elm))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.elm",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.elm.asciidoc",patterns:[{include:"#block-callout"},{include:"source.elm"}]},{begin:"^\\s*(`{3,})\\s*(?i:(erlang))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.erlang",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.erlang.asciidoc",patterns:[{include:"#block-callout"},{include:"source.erlang"}]},{begin:"^\\s*(`{3,})\\s*(?i:(go(lang)?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.go",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.go.asciidoc",patterns:[{include:"#block-callout"},{include:"source.go"}]},{begin:"^\\s*(`{3,})\\s*(?i:(groovy))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.groovy",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.groovy.asciidoc",patterns:[{include:"#block-callout"},{include:"source.groovy"}]},{begin:"^\\s*(`{3,})\\s*(?i:(haskell))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.haskell",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.haskell.asciidoc",patterns:[{include:"#block-callout"},{include:"source.haskell"}]},{begin:"^\\s*(`{3,})\\s*(?i:(html))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"text.embedded.html.basic",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.html.basic.asciidoc",patterns:[{include:"#block-callout"},{include:"text.html.basic"}]},{begin:"^\\s*(`{3,})\\s*(?i:(java))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.java",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.java.asciidoc",patterns:[{include:"#block-callout"},{include:"source.java"}]},{begin:"^\\s*(`{3,})\\s*(?i:(javascript|js))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.js",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.js.asciidoc",patterns:[{include:"#block-callout"},{include:"source.js"}]},{begin:"^\\s*(`{3,})\\s*(?i:(json))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.json",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.json.asciidoc",patterns:[{include:"#block-callout"},{include:"source.json"}]},{begin:"^\\s*(`{3,})\\s*(?i:(jsx))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.js.jsx",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.js.jsx.asciidoc",patterns:[{include:"#block-callout"},{include:"source.js.jsx"}]},{begin:"^\\s*(`{3,})\\s*(?i:(julia))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.julia",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.julia.asciidoc",patterns:[{include:"#block-callout"},{include:"source.julia"}]},{begin:"^\\s*(`{3,})\\s*(?i:(kotlin|kts?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.kotlin",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.kotlin.asciidoc",patterns:[{include:"#block-callout"},{include:"source.kotlin"}]},{begin:"^\\s*(`{3,})\\s*(?i:(less))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.css.less",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.css.less.asciidoc",patterns:[{include:"#block-callout"},{include:"source.css.less"}]},{begin:"^\\s*(`{3,})\\s*(?i:(make(file)?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.makefile",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.makefile.asciidoc",patterns:[{include:"#block-callout"},{include:"source.makefile"}]},{begin:"^\\s*(`{3,})\\s*(?i:(markdown|mdown|md))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.gfm",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.gfm.asciidoc",patterns:[{include:"#block-callout"},{include:"source.gfm"}]},{begin:"^\\s*(`{3,})\\s*(?i:(mustache))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"text.embedded.html.mustache",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.html.mustache.asciidoc",patterns:[{include:"#block-callout"},{include:"text.html.mustache"}]},{begin:"^\\s*(`{3,})\\s*(?i:(objc|objective-c))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.objc",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.objc.asciidoc",patterns:[{include:"#block-callout"},{include:"source.objc"}]},{begin:"^\\s*(`{3,})\\s*(?i:(ocaml))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.ocaml",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.ocaml.asciidoc",patterns:[{include:"#block-callout"},{include:"source.ocaml"}]},{begin:"^\\s*(`{3,})\\s*(?i:(perl))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.perl",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.perl.asciidoc",patterns:[{include:"#block-callout"},{include:"source.perl"}]},{begin:"^\\s*(`{3,})\\s*(?i:(perl6))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.perl6",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.perl6.asciidoc",patterns:[{include:"#block-callout"},{include:"source.perl6"}]},{begin:"^\\s*(`{3,})\\s*(?i:(php))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"text.embedded.html.php",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.html.php.asciidoc",patterns:[{include:"#block-callout"},{include:"text.html.php"}]},{begin:"^\\s*(`{3,})\\s*(?i:(properties))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.asciidoc.properties",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.asciidoc.properties.asciidoc",patterns:[{include:"#block-callout"},{include:"source.asciidoc.properties"}]},{begin:"^\\s*(`{3,})\\s*(?i:(py(thon)?))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.python",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.python.asciidoc",patterns:[{include:"#block-callout"},{include:"source.python"}]},{begin:"^\\s*(`{3,})\\s*(?i:(r))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.r",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.r.asciidoc",patterns:[{include:"#block-callout"},{include:"source.r"}]},{begin:"^\\s*(`{3,})\\s*(?i:(ruby|rb))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.ruby",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.ruby.asciidoc",patterns:[{include:"#block-callout"},{include:"source.ruby"}]},{begin:"^\\s*(`{3,})\\s*(?i:(rust|rs))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.rust",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.rust.asciidoc",patterns:[{include:"#block-callout"},{include:"source.rust"}]},{begin:"^\\s*(`{3,})\\s*(?i:(sass))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.sass",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.sass.asciidoc",patterns:[{include:"#block-callout"},{include:"source.sass"}]},{begin:"^\\s*(`{3,})\\s*(?i:(scala))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.scala",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.scala.asciidoc",patterns:[{include:"#block-callout"},{include:"source.scala"}]},{begin:"^\\s*(`{3,})\\s*(?i:(scss))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.css.scss",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.css.scss.asciidoc",patterns:[{include:"#block-callout"},{include:"source.css.scss"}]},{begin:"^\\s*(`{3,})\\s*(?i:(sh|bash|shell))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.shell",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.shell.asciidoc",patterns:[{include:"#block-callout"},{include:"source.shell"}]},{begin:"^\\s*(`{3,})\\s*(?i:(sql))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.sql",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.sql.asciidoc",patterns:[{include:"#block-callout"},{include:"source.sql"}]},{begin:"^\\s*(`{3,})\\s*(?i:(swift))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.swift",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.swift.asciidoc",patterns:[{include:"#block-callout"},{include:"source.swift"}]},{begin:"^\\s*(`{3,})\\s*(?i:(toml))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.toml",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.toml.asciidoc",patterns:[{include:"#block-callout"},{include:"source.toml"}]},{begin:"^\\s*(`{3,})\\s*(?i:(typescript|ts))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.ts",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.ts.asciidoc",patterns:[{include:"#block-callout"},{include:"source.ts"}]},{begin:"^\\s*(`{3,})\\s*(?i:(xml))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"text.embedded.xml",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.xml.asciidoc",patterns:[{include:"#block-callout"},{include:"text.xml"}]},{begin:"^\\s*(`{3,})\\s*(?i:(ya?ml))\\s*$",beginCaptures:{0:{name:"support.asciidoc"}},contentName:"source.embedded.yaml",end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.code.yaml.asciidoc",patterns:[{include:"#block-callout"},{include:"source.yaml"}]},{begin:"^\\s*(`{3,}).*$",beginCaptures:{0:{name:"support.asciidoc"}},end:"^\\s*\\1\\s*$",endCaptures:{0:{name:"support.asciidoc"}},name:"markup.raw.asciidoc",patterns:[{include:"#block-callout"}]}]},"source-paragraphs":{patterns:[{include:"#source-asciidoctor"},{include:"#source-markdown"}]},"stem-macro":{patterns:[{begin:"(?>))',name:"markup.reference.xref.asciidoc"},{begin:'(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"^\\s*[#%]\\s*(include|import)\\b\\s+",captures:{1:{name:"keyword.control.import.include.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c.include",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:"^\\s*[%#]\\s*(i?x?define|defined|elif(def)?|else|i[fs]n?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|line|(i|end|uni?)?macro|pragma|endif)\\b",captures:{1:{name:"keyword.control.import.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"#preprocessor-functions"}]},{begin:"^\\s*[#%]\\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\\b",captures:{1:{name:"keyword.control"}},end:"$",name:"meta.preprocessor.nasm",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"#preprocessor-functions"}]}]},"preprocessor-functions":{patterns:[{begin:"((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\\s*(\\()))",captures:{3:{name:"support.function.preprocessor.asm.x86_64"}},end:"(\\))|$",name:"meta.preprocessor.function.asm.x86_64",patterns:[{include:"#preprocessor-functions"}]}]},registers:{patterns:[{match:"(?i)\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\b",name:"constant.language.register.general-purpose.asm.x86_64"},{match:"(?i)\\b(?:[cdefgs]s)\\b",name:"constant.language.register.segment.asm.x86_64"},{match:"(?i)\\b(?:[er]?flags)\\b",name:"constant.language.register.flags.asm.x86_64"},{match:"(?i)\\b(?:[er]?ip)\\b",name:"constant.language.register.instruction-pointer.asm.x86_64"},{match:"(?i)\\b(?:cr[02-4])\\b",name:"constant.language.register.control.asm.x86_64"},{match:"(?i)\\b(?:(?:mm|st|fpr)[0-7])\\b",name:"constant.language.register.mmx.asm.x86_64"},{match:"(?i)\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\b",name:"constant.language.register.sse_avx.asm.x86_64"},{match:"(?i)\\b(?:zmm(?:[12]?[0-9]|30|31))\\b",name:"constant.language.register.avx512.asm.x86_64"},{match:"(?i)\\b(?:bnd(?:[0-3]|cfg[su]|status))\\b",name:"constant.language.register.memory-protection.asm.x86_64"},{match:"(?i)\\b(?:(?:[gil]dt)r?|tr)\\b",name:"constant.language.register.system-table-pointer.asm.x86_64"},{match:"(?i)\\b(?:dr[0-367])\\b",name:"constant.language.register.debug.asm.x86_64"},{match:"(?i)\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\b",name:"constant.language.register.amd.asm.x86_64"},{match:"(?i)\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\b",name:"invalid.deprecated.constant.language.register.asm.x86_64"},{match:"(?i)\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\b",name:"constant.language.register.general-purpose.alias.asm.x86_64"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.asm"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.double.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.asm"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.single.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.asm"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.backquote.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]}]},support:{patterns:[{match:"(?i)\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\b",name:"storage.type.asm.x86_64"},{match:"(?i)\\b(?:incbin|equ|times|dup)\\b",name:"support.function.asm.x86_64"},{match:"(?i)\\b(?:strict|nosplit|near|far|abs|rel)\\b",name:"storage.modifier.asm.x86_64"},{match:"(?i)\\b(?:[ao](?:16|32|64))\\b",name:"storage.modifier.prefix.asm.x86_64"},{match:"(?i)\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\b",name:"storage.modifier.prefix.asm.x86_64"},{captures:{1:{name:"storage.modifier.prefix.vex.asm.x86_64"}},match:"{(vex[23]?|evex|rex)}"},{captures:{1:{name:"storage.modifier.opmask.asm.x86_64"}},match:"{(k[1-7])}"},{captures:{1:{name:"storage.modifier.precision.asm.x86_64"}},match:"{(1to(?:8|16))}"},{captures:{1:{name:"storage.modifier.rounding.asm.x86_64"}},match:"{(z|(?:r[nudz]-)?sae)}"},{match:"\\.\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\b",name:"support.constant.asm.x86_64"},{match:"\\b__\\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\\b",name:"support.function.legacy.asm.x86_64"},{match:"\\b__\\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b___\\?NASM_PATCHLEVEL\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?USE_(?:\\w+)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?PASS\\?__\\b",name:"invalid.deprecated.support.constant.altreg.asm.x86_64"},{match:"\\b__\\?ALIGNMODE\\?__\\b",name:"support.constant.smartalign.asm.x86_64"},{match:"\\b__\\?ALIGN_(\\w+)\\?__\\b",name:"support.function.smartalign.asm.x86_64"},{match:"\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\b",name:"support.function.asm.x86_64"},{match:"\\b___NASM_PATCHLEVEL__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__USE_(?:\\w+)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__PASS__\\b",name:"invalid.deprecated.support.constant.altreg.asm.x86_64"},{match:"\\b__ALIGNMODE__\\b",name:"support.constant.smartalign.asm.x86_64"},{match:"\\b__ALIGN_(\\w+)__\\b",name:"support.function.smartalign.asm.x86_64"},{match:"\\b(?:Inf|[QS]?NaN)\\b",name:"support.constant.fp.asm.x86_64"},{match:"\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\b",name:"support.function.fp.asm.x86_64"},{match:"(?i)\\bilog2(?:[ewfc]|[fc]w)?\\b",name:"support.function.ifunc.asm.x86_64"}]}},r="source.asm.x86_64",t={displayName:e,fileTypes:n,name:"asm",patterns:o,repository:m,scopeName:r};export{t as default,e as displayName,n as fileTypes,a as name,o as patterns,m as repository,r as scopeName}; diff --git a/lib/dist/grammar/astro.mjs b/lib/dist/grammar/astro.mjs new file mode 100644 index 0000000..2eea5dd --- /dev/null +++ b/lib/dist/grammar/astro.mjs @@ -0,0 +1 @@ +var e="Astro",t=["astro"],r={"L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)":{patterns:[{begin:"(?<=>)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)",patterns:[{include:"#interpolation"},{include:"#attribute-literal"},{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.js",patterns:[{captures:{0:{name:"source.js"},1:{patterns:[{include:"source.js"}]}},match:"(([^\\s\\\"'=<>`/]|/(?!>))+)",name:"string.unquoted.astro"},{begin:'(["])',beginCaptures:{0:{name:"punctuation.definition.string.begin.astro"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:'([^\\n\\"/]|/(?![/*]))+'},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:'(?=\\")|\\n',name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:'(?=\\")|\\*/',endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]},{begin:"(['])",beginCaptures:{0:{name:"punctuation.definition.string.begin.astro"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:"([^\\n\\'/]|/(?![/*]))+"},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:"(?=\\')|\\n",name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:"(?=\\')|\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]}]}]}]},"attributes-interpolated":{begin:"(?)",patterns:[{include:"#attributes-value"}]}]},"attributes-value":{patterns:[{include:"#interpolation"},{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.astro"},{begin:"(['\"])",beginCaptures:{0:{name:"punctuation.definition.string.begin.astro"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro"},{include:"#attribute-literal"}]},comments:{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.astro"}},end:"--\x3e",name:"comment.block.astro",patterns:[{match:"\\G-?>|\x3c!--(?!>)|",name:"invalid.illegal.characters-not-allowed-here.astro"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.astro"},912:{name:"punctuation.definition.entity.astro"}},match:"(?x)\n(&)\t(?=[a-zA-Z])\n(\n(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n| (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n| (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n| (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n| (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n| (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n| (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n| (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n| (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n| (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n| (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n| (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n| (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n| (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n| (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n| (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n| (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n| (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n| (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n| (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n| (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n| (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n| (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n| (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n| (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n| (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n)\n(;)\n",name:"constant.character.entity.named.$2.astro"},{captures:{1:{name:"punctuation.definition.entity.astro"},3:{name:"punctuation.definition.entity.astro"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.astro"},{captures:{1:{name:"punctuation.definition.entity.astro"},3:{name:"punctuation.definition.entity.astro"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.astro"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.astro"}]},frontmatter:{begin:"\\A(-{3})\\s*$",beginCaptures:{1:{name:"comment"}},contentName:"source.ts",end:"(^|\\G)(-{3})|\\.{3}\\s*$",endCaptures:{2:{name:"comment"}},patterns:[{include:"source.ts"}]},interpolation:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.astro"}},contentName:"meta.embedded.expression.astro source.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.astro"}},patterns:[{begin:"\\G\\s*(?={)",end:"(?<=})",patterns:[{include:"source.tsx#object-literal"}]},{include:"source.tsx"}]}]},scope:{patterns:[{include:"#comments"},{include:"#tags"},{include:"#interpolation"},{include:"#entities"}]},tags:{patterns:[{include:"#tags-raw"},{include:"#tags-lang"},{include:"#tags-void"},{include:"#tags-general-end"},{include:"#tags-general-start"}]},"tags-end-node":{captures:{1:{name:"meta.tag.end.astro punctuation.definition.tag.begin.astro"},2:{name:"meta.tag.end.astro",patterns:[{include:"#tags-name"}]},3:{name:"meta.tag.end.astro punctuation.definition.tag.end.astro"},4:{name:"meta.tag.start.astro punctuation.definition.tag.end.astro"}},match:"()|(/>)"},"tags-general-end":{begin:"(]*)",beginCaptures:{1:{name:"meta.tag.end.astro punctuation.definition.tag.begin.astro"},2:{name:"meta.tag.end.astro",patterns:[{include:"#tags-name"}]}},end:"(>)",endCaptures:{1:{name:"meta.tag.end.astro punctuation.definition.tag.end.astro"}},name:"meta.scope.tag.$2.astro"},"tags-general-start":{begin:"(<)([^/\\s>/]*)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"(/?>)",endCaptures:{1:{name:"meta.tag.start.astro punctuation.definition.tag.end.astro"}},name:"meta.scope.tag.$2.astro",patterns:[{include:"#tags-start-attributes"}]},"tags-lang":{begin:"<(script|style)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"|/>",endCaptures:{0:{patterns:[{include:"#tags-end-node"}]}},name:"meta.scope.tag.$1.astro meta.$1.astro",patterns:[{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text\\/)?(application\\/ld\\+json)\\2)",end:"(?=)",name:"meta.lang.json.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(module)\\2)",end:"(?=)",name:"meta.lang.javascript.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/|application/)?([\\w\\/+]+)\\2)",end:"(?=)",name:"meta.lang.$3.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{include:"#tags-lang-start-attributes"}]},"tags-lang-start-attributes":{begin:"\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.astro"}},name:"meta.tag.start.astro",patterns:[{include:"#attributes"}]},"tags-name":{patterns:[{match:"[A-Z][a-zA-Z0-9_]*",name:"support.class.component.astro"},{match:"[a-z][\\w0-9:]*-[\\w0-9:-]*",name:"meta.tag.custom.astro entity.name.tag.astro"},{match:"[a-z][\\w0-9:-]*",name:"entity.name.tag.astro"}]},"tags-raw":{begin:"<([^/?!\\s<>]+)(?=[^>]+is:raw).*?",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},contentName:"source.unknown",end:"|/>",endCaptures:{0:{patterns:[{include:"#tags-end-node"}]}},name:"meta.scope.tag.$1.astro meta.raw.astro",patterns:[{include:"#tags-lang-start-attributes"}]},"tags-start-attributes":{begin:"\\G",end:"(?=/?>)",name:"meta.tag.start.astro",patterns:[{include:"#attributes"}]},"tags-start-node":{captures:{1:{name:"punctuation.definition.tag.begin.astro"},2:{patterns:[{include:"#tags-name"}]}},match:"(<)([^/\\s>/]*)",name:"meta.tag.start.astro"},"tags-void":{begin:"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.astro"},2:{name:"entity.name.tag.astro"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.begin.astro"}},name:"meta.tag.void.astro",patterns:[{include:"#attributes"}]},text:{patterns:[{begin:"(?<=^|---|>|})",end:"(?=<|{|$)",name:"text.astro",patterns:[{include:"#entities"}]}]}},o="source.astro",i={displayName:e,fileTypes:t,injections:r,name:a,patterns:n,repository:s,scopeName:o};export{i as default,e as displayName,t as fileTypes,r as injections,a as name,n as patterns,s as repository,o as scopeName}; diff --git a/lib/dist/grammar/awk.mjs b/lib/dist/grammar/awk.mjs new file mode 100644 index 0000000..cbd4a9e --- /dev/null +++ b/lib/dist/grammar/awk.mjs @@ -0,0 +1 @@ +var e="AWK",n=["awk"],a="awk",t=[{include:"#comment"},{include:"#procedure"},{include:"#pattern"}],r={"builtin-pattern":{match:"\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b",name:"constant.language.awk"},command:{patterns:[{match:"\\b(?:next|print|printf)\\b",name:"keyword.other.command.awk"},{match:"\\b(?:close|getline|delete|system)\\b",name:"keyword.other.command.nawk"},{match:"\\b(?:fflush|nextfile)\\b",name:"keyword.other.command.bell-awk"}]},comment:{match:"#.*",name:"comment.line.number-sign.awk"},constant:{patterns:[{include:"#numeric-constant"},{include:"#string-constant"}]},"escaped-char":{match:'\\\\(?:[\\\\abfnrtv/"]|x[0-9A-Fa-f]{2}|[0-7]{3})',name:"constant.character.escape.awk"},expression:{patterns:[{include:"#command"},{include:"#function"},{include:"#constant"},{include:"#variable"},{include:"#regexp-in-expression"},{include:"#operator"},{include:"#groupings"}]},function:{patterns:[{match:"\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b",name:"support.function.awk"},{match:"\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b",name:"support.function.nawk"},{match:"\\b(?:gensub|strftime|systime)\\b",name:"support.function.gawk"}]},"function-definition":{begin:"\\b(function)\\s+(\\w+)(\\()",beginCaptures:{1:{name:"storage.type.function.awk"},2:{name:"entity.name.function.awk"},3:{name:"punctuation.definition.parameters.begin.awk"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.awk"}},patterns:[{match:"\\b(\\w+)\\b",name:"variable.parameter.function.awk"},{match:"\\b(,)\\b",name:"punctuation.separator.parameters.awk"}]},groupings:{patterns:[{match:"\\(",name:"meta.brace.round.awk"},{match:"\\)",name:"meta.brace.round.awk"},{match:"\\,",name:"punctuation.separator.parameters.awk"}]},keyword:{match:"\\b(?:break|continue|do|while|exit|for|if|else|return)\\b",name:"keyword.control.awk"},"numeric-constant":{match:"\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b",name:"constant.numeric.awk"},operator:{patterns:[{match:"(!?~|[=<>!]=|[<>])",name:"keyword.operator.comparison.awk"},{match:"\\b(in)\\b",name:"keyword.operator.comparison.awk"},{match:"([+\\-*/%^]=|\\+\\+|--|>>|=)",name:"keyword.operator.assignment.awk"},{match:"(\\|\\||&&|!)",name:"keyword.operator.boolean.awk"},{match:"([+\\-*/%^])",name:"keyword.operator.arithmetic.awk"},{match:"([?:])",name:"keyword.operator.trinary.awk"},{match:"(\\[|\\])",name:"keyword.operator.index.awk"}]},pattern:{patterns:[{include:"#regexp-as-pattern"},{include:"#function-definition"},{include:"#builtin-pattern"},{include:"#expression"}]},procedure:{begin:"\\{",end:"\\}",patterns:[{include:"#comment"},{include:"#procedure"},{include:"#keyword"},{include:"#expression"}]},"regex-as-assignment":{begin:"([^=<>!+\\-*/%^]=)\\s*(/)",beginCaptures:{1:{name:"keyword.operator.assignment.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-comparison":{begin:"(!?~)\\s*(/)",beginCaptures:{1:{name:"keyword.operator.comparison.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-first-argument":{begin:"(\\()\\s*(/)",beginCaptures:{1:{name:"meta.brace.round.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-nth-argument":{begin:"(,)\\s*(/)",beginCaptures:{1:{name:"punctuation.separator.parameters.awk"},2:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regexp-as-pattern":{begin:"/",beginCaptures:{0:{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{0:{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regexp-in-expression":{patterns:[{include:"#regex-as-assignment"},{include:"#regex-as-comparison"},{include:"#regex-as-first-argument"},{include:"#regex-as-nth-argument"}]},"string-constant":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.awk"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.awk"}},name:"string.quoted.double.awk",patterns:[{include:"#escaped-char"}]},variable:{patterns:[{match:"\\$[0-9]+",name:"variable.language.awk"},{match:"\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b",name:"variable.language.awk"},{match:"\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b",name:"variable.language.nawk"},{match:"\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b",name:"variable.language.gawk"}]}},i="source.awk",o={displayName:"AWK",fileTypes:n,name:"awk",patterns:t,repository:r,scopeName:i};export{o as default,e as displayName,n as fileTypes,a as name,t as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/ballerina.mjs b/lib/dist/grammar/ballerina.mjs new file mode 100644 index 0000000..8b70e56 --- /dev/null +++ b/lib/dist/grammar/ballerina.mjs @@ -0,0 +1 @@ +var e="Ballerina",n=["bal"],a="ballerina",t=[{include:"#statements"}],r={"access-modifier":{patterns:[{match:"(?",beginCaptures:{0:{name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"}},end:",|(?=\\})",patterns:[{include:"#code"}]}]},butExp:{patterns:[{begin:"\\bbut\\b",beginCaptures:{0:{name:"keyword.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#butExpBody"},{include:"#comment"}]}]},butExpBody:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#parameter"},{include:"#butClause"},{include:"#comment"}]}]},call:{patterns:[{match:"(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()",name:"entity.name.function.ballerina"}]},callableUnitBody:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"(?=\\})",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#workerDef"},{include:"#service-decl"},{include:"#objectDec"},{include:"#function-defn"},{include:"#forkStatement"},{include:"#code"}]}]},"class-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},name:"meta.class.body.ballerina",patterns:[{include:"#comment"},{include:"#mdDocumentation"},{include:"#function-defn"},{include:"#var-expr"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#keywords"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-defn":{begin:"(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])",beginCaptures:{0:{name:"storage.type.class.ballerina keyword.other.ballerina"}},end:"(?<=\\})",name:"meta.class.ballerina",patterns:[{include:"#keywords"},{captures:{0:{name:"entity.name.type.class.ballerina"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#class-body"}]},code:{patterns:[{include:"#booleans"},{include:"#matchStatement"},{include:"#butExp"},{include:"#xml"},{include:"#stringTemplate"},{include:"#keywords"},{include:"#strings"},{include:"#comment"},{include:"#mdDocumentation"},{include:"#annotationAttachment"},{include:"#numbers"},{include:"#maps"},{include:"#paranthesised"},{include:"#paranthesisedBracket"},{include:"#regex"}]},comment:{patterns:[{match:"\\/\\/.*",name:"comment.ballerina"}]},constrainType:{patterns:[{begin:"<",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ballerina"}},end:">",endCaptures:{0:{name:"punctuation.definition.parameters.end.ballerina"}},patterns:[{include:"#comment"},{include:"#constrainType"},{match:"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b",name:"storage.type.ballerina"}]}]},"control-statement":{patterns:[{begin:"(?)",patterns:[{include:"#code"}]}]},expression:{patterns:[{include:"#keywords"},{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#regex"}]},"expression-operators":{patterns:[{match:"\\*=|(?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ballerina"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ballerina"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ballerina"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ballerina"},{captures:{1:{name:"keyword.operator.logical.ballerina"},2:{name:"keyword.operator.assignment.compound.ballerina"},3:{name:"keyword.operator.arithmetic.ballerina"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ballerina"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ballerina"},{match:"\\=",name:"keyword.operator.assignment.ballerina"},{match:"--",name:"keyword.operator.decrement.ballerina"},{match:"\\+\\+",name:"keyword.operator.increment.ballerina"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ballerina"}]},expressionWithoutIdentifiers:{patterns:[{include:"#xml"},{include:"#string"},{include:"#stringTemplate"},{include:"#comment"},{include:"#object-literal"},{include:"#ternary-expression"},{include:"#expression-operators"},{include:"#literal"},{include:"#paranthesised"},{include:"#regex"}]},"flags-on-off":{name:"meta.flags.regexp.ballerina",patterns:[{begin:"(\\??)([imsx]*)(-?)([imsx]*)(:)",beginCaptures:{1:{name:"punctuation.other.non-capturing-group-begin.regexp.ballerina"},2:{name:"keyword.other.non-capturing-group.flags-on.regexp.ballerina"},3:{name:"punctuation.other.non-capturing-group.off.regexp.ballerina"},4:{name:"keyword.other.non-capturing-group.flags-off.regexp.ballerina"},5:{name:"punctuation.other.non-capturing-group-end.regexp.ballerina"}},end:"()",name:"constant.other.flag.regexp.ballerina",patterns:[{include:"#regexp"},{include:"#template-substitution-element"}]}]},"for-loop":{begin:"(?",beginCaptures:{0:{name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"}},end:"(?=\\;)|(?=\\,)|(?=)(?=\\);)",name:"meta.block.ballerina",patterns:[{include:"#statements"},{include:"#punctuation-comma"}]},{match:"\\*",name:"keyword.generator.asterisk.ballerina"}]},"function-defn":{begin:"(?:(public|private)\\s+)?(function\\b)",beginCaptures:{1:{name:"keyword.other.ballerina"},2:{name:"keyword.other.ballerina"}},end:"(?<=\\;)|(?<=\\})|(?<=\\,)|(?=)(?=\\);)",name:"meta.function.ballerina",patterns:[{match:"\\bexternal\\b",name:"keyword.ballerina"},{include:"#stringTemplate"},{include:"#annotationAttachment"},{include:"#functionReturns"},{include:"#functionName"},{include:"#functionParameters"},{include:"#punctuation-semicolon"},{include:"#function-body"},{include:"#regex"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#numbers"},{include:"#string"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#keywords"},{include:"#parameter-name"},{include:"#array-literal"},{include:"#variable-initializer"},{include:"#identifiers"},{include:"#regex"},{match:"\\,",name:"punctuation.separator.parameter.ballerina"}]},functionName:{patterns:[{match:"\\bfunction\\b",name:"keyword.other.ballerina"},{include:"#type-primitive"},{include:"#self-literal"},{include:"#string"},{captures:{2:{name:"variable.language.this.ballerina"},3:{name:"keyword.other.ballerina"},4:{name:"support.type.primitive.ballerina"},5:{name:"storage.type.ballerina"},6:{name:"meta.definition.function.ballerina entity.name.function.ballerina"}},match:"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))"}]},functionParameters:{begin:"\\(|\\[",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ballerina"}},end:"\\)|\\]",endCaptures:{0:{name:"punctuation.definition.parameters.end.ballerina"}},name:"meta.parameters.ballerina",patterns:[{include:"#function-parameters-body"}]},functionReturns:{begin:"\\s*(returns)\\s*",beginCaptures:{1:{name:"keyword.other.ballerina"}},end:"(?==>)|(\\=)|(?=\\{)|(\\))|(?=\\;)",endCaptures:{1:{name:"keyword.operator.ballerina"}},name:"meta.type.function.return.ballerina",patterns:[{include:"#comment"},{include:"#string"},{include:"#numbers"},{include:"#keywords"},{include:"#type-primitive"},{captures:{1:{name:"support.type.primitive.ballerina"}},match:"\\s*\\b(var)(?=\\s+|\\[|\\?)"},{match:"\\|",name:"keyword.operator.ballerina"},{match:"\\?",name:"keyword.operator.optional.ballerina"},{include:"#type-annotation"},{include:"#type-tuple"},{include:"#keywords"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ballerina"}]},functionType:{patterns:[{begin:"\\bfunction\\b",beginCaptures:{0:{name:"keyword.ballerina"}},end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))|(?=\\])",patterns:[{include:"#comment"},{include:"#functionTypeParamList"},{include:"#functionTypeReturns"}]}]},functionTypeParamList:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"delimiter.parenthesis"}},end:"\\)",endCaptures:{0:{name:"delimiter.parenthesis"}},patterns:[{match:"public",name:"keyword"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#parameterTuple"},{include:"#functionTypeType"},{include:"#comment"}]}]},functionTypeReturns:{patterns:[{begin:"\\breturns\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))",patterns:[{include:"#functionTypeReturnsParameter"},{include:"#comment"}]}]},functionTypeReturnsParameter:{patterns:[{begin:"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?=\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])",patterns:[{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#defaultValue"},{include:"#comment"},{include:"#parameterTuple"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},functionTypeType:{patterns:[{begin:"[_$[:alpha:]][_$[:alnum:]]*",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))"}]},identifiers:{patterns:[{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"},3:{name:"entity.name.function.ballerina"}},match:"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n((\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((\n((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n))"},{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"},3:{name:"entity.name.function.ballerina"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"},{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"},3:{name:"variable.other.property.ballerina"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{include:"#type-primitive"},{include:"#self-literal"},{match:"\\b(check|foreach|if|checkpanic)\\b",name:"keyword.control.ballerina"},{include:"#call"},{match:"\\b(var)\\b",name:"support.type.primitive.ballerina"},{captures:{1:{name:"variable.other.readwrite.ballerina"},3:{name:"punctuation.accessor.ballerina"},4:{name:"entity.name.function.ballerina"},5:{name:"punctuation.definition.parameters.begin.ballerina"},6:{name:"punctuation.definition.parameters.end.ballerina"}},match:"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?"},{match:"(\\')([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.property.ballerina"},{include:"#type-annotation"}]},"if-statement":{patterns:[{begin:"(?)",name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"},{match:"(!|%|\\+|\\-|~=|===|==|=|!=|!==|<|>|&|\\||\\?:|\\.\\.\\.|<=|>=|&&|\\|\\||~|>>|>>>)",name:"keyword.operator.ballerina"},{include:"#types"},{include:"#self-literal"},{include:"#type-primitive"}]},literal:{patterns:[{include:"#booleans"},{include:"#numbers"},{include:"#strings"},{include:"#maps"},{include:"#self-literal"},{include:"#array-literal"}]},maps:{patterns:[{begin:"\\{",end:"\\}",patterns:[{include:"#code"}]}]},matchBindingPattern:{patterns:[{begin:"var",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?==>)|,",patterns:[{include:"#errorDestructure"},{include:"#code"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.parameter.ballerina"}]}]},matchStatement:{patterns:[{begin:"\\bmatch\\b",beginCaptures:{0:{name:"keyword.control.ballerina"}},end:"\\}",patterns:[{include:"#matchStatementBody"},{include:"#comment"},{include:"#code"}]}]},matchStatementBody:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{0:{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#literal"},{include:"#matchBindingPattern"},{include:"#matchStatementPatternClause"},{include:"#comment"},{include:"#code"}]}]},matchStatementPatternClause:{patterns:[{begin:"=>",beginCaptures:{0:{name:"keyword.ballerina"}},end:"((\\})|;|,)",patterns:[{include:"#callableUnitBody"},{include:"#code"}]}]},mdDocumentation:{begin:"\\#",end:"[\\r\\n]+",name:"comment.mddocs.ballerina",patterns:[{include:"#mdDocumentationReturnParamDescription"},{include:"#mdDocumentationParamDescription"}]},mdDocumentationParamDescription:{patterns:[{begin:"(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)",beginCaptures:{1:{name:"keyword.operator.ballerina"},2:{name:"variable.other.readwrite.ballerina"},3:{name:"keyword.operator.ballerina"}},end:"(?=[^#\\r\\n]|(?:# *?\\+))",patterns:[{match:"#.*",name:"comment.mddocs.paramdesc.ballerina"}]}]},mdDocumentationReturnParamDescription:{patterns:[{begin:"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)",beginCaptures:{1:{name:"comment.mddocs.ballerina"},2:{name:"keyword.ballerina"},3:{name:"keyword.ballerina"},4:{name:"keyword.ballerina"},5:{name:"comment.mddocs.returnparamdesc.ballerina"}},end:"(?=[^#\\r\\n]|(?:# *?\\+))",patterns:[{match:"#.*",name:"comment.mddocs.returnparamdesc.ballerina"}]}]},multiType:{patterns:[{match:"(?<=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)",name:"storage.type.ballerina"},{match:"\\|",name:"keyword.operator.ballerina"}]},numbers:{patterns:[{match:"\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?",name:"constant.numeric.decimal.ballerina"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},name:"meta.objectliteral.ballerina",patterns:[{include:"#object-member"},{include:"#punctuation-comma"}]},"object-member":{patterns:[{include:"#comment"},{include:"#function-defn"},{include:"#literal"},{include:"#keywords"},{include:"#expression"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ballerina meta.object-literal.key.ballerina",patterns:[{include:"#comment"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\n*})|(\\s+(as)\\s+))))",name:"meta.object.member.ballerina meta.object-literal.key.ballerina",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?x)(?=(\\b(?)\n)) |\n((\n((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",name:"meta.object.member.ballerina"},{captures:{0:{name:"meta.object-literal.key.ballerina"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ballerina"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ballerina"}},end:"(?=,|\\})",name:"meta.object.member.ballerina",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ballerina"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ballerina"},{captures:{1:{name:"keyword.control.as.ballerina"},2:{name:"storage.modifier.ballerina"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?)|(?=\\))|(?=\\])",patterns:[{include:"#parameterWithDescriptor"},{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#defaultValue"},{include:"#comment"},{include:"#parameterTuple"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},"parameter-name":{patterns:[{captures:{1:{name:"support.type.primitive.ballerina"}},match:"\\s*\\b(var)\\s+"},{captures:{2:{name:"keyword.operator.rest.ballerina"},3:{name:"support.type.primitive.ballerina"},4:{name:"keyword.other.ballerina"},5:{name:"constant.language.boolean.ballerina"},6:{name:"keyword.control.flow.ballerina"},7:{name:"storage.type.ballerina"},8:{name:"variable.parameter.ballerina"},9:{name:"variable.parameter.ballerina"},10:{name:"keyword.operator.optional.ballerina"}},match:"(?x)(?:(?)|(?=\\))",patterns:[{include:"#record"},{include:"#objectDec"},{include:"#parameterTupleType"},{include:"#parameterTupleEnd"},{include:"#comment"}]}]},parameterTupleEnd:{patterns:[{begin:"\\]",end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))",patterns:[{include:"#defaultWithParentheses"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},parameterTupleType:{patterns:[{begin:"[_$[:alpha:]][_$[:alnum:]]*",beginCaptures:{0:{name:"storage.type.ballerina"}},end:"(?:\\,)|(?:\\|)|(?=\\])"}]},parameterWithDescriptor:{patterns:[{begin:"\\&",beginCaptures:{0:{name:"keyword.operator.ballerina"}},end:"(?=\\,)|(?=\\|)|(?=\\))",patterns:[{include:"#parameter"}]}]},parameters:{patterns:[{match:"\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b",name:"keyword.control.flow.ballerina"},{match:"\\s*(let|select)\\b",name:"keyword.other.ballerina"},{match:"\\,",name:"punctuation.separator.parameter.ballerina"}]},paranthesised:{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ballerina"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ballerina"}},name:"meta.brace.round.block.ballerina",patterns:[{include:"#self-literal"},{include:"#function-defn"},{include:"#decl-block"},{include:"#comment"},{include:"#string"},{include:"#parameters"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#stringTemplate"},{include:"#parameter-name"},{include:"#variable-initializer"},{include:"#expression"},{include:"#regex"}]},paranthesisedBracket:{patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#comment"},{include:"#code"}]}]},"punctuation-accessor":{patterns:[{captures:{1:{name:"punctuation.accessor.ballerina"},2:{name:"punctuation.accessor.optional.ballerina"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"}]},"punctuation-comma":{patterns:[{match:",",name:"punctuation.separator.comma.ballerina"}]},"punctuation-semicolon":{patterns:[{match:";",name:"punctuation.terminator.statement.ballerina"}]},record:{begin:"\\brecord\\b",beginCaptures:{0:{name:"keyword.other.ballerina"}},end:"(?<=\\})",name:"meta.record.ballerina",patterns:[{include:"#recordBody"}]},recordBody:{patterns:[{include:"#decl-block"}]},recordLiteral:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#code"}]}]},regex:{patterns:[{begin:"(\\bre)(\\s*)(`)",beginCaptures:{1:{name:"support.type.primitive.ballerina"},3:{name:"punctuation.definition.regexp.template.begin.ballerina"}},end:"`",endCaptures:{1:{name:"punctuation.definition.regexp.template.end.ballerina"}},name:"regexp.template.ballerina",patterns:[{include:"#template-substitution-element"},{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrn]|\\.",name:"keyword.other.character-class.regexp.ballerina"},{match:"\\\\[^pPu]",name:"constant.character.escape.backslash.regexp"}]},"regex-unicode-properties-general-category":{patterns:[{match:"(Lu|Ll|Lt|Lm|Lo|L|Mn|Mc|Me|M|Nd|Nl|No|N|Pc|Pd|Ps|Pe|Pi|Pf|Po|P|Sm|Sc|Sk|So|S|Zs|Zl|Zp|Z|Cf|Cc|Cn|Co|C)",name:"constant.other.unicode-property-general-category.regexp.ballerina"}]},"regex-unicode-property-key":{patterns:[{begin:"(sc=|gc=)",beginCaptures:{1:{name:"keyword.other.unicode-property-key.regexp.ballerina"}},end:"()",endCaptures:{1:{name:"punctuation.other.unicode-property.end.regexp.ballerina"}},name:"keyword.other.unicode-property-key.regexp.ballerina",patterns:[{include:"#regex-unicode-properties-general-category"}]}]},regexp:{patterns:[{match:"\\^|\\$",name:"keyword.control.assertion.regexp.ballerina"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp.ballerina"},{match:"\\|",name:"keyword.operator.or.regexp.ballerina"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.group.regexp.ballerina"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp.ballerina"}},name:"meta.group.assertion.regexp.ballerina",patterns:[{include:"#template-substitution-element"},{include:"#regexp"},{include:"#flags-on-off"},{include:"#unicode-property-escape"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.start.regexp.ballerina"},2:{name:"keyword.operator.negation.regexp.ballerina"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.end.regexp.ballerina"}},name:"constant.other.character-class.set.regexp.ballerina",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.escape.backslash.regexp"},3:{name:"constant.character.numeric.regexp"},4:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))",name:"constant.other.character-class.range.regexp.ballerina"},{include:"#regex-character-class"},{include:"#unicode-values"},{include:"#unicode-property-escape"}]},{include:"#template-substitution-element"},{include:"#regex-character-class"},{include:"#unicode-values"},{include:"#unicode-property-escape"}]},"self-literal":{patterns:[{captures:{1:{name:"variable.language.this.ballerina"},2:{name:"punctuation.accessor.ballerina"},3:{name:"entity.name.function.ballerina"}},match:"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()"},{match:"(?\\=>]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?",name:"meta.type.annotation.ballerina",patterns:[{include:"#booleans"},{include:"#stringTemplate"},{include:"#regex"},{include:"#self-literal"},{include:"#xml"},{include:"#call"},{captures:{1:{name:"keyword.other.ballerina"},2:{name:"constant.language.boolean.ballerina"},3:{name:"keyword.control.ballerina"},4:{name:"storage.type.ballerina"},5:{name:"support.type.primitive.ballerina"},6:{name:"variable.other.readwrite.ballerina"},8:{name:"punctuation.accessor.ballerina"},9:{name:"entity.name.function.ballerina"},10:{name:"punctuation.definition.parameters.begin.ballerina"},11:{name:"punctuation.definition.parameters.end.ballerina"}},match:"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?"},{match:"\\?",name:"keyword.operator.optional.ballerina"},{include:"#multiType"},{include:"#type"},{include:"#paranthesised"}]}]},"type-primitive":{patterns:[{match:"(?|\\|)",beginCaptures:{2:{name:"support.type.primitive.ballerina"},3:{name:"storage.type.ballerina"},4:{name:"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},end:"(?=$|^|[;,=}])",endCaptures:{0:{name:"punctuation.terminator.statement.ballerina"}},name:"meta.var-single-variable.expr.ballerina",patterns:[{include:"#call"},{include:"#self-literal"},{include:"#if-statement"},{include:"#string"},{include:"#numbers"},{include:"#keywords"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},2:{name:"keyword.operator.definiteassignment.ballerina"}},end:"(?=$|^|[;,=}]|((?)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.assignment.ballerina"}},end:"(?=$|[,);}\\]])",patterns:[{match:"(\\')([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.property.ballerina"},{include:"#xml"},{include:"#function-defn"},{include:"#expression"},{include:"#punctuation-accessor"},{include:"#regex"}]},{begin:"(?)",beginCaptures:{1:{name:"keyword.operator.assignment.ballerina"}},end:"(?=[,);}\\]]|((?",endCaptures:{0:{name:"punctuation.definition.tag.end.xml.ballerina"}},patterns:[{include:"#xmlSingleQuotedString"},{include:"#xmlDoubleQuotedString"},{match:"xmlns",name:"keyword.other.ballerina"},{match:"([a-zA-Z0-9-]+)",name:"entity.other.attribute-name.xml.ballerina"}]}]}},i="source.ballerina",l={displayName:e,fileTypes:n,name:a,patterns:t,repository:r,scopeName:i};export{l as default,e as displayName,n as fileTypes,a as name,t as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/bat.mjs b/lib/dist/grammar/bat.mjs new file mode 100644 index 0000000..b347434 --- /dev/null +++ b/lib/dist/grammar/bat.mjs @@ -0,0 +1 @@ +var e="Batch File",t={"L:meta.block.repeat.batchfile":{patterns:[{include:"#repeatParameter"}]}},a="bat",n=[{include:"#commands"},{include:"#comments"},{include:"#constants"},{include:"#controls"},{include:"#escaped_characters"},{include:"#labels"},{include:"#numbers"},{include:"#operators"},{include:"#parens"},{include:"#strings"},{include:"#variables"}],i={command_set:{patterns:[{begin:"(?<=^|[\\s@])(?i:SET)(?=$|\\s)",beginCaptures:{0:{name:"keyword.command.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#command_set_inside"}]}]},command_set_group:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.batchfile"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.batchfile"}},patterns:[{include:"#command_set_inside_arithmetic"}]}]},command_set_inside:{patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#parens"},{include:"#command_set_strings"},{include:"#strings"},{begin:"([^ ][^=]*)(=)",beginCaptures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#parens"},{include:"#strings"}]},{begin:"\\s+/[aA]\\s+",end:"(?=$\\n|[&|><)])",name:"meta.expression.set.batchfile",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.batchfile"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{include:"#command_set_inside_arithmetic"},{include:"#command_set_group"},{include:"#variables"}]},{include:"#command_set_inside_arithmetic"},{include:"#command_set_group"}]},{begin:"\\s+/[pP]\\s+",end:"(?=$\\n|[&|><)])",patterns:[{include:"#command_set_strings"},{begin:"([^ ][^=]*)(=)",beginCaptures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.batchfile"}},end:"(?=$\\n|[&|><)])",name:"meta.prompt.set.batchfile",patterns:[{include:"#strings"}]}]}]},command_set_inside_arithmetic:{patterns:[{include:"#command_set_operators"},{include:"#numbers"},{match:",",name:"punctuation.separator.batchfile"}]},command_set_operators:{patterns:[{captures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.augmented.batchfile"}},match:"([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)"},{match:"\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~",name:"keyword.operator.arithmetic.batchfile"},{match:"!",name:"keyword.operator.logical.batchfile"},{captures:{1:{name:"variable.other.readwrite.batchfile"},2:{name:"keyword.operator.assignment.batchfile"}},match:"([^ =]*)(=)"}]},command_set_strings:{patterns:[{begin:'(")\\s*([^ ][^=]*)(=)',beginCaptures:{1:{name:"punctuation.definition.string.begin.batchfile"},2:{name:"variable.other.readwrite.batchfile"},3:{name:"keyword.operator.assignment.batchfile"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{include:"#variables"},{include:"#numbers"},{include:"#escaped_characters"}]}]},commands:{patterns:[{match:"(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)",name:"keyword.command.batchfile"},{begin:"(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)",beginCaptures:{1:{name:"keyword.command.batchfile"},2:{name:"keyword.other.special-method.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#strings"}]},{captures:{1:{name:"keyword.command.batchfile"},2:{name:"keyword.other.special-method.batchfile"}},match:"(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))"},{include:"#command_set"}]},comments:{patterns:[{begin:"(?:^|(&))\\s*(?=((?::[+=,;: ])))",beginCaptures:{1:{name:"keyword.operator.conditional.batchfile"}},end:"\\n",patterns:[{begin:"((?::[+=,;: ]))",beginCaptures:{1:{name:"punctuation.definition.comment.batchfile"}},end:"(?=\\n)",name:"comment.line.colon.batchfile"}]},{begin:"(?<=^|[\\s@])(?i)(REM)(\\.)",beginCaptures:{1:{name:"keyword.command.rem.batchfile"},2:{name:"punctuation.separator.batchfile"}},end:"(?=$\\n|[&|><)])",name:"comment.line.rem.batchfile"},{begin:"(?<=^|[\\s@])(?i:rem)\\b",beginCaptures:{0:{name:"keyword.command.rem.batchfile"}},end:"\\n",name:"comment.line.rem.batchfile",patterns:[{match:"[><|]",name:"invalid.illegal.unexpected-character.batchfile"}]}]},constants:{patterns:[{match:"\\b(?i:NUL)\\b",name:"constant.language.batchfile"}]},controls:{patterns:[{match:"(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))",name:"keyword.control.statement.batchfile"},{captures:{1:{name:"keyword.control.conditional.batchfile"},2:{name:"keyword.operator.logical.batchfile"},3:{name:"keyword.other.special-method.batchfile"}},match:"(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)"},{match:"(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)",name:"keyword.control.conditional.batchfile"},{begin:"(?<=^|[\\s(&^])(?i)for(?=\\s)",beginCaptures:{0:{name:"keyword.control.repeat.batchfile"}},end:"\\n",name:"meta.block.repeat.batchfile",patterns:[{begin:"(?<=[\\s^])(?i)in(?=\\s)",beginCaptures:{0:{name:"keyword.control.repeat.in.batchfile"}},end:"(?<=[\\s)^])(?i)do(?=\\s)|\\n",endCaptures:{0:{name:"keyword.control.repeat.do.batchfile"}},patterns:[{include:"$self"}]},{include:"$self"}]}]},escaped_characters:{patterns:[{match:"%%|\\^\\^!|\\^(?=.)|\\^\\n",name:"constant.character.escape.batchfile"}]},labels:{patterns:[{captures:{1:{name:"punctuation.separator.batchfile"},2:{name:"keyword.other.special-method.batchfile"}},match:"(?i)(?:^\\s*|(?<=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)"}]},numbers:{patterns:[{match:"(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)",name:"constant.numeric.batchfile"}]},operators:{patterns:[{match:"@(?=\\S)",name:"keyword.operator.at.batchfile"},{match:"(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==",name:"keyword.operator.comparison.batchfile"},{match:"(?<=\\s)(?i)(NOT)(?=\\s)",name:"keyword.operator.logical.batchfile"},{match:"(?[&>]?",name:"keyword.operator.redirection.batchfile"}]},parens:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.batchfile"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.batchfile"}},name:"meta.group.batchfile",patterns:[{match:",|;",name:"punctuation.separator.batchfile"},{include:"$self"}]}]},repeatParameter:{patterns:[{captures:{1:{name:"punctuation.definition.variable.batchfile"}},match:"(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])",name:"variable.parameter.repeat.batchfile"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.batchfile"}},end:'(")|(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.batchfile"},2:{name:"invalid.illegal.newline.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{match:"%%",name:"constant.character.escape.batchfile"},{include:"#variables"}]}]},variable:{patterns:[{begin:"%(?=[^%]+%)",beginCaptures:{0:{name:"punctuation.definition.variable.begin.batchfile"}},end:"(%)|\\n",endCaptures:{1:{name:"punctuation.definition.variable.end.batchfile"}},name:"variable.other.readwrite.batchfile",patterns:[{begin:":~",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",name:"meta.variable.substring.batchfile",patterns:[{include:"#variable_substring"}]},{begin:":",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",name:"meta.variable.substitution.batchfile",patterns:[{include:"#variable_replace"},{begin:"=",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",patterns:[{include:"#variable_delayed_expansion"},{match:"[^%]+",name:"string.unquoted.batchfile"}]}]}]}]},variable_delayed_expansion:{patterns:[{begin:"!(?=[^!]+!)",beginCaptures:{0:{name:"punctuation.definition.variable.begin.batchfile"}},end:"(!)|\\n",endCaptures:{1:{name:"punctuation.definition.variable.end.batchfile"}},name:"variable.other.readwrite.batchfile",patterns:[{begin:":~",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",name:"meta.variable.substring.batchfile",patterns:[{include:"#variable_substring"}]},{begin:":",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",name:"meta.variable.substitution.batchfile",patterns:[{include:"#escaped_characters"},{include:"#variable_replace"},{include:"#variable"},{begin:"=",beginCaptures:{0:{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",patterns:[{include:"#variable"},{match:"[^!]+",name:"string.unquoted.batchfile"}]}]}]}]},variable_replace:{patterns:[{match:"[^=%!\\n]+",name:"string.unquoted.batchfile"}]},variable_substring:{patterns:[{captures:{1:{name:"constant.numeric.batchfile"},2:{name:"punctuation.separator.batchfile"},3:{name:"constant.numeric.batchfile"}},match:"([+-]?\\d+)(?:(,)([+-]?\\d+))?"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.batchfile"}},match:"(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)",name:"variable.parameter.batchfile"},{include:"#variable"},{include:"#variable_delayed_expansion"}]}},r="source.batchfile",s={displayName:e,injections:t,name:"bat",patterns:n,repository:i,scopeName:r};export{s as default,e as displayName,t as injections,a as name,n as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/beancount.mjs b/lib/dist/grammar/beancount.mjs new file mode 100644 index 0000000..0b75259 --- /dev/null +++ b/lib/dist/grammar/beancount.mjs @@ -0,0 +1 @@ +var n="Beancount",e=["beancount"],t="beancount",a=[{comment:"Comments",match:";.*",name:"comment.line.beancount"},{begin:"^\\s*(poptag|pushtag)\\s+(#)([A-Za-z0-9\\-_/.]+)",beginCaptures:{1:{name:"support.function.beancount"},2:{name:"keyword.operator.tag.beancount"},3:{name:"entity.name.tag.beancount"}},comment:"Tag directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.tag.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:'^\\s*(include)\\s+(\\".*\\")',beginCaptures:{1:{name:"support.function.beancount"},2:{name:"string.quoted.double.beancount"}},comment:"Include directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.include.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:'^\\s*(option)\\s+(\\".*\\")\\s+(\\".*\\")',beginCaptures:{1:{name:"support.function.beancount"},2:{name:"support.variable.beancount"},3:{name:"string.quoted.double.beancount"}},comment:"Option directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.option.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:'^\\s*(plugin)\\s*("(.*?)")\\s*(".*?")?',beginCaptures:{1:{name:"support.function.beancount"},2:{name:"string.quoted.double.beancount"},3:{name:"entity.name.function.beancount"},4:{name:"string.quoted.double.beancount"}},comment:"Plugin directive",end:"(?=(^\\s*$|^\\S))",name:"keyword.operator.directive.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(open|close|pad)\\b",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.beancount"}},comment:"Open/Close/Pad directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#commodity"},{match:"\\,",name:"punctuation.separator.beancount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(custom)\\b",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.beancount"}},comment:"Custom directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#string"},{include:"#bool"},{include:"#amount"},{include:"#number"},{include:"#date"},{include:"#account"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(event)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Event directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#string"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(commodity)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Commodity directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#commodity"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(note|document)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Note/Document directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#string"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(price)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Price directives",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#commodity"},{include:"#amount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(balance)",beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"}},comment:"Balance directives",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#amount"},{include:"#illegal"}]},{begin:'([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s*(txn|[*!&#?%PSTCURM])\\s*(".*?")?\\s*(".*?")?',beginCaptures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"},6:{name:"support.function.directive.beancount"},7:{name:"string.quoted.tiers.beancount"},8:{name:"string.quoted.narration.beancount"}},comment:"Transaction directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.transaction.beancount",patterns:[{include:"#comments"},{include:"#posting"},{include:"#meta"},{include:"#tag"},{include:"#link"},{include:"#illegal"}]}],c={account:{begin:"([A-Z][a-z]+)(:)",beginCaptures:{1:{name:"variable.language.beancount"},2:{name:"punctuation.separator.beancount"}},end:"\\s",name:"meta.account.beancount",patterns:[{begin:"(\\S+)([:]?)",beginCaptures:{1:{name:"variable.other.account.beancount"},2:{name:"punctuation.separator.beancount"}},comment:"Sub accounts",end:"([:]?)|(\\s)",patterns:[{include:"$self"},{include:"#illegal"}]}]},amount:{captures:{1:{name:"keyword.operator.modifier.beancount"},2:{name:"constant.numeric.currency.beancount"},3:{name:"entity.name.type.commodity.beancount"}},match:"([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)\\s*([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])",name:"meta.amount.beancount"},bool:{captures:{0:{name:"constant.language.bool.beancount"},2:{name:"constant.numeric.currency.beancount"},3:{name:"entity.name.type.commodity.beancount"}},match:"TRUE|FALSE"},comments:{captures:{1:{name:"comment.line.beancount"}},match:"(;.*)$"},commodity:{match:"([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])",name:"entity.name.type.commodity.beancount"},cost:{begin:"\\{\\{?",beginCaptures:{0:{name:"keyword.operator.assignment.beancount"}},end:"\\}\\}?",endCaptures:{0:{name:"keyword.operator.assignment.beancount"}},name:"meta.cost.beancount",patterns:[{include:"#amount"},{include:"#date"},{match:"\\,",name:"punctuation.separator.beancount"},{include:"#illegal"}]},date:{captures:{1:{name:"constant.numeric.date.year.beancount"},2:{name:"punctuation.separator.beancount"},3:{name:"constant.numeric.date.month.beancount"},4:{name:"punctuation.separator.beancount"},5:{name:"constant.numeric.date.day.beancount"}},match:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})",name:"meta.date.beancount"},flag:{match:"(?<=\\s)([*!&#?%PSTCURM])(?=\\s+)",name:"keyword.other.beancount"},illegal:{match:"[^\\s]",name:"invalid.illegal.unrecognized.beancount"},link:{captures:{1:{name:"keyword.operator.link.beancount"},2:{name:"markup.underline.link.beancount"}},match:"(\\^)([A-Za-z0-9\\-_/.]+)"},meta:{begin:"^\\s*([a-z][A-Za-z0-9\\-_]+)([:])",beginCaptures:{1:{name:"keyword.operator.directive.beancount"},2:{name:"punctuation.separator.beancount"}},end:"\\n",name:"meta.meta.beancount",patterns:[{include:"#string"},{include:"#account"},{include:"#bool"},{include:"#commodity"},{include:"#date"},{include:"#tag"},{include:"#amount"},{include:"#number"},{include:"#comments"},{include:"#illegal"}]},number:{captures:{1:{name:"keyword.operator.modifier.beancount"},2:{name:"constant.numeric.currency.beancount"}},match:"([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)"},posting:{begin:"^\\s+(?=([A-Z\\!]))",end:"(?=(^\\s*$|^\\S|^\\s*[A-Z]))",name:"meta.posting.beancount",patterns:[{include:"#meta"},{include:"#comments"},{include:"#flag"},{include:"#account"},{include:"#amount"},{include:"#cost"},{include:"#date"},{include:"#price"},{include:"#illegal"}]},price:{begin:"\\@\\@?",beginCaptures:{0:{name:"keyword.operator.assignment.beancount"}},end:"(?=(;|\\n))",name:"meta.price.beancount",patterns:[{include:"#amount"},{include:"#illegal"}]},string:{begin:'\\"',end:'\\"',name:"string.quoted.double.beancount",patterns:[{match:"\\\\.",name:"constant.character.escape.beancount"}]},tag:{captures:{1:{name:"keyword.operator.tag.beancount"},2:{name:"entity.name.tag.beancount"}},match:"(#)([A-Za-z0-9\\-_/.]+)"}},o="text.beancount",u={displayName:n,fileTypes:e,name:t,patterns:a,repository:c,scopeName:o};export{u as default,n as displayName,e as fileTypes,t as name,a as patterns,c as repository,o as scopeName}; diff --git a/lib/dist/grammar/berry.mjs b/lib/dist/grammar/berry.mjs new file mode 100644 index 0000000..8914554 --- /dev/null +++ b/lib/dist/grammar/berry.mjs @@ -0,0 +1 @@ +var e="Berry",r="berry",n=[{include:"#controls"},{include:"#strings"},{include:"#comment-block"},{include:"#comments"},{include:"#keywords"},{include:"#function"},{include:"#member"},{include:"#identifier"},{include:"#number"},{include:"#operator"}],t={"comment-block":{begin:"\\#\\-",end:"\\-#",name:"comment.berry",patterns:[{}]},comments:{begin:"\\#",end:"\\n",name:"comment.line.berry",patterns:[{}]},controls:{patterns:[{match:"\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b",name:"keyword.control.berry"}]},function:{patterns:[{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\())",name:"entity.name.function.berry"}]},identifier:{patterns:[{match:"\\b[_A-Za-z]\\w+\\b",name:"identifier.berry"}]},keywords:{patterns:[{match:"\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\b",name:"keyword.berry"}]},member:{patterns:[{captures:{0:{name:"entity.other.attribute-name.berry"}},match:"\\.([a-zA-Z_][a-zA-Z0-9_]*)"}]},number:{patterns:[{match:"0x[a-fA-F0-9]+|\\d+|(\\d+\\.?|\\.\\d)\\d*([eE][+-]?\\d+)?",name:"constant.numeric.berry"}]},operator:{patterns:[{match:"\\(|\\)|\\[|\\]|\\.|-|\\!|~|\\*|/|%|\\+|&|\\^|\\||<|>|=|:",name:"keyword.operator.berry"}]},strings:{patterns:[{begin:"(\"|')",end:"\\1",name:"string.quoted.double.berry",patterns:[{match:"(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)",name:"constant.character.escape.berry"}]},{begin:"f(\"|')",end:"\\1",name:"string.quoted.other.berry",patterns:[{match:"(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)",name:"constant.character.escape.berry"},{match:"\\{\\{[^\\}]*\\}\\}",name:"string.quoted.other.berry"},{begin:"\\{",end:"\\}",name:"keyword.other.unit.berry",patterns:[{include:"#keywords"},{include:"#numbers"},{include:"#identifier"},{include:"#operator"},{include:"#member"},{include:"#function"}]}]}]}},a="source.berry",c={displayName:e,name:r,patterns:n,repository:t,scopeName:a};export{c as default,e as displayName,r as name,n as patterns,t as repository,a as scopeName}; diff --git a/lib/dist/grammar/bibtex.mjs b/lib/dist/grammar/bibtex.mjs new file mode 100644 index 0000000..f68b1bb --- /dev/null +++ b/lib/dist/grammar/bibtex.mjs @@ -0,0 +1 @@ +var e="BibTeX",n="bibtex",t=[{captures:{0:{name:"punctuation.definition.comment.bibtex"}},match:"@(?i:comment)(?=[\\s{(])",name:"comment.block.at-sign.bibtex"},{begin:"((@)(?i:preamble))\\s*(\\{)\\s*",beginCaptures:{1:{name:"keyword.other.preamble.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.preamble.begin.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.preamble.end.bibtex"}},name:"meta.preamble.braces.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)(?i:preamble))\\s*(\\()\\s*",beginCaptures:{1:{name:"keyword.other.preamble.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.preamble.begin.bibtex"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.preamble.end.bibtex"}},name:"meta.preamble.parenthesis.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)",beginCaptures:{1:{name:"keyword.other.string-constant.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.string-constant.begin.bibtex"},4:{name:"variable.other.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.string-constant.end.bibtex"}},name:"meta.string-constant.braces.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)(?i:string))\\s*(\\()\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)",beginCaptures:{1:{name:"keyword.other.string-constant.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.string-constant.begin.bibtex"},4:{name:"variable.other.bibtex"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.string-constant.end.bibtex"}},name:"meta.string-constant.parenthesis.bibtex",patterns:[{include:"#field_value"}]},{begin:"((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\{)\\s*([^\\s,}]*)",beginCaptures:{1:{name:"keyword.other.entry-type.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.entry.begin.bibtex"},4:{name:"entity.name.type.entry-key.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.entry.end.bibtex"}},name:"meta.entry.braces.bibtex",patterns:[{begin:"([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)",beginCaptures:{1:{name:"support.function.key.bibtex"},2:{name:"punctuation.separator.key-value.bibtex"}},end:"(?=[,}])",name:"meta.key-assignment.bibtex",patterns:[{include:"#field_value"}]}]},{begin:"((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\()\\s*([^\\s,]*)",beginCaptures:{1:{name:"keyword.other.entry-type.bibtex"},2:{name:"punctuation.definition.keyword.bibtex"},3:{name:"punctuation.section.entry.begin.bibtex"},4:{name:"entity.name.type.entry-key.bibtex"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.entry.end.bibtex"}},name:"meta.entry.parenthesis.bibtex",patterns:[{begin:"([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)",beginCaptures:{1:{name:"support.function.key.bibtex"},2:{name:"punctuation.separator.key-value.bibtex"}},end:"(?=[,)])",name:"meta.key-assignment.bibtex",patterns:[{include:"#field_value"}]}]},{begin:"[^@\\n]",end:"(?=@)",name:"comment.block.bibtex"}],i={field_value:{patterns:[{include:"#string_content"},{include:"#integer"},{include:"#string_var"},{match:"#",name:"keyword.operator.bibtex"}]},integer:{captures:{1:{name:"constant.numeric.bibtex"}},match:"\\s*(\\d+)\\s*"},nested_braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.group.begin.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.group.end.bibtex"}},patterns:[{include:"#nested_braces"}]},string_content:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.bibtex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.bibtex"}},patterns:[{include:"#nested_braces"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.bibtex"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.bibtex"}},patterns:[{include:"#nested_braces"}]}]},string_var:{captures:{0:{name:"support.variable.bibtex"}},match:"[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*"}},a="text.bibtex",b={displayName:e,name:n,patterns:t,repository:i,scopeName:a};export{b as default,e as displayName,n as name,t as patterns,i as repository,a as scopeName}; diff --git a/lib/dist/grammar/bicep.mjs b/lib/dist/grammar/bicep.mjs new file mode 100644 index 0000000..24ed268 --- /dev/null +++ b/lib/dist/grammar/bicep.mjs @@ -0,0 +1 @@ +var e="Bicep",n=[".bicep"],t="bicep",a=[{include:"#expression"},{include:"#comments"}],i={"array-literal":{begin:"\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)",end:"]",name:"meta.array-literal.bicep",patterns:[{include:"#expression"},{include:"#comments"}]},"block-comment":{begin:"/\\*",end:"\\*/",name:"comment.block.bicep"},comments:{patterns:[{include:"#line-comment"},{include:"#block-comment"}]},decorator:{begin:"@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)",end:"",name:"meta.decorator.bicep",patterns:[{include:"#expression"},{include:"#comments"}]},directive:{begin:"#\\b[_a-zA-Z-0-9]+\\b",end:"$",name:"meta.directive.bicep",patterns:[{include:"#directive-variable"},{include:"#comments"}]},"directive-variable":{match:"\\b[_a-zA-Z-0-9]+\\b",name:"keyword.control.declaration.bicep"},"escape-character":{match:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",name:"constant.character.escape.bicep"},expression:{patterns:[{include:"#string-literal"},{include:"#string-verbatim"},{include:"#numeric-literal"},{include:"#named-literal"},{include:"#object-literal"},{include:"#array-literal"},{include:"#keyword"},{include:"#identifier"},{include:"#function-call"},{include:"#decorator"},{include:"#lambda-start"},{include:"#directive"}]},"function-call":{begin:"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(",beginCaptures:{1:{name:"entity.name.function.bicep"}},end:"\\)",name:"meta.function-call.bicep",patterns:[{include:"#expression"},{include:"#comments"}]},identifier:{match:"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()",name:"variable.other.readwrite.bicep"},keyword:{match:"\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|extends|func|assert|provider)\\b",name:"keyword.control.declaration.bicep"},"lambda-start":{begin:"(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>)",beginCaptures:{1:{name:"meta.undefined.bicep",patterns:[{include:"#identifier"},{include:"#comments"}]}},end:"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>",name:"meta.lambda-start.bicep"},"line-comment":{match:"//.*(?=$)",name:"comment.line.double-slash.bicep"},"named-literal":{match:"\\b(true|false|null)\\b",name:"constant.language.bicep"},"numeric-literal":{match:"[0-9]+",name:"constant.numeric.bicep"},"object-literal":{begin:"{",end:"}",name:"meta.object-literal.bicep",patterns:[{include:"#object-property-key"},{include:"#expression"},{include:"#comments"}]},"object-property-key":{match:"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)",name:"variable.other.property.bicep"},"string-literal":{begin:"'(?!'')",end:"'",name:"string.quoted.single.bicep",patterns:[{include:"#escape-character"},{include:"#string-literal-subst"}]},"string-literal-subst":{begin:"(?))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.php"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.php"}},patterns:[{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]}]},{begin:"<\\?(?i:php|=)?(?![^?]*\\?>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]},{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},end:">",endCaptures:{0:{name:"punctuation.section.embedded.end.php"}},name:"meta.embedded.line.php",patterns:[{captures:{1:{name:"source.php"},2:{name:"punctuation.section.embedded.end.php"},3:{name:"source.php"}},match:"\\G(\\s*)((\\?))(?=>)",name:"meta.special.empty-tag.php"},{begin:"\\G",contentName:"source.php",end:"(\\?)(?=>)",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},patterns:[{include:"#language"}]}]}]}},i="blade",p=[{include:"text.html.basic"}],o={balance_brackets:{patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"#balance_brackets"}]},{match:"[^()]+"}]},blade:{patterns:[{begin:"{{--",beginCaptures:{0:{name:"punctuation.definition.comment.begin.blade"}},end:"--}}",endCaptures:{0:{name:"punctuation.definition.comment.end.blade"}},name:"comment.block.blade",patterns:[{begin:"(^\\s*)(?=<\\?(?![^?]*\\?>))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.php"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.php"}},name:"invalid.illegal.php-code-in-comment.blade",patterns:[{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]}]},{begin:"<\\?(?i:php|=)?(?![^?]*\\?>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},name:"invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php",patterns:[{include:"#language"}]},{begin:"<\\?(?i:php|=)?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"}},end:">",endCaptures:{0:{name:"punctuation.section.embedded.end.php"}},name:"invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php",patterns:[{captures:{1:{name:"source.php"},2:{name:"punctuation.section.embedded.end.php"},3:{name:"source.php"}},match:"\\G(\\s*)((\\?))(?=>)",name:"meta.special.empty-tag.php"},{begin:"\\G",contentName:"source.php",end:"(\\?)(?=>)",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"source.php"}},patterns:[{include:"#language"}]}]}]},{begin:"(?)",name:"comment.line.double-slash.php"}]},{begin:"(^\\s+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.number-sign.php"}]}]},constants:{patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",name:"constant.language.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n|PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n|BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n|INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n|URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n|EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n|VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n|PRODUCTTYPE|PLATFORM)\n|LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b",name:"support.constant.core.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n|NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b",name:"support.constant.std.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n|ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n|NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n|UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n|PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n|ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n|CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n|READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n|STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n|SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n|NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n|CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n|CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n|TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n|TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n|TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n|OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n|DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n|ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n|BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n|TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n|SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n|NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n|FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n|CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n|OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n|PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n|CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n|FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n|MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n|INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n|(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n|CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n|PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n|OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n|MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n|SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n|SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n|SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n|STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n|HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n|COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n|TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n|PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n|POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n|FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n|FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n|FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n|AUTOREFERER)\n|PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n|E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n|BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n|SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n|SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n|OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n|UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n|FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n|CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n|WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n|FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n|LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n|VERSION_NOW\n|FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n|AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n|INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n|SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n|SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n|EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n|VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n|FORCE_ARRAY\n|FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n|IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n|COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b",name:"support.constant.ext.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n|BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n|SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n|CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n|CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n|INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n|OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n|DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n|PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n|END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n|FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n|ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b",name:"support.constant.parser-token.php"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"constant.other.php"}]},"function-call":{patterns:[{begin:"(?xi)\n(\n\\\\?\\b\n[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\n(?:\\\\[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)+\n)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.name.function.php"}]},2:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#language"}]},{begin:"(?i)(\\\\)?\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#namespace"}]},2:{patterns:[{include:"#support"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.name.function.php"}]},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#language"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"}]},"function-parameters":{patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{begin:"(?xi)\n(array)\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\s*(=)\\s*(array)\\s*(\\()",beginCaptures:{1:{name:"storage.type.php"},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"keyword.operator.assignment.php"},6:{name:"support.function.construct.php"},7:{name:"punctuation.definition.array.begin.bracket.round.php"}},contentName:"meta.array.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.function.parameter.array.php",patterns:[{include:"#comments"},{include:"#strings"},{include:"#numbers"}]},{captures:{1:{name:"storage.type.php"},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"keyword.operator.assignment.php"},6:{name:"constant.language.php"},7:{name:"punctuation.section.array.begin.php"},8:{patterns:[{include:"#parameter-default-types"}]},9:{name:"punctuation.section.array.end.php"},10:{name:"invalid.illegal.non-null-typehinted.php"}},match:"(?xi)\n(array|callable)\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n(?:\n\\s*(=)\\s*\n(?:\n(null)\n|\n(\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])\n|((?:\\S*?\\(\\))|(?:\\S*?))\n)\n)?\n\\s*(?=,|\\)|/[/*]|\\#|$)",name:"meta.function.parameter.array.php"},{begin:"(?xi)\n(\\\\?(?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)*)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\s+((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{1:{name:"support.other.namespace.php",patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"storage.type.php"},{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},2:{name:"storage.type.php"},3:{name:"variable.other.php"},4:{name:"storage.modifier.reference.php"},5:{name:"keyword.operator.variadic.php"},6:{name:"punctuation.definition.variable.php"}},end:"(?=,|\\)|/[/*]|\\#)",name:"meta.function.parameter.typehinted.php",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.php"}},end:"(?=,|\\)|/[/*]|\\#)",patterns:[{include:"#language"}]}]},{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"keyword.operator.variadic.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\s*(?=,|\\)|/[/*]|\\#|$)",name:"meta.function.parameter.no-default.php"},{begin:"(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\s*(=)\\s*\n(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))?",beginCaptures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"keyword.operator.variadic.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"keyword.operator.assignment.php"},6:{name:"punctuation.section.array.begin.php"},7:{patterns:[{include:"#parameter-default-types"}]},8:{name:"punctuation.section.array.end.php"}},end:"(?=,|\\)|/[/*]|\\#)",name:"meta.function.parameter.default.php",patterns:[{include:"#parameter-default-types"}]}]},heredoc:{patterns:[{begin:'(?i)(?=<<<\\s*("?)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(\\1)\\s*$)',end:"(?!\\G)",name:"string.unquoted.heredoc.php",patterns:[{include:"#heredoc_interior"}]},{begin:"(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",end:"(?!\\G)",name:"string.unquoted.nowdoc.php",patterns:[{include:"#nowdoc_interior"}]}]},heredoc_interior:{patterns:[{begin:'(<<<)\\s*("?)(HTML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.html",patterns:[{include:"#interpolation"},{include:"text.html.basic"}]},{begin:'(<<<)\\s*("?)(XML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.xml",patterns:[{include:"#interpolation"},{include:"text.xml"}]},{begin:'(<<<)\\s*("?)(SQL)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.sql",patterns:[{include:"#interpolation"},{include:"source.sql"}]},{begin:'(<<<)\\s*("?)(JAVASCRIPT|JS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.js",patterns:[{include:"#interpolation"},{include:"source.js"}]},{begin:'(<<<)\\s*("?)(JSON)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.json",patterns:[{include:"#interpolation"},{include:"source.json"}]},{begin:'(<<<)\\s*("?)(CSS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.css",patterns:[{include:"#interpolation"},{include:"source.css"}]},{begin:'(<<<)\\s*("?)(REGEXP?)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.heredoc.php",end:"^(\\3)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"},{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:'(?i)(<<<)\\s*("?)([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)(\\2)(\\s*)',beginCaptures:{1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^(\\3)\\b",endCaptures:{1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"}]}]},instantiation:{begin:"(?i)(new)\\s+",beginCaptures:{1:{name:"keyword.other.new.php"}},end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",patterns:[{match:"(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{ff}])",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]},interpolation:{patterns:[{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.php"},{match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.character.escape.hex.php"},{match:"\\\\u{[0-9A-Fa-f]+}",name:"constant.character.escape.unicode.php"},{match:'\\\\[nrtvef$"\\\\]',name:"constant.character.escape.php"},{begin:"{(?=\\$.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{include:"#variable-name"}]},"invoke-call":{captures:{1:{name:"punctuation.definition.variable.php"},2:{name:"variable.other.php"}},match:"(?i)(\\$+)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},language:{patterns:[{include:"#comments"},{begin:"(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(extends)?\\s*",beginCaptures:{1:{name:"storage.type.interface.php"},2:{name:"entity.name.type.interface.php"},3:{name:"storage.modifier.extends.php"}},end:"(?i)((?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\\s*(?:(?={)|$)",endCaptures:{1:{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"},{match:",",name:"punctuation.separator.classes.php"}]},2:{name:"entity.other.inherited-class.php"}},name:"meta.interface.php",patterns:[{include:"#namespace"}]},{begin:"(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{1:{name:"storage.type.trait.php"},2:{name:"entity.name.type.trait.php"}},end:"(?={)",name:"meta.trait.php",patterns:[{include:"#comments"}]},{captures:{1:{name:"keyword.other.namespace.php"},2:{name:"entity.name.type.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{ff}\\\\]+)(?=\\s*;)",name:"meta.namespace.php"},{begin:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",beginCaptures:{1:{name:"keyword.other.namespace.php"}},end:"(?<=})|(?=\\?>)",name:"meta.namespace.php",patterns:[{include:"#comments"},{captures:{0:{patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)[a-z0-9_\\x{7f}-\\x{ff}\\\\]+",name:"entity.name.type.namespace.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.namespace.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.namespace.end.bracket.curly.php"}},patterns:[{include:"#language"}]},{match:"[^\\s]+",name:"invalid.illegal.identifier.php"}]},{match:"\\s+(?=use\\b)"},{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.other.use.php"}},end:"(?<=})|(?=;)",name:"meta.use.php",patterns:[{match:"\\b(const|function)\\b",name:"storage.type.${1:/downcase}.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.use.begin.bracket.curly.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.use.end.bracket.curly.php"}},patterns:[{include:"#scope-resolution"},{captures:{1:{name:"keyword.other.use-as.php"},2:{name:"storage.modifier.php"},3:{name:"entity.other.alias.php"}},match:"(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b"},{captures:{1:{name:"keyword.other.use-as.php"},2:{patterns:[{match:"^(?:final|abstract|public|private|protected|static)$",name:"storage.modifier.php"},{match:".+",name:"entity.other.alias.php"}]}},match:"(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b"},{captures:{1:{name:"keyword.other.use-insteadof.php"},2:{name:"support.class.php"}},match:"(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"},{match:";",name:"punctuation.terminator.expression.php"},{include:"#use-inner"}]},{include:"#use-inner"}]},{begin:"(?i)^\\s*(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{1:{name:"storage.modifier.${1:/downcase}.php"},2:{name:"storage.type.class.php"},3:{name:"entity.name.type.class.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.class.end.bracket.curly.php"}},name:"meta.class.php",patterns:[{include:"#comments"},{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},contentName:"meta.other.inherited-class.php",end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"}]},{begin:"(?i)(implements)\\s+",beginCaptures:{1:{name:"storage.modifier.implements.php"}},end:"(?i)(?=[;{])",patterns:[{include:"#comments"},{begin:"(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+)",contentName:"meta.other.inherited-class.php",end:"(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\\\s]))\\s*)",patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"}]}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.class.begin.bracket.curly.php"}},contentName:"meta.class.body.php",end:"(?=}|\\?>)",patterns:[{include:"#language"}]}]},{include:"#switch_statement"},{captures:{1:{name:"keyword.control.${1:/downcase}.php"}},match:"(?x)\n\\s*\n\\b(\nbreak|case|continue|declare|default|die|do|\nelse(if)?|end(declare|for(each)?|if|switch|while)|exit|\nfor(each)?|if|return|switch|use|while|yield\n)\\b"},{begin:"(?i)\\b((?:require|include)(?:_once)?)\\s+",beginCaptures:{1:{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$|\\?>)",name:"meta.include.php",patterns:[{include:"#language"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.exception.catch.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{include:"#namespace"},{captures:{1:{name:"support.class.exception.php"},2:{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"support.class.exception.php"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},3:{name:"variable.other.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)*)\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\b(function)\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.function.php"}},end:"(?={)",name:"meta.function.closure.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.function.use.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",name:"meta.function.closure.use.php"}]}]},{begin:"(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n(__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|\nclone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n|([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)\n\\s*(\\()",beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected|static",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.magic.php"},4:{name:"entity.name.function.php"},5:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(\\))(?:\\s*(:)\\s*([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))?",endCaptures:{1:{name:"punctuation.definition.parameters.end.bracket.round.php"},2:{name:"keyword.operator.return-value.php"},3:{name:"storage.type.php"}},name:"meta.function.php",patterns:[{include:"#function-parameters"}]},{include:"#invoke-call"},{include:"#scope-resolution"},{include:"#variables"},{include:"#strings"},{captures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"},3:{name:"punctuation.definition.array.end.bracket.round.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#language"}]},{captures:{1:{name:"punctuation.definition.storage-type.begin.bracket.round.php"},2:{name:"storage.type.php"},3:{name:"punctuation.definition.storage-type.end.bracket.round.php"}},match:"(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))"},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\b",name:"storage.type.php"},{match:"(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{match:":",name:"punctuation.terminator.statement.php"},{include:"#heredoc"},{include:"#numbers"},{match:"(?i)\\bclone\\b",name:"keyword.other.clone.php"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{captures:{1:{name:"keyword.operator.assignment.php"},2:{name:"storage.modifier.reference.php"},3:{name:"storage.modifier.reference.php"}},match:"(?i)(\\=)(&)|(&)(?=[$a-z_])"},{match:"@",name:"keyword.operator.error-control.php"},{match:"===|==|!==|!=|<>",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=",name:"keyword.operator.assignment.php"},{match:"<=>|<=|>=|<|>",name:"keyword.operator.comparison.php"},{match:"\\-\\-|\\+\\+",name:"keyword.operator.increment-decrement.php"},{match:"\\-|\\+|\\*|/|%",name:"keyword.operator.arithmetic.php"},{match:"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",name:"keyword.operator.logical.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{begin:"(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",beginCaptures:{1:{name:"keyword.operator.type.php"}},end:"(?=[^\\\\$a-z0-9_\\x{7f}-\\x{ff}])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{include:"#instantiation"},{captures:{1:{name:"keyword.control.goto.php"},2:{name:"support.other.php"}},match:"(?i)(goto)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"},{captures:{1:{name:"entity.name.goto-label.php"}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*:(?!:)"},{include:"#string-backtick"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.php"}},patterns:[{include:"#language"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"#language"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.php"}},patterns:[{include:"#language"}]},{include:"#constants"},{match:",",name:"punctuation.separator.delimiter.php"}]},namespace:{begin:"(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(\\\\)(?=.*?[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",beginCaptures:{1:{name:"variable.language.namespace.php"},2:{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}]*[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",name:"support.other.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},nowdoc_interior:{patterns:[{begin:"(<<<)\\s*'(HTML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.html",patterns:[{include:"text.html.basic"}]},{begin:"(<<<)\\s*'(XML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.xml",patterns:[{include:"text.xml"}]},{begin:"(<<<)\\s*'(SQL)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.sql",patterns:[{include:"source.sql"}]},{begin:"(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.js",patterns:[{include:"source.js"}]},{begin:"(<<<)\\s*'(JSON)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.json",patterns:[{include:"source.json"}]},{begin:"(<<<)\\s*'(CSS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"(<<<)\\s*'(REGEXP?)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.nowdoc.php",end:"^(\\2)\\b",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)'(\\s*)",beginCaptures:{1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^(\\2)\\b",endCaptures:{1:{name:"keyword.operator.nowdoc.php"}}}]},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+",name:"constant.numeric.hex.php"},{match:"0[bB][01]+",name:"constant.numeric.binary.php"},{match:"0[0-7]+",name:"constant.numeric.octal.php"},{captures:{1:{name:"punctuation.separator.decimal.period.php"},2:{name:"punctuation.separator.decimal.period.php"}},match:"(?x)\n(?:\n[0-9]*(\\.)[0-9]+(?:[eE][+-]?[0-9]+)?|\n[0-9]+(\\.)[0-9]*(?:[eE][+-]?[0-9]+)?|\n[0-9]+[eE][+-]?[0-9]+\n)",name:"constant.numeric.decimal.php"},{match:"0|[1-9][0-9]*",name:"constant.numeric.decimal.php"}]},object:{patterns:[{begin:"(->)(\\$?{)",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{begin:"(?i)(->)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.php",patterns:[{include:"#language"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.property.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)(->)((\\$+)?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#string-backtick"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{match:"&(?=\\s*\\$)",name:"storage.modifier.reference.php"},{begin:"(array)\\s*(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#parameter-default-types"}]},{include:"#instantiation"},{begin:"(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+(::)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)",end:"(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?",endCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},php_doc:{patterns:[{match:"^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"},3:{name:"storage.modifier.php"},4:{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{captures:{1:{name:"keyword.other.phpdoc.php"},2:{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{begin:"(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{ff}\\\\]|\\()",beginCaptures:{1:{name:"keyword.other.phpdoc.php"}},contentName:"meta.other.type.phpdoc.php",end:"(?=\\s|\\*/)",patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"}]},{match:"(?x)\n@\n(\napi|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\nlicense|link|method|property(-(read|write))?|package|param|return|see|since|source|\nstatic|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b",name:"keyword.other.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"}},match:"{(@(link|inherit[Dd]oc)).+?}",name:"meta.tag.inline.phpdoc.php"}]},php_doc_types:{captures:{0:{patterns:[{match:"(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self)\\b",name:"keyword.other.type.php"},{include:"#class-name"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]}},match:"(?i)[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*(\\|[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)*"},php_doc_types_array_multiple:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.type.begin.bracket.round.phpdoc.php"}},end:"(\\))(\\[\\])|(?=\\*/)",endCaptures:{1:{name:"punctuation.definition.type.end.bracket.round.phpdoc.php"},2:{name:"keyword.other.array.phpdoc.php"}},patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},php_doc_types_array_single:{captures:{1:{patterns:[{include:"#php_doc_types"}]},2:{name:"keyword.other.array.phpdoc.php"}},match:"(?i)([a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)(\\[\\])"},"regex-double-quoted":{begin:'"/(?=(\\\\.|[^"/])++/[imsxeADSUXu]*")',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'(/)([imsxeADSUXu]*)(")',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{include:"#single_quote_regex_escape"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php"},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"scope-resolution":{patterns:[{captures:{1:{patterns:[{match:"\\b(self|static|parent)\\b",name:"storage.type.php"},{match:"\\w+",name:"entity.name.class.php"},{include:"#class-name"},{include:"#variable-name"}]}},match:"(?i)\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*::)"},{begin:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.static.php",patterns:[{include:"#language"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"keyword.other.class.php"}},match:"(?i)(::)\\s*(class)\\b"},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.class.php"},3:{name:"punctuation.definition.variable.php"},4:{name:"constant.other.class.php"}},match:"(?xi)\n(::)\\s*\n(?:\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n|\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n)?"}]},single_quote_regex_escape:{match:"\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",name:"constant.character.escape.php"},"sql-string-double-quoted":{begin:'"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(#)(\\\\"|[^"])*(?="|$)',name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(--)(\\\\"|[^"])*(?="|$)',name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{match:"'(?=((\\\\')|[^'\"])*(\"|$))",name:"string.quoted.single.unclosed.sql"},{match:'`(?=((\\\\`)|[^`"])*("|$))',name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation"}]},{include:"#interpolation"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(#)(\\\\'|[^'])*(?='|$)",name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(--)(\\\\'|[^'])*(?='|$)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{match:'"(?=((\\\\")|[^"\'])*(\'|$))',name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-backtick":{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.interpolated.php",patterns:[{match:"\\\\.",name:"constant.character.escape.php"},{include:"#interpolation"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:"(?xi)\n\\b\napc_(\nstore|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\nexists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b",name:"support.function.apc.php"},{match:"(?xi)\\b\n(\nshuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\npos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\narray(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n(diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\npop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\nreduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b",name:"support.function.array.php"},{match:"(?xi)\\b\n(\nshow_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\ntime_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\nphp_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b",name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bblenc_encrypt\\b",name:"support.function.blenc.php"},{match:"(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",name:"support.function.bz2.php"},{match:"(?xi)\\b\n(\n(French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\njdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b",name:"support.function.calendar.php"},{match:"(?xi)\\b\n(\nclass_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\nget_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b",name:"support.function.classobj.php"},{match:"(?xi)\\b\n(\ncom_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\nvariant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\npow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b",name:"support.function.com.php"},{begin:"(?i)\\b(isset|unset|eval|empty|list)\\b",name:"support.function.construct.php"},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:"(?xi)\\b\ncurl_(\nshare_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\nerrno|error|exec|version|file_create|reset|getinfo|\nmulti_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b",name:"support.function.curl.php"},{match:"(?xi)\\b\n(\nstrtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\ntimezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\ndate(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\nisodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\nparse(_from_format)?|format|add|get_last_errors|modify))?|\nlocaltime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b",name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",name:"support.function.dir.php"},{match:"(?xi)\\b\neio_(\nsync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\nseek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\nevent_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\nread(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b",name:"support.function.eio.php"},{match:"(?xi)\\b\nenchant_(\ndict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\nbroker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b",name:"support.function.enchant.php"},{match:"(?i)\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\b",name:"support.function.ereg.php"},{match:"(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:"(?xi)\\b\nfann_(\n(duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\nset_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\ncascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\noutput_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n(max|min)_(cand|out)_epochs)|\ncallback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\nquickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\nactivation_(function|steepness)(_(hidden|layer|output))?|\nrprop_((decrease|increase)_factor|delta_(max|min|zero)))|\nsave(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\ncreate_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\ntest(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\nprint_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\nget_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\nnetwork_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\ncascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\nweight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\ntotal_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\nquickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\nrprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b",name:"support.function.fann.php"},{match:"(?xi)\\b\n(\nsymlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\nis_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\ndirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\nfclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\nf(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\nrename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b",name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\bfastcgi_finish_request\\b",name:"support.function.fpm.php"},{match:"(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:"(?xi)\\b\ngmp_(\nscan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\nintval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\nprob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b",name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",name:"support.function.hash.php"},{match:"(?xi)\\b\n(\nhttp_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\nnegotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\ninflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\nparse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\nget(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\nob_(etag|deflate|inflate)handler\n)\\b",name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:"(?xi)\\b\n(\niptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\nimage(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\nconvolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\ncolor(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\ncrop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\ntypes|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n_type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\npalette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\nfilled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\nantialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\ngrab(screen|window)|xbm)\n)\\b",name:"support.function.image.php"},{match:"(?xi)\\b\n(\nsys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\nini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\nphp_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\nassert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\nget_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\nmagic_quotes_(gpc|runtime)|required_files|resources)|\nget(env|lastmod|rusage|my(inode|[gup]id))|\nmemory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b",name:"support.function.info.php"},{match:"(?xi)\\b\nibase_(\nset_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\ncommit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\nexecute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\nadd_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\nblob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b",name:"support.function.interbase.php"},{match:"(?xi)\\b\n(\nnormalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\nnumfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\nget_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\ncollator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\nget_(strength|sort_key|error_(code|message)|locale|attribute))|\ntransliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\nintl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\ndatefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\nget_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\nlocale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\nget_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\nresourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\ngrapheme_(str(i?str|r?i?pos|len)|substr|extract)|\nmsgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b",name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",name:"support.function.json.php"},{match:"(?xi)\\b\nldap_(\nstart|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\nconnect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\ndn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\nfree_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\nmod_(add|del|replace)\n)\\b",name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:"(?xi)\\b\n(\n(a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\npi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\nmt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b",name:"support.function.math.php"},{match:"(?xi)\\b\nmb_(\nstr(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\nsubstitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\nconvert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\ndetect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\nereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\nlist_encodings|language|regex_(set_options|encoding)|get_info\n)\\b",name:"support.function.mbstring.php"},{match:"(?xi)\\b\n(\nmcrypt_(\ncfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\nenc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\nget_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\nget_(cipher_name|(block|iv|key)_size)|\nmodule_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\nget_(supported_key_sizes|algo_(block|key)_size)))|\nmdecrypt_generic\n)\\b",name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",name:"support.function.mongo.php"},{match:"(?xi)\\b\nmysql_(\nstat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\nthread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\nerrno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\nfree_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\nget_(client|host|proto|server)_info\n)\\b",name:"support.function.mysql.php"},{match:"(?xi)\\b\nmysqli_(\nssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\nstmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\nattr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\nselect_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\nclient_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\ndump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\nembedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\nfetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\nrelease_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\nget_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\nmaster_query|bind_(param|result)|begin_transaction\n)\\b",name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:"(?xi)\\b\n(\nsyslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\nheaders_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\nopenlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\nget(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b",name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",name:"support.function.nsapi.php"},{match:"(?xi)\\b\n(\noci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\ncolumn(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\ncloselob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\nfree(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\nresult|bindbyname)|\noci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\nnum_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\ninternal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\nfield_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\nfree_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b",name:"support.function.oci8.php"},{match:"(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",name:"support.function.opcache.php"},{match:"(?xi)\\b\nopenssl_(\nsign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\ncipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\npkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\npkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\nget_((cipher|md)_methods|cert_locations|(public|private)key)|\nx509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b",name:"support.function.openssl.php"},{match:"(?xi)\\b\n(\noutput_(add_rewrite_var|reset_rewrite_vars)|flush|\nob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\nget_(status|contents|clean|flush|length|level))\n)\\b",name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:"(?xi)\\b\npcntl_(\nstrerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\nw(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b",name:"support.function.pcntl.php"},{match:"(?xi)\\b\npg_(\nsocket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\nnum_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\nclient_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\nunescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\nescape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\nfield_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\nfetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\nlo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b",name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:"(?xi)\\b\nftp_(\nssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\ndelete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b",name:"support.function.php_ftp.php"},{match:"(?xi)\\b\nimap_(\n(create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\nnum_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\nfetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\nrfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\nmsgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b",name:"support.function.php_imap.php"},{match:"(?xi)\\b\nmssql_(\nselect_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\nfield_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\nrows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b",name:"support.function.php_mssql.php"},{match:"(?xi)\\b\nodbc_(\nstatistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\ncursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\nprepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\nfetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b",name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:"(?xi)\\b\nposix_(\nstrerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\nget(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\nget_last_error|mknod|mkfifo\n)\\b",name:"support.function.posix.php"},{match:"(?i)\\bset(thread|proc)title\\b",name:"support.function.proctitle.php"},{match:"(?xi)\\b\npspell_(\nstore_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\nconfig_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b",name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",name:"support.function.rrd.php"},{match:"(?xi)\\b\n(\nshm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\nmsg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b",name:"support.function.sem.php"},{match:"(?xi)\\b\nsession_(\nstatus|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\nis_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\nregenerate_id|get_cookie_params|module_name\n)\\b",name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:"(?xi)\\b\n(\nsnmp(walk(oid)?|realwalk|get(next)?|set)|\nsnmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\nget_(valueretrieval|quick_print))|\nsnmp[23]_(set|walk|real_walk|get(next)?)\n)\\b",name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:"(?xi)\\b\nsocket_(\nshutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\ncreate(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\nread|get(peer|sock)name|get_option\n)\\b",name:"support.function.sockets.php"},{match:"(?xi)\\b\nsqlite_(\nsingle_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\ncreate_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\nescape_string|error_string|exec|valid|key|query|field_name|factory|\nfetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\nlast_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b",name:"support.function.sqlite.php"},{match:"(?xi)\\b\nsqlsrv_(\nsend_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\nclient_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\nfree_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b",name:"support.function.sqlsrv.php"},{match:"(?xi)\\b\nstats_(\nharmonic_mean|covariance|standard_deviation|skew|\ncdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\nlogistic|laplace|gamma|binomial|beta)|\nstat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\ndens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\nweibull|logistic|laplace|gamma|beta)|\nden_uniform|variance|kurtosis|absolute_deviation|\nrand_(setall|phrase_to_seeds|ranf|get_seeds|\ngen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\ni(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b",name:"support.function.stats.php"},{match:"(?xi)\\b\n(\nset_socket_blocking|\nstream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\nset_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\ncontext_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\nencoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\nresolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\nbucket_(new|prepend|append|make_writeable)\n)\n)\\b",name:"support.function.streamsfuncs.php"},{match:"(?xi)\\b\n(\nmoney_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\nstr(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\nstr_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\nstrip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\nhtml(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\nchop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\nuc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\nquotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b",name:"support.function.string.php"},{match:"(?xi)\\b\nsybase_(\nset_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\nunbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\naffected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b",name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:"(?xi)\\b\n(\ntidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n(access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\nget_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\nob_tidyhandler\n)\\b",name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:"(?xi)\\b\ntrader_(\nstoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\nht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\ncdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\nhikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\ncounterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\nidentical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\nupsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\npiercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\nladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\ngravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\nbelthold|breakaway)|\nceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\nplus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\nlinearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\naroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\nminmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b",name:"support.function.trader.php"},{match:"(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",name:"support.function.uopz.php"},{match:"(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:"(?xi)\\b\n(\nstrval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\nis_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\nunset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b",name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_)?(disable|enable)\\b",name:"support.function.xhprof.php"},{match:"(?xi)\n\\b\n(\nutf8_(decode|encode)|\nxml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n(character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\nparse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\nget_(current_((column|line)_number|byte_index)|error_code))\n)\\b",name:"support.function.xml.php"},{match:"(?xi)\\b\nxmlrpc_(\nserver_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\nis_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b",name:"support.function.xmlrpc.php"},{match:"(?xi)\\b\nxmlwriter_(\n(end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n(start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\nfull_end_element|flush|\n)\\b",name:"support.function.xmlwriter.php"},{match:"(?xi)\\b\n(\nzlib_(decode|encode|get_coding_type)|readgzfile|\ngz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\nwrite|rewind|read|getc|getss?)\n)\\b",name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},switch_statement:{patterns:[{match:"\\s+(?=switch\\b)"},{begin:"\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",beginCaptures:{0:{name:"keyword.control.switch.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.section.switch-block.end.bracket.curly.php"}},name:"meta.switch-statement.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.switch-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.switch-expression.end.bracket.round.php"}},patterns:[{include:"#language"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.section.switch-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{include:"#language"}]}]}]},"use-inner":{patterns:[{include:"#comments"},{begin:"(?i)\\b(as)\\s+",beginCaptures:{1:{name:"keyword.other.use-as.php"}},end:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",endCaptures:{0:{name:"entity.other.alias.php"}}},{include:"#class-name"},{match:",",name:"punctuation.separator.delimiter.php"}]},var_basic:{patterns:[{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(?i)(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\b",name:"variable.other.php"}]},var_global:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},var_language:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)this\\b",name:"variable.language.this.php"},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.class.php"},5:{name:"variable.other.property.php"},6:{name:"punctuation.section.array.begin.php"},7:{name:"constant.numeric.index.php"},8:{name:"variable.other.index.php"},9:{name:"punctuation.definition.variable.php"},10:{name:"string.unquoted.index.php"},11:{name:"punctuation.section.array.end.php"}},match:"(?xi)\n((\\$)(?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n(->)(\\g)\n|\n(\\[)(?:(\\d+)|((\\$)\\g)|([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))(\\])\n)?"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?i)((\\${)(?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(}))"}]},variables:{patterns:[{include:"#var_language"},{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"\\${(?=.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]}]}},s="text.html.php.blade",c={displayName:e,fileTypes:n,foldingStartMarker:t,foldingStopMarker:a,injections:r,name:i,patterns:p,repository:o,scopeName:s};export{c as default,e as displayName,n as fileTypes,t as foldingStartMarker,a as foldingStopMarker,r as injections,i as name,p as patterns,o as repository,s as scopeName}; diff --git a/lib/dist/grammar/c.mjs b/lib/dist/grammar/c.mjs new file mode 100644 index 0000000..7d3e53b --- /dev/null +++ b/lib/dist/grammar/c.mjs @@ -0,0 +1 @@ +var e="C",n="c",t=[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#predefined_macros"},{include:"#comments"},{include:"#switch_statement"},{include:"#anon_pattern_1"},{include:"#storage_types"},{include:"#anon_pattern_2"},{include:"#anon_pattern_3"},{include:"#anon_pattern_4"},{include:"#anon_pattern_5"},{include:"#anon_pattern_6"},{include:"#anon_pattern_7"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#anon_pattern_range_1"},{include:"#anon_pattern_range_2"},{include:"#anon_pattern_range_3"},{include:"#pragma-mark"},{include:"#anon_pattern_range_4"},{include:"#anon_pattern_range_5"},{include:"#anon_pattern_range_6"},{include:"#anon_pattern_8"},{include:"#anon_pattern_9"},{include:"#anon_pattern_10"},{include:"#anon_pattern_11"},{include:"#anon_pattern_12"},{include:"#anon_pattern_13"},{include:"#block"},{include:"#parens"},{include:"#anon_pattern_range_7"},{include:"#line_continuation_character"},{include:"#anon_pattern_range_8"},{include:"#anon_pattern_range_9"},{include:"#anon_pattern_14"},{include:"#anon_pattern_15"}],a={"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.object.c"},2:{name:"punctuation.separator.dot-access.c"},3:{name:"punctuation.separator.pointer-access.c"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.c"},{match:"->",name:"punctuation.separator.pointer-access.c"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.c"},{match:".+",name:"everything.else.c"}]},5:{name:"entity.name.function.member.c"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.c"}},name:"meta.function-call.member.c",patterns:[{include:"#function-call-innards"}]},anon_pattern_1:{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.c"},anon_pattern_10:{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.c"},anon_pattern_11:{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.c"},anon_pattern_12:{match:"(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",name:"support.type.mac-classic.c"},anon_pattern_13:{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.c"},anon_pattern_14:{match:";",name:"punctuation.terminator.statement.c"},anon_pattern_15:{match:",",name:"punctuation.separator.delimiter.c"},anon_pattern_2:{match:"typedef",name:"keyword.other.typedef.c"},anon_pattern_3:{match:"\\b(const|extern|register|restrict|static|volatile|inline)\\b",name:"storage.modifier.c"},anon_pattern_4:{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.c"},anon_pattern_5:{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.c"},anon_pattern_6:{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.c"},anon_pattern_7:{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.c"},anon_pattern_8:{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.c"},anon_pattern_9:{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.c"},anon_pattern_range_1:{begin:"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},anon_pattern_range_4:{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.c"},2:{name:"punctuation.definition.directive.c"}},end:"(?=(?://|/\\*))|(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"variable.other.c"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.c"}},name:"meta.initialization.c",patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.c"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.c"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$self"}]},c_conditional_context:{patterns:[{include:"$self"},{include:"#block_innards"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\(\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.c",patterns:[{include:"#function-call-innards"}]},case_statement:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\s*)(\\/\\/[!\\/]+)",beginCaptures:{1:{name:"punctuation.definition.comment.documentation.c"}},end:"(?<=\\n)(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.italic.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.bold.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.inline.raw.string.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},3:{name:"variable.parameter.c"}},match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},{captures:{1:{name:"punctuation.definition.comment.begin.documentation.c"},2:{patterns:[{match:'(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.italic.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.bold.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.inline.raw.string.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},3:{name:"variable.parameter.c"}},match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},3:{name:"punctuation.definition.comment.end.documentation.c"}},match:"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",name:"comment.block.documentation.c"},{begin:"((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",beginCaptures:{1:{name:"punctuation.definition.comment.begin.documentation.c"}},end:"([!*]*\\*\\/)",endCaptures:{1:{name:"punctuation.definition.comment.end.documentation.c"}},name:"comment.block.documentation.c",patterns:[{match:'(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.italic.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.bold.doxygen.c"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{name:"markup.inline.raw.string.c"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{captures:{1:{name:"storage.type.class.doxygen.c"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},3:{name:"variable.parameter.c"}},match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},{captures:{1:{name:"meta.toc-list.banner.block.c"}},match:"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?",name:"comment.block.banner.c"},{begin:"(\\/\\*)",beginCaptures:{1:{name:"punctuation.definition.comment.begin.c"}},end:"(\\*\\/)",endCaptures:{1:{name:"punctuation.definition.comment.end.c"}},name:"comment.block.c"},{captures:{1:{name:"meta.toc-list.banner.line.c"}},match:"^\\/\\/ =(\\s*.*?)\\s*=$\\n?",name:"comment.line.banner.c"},{begin:"((?:^[ \\t]+)?)(?=\\/\\/)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.c"}},end:"(?!\\G)",patterns:[{begin:"(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.c"}},end:"(?=\\n)",name:"comment.line.double-slash.c",patterns:[{include:"#line_continuation_character"}]}]}]},{include:"#block_comment"},{include:"#line_comment"}]},{include:"#block_comment"},{include:"#line_comment"}]},default_statement:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.c"},2:{name:"punctuation.section.arguments.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.c"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.c"},2:{name:"punctuation.section.parameters.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.c"}},name:"meta.function.definition.parameters.c",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#function-innards"}]},{include:"$self"}]},inline_comment:{patterns:[{patterns:[{captures:{1:{name:"comment.block.c punctuation.definition.comment.begin.c"},2:{name:"comment.block.c"},3:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))"},{captures:{1:{name:"comment.block.c punctuation.definition.comment.begin.c"},2:{name:"comment.block.c"},3:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))"}]},{captures:{1:{name:"comment.block.c punctuation.definition.comment.begin.c"},2:{name:"comment.block.c"},3:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))"}]},line_comment:{patterns:[{begin:"\\s*+(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.c"}},end:"(?<=\\n)(?\\*|->)))"}]},5:{name:"variable.other.member.c"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())"},method_access:{begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{1:{name:"variable.other.object.access.c"},2:{name:"punctuation.separator.dot-access.c"},3:{name:"punctuation.separator.pointer-access.c"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{name:"variable.other.object.access.c"},2:{name:"punctuation.separator.dot-access.c"},3:{name:"punctuation.separator.pointer-access.c"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"entity.name.function.member.c"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.c"}},contentName:"meta.function-call.member.c",end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.function.member.c"}},patterns:[{include:"#function-call-innards"}]},numbers:{captures:{0:{patterns:[{begin:"(?=.)",end:"$",patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.c"},2:{name:"constant.numeric.hexadecimal.c",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric"}]},3:{name:"punctuation.separator.constant.numeric"},4:{name:"constant.numeric.hexadecimal.c"},5:{name:"constant.numeric.hexadecimal.c",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric"}]},6:{name:"punctuation.separator.constant.numeric"},8:{name:"keyword.other.unit.exponent.hexadecimal.c"},9:{name:"keyword.operator.plus.exponent.hexadecimal.c"},10:{name:"keyword.operator.minus.exponent.hexadecimal.c"},11:{name:"constant.numeric.exponent.hexadecimal.c",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric"}]},12:{name:"keyword.other.unit.suffix.floating-point.c"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.c"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.c"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.c"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.c"},{match:"&|\\||\\^|~",name:"keyword.operator.c"},{match:"=",name:"keyword.operator.assignment.c"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.c"},{begin:"(\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.c"}},end:"(:)",endCaptures:{1:{name:"keyword.operator.ternary.c"}},patterns:[{include:"#function-call-innards"},{include:"$self"}]}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},name:"meta.parens.c",patterns:[{include:"$self"}]},"parens-block":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.c"}},name:"meta.parens.block.c",patterns:[{include:"#block_innards"},{match:"(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.c"},2:{name:"punctuation.section.arguments.begin.bracket.round.c"}},end:"(\\))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"},static_assert:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.c punctuation.definition.comment.begin.c"},3:{name:"comment.block.c"},4:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},5:{name:"keyword.other.static_assert.c"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.c punctuation.definition.comment.begin.c"},8:{name:"comment.block.c"},9:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},10:{name:"punctuation.section.arguments.begin.bracket.round.static_assert.c"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.static_assert.c"}},patterns:[{begin:'(,)\\s*(?=(?:L|u8|u|U\\s*\\")?)',beginCaptures:{1:{name:"punctuation.separator.delimiter.comma.c"}},end:"(?=\\))",name:"meta.static_assert.message.c",patterns:[{include:"#string_context"}]},{include:"#evaluation_context"}]},storage_types:{patterns:[{match:"(?-mix:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)"},{include:"#comments"},{begin:"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.assembly.c"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.c punctuation.definition.comment.begin.c"},4:{name:"comment.block.c"},5:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.assembly.c"}},patterns:[{begin:'(R?)(")',beginCaptures:{1:{name:"meta.encoding.c"},2:{name:"punctuation.definition.string.begin.assembly.c"}},contentName:"meta.embedded.assembly.c",end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.assembly.c"}},name:"string.quoted.double.c",patterns:[{include:"source.asm"},{include:"source.x86"},{include:"source.x86_64"},{include:"source.arm"},{include:"#backslash_escapes"},{include:"#string_escaped_char"}]},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.assembly.inner.c"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.assembly.inner.c"}},patterns:[{include:"#evaluation_context"}]},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.c punctuation.definition.comment.begin.c"},3:{name:"comment.block.c"},4:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},5:{name:"variable.other.asm.label.c"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.c punctuation.definition.comment.begin.c"},8:{name:"comment.block.c"},9:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},match:"\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]"},{match:":",name:"punctuation.separator.delimiter.colon.assembly.c"},{include:"#comments"}]}]}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.c"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.c"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\n[#0\\- +']*\n[,;:_]?\n((-?\\d+)|\\*(-?\\d+\\$)?)?\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?\n[diouxXDOUeEfFgGaACcSspn%]",name:"constant.other.placeholder.c"},{captures:{1:{name:"invalid.illegal.placeholder.c"}},match:'(%)(?!"\\s*(PRI|SCN))'}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.c",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.single.c",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.c punctuation.definition.comment.begin.c"},3:{name:"comment.block.c"},4:{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},5:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.c"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.c"}},name:"meta.conditional.switch.c",patterns:[{include:"#evaluation_context"},{include:"#c_conditional_context"}]},switch_statement:{begin:"(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?|\\?\\?>)|(?=[;>\\[\\]=]))",name:"meta.block.switch.c",patterns:[{begin:"\\G ?",end:"((?:\\{|<%|\\?\\?<|(?=;)))",endCaptures:{1:{name:"punctuation.section.block.begin.bracket.curly.switch.c"}},name:"meta.head.switch.c",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"(\\}|%>|\\?\\?>)",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.switch.c"}},name:"meta.body.switch.c",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"},{include:"#block_innards"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s\\n]*",end:"[\\s\\n]*(?=;)",name:"meta.tail.switch.c",patterns:[{include:"$self"}]}]},vararg_ellipses:{match:"(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])\\s*",beginCaptures:{1:{name:"keyword.operator.function-result.cadence"}},end:"(?!\\G)(?=\\{|;)|$",name:"meta.function-result.cadence",patterns:[{include:"#type"}]},initializer:{begin:"(?|<|>=|<=",name:"keyword.operator.comparison.cadence"},{match:"\\?\\?",name:"keyword.operator.coalescing.cadence"},{match:"&&|\\|\\|",name:"keyword.operator.logical.cadence"},{match:"[?!]",name:"keyword.operator.type.optional.cadence"}]},"parameter-clause":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.cadence"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.cadence"}},name:"meta.parameter-clause.cadence",patterns:[{include:"#parameter-list"}]},"parameter-list":{patterns:[{captures:{1:{name:"entity.name.function.cadence"},2:{name:"variable.parameter.function.cadence"}},comment:"External parameter labels are considered part of the function name",match:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)"},{captures:{1:{name:"variable.parameter.function.cadence"},2:{name:"entity.name.function.cadence"}},comment:"If no external label is given, the name is both the external label and the internal variable name",match:"(([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*))(?=\\s*:)"},{begin:":\\s*(?!\\s)",end:"(?=[,)])",patterns:[{include:"#type"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.cadence"}]}]},type:{patterns:[{include:"#comments"},{match:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",name:"storage.type.cadence"}]},"var-let-declaration":{begin:"\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",beginCaptures:{1:{name:"storage.type.$1.cadence"},2:{name:"entity.name.type.$1.cadence"}},end:"=|<-|<-!|$",patterns:[{include:"#type"}]}},c="source.cadence",i={displayName:e,name:n,patterns:a,repository:t,scopeName:c};export{i as default,e as displayName,n as name,a as patterns,t as repository,c as scopeName}; diff --git a/lib/dist/grammar/clarity.mjs b/lib/dist/grammar/clarity.mjs new file mode 100644 index 0000000..a1335a0 --- /dev/null +++ b/lib/dist/grammar/clarity.mjs @@ -0,0 +1 @@ +var e="Clarity",n="clarity",t=[{include:"#expression"},{include:"#define-constant"},{include:"#define-data-var"},{include:"#define-map"},{include:"#define-function"},{include:"#define-fungible-token"},{include:"#define-non-fungible-token"},{include:"#define-trait"},{include:"#use-trait"}],a={"built-in-func":{begin:"(?x) (\\() \\s* (\\-|\\+|<\\=|>\\=|<|>|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\?|contract-of|default-to|element-at|element-at\\?|filter|fold|from-consensus-buff\\?|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|get-burn-block-info\\?|get-stacks-block-info\\?|get-tenure-info\\?|get-burn-block-info\\?|hash160|if|impl-trait|index-of|index-of\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-construct\\?|principal-destruct\\?|principal-of\\?|print|replace-at\\?|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\?|sqrti|string-to-int\\?|string-to-uint\\?|stx-account|stx-burn\\?|stx-get-balance|stx-transfer-memo\\?|stx-transfer\\?|to-consensus-buff\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor) \\s+",beginCaptures:{1:{name:"punctuation.built-in-function.start.clarity"},2:{name:"keyword.declaration.built-in-function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.built-in-function.end.clarity"}},name:"meta.built-in-function",patterns:[{include:"#expression"},{include:"#user-func"}]},comment:{match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $",name:"comment.line.semicolon.clarity"},"data-type":{patterns:[{include:"#comment"},{comment:"numerics",match:"\\b(uint|int)\\b",name:"entity.name.type.numeric.clarity"},{comment:"principal",match:"\\b(principal)\\b",name:"entity.name.type.principal.clarity"},{comment:"bool",match:"\\b(bool)\\b",name:"entity.name.type.bool.clarity"},{captures:{1:{name:"punctuation.string_type-def.start.clarity"},2:{name:"entity.name.type.string_type.clarity"},3:{name:"constant.numeric.string_type-len.clarity"},4:{name:"punctuation.string_type-def.end.clarity"}},match:"(?x) (\\() \\s* (?:(string-ascii|string-utf8)\\s+(\\d+)) \\s* (\\))"},{captures:{1:{name:"punctuation.buff-def.start.clarity"},2:{name:"entity.name.type.buff.clarity"},3:{name:"constant.numeric.buf-len.clarity"},4:{name:"punctuation.buff-def.end.clarity"}},match:"(?x) (\\() \\s* (buff)\\s+(\\d+)\\s* (\\))"},{begin:"(?x) (\\() \\s* (optional)\\s+",beginCaptures:{1:{name:"punctuation.optional-def.start.clarity"},2:{name:"storage.type.modifier"}},comment:"optional",end:"(\\))",endCaptures:{1:{name:"punctuation.optional-def.end.clarity"}},name:"meta.optional-def",patterns:[{include:"#data-type"}]},{begin:"(?x) (\\() \\s* (response)\\s+",beginCaptures:{1:{name:"punctuation.response-def.start.clarity"},2:{name:"storage.type.modifier"}},comment:"response",end:"(\\))",endCaptures:{1:{name:"punctuation.response-def.end.clarity"}},name:"meta.response-def",patterns:[{include:"#data-type"}]},{begin:"(?x) (\\() \\s* (list) \\s+ (\\d+) \\s+",beginCaptures:{1:{name:"punctuation.list-def.start.clarity"},2:{name:"entity.name.type.list.clarity"},3:{name:"constant.numeric.list-len.clarity"}},comment:"list",end:"(\\))",endCaptures:{1:{name:"punctuation.list-def.end.clarity"}},name:"meta.list-def",patterns:[{include:"#data-type"}]},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.tuple-def.start.clarity"}},end:"(\\})",endCaptures:{1:{name:"punctuation.tuple-def.end.clarity"}},name:"meta.tuple-def",patterns:[{match:"([a-zA-Z][\\w\\?\\!\\-]*)(?=:)",name:"entity.name.tag.tuple-data-type-key.clarity"},{include:"#data-type"}]}]},"define-constant":{begin:"(?x) (\\() \\s* (define-constant) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-constant.start.clarity"},2:{name:"keyword.declaration.define-constant.clarity"},3:{name:"entity.name.constant-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-constant.end.clarity"}},name:"meta.define-constant",patterns:[{include:"#expression"}]},"define-data-var":{begin:"(?x) (\\() \\s* (define-data-var) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-data-var.start.clarity"},2:{name:"keyword.declaration.define-data-var.clarity"},3:{name:"entity.name.data-var-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-data-var.end.clarity"}},name:"meta.define-data-var",patterns:[{include:"#data-type"},{include:"#expression"}]},"define-function":{begin:"(?x) (\\() \\s* (define-(?:public|private|read-only)) \\s+",beginCaptures:{1:{name:"punctuation.define-function.start.clarity"},2:{name:"keyword.declaration.define-function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-function.end.clarity"}},name:"meta.define-function",patterns:[{include:"#expression"},{begin:"(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s*",beginCaptures:{1:{name:"punctuation.function-signature.start.clarity"},2:{name:"entity.name.function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.function-signature.end.clarity"}},name:"meta.define-function-signature",patterns:[{begin:"(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.function-argument.start.clarity"},2:{name:"variable.parameter.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.function-argument.end.clarity"}},name:"meta.function-argument",patterns:[{include:"#data-type"}]}]},{include:"#user-func"}]},"define-fungible-token":{captures:{1:{name:"punctuation.define-fungible-token.start.clarity"},2:{name:"keyword.declaration.define-fungible-token.clarity"},3:{name:"entity.name.fungible-token-name.clarity variable.other.clarity"},4:{name:"constant.numeric.fungible-token-total-supply.clarity"},5:{name:"punctuation.define-fungible-token.end.clarity"}},match:"(?x) (\\() \\s* (define-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) (?:\\s+(u\\d+))?"},"define-map":{begin:"(?x) (\\() \\s* (define-map) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-map.start.clarity"},2:{name:"keyword.declaration.define-map.clarity"},3:{name:"entity.name.map-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-map.end.clarity"}},name:"meta.define-map",patterns:[{include:"#data-type"},{include:"#expression"}]},"define-non-fungible-token":{begin:"(?x) (\\() \\s* (define-non-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-non-fungible-token.start.clarity"},2:{name:"keyword.declaration.define-non-fungible-token.clarity"},3:{name:"entity.name.non-fungible-token-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-non-fungible-token.end.clarity"}},name:"meta.define-non-fungible-token",patterns:[{include:"#data-type"}]},"define-trait":{begin:"(?x) (\\() \\s* (define-trait) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.define-trait.start.clarity"},2:{name:"keyword.declaration.define-trait.clarity"},3:{name:"entity.name.trait-name.clarity variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-trait.end.clarity"}},name:"meta.define-trait",patterns:[{begin:"(?x) (\\() \\s*",beginCaptures:{1:{name:"punctuation.define-trait-body.start.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.define-trait-body.end.clarity"}},name:"meta.define-trait-body",patterns:[{include:"#expression"},{begin:"(?x) (\\() \\s* ([a-zA-Z][\\w\\!\\?\\-]*) \\s+",beginCaptures:{1:{name:"punctuation.trait-function.start.clarity"},2:{name:"entity.name.function.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.trait-function.end.clarity"}},name:"meta.trait-function",patterns:[{include:"#data-type"},{begin:"(?x) (\\() \\s*",beginCaptures:{1:{name:"punctuation.trait-function-args.start.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.trait-function-args.end.clarity"}},name:"meta.trait-function-args",patterns:[{include:"#data-type"}]}]}]}]},expression:{patterns:[{include:"#comment"},{include:"#keyword"},{include:"#literal"},{include:"#let-func"},{include:"#built-in-func"},{include:"#get-set-func"}]},"get-set-func":{begin:"(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s*",beginCaptures:{1:{name:"punctuation.get-set-func.start.clarity"},2:{name:"keyword.control.clarity"},3:{name:"variable.other.clarity"}},end:"(\\))",endCaptures:{1:{name:"punctuation.get-set-func.end.clarity"}},name:"meta.get-set-func",patterns:[{include:"#expression"}]},keyword:{match:"(?\\<\\!\\?\\d]+\\*",name:"meta.symbol.dynamic.clojure"},keyfn:{patterns:[{match:"(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))",name:"storage.control.clojure"},{match:"(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))",name:"keyword.control.clojure"}]},keyword:{match:"(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",name:"constant.keyword.clojure"},map:{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.map.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{1:{name:"punctuation.section.map.end.trailing.clojure"},2:{name:"punctuation.section.map.end.clojure"}},name:"meta.map.clojure",patterns:[{include:"$self"}]},metadata:{patterns:[{begin:"(\\^\\{)",beginCaptures:{1:{name:"punctuation.section.metadata.map.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{1:{name:"punctuation.section.metadata.map.end.trailing.clojure"},2:{name:"punctuation.section.metadata.map.end.clojure"}},name:"meta.metadata.map.clojure",patterns:[{include:"$self"}]},{begin:"(\\^)",end:"(\\s)",name:"meta.metadata.simple.clojure",patterns:[{include:"#keyword"},{include:"$self"}]}]},"namespace-symbol":{patterns:[{captures:{1:{name:"meta.symbol.namespace.clojure"}},match:"([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/"}]},"quoted-sexp":{begin:"(['``]\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.clojure"}},end:"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.trailing.clojure"},2:{name:"punctuation.section.expression.end.trailing.clojure"},3:{name:"punctuation.section.expression.end.clojure"}},name:"meta.quoted-expression.clojure",patterns:[{include:"$self"}]},regexp:{begin:'#"',beginCaptures:{0:{name:"punctuation.definition.regexp.begin.clojure"}},end:'"',endCaptures:{0:{name:"punctuation.definition.regexp.end.clojure"}},name:"string.regexp.clojure",patterns:[{include:"#regexp_escaped_char"}]},regexp_escaped_char:{match:"\\\\.",name:"constant.character.escape.clojure"},set:{begin:"(\\#\\{)",beginCaptures:{1:{name:"punctuation.section.set.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{1:{name:"punctuation.section.set.end.trailing.clojure"},2:{name:"punctuation.section.set.end.clojure"}},name:"meta.set.clojure",patterns:[{include:"$self"}]},sexp:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.clojure"}},end:"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.trailing.clojure"},2:{name:"punctuation.section.expression.end.trailing.clojure"},3:{name:"punctuation.section.expression.end.clojure"}},name:"meta.expression.clojure",patterns:[{begin:"(?<=\\()(ns|declare|def[\\w\\d._:+=>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",name:"entity.global.clojure"},{include:"$self"}]},{include:"#keyfn"},{include:"#constants"},{include:"#vector"},{include:"#map"},{include:"#set"},{include:"#sexp"},{captures:{1:{name:"entity.name.function.clojure"}},match:"(?<=\\()(.+?)(?=\\s|\\))",patterns:[{include:"$self"}]},{include:"$self"}]},"shebang-comment":{begin:"^(#!)",beginCaptures:{1:{name:"punctuation.definition.comment.shebang.clojure"}},end:"$",name:"comment.line.shebang.clojure"},string:{begin:'(?\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",name:"meta.symbol.clojure"}]},var:{match:"(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",name:"meta.var.clojure"},vector:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.section.vector.begin.clojure"}},end:"(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",endCaptures:{1:{name:"punctuation.section.vector.end.trailing.clojure"},2:{name:"punctuation.section.vector.end.clojure"}},name:"meta.vector.clojure",patterns:[{include:"$self"}]}},c="source.clojure",o={displayName:e,name:n,patterns:a,repository:t,scopeName:c};export{o as default,e as displayName,n as name,a as patterns,t as repository,c as scopeName}; diff --git a/lib/dist/grammar/cmake.mjs b/lib/dist/grammar/cmake.mjs new file mode 100644 index 0000000..a01287b --- /dev/null +++ b/lib/dist/grammar/cmake.mjs @@ -0,0 +1 @@ +var _="CMake",E=["cmake","CMakeLists.txt"],I="cmake",R=[{comment:"Variables That Describe the System",match:"\\b(?i:APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71)\\b",name:"constant.source.cmake"},{comment:"cmakeOperators",match:"\\b(?i:ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\\b",name:"keyword.cmake"},{comment:"Commands",match:"^\\s*\\b(?i:add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)\\b",name:"keyword.cmake"},{comment:"Variables That Change Behavior",match:"\\b(?i:BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\\b",name:"variable.source.cmake"},{match:"\\$\\{\\w+\\}",name:"storage.source.cmake"},{match:"\\$ENV\\{\\w+\\}",name:"storage.source.cmake"},{comment:"Variables that Control the Build",match:"\\b(?i:(CMAKE_)?(\\w+_POSTFIX|ARCHIVE_OUTPUT_DIRECTORY|AUTOMOC|AUTOMOC_MOC_OPTIONS|BUILD_WITH_INSTALL_RPATH|DEBUG_POSTFIX|EXE_LINKER_FLAGS|EXE_LINKER_FLAGS_\\w+|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GNUtoMS|INCLUDE_CURRENT_DIR|INCLUDE_CURRENT_DIR_IN_INTERFACE|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_PATH_FLAG|LINK_DEF_FILE_FLAG|LINK_DEPENDS_NO_SHARED|LINK_INTERFACE_LIBRARIES|LINK_LIBRARY_FILE_FLAG|LINK_LIBRARY_FLAG|MACOSX_BUNDLE|NO_BUILTIN_CHRPATH|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|RUNTIME_OUTPUT_DIRECTORY|SKIP_BUILD_RPATH|SKIP_INSTALL_RPATH|TRY_COMPILE_CONFIGURATION|USE_RELATIVE_PATHS|WIN32_EXECUTABLE)|EXECUTABLE_OUTPUT_PATH|LIBRARY_OUTPUT_PATH)\\b",name:"variable.source.cmake"},{comment:"Variables that Provide Information",match:"\\b(?i:CMAKE_(AR|ARGC|ARGV0|BINARY_DIR|BUILD_TOOL|CACHEFILE_DIR|CACHE_MAJOR_VERSION|CACHE_MINOR_VERSION|CACHE_PATCH_VERSION|CFG_INTDIR|COMMAND|CROSSCOMPILING|CTEST_COMMAND|CURRENT_BINARY_DIR|CURRENT_LIST_DIR|CURRENT_LIST_FILE|CURRENT_LIST_LINE|CURRENT_SOURCE_DIR|DL_LIBS|EDIT_COMMAND|EXECUTABLE_SUFFIX|EXTRA_GENERATOR|EXTRA_SHARED_LIBRARY_SUFFIXES|GENERATOR|HOME_DIRECTORY|IMPORT_LIBRARY_PREFIX|IMPORT_LIBRARY_SUFFIX|LINK_LIBRARY_SUFFIX|MAJOR_VERSION|MAKE_PROGRAM|MINOR_VERSION|PARENT_LIST_FILE|PATCH_VERSION|PROJECT_NAME|RANLIB|ROOT|SCRIPT_MODE_FILE|SHARED_LIBRARY_PREFIX|SHARED_LIBRARY_SUFFIX|SHARED_MODULE_PREFIX|SHARED_MODULE_SUFFIX|SIZEOF_VOID_P|SKIP_RPATH|SOURCE_DIR|STANDARD_LIBRARIES|STATIC_LIBRARY_PREFIX|STATIC_LIBRARY_SUFFIX|TWEAK_VERSION|USING_VC_FREE_TOOLS|VERBOSE_MAKEFILE|VERSION)|PROJECT_BINARY_DIR|PROJECT_NAME|PROJECT_SOURCE_DIR|\\w+_BINARY_DIR|\\w+__SOURCE_DIR)\\b",name:"variable.source.cmake"},{begin:"#\\[(=*)\\[",comment:"BracketArgs",end:"\\]\\1\\]",name:"comment.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{begin:"\\[(=*)\\[",comment:"BracketArgs",end:"\\]\\1\\]",name:"argument.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{match:"#+.*$",name:"comment.source.cmake"},{comment:"Properties on Cache Entries",match:"\\b(?i:ADVANCED|HELPSTRING|MODIFIED|STRINGS|TYPE|VALUE)\\b",name:"entity.source.cmake"},{comment:"Properties on Source Files",match:"\\b(?i:ABSTRACT|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_|COMPILE_FLAGS|EXTERNAL_OBJECT|Fortran_FORMAT|GENERATED|HEADER_FILE_ONLY|KEEP_EXTENSION|LABELS|LANGUAGE|LOCATION|MACOSX_PACKAGE_LOCATION|OBJECT_DEPENDS|OBJECT_OUTPUTS|SYMBOLIC|WRAP_EXCLUDE)\\b",name:"entity.source.cmake"},{comment:"Properties on Tests",match:"\\b(?i:ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|COST|DEPENDS|ENVIRONMENT|FAIL_REGULAR_EXPRESSION|LABELS|MEASUREMENT|PASS_REGULAR_EXPRESSION|PROCESSORS|REQUIRED_FILES|RESOURCE_LOCK|RUN_SERIAL|TIMEOUT|WILL_FAIL|WORKING_DIRECTORY)\\b",name:"entity.source.cmake"},{comment:"Properties on Directories",match:"\\b(?i:ADDITIONAL_MAKE_CLEAN_FILES|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_\\w+|DEFINITIONS|EXCLUDE_FROM_ALL|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LINK_DIRECTORIES|LISTFILE_STACK|MACROS|PARENT_DIRECTORY|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|TEST_INCLUDE_FILE|VARIABLES|VS_GLOBAL_SECTION_POST_\\w+|VS_GLOBAL_SECTION_PRE_\\w+)\\b",name:"entity.source.cmake"},{comment:"Properties of Global Scope",match:"\\b(?i:ALLOW_DUPLICATE_CUSTOM_TARGETS|DEBUG_CONFIGURATIONS|DISABLED_FEATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|IN_TRY_COMPILE|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PREDEFINED_TARGETS_FOLDER|REPORT_UNDEFINED_PROPERTIES|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_SUPPORTS_SHARED_LIBS|USE_FOLDERS|__CMAKE_DELETE_CACHE_CHANGE_VARS_)\\b",name:"entity.source.cmake"},{comment:"Properties on Targets",match:"\\b(?i:\\w+_(OUTPUT_NAME|POSTFIX)|ARCHIVE_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|AUTOMOC(_MOC_OPTIONS)?|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE(_EXTENSION)?|COMPATIBLE_INTERFACE_BOOL|COMPATIBLE_INTERFACE_STRING|COMPILE_(DEFINITIONS(_\\w+)?|FLAGS)|DEBUG_POSTFIX|DEFINE_SYMBOL|ENABLE_EXPORTS|EXCLUDE_FROM_ALL|EchoString|FOLDER|FRAMEWORK|Fortran_(FORMAT|MODULE_DIRECTORY)|GENERATOR_FILE_NAME|GNUtoMS|HAS_CXX|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(CONFIGURATIONS|IMPLIB(_\\w+)?|LINK_DEPENDENT_LIBRARIES(_\\w+)?|LINK_INTERFACE_LANGUAGES(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LOCATION(_\\w+)?|NO_SONAME(_\\w+)?|SONAME(_\\w+)?)|IMPORT_PREFIX|IMPORT_SUFFIX|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE|INTERFACE_COMPILE_DEFINITIONS|INTERFACE_INCLUDE_DIRECTORIES|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LABELS|LIBRARY_OUTPUT_DIRECTORY(_\\w+)?|LIBRARY_OUTPUT_NAME(_\\w+)?|LINKER_LANGUAGE|LINK_DEPENDS|LINK_FLAGS(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LINK_LIBRARIES|LINK_SEARCH_END_STATIC|LINK_SEARCH_START_STATIC|LOCATION(_\\w+)?|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MAP_IMPORTED_CONFIG_\\w+|NO_SONAME|OSX_ARCHITECTURES(_\\w+)?|OUTPUT_NAME(_\\w+)?|PDB_NAME(_\\w+)?|POST_INSTALL_SCRIPT|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE|PRIVATE_HEADER|PROJECT_LABEL|PUBLIC|PUBLIC_HEADER|RESOURCE|RULE_LAUNCH_(COMPILE|CUSTOM|LINK)|RUNTIME_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|SKIP_BUILD_RPATH|SOURCES|SOVERSION|STATIC_LIBRARY_FLAGS(_\\w+)?|SUFFIX|TYPE|VERSION|VS_DOTNET_REFERENCES|VS_GLOBAL_(\\w+|KEYWORD|PROJECT_TYPES)|VS_KEYWORD|VS_SCC_(AUXPATH|LOCALPATH|PROJECTNAME|PROVIDER)|VS_WINRT_EXTENSIONS|VS_WINRT_REFERENCES|WIN32_EXECUTABLE|XCODE_ATTRIBUTE_\\w+)\\b",name:"entity.source.cmake"},{begin:'\\\\"',comment:"Escaped Strings",end:'\\\\"',name:"string.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{begin:'"',comment:"Normal Strings",end:'"',name:"string.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{comment:"Derecated keyword",match:"\\bBUILD_NAME\\b",name:"invalid.deprecated.source.cmake"},{comment:"Compiler Flags",match:"\\b(?i:(CMAKE_)?(CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\\b",name:"variable.source.cmake"}],e={},A="source.cmake",T={displayName:_,fileTypes:E,name:I,patterns:R,repository:e,scopeName:A};export{T as default,_ as displayName,E as fileTypes,I as name,R as patterns,e as repository,A as scopeName}; diff --git a/lib/dist/grammar/cobol.mjs b/lib/dist/grammar/cobol.mjs new file mode 100644 index 0000000..6e30785 --- /dev/null +++ b/lib/dist/grammar/cobol.mjs @@ -0,0 +1 @@ +var e="COBOL",t=["ccp","scbl","cobol","cbl","cblle","cblsrce","cblcpy","lks","pdv","cpy","copybook","cobcopy","fd","sel","scb","scbl","sqlcblle","cob","dds","def","src","ss","wks","bib","pco"],n="cobol",o=[{match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)",name:"token.info-token.cobol"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.newpage"}},match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.fixed"}},match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.newpage"}},match:"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)"},{match:"^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$",name:"constant.numeric.cobol"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"comment.line.cobol.fixed"}},match:"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)"},{captures:{1:{name:"constant.cobol"},2:{name:"comment.line.cobol.fixed"}},match:"(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"variable.other.constant"}},match:"^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)"},{captures:{1:{name:"constant.numeric.cobol"},2:{name:"variable.other.constant"},3:{name:"keyword.identifers.cobol"}},match:"^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))"},{captures:{1:{name:"constant.cobol"},2:{name:"comment.line.cobol.newpage"}},match:"(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)"},{match:"^\\*.*$",name:"comment.line.cobol.fixed"},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"entity.name.function.cobol"},4:{name:"keyword.control.directive.conditional.cobol"}},match:"((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)"},{captures:{1:{name:"entity.name.function.preprocessor.cobol"},2:{name:"storage.modifier.import.cobol"},3:{name:"punctuation.begin.bracket.round.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.end.bracket.round.cobol"}},match:"((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))"},{captures:{1:{name:"entity.name.function.preprocessor.cobol"},2:{name:"storage.modifier.import.cobol"},3:{name:"punctuation.definition.string.begin.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.definition.string.begin.cobol"}},match:'((?i:\\$\\s*set\\s+)(ilusing)(")(.*)("))'},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"punctuation.definition.string.begin.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.definition.string.begin.cobol"}},match:'((?i:\\$set))\\s+(\\w+)\\s*(")(\\w*)(")'},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"punctuation.begin.bracket.round.cobol"},4:{name:"string.quoted.other.cobol"},5:{name:"punctuation.end.bracket.round.cobol"}},match:"((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))"},{captures:{0:{name:"keyword.control.directive.conditional.cobol"},1:{name:"invalid.illegal.directive"},2:{name:"comment.line.set.cobol"}},match:"(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$"},{captures:{1:{name:"keyword.control.directive.cobol"},2:{name:"entity.other.attribute-name.preprocessor.cobol"}},match:"(\\$region|\\$end-region)(.*$)"},{begin:"\\$(?i:doc)(.*$)",end:"\\$(?i:end-doc)(.*$)",name:"invalid.illegal.iscobol"},{match:">>\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$",name:"invalid.illegal.meta.preprocessor.cobolit"},{match:"(?i:substitute-case|substitute)\\s+",name:"invalid.illegal.functions.cobolit"},{captures:{1:{name:"invalid.illegal.keyword.control.directive.conditional.cobol"},2:{name:"invalid.illegal.entity.name.function.preprocessor.cobol"},3:{name:"invalid.illegal.entity.name.function.preprocessor.cobol"}},match:"((((>>|\\$)[\\s]*)(?i:elif))(.*$))"},{captures:{1:{name:"keyword.control.directive.conditional.cobol"},2:{name:"entity.name.function.preprocessor.cobol"},3:{name:"entity.name.function.preprocessor.cobol"}},match:"((((>>|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))"},{captures:{1:{name:"comment.line.scantoken.cobol"},2:{name:"keyword.cobol"},3:{name:"string.cobol"}},match:"(\\*>)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)"},{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(>>.*)$",name:"strong comment.line.set.acucobol"},{match:"([nNuU][xX]|[hHxX])'\\h*'",name:"constant.numeric.integer.hexadecimal.cobol"},{match:"([nNuU][xX]|[hHxX])'.*'",name:"invalid.illegal.hexadecimal.cobol"},{match:'([nNuU][xX]|[hHxX])"\\h*"',name:"constant.numeric.integer.hexadecimal.cobol"},{match:'([nNuU][xX]|[hHxX])".*"',name:"invalid.illegal.hexadecimal.cobol"},{match:'[bB]"[0-1]"',name:"constant.numeric.integer.boolean.cobol"},{match:"[bB]'[0-1]'",name:"constant.numeric.integer.boolean.cobol"},{match:'[oO]"[0-7]*"',name:"constant.numeric.integer.octal.cobol"},{match:'[oO]".*"',name:"invalid.illegal.octal.cobol"},{match:"(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)",name:"meta.symbol.cobol.forced"},{begin:"((?.*$)",name:"comment.line.modern"},{match:"(\\:([0-9a-zA-Z\\-_])*)",name:"variable.cobol"},{include:"source.sql"}]},{begin:"(?i:exec\\s+cics)",contentName:"meta.embedded.block.cics",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(\\()",name:"meta.symbol.cobol"},{include:"#cics-keywords"},{include:"#string-double-quoted-constant"},{include:"#string-quoted-constant"},{include:"#number-complex-constant"},{include:"#number-simple-constant"},{match:"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",name:"variable.cobol"}]},{begin:"(?i:exec\\s+dli)",contentName:"meta.embedded.block.dli",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(\\()",name:"meta.symbol.cobol"},{include:"#dli-keywords"},{include:"#dli-options"},{include:"#string-double-quoted-constant"},{include:"#string-quoted-constant"},{include:"#number-complex-constant"},{include:"#number-simple-constant"},{match:"([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))",name:"variable.cobol"}]},{begin:"(?i:exec\\s+sqlims)",contentName:"meta.embedded.block.sql",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(\\:([a-zA-Z\\-])*)",name:"variable.cobol"},{include:"source.sql"}]},{begin:"(?i:exec\\s+ado)",contentName:"meta.embedded.block.sql",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{match:"(--.*$)",name:"comment.line.sql"},{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(\\:([a-zA-Z\\-])*)",name:"variable.cobol"},{include:"source.sql"}]},{begin:"(?i:exec\\s+html)",contentName:"meta.embedded.block.html",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{include:"text.html.basic"}]},{begin:"(?i:exec\\s+java)",contentName:"meta.embedded.block.java",end:"(?i:end\\-exec)",name:"keyword.verb.cobol",patterns:[{include:"source.java"}]},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:'(")(CBL_.*)(")'},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:'(")(PC_.*)(")'},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cobol"}},end:'("|$)',endCaptures:{0:{name:"punctuation.definition.string.end.cobol"}},name:"string.quoted.double.cobol"},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:"(\\')(CBL_.*)(\\')"},{captures:{1:{name:"punctuation.definition.string.begin.cobol"},2:{name:"support.function.cobol"},3:{name:"punctuation.definition.string.end.cobol"}},match:"(\\')(PC_.*)(\\')"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.cobol"}},end:"('|$)",endCaptures:{0:{name:"punctuation.definition.string.end.cobol"}},name:"string.quoted.single.cobol"},{begin:'(?|<=|>=|<>|\\+|\\-|\\*|\\/|(?",name:"punctuation.anglebracket.close.ql"},"close-brace":{match:"(?x)\\}",name:"punctuation.curlybrace.close.ql"},"close-bracket":{match:"(?x)\\]",name:"punctuation.squarebracket.close.ql"},"close-paren":{match:"(?x)\\)",name:"punctuation.parenthesis.close.ql"},comma:{match:"(?x),",name:"punctuation.separator.comma.ql"},comment:{patterns:[{begin:"(?x)/\\*\\*",end:"(?x)\\*/",name:"comment.block.documentation.ql",patterns:[{begin:"(?x)(?<=/\\*\\*)([^*]|\\*(?!/))*$",patterns:[{match:"(?x)\\G\\s* (@\\S+)",name:"keyword.tag.ql"}],while:"(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)"}]},{begin:"(?x)/\\*",end:"(?x)\\*/",name:"comment.block.ql"},{match:"(?x)//.*$",name:"comment.line.double-slash.ql"}]},"comment-start":{match:"(?x)// | /\\*"},"comparison-operator":{match:"(?x)=|\\!\\=",name:"keyword.operator.comparison.ql"},concat:{match:"(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.concat.ql"},count:{match:"(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.count.ql"},date:{match:"(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.date.ql"},default:{match:"(?x)\\b(?:default)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.default.ql"},deprecated:{match:"(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.deprecated.ql"},desc:{match:"(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.desc.ql"},"dont-care":{match:"(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.dont-care.ql"},dot:{match:"(?x)\\.",name:"punctuation.accessor.ql"},dotdot:{match:"(?x)\\.\\.",name:"punctuation.operator.range.ql"},else:{match:"(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.else.ql"},"end-of-as-clause":{match:"(?x)(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?)|[A-Za-z0-9_]) (?!\\s*(\\.|\\:\\:|\\,|(?:<)))",name:"meta.block.import-directive.ql",patterns:[{include:"#instantiation-args"},{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}]},in:{match:"(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.in.ql"},instanceof:{match:"(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.instanceof.ql"},"instantiation-args":{begin:"(?x)((?:<))",beginCaptures:{1:{patterns:[{include:"#open-angle"}]}},end:"(?x)((?:>))",endCaptures:{1:{patterns:[{include:"#close-angle"}]}},name:"meta.type.parameters.ql",patterns:[{include:"#instantiation-args"},{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}]},int:{match:"(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.int.ql"},"int-literal":{match:"(?x)-?[0-9]+(?![0-9])",name:"constant.numeric.decimal.ql"},keyword:{patterns:[{include:"#dont-care"},{include:"#and"},{include:"#any"},{include:"#as"},{include:"#asc"},{include:"#avg"},{include:"#boolean"},{include:"#by"},{include:"#class"},{include:"#concat"},{include:"#count"},{include:"#date"},{include:"#desc"},{include:"#else"},{include:"#exists"},{include:"#extends"},{include:"#false"},{include:"#float"},{include:"#forall"},{include:"#forex"},{include:"#from"},{include:"#if"},{include:"#implies"},{include:"#import"},{include:"#in"},{include:"#instanceof"},{include:"#int"},{include:"#max"},{include:"#min"},{include:"#module"},{include:"#newtype"},{include:"#none"},{include:"#not"},{include:"#or"},{include:"#order"},{include:"#predicate"},{include:"#rank"},{include:"#result"},{include:"#select"},{include:"#strictconcat"},{include:"#strictcount"},{include:"#strictsum"},{include:"#string"},{include:"#sum"},{include:"#super"},{include:"#then"},{include:"#this"},{include:"#true"},{include:"#unique"},{include:"#where"}]},language:{match:"(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.language.ql"},"language-annotation":{begin:"(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#language"}]}},end:"(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])",name:"meta.block.language-annotation.ql",patterns:[{include:"#language-annotation-body"},{include:"#non-context-sensitive"}]},"language-annotation-body":{begin:"(?x)((?:\\[))",beginCaptures:{1:{patterns:[{include:"#open-bracket"}]}},end:"(?x)((?:\\]))",endCaptures:{1:{patterns:[{include:"#close-bracket"}]}},name:"meta.block.language-annotation-body.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.ql"}]},library:{match:"(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.library.ql"},literal:{patterns:[{include:"#float-literal"},{include:"#int-literal"},{include:"#string-literal"}]},"lower-id":{match:"(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},max:{match:"(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.max.ql"},min:{match:"(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.min.ql"},module:{match:"(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.module.ql"},"module-body":{begin:"(?x)((?:\\{))",beginCaptures:{1:{patterns:[{include:"#open-brace"}]}},end:"(?x)((?:\\}))",endCaptures:{1:{patterns:[{include:"#close-brace"}]}},name:"meta.block.module-body.ql",patterns:[{include:"#module-member"}]},"module-declaration":{begin:"(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#module"}]}},end:"(?x)(?<=\\}|;)",name:"meta.block.module-declaration.ql",patterns:[{include:"#module-body"},{include:"#implements-clause"},{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}]},"module-member":{patterns:[{include:"#import-directive"},{include:"#import-as-clause"},{include:"#module-declaration"},{include:"#newtype-declaration"},{include:"#newtype-branch-name-with-prefix"},{include:"#predicate-parameter-list"},{include:"#predicate-body"},{include:"#class-declaration"},{include:"#select-clause"},{include:"#predicate-or-field-declaration"},{include:"#non-context-sensitive"},{include:"#annotation"}]},"module-qualifier":{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)",name:"entity.name.type.namespace.ql"},newtype:{match:"(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.newtype.ql"},"newtype-branch-name-with-prefix":{begin:"(?x)\\= | (?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))",beginCaptures:{0:{patterns:[{include:"#or"},{include:"#comparison-operator"}]}},end:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",endCaptures:{0:{name:"entity.name.type.ql"}},name:"meta.block.newtype-branch-name-with-prefix.ql",patterns:[{include:"#non-context-sensitive"}]},"newtype-declaration":{begin:"(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#newtype"}]}},end:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",endCaptures:{0:{name:"entity.name.type.ql"}},name:"meta.block.newtype-declaration.ql",patterns:[{include:"#non-context-sensitive"}]},"non-context-sensitive":{patterns:[{include:"#comment"},{include:"#literal"},{include:"#operator-or-punctuation"},{include:"#keyword"}]},none:{match:"(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.none.ql"},not:{match:"(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.not.ql"},"open-angle":{match:"(?x)<",name:"punctuation.anglebracket.open.ql"},"open-brace":{match:"(?x)\\{",name:"punctuation.curlybrace.open.ql"},"open-bracket":{match:"(?x)\\[",name:"punctuation.squarebracket.open.ql"},"open-paren":{match:"(?x)\\(",name:"punctuation.parenthesis.open.ql"},"operator-or-punctuation":{patterns:[{include:"#relational-operator"},{include:"#comparison-operator"},{include:"#arithmetic-operator"},{include:"#comma"},{include:"#semicolon"},{include:"#dot"},{include:"#dotdot"},{include:"#pipe"},{include:"#open-paren"},{include:"#close-paren"},{include:"#open-brace"},{include:"#close-brace"},{include:"#open-bracket"},{include:"#close-bracket"},{include:"#open-angle"},{include:"#close-angle"}]},or:{match:"(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.or.ql"},order:{match:"(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.order.ql"},override:{match:"(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.override.ql"},pipe:{match:"(?x)\\|",name:"punctuation.separator.pipe.ql"},pragma:{match:"(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.pragma.ql"},"pragma-annotation":{begin:"(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#pragma"}]}},end:"(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])",name:"meta.block.pragma-annotation.ql",patterns:[{include:"#pragma-annotation-body"},{include:"#non-context-sensitive"}]},"pragma-annotation-body":{begin:"(?x)((?:\\[))",beginCaptures:{1:{patterns:[{include:"#open-bracket"}]}},end:"(?x)((?:\\]))",endCaptures:{1:{patterns:[{include:"#close-bracket"}]}},name:"meta.block.pragma-annotation-body.ql",patterns:[{match:"(?x)\\b(?:inline|noinline|nomagic|noopt)\\b",name:"storage.modifier.ql"}]},predicate:{match:"(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.predicate.ql"},"predicate-body":{begin:"(?x)((?:\\{))",beginCaptures:{1:{patterns:[{include:"#open-brace"}]}},end:"(?x)((?:\\}))",endCaptures:{1:{patterns:[{include:"#close-brace"}]}},name:"meta.block.predicate-body.ql",patterns:[{include:"#predicate-body-contents"}]},"predicate-body-contents":{patterns:[{include:"#expr-as-clause"},{include:"#non-context-sensitive"},{include:"#module-qualifier"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()",name:"entity.name.function.ql"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"variable.other.ql"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.ql"}]},"predicate-or-field-declaration":{begin:"(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:additional)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:default)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:signature)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))",end:"(?x)(?<=\\}|;)",name:"meta.block.predicate-or-field-declaration.ql",patterns:[{include:"#predicate-parameter-list"},{include:"#predicate-body"},{include:"#non-context-sensitive"},{include:"#module-qualifier"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)",name:"variable.field.ql"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.function.ql"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.ql"}]},"predicate-parameter-list":{begin:"(?x)((?:\\())",beginCaptures:{1:{patterns:[{include:"#open-paren"}]}},end:"(?x)((?:\\)))",endCaptures:{1:{patterns:[{include:"#close-paren"}]}},name:"meta.block.predicate-parameter-list.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))",name:"variable.parameter.ql"},{include:"#module-qualifier"},{match:"(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.ql"},{match:"(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"variable.parameter.ql"}]},"predicate-start-keyword":{patterns:[{include:"#boolean"},{include:"#date"},{include:"#float"},{include:"#int"},{include:"#predicate"},{include:"#string"}]},private:{match:"(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.private.ql"},query:{match:"(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.query.ql"},rank:{match:"(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.rank.ql"},"relational-operator":{match:"(?x)<=|<|>=|>",name:"keyword.operator.relational.ql"},result:{match:"(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.result.ql"},select:{match:"(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.select.ql"},"select-as-clause":{begin:"(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#as"}]}},end:"(?x)(?<=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))",match:"(?x)meta.block.select-as-clause.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"variable.other.ql"}]},"select-clause":{begin:"(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",end:"(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",name:"meta.block.select-clause.ql",patterns:[{include:"#from-section"},{include:"#where-section"},{include:"#select-section"}]},"select-section":{begin:"(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#select"}]}},end:"(?x)(?=\\n)",name:"meta.block.select-section.ql",patterns:[{include:"#predicate-body-contents"},{include:"#select-as-clause"}]},semicolon:{match:"(?x);",name:"punctuation.separator.statement.ql"},signature:{match:"(?x)\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.signature.ql"},"simple-id":{match:"(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},strictconcat:{match:"(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictconcat.ql"},strictcount:{match:"(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictcount.ql"},strictsum:{match:"(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictsum.ql"},string:{match:"(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.string.ql"},"string-escape":{match:'(?x)\\\\["\\\\nrt]',name:"constant.character.escape.ql"},"string-literal":{begin:'(?x)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ql"}},end:'(?x)(") | ((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.ql"},2:{name:"invalid.illegal.newline.ql"}},name:"string.quoted.double.ql",patterns:[{include:"#string-escape"}]},sum:{match:"(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.sum.ql"},super:{match:"(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.super.ql"},then:{match:"(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.then.ql"},this:{match:"(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.this.ql"},transient:{match:"(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.transient.ql"},true:{match:"(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))",name:"constant.language.boolean.true.ql"},unique:{match:"(?x)\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.unique.ql"},"upper-id":{match:"(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"},where:{match:"(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.where.ql"},"where-section":{begin:"(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{1:{patterns:[{include:"#where"}]}},end:"(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",name:"meta.block.where-section.ql",patterns:[{include:"#predicate-body-contents"}]},"whitespace-or-comment-start":{match:"(?x)\\s | $ | (?:// | /\\*)"}},c="source.ql",l={displayName:e,fileTypes:a,name:n,patterns:t,repository:i,scopeName:c};export{l as default,e as displayName,a as fileTypes,n as name,t as patterns,i as repository,c as scopeName}; diff --git a/lib/dist/grammar/coffee.mjs b/lib/dist/grammar/coffee.mjs new file mode 100644 index 0000000..4f4ad3d --- /dev/null +++ b/lib/dist/grammar/coffee.mjs @@ -0,0 +1 @@ +var e="CoffeeScript",t="coffee",n=[{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:{1:{name:"entity.name.function.coffee"},2:{name:"variable.other.readwrite.instance.coffee"},3:{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{0:{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:"(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\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(?|\\-\\d|\\[|{|\"|'))",end:"(?=\\s*(?|\\-\\d|\\[|{|\"|')))",beginCaptures:{1:{name:"variable.other.readwrite.instance.coffee"},2:{patterns:[{include:"#function_names"}]}},end:"(?=\\s*(?)",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+(?!(?|\\-\\d|\\[|{|\"|')))",beginCaptures:{1:{name:"punctuation.separator.method.period.coffee"},2:{name:"keyword.operator.prototype.coffee"},3:{patterns:[{include:"#method_names"}]}},end:"(?=\\s*(?>=|>>>=|\\|=)"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.coffee"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.coffee"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.coffee"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.coffee"},{captures:{1:{name:"variable.assignment.coffee"},2:{name:"keyword.operator.assignment.coffee"}},match:"([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])"},{match:"--",name:"keyword.operator.decrement.coffee"},{match:"\\+\\+",name:"keyword.operator.increment.coffee"},{match:"\\.\\.\\.",name:"keyword.operator.splat.coffee"},{match:"\\?",name:"keyword.operator.existential.coffee"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.coffee"},{captures:{1:{name:"keyword.operator.logical.coffee"},2:{name:"keyword.operator.comparison.coffee"}},match:"(?x)\n\\b(?\\~\\!\\?\\[\\]\\{\\}\\.]+)\n\\s*\n((,@|,\\.|,)?)\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n|\n((,@|,\\.|,)?)\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n)\n(?=(\\s|\\(|\\)))"},{captures:{1:{name:"storage.type.function.defname.commonlisp"},2:{name:"entity.name.type.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\()\n(deftype|defpackage|define-condition|defclass)\n\\s+\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n(?=(\\s|\\(|\\)))"},{captures:{1:{name:"storage.type.function.defname.commonlisp"},2:{patterns:[{include:"#package"},{match:"\\S+?",name:"variable.other.constant.defname.commonlisp"}]}},match:"(?xi)\n(?<=^|\\s|\\()\n(defconstant)\n\\s+\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n(?=(\\s|\\(|\\)))"},{captures:{1:{name:"storage.type.function.defname.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\()\n(defvar|defparameter)\n\\s+\n(?=(\\s|\\(|\\)))"},{captures:{1:{name:"storage.type.function.defname.commonlisp"},2:{name:"entity.name.type.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\()\n(defstruct)\n\\s+\\(?\\s*\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n(?=(\\s|\\(|\\)))"},{captures:{1:{name:"keyword.control.commonlisp"},2:{patterns:[{include:"#package"},{match:"\\S+?",name:"entity.name.function.commonlisp"}]}},match:"(?xi)\n(?<=^|\\s|\\()\n(macrolet|labels|flet)\n\\s+\\(\\s*\\(\\s*\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n(?=(\\s|\\(|\\)))"}]},escape:{match:"(?xi)\n(?<=^|\\s|\\()\n(?:\\#\\\\\\S+?)\n(?=(\\s|\\(|\\)))",name:"constant.character.escape.commonlisp"},function:{patterns:[{match:"(?xi)\n(?<=^|\\s|\\(|\\#')\n(?:values|third|tenth|symbol-value|symbol-plist|symbol-function|svref|subseq|sixth|seventh|second|schar|sbit|row-major-aref|\nrest|readtable-case|nth|ninth|mask-field|macro-function|logical-pathname-translations|ldb|gethash|getf|get|fourth|first|\nfind-class|fill-pointer|fifth|fdefinition|elt|eighth|compiler-macro-function|char|cdr|cddr|cdddr|cddddr|cdddar|cddar|cddadr|\ncddaar|cdar|cdadr|cdaddr|cdadar|cdaar|cdaadr|cdaaar|car|cadr|caddr|cadddr|caddar|cadar|cadadr|cadaar|caar|caadr|caaddr|caadar|\ncaaar|caaadr|caaaar|bit|aref)\n(?=(\\s|\\(|\\)))",name:"support.function.accessor.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|\\#')\n(?:yes-or-no-p|y-or-n-p|write-sequence|write-char|write-byte|warn|vector-pop|use-value|use-package|unuse-package|union|unintern|\nunexport|terpri|tailp|substitute-if-not|substitute-if|substitute|subst-if-not|subst-if|subst|sublis|string-upcase|string-downcase|\nstring-capitalize|store-value|sleep|signal|shadowing-import|shadow|set-syntax-from-char|set-macro-character|set-exclusive-or|\nset-dispatch-macro-character|set-difference|set|rplacd|rplaca|room|reverse|revappend|require|replace|remprop|remove-if-not|remove-if|\nremove-duplicates|remove|remhash|read-sequence|read-byte|random|provide|pprint-tabular|pprint-newline|pprint-linear|pprint-fill|\nnunion|nsubstitute-if-not|nsubstitute-if|nsubstitute|nsubst-if-not|nsubst-if|nsubst|nsublis|nstring-upcase|nstring-downcase|nstring-capitalize|\nnset-exclusive-or|nset-difference|nreverse|nreconc|nintersection|nconc|muffle-warning|method-combination-error|maphash|makunbound|ldiff|\ninvoke-restart-interactively|invoke-restart|invoke-debugger|invalid-method-error|intersection|inspect|import|get-output-stream-string|\nget-macro-character|get-dispatch-macro-character|gentemp|gensym|fresh-line|fill|file-position|export|describe|delete-if-not|delete-if|\ndelete-duplicates|delete|continue|clrhash|close|clear-input|break|abort)\n(?=(\\s|\\(|\\)))",name:"support.function.f.sideeffects.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|\\#')\n(?:zerop|write-to-string|write-string|write-line|write|wild-pathname-p|vectorp|vector-push-extend|vector-push|vector|values-list|\nuser-homedir-pathname|upper-case-p|upgraded-complex-part-type|upgraded-array-element-type|unread-char|unbound-slot-instance|typep|type-of|\ntype-error-expected-type|type-error-datum|two-way-stream-output-stream|two-way-stream-input-stream|truncate|truename|tree-equal|translate-pathname|\ntranslate-logical-pathname|tanh|tan|synonym-stream-symbol|symbolp|symbol-package|symbol-name|sxhash|subtypep|subsetp|stringp|string>=|string>|\nstring=|string<=|string<|string\\/=|string-trim|string-right-trim|string-not-lessp|string-not-greaterp|string-not-equal|string-lessp|\nstring-left-trim|string-greaterp|string-equal|string|streamp|stream-external-format|stream-error-stream|stream-element-type|standard-char-p|\nstable-sort|sqrt|special-operator-p|sort|some|software-version|software-type|slot-value|slot-makunbound|slot-exists-p|slot-boundp|sinh|sin|\nsimple-vector-p|simple-string-p|simple-condition-format-control|simple-condition-format-arguments|simple-bit-vector-p|signum|short-site-name|\nset-pprint-dispatch|search|scale-float|round|restart-name|rename-package|rename-file|rem|reduce|realpart|realp|readtablep|\nread-preserving-whitespace|read-line|read-from-string|read-delimited-list|read-char-no-hang|read-char|read|rationalp|rationalize|\nrational|rassoc-if-not|rassoc-if|rassoc|random-state-p|proclaim|probe-file|print-not-readable-object|print|princ-to-string|princ|\nprin1-to-string|prin1|pprint-tab|pprint-indent|pprint-dispatch|pprint|position-if-not|position-if|position|plusp|phase|peek-char|pathnamep|\npathname-version|pathname-type|pathname-name|pathname-match-p|pathname-host|pathname-directory|pathname-device|pathname|parse-namestring|\nparse-integer|pairlis|packagep|package-used-by-list|package-use-list|package-shadowing-symbols|package-nicknames|package-name|package-error-package|\noutput-stream-p|open-stream-p|open|oddp|numerator|numberp|null|nthcdr|notevery|notany|not|next-method-p|nbutlast|namestring|name-char|mod|mismatch|\nminusp|min|merge-pathnames|merge|member-if-not|member-if|member|max|maplist|mapl|mapcon|mapcar|mapcan|mapc|map-into|map|make-two-way-stream|\nmake-synonym-stream|make-symbol|make-string-output-stream|make-string-input-stream|make-string|make-sequence|make-random-state|make-pathname|\nmake-package|make-load-form-saving-slots|make-list|make-hash-table|make-echo-stream|make-dispatch-macro-character|make-condition|\nmake-concatenated-stream|make-broadcast-stream|make-array|macroexpand-1|macroexpand|machine-version|machine-type|machine-instance|lower-case-p|\nlong-site-name|logxor|logtest|logorc2|logorc1|lognot|lognor|lognand|logior|logical-pathname|logeqv|logcount|logbitp|logandc2|logandc1|logand|\nlog|load-logical-pathname-translations|load|listp|listen|list-length|list-all-packages|list\\*|list|lisp-implementation-version|\nlisp-implementation-type|length|ldb-test|lcm|last|keywordp|isqrt|intern|interactive-stream-p|integerp|integer-length|integer-decode-float|\ninput-stream-p|imagpart|identity|host-namestring|hash-table-test|hash-table-size|hash-table-rehash-threshold|hash-table-rehash-size|hash-table-p|\nhash-table-count|graphic-char-p|get-universal-time|get-setf-expansion|get-properties|get-internal-run-time|get-internal-real-time|\nget-decoded-time|gcd|functionp|function-lambda-expression|funcall|ftruncate|fround|format|force-output|fmakunbound|floor|floatp|float-sign|\nfloat-radix|float-precision|float-digits|float|finish-output|find-symbol|find-restart|find-package|find-if-not|find-if|find-all-symbols|find|\nfile-write-date|file-string-length|file-namestring|file-length|file-error-pathname|file-author|ffloor|fceiling|fboundp|expt|exp|every|evenp|\neval|equalp|equal|eql|eq|ensure-generic-function|ensure-directories-exist|enough-namestring|endp|encode-universal-time|ed|echo-stream-output-stream|\necho-stream-input-stream|dribble|dpb|disassemble|directory-namestring|directory|digit-char-p|digit-char|deposit-field|denominator|delete-package|\ndelete-file|decode-universal-time|decode-float|count-if-not|count-if|count|cosh|cos|copy-tree|copy-symbol|copy-structure|copy-seq|copy-readtable|\ncopy-pprint-dispatch|copy-list|copy-alist|constantp|constantly|consp|cons|conjugate|concatenated-stream-streams|concatenate|compute-restarts|\ncomplexp|complex|complement|compiled-function-p|compile-file-pathname|compile-file|compile|coerce|code-char|clear-output|class-of|cis|characterp|\ncharacter|char>=|char>|char=|char<=|char<|char\\/=|char-upcase|char-not-lessp|char-not-greaterp|char-not-equal|char-name|char-lessp|char-int|\nchar-greaterp|char-equal|char-downcase|char-code|cerror|cell-error-name|ceiling|call-next-method|byte-size|byte-position|byte|butlast|\nbroadcast-stream-streams|boundp|both-case-p|boole|bit-xor|bit-vector-p|bit-orc2|bit-orc1|bit-not|bit-nor|bit-nand|bit-ior|bit-eqv|bit-andc2|\nbit-andc1|bit-and|atom|atanh|atan|assoc-if-not|assoc-if|assoc|asinh|asin|ash|arrayp|array-total-size|array-row-major-index|array-rank|\narray-in-bounds-p|array-has-fill-pointer-p|array-element-type|array-displacement|array-dimensions|array-dimension|arithmetic-error-operation|\narithmetic-error-operands|apropos-list|apropos|apply|append|alphanumericp|alpha-char-p|adjustable-array-p|adjust-array|adjoin|acosh|acos|acons|\nabs|>=|>|=|<=|<|1-|1\\+|\\/=|\\/|-|\\+|\\*)\n(?=(\\s|\\(|\\)))",name:"support.function.f.sideeffects.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|\\#')\n(?:variable|update-instance-for-redefined-class|update-instance-for-different-class|structure|slot-unbound|slot-missing|shared-initialize|\nremove-method|print-object|no-next-method|no-applicable-method|method-qualifiers|make-load-form|make-instances-obsolete|make-instance|\ninitialize-instance|function-keywords|find-method|documentation|describe-object|compute-applicable-methods|compiler-macro|class-name|\nchange-class|allocate-instance|add-method)\n(?=(\\s|\\(|\\)))",name:"support.function.sgf.nosideeffects.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|\\#')\n(?:reinitialize-instance)\n(?=(\\s|\\(|\\)))",name:"support.function.sgf.sideeffects.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|\\#')\n(?:satisfies)\n(?=(\\s|\\(|\\)))",name:"support.function.typespecifier.commonlisp"}]},"lambda-list":{match:"(?xi)\n(?<=^|\\s|\\()\n(?:&[#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?|&whole|&rest|&optional|&key|&environment|&body|&aux|&allow-other-keys)\n(?=(\\s|\\(|\\)))",name:"keyword.other.lambdalist.commonlisp"},macro:{patterns:[{match:"(?xi)\n(?<=^|\\s|\\()\n(?:with-standard-io-syntax|with-slots|with-simple-restart|with-package-iterator|with-hash-table-iterator|with-condition-restarts|\nwith-compilation-unit|with-accessors|when|unless|typecase|time|step|shiftf|setf|rotatef|return|restart-case|restart-bind|psetf|prog2|prog1|\nprog\\*|prog|print-unreadable-object|pprint-logical-block|pprint-exit-if-list-exhausted|or|nth-value|multiple-value-setq|multiple-value-list|\nmultiple-value-bind|make-method|loop|lambda|ignore-errors|handler-case|handler-bind|formatter|etypecase|dotimes|dolist|do-symbols|do-external-symbols|\ndo-all-symbols|do\\*|do|destructuring-bind|defun|deftype|defstruct|defsetf|defpackage|defmethod|defmacro|define-symbol-macro|define-setf-expander|\ndefine-condition|define-compiler-macro|defgeneric|defconstant|defclass|declaim|ctypecase|cond|call-method|assert|and)\n(?=(\\s|\\(|\\)))",name:"storage.type.function.m.nosideeffects.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\()\n(?:with-output-to-string|with-open-stream|with-open-file|with-input-from-string|untrace|trace|remf|pushnew|push|psetq|pprint-pop|pop|\notherwise|loop-finish|incf|in-package|ecase|defvar|defparameter|define-modify-macro|define-method-combination|decf|check-type|ccase|case)\n(?=(\\s|\\(|\\)))",name:"storage.type.function.m.sideeffects.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\()\n(?:setq)\n(?=(\\s|\\(|\\)))",name:"storage.type.function.specialform.commonlisp"}]},package:{patterns:[{captures:{2:{name:"support.type.package.commonlisp"},3:{name:"support.type.package.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\n([A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n|\n(\\#)\n)\n(?=\\:\\:|\\:)"}]},punctuation:{patterns:[{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n('|`)\n(?=\\S)",name:"variable.other.constant.singlequote.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(?:\\:[#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n(?=(\\s|\\(|\\)))",name:"entity.name.variable.commonlisp"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#)([0-9]*)\n(?=\\()"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#)\n([0-9]*)\n(\\*)\n(?=0|1)"},{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#\\*|\\#0\\*)\n(?=(\\s|\\(|\\)))",name:"variable.other.constant.sharpsign.commonlisp"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#)\n([0-9]+)\n(a|A)\n(?=.)"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#)\n([0-9]+)\n(=)\n(?=.)"},{captures:{1:{name:"variable.other.constant.sharpsign.commonlisp"},2:{name:"constant.numeric.commonlisp"},3:{name:"variable.other.constant.sharpsign.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#)\n([0-9]+)\n(\\#)\n(?=.)"},{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#(\\+|-))\n(?=\\S)",name:"variable.other.constant.sharpsign.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#('|,|\\.|c|C|s|S|p|P))\n(?=\\S)",name:"variable.other.constant.sharpsign.commonlisp"},{captures:{1:{name:"support.type.package.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(\\#)\n(:)\n(?=\\S)"},{captures:{2:{name:"variable.other.constant.backquote.commonlisp"},3:{name:"variable.other.constant.backquote.commonlisp"},4:{name:"variable.other.constant.backquote.commonlisp"},5:{name:"variable.other.constant.backquote.commonlisp"}},match:"(?xi)\n(?<=^|\\s|\\()\n(\n(`\\#)\n|\n(`)(,@|,\\.|,)?\n|\n(,@|,\\.|,)\n)\n(?=\\S)"}]},"special-operator":{captures:{2:{name:"keyword.control.commonlisp"}},match:"(?xi)\n(\\(\\s*)\n(unwind-protect|throw|the|tagbody|symbol-macrolet|return-from|quote|progv|progn|multiple-value-prog1|multiple-value-call|\nmacrolet|locally|load-time-value|let\\*|let|labels|if|go|function|flet|eval-when|catch|block)\n(?=(\\s|\\(|\\)))"},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.commonlisp"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.commonlisp"}},name:"string.quoted.double.commonlisp",patterns:[{match:"\\\\.",name:"constant.character.escape.commonlisp"},{captures:{1:{name:"storage.type.function.formattedstring.commonlisp"},2:{name:"variable.other.constant.formattedstring.commonlisp"},8:{name:"storage.type.function.formattedstring.commonlisp"},10:{name:"storage.type.function.formattedstring.commonlisp"}},match:"(?xi)\n\n(~)\n(\n(\n(([+-]?[0-9]+)|('.)|V|\\#)*?\n(,)?\n)\n*?)\n(\n(:@|@:|:|@)\n?)\n(\\(|\\)|\\[|\\]|;|{|}|<|>|\\^)"},{captures:{1:{name:"entity.name.variable.commonlisp"},2:{name:"variable.other.constant.formattedstring.commonlisp"},8:{name:"entity.name.variable.commonlisp"},10:{name:"entity.name.variable.commonlisp"}},match:"(?xi)\n\n(~)\n(\n(\n(([+-]?[0-9]+)|('.)|V|\\#)*?\n(,)?\n)\n*?)\n(\n(:@|@:|:|@)\n?)\n(A|S|D|B|O|X|R|P|C|F|E|G|\\$|%|\\&|\\||~|T|\\*|\\?|_|W|I)"},{captures:{1:{name:"entity.name.variable.commonlisp"},2:{name:"variable.other.constant.formattedstring.commonlisp"},8:{name:"entity.name.variable.commonlisp"},10:{name:"entity.name.variable.commonlisp"},11:{name:"entity.name.variable.commonlisp"},12:{name:"entity.name.variable.commonlisp"}},match:"(?xi)\n\n(~)\n(\n(\n(([+-]?[0-9]+)|('.)|V|\\#)*?\n(,)?\n)\n*?)\n(\n(:@|@:|:|@)\n?)\n(\\/)\n([#:A-Za-z0-9\\+\\-\\*\\/\\@\\$\\%\\^\\&\\_\\=\\<\\>\\~\\!\\?\\[\\]\\{\\}\\.]+?)\n(\\/)"},{match:"(~\\n)",name:"variable.other.constant.formattedstring.commonlisp"}]},"style-guide":{patterns:[{captures:{3:{name:"source.commonlisp"}},match:"(?xi)\n(?<=^'|\\s'|\\('|,@'|,\\.'|,')\n(\\S+?)\n(\\:\\:|\\:)\n((\\+[^\\s\\+]+\\+)|(\\*[^\\s\\*]+\\*))\n(?=(\\s|\\(|\\)))"},{match:"(?xi)\n(?<=\\S:|^|\\s|\\(|,@|,\\.|,)\n(\\+[^\\s\\+]+\\+)\n(?=(\\s|\\(|\\)))",name:"variable.other.constant.earmuffsplus.commonlisp"},{match:"(?xi)\n(?<=\\S:|^|\\s|\\(|,@|,\\.|,)\n(\\*[^\\s\\*]+\\*)\n(?=(\\s|\\(|\\)))",name:"string.regexp.earmuffsasterisk.commonlisp"}]},symbol:{match:"(?xi)\n(?<=^|\\s|\\()\n(?:method-combination|declare)\n(?=(\\s|\\(|\\)))",name:"storage.type.function.symbol.commonlisp"},type:{match:"(?xi)\n(?<=^|\\s|\\()\n(?:unsigned-byte|standard-char|standard|single-float|simple-vector|simple-string|simple-bit-vector|simple-base-string|simple-array|\nsigned-byte|short-float|long-float|keyword|fixnum|extended-char|double-float|compiled-function|boolean|bignum|base-string|base-char)\n(?=(\\s|\\(|\\)))",name:"support.type.t.commonlisp"},variable:{patterns:[{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(?:\\*trace-output\\*|\\*terminal-io\\*|\\*standard-output\\*|\\*standard-input\\*|\\*readtable\\*|\\*read-suppress\\*|\\*read-eval\\*|\n\\*read-default-float-format\\*|\\*read-base\\*|\\*random-state\\*|\\*query-io\\*|\\*print-right-margin\\*|\\*print-readably\\*|\\*print-radix\\*|\\*print-pretty\\*|\n\\*print-pprint-dispatch\\*|\\*print-miser-width\\*|\\*print-lines\\*|\\*print-level\\*|\\*print-length\\*|\\*print-gensym\\*|\\*print-escape\\*|\\*print-circle\\*|\n\\*print-case\\*|\\*print-base\\*|\\*print-array\\*|\\*package\\*|\\*modules\\*|\\*macroexpand-hook\\*|\\*load-verbose\\*|\\*load-truename\\*|\\*load-print\\*|\n\\*load-pathname\\*|\\*gensym-counter\\*|\\*features\\*|\\*error-output\\*|\\*default-pathname-defaults\\*|\\*debugger-hook\\*|\\*debug-io\\*|\\*compile-verbose\\*|\n\\*compile-print\\*|\\*compile-file-truename\\*|\\*compile-file-pathname\\*|\\*break-on-signals\\*)\n(?=(\\s|\\(|\\)))",name:"string.regexp.earmuffsasterisk.commonlisp"},{match:"(?xi)\n(?<=^|\\s|\\(|,@|,\\.|,)\n(?:\\*\\*\\*|\\*\\*|\\+\\+\\+|\\+\\+|\\/\\/\\/|\\/\\/)\n(?=(\\s|\\(|\\)))",name:"variable.other.repl.commonlisp"}]}},r="source.commonlisp",m={displayName:e,fileTypes:n,foldingStartMarker:"\\(",foldingStopMarker:"\\)",name:o,patterns:i,repository:s,scopeName:r};export{m as default,e as displayName,n as fileTypes,a as foldingStartMarker,t as foldingStopMarker,o as name,i as patterns,s as repository,r as scopeName}; diff --git a/lib/dist/grammar/cpp.mjs b/lib/dist/grammar/cpp.mjs new file mode 100644 index 0000000..cdabeab --- /dev/null +++ b/lib/dist/grammar/cpp.mjs @@ -0,0 +1 @@ +var e="C++",n="cpp",t=[{include:"#ever_present_context"},{include:"#constructor_root"},{include:"#destructor_root"},{include:"#function_definition"},{include:"#operator_overload"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#namespace_block"},{include:"#extern_block"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#template_isolated_definition"},{include:"#template_definition"},{include:"#template_explicit_instantiation"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#evaluation_context"}],c={access_control_keywords:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"storage.type.modifier.access.control.$4.cpp"},4:{},5:{name:"punctuation.separator.colon.access.control.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?:(?:protected)|(?:private)|(?:public)))(?:\\s+)?(:))"},alignas_attribute:{begin:"alignas\\(",beginCaptures:{0:{name:"punctuation.section.attribute.begin.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",beginCaptures:{},end:"\\)",endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"},{include:"#ever_present_context"}]},{captures:{1:{name:"keyword.other.using.directive.cpp"},2:{name:"entity.name.namespace.cpp"}},match:"(using)\\s+((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.class.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cpp"}},name:"meta.head.class.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.class.cpp",patterns:[{include:"$self"}]}]},class_declare:{captures:{1:{name:"storage.type.class.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.class.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|%|"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?',name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.italic.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.bold.doxygen.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{name:"markup.inline.raw.string.cpp"}},match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)"},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{captures:{1:{name:"storage.type.class.doxygen.cpp"},2:{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.cpp"}]},3:{patterns:[{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{include:"#functional_specifiers_pre_parameters"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.initializers.cpp"}},end:"(?=\\{)",endCaptures:{},patterns:[{begin:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",beginCaptures:{1:{name:"entity.name.function.call.initializer.cpp"},2:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},constructor_root:{begin:"\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{include:"#functional_specifiers_pre_parameters"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.initializers.cpp"}},end:"(?=\\{)",endCaptures:{},patterns:[{begin:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",beginCaptures:{1:{name:"entity.name.function.call.initializer.cpp"},2:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},3:{},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},control_flow_keywords:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"keyword.control.$3.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\")[^\\"]*(\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)',name:"meta.preprocessor.import.cpp"},d9bc4796b0b_preprocessor_number_literal:{captures:{0:{patterns:[{begin:"(?=.)",beginCaptures:{},end:"$",endCaptures:{},patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.cpp"},2:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},3:{name:"punctuation.separator.constant.numeric.cpp"},4:{name:"constant.numeric.hexadecimal.cpp"},5:{name:"constant.numeric.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},6:{name:"punctuation.separator.constant.numeric.cpp"},7:{name:"keyword.other.unit.exponent.hexadecimal.cpp"},8:{name:"keyword.operator.plus.exponent.hexadecimal.cpp"},9:{name:"keyword.operator.minus.exponent.hexadecimal.cpp"},10:{name:"constant.numeric.exponent.hexadecimal.cpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.cpp"}]},11:{name:"keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},patterns:[]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},destructor_root:{begin:"((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},7:{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},patterns:[]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},diagnostic:{begin:"(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$7.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"punctuation.definition.directive.cpp"},7:{}},end:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.enum.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.enum.cpp"}},name:"meta.head.enum.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.enum.cpp"}},name:"meta.body.enum.cpp",patterns:[{include:"#ever_present_context"},{include:"#enumerator_list"},{include:"#comments"},{include:"#comma"},{include:"#semicolon"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.enum.cpp",patterns:[{include:"$self"}]}]},enum_declare:{captures:{1:{name:"storage.type.enum.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.enum.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.extern.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.extern.cpp"}},name:"meta.head.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.extern.cpp"}},name:"meta.body.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.extern.cpp",patterns:[{include:"$self"}]},{include:"$self"}]},function_body_context:{patterns:[{include:"#ever_present_context"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#switch_statement"},{include:"#goto_statement"},{include:"#evaluation_context"},{include:"#label"}]},function_call:{begin:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",beginCaptures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.function.call.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},11:{},12:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},13:{name:"comment.block.cpp"},14:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},15:{name:"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.call.cpp"}},patterns:[{include:"#evaluation_context"}]},function_definition:{begin:"(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},14:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},15:{patterns:[{include:"#inline_comment"}]},16:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},17:{name:"comment.block.cpp"},18:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},19:{patterns:[{include:"#inline_comment"}]},20:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},21:{name:"comment.block.cpp"},22:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},23:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.cpp"}},name:"meta.head.function.definition.cpp",patterns:[{include:"#ever_present_context"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.cpp"}},contentName:"meta.function.definition.parameters",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#parameter_or_maybe_value"},{include:"#comma"},{include:"#evaluation_context"}]},{captures:{1:{name:"punctuation.definition.function.return-type.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},10:{name:"comment.block.cpp"},11:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},12:{patterns:[{include:"#inline_comment"}]},13:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},14:{name:"comment.block.cpp"},15:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},16:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.cpp"}},name:"meta.body.function.definition.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.cpp",patterns:[{include:"$self"}]}]},function_parameter_context:{patterns:[{include:"#ever_present_context"},{include:"#parameter"},{include:"#comma"}]},function_pointer:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]|\\n)(?!\\()",endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},patterns:[{include:"#function_parameter_context"}]},function_pointer_parameter:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]|\\n)(?!\\()",endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},patterns:[{include:"#function_parameter_context"}]},functional_specifiers_pre_parameters:{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\")[^\\"]*(\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))',name:"meta.preprocessor.include.cpp"},inheritance_context:{patterns:[{include:"#ever_present_context"},{match:",",name:"punctuation.separator.delimiter.comma.inheritance.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))"}]},inline_builtin_storage_type:{captures:{1:{name:"storage.type.primitive.cpp storage.type.built-in.primitive.cpp"},2:{name:"storage.type.cpp storage.type.built-in.cpp"},3:{name:"support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"},4:{name:"support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"}},match:"\\s*+(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))',beginCaptures:{1:{name:"punctuation.definition.capture.begin.lambda.cpp"},2:{name:"meta.lambda.capture.cpp",patterns:[{include:"#the_this_keyword"},{captures:{1:{name:"variable.parameter.capture.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"punctuation.separator.delimiter.comma.cpp"},7:{name:"keyword.operator.assignment.cpp"}},match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))"},{include:"#evaluation_context"}]},3:{},4:{name:"punctuation.definition.capture.end.lambda.cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},7:{name:"comment.block.cpp"},8:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},end:"(?<=[;}])",endCaptures:{},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.lambda.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.lambda.cpp"}},name:"meta.function.definition.parameters.lambda.cpp",patterns:[{include:"#function_parameter_context"}]},{match:"(?",beginCaptures:{0:{name:"punctuation.definition.lambda.return-type.cpp"}},end:"(?=\\{)",endCaptures:{},patterns:[{include:"#comments"},{match:"\\S+",name:"storage.type.return-type.lambda.cpp"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.lambda.cpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.lambda.cpp"}},name:"meta.function.definition.body.lambda.cpp",patterns:[{include:"$self"}]}]},language_constants:{match:"(?|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{include:"#member_access"},{include:"#method_access"}]},8:{name:"variable.other.property.cpp"}},match:"(?:((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())"},memory_operators:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"keyword.operator.wordlike.cpp"},4:{name:"keyword.operator.delete.array.cpp"},5:{name:"keyword.operator.delete.array.bracket.cpp"},6:{name:"keyword.operator.delete.cpp"},7:{name:"keyword.operator.new.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))"},method_access:{begin:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",beginCaptures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"},9:{patterns:[{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.property.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"variable.language.this.cpp"},6:{name:"variable.other.object.access.cpp"},7:{name:"punctuation.separator.dot-access.cpp"},8:{name:"punctuation.separator.pointer-access.cpp"}},match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))"},{include:"#member_access"},{include:"#method_access"}]},10:{name:"entity.name.function.member.cpp"},11:{name:"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"keyword.other.$3.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.block.namespace.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.namespace.cpp"}},name:"meta.head.namespace.cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{captures:{1:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.namespace.cpp"},6:{name:"punctuation.separator.scope-resolution.namespace.block.cpp"},7:{name:"storage.modifier.inline.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.namespace.cpp"}},name:"meta.body.namespace.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.namespace.cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?|(?:(?:[^\'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^\'"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^\'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^\'"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},6:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{include:"#inline_comment"}]},12:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},13:{name:"comment.block.cpp"},14:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},15:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.function.definition.special.operator-overload.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.head.function.definition.special.operator-overload.cpp",patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"}},contentName:"meta.function.definition.parameters.special.operator-overload",end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp"}},patterns:[{include:"#function_parameter_context"},{include:"#evaluation_context"}]},{include:"#qualifiers_and_specifiers_post_parameters"},{captures:{1:{name:"keyword.operator.assignment.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{name:"keyword.other.default.function.cpp"},7:{name:"keyword.other.delete.function.cpp"}},match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.body.function.definition.special.operator-overload.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{captures:{1:{name:"storage.type.struct.parameter.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.struct.parameter.cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},14:{name:"variable.other.object.declare.cpp"},15:{patterns:[{include:"#inline_comment"}]},16:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},17:{patterns:[{include:"#inline_comment"}]},18:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},19:{patterns:[{include:"#inline_comment"}]},20:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},1:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{patterns:[{include:"#inline_comment"}]},5:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},6:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])",name:"meta.qualified_type.cpp"},qualifiers_and_specifiers_post_parameters:{captures:{1:{patterns:[{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},5:{name:"storage.modifier.specifier.functional.post-parameters.$5.cpp"}},match:"((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_function_call:{captures:{0:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_function_call_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.call.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_function_definition:{captures:{0:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_function_definition_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_function_definition_operator_overload:{captures:{0:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_function_definition_operator_overload_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.function.definition.operator-overload.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_namespace_alias:{captures:{0:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_namespace_alias_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.alias.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_namespace_block:{captures:{0:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_namespace_block_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.block.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_namespace_using:{captures:{0:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_namespace_using_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.namespace.using.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_parameter:{captures:{0:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_parameter_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.parameter.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_template_call:{captures:{0:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_template_call_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.call.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},scope_resolution_template_definition:{captures:{0:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},1:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},2:{patterns:[{include:"#template_call_range"}]}},match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+"},scope_resolution_template_definition_inner_generated:{captures:{1:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},2:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},3:{patterns:[{include:"#template_call_range"}]},4:{},5:{name:"entity.name.scope-resolution.template.definition.cpp"},6:{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},7:{},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"}},match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)"},semicolon:{match:";",name:"punctuation.terminator.statement.cpp"},simple_type:{captures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?"},single_line_macro:{captures:{0:{patterns:[{include:"#macro"},{include:"#comments"}]},1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))#define.*(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.struct.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cpp"}},name:"meta.head.struct.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{include:"$self"}]}]},struct_declare:{captures:{1:{name:"storage.type.struct.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.struct.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|\\?\\?>)|(?=[;>\\[\\]=]))",endCaptures:{},name:"meta.block.switch.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.switch.cpp"}},name:"meta.head.switch.cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.switch.cpp"}},name:"meta.body.switch.cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.switch.cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{captures:{1:{name:"storage.type.template.argument.$1.cpp"},2:{name:"entity.name.type.template.cpp"},3:{name:"keyword.operator.assignment.cpp"}},match:"(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)"},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{captures:{0:{patterns:[{include:"#template_call_range"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+",name:"meta.template.call.cpp"},template_call_range:{begin:"<",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},end:">",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}},name:"meta.template.definition.cpp",patterns:[{begin:"(?<=\\w)(?:\\s+)?<",beginCaptures:{0:{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},end:">",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"storage.type.template.argument.$3.cpp"},4:{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cpp"}]},5:{name:"entity.name.type.template.cpp"},6:{name:"storage.type.template.argument.$6.cpp"},7:{name:"punctuation.vararg-ellipses.template.definition.cpp"},8:{name:"entity.name.type.template.cpp"},9:{name:"storage.type.template.cpp"},10:{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"},11:{name:"storage.type.template.argument.$11.cpp"},12:{name:"entity.name.type.template.cpp"},13:{name:"punctuation.section.angle-brackets.end.template.definition.cpp"},14:{name:"storage.type.template.argument.$14.cpp"},15:{name:"entity.name.type.template.cpp"},16:{name:"keyword.operator.assignment.cpp"},17:{name:"punctuation.separator.delimiter.comma.template.argument.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))"},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_explicit_instantiation:{captures:{1:{name:"storage.modifier.specifier.extern.cpp"},2:{name:"storage.type.template.cpp"}},match:"(?)(?:\\s+)?$"},ternary_operator:{applyEndPatternLast:1,begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.cpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}]},the_this_keyword:{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},3:{name:"variable.language.this.cpp"}},match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},9:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{patterns:[{include:"#inline_comment"}]},13:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},14:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.class.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.class.cpp"}},name:"meta.head.class.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.class.cpp",patterns:[{captures:{1:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},12:{name:"comment.block.cpp"},13:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},14:{name:"entity.name.type.alias.cpp"}},match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",beginCaptures:{1:{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},2:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},3:{patterns:[{include:"#inline_comment"}]},4:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},5:{name:"comment.block.cpp"},6:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},7:{patterns:[{include:"#inline_comment"}]},8:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},9:{name:"comment.block.cpp"},10:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},11:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]|\\n)(?!\\()",endCaptures:{1:{name:"punctuation.section.parameters.end.bracket.round.function.pointer.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},patterns:[{include:"#function_parameter_context"}]}]},typedef_struct:{begin:"((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.struct.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.struct.cpp"}},name:"meta.head.struct.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{captures:{1:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},12:{name:"comment.block.cpp"},13:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},14:{name:"entity.name.type.alias.cpp"}},match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.union.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cpp"}},name:"meta.head.union.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.union.cpp",patterns:[{captures:{1:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},2:{patterns:[{include:"#inline_comment"}]},3:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},4:{name:"comment.block.cpp"},5:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},6:{patterns:[{include:"#inline_comment"}]},7:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},8:{name:"comment.block.cpp"},9:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},10:{patterns:[{include:"#inline_comment"}]},11:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},12:{name:"comment.block.cpp"},13:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},14:{name:"entity.name.type.alias.cpp"}},match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?",endCaptures:{0:{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},7:{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))"},undef:{captures:{1:{name:"keyword.control.directive.undef.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"punctuation.definition.directive.cpp"},5:{patterns:[{include:"#inline_comment"}]},6:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},7:{name:"entity.name.function.preprocessor.cpp"}},match:"(^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?undef\\b)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",endCaptures:{1:{name:"punctuation.terminator.statement.cpp"},2:{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.union.cpp",patterns:[{begin:"\\G ?",beginCaptures:{},end:"(?:\\{|<%|\\?\\?<|(?=;))",endCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.union.cpp"}},name:"meta.head.union.cpp",patterns:[{include:"#ever_present_context"},{include:"#inheritance_context"},{include:"#template_call_range"}]},{begin:"(?<=\\{|<%|\\?\\?<)",beginCaptures:{},end:"\\}|%>|\\?\\?>",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",beginCaptures:{},end:"[\\s]*(?=;)",endCaptures:{},name:"meta.tail.union.cpp",patterns:[{include:"$self"}]}]},union_declare:{captures:{1:{name:"storage.type.union.declare.cpp"},2:{patterns:[{include:"#inline_comment"}]},3:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},4:{name:"entity.name.type.union.cpp"},5:{patterns:[{match:"\\*",name:"storage.modifier.pointer.cpp"},{captures:{1:{patterns:[{include:"#inline_comment"}]},2:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},3:{name:"comment.block.cpp"},4:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&",name:"invalid.illegal.reference-type.cpp"},{match:"\\&",name:"storage.modifier.reference.cpp"}]},6:{patterns:[{include:"#inline_comment"}]},7:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},8:{patterns:[{include:"#inline_comment"}]},9:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},10:{patterns:[{include:"#inline_comment"}]},11:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]},12:{name:"variable.other.object.declare.cpp"},13:{patterns:[{include:"#inline_comment"}]},14:{patterns:[{captures:{1:{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},2:{name:"comment.block.cpp"},3:{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+"}]}},match:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?~]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\{(?![^}]*+\\})|\\[(?![^\\]]*+\\]))).*$|[#].*?\\(fold\\)\\s*+$",r="(?x)((^|;)\\s*+end\\s*+([#].*)?$|(^|;)\\s*+end\\..*$|^\\s*+[}\\]] ,?\\s*+([#].*)?$|[#].*?\\(end\\)\\s*+$|^=end)",i="crystal",s=[{captures:{1:{name:"keyword.control.class.crystal"},2:{name:"keyword.control.class.crystal"},3:{name:"entity.name.type.class.crystal"},5:{name:"punctuation.separator.crystal"},6:{name:"support.class.other.type-param.crystal"},7:{name:"entity.other.inherited-class.crystal"},8:{name:"punctuation.separator.crystal"},9:{name:"punctuation.separator.crystal"},10:{name:"support.class.other.type-param.crystal"},11:{name:"punctuation.definition.variable.crystal"}},match:"(?x)^\\s*(abstract)?\\s*(class|struct|union|annotation|enum)\\s+(([.A-Z_:\\x{80}-\\x{10FFFF}][.\\w:\\x{80}-\\x{10FFFF}]*(\\(([,\\s.a-zA-Z0-9_:\\x{80}-\\x{10FFFF}]+)\\))?(\\s*(<)\\s*[.:A-Z\\x{80}-\\x{10FFFF}][.:\\w\\x{80}-\\x{10FFFF}]*(\\(([.a-zA-Z0-9_:]+\\s,)\\))?)?)|((<<)\\s*[.A-Z0-9_:\\x{80}-\\x{10FFFF}]+))",name:"meta.class.crystal"},{captures:{1:{name:"keyword.control.module.crystal"},2:{name:"entity.name.type.module.crystal"},3:{name:"entity.other.inherited-class.module.first.crystal"},4:{name:"punctuation.separator.inheritance.crystal"},5:{name:"entity.other.inherited-class.module.second.crystal"},6:{name:"punctuation.separator.inheritance.crystal"},7:{name:"entity.other.inherited-class.module.third.crystal"},8:{name:"punctuation.separator.inheritance.crystal"}},match:"^\\s*(module)\\s+(([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))*[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",name:"meta.module.crystal"},{captures:{1:{name:"keyword.control.lib.crystal"},2:{name:"entity.name.type.lib.crystal"},3:{name:"entity.other.inherited-class.lib.first.crystal"},4:{name:"punctuation.separator.inheritance.crystal"},5:{name:"entity.other.inherited-class.lib.second.crystal"},6:{name:"punctuation.separator.inheritance.crystal"},7:{name:"entity.other.inherited-class.lib.third.crystal"},8:{name:"punctuation.separator.inheritance.crystal"}},match:"^\\s*(lib)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.lib.crystal"},{captures:{1:{name:"keyword.control.lib.type.crystal"},2:{name:"entity.name.lib.type.crystal"},3:{name:"keyword.control.lib.crystal"},4:{name:"entity.name.lib.type.value.crystal"}},comment:"type in lib",match:"(?|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])",name:"variable.other.readwrite.global.pre-defined.crystal"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.crystal"}},end:"\\]",name:"meta.environment-variable.crystal",patterns:[{include:"$self"}]},{comment:"Literals name of Crystal",match:"\\b[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*",name:"support.class.crystal"},{comment:"Fetch from https://crystal-lang.org/api/0.36.1/toplevel.html",match:"(?[a-zA-Z_]\\w*(?>\\.|::))?\n(?>\n[a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n|\n\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n)\n)\n\\s*(\\()",beginCaptures:{1:{name:"keyword.control.def.crystal"},2:{name:"entity.name.function.crystal"},3:{name:"punctuation.definition.parameters.crystal"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.crystal"}},name:"meta.function.method.with-arguments.crystal",patterns:[{begin:"(?![\\s,)])",end:"(?=,|\\)\\s*)",patterns:[{captures:{1:{name:"storage.type.variable.crystal"},2:{name:"constant.other.symbol.hashkey.parameter.function.crystal"},3:{name:"punctuation.definition.constant.hashkey.crystal"},4:{name:"variable.parameter.function.crystal"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.crystal"},3:{name:"entity.name.function.crystal"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?x)\n(?=def\\b)\n(?<=^|\\s)(def)\\b\n(\n\\s+\n(\n(?>[a-zA-Z_]\\w*(?>\\.|::))?\n(?>\n[a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n|\n\\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n)\n)\n)?",name:"meta.function.method.without-arguments.crystal"},{comment:"Floating point literal (fraction)",match:"\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b",name:"constant.numeric.float.crystal"},{comment:"Floating point literal (exponent)",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b",name:"constant.numeric.float.crystal"},{comment:"Floating point literal (typed)",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b",name:"constant.numeric.float.crystal"},{comment:"Integer literal (decimal)",match:"\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.decimal.crystal"},{comment:"Integer literal (hexadecimal)",match:"\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.hexadecimal.crystal"},{comment:"Integer literal (octal)",match:"\\b0o[0-7_]+([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.octal.crystal"},{comment:"Integer literal (binary)",match:"\\b0b[01_]+([ui](8|16|32|64|128))?\\b",name:"constant.numeric.integer.binary.crystal"},{begin:":'",beginCaptures:{0:{name:"punctuation.definition.symbol.begin.crystal"}},comment:"symbol literal with '' delimiter",end:"'",endCaptures:{0:{name:"punctuation.definition.symbol.end.crystal"}},name:"constant.other.symbol.crystal",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.crystal"}]},{begin:':"',beginCaptures:{0:{name:"punctuation.section.symbol.begin.crystal"}},comment:'symbol literal with "" delimiter',end:'"',endCaptures:{0:{name:"punctuation.section.symbol.end.crystal"}},name:"constant.other.symbol.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:"%x\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"execute string (allow for interpolation)",end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:"%x\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"execute string (allow for interpolation)",end:"\\|",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?x) (?: ^| (?<=[=>~(?:\\[,|&;] | [\\s;]if\\s| [\\s;]elsif\\s | [\\s;]while\\s | [\\s;]unless\\s | [\\s;]when\\s | [\\s;]assert_match\\s | [\\s;]or\\s| [\\s;]and\\s | [\\s;]not\\s | [\\s.]index\\s| [\\s.]scan\\s | [\\s.]sub\\s | [\\s.]sub!\\s | [\\s.]gsub\\s | [\\s.]gsub!\\s | [\\s.]match\\s ) | (?<=^when\\s| ^if\\s | ^elsif\\s | ^while\\s | ^unless\\s ) ) \\s*((/))(?![*+{}?])",captures:{1:{name:"string.regexp.classic.crystal"},2:{name:"punctuation.definition.string.crystal"}},comment:"regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp",contentName:"string.regexp.classic.crystal",end:"((/[imsx]*))",patterns:[{include:"#regex_sub"}]},{begin:"%r\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\}[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:"%r\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\][imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:"%r\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\)[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:"%r\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\>[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:"%r\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\|[imsx]*",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"}]},{begin:"%Q?\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation ()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:"%Q?\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation []",end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:"%Q?\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation <>",end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:"%Q?\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation -- {}",end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.double.crystal.mod",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:"%Q\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation -- ||",end:"\\|",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"%[qwi]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- ()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\)|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_parens"}]},{begin:"%[qwi]\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- <>",end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\>|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_ltgt"}]},{begin:"%[qwi]\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- []",end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\]|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_brackets"}]},{begin:"%[qwi]\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- {}",end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\}|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_curly"}]},{begin:"%[qwi]\\|",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- ||",end:"\\|",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:"\\\\."}]},{captures:{1:{name:"punctuation.definition.constant.crystal"}},comment:"symbols",match:"(?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",name:"constant.other.symbol.crystal"},{captures:{1:{name:"punctuation.definition.constant.crystal"}},comment:"symbols",match:"(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.crystal.19syntax"},{captures:{1:{name:"punctuation.definition.comment.crystal"}},match:"(?:^[ \\t]+)?(#).*$\\n?",name:"comment.line.number-sign.crystal"},{match:"(?<<-('?)((?:[_\\w]+_|)HTML)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded HTML and indented terminator",contentName:"text.html.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.html.crystal",patterns:[{include:"#heredoc"},{include:"text.html.basic"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)SQL)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded SQL and indented terminator",contentName:"text.sql.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.sql.crystal",patterns:[{include:"#heredoc"},{include:"source.sql"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CSS)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded css and intented terminator",contentName:"text.css.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.css.crystal",patterns:[{include:"#heredoc"},{include:"source.css"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CPP)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded c++ and intented terminator",contentName:"text.c++.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.cplusplus.crystal",patterns:[{include:"#heredoc"},{include:"source.c++"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)C)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded c++ and intented terminator",contentName:"text.c.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.c.crystal",patterns:[{include:"#heredoc"},{include:"source.c"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded javascript and intented terminator",contentName:"text.js.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.js.crystal",patterns:[{include:"#heredoc"},{include:"source.js"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)JQUERY)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded javascript and intented terminator",contentName:"text.js.jquery.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.js.jquery.crystal",patterns:[{include:"#heredoc"},{include:"source.js.jquery"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded shell and intented terminator",contentName:"text.shell.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.shell.crystal",patterns:[{include:"#heredoc"},{include:"source.shell"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CRYSTAL)\\b\\1)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded crystal and intented terminator",contentName:"text.crystal.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.crystal.crystal",patterns:[{include:"#heredoc"},{include:"source.crystal"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-'(\\w+)')",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with indented terminator",end:"\\s*\\1\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.heredoc.crystal",patterns:[{include:"#heredoc"},{include:"#escaped_char"}]},{begin:"(?><<-(\\w+)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with indented terminator",end:"\\s*\\1\\b",endCaptures:{0:{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.heredoc.crystal",patterns:[{include:"#heredoc"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?<={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)",captures:{1:{name:"punctuation.separator.variable.crystal"}},end:"(?",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.crystal"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.crystal"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.crystal"},{match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.crystal"},{match:"(\\{\\%|\\%\\}|\\{\\{|\\}\\})",name:"keyword.operator.macro.crystal"},{captures:{1:{name:"punctuation.separator.method.crystal"}},comment:"Safe navigation operator",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|\\-|/)",name:"keyword.operator.arithmetic.crystal"},{match:"=",name:"keyword.operator.assignment.crystal"},{match:"\\||~|>>",name:"keyword.operator.other.crystal"},{match:":",name:"punctuation.separator.other.crystal"},{match:"\\;",name:"punctuation.separator.statement.crystal"},{match:",",name:"punctuation.separator.object.crystal"},{match:"\\.|::",name:"punctuation.separator.method.crystal"},{match:"\\{|\\}",name:"punctuation.section.scope.crystal"},{match:"\\[|\\]",name:"punctuation.section.array.crystal"},{match:"\\(|\\)",name:"punctuation.section.function.crystal"},{begin:"(?=[a-zA-Z0-9_!?]+\\()",end:"(?<=\\))",name:"meta.function-call.crystal",patterns:[{match:"([a-zA-Z0-9_!?]+)(?=\\()",name:"entity.name.function.crystal"},{include:"$self"}]},{comment:"This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors",match:"((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\]\\)\\}\\=\\+\\-\\*\\/\\^\\$\\,\\.]|<\\s|<<[\\s|\\.]))",name:"variable.other.crystal"}],c={escaped_char:{comment:"https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html",match:"\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\{[a-fA-F0-9 ]+\\}|.)",name:"constant.character.escape.crystal"},heredoc:{begin:"^<<-?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_crystal:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.crystal"}},contentName:"source.crystal",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.crystal"},1:{name:"source.crystal"}},name:"meta.embedded.line.crystal",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.crystal"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.crystal"},{captures:{1:{name:"punctuation.definition.variable.crystal"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.crystal"},{captures:{1:{name:"punctuation.definition.variable.crystal"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.crystal"}]},nest_brackets:{begin:"\\[",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:"\\[",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:"\\[",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:"\\<",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:"\\<",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:"\\<",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:"\\(",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:"\\(",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:"\\(",captures:{0:{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.crystal"},3:{name:"punctuation.definition.arbitrary-repetition.crystal"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.crystal"},{begin:"\\[(?:\\^?])?",captures:{0:{name:"punctuation.definition.character-class.crystal"}},end:"]",name:"string.regexp.character-class.crystal",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.crystal"}},end:"\\)",name:"string.regexp.group.crystal",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.comment.crystal"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.crystal"}]}},l="source.crystal",o={displayName:e,fileTypes:t,firstLineMatch:n,foldingStartMarker:a,foldingStopMarker:r,name:i,patterns:s,repository:c,scopeName:l};export{o as default,e as displayName,t as fileTypes,n as firstLineMatch,a as foldingStartMarker,r as foldingStopMarker,i as name,s as patterns,c as repository,l as scopeName}; diff --git a/lib/dist/grammar/csharp.mjs b/lib/dist/grammar/csharp.mjs new file mode 100644 index 0000000..25d9518 --- /dev/null +++ b/lib/dist/grammar/csharp.mjs @@ -0,0 +1 @@ +var e="C#",n="csharp",t=[{include:"#preprocessor"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],a={"accessor-getter":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},contentName:"meta.accessor.getter.cs",end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#statement"}]},{include:"#accessor-getter-expression"},{include:"#punctuation-semicolon"}]},"accessor-getter-expression":{begin:"=>",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},contentName:"meta.accessor.getter.cs",end:"(?=;|\\})",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"accessor-setter":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},contentName:"meta.accessor.setter.cs",end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#statement"}]},{begin:"=>",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},contentName:"meta.accessor.setter.cs",end:"(?=;|\\})",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},{include:"#punctuation-semicolon"}]},"anonymous-method-expression":{patterns:[{begin:"(?x)\n((?:\\b(?:async|static)\\b\\s*)*)\n(?:\n(@?[_[:alpha:]][_[:alnum:]]*)\\b|\n(\\()\n(?(?:[^()]|\\(\\g\\))*)\n(\\))\n)\\s*\n(=>)",beginCaptures:{1:{patterns:[{match:"async|static",name:"storage.modifier.$0.cs"}]},2:{name:"entity.name.variable.parameter.cs"},3:{name:"punctuation.parenthesis.open.cs"},4:{patterns:[{include:"#comment"},{include:"#explicit-anonymous-function-parameter"},{include:"#implicit-anonymous-function-parameter"},{include:"#default-argument"},{include:"#punctuation-comma"}]},5:{name:"punctuation.parenthesis.close.cs"},6:{name:"keyword.operator.arrow.cs"}},end:"(?=[,;)}])",patterns:[{include:"#intrusive"},{begin:"(?={)",end:"(?=[,;)}])",patterns:[{include:"#block"},{include:"#intrusive"}]},{begin:"\\b(ref)\\b|(?=\\S)",beginCaptures:{1:{name:"storage.modifier.ref.cs"}},end:"(?=[,;)}])",patterns:[{include:"#expression"}]}]},{begin:"(?x)\n((?:\\b(?:async|static)\\b\\s*)*)\n\\b(delegate)\\b\\s*",beginCaptures:{1:{patterns:[{match:"async|static",name:"storage.modifier.$0.cs"}]},2:{name:"storage.type.delegate.cs"}},end:"(?<=})|(?=[,;)}])",patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#intrusive"},{include:"#explicit-anonymous-function-parameter"},{include:"#punctuation-comma"}]},{include:"#block"}]}]},"anonymous-object-creation-expression":{begin:"\\b(new)\\b\\s*(?=\\{|//|/\\*|$)",beginCaptures:{1:{name:"keyword.operator.expression.new.cs"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#initializer-expression"}]},argument:{patterns:[{match:"\\b(ref|in)\\b",name:"storage.modifier.$1.cs"},{begin:"\\b(out)\\b",beginCaptures:{1:{name:"storage.modifier.out.cs"}},end:"(?=,|\\)|\\])",patterns:[{include:"#declaration-expression-local"},{include:"#expression"}]},{include:"#expression"}]},"argument-list":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#named-argument"},{include:"#argument"},{include:"#punctuation-comma"}]},"array-creation-expression":{begin:"(?x)\n\\b(new|stackalloc)\\b\\s*\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)?\\s*\n(?=\\[)",beginCaptures:{1:{name:"keyword.operator.expression.$1.cs"},2:{patterns:[{include:"#type"}]}},end:"(?<=\\])",patterns:[{include:"#bracketed-argument-list"}]},"as-expression":{captures:{1:{name:"keyword.operator.expression.as.cs"},2:{patterns:[{include:"#type"}]}},match:"(?x)\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?(?!\\?))?\n(?:\\s*\n\\[\n\\s*(?:,\\s*)*\n\\]\n(?:\\s*\\?(?!\\?))?\n)*\n)\n)?"},"assignment-expression":{begin:"(?:\\*|/|%|\\+|-|\\?\\?|\\&|\\^|<<|>>>?|\\|)?=(?!=|>)",beginCaptures:{0:{patterns:[{include:"#assignment-operators"}]}},end:"(?=[,\\)\\];}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"assignment-operators":{patterns:[{match:"\\*=|/=|%=|\\+=|-=|\\?\\?=",name:"keyword.operator.assignment.compound.cs"},{match:"\\&=|\\^=|<<=|>>>?=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cs"},{match:"\\=",name:"keyword.operator.assignment.cs"}]},attribute:{patterns:[{include:"#type-name"},{include:"#type-arguments"},{include:"#attribute-arguments"}]},"attribute-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#attribute-named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"attribute-named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)",beginCaptures:{1:{name:"entity.name.variable.property.cs"}},end:"(?=(,|\\)))",patterns:[{include:"#operator-assignment"},{include:"#expression"}]},"attribute-section":{begin:"(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?",beginCaptures:{1:{name:"punctuation.squarebracket.open.cs"},2:{name:"keyword.other.attribute-specifier.cs"},3:{name:"punctuation.separator.colon.cs"}},end:"(\\])",endCaptures:{1:{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute"},{include:"#punctuation-comma"}]},"await-expression":{match:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s*\n(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])"},"casted-constant-pattern":{begin:"(?x)\n(\\()\n([\\s.:@_[:alnum:]]+)\n(\\))\n(?=[\\s+\\-!~]*@?[_[:alnum:]('\"]+)",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"},2:{patterns:[{include:"#type-builtin"},{include:"#type-name"}]},3:{name:"punctuation.parenthesis.close.cs"}},end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#casted-constant-pattern"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#constant-pattern"}]},{include:"#constant-pattern"},{captures:{1:{name:"entity.name.type.alias.cs"},2:{name:"punctuation.separator.coloncolon.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)"},{captures:{1:{name:"entity.name.type.cs"},2:{name:"punctuation.accessor.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)"},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"variable.other.constant.cs"}]},"catch-clause":{begin:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s*\n(?:(\\g)\\b)?"}]},{include:"#when-clause"},{include:"#comment"},{include:"#block"}]},"char-character-escape":{match:"\\\\(x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4}|.)",name:"constant.character.escape.cs"},"char-literal":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.char.begin.cs"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.char.end.cs"},2:{name:"invalid.illegal.newline.cs"}},name:"string.quoted.single.cs",patterns:[{include:"#char-character-escape"}]},"class-declaration":{begin:"(?=(\\brecord\\b\\s+)?\\bclass\\b)",end:"(?<=\\})|(?=;)",patterns:[{begin:"(?x)\n(\\b(record)\\b\\s+)?\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*",beginCaptures:{2:{name:"storage.type.record.cs"},3:{name:"storage.type.class.cs"},4:{name:"entity.name.type.class.cs"}},end:"(?=\\{)|(?=;)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#parenthesized-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#class-or-struct-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"class-or-struct-members":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#type-declarations"},{include:"#property-declaration"},{include:"#field-declaration"},{include:"#event-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#destructor-declaration"},{include:"#operator-declaration"},{include:"#conversion-operator-declaration"},{include:"#method-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"combinator-pattern":{match:"\\b(and|or|not)\\b",name:"keyword.operator.expression.pattern.combinator.$1.cs"},comment:{patterns:[{begin:"(^\\s+)?(///)(?!/)",captures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}},name:"comment.block.documentation.cs",patterns:[{include:"#xml-doc-comment"}],while:"^(\\s*)(///)(?!/)"},{begin:"(^\\s+)?(/\\*\\*)(?!/)",captures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}},end:"(^\\s+)?(\\*/)",name:"comment.block.documentation.cs",patterns:[{begin:"\\G(?=(?~\\*/)$)",patterns:[{include:"#xml-doc-comment"}],while:"^(\\s*+)(\\*(?!/))?(?=(?~\\*/)$)",whileCaptures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}}},{include:"#xml-doc-comment"}]},{begin:"(^\\s+)?(//).*$",captures:{1:{name:"punctuation.whitespace.comment.leading.cs"},2:{name:"punctuation.definition.comment.cs"}},name:"comment.line.double-slash.cs",while:"^(\\s*)(//).*$"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.cs"}},end:"\\*/",name:"comment.block.cs"}]},"conditional-operator":{patterns:[{match:"\\?(?!\\?|\\s*[.\\[])",name:"keyword.operator.conditional.question-mark.cs"},{match:":",name:"keyword.operator.conditional.colon.cs"}]},"constant-pattern":{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#char-literal"},{include:"#string-literal"},{include:"#raw-string-literal"},{include:"#verbatim-string-literal"},{include:"#type-operator-expression"},{include:"#expression-operator-expression"},{include:"#expression-operators"},{include:"#casted-constant-pattern"}]},"constructor-declaration":{begin:"(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()",end:"(?<=\\})|(?=;)",patterns:[{captures:{1:{name:"entity.name.function.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b"},{begin:"(:)",beginCaptures:{1:{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|=>)",patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#preprocessor"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:"\\b(base|this)\\b\\s*(?=\\()",beginCaptures:{1:{name:"variable.language.$1.cs"}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"context-control-paren-statement":{patterns:[{include:"#fixed-statement"},{include:"#lock-statement"},{include:"#using-statement"}]},"context-control-statement":{match:"\\b(checked|unchecked|unsafe)\\b(?!\\s*[@_[:alpha:](])",name:"keyword.control.context.$1.cs"},"conversion-operator-declaration":{begin:"(?x)\n(?(?:\\b(?:explicit|implicit)))\\s*\n(?(?:\\b(?:operator)))\\s*\n(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s*\n(?=\\()",beginCaptures:{1:{patterns:[{captures:{1:{name:"storage.modifier.explicit.cs"}},match:"\\b(explicit)\\b"},{captures:{1:{name:"storage.modifier.implicit.cs"}},match:"\\b(implicit)\\b"}]},2:{name:"storage.type.operator.cs"},3:{patterns:[{include:"#type"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"declaration-expression-local":{captures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.local.cs"}},match:"(?x)\n(?:\n\\b(var)\\b|\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\n)\\s+\n(\\g)\\b\\s*\n(?=[,)\\]])"},"declaration-expression-tuple":{captures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.tuple-element.cs"}},match:"(?x)\n(?:\n\\b(var)\\b|\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\n)\\s+\n(\\g)\\b\\s*\n(?=[,)])"},declarations:{patterns:[{include:"#namespace-declaration"},{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},"default-argument":{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.cs"}},end:"(?=,|\\))",patterns:[{include:"#expression"}]},"default-literal-expression":{captures:{1:{name:"keyword.operator.expression.default.cs"}},match:"\\b(default)\\b"},"delegate-declaration":{begin:"(?x)\n(?:\\b(delegate)\\b)\\s+\n(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",beginCaptures:{1:{name:"storage.type.delegate.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.type.delegate.cs"},8:{patterns:[{include:"#type-parameter-list"}]}},end:"(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"}]},"designation-pattern":{patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#punctuation-comma"},{include:"#designation-pattern"}]},{include:"#simple-designation-pattern"}]},"destructor-declaration":{begin:"(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()",beginCaptures:{1:{name:"punctuation.tilde.cs"},2:{name:"entity.name.function.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},directives:{patterns:[{include:"#extern-alias-directive"},{include:"#using-directive"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"discard-pattern":{match:"_(?![_[:alnum:]])",name:"variable.language.discard.cs"},"do-statement":{begin:"(?)\\s*\n)?\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)?\n(?:(\\?)\\s*)?\n(?=\\[)",beginCaptures:{1:{name:"keyword.operator.null-conditional.cs"},2:{name:"punctuation.accessor.cs"},3:{name:"punctuation.accessor.pointer.cs"},4:{name:"variable.other.object.property.cs"},5:{name:"keyword.operator.null-conditional.cs"}},end:"(?<=\\])(?!\\s*\\[)",patterns:[{include:"#bracketed-argument-list"}]},"else-part":{begin:"(?|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.accessor.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-setter"}]}]},"event-declaration":{begin:"(?x)\n\\b(event)\\b\\s*\n(?\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s*\n(?=\\{|;|,|=|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.event.cs"},2:{patterns:[{include:"#type"}]},8:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},9:{name:"entity.name.variable.event.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#event-accessors"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.event.cs"},{include:"#punctuation-comma"},{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.cs"}},end:"(?<=,)|(?=;)",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]}]},"explicit-anonymous-function-parameter":{captures:{1:{name:"storage.modifier.$1.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.parameter.cs"}},match:"(?x)\n(?:\\b(ref|params|out|in)\\b\\s*)?\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?<(?:[^<>]|\\g)*>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^()]|\\g)*\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s*\n\\b(\\g)\\b"},expression:{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#expression-operator-expression"},{include:"#type-operator-expression"},{include:"#default-literal-expression"},{include:"#throw-expression"},{include:"#raw-interpolated-string"},{include:"#interpolated-string"},{include:"#verbatim-interpolated-string"},{include:"#type-builtin"},{include:"#language-variable"},{include:"#switch-statement-or-expression"},{include:"#with-expression"},{include:"#conditional-operator"},{include:"#assignment-expression"},{include:"#expression-operators"},{include:"#await-expression"},{include:"#query-expression"},{include:"#as-expression"},{include:"#is-expression"},{include:"#anonymous-method-expression"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#anonymous-object-creation-expression"},{include:"#invocation-expression"},{include:"#member-access-expression"},{include:"#element-access-expression"},{include:"#cast-expression"},{include:"#literal"},{include:"#parenthesized-expression"},{include:"#tuple-deconstruction-assignment"},{include:"#initializer-expression"},{include:"#identifier"}]},"expression-body":{begin:"=>",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},end:"(?=[,\\);}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"expression-operator-expression":{begin:"\\b(checked|unchecked|nameof)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.expression.$1.cs"},2:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#expression"}]},"expression-operators":{patterns:[{match:"<<|>>>?",name:"keyword.operator.bitwise.shift.cs"},{match:"==|!=",name:"keyword.operator.comparison.cs"},{match:"<=|>=|<|>",name:"keyword.operator.relational.cs"},{match:"\\!|&&|\\|\\|",name:"keyword.operator.logical.cs"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.cs"},{match:"--",name:"keyword.operator.decrement.cs"},{match:"\\+\\+",name:"keyword.operator.increment.cs"},{match:"\\+|-(?!>)|\\*|/|%",name:"keyword.operator.arithmetic.cs"},{match:"\\?\\?",name:"keyword.operator.null-coalescing.cs"},{match:"\\.\\.",name:"keyword.operator.range.cs"}]},"extern-alias-directive":{begin:"\\b(extern)\\s+(alias)\\b",beginCaptures:{1:{name:"keyword.other.directive.extern.cs"},2:{name:"keyword.other.directive.alias.cs"}},end:"(?=;)",patterns:[{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"variable.other.alias.cs"}]},"field-declaration":{begin:"(?x)\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n(\\g)\\s*\n(?!=>|==)(?=,|;|=|$)",beginCaptures:{1:{patterns:[{include:"#type"}]},6:{name:"entity.name.variable.field.cs"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.field.cs"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-struct-members"}]},"finally-clause":{begin:"(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\n)\\s+\n(\\g)\\s+\n\\b(in)\\b"},{captures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]},3:{name:"keyword.control.loop.in.cs"}},match:"(?x)\n(?:\\b(var)\\b\\s*)?\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s+\n\\b(in)\\b"},{include:"#expression"}]}]},"generic-constraints":{begin:"(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{1:{name:"storage.modifier.where.cs"},2:{name:"entity.name.type.type-parameter.cs"},3:{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|where|;|=>)",patterns:[{match:"\\bclass\\b",name:"storage.type.class.cs"},{match:"\\bstruct\\b",name:"storage.type.struct.cs"},{match:"\\bdefault\\b",name:"keyword.other.constraint.default.cs"},{match:"\\bnotnull\\b",name:"keyword.other.constraint.notnull.cs"},{match:"\\bunmanaged\\b",name:"keyword.other.constraint.unmanaged.cs"},{captures:{1:{name:"keyword.operator.expression.new.cs"},2:{name:"punctuation.parenthesis.open.cs"},3:{name:"punctuation.parenthesis.close.cs"}},match:"(new)\\s*(\\()\\s*(\\))"},{include:"#type"},{include:"#punctuation-comma"},{include:"#generic-constraints"}]},"goto-statement":{begin:"(?\n(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?this)\\s*\n(?=\\[)",beginCaptures:{1:{patterns:[{include:"#type"}]},7:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},8:{name:"variable.language.this.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#bracketed-parameter-list"},{include:"#property-accessors"},{include:"#accessor-getter-expression"},{include:"#variable-initializer"}]},"initializer-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-declaration":{begin:"(?=\\binterface\\b)",end:"(?<=\\})",patterns:[{begin:"(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"storage.type.interface.cs"},2:{name:"entity.name.type.interface.cs"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#interface-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"interface-members":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#property-declaration"},{include:"#event-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#operator-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"interpolated-string":{begin:'\\$"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.cs"},2:{name:"invalid.illegal.newline.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#string-character-escape"},{include:"#interpolation"}]},interpolation:{begin:"(?<=[^\\{]|^)((?:\\{\\{)*)(\\{)(?=[^\\{])",beginCaptures:{1:{name:"string.quoted.double.cs"},2:{name:"punctuation.definition.interpolation.begin.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.cs"}},name:"meta.interpolation.cs",patterns:[{include:"#expression"}]},intrusive:{patterns:[{include:"#preprocessor"},{include:"#comment"}]},"invocation-expression":{begin:"(?x)\n(?:\n(?:(\\?)\\s*)?\n(\\.)\\s*|\n(->)\\s*\n)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(\n<\n(?\n[^<>()]++|\n<\\g*+>|\n\\(\\g*+\\)\n)*+\n>\\s*\n)?\n(?=\\()",beginCaptures:{1:{name:"keyword.operator.null-conditional.cs"},2:{name:"punctuation.accessor.cs"},3:{name:"punctuation.accessor.pointer.cs"},4:{name:"entity.name.function.cs"},5:{patterns:[{include:"#type-arguments"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"is-expression":{begin:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)?\n\\s+(\\g)\\b\\s*\n\\b(in)\\b\\s*",beginCaptures:{1:{name:"keyword.operator.expression.query.join.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.range-variable.cs"},8:{name:"keyword.operator.expression.query.in.cs"}},end:"(?=;|\\))",patterns:[{include:"#join-on"},{include:"#join-equals"},{include:"#join-into"},{include:"#query-body"},{include:"#expression"}]},"join-equals":{captures:{1:{name:"keyword.operator.expression.query.equals.cs"}},match:"\\b(equals)\\b\\s*"},"join-into":{captures:{1:{name:"keyword.operator.expression.query.into.cs"},2:{name:"entity.name.variable.range-variable.cs"}},match:"(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*"},"join-on":{captures:{1:{name:"keyword.operator.expression.query.on.cs"}},match:"\\b(on)\\b\\s*"},"labeled-statement":{captures:{1:{name:"entity.name.label.cs"},2:{name:"punctuation.separator.colon.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)"},"language-variable":{patterns:[{match:"\\b(base|this)\\b",name:"variable.language.$1.cs"},{match:"\\b(value)\\b",name:"variable.other.$1.cs"}]},"let-clause":{begin:"(?x)\n\\b(let)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=)\\s*",beginCaptures:{1:{name:"keyword.operator.expression.query.let.cs"},2:{name:"entity.name.variable.range-variable.cs"},3:{name:"keyword.operator.assignment.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"list-pattern":{begin:"(?=\\[)",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.cs"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#pattern"},{include:"#punctuation-comma"}]},{begin:"(?<=\\])",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#simple-designation-pattern"}]}]},literal:{patterns:[{include:"#boolean-literal"},{include:"#null-literal"},{include:"#numeric-literal"},{include:"#char-literal"},{include:"#raw-string-literal"},{include:"#string-literal"},{include:"#verbatim-string-literal"},{include:"#tuple-literal"}]},"local-constant-declaration":{begin:"(?x)\n(?\\b(?:const)\\b)\\s*\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n(\\g)\\s*\n(?=,|;|=)",beginCaptures:{1:{name:"storage.modifier.const.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.local.cs"}},end:"(?=;)",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.cs"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"},{include:"#local-function-declaration"},{include:"#local-tuple-var-deconstruction"}]},"local-function-declaration":{begin:"(?x)\n\\b((?:(?:async|unsafe|static|extern)\\s+)*)\n(?\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?)?\n(?:\\s*\n\\[\n\\s*(?:,\\s*)*\n\\]\n(?:\\s*\\?)?\n)*\n)\\s+\n(\\g)\\s*\n(<[^<>]+>)?\\s*\n(?=\\()",beginCaptures:{1:{patterns:[{include:"#storage-modifier"}]},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.function.cs"},8:{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"},{include:"#expression-body"},{include:"#block"}]},"local-tuple-var-deconstruction":{begin:"(?x)\n(?:\\b(var)\\b\\s*)\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s*\n(?=;|=|\\))",beginCaptures:{1:{name:"storage.type.var.cs"},2:{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]}},end:"(?=;|\\))",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},"local-variable-declaration":{begin:"(?x)\n(?:\n(?:(\\bref)\\s+(?:(\\breadonly)\\s+)?)?(\\bvar\\b)|\n(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*[?*]\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\n)\\s+\n(\\g)\\s*\n(?!=>)\n(?=,|;|=|\\))",beginCaptures:{1:{name:"storage.modifier.ref.cs"},2:{name:"storage.modifier.readonly.cs"},3:{name:"storage.type.var.cs"},4:{patterns:[{include:"#type"}]},9:{name:"entity.name.variable.local.cs"}},end:"(?=[;)}])",patterns:[{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.variable.local.cs"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"lock-statement":{begin:"\\b(lock)\\b",beginCaptures:{1:{name:"keyword.control.context.lock.cs"}},end:"(?<=\\))|(?=;|})",patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#intrusive"},{include:"#expression"}]}]},"member-access-expression":{patterns:[{captures:{1:{name:"keyword.operator.null-conditional.cs"},2:{name:"punctuation.accessor.cs"},3:{name:"punctuation.accessor.pointer.cs"},4:{name:"variable.other.object.property.cs"}},match:"(?x)\n(?:\n(?:(\\?)\\s*)?\n(\\.)\\s*|\n(->)\\s*\n)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<)"},{captures:{1:{name:"punctuation.accessor.cs"},2:{name:"variable.other.object.cs"},3:{patterns:[{include:"#type-arguments"}]}},match:"(?x)\n(\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\\s*<([^<>]|\\g)+>\\s*)\n(?=\n(\\s*\\?)?\n\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)"},{captures:{1:{name:"variable.other.object.cs"}},match:"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n\\s*(?:(?:\\?\\s*)?\\.|->)\n\\s*@?[_[:alpha:]][_[:alnum:]]*\n)"}]},"method-declaration":{begin:"(?x)\n(?\n(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",beginCaptures:{1:{patterns:[{include:"#type"}]},7:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},8:{name:"entity.name.function.cs"},9:{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"},{include:"#expression-body"},{include:"#block"}]},"named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{1:{name:"entity.name.variable.parameter.cs"},2:{name:"punctuation.separator.colon.cs"}},end:"(?=(,|\\)|\\]))",patterns:[{include:"#argument"}]},"namespace-declaration":{begin:"\\b(namespace)\\s+",beginCaptures:{1:{name:"storage.type.namespace.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.namespace.cs"},{include:"#punctuation-accessor"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#declarations"},{include:"#using-directive"},{include:"#punctuation-semicolon"}]}]},"null-literal":{match:"(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s*\n(?=\\{|//|/\\*|$)"},"object-creation-expression-with-parameters":{begin:"(?x)\n(new)(?:\\s+\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n))?\\s*\n(?=\\()",beginCaptures:{1:{name:"keyword.operator.expression.new.cs"},2:{patterns:[{include:"#type"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"operator-assignment":{match:"(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s*\n\\b(?operator)\\b\\s*\n(?[+\\-*/%&|\\^!=~<>]+|true|false)\\s*\n(?=\\()",beginCaptures:{1:{patterns:[{include:"#type"}]},6:{name:"storage.type.operator.cs"},7:{name:"entity.name.function.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"orderby-clause":{begin:"\\b(orderby)\\b\\s*",beginCaptures:{1:{name:"keyword.operator.expression.query.orderby.cs"}},end:"(?=;|\\))",patterns:[{include:"#ordering-direction"},{include:"#query-body"},{include:"#expression"},{include:"#punctuation-comma"}]},"ordering-direction":{captures:{1:{name:"keyword.operator.expression.query.$1.cs"}},match:"\\b(ascending|descending)\\b"},parameter:{captures:{1:{name:"storage.modifier.$1.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.parameter.cs"}},match:"(?x)\n(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?\n(?\n(?:\n(?:ref\\s+)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^()]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n(\\g)"},"parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#expression"}]},"parenthesized-parameter-list":{begin:"(\\()",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},pattern:{patterns:[{include:"#intrusive"},{include:"#combinator-pattern"},{include:"#discard-pattern"},{include:"#constant-pattern"},{include:"#relational-pattern"},{include:"#var-pattern"},{include:"#type-pattern"},{include:"#positional-pattern"},{include:"#property-pattern"},{include:"#list-pattern"},{include:"#slice-pattern"}]},"positional-pattern":{begin:"(?=\\()",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#subpattern"},{include:"#punctuation-comma"}]},{begin:"(?<=\\))",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#property-pattern"},{include:"#simple-designation-pattern"}]}]},preprocessor:{begin:"^\\s*(\\#)\\s*",beginCaptures:{1:{name:"punctuation.separator.hash.cs"}},end:"(?<=$)",name:"meta.preprocessor.cs",patterns:[{include:"#comment"},{include:"#preprocessor-define-or-undef"},{include:"#preprocessor-if-or-elif"},{include:"#preprocessor-else-or-endif"},{include:"#preprocessor-warning-or-error"},{include:"#preprocessor-region"},{include:"#preprocessor-endregion"},{include:"#preprocessor-load"},{include:"#preprocessor-r"},{include:"#preprocessor-line"},{include:"#preprocessor-pragma-warning"},{include:"#preprocessor-pragma-checksum"}]},"preprocessor-define-or-undef":{captures:{1:{name:"keyword.preprocessor.define.cs"},2:{name:"keyword.preprocessor.undef.cs"},3:{name:"entity.name.variable.preprocessor.symbol.cs"}},match:"\\b(?:(define)|(undef))\\b\\s*\\b([_[:alpha:]][_[:alnum:]]*)\\b"},"preprocessor-else-or-endif":{captures:{1:{name:"keyword.preprocessor.else.cs"},2:{name:"keyword.preprocessor.endif.cs"}},match:"\\b(?:(else)|(endif))\\b"},"preprocessor-endregion":{captures:{1:{name:"keyword.preprocessor.endregion.cs"}},match:"\\b(endregion)\\b"},"preprocessor-expression":{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#preprocessor-expression"}]},{captures:{1:{name:"constant.language.boolean.true.cs"},2:{name:"constant.language.boolean.false.cs"},3:{name:"entity.name.variable.preprocessor.symbol.cs"}},match:"\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\b"},{captures:{1:{name:"keyword.operator.comparison.cs"},2:{name:"keyword.operator.logical.cs"}},match:"(==|!=)|(\\!|&&|\\|\\|)"}]},"preprocessor-if-or-elif":{begin:"\\b(?:(if)|(elif))\\b",beginCaptures:{1:{name:"keyword.preprocessor.if.cs"},2:{name:"keyword.preprocessor.elif.cs"}},end:"(?=$)",patterns:[{include:"#comment"},{include:"#preprocessor-expression"}]},"preprocessor-line":{begin:"\\b(line)\\b",beginCaptures:{1:{name:"keyword.preprocessor.line.cs"}},end:"(?=$)",patterns:[{captures:{1:{name:"keyword.preprocessor.default.cs"},2:{name:"keyword.preprocessor.hidden.cs"}},match:"\\b(?:(default|hidden))"},{captures:{0:{name:"constant.numeric.decimal.cs"}},match:"[0-9]+"},{captures:{0:{name:"string.quoted.double.cs"}},match:'\\"[^"]*\\"'}]},"preprocessor-load":{begin:"\\b(load)\\b",beginCaptures:{1:{name:"keyword.preprocessor.load.cs"}},end:"(?=$)",patterns:[{captures:{0:{name:"string.quoted.double.cs"}},match:'\\"[^"]*\\"'}]},"preprocessor-pragma-checksum":{captures:{1:{name:"keyword.preprocessor.pragma.cs"},2:{name:"keyword.preprocessor.checksum.cs"},3:{name:"string.quoted.double.cs"},4:{name:"string.quoted.double.cs"},5:{name:"string.quoted.double.cs"}},match:'\\b(pragma)\\b\\s*\\b(checksum)\\b\\s*(\\"[^"]*\\")\\s*(\\"[^"]*\\")\\s*(\\"[^"]*\\")'},"preprocessor-pragma-warning":{captures:{1:{name:"keyword.preprocessor.pragma.cs"},2:{name:"keyword.preprocessor.warning.cs"},3:{name:"keyword.preprocessor.disable.cs"},4:{name:"keyword.preprocessor.restore.cs"},5:{patterns:[{captures:{0:{name:"constant.numeric.decimal.cs"}},match:"[0-9]+"},{include:"#punctuation-comma"}]}},match:"\\b(pragma)\\b\\s*\\b(warning)\\b\\s*\\b(?:(disable)|(restore))\\b(\\s*[0-9]+(?:\\s*,\\s*[0-9]+)?)?"},"preprocessor-r":{begin:"\\b(r)\\b",beginCaptures:{1:{name:"keyword.preprocessor.r.cs"}},end:"(?=$)",patterns:[{captures:{0:{name:"string.quoted.double.cs"}},match:'\\"[^"]*\\"'}]},"preprocessor-region":{captures:{1:{name:"keyword.preprocessor.region.cs"},2:{name:"string.unquoted.preprocessor.message.cs"}},match:"\\b(region)\\b\\s*(.*)(?=$)"},"preprocessor-warning-or-error":{captures:{1:{name:"keyword.preprocessor.warning.cs"},2:{name:"keyword.preprocessor.error.cs"},3:{name:"string.unquoted.preprocessor.message.cs"}},match:"\\b(?:(warning)|(error))\\b\\s*(.*)(?=$)"},"property-accessors":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{match:"\\b(private|protected|internal)\\b",name:"storage.modifier.$1.cs"},{begin:"\\b(get)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.accessor.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-getter"}]},{begin:"\\b(set|init)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{1:{name:"storage.type.accessor.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-setter"}]}]},"property-declaration":{begin:"(?x)\n\n# The negative lookahead below ensures that we don't match nested types\n# or other declarations as properties.\n(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)\n\n(?\n(?\n(?:\n(?:ref\\s+(?:readonly\\s+)?)?\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?\\g)\\s*\n(?=\\{|=>|//|/\\*|$)",beginCaptures:{1:{patterns:[{include:"#type"}]},7:{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},8:{name:"entity.name.variable.property.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#accessor-getter-expression"},{include:"#variable-initializer"},{include:"#class-or-struct-members"}]},"property-pattern":{begin:"(?={)",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#subpattern"},{include:"#punctuation-comma"}]},{begin:"(?<=\\})",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#simple-designation-pattern"}]}]},"punctuation-accessor":{match:"\\.",name:"punctuation.accessor.cs"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.cs"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.cs"},"query-body":{patterns:[{include:"#let-clause"},{include:"#where-clause"},{include:"#join-clause"},{include:"#orderby-clause"},{include:"#select-clause"},{include:"#group-clause"}]},"query-expression":{begin:"(?x)\n\\b(from)\\b\\s*\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)?\n\\s+(\\g)\\b\\s*\n\\b(in)\\b\\s*",beginCaptures:{1:{name:"keyword.operator.expression.query.from.cs"},2:{patterns:[{include:"#type"}]},7:{name:"entity.name.variable.range-variable.cs"},8:{name:"keyword.operator.expression.query.in.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"raw-interpolated-string":{patterns:[{include:"#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation"},{include:"#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation"},{include:"#raw-interpolated-string-quadruple-quote-double-interpolation"},{include:"#raw-interpolated-string-quadruple-quote-single-interpolation"},{include:"#raw-interpolated-string-triple-quote-double-interpolation"},{include:"#raw-interpolated-string-triple-quote-single-interpolation"}]},"raw-interpolated-string-five-or-more-quote-one-or-more-interpolation":{begin:'\\$+"""""+',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""""+',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-interpolated-string-quadruple-quote-double-interpolation":{begin:'\\$\\$""""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'""""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#double-raw-interpolation"}]},"raw-interpolated-string-quadruple-quote-single-interpolation":{begin:'\\$""""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'""""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#raw-interpolation"}]},"raw-interpolated-string-three-or-more-quote-three-or-more-interpolation":{begin:'\\$\\$\\$+"""+',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""+',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-interpolated-string-triple-quote-double-interpolation":{begin:'\\$\\$"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#double-raw-interpolation"}]},"raw-interpolated-string-triple-quote-single-interpolation":{begin:'\\$"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#raw-interpolation"}]},"raw-interpolation":{begin:"(?<=[^\\{]|^)((?:\\{)*)(\\{)(?=[^\\{])",beginCaptures:{1:{name:"string.quoted.double.cs"},2:{name:"punctuation.definition.interpolation.begin.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.cs"}},name:"meta.interpolation.cs",patterns:[{include:"#expression"}]},"raw-string-literal":{patterns:[{include:"#raw-string-literal-more"},{include:"#raw-string-literal-quadruple"},{include:"#raw-string-literal-triple"}]},"raw-string-literal-more":{begin:'"""""+',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""""+',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-string-literal-quadruple":{begin:'""""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'""""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"raw-string-literal-triple":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs"},"readonly-modifier":{match:"\\breadonly\\b",name:"storage.modifier.readonly.cs"},"record-declaration":{begin:"(?=\\brecord\\b)",end:"(?<=\\})|(?=;)",patterns:[{begin:"(?x)\n(record)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"storage.type.record.cs"},2:{name:"entity.name.type.class.cs"}},end:"(?=\\{)|(?=;)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#parenthesized-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#class-or-struct-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"ref-modifier":{match:"\\bref\\b",name:"storage.modifier.ref.cs"},"relational-pattern":{begin:"<=?|>=?",beginCaptures:{0:{name:"keyword.operator.relational.cs"}},end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#expression"}]},"return-statement":{begin:"(?",beginCaptures:{0:{name:"keyword.operator.arrow.cs"}},end:"(?=,|})",patterns:[{include:"#expression"}]},{begin:"\\b(when)\\b",beginCaptures:{1:{name:"keyword.control.conditional.when.cs"}},end:"(?==>|,|})",patterns:[{include:"#case-guard"}]},{begin:"(?!\\s)",end:"(?=\\bwhen\\b|=>|,|})",patterns:[{include:"#pattern"}]}]},"switch-label":{begin:"\\b(case|default)\\b",beginCaptures:{1:{name:"keyword.control.conditional.$1.cs"}},end:"(:)|(?=})",endCaptures:{1:{name:"punctuation.separator.colon.cs"}},patterns:[{begin:"\\b(when)\\b",beginCaptures:{1:{name:"keyword.control.conditional.when.cs"}},end:"(?=:|})",patterns:[{include:"#case-guard"}]},{begin:"(?!\\s)",end:"(?=\\bwhen\\b|:|})",patterns:[{include:"#pattern"}]}]},"switch-statement":{patterns:[{include:"#intrusive"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#switch-label"},{include:"#statement"}]}]},"switch-statement-or-expression":{begin:"(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\\s*\n(?!=>|==)(?==)"},"tuple-deconstruction-element-list":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#tuple-deconstruction-element-list"},{include:"#declaration-expression-tuple"},{include:"#punctuation-comma"},{captures:{1:{name:"variable.other.readwrite.cs"}},match:"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])"}]},"tuple-element":{captures:{1:{patterns:[{include:"#type"}]},6:{name:"entity.name.variable.tuple-element.cs"}},match:"(?x)\n(?\n(?:\n(?:\n(?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?\n\\g\\s*\n(?\\s*<(?:[^<>]|\\g)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g)* |\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\n\\[\n(?:\\s*,\\s*)*\n\\]\n\\s*\n(?:\\?)?\n\\s*\n)*\n)\n)\n(?:(?\\g)\\b)?"},"tuple-literal":{begin:"(\\()(?=.*[:,])",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#tuple-literal-element"},{include:"#expression"},{include:"#punctuation-comma"}]},"tuple-literal-element":{begin:"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?=:)",beginCaptures:{1:{name:"entity.name.variable.tuple-element.cs"}},end:"(:)",endCaptures:{0:{name:"punctuation.separator.colon.cs"}}},"tuple-type":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#tuple-element"},{include:"#punctuation-comma"}]},type:{patterns:[{include:"#comment"},{include:"#ref-modifier"},{include:"#readonly-modifier"},{include:"#tuple-type"},{include:"#type-builtin"},{include:"#type-name"},{include:"#type-arguments"},{include:"#type-array-suffix"},{include:"#type-nullable-suffix"},{include:"#type-pointer-suffix"}]},"type-arguments":{begin:"<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.cs"}},end:">",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.cs"}},patterns:[{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.cs"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#intrusive"},{include:"#punctuation-comma"}]},"type-builtin":{captures:{1:{name:"keyword.type.$1.cs"}},match:"\\b(bool|s?byte|u?short|n?u?int|u?long|float|double|decimal|char|string|object|void|dynamic)\\b"},"type-declarations":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#class-declaration"},{include:"#delegate-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#struct-declaration"},{include:"#record-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"type-name":{patterns:[{captures:{1:{name:"entity.name.type.alias.cs"},2:{name:"punctuation.separator.coloncolon.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)"},{captures:{1:{name:"entity.name.type.cs"},2:{name:"punctuation.accessor.cs"}},match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)"},{captures:{1:{name:"punctuation.accessor.cs"},2:{name:"entity.name.type.cs"}},match:"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)"},{match:"@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"}]},"type-nullable-suffix":{match:"\\?",name:"punctuation.separator.question-mark.cs"},"type-operator-expression":{begin:"\\b(default|sizeof|typeof)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.expression.$1.cs"},2:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#type"}]},"type-parameter-list":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.cs"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.cs"}},patterns:[{match:"\\b(in|out)\\b",name:"storage.modifier.$1.cs"},{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b",name:"entity.name.type.type-parameter.cs"},{include:"#comment"},{include:"#punctuation-comma"},{include:"#attribute-section"}]},"type-pattern":{begin:"(?=@?[_[:alpha:]][_[:alnum:]]*)",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{begin:"\\G",end:"(?!\\G[@_[:alpha:]])(?=[\\({@_[:alpha:])}\\],;:=&|^]|(?:\\s|^)\\?|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#type-subpattern"}]},{begin:"(?=[\\({@_[:alpha:]])",end:"(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{include:"#positional-pattern"},{include:"#property-pattern"},{include:"#simple-designation-pattern"}]}]},"type-pointer-suffix":{match:"\\*",name:"punctuation.separator.asterisk.cs"},"type-subpattern":{patterns:[{include:"#type-builtin"},{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(::)",beginCaptures:{1:{name:"entity.name.type.alias.cs"},2:{name:"punctuation.separator.coloncolon.cs"}},end:"(?<=[_[:alnum:]])|(?=[.<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"}]},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"},{begin:"\\.",beginCaptures:{0:{name:"punctuation.accessor.cs"}},end:"(?<=[_[:alnum:]])|(?=[<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)",patterns:[{include:"#intrusive"},{match:"\\@?[_[:alpha:]][_[:alnum:]]*",name:"entity.name.type.cs"}]},{include:"#type-arguments"},{include:"#type-array-suffix"},{match:"(?)",beginCaptures:{1:{name:"keyword.operator.assignment.cs"}},end:"(?=[,\\)\\];}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"verbatim-interpolated-string":{begin:'(?:\\$@|@\\$)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"(?=[^"])',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#verbatim-string-character-escape"},{include:"#interpolation"}]},"verbatim-string-character-escape":{match:'""',name:"constant.character.escape.cs"},"verbatim-string-literal":{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'"(?=[^"])',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#verbatim-string-character-escape"}]},"when-clause":{begin:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.unquoted.cdata.cs"},"xml-character-entity":{patterns:[{captures:{1:{name:"punctuation.definition.constant.cs"},3:{name:"punctuation.definition.constant.cs"}},match:"(?x)\n(&)\n(\n(?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n(?:\\#[[:digit:]]+)|\n(?:\\#x[[:xdigit:]]+)\n)\n(;)",name:"constant.character.entity.cs"},{match:"&",name:"invalid.illegal.bad-ampersand.cs"}]},"xml-comment":{begin:"\x3c!--",beginCaptures:{0:{name:"punctuation.definition.comment.cs"}},end:"--\x3e",endCaptures:{0:{name:"punctuation.definition.comment.cs"}},name:"comment.block.cs"},"xml-doc-comment":{patterns:[{include:"#xml-comment"},{include:"#xml-character-entity"},{include:"#xml-cdata"},{include:"#xml-tag"}]},"xml-string":{patterns:[{begin:"\\'",beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:"\\'",endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.single.cs",patterns:[{include:"#xml-character-entity"}]},{begin:'\\"',beginCaptures:{0:{name:"punctuation.definition.string.begin.cs"}},end:'\\"',endCaptures:{0:{name:"punctuation.definition.string.end.cs"}},name:"string.quoted.double.cs",patterns:[{include:"#xml-character-entity"}]}]},"xml-tag":{begin:"(?x)\n()",endCaptures:{1:{name:"punctuation.definition.tag.cs"}},name:"meta.tag.cs",patterns:[{include:"#xml-attribute"}]},"yield-break-statement":{captures:{1:{name:"keyword.control.flow.yield.cs"},2:{name:"keyword.control.flow.break.cs"}},match:"(?>>",name:"invalid.deprecated.combinator.css"},{match:">>|>|\\+|~",name:"keyword.operator.combinator.css"}]},commas:{match:",",name:"punctuation.separator.list.comma.css"},"comment-block":{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},escapes:{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?<:=]|\\)|/\\*)"},"media-query":{begin:"\\G",end:"(?=\\s*[{;])",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#media-types"},{match:"(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)",name:"keyword.operator.logical.$1.media.css"},{match:"(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)",name:"keyword.operator.logical.and.media.css"},{match:",(?:(?:\\s*,)+|(?=\\s*[;){]))",name:"invalid.illegal.comma.css"},{include:"#commas"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.css"}},patterns:[{include:"#media-features"},{include:"#media-feature-keywords"},{match:":",name:"punctuation.separator.key-value.css"},{match:">=|<=|=|<|>",name:"keyword.operator.comparison.css"},{captures:{1:{name:"constant.numeric.css"},2:{name:"keyword.operator.arithmetic.css"},3:{name:"constant.numeric.css"}},match:"(\\d+)\\s*(/)\\s*(\\d+)",name:"meta.ratio.css"},{include:"#numeric-values"},{include:"#comment-block"}]}]},"media-query-list":{begin:"(?=\\s*[^{;])",end:"(?=\\s*[{;])",patterns:[{include:"#media-query"}]},"media-types":{captures:{1:{name:"support.constant.media.css"},2:{name:"invalid.deprecated.constant.media.css"}},match:"(?xi)\n(?<=^|\\s|,|\\*/)\n(?:\n\n(all|print|screen|speech)\n|\n\n(aural|braille|embossed|handheld|projection|tty|tv)\n)\n(?=$|[{,\\s;]|/\\*)"},"numeric-values":{patterns:[{captures:{1:{name:"punctuation.definition.constant.css"}},match:"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.other.color.rgb-value.hex.css"},{captures:{1:{name:"keyword.other.unit.percentage.css"},2:{name:"keyword.other.unit.${2:/downcase}.css"}},match:"(?xi) (?+~|]\n| /\\*\n)\n|\n\n(?:\n[-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n)*\n(?:\n[!\"'%&(*;+~|]\n| /\\*\n)",name:"entity.other.attribute-name.class.css"},{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#escapes"}]}},match:"(?x)\n(\\#)\n(\n-?\n(?![0-9])\n(?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n)\n(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)",name:"entity.other.attribute-name.id.css"},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.entity.begin.bracket.square.css"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.entity.end.bracket.square.css"}},name:"meta.attribute-selector.css",patterns:[{include:"#comment-block"},{include:"#string"},{captures:{1:{name:"storage.modifier.ignore-case.css"}},match:"(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)"},{captures:{1:{name:"string.unquoted.attribute-value.css",patterns:[{include:"#escapes"}]}},match:"(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)"},{include:"#escapes"},{match:"[~|^$*]?=",name:"keyword.operator.pattern.css"},{match:"\\|",name:"punctuation.separator.css"},{captures:{1:{name:"entity.other.namespace-prefix.css",patterns:[{include:"#escapes"}]}},match:"(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n\\| (?!\\s|=|$|\\])\n(?: -?(?!\\d)\n| [\\\\\\w-]\n| [^\\x00-\\x7F]\n)\n)"},{captures:{1:{name:"entity.other.attribute-name.css",patterns:[{include:"#escapes"}]}},match:"(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)"}]},{include:"#pseudo-classes"},{include:"#pseudo-elements"},{include:"#functional-pseudo-classes"},{match:"(?x) (?\\s,.\\#|){:\\[]|/\\*|$)",name:"entity.name.tag.css"},"unicode-range":{captures:{0:{name:"constant.other.unicode-range.css"},1:{name:"punctuation.separator.dash.unicode-range.css"}},match:"(?<])=(?![=~])",name:"punctuation.bind"},{match:"<-",name:"punctuation.arrow"},{include:"#expression"}]},expression:{patterns:[{patterns:[{captures:{1:{name:"keyword.control.for"},2:{name:"variable.other"},3:{name:"punctuation.separator"},4:{name:"variable.other"},5:{name:"keyword.control.in"}},match:"(?=|[<](?![-=])|[>](?![=])",name:"keyword.operator.comparison"},{match:"&{2}|\\|{2}|!(?![=~])",name:"keyword.operator.logical"},{match:"&(?!&)|\\|(?!\\|)",name:"keyword.operator.set"}]},{captures:{1:{name:"punctuation.accessor"},2:{name:"variable.other.member"}},match:"(?|<>|<|>|=~|=)",name:"keyword.operator.compare.cypher"},{match:"(?i)\\b(OR|AND|XOR|IS)\\b",name:"keyword.operator.logical.cypher"},{match:"(?i)\\b(IN)\\b",name:"keyword.operator.in.cypher"}]},"path-patterns":{patterns:[{match:"(<--|--\x3e|--)",name:"support.function.relationship-pattern.cypher"},{begin:"(<-|-)(\\[)",beginCaptures:{1:{name:"support.function.relationship-pattern-start.cypher"},2:{name:"keyword.operator.relationship-pattern-start.cypher"}},end:"(])(->|-)",endCaptures:{1:{name:"keyword.operator.relationship-pattern-end.cypher"},2:{name:"support.function.relationship-pattern-end.cypher"}},name:"path-pattern.cypher",patterns:[{include:"#identifiers"},{captures:{1:{name:"keyword.operator.relationship-type-start.cypher"},2:{name:"entity.name.class.relationship.type.cypher"}},match:"(:)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))",name:"entity.name.class.relationship-type.cypher"},{captures:{1:{name:"support.type.operator.relationship-type-or.cypher"},2:{name:"entity.name.class.relationship.type-or.cypher"}},match:"(\\|)(\\s*)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))",name:"entity.name.class.relationship-type-ored.cypher"},{match:"(?:\\?\\*|\\?|\\*)\\s*(?:\\d+\\s*(?:\\.\\.\\s*\\d+)?)?",name:"support.function.relationship-pattern.quant.cypher"},{include:"#properties_literal"}]}]},properties_literal:{patterns:[{begin:"{",beginCaptures:{0:{name:"keyword.control.properties_literal.cypher"}},end:"}",endCaptures:{0:{name:"keyword.control.properties_literal.cypher"}},name:"source.cypher",patterns:[{match:":|,",name:"keyword.control.properties_literal.seperator.cypher"},{include:"#comments"},{include:"#constants"},{include:"#functions"},{include:"#operators"},{include:"#identifiers"},{include:"#numbers"},{include:"#strings"}]}]},string_escape:{captures:{2:{name:"string.quoted.double.cypher"}},match:"(\\\\\\\\|\\\\[tbnrf])|(\\\\'|\\\\\")",name:"constant.character.escape.cypher"},strings:{patterns:[{begin:"'",end:"'",name:"string.quoted.single.cypher",patterns:[{include:"#string_escape"}]},{begin:'"',end:'"',name:"string.quoted.double.cypher",patterns:[{include:"#string_escape"}]}]}},a="source.cypher",c={displayName:e,fileTypes:t,name:n,patterns:r,repository:o,scopeName:a};export{c as default,e as displayName,t as fileTypes,n as name,r as patterns,o as repository,a as scopeName}; diff --git a/lib/dist/grammar/d.mjs b/lib/dist/grammar/d.mjs new file mode 100644 index 0000000..83916af --- /dev/null +++ b/lib/dist/grammar/d.mjs @@ -0,0 +1 @@ +var e="D",t=["d","di","dpp"],n="d",a=[{include:"#comment"},{include:"#type"},{include:"#statement"},{include:"#expression"}],r={"aggregate-declaration":{patterns:[{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#struct-declaration"},{include:"#union-declaration"},{include:"#mixin-template-declaration"},{include:"#template-declaration"}]},"alias-declaration":{patterns:[{begin:"\\b(alias)\\b\\s*",beginCaptures:{1:{name:"keyword.other.alias.d"}},end:";",endCaptures:{0:{name:"meta.alias.end.d"}},patterns:[{include:"#type"},{match:"=(?![=>])",name:"keyword.operator.equal.alias.d"},{include:"#expression"}]}]},"align-attribute":{patterns:[{begin:"\\balign\\s*\\(",end:"\\)",name:"storage.modifier.align-attribute.d",patterns:[{include:"#integer-literal"}]},{match:"\\balign\\b\\s*(?!\\()",name:"storage.modifier.align-attribute.d"}]},"alternate-wysiwyg-string":{patterns:[{begin:"`",end:"`[cwd]?",name:"string.alternate-wysiwyg-string.d",patterns:[{include:"#wysiwyg-characters"}]}]},"arbitrary-delimited-string":{begin:'q"(\\w+)',end:'\\1"',name:"string.delimited.d",patterns:[{match:".",name:"string.delimited.d"}]},"arithmetic-expression":{patterns:[{match:"\\^\\^|\\+\\+|--|(?>>=|\\^\\^=|>>=|<<=|~=|\\^=|\\|=|&=|%=|/=|\\*=|-=|\\+=|=(?!>)",name:"keyword.operator.assign.d"}]},attribute:{patterns:[{include:"#linkage-attribute"},{include:"#align-attribute"},{include:"#deprecated-attribute"},{include:"#protection-attribute"},{include:"#pragma"},{match:"\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b",name:"entity.other.attribute-name.d"},{include:"#property"}]},"base-type":{patterns:[{match:"\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\b",name:"storage.type.basic-type.d"},{match:"\\b(string|wstring|dstring|size_t|ptrdiff_t)\\b(?!\\s*=)",name:"storage.type.basic-type.d"}]},"binary-integer":{patterns:[{match:"\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.binary.d"}]},"bitwise-expression":{patterns:[{match:"\\||\\^|&",name:"keyword.operator.bitwise.d"}]},"block-comment":{patterns:[{begin:"/((?!\\*/)\\*)+",beginCaptures:{0:{name:"comment.block.begin.d"}},end:"\\*+/",endCaptures:{0:{name:"comment.block.end.d"}},name:"comment.block.content.d"}]},"break-statement":{patterns:[{match:"\\bbreak\\b",name:"keyword.control.break.d"}]},"case-statement":{patterns:[{begin:"\\b(case)\\b\\s*",beginCaptures:{1:{name:"keyword.control.case.range.d"}},end:":",endCaptures:{0:{name:"meta.case.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"cast-expression":{patterns:[{begin:"\\b(cast)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.cast.d"},2:{name:"keyword.operator.cast.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.operator.cast.end.d"}},patterns:[{include:"#type"},{include:"#extended-type"}]}]},catch:{patterns:[{begin:"\\b(catch)\\b\\s*(?=\\()",captures:{1:{name:"keyword.control.catch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},catches:{patterns:[{include:"#catch"}]},character:{patterns:[{match:"[\\w\\s]+",name:"string.character.d"}]},"character-literal":{patterns:[{begin:"'",end:"'",name:"string.character-literal.d",patterns:[{include:"#character"},{include:"#escape-sequence"}]}]},"class-declaration":{patterns:[{captures:{1:{name:"storage.type.class.d"},2:{name:"entity.name.class.d"}},match:"\\b(class)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"},{include:"#protection-attribute"},{include:"#class-members"}]},"class-members":{patterns:[{include:"#shared-static-constructor"},{include:"#shared-static-destructor"},{include:"#constructor"},{include:"#destructor"},{include:"#postblit"},{include:"#invariant"},{include:"#member-function-attribute"}]},colon:{patterns:[{match:":",name:"support.type.colon.d"}]},comma:{patterns:[{match:",",name:"keyword.operator.comma.d"}]},comment:{patterns:[{include:"#block-comment"},{include:"#line-comment"},{include:"#nesting-block-comment"}]},condition:{patterns:[{include:"#version-condition"},{include:"#debug-condition"},{include:"#static-if-condition"}]},"conditional-declaration":{patterns:[{include:"#condition"},{match:"\\belse\\b",name:"keyword.control.else.d"},{include:"#colon"},{include:"#decl-defs"}]},"conditional-expression":{patterns:[{match:"\\s(\\?|:)\\s",name:"keyword.operator.ternary.d"}]},"conditional-statement":{patterns:[{include:"#condition"},{include:"#no-scope-non-empty-statement"},{match:"\\belse\\b",name:"keyword.control.else.d"}]},constructor:{patterns:[{match:"\\bthis\\b",name:"entity.name.function.constructor.d"}]},"continue-statement":{patterns:[{match:"\\bcontinue\\b",name:"keyword.control.continue.d"}]},"debug-condition":{patterns:[{begin:"\\bdebug\\s*\\(",beginCaptures:{0:{name:"keyword.other.debug.identifier.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.debug.identifier.end.d"}},patterns:[{include:"#integer-literal"},{include:"#identifier"}]},{match:"\\bdebug\\b\\s*(?!\\()",name:"keyword.other.debug.plain.d"}]},"debug-specification":{patterns:[{match:"\\bdebug\\b\\s*(?==)",name:"keyword.other.debug-specification.d"}]},"decimal-float":{patterns:[{match:"\\b((\\.[0-9])|(0\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\.))[0-9_]*((e-|E-|e\\+|E\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\b",name:"constant.numeric.float.decimal.d"}]},"decimal-integer":{patterns:[{match:"\\b(0(?=[^\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.decimal.d"}]},declaration:{patterns:[{include:"#alias-declaration"},{include:"#aggregate-declaration"},{include:"#enum-declaration"},{include:"#import-declaration"},{include:"#storage-class"},{include:"#void-initializer"},{include:"#mixin-declaration"}]},"declaration-statement":{patterns:[{include:"#declaration"}]},"default-statement":{patterns:[{captures:{1:{name:"keyword.control.case.default.d"},2:{name:"meta.default.colon.d"}},match:"\\b(default)\\s*(:)"}]},"delete-expression":{patterns:[{match:"\\bdelete\\s+",name:"keyword.other.delete.d"}]},"delimited-string":{begin:'q"',end:'"',name:"string.delimited.d",patterns:[{include:"#delimited-string-bracket"},{include:"#delimited-string-parens"},{include:"#delimited-string-angle-brackets"},{include:"#delimited-string-braces"}]},"delimited-string-angle-brackets":{patterns:[{begin:"<",end:">",name:"constant.character.angle-brackets.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-braces":{patterns:[{begin:"\\{",end:"\\}",name:"constant.character.delimited.braces.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-bracket":{patterns:[{begin:"\\[",end:"\\]",name:"constant.characters.delimited.brackets.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-parens":{patterns:[{begin:"\\(",end:"\\)",name:"constant.character.delimited.parens.d",patterns:[{include:"#wysiwyg-characters"}]}]},"deprecated-statement":{patterns:[{begin:"\\bdeprecated\\s*\\(",beginCaptures:{0:{name:"keyword.other.deprecated.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.deprecated.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]},{match:"\\bdeprecated\\b\\s*(?!\\()",name:"keyword.other.deprecated.plain.d"}]},destructor:{patterns:[{match:"\\b~this\\s*\\(\\s*\\)",name:"entity.name.class.destructor.d"}]},"do-statement":{patterns:[{match:"\\bdo\\b",name:"keyword.control.do.d"}]},"double-quoted-characters":{patterns:[{include:"#character"},{include:"#end-of-line"},{include:"#escape-sequence"}]},"double-quoted-string":{patterns:[{begin:'"',end:'"[cwd]?',name:"string.double-quoted-string.d",patterns:[{include:"#double-quoted-characters"}]}]},"end-of-line":{patterns:[{match:"\\n+",name:"string.character.end-of-line.d"}]},"enum-declaration":{patterns:[{begin:"\\b(enum)\\b\\s+(?=.*[=;])",beginCaptures:{1:{name:"storage.type.enum.d"}},end:"([A-Za-z_][\\w_\\d]*)\\s*(?=;|=|\\()(;)?",endCaptures:{1:{name:"entity.name.type.enum.d"},2:{name:"meta.enum.end.d"}},patterns:[{include:"#type"},{include:"#extended-type"},{match:"=(?![=>])",name:"keyword.operator.equal.alias.d"}]}]},eof:{patterns:[{begin:"__EOF__",beginCaptures:{0:{name:"comment.block.documentation.eof.start.d"}},end:"(?!__NEVER_MATCH__)__NEVER_MATCH__",name:"text.eof.d"}]},equal:{patterns:[{match:"=(?![=>])",name:"keyword.operator.equal.d"}]},"escape-sequence":{patterns:[{match:"(\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))",name:"constant.character.escape-sequence.entity.d"},{match:"(\\\\x[0-9a-fA-F_]{2}|\\\\u[0-9a-fA-F_]{4}|\\\\U[0-9a-fA-F_]{8}|\\\\[0-7]{1,3})",name:"constant.character.escape-sequence.number.d"},{match:"(\\\\t|\\\\'|\\\\\"|\\\\\\?|\\\\0|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\v|\\\\\\\\)",name:"constant.character.escape-sequence.d"}]},expression:{patterns:[{include:"#index-expression"},{include:"#expression-no-index"}]},"expression-no-index":{patterns:[{include:"#function-literal"},{include:"#assert-expression"},{include:"#assign-expression"},{include:"#mixin-expression"},{include:"#import-expression"},{include:"#traits-expression"},{include:"#is-expression"},{include:"#typeid-expression"},{include:"#shift-expression"},{include:"#logical-expression"},{include:"#rel-expression"},{include:"#bitwise-expression"},{include:"#identity-expression"},{include:"#in-expression"},{include:"#conditional-expression"},{include:"#arithmetic-expression"},{include:"#new-expression"},{include:"#delete-expression"},{include:"#cast-expression"},{include:"#type-specialization"},{include:"#comma"},{include:"#special-keyword"},{include:"#functions"},{include:"#type"},{include:"#parentheses-expression"},{include:"#lexical"}]},"extended-type":{patterns:[{match:"\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b",name:"entity.name.type.d"},{begin:"\\[",beginCaptures:{0:{name:"storage.type.array.expression.begin.d"}},end:"\\]",endCaptures:{0:{name:"storage.type.array.expression.end.d"}},patterns:[{match:"\\.\\.|\\$",name:"keyword.operator.slice.d"},{include:"#type"},{include:"#expression"}]}]},"final-switch-statement":{patterns:[{begin:"\\b(final\\s+switch)\\b\\s*",captures:{1:{name:"keyword.control.final.switch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"finally-statement":{patterns:[{match:"\\bfinally\\b",name:"keyword.control.throw.d"}]},"float-literal":{patterns:[{include:"#decimal-float"},{include:"#hexadecimal-float"}]},"for-statement":{patterns:[{begin:"\\b(for)\\b\\s*",captures:{1:{name:"keyword.control.for.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"foreach-reverse-statement":{patterns:[{begin:"\\b(foreach_reverse)\\b\\s*",captures:{1:{name:"keyword.control.foreach_reverse.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"foreach-statement":{patterns:[{begin:"\\b(foreach)\\b\\s*",captures:{1:{name:"keyword.control.foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"function-attribute":{patterns:[{match:"\\b(nothrow|pure)\\b",name:"storage.type.modifier.function-attribute.d"},{include:"#property"}]},"function-body":{patterns:[{include:"#in-statement"},{include:"#out-statement"},{include:"#block-statement"}]},"function-literal":{patterns:[{match:"=>",name:"keyword.operator.lambda.d"},{match:"\\b(function|delegate)\\b",name:"keyword.other.function-literal.d"},{begin:"\\b([_\\w][_\\d\\w]*)\\s*(=>)",beginCaptures:{1:{name:"variable.parameter.d"},2:{name:"meta.lexical.token.symbolic.d"}},end:"(?=[\\);,\\]}])",patterns:[{include:"source.d"}]},{begin:"(?<=\\)|\\()(\\s*)({)",beginCaptures:{1:{name:"source.d"},2:{name:"source.d"}},end:"}",patterns:[{include:"source.d"}]}]},"function-prelude":{patterns:[{match:"(?!typeof|typeid)((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\s*(?=\\()",name:"entity.name.function.d"}]},functions:{patterns:[{include:"#function-attribute"},{include:"#function-prelude"}]},"goto-statement":{patterns:[{match:"\\bgoto\\s+default\\b",name:"keyword.control.goto.d"},{match:"\\bgoto\\s+case\\b",name:"keyword.control.goto.d"},{match:"\\bgoto\\b",name:"keyword.control.goto.d"}]},"hex-string":{patterns:[{begin:'x"',end:'"[cwd]?',name:"string.hex-string.d",patterns:[{match:"[a-fA-F0-9_s]+",name:"constant.character.hex-string.d"}]}]},"hexadecimal-float":{patterns:[{match:"\\b0[xX][0-9a-fA-F_]*(\\.[0-9a-fA-F_]*)?(p-|P-|p\\+|P\\+|p|P)[0-9][0-9_]*[LfF]?i?\\b",name:"constant.numeric.float.hexadecimal.d"}]},"hexadecimal-integer":{patterns:[{match:"\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.hexadecimal.d"}]},identifier:{patterns:[{match:"\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b",name:"variable.d"}]},"identifier-list":{patterns:[{match:",",name:"keyword.other.comma.d"},{include:"#identifier"}]},"identity-expression":{patterns:[{match:"\\b(is|!is)\\b",name:"keyword.operator.identity.d"}]},"if-statement":{patterns:[{begin:"\\b(if)\\b\\s*",captures:{1:{name:"keyword.control.if.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]},{match:"\\belse\\b\\s*",name:"keyword.control.else.d"}]},"import-declaration":{patterns:[{begin:"\\b(static\\s+)?(import)\\s+(?!\\()",beginCaptures:{1:{name:"keyword.package.import.d"},2:{name:"keyword.package.import.d"}},end:";",endCaptures:{0:{name:"meta.import.end.d"}},patterns:[{include:"#import-identifier"},{include:"#comma"},{include:"#comment"}]}]},"import-expression":{patterns:[{begin:"\\b(import)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.import.d"},2:{name:"keyword.other.import.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.import.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"import-identifier":{patterns:[{match:"([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*",name:"variable.parameter.import.d"}]},"in-expression":{patterns:[{match:"\\b(in|!in)\\b",name:"keyword.operator.in.d"}]},"in-statement":{patterns:[{match:"\\bin\\b",name:"keyword.control.in.d"}]},"index-expression":{patterns:[{begin:"\\[",end:"\\]",patterns:[{match:"\\.\\.|\\$",name:"keyword.operator.slice.d"},{include:"#expression-no-index"}]}]},"integer-literal":{patterns:[{include:"#decimal-integer"},{include:"#binary-integer"},{include:"#hexadecimal-integer"}]},"interface-declaration":{patterns:[{captures:{1:{name:"storage.type.interface.d"},2:{name:"entity.name.type.interface.d"}},match:"\\b(interface)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},invariant:{patterns:[{match:"\\binvariant\\s*\\(\\s*\\)",name:"entity.name.class.invariant.d"}]},"is-expression":{patterns:[{begin:"\\bis\\s*\\(",beginCaptures:{0:{name:"keyword.token.is.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.token.is.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},keyword:{patterns:[{match:"\\babstract\\b",name:"keyword.token.abstract.d"},{match:"\\balias\\b",name:"keyword.token.alias.d"},{match:"\\balign\\b",name:"keyword.token.align.d"},{match:"\\basm\\b",name:"keyword.token.asm.d"},{match:"\\bassert\\b",name:"keyword.token.assert.d"},{match:"\\bauto\\b",name:"keyword.token.auto.d"},{match:"\\bbool\\b",name:"keyword.token.bool.d"},{match:"\\bbreak\\b",name:"keyword.token.break.d"},{match:"\\bbyte\\b",name:"keyword.token.byte.d"},{match:"\\bcase\\b",name:"keyword.token.case.d"},{match:"\\bcast\\b",name:"keyword.token.cast.d"},{match:"\\bcatch\\b",name:"keyword.token.catch.d"},{match:"\\bcdouble\\b",name:"keyword.token.cdouble.d"},{match:"\\bcent\\b",name:"keyword.token.cent.d"},{match:"\\bcfloat\\b",name:"keyword.token.cfloat.d"},{match:"\\bchar\\b",name:"keyword.token.char.d"},{match:"\\bclass\\b",name:"keyword.token.class.d"},{match:"\\bconst\\b",name:"keyword.token.const.d"},{match:"\\bcontinue\\b",name:"keyword.token.continue.d"},{match:"\\bcreal\\b",name:"keyword.token.creal.d"},{match:"\\bdchar\\b",name:"keyword.token.dchar.d"},{match:"\\bdebug\\b",name:"keyword.token.debug.d"},{match:"\\bdefault\\b",name:"keyword.token.default.d"},{match:"\\bdelegate\\b",name:"keyword.token.delegate.d"},{match:"\\bdelete\\b",name:"keyword.token.delete.d"},{match:"\\bdeprecated\\b",name:"keyword.token.deprecated.d"},{match:"\\bdo\\b",name:"keyword.token.do.d"},{match:"\\bdouble\\b",name:"keyword.token.double.d"},{match:"\\belse\\b",name:"keyword.token.else.d"},{match:"\\benum\\b",name:"keyword.token.enum.d"},{match:"\\bexport\\b",name:"keyword.token.export.d"},{match:"\\bextern\\b",name:"keyword.token.extern.d"},{match:"\\bfalse\\b",name:"constant.language.boolean.false.d"},{match:"\\bfinal\\b",name:"keyword.token.final.d"},{match:"\\bfinally\\b",name:"keyword.token.finally.d"},{match:"\\bfloat\\b",name:"keyword.token.float.d"},{match:"\\bfor\\b",name:"keyword.token.for.d"},{match:"\\bforeach\\b",name:"keyword.token.foreach.d"},{match:"\\bforeach_reverse\\b",name:"keyword.token.foreach_reverse.d"},{match:"\\bfunction\\b",name:"keyword.token.function.d"},{match:"\\bgoto\\b",name:"keyword.token.goto.d"},{match:"\\bidouble\\b",name:"keyword.token.idouble.d"},{match:"\\bif\\b",name:"keyword.token.if.d"},{match:"\\bifloat\\b",name:"keyword.token.ifloat.d"},{match:"\\bimmutable\\b",name:"keyword.token.immutable.d"},{match:"\\bimport\\b",name:"keyword.token.import.d"},{match:"\\bin\\b",name:"keyword.token.in.d"},{match:"\\binout\\b",name:"keyword.token.inout.d"},{match:"\\bint\\b",name:"keyword.token.int.d"},{match:"\\binterface\\b",name:"keyword.token.interface.d"},{match:"\\binvariant\\b",name:"keyword.token.invariant.d"},{match:"\\bireal\\b",name:"keyword.token.ireal.d"},{match:"\\bis\\b",name:"keyword.token.is.d"},{match:"\\blazy\\b",name:"keyword.token.lazy.d"},{match:"\\blong\\b",name:"keyword.token.long.d"},{match:"\\bmacro\\b",name:"keyword.token.macro.d"},{match:"\\bmixin\\b",name:"keyword.token.mixin.d"},{match:"\\bmodule\\b",name:"keyword.token.module.d"},{match:"\\bnew\\b",name:"keyword.token.new.d"},{match:"\\bnothrow\\b",name:"keyword.token.nothrow.d"},{match:"\\bnull\\b",name:"constant.language.null.d"},{match:"\\bout\\b",name:"keyword.token.out.d"},{match:"\\boverride\\b",name:"keyword.token.override.d"},{match:"\\bpackage\\b",name:"keyword.token.package.d"},{match:"\\bpragma\\b",name:"keyword.token.pragma.d"},{match:"\\bprivate\\b",name:"keyword.token.private.d"},{match:"\\bprotected\\b",name:"keyword.token.protected.d"},{match:"\\bpublic\\b",name:"keyword.token.public.d"},{match:"\\bpure\\b",name:"keyword.token.pure.d"},{match:"\\breal\\b",name:"keyword.token.real.d"},{match:"\\bref\\b",name:"keyword.token.ref.d"},{match:"\\breturn\\b",name:"keyword.token.return.d"},{match:"\\bscope\\b",name:"keyword.token.scope.d"},{match:"\\bshared\\b",name:"keyword.token.shared.d"},{match:"\\bshort\\b",name:"keyword.token.short.d"},{match:"\\bstatic\\b",name:"keyword.token.static.d"},{match:"\\bstruct\\b",name:"keyword.token.struct.d"},{match:"\\bsuper\\b",name:"keyword.token.super.d"},{match:"\\bswitch\\b",name:"keyword.token.switch.d"},{match:"\\bsynchronized\\b",name:"keyword.token.synchronized.d"},{match:"\\btemplate\\b",name:"keyword.token.template.d"},{match:"\\bthis\\b",name:"keyword.token.this.d"},{match:"\\bthrow\\b",name:"keyword.token.throw.d"},{match:"\\btrue\\b",name:"constant.language.boolean.true.d"},{match:"\\btry\\b",name:"keyword.token.try.d"},{match:"\\btypedef\\b",name:"keyword.token.typedef.d"},{match:"\\btypeid\\b",name:"keyword.token.typeid.d"},{match:"\\btypeof\\b",name:"keyword.token.typeof.d"},{match:"\\bubyte\\b",name:"keyword.token.ubyte.d"},{match:"\\bucent\\b",name:"keyword.token.ucent.d"},{match:"\\buint\\b",name:"keyword.token.uint.d"},{match:"\\bulong\\b",name:"keyword.token.ulong.d"},{match:"\\bunion\\b",name:"keyword.token.union.d"},{match:"\\bunittest\\b",name:"keyword.token.unittest.d"},{match:"\\bushort\\b",name:"keyword.token.ushort.d"},{match:"\\bversion\\b",name:"keyword.token.version.d"},{match:"\\bvoid\\b",name:"keyword.token.void.d"},{match:"\\bvolatile\\b",name:"keyword.token.volatile.d"},{match:"\\bwchar\\b",name:"keyword.token.wchar.d"},{match:"\\bwhile\\b",name:"keyword.token.while.d"},{match:"\\bwith\\b",name:"keyword.token.with.d"},{match:"\\b__FILE__\\b",name:"keyword.token.__FILE__.d"},{match:"\\b__MODULE__\\b",name:"keyword.token.__MODULE__.d"},{match:"\\b__LINE__\\b",name:"keyword.token.__LINE__.d"},{match:"\\b__FUNCTION__\\b",name:"keyword.token.__FUNCTION__.d"},{match:"\\b__PRETTY_FUNCTION__\\b",name:"keyword.token.__PRETTY_FUNCTION__.d"},{match:"\\b__gshared\\b",name:"keyword.token.__gshared.d"},{match:"\\b__traits\\b",name:"keyword.token.__traits.d"},{match:"\\b__vector\\b",name:"keyword.token.__vector.d"},{match:"\\b__parameters\\b",name:"keyword.token.__parameters.d"}]},"labeled-statement":{patterns:[{match:"\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\s*:",name:"entity.name.d"}]},lexical:{patterns:[{include:"#comment"},{include:"#string-literal"},{include:"#character-literal"},{include:"#float-literal"},{include:"#integer-literal"},{include:"#eof"},{include:"#special-tokens"},{include:"#special-token-sequence"},{include:"#keyword"},{include:"#identifier"}]},"line-comment":{patterns:[{match:"//+.*$",name:"comment.line.d"}]},"linkage-attribute":{patterns:[{begin:"\\bextern\\s*\\(\\s*C\\+\\+\\s*,",beginCaptures:{0:{name:"keyword.other.extern.cplusplus.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.extern.cplusplus.end.d"}},patterns:[{include:"#identifier"},{include:"#comma"}]},{begin:"\\bextern\\s*\\(",beginCaptures:{0:{name:"keyword.other.extern.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.extern.end.d"}},patterns:[{include:"#linkage-type"}]}]},"linkage-type":{patterns:[{match:"C|C\\+\\+|D|Windows|Pascal|System",name:"storage.modifier.linkage-type.d"}]},"logical-expression":{patterns:[{match:"\\|\\||&&|==|!=|!",name:"keyword.operator.logical.d"}]},"member-function-attribute":{patterns:[{match:"\\b(const|immutable|inout|shared)\\b",name:"storage.type.modifier.member-function-attribute"}]},"mixin-declaration":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{0:{name:"keyword.mixin.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-expression":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{0:{name:"keyword.other.mixin.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-statement":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{0:{name:"keyword.control.mixin.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.control.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-template-declaration":{patterns:[{captures:{1:{name:"storage.type.mixintemplate.d"},2:{name:"entity.name.type.mixintemplate.d"}},match:"\\b(mixin\\s*template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},module:{packages:[{import:"#module-declaration"}]},"module-declaration":{patterns:[{begin:"\\b(module)\\s+",beginCaptures:{1:{name:"keyword.package.module.d"}},end:";",endCaptures:{0:{name:"meta.module.end.d"}},patterns:[{include:"#module-identifier"},{include:"#comment"}]}]},"module-identifier":{patterns:[{match:"([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*",name:"variable.parameter.module.d"}]},"nesting-block-comment":{patterns:[{begin:"/((?!\\+/)\\+)+",beginCaptures:{0:{name:"comment.block.documentation.begin.d"}},end:"\\++/",endCaptures:{0:{name:"comment.block.documentation.end.d"}},name:"comment.block.documentation.content.d",patterns:[{include:"#nesting-block-comment"}]}]},"new-expression":{patterns:[{match:"\\bnew\\s+",name:"keyword.other.new.d"}]},"non-block-statement":{patterns:[{include:"#module-declaration"},{include:"#labeled-statement"},{include:"#if-statement"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#static-foreach"},{include:"#static-foreach-reverse"},{include:"#foreach-statement"},{include:"#foreach-reverse-statement"},{include:"#switch-statement"},{include:"#final-switch-statement"},{include:"#case-statement"},{include:"#default-statement"},{include:"#continue-statement"},{include:"#break-statement"},{include:"#return-statement"},{include:"#goto-statement"},{include:"#with-statement"},{include:"#synchronized-statement"},{include:"#try-statement"},{include:"#catches"},{include:"#scope-guard-statement"},{include:"#throw-statement"},{include:"#finally-statement"},{include:"#asm-statement"},{include:"#pragma-statement"},{include:"#mixin-statement"},{include:"#conditional-statement"},{include:"#static-assert"},{include:"#deprecated-statement"},{include:"#unit-test"},{include:"#declaration-statement"}]},operands:{patterns:[{match:"\\?|:",name:"keyword.operator.ternary.assembly.d"},{match:"\\]|\\[",name:"keyword.operator.bracket.assembly.d"},{match:">>>|\\|\\||&&|==|!=|<=|>=|<<|>>|\\||\\^|&|<|>|\\+|-|\\*|/|%|~|!",name:"keyword.operator.assembly.d"}]},"out-statement":{patterns:[{begin:"\\bout\\s*\\(",beginCaptures:{0:{name:"keyword.control.out.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.control.out.end.d"}},patterns:[{include:"#identifier"}]},{match:"\\bout\\b",name:"keyword.control.out.d"}]},"parentheses-expression":{patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"#expression"}]}]},postblit:{patterns:[{match:"\\bthis\\s*\\(\\s*this\\s*\\)\\s",name:"entity.name.class.postblit.d"}]},pragma:{patterns:[{match:"\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*\\)",name:"keyword.other.pragma.d"},{begin:"\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*,",end:"\\)",name:"keyword.other.pragma.d",patterns:[{include:"#expression"}]},{match:"^#!.+",name:"gfm.markup.header.preprocessor.script-tag.d"}]},"pragma-statement":{patterns:[{include:"#pragma"}]},property:{patterns:[{match:"@(property|safe|trusted|system|disable|nogc)\\b",name:"entity.name.tag.property.d"},{include:"#user-defined-attribute"}]},"protection-attribute":{patterns:[{match:"\\b(private|package|protected|public|export)\\b",name:"keyword.other.protections.d"}]},register:{patterns:[{match:"\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\(0\\)|ST\\(1\\)|ST\\(2\\)|ST\\(3\\)|ST\\(4\\)|ST\\(5\\)|ST\\(6\\)|ST\\(7\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\b",name:"storage.type.assembly.register.d"}]},"register-64":{patterns:[{match:"\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\b",name:"storage.type.assembly.register-64.d"}]},"rel-expression":{patterns:[{match:"!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>",name:"keyword.operator.rel.d"}]},"return-statement":{patterns:[{match:"\\breturn\\b",name:"keyword.control.return.d"}]},"scope-guard-statement":{patterns:[{match:"\\bscope\\s*\\((exit|success|failure)\\)",name:"keyword.control.scope.d"}]},"semi-colon":{patterns:[{match:";",name:"meta.statement.end.d"}]},"shared-static-constructor":{patterns:[{match:"\\b(shared\\s+)?static\\s+this\\s*\\(\\s*\\)",name:"entity.name.class.constructor.shared-static.d"},{include:"#function-body"}]},"shared-static-destructor":{patterns:[{match:"\\b(shared\\s+)?static\\s+~this\\s*\\(\\s*\\)",name:"entity.name.class.destructor.static.d"}]},"shift-expression":{patterns:[{match:"<<|>>|>>>",name:"keyword.operator.shift.d"},{include:"#add-expression"}]},"special-keyword":{patterns:[{match:"\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\b",name:"constant.language.special-keyword.d"}]},"special-token-sequence":{patterns:[{match:"#\\s*line.*",name:"gfm.markup.italic.special-token-sequence.d"}]},"special-tokens":{patterns:[{match:"\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\b",name:"gfm.markup.raw.special-tokens.d"}]},statement:{patterns:[{include:"#non-block-statement"},{include:"#semi-colon"}]},"static-assert":{patterns:[{begin:"\\bstatic\\s+assert\\b\\s*\\(",beginCaptures:{0:{name:"keyword.other.static-assert.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.static-assert.end.d"}},patterns:[{include:"#expression"}]}]},"static-foreach":{patterns:[{begin:"\\b(static\\s+foreach)\\b\\s*",captures:{1:{name:"keyword.control.static-foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"static-foreach-reverse":{patterns:[{begin:"\\b(static\\s+foreach_reverse)\\b\\s*",captures:{1:{name:"keyword.control.static-foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"static-if-condition":{patterns:[{begin:"\\bstatic\\s+if\\b\\s*\\(",beginCaptures:{0:{name:"keyword.control.static-if.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.control.static-if.end.d"}},patterns:[{include:"#comment"},{include:"#expression"}]}]},"storage-class":{patterns:[{match:"\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b",name:"storage.class.d"},{include:"#linkage-attribute"},{include:"#align-attribute"},{include:"#property"}]},"string-literal":{patterns:[{include:"#wysiwyg-string"},{include:"#alternate-wysiwyg-string"},{include:"#hex-string"},{include:"#arbitrary-delimited-string"},{include:"#delimited-string"},{include:"#double-quoted-string"},{include:"#token-string"}]},"struct-declaration":{patterns:[{captures:{1:{name:"storage.type.struct.d"},2:{name:"entity.name.type.struct.d"}},match:"\\b(struct)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},"switch-statement":{patterns:[{begin:"\\b(switch)\\b\\s*",captures:{1:{name:"keyword.control.switch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"synchronized-statement":{patterns:[{begin:"\\b(synchronized)\\b\\s*(?=\\()",captures:{1:{name:"keyword.control.synchronized.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"template-declaration":{patterns:[{captures:{1:{name:"storage.type.template.d"},2:{name:"entity.name.type.template.d"}},match:"\\b(template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},"throw-statement":{patterns:[{match:"\\bthrow\\b",name:"keyword.control.throw.d"}]},"token-string":{begin:"q\\{",beginCaptures:{0:{name:"string.quoted.token.d"}},end:"\\}[cdw]?",endCaptures:{0:{name:"string.quoted.token.d"}},patterns:[{include:"#token-string-content"}]},"token-string-content":{patterns:[{begin:"{",end:"}",patterns:[{include:"#token-string-content"}]},{include:"#comment"},{include:"#tokens"}]},tokens:{patterns:[{include:"#string-literal"},{include:"#character-literal"},{include:"#integer-literal"},{include:"#float-literal"},{include:"#keyword"},{match:"~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\$|\\|=|\\|\\||\\||\\+=|\\+\\+|\\+|\\^=|\\^\\^=|\\^\\^|\\^|\\*=|\\*|\\}|\\{|\\]|\\[|\\)|\\(|\\.\\.\\.|\\.\\.|\\.|\\?|\\!>=|\\!>|\\!=|\\!<>=|\\!<>|\\!<=|\\!<|\\!|/=|/|@|:|;|,|-=|--|-",name:"meta.lexical.token.symbolic.d"},{include:"#identifier"}]},"traits-argument":{patterns:[{include:"#expression"},{include:"#type"}]},"traits-arguments":{patterns:[{include:"#traits-argument"},{include:"#comma"}]},"traits-expression":{patterns:[{begin:"\\b__traits\\s*\\(",beginCaptures:{0:{name:"keyword.other.traits.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.traits.end.d"}},patterns:[{include:"#traits-keyword"},{include:"#comma"},{include:"#traits-argument"}]}]},"traits-keyword":{patterns:[{match:"isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles",name:"support.constant.traits-keyword.d"}]},"try-statement":{patterns:[{match:"\\btry\\b",name:"keyword.control.try.d"}]},type:{patterns:[{include:"#typeof"},{include:"#base-type"},{include:"#type-ctor"},{begin:"!\\(",end:"\\)",patterns:[{include:"#type"},{include:"#expression"}]}]},"type-ctor":{patterns:[{match:"(const|immutable|inout|shared)\\b",name:"storage.type.modifier.d"}]},"type-specialization":{patterns:[{match:"\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\b",name:"keyword.other.storage.type-specialization.d"}]},"typeid-expression":{patterns:[{match:"\\btypeid\\s*(?=\\()",name:"keyword.other.typeid.d"}]},typeof:{begin:"typeof\\s*\\(",end:"\\)",name:"keyword.token.typeof.d",patterns:[{match:"return",name:"keyword.control.return.d"},{include:"#expression"}]},"union-declaration":{patterns:[{captures:{1:{name:"storage.type.union.d"},2:{name:"entity.name.type.union.d"}},match:"\\b(union)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b"}]},"user-defined-attribute":{patterns:[{match:"@([_\\w][_\\d\\w]*)\\b",name:"entity.name.tag.user-defined-property.d"},{begin:"@([_\\w][_\\d\\w]*)?\\(",end:"\\)",name:"entity.name.tag.user-defined-property.d",patterns:[{include:"#expression"}]}]},"version-condition":{patterns:[{match:"\\bversion\\s*\\(\\s*unittest\\s*\\)",name:"keyword.other.version.unittest.d"},{match:"\\bversion\\s*\\(\\s*assert\\s*\\)",name:"keyword.other.version.assert.d"},{begin:"\\bversion\\s*\\(",beginCaptures:{0:{name:"keyword.other.version.identifier.begin.d"}},end:"\\)",endCaptures:{0:{name:"keyword.other.version.identifer.end.d"}},patterns:[{include:"#integer-literal"},{include:"#identifier"}]},{include:"#version-specification"}]},"version-specification":{patterns:[{match:"\\bversion\\b\\s*(?==)",name:"keyword.other.version-specification.d"}]},"void-initializer":{patterns:[{match:"\\bvoid\\b",name:"support.type.void.d"}]},"while-statement":{patterns:[{begin:"\\b(while)\\b\\s*",captures:{1:{name:"keyword.control.while.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"with-statement":{patterns:[{begin:"\\b(with)\\b\\s*(?=\\()",captures:{1:{name:"keyword.control.with.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"wysiwyg-characters":{patterns:[{include:"#character"},{include:"#end-of-line"}]},"wysiwyg-string":{patterns:[{begin:'r\\"',end:'\\"[cwd]?',name:"string.wysiwyg-string.d",patterns:[{include:"#wysiwyg-characters"}]}]}},i="source.d",d={displayName:"D",fileTypes:t,name:"d",patterns:a,repository:r,scopeName:i};export{d as default,e as displayName,t as fileTypes,n as name,a as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/dart.mjs b/lib/dist/grammar/dart.mjs new file mode 100644 index 0000000..89fa13f --- /dev/null +++ b/lib/dist/grammar/dart.mjs @@ -0,0 +1 @@ +var e="Dart",t="dart",a=[{match:"^(#!.*)$",name:"meta.preprocessor.script.dart"},{begin:"^\\w*\\b(augment\\s+library|library|import\\s+augment|import|part\\s+of|part|export)\\b",beginCaptures:{0:{name:"keyword.other.import.dart"}},end:";",endCaptures:{0:{name:"punctuation.terminator.dart"}},name:"meta.declaration.dart",patterns:[{include:"#strings"},{include:"#comments"},{match:"\\b(as|show|hide)\\b",name:"keyword.other.import.dart"},{match:"\\b(if)\\b",name:"keyword.control.dart"}]},{include:"#comments"},{include:"#punctuation"},{include:"#annotations"},{include:"#keywords"},{include:"#constants-and-special-vars"},{include:"#operators"},{include:"#strings"}],n={annotations:{patterns:[{match:"@[a-zA-Z]+",name:"storage.type.annotation.dart"}]},"class-identifier":{patterns:[{match:"(??]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\("}]},keywords:{patterns:[{match:"(?>>?|~|\\^|\\||&)",name:"keyword.operator.bitwise.dart"},{match:"((&|\\^|\\||<<|>>>?)=)",name:"keyword.operator.assignment.bitwise.dart"},{match:"(=>)",name:"keyword.operator.closure.dart"},{match:"(==|!=|<=?|>=?)",name:"keyword.operator.comparison.dart"},{match:"(([+*/%-]|\\~)=)",name:"keyword.operator.assignment.arithmetic.dart"},{match:"(=)",name:"keyword.operator.assignment.dart"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.dart"},{match:"(\\-|\\+|\\*|\\/|\\~\\/|%)",name:"keyword.operator.arithmetic.dart"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.dart"}]},punctuation:{patterns:[{match:",",name:"punctuation.comma.dart"},{match:";",name:"punctuation.terminator.dart"},{match:"\\.",name:"punctuation.dot.dart"}]},"string-interp":{patterns:[{captures:{1:{name:"variable.parameter.dart"}},match:"\\$([a-zA-Z0-9_]+)",name:"meta.embedded.expression.dart"},{begin:"\\$\\{",end:"\\}",name:"meta.embedded.expression.dart",patterns:[{include:"#expression"}]},{match:"\\\\.",name:"constant.character.escape.dart"}]},strings:{patterns:[{begin:'(?)",endCaptures:{1:{name:"other.source.dart"}},patterns:[{include:"#class-identifier"},{match:","},{match:"extends",name:"keyword.declaration.dart"},{include:"#comments"}]}},r="source.dart",i={displayName:e,name:t,patterns:a,repository:n,scopeName:r};export{i as default,e as displayName,t as name,a as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/dax.mjs b/lib/dist/grammar/dax.mjs new file mode 100644 index 0000000..3f5cd2e --- /dev/null +++ b/lib/dist/grammar/dax.mjs @@ -0,0 +1 @@ +var E="DAX",T="dax",A=[{include:"#comments"},{include:"#keywords"},{include:"#labels"},{include:"#parameters"},{include:"#strings"},{include:"#numbers"}],N={comments:{patterns:[{begin:"//",captures:{0:{name:"punctuation.definition.comment.dax"}},end:"\n",name:"comment.line.dax"},{begin:"--",captures:{0:{name:"punctuation.definition.comment.dax"}},end:"\n",name:"comment.line.dax"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.dax"}},end:"\\*/",name:"comment.block.dax"}]},keywords:{patterns:[{match:"\\b(YIELDMAT|YIELDDISC|YIELD|YEARFRAC|YEAR|XNPV|XIRR|WEEKNUM|WEEKDAY|VDB|VARX.S|VARX.P|VAR.S|VAR.P|VALUES|VALUE|UTCTODAY|UTCNOW|USERPRINCIPALNAME|USEROBJECTID|USERNAME|USERELATIONSHIP|USERCULTURE|UPPER|UNION|UNICODE|UNICHAR|TRUNC|TRUE|TRIM|TREATAS|TOTALYTD|TOTALQTD|TOTALMTD|TOPNSKIP|TOPNPERLEVEL|TOPN|TODAY|TIMEVALUE|TIME|TBILLYIELD|TBILLPRICE|TBILLEQ|TANH|TAN|T.INV.2T|T.INV|T.DIST.RT|T.DIST.2T|T.DIST|SYD|SWITCH|SUMX|SUMMARIZECOLUMNS|SUMMARIZE|SUM|SUBSTITUTEWITHINDEX|SUBSTITUTE|STDEVX.S|STDEVX.P|STDEV.S|STDEV.P|STARTOFYEAR|STARTOFQUARTER|STARTOFMONTH|SQRTPI|SQRT|SLN|SINH|SIN|SIGN|SELECTEDVALUE|SELECTEDMEASURENAME|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURE|SELECTCOLUMNS|SECOND|SEARCH|SAMPLE|SAMEPERIODLASTYEAR|RRI|ROW|ROUNDUP|ROUNDDOWN|ROUND|ROLLUPISSUBTOTAL|ROLLUPGROUP|ROLLUPADDISSUBTOTAL|ROLLUP|RIGHT|REPT|REPLACE|REMOVEFILTERS|RELATEDTABLE|RELATED|RECEIVED|RATE|RANKX|RANK.EQ|RANDBETWEEN|RAND|RADIANS|QUOTIENT|QUARTER|PV|PRODUCTX|PRODUCT|PRICEMAT|PRICEDISC|PRICE|PREVIOUSYEAR|PREVIOUSQUARTER|PREVIOUSMONTH|PREVIOUSDAY|PPMT|POWER|POISSON.DIST|PMT|PI|PERMUT|PERCENTILEX.INC|PERCENTILEX.EXC|PERCENTILE.INC|PERCENTILE.EXC|PDURATION|PATHLENGTH|PATHITEMREVERSE|PATHITEM|PATHCONTAINS|PATH|PARALLELPERIOD|OR|OPENINGBALANCEYEAR|OPENINGBALANCEQUARTER|OPENINGBALANCEMONTH|ODDLYIELD|ODDLPRICE|ODDFYIELD|ODDFPRICE|ODD|NPER|NOW|NOT|NORM.S.INV|NORM.S.DIST|NORM.INV|NORM.DIST|NONVISUAL|NOMINAL|NEXTYEAR|NEXTQUARTER|NEXTMONTH|NEXTDAY|NATURALLEFTOUTERJOIN|NATURALINNERJOIN|MROUND|MONTH|MOD|MINX|MINUTE|MINA|MIN|MID|MEDIANX|MEDIAN|MDURATION|MAXX|MAXA|MAX|LOWER|LOOKUPVALUE|LOG10|LOG|LN|LEN|LEFT|LCM|LASTNONBLANKVALUE|LASTNONBLANK|LASTDATE|KEYWORDMATCH|KEEPFILTERS|ISTEXT|ISSUBTOTAL|ISSELECTEDMEASURE|ISPMT|ISONORAFTER|ISODD|ISO.CEILING|ISNUMBER|ISNONTEXT|ISLOGICAL|ISINSCOPE|ISFILTERED|ISEVEN|ISERROR|ISEMPTY|ISCROSSFILTERED|ISBLANK|ISAFTER|IPMT|INTRATE|INTERSECT|INT|IGNORE|IFERROR|IF.EAGER|IF|HOUR|HASONEVALUE|HASONEFILTER|HASH|GROUPBY|GEOMEANX|GEOMEAN|GENERATESERIES|GENERATEALL|GENERATE|GCD|FV|FORMAT|FLOOR|FIXED|FIRSTNONBLANKVALUE|FIRSTNONBLANK|FIRSTDATE|FIND|FILTERS|FILTER|FALSE|FACT|EXPON.DIST|EXP|EXCEPT|EXACT|EVEN|ERROR|EOMONTH|ENDOFYEAR|ENDOFQUARTER|ENDOFMONTH|EFFECT|EDATE|EARLIEST|EARLIER|DURATION|DOLLARFR|DOLLARDE|DIVIDE|DISTINCTCOUNTNOBLANK|DISTINCTCOUNT|DISTINCT|DISC|DETAILROWS|DEGREES|DDB|DB|DAY|DATEVALUE|DATESYTD|DATESQTD|DATESMTD|DATESINPERIOD|DATESBETWEEN|DATEDIFF|DATEADD|DATE|DATATABLE|CUSTOMDATA|CURRENTGROUP|CURRENCY|CUMPRINC|CUMIPMT|CROSSJOIN|CROSSFILTER|COUPPCD|COUPNUM|COUPNCD|COUPDAYSNC|COUPDAYS|COUPDAYBS|COUNTX|COUNTROWS|COUNTBLANK|COUNTAX|COUNTA|COUNT|COTH|COT|COSH|COS|CONVERT|CONTAINSSTRINGEXACT|CONTAINSSTRING|CONTAINSROW|CONTAINS|CONFIDENCE.T|CONFIDENCE.NORM|CONCATENATEX|CONCATENATE|COMBINEVALUES|COMBINA|COMBIN|COLUMNSTATISTICS|COALESCE|CLOSINGBALANCEYEAR|CLOSINGBALANCEQUARTER|CLOSINGBALANCEMONTH|CHISQ.INV.RT|CHISQ.INV|CHISQ.DIST.RT|CHISQ.DIST|CEILING|CALENDARAUTO|CALENDAR|CALCULATETABLE|CALCULATE|BLANK|BETA.INV|BETA.DIST|AVERAGEX|AVERAGEA|AVERAGE|ATANH|ATAN|ASINH|ASIN|APPROXIMATEDISTINCTCOUNT|AND|AMORLINC|AMORDEGRC|ALLSELECTED|ALLNOBLANKROW|ALLEXCEPT|ALLCROSSFILTERED|ALL|ADDMISSINGITEMS|ADDCOLUMNS|ACOTH|ACOT|ACOSH|ACOS|ACCRINTM|ACCRINT|ABS)\\b",name:"variable.language.dax"},{match:"\\b(DEFINE|EVALUATE|ORDER BY|RETURN|VAR)\\b",name:"keyword.control.dax"},{match:"(?x)\n{ | }",name:"keyword.array.constructor.dax"},{match:"(?x)\n> | < | >= | <= | =(?!==)\n",name:"keyword.operator.comparison.dax"},{match:"(?x)\n&& | IN | NOT | \\|\\|",name:"keyword.operator.logical.dax"},{match:"(?x)\n\\+ | \\- | \\* | \\/\n",name:"keyword.arithmetic.operator.dax"},{begin:"\\[",end:"\\]",name:"support.function.dax"},{begin:'"',end:'"',name:"string.quoted.double.dax"},{begin:"\\'",end:"\\'",name:"support.class.dax"}]},labels:{patterns:[{captures:{1:{name:"punctuation.separator.label.dax"},2:{name:"entity.name.label.dax"}},match:"(^(.*?)\\s*(:=|!=))"}]},metas:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.dax"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.dax"}}}]},numbers:{match:"(?x)\n-?\n(?:\n0\n|\n[1-9]\n\\d*\n)\n(?:\n(?:\n\\.\n\\d+\n)?\n(?:\n[eE]\n[+-]?\n\\d+\n)?\n)?",name:"constant.numeric.dax"},parameters:{patterns:[{begin:"\\b(?)( .*)?)|((\\+).*))$\\n?",name:"markup.inserted.diff"},{captures:{1:{name:"punctuation.definition.changed.diff"}},match:"^(!).*$\\n?",name:"markup.changed.diff"},{captures:{3:{name:"punctuation.definition.deleted.diff"},6:{name:"punctuation.definition.deleted.diff"}},match:"^(((<)( .*)?)|((-).*))$\\n?",name:"markup.deleted.diff"},{begin:"^(#)",captures:{1:{name:"punctuation.definition.comment.diff"}},comment:'Git produces unified diffs with embedded comments"',end:"\\n",name:"comment.line.number-sign.diff"},{match:"^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?",name:"meta.diff.index.git"},{captures:{1:{name:"punctuation.separator.key-value.diff"},2:{name:"meta.toc-list.file-name.diff"}},match:"^Index(:) (.+)$\\n?",name:"meta.diff.index"},{match:"^Only in .*: .*$\\n?",name:"meta.diff.only-in"}],a="source.diff",t={displayName:n,name:e,patterns:i,scopeName:a};export{t as default,n as displayName,e as name,i as patterns,a as scopeName}; diff --git a/lib/dist/grammar/docker.mjs b/lib/dist/grammar/docker.mjs new file mode 100644 index 0000000..e9a59ee --- /dev/null +++ b/lib/dist/grammar/docker.mjs @@ -0,0 +1 @@ +var e="Dockerfile",n="docker",i=[{captures:{1:{name:"keyword.other.special-method.dockerfile"},2:{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b"},{captures:{1:{name:"keyword.control.dockerfile"},2:{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s"},{captures:{1:{name:"keyword.operator.dockerfile"},2:{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s"},{begin:'"',beginCaptures:{1:{name:"punctuation.definition.string.begin.dockerfile"}},end:'"',endCaptures:{1:{name:"punctuation.definition.string.end.dockerfile"}},name:"string.quoted.double.dockerfile",patterns:[{match:"\\\\.",name:"constant.character.escaped.dockerfile"}]},{begin:"'",beginCaptures:{1:{name:"punctuation.definition.string.begin.dockerfile"}},end:"'",endCaptures:{1:{name:"punctuation.definition.string.end.dockerfile"}},name:"string.quoted.single.dockerfile",patterns:[{match:"\\\\.",name:"constant.character.escaped.dockerfile"}]},{captures:{1:{name:"punctuation.whitespace.comment.leading.dockerfile"},2:{name:"comment.line.number-sign.dockerfile"},3:{name:"punctuation.definition.comment.dockerfile"}},comment:"comment.line",match:"^(\\s*)((#).*$\\n?)"}],t="source.dockerfile",a={displayName:e,name:n,patterns:i,scopeName:t};export{a as default,e as displayName,n as name,i as patterns,t as scopeName}; diff --git a/lib/dist/grammar/dotenv.mjs b/lib/dist/grammar/dotenv.mjs new file mode 100644 index 0000000..a8dcf78 --- /dev/null +++ b/lib/dist/grammar/dotenv.mjs @@ -0,0 +1 @@ +var e="dotEnv",t="dotenv",n=[{captures:{1:{patterns:[{include:"#line-comment"}]}},comment:"Full Line Comment",match:"^\\s?(#.*$)\\n"},{captures:{1:{patterns:[{include:"#key"}]},2:{name:"keyword.operator.assignment.dotenv"},3:{name:"property.value.dotenv",patterns:[{include:"#line-comment"},{include:"#double-quoted-string"},{include:"#single-quoted-string"},{include:"#interpolation"}]}},comment:"ENV entry",match:"^\\s?(.*?)\\s?(\\=)(.*)$"}],a={"double-quoted-string":{captures:{1:{patterns:[{include:"#interpolation"},{include:"#escape-characters"}]}},comment:"Double Quoted String",match:'"(.*)"',name:"string.quoted.double.dotenv"},"escape-characters":{comment:"Escape characters",match:"\\\\[nrtfb\"'\\\\]|\\\\u[0123456789ABCDEF]{4}",name:"constant.character.escape.dotenv"},interpolation:{captures:{1:{name:"keyword.interpolation.begin.dotenv"},2:{name:"variable.interpolation.dotenv"},3:{name:"keyword.interpolation.end.dotenv"}},comment:"Interpolation (variable substitution)",match:"(\\$\\{)(.*)(\\})"},key:{captures:{1:{name:"keyword.key.export.dotenv"},2:{name:"variable.key.dotenv",patterns:[{include:"#variable"}]}},comment:"Key",match:"(export\\s)?(.*)"},"line-comment":{comment:"Comment",match:"#.*$",name:"comment.line.dotenv"},"single-quoted-string":{comment:"Single Quoted String",match:"'(.*)'",name:"string.quoted.single.dotenv"},variable:{comment:"env variable",match:"[a-zA-Z_]+[a-zA-Z0-9_]*"}},o="source.dotenv",r={displayName:e,name:t,patterns:n,repository:a,scopeName:o};export{r as default,e as displayName,t as name,n as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/dream-maker.mjs b/lib/dist/grammar/dream-maker.mjs new file mode 100644 index 0000000..1866536 --- /dev/null +++ b/lib/dist/grammar/dream-maker.mjs @@ -0,0 +1 @@ +var e="Dream Maker",n=["dm","dme"],a="(?x)\n/\\*\\*(?!\\*)\n|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))",t="(?|<)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)",name:"keyword.operator.dm"},{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.dm"},{match:"\\bnull\\b",name:"constant.language.dm"},{begin:'{"',beginCaptures:{0:{name:"punctuation.definition.string.begin.dm"}},end:'"}',endCaptures:{0:{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.triple.dm",patterns:[{include:"#string_escaped_char"},{include:"#string_embedded_expression"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.dm"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.double.dm",patterns:[{include:"#string_escaped_char"},{include:"#string_embedded_expression"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.dm"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.single.dm",patterns:[{include:"#string_escaped_char"}]},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\n((?[a-zA-Z_][a-zA-Z0-9_]*))\n(?:\n(\\()\n(\n\\s* \\g \\s*\n((,) \\s* \\g \\s*)*\n(?:\\.\\.\\.)?\n)\n(\\))\n)",beginCaptures:{1:{name:"keyword.control.directive.define.dm"},2:{name:"punctuation.definition.directive.dm"},3:{name:"entity.name.function.preprocessor.dm"},5:{name:"punctuation.definition.parameters.begin.dm"},6:{name:"variable.parameter.preprocessor.dm"},8:{name:"punctuation.separator.parameters.dm"},9:{name:"punctuation.definition.parameters.end.dm"}},end:"(?=(?://|/\\*))|(?[a-zA-Z_][a-zA-Z0-9_]*))",beginCaptures:{1:{name:"keyword.control.directive.define.dm"},2:{name:"punctuation.definition.directive.dm"},3:{name:"variable.other.preprocessor.dm"}},end:"(?=(?://|/\\*))|(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]},{begin:"^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b",beginCaptures:{1:{name:"keyword.control.directive.conditional.dm"},2:{name:"punctuation.definition.directive.dm"},3:{name:"keyword.control.directive.$5.dm"},4:{name:"punctuation.definition.directive.dm"}},end:"(?=(?://|/\\*))|(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]},{include:"#block"},{begin:"(?x)\n(?: ^\n|\n(?: (?= \\s ) (?])\n)\n)\n(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n(\n(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ |\n(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) )\n)\n\\s*(?=\\()",beginCaptures:{1:{name:"punctuation.whitespace.function.leading.dm"},3:{name:"entity.name.function.dm"},4:{name:"punctuation.definition.parameters.dm"}},end:"(?<=\\})|(?=#)|(;)?",name:"meta.function.dm",patterns:[{include:"#comments"},{include:"#parens"},{match:"\\bconst\\b",name:"storage.modifier.dm"},{include:"#block"}]}],i={access:{match:"\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",name:"variable.other.dot-access.dm"},block:{begin:"\\{",end:"\\}",name:"meta.block.dm",patterns:[{include:"#block_innards"}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-other-block"},{include:"#access"},{captures:{1:{name:"punctuation.whitespace.function-call.leading.dm"},2:{name:"support.function.any-method.dm"},3:{name:"punctuation.definition.parameters.dm"}},match:"(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"}]},parens:{begin:"\\(",end:"\\)",name:"meta.parens.dm",patterns:[{include:"$base"}]},"preprocessor-rule-disabled":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"$base"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",name:"comment.block.preprocessor.if-branch",patterns:[{include:"#disabled"}]}]},"preprocessor-rule-disabled-block":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#block_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",name:"comment.block.preprocessor.if-branch.in-block",patterns:[{include:"#disabled"}]}]},"preprocessor-rule-enabled":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},contentName:"comment.block.preprocessor.else-branch",end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#disabled"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",patterns:[{include:"$base"}]}]},"preprocessor-rule-enabled-block":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.if.dm"},3:{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.else.dm"}},contentName:"comment.block.preprocessor.else-branch.in-block",end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#disabled"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",patterns:[{include:"#block_innards"}]}]},"preprocessor-rule-other":{begin:"^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.dm"}},end:"^\\s*((#\\s*(endif))\\b).*$",patterns:[{include:"$base"}]},"preprocessor-rule-other-block":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.dm"},2:{name:"keyword.control.import.dm"}},end:"^\\s*(#\\s*(endif)\\b).*$",patterns:[{include:"#block_innards"}]},string_embedded_expression:{patterns:[{begin:"(?"n\\n \\[]\n)',name:"constant.character.escape.dm"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.dm"}]}},o="source.dm",m={displayName:e,fileTypes:n,foldingStartMarker:a,foldingStopMarker:t,name:r,patterns:s,repository:i,scopeName:o};export{m as default,e as displayName,n as fileTypes,a as foldingStartMarker,t as foldingStopMarker,r as name,s as patterns,i as repository,o as scopeName}; diff --git a/lib/dist/grammar/edge.mjs b/lib/dist/grammar/edge.mjs new file mode 100644 index 0000000..d5ee8b0 --- /dev/null +++ b/lib/dist/grammar/edge.mjs @@ -0,0 +1 @@ +var e="Edge",n={"text.html.edge - (meta.embedded | meta.tag | comment.block.edge), L:(text.html.edge meta.tag - (comment.block.edge | meta.embedded.block.edge)), L:(source.ts.embedded.html - (comment.block.edge | meta.embedded.block.edge))":{patterns:[{include:"#comment"},{include:"#escapedMustache"},{include:"#safeMustache"},{include:"#mustache"},{include:"#nonSeekableTag"},{include:"#tag"}]}},t="edge",a=[{include:"text.html.basic"},{include:"text.html.derivative"}],d={comment:{begin:"\\{{--",beginCaptures:{0:{name:"punctuation.definition.comment.begin.edge"}},end:"\\--}}",endCaptures:{0:{name:"punctuation.definition.comment.end.edge"}},name:"comment.block"},escapedMustache:{begin:"\\@{{",beginCaptures:{0:{name:"punctuation.definition.comment.begin.edge"}},end:"\\}}",endCaptures:{0:{name:"punctuation.definition.comment.end.edge"}},name:"comment.block"},mustache:{begin:"\\{{",beginCaptures:{0:{name:"punctuation.mustache.begin"}},end:"\\}}",endCaptures:{0:{name:"punctuation.mustache.end"}},name:"meta.embedded.block.javascript",patterns:[{include:"source.ts#expression"}]},nonSeekableTag:{captures:{2:{name:"support.function.edge"}},match:"^(\\s*)((@{1,2})(!)?([a-zA-Z._]+))(~)?$",name:"meta.embedded.block.javascript",patterns:[{include:"source.ts#expression"}]},safeMustache:{begin:"\\{{{",beginCaptures:{0:{name:"punctuation.mustache.begin"}},end:"\\}}}",endCaptures:{0:{name:"punctuation.mustache.end"}},name:"meta.embedded.block.javascript",patterns:[{include:"source.ts#expression"}]},tag:{begin:"^(\\s*)((@{1,2})(!)?([a-zA-Z._]+)(\\s{0,2}))(\\()",beginCaptures:{2:{name:"support.function.edge"},7:{name:"punctuation.paren.open"}},end:"\\)",endCaptures:{0:{name:"punctuation.paren.close"}},name:"meta.embedded.block.javascript",patterns:[{include:"source.ts#expression"}]}},c="text.html.edge",m={displayName:e,injections:n,name:t,patterns:a,repository:d,scopeName:c};export{m as default,e as displayName,n as injections,t as name,a as patterns,d as repository,c as scopeName}; diff --git a/lib/dist/grammar/elixir.mjs b/lib/dist/grammar/elixir.mjs new file mode 100644 index 0000000..3d4e91f --- /dev/null +++ b/lib/dist/grammar/elixir.mjs @@ -0,0 +1 @@ +var e="Elixir",i=["ex","exs"],n="^#!/.*\\belixir",t="(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$",a="^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)",r="elixir",o=[{begin:"\\b(fn)\\b(?!.*->)",beginCaptures:{1:{name:"keyword.control.elixir"}},end:"$",patterns:[{include:"#core_syntax"}]},{captures:{1:{name:"entity.name.type.class.elixir"},2:{name:"punctuation.separator.method.elixir"},3:{name:"entity.name.function.elixir"}},match:"([A-Z]\\w+)\\s*(\\.)\\s*([a-z_]\\w*[!?]?)"},{captures:{1:{name:"constant.other.symbol.elixir"},2:{name:"punctuation.separator.method.elixir"},3:{name:"entity.name.function.elixir"}},match:"(\\:\\w+)\\s*(\\.)\\s*([_]?\\w*[!?]?)"},{captures:{1:{name:"keyword.operator.other.elixir"},2:{name:"entity.name.function.elixir"}},match:"(\\|\\>)\\s*([a-z_]\\w*[!?]?)"},{match:"\\b[a-z_]\\w*[!?]?(?=\\s*\\.?\\s*\\()",name:"entity.name.function.elixir"},{begin:"\\b(fn)\\b(?=.*->)",beginCaptures:{1:{name:"keyword.control.elixir"}},end:"(?>(->)|(when)|(\\)))",endCaptures:{1:{name:"keyword.operator.other.elixir"},2:{name:"keyword.control.elixir"},3:{name:"punctuation.section.function.elixir"}},patterns:[{include:"#core_syntax"}]},{include:"#core_syntax"},{begin:"^(?=.*->)((?![^\"']*(\"|')[^\"']*->)|(?=.*->[^\"']*(\"|')[^\"']*->))((?!.*\\([^\\)]*->)|(?=[^\\(\\)]*->)|(?=\\s*\\(.*\\).*->))((?!.*\\b(fn)\\b)|(?=.*->.*\\bfn\\b))",beginCaptures:{1:{name:"keyword.control.elixir"}},end:"(?>(->)|(when)|(\\)))",endCaptures:{1:{name:"keyword.operator.other.elixir"},2:{name:"keyword.control.elixir"},3:{name:"punctuation.section.function.elixir"}},patterns:[{include:"#core_syntax"}]}],l={core_syntax:{patterns:[{begin:"^\\s*(defmodule)\\b",beginCaptures:{1:{name:"keyword.control.module.elixir"}},end:"\\b(do)\\b",endCaptures:{1:{name:"keyword.control.module.elixir"}},name:"meta.module.elixir",patterns:[{match:"\\b[A-Z]\\w*(?=\\.)",name:"entity.other.inherited-class.elixir"},{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.class.elixir"}]},{begin:"^\\s*(defprotocol)\\b",beginCaptures:{1:{name:"keyword.control.protocol.elixir"}},end:"\\b(do)\\b",endCaptures:{1:{name:"keyword.control.protocol.elixir"}},name:"meta.protocol_declaration.elixir",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.protocol.elixir"}]},{begin:"^\\s*(defimpl)\\b",beginCaptures:{1:{name:"keyword.control.protocol.elixir"}},end:"\\b(do)\\b",endCaptures:{1:{name:"keyword.control.protocol.elixir"}},name:"meta.protocol_implementation.elixir",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.protocol.elixir"}]},{begin:"^\\s*(def|defmacro|defdelegate|defguard)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",beginCaptures:{1:{name:"keyword.control.module.elixir"},2:{name:"entity.name.function.public.elixir"},4:{name:"punctuation.section.function.elixir"}},end:"(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defn|defmacro|defdelegate|defguard)\\b)",endCaptures:{1:{name:"constant.other.keywords.elixir"},2:{name:"keyword.control.module.elixir"}},name:"meta.function.public.elixir",patterns:[{include:"$self"},{begin:"\\s(\\\\\\\\)",beginCaptures:{1:{name:"keyword.operator.other.elixir"}},end:",|\\)|$",patterns:[{include:"$self"}]},{match:"\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",name:"keyword.control.elixir"}]},{begin:"^\\s*(defp|defnp|defmacrop|defguardp)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",beginCaptures:{1:{name:"keyword.control.module.elixir"},2:{name:"entity.name.function.private.elixir"},4:{name:"punctuation.section.function.elixir"}},end:"(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop|defguardp)\\b)",endCaptures:{1:{name:"constant.other.keywords.elixir"},2:{name:"keyword.control.module.elixir"}},name:"meta.function.private.elixir",patterns:[{include:"$self"},{begin:"\\s(\\\\\\\\)",beginCaptures:{1:{name:"keyword.operator.other.elixir"}},end:",|\\)|$",patterns:[{include:"$self"}]},{match:"\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",name:"keyword.control.elixir"}]},{begin:'\\s*~L"""',comment:"Leex Sigil",end:'\\s*"""',name:"sigil.leex",patterns:[{include:"text.elixir"},{include:"text.html.basic"}]},{begin:'\\s*~H"""',comment:"HEEx Sigil",end:'\\s*"""',name:"sigil.heex",patterns:[{include:"text.elixir"},{include:"text.html.basic"}]},{begin:'@(module|type)?doc (~[a-z])?"""',comment:"@doc with heredocs is treated as documentation",end:'\\s*"""',name:"comment.block.documentation.heredoc",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'@(module|type)?doc ~[A-Z]"""',comment:"@doc with heredocs is treated as documentation",end:'\\s*"""',name:"comment.block.documentation.heredoc"},{begin:"@(module|type)?doc (~[a-z])?'''",comment:"@doc with heredocs is treated as documentation",end:"\\s*'''",name:"comment.block.documentation.heredoc",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"@(module|type)?doc ~[A-Z]'''",comment:"@doc with heredocs is treated as documentation",end:"\\s*'''",name:"comment.block.documentation.heredoc"},{comment:"@doc false is treated as documentation",match:"@(module|type)?doc false",name:"comment.block.documentation.false"},{begin:'@(module|type)?doc "',comment:"@doc with string is treated as documentation",end:'"',name:"comment.block.documentation.string",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{match:"(?_?[0-9A-Fa-f])*\\b",name:"constant.numeric.hex.elixir"},{match:"\\b\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)+)([eE][-+]?\\d(?>_?\\d)*)?\\b",name:"constant.numeric.float.elixir"},{match:"\\b\\d(?>_?\\d)*\\b",name:"constant.numeric.integer.elixir"},{match:"\\b0b[01](?>_?[01])*\\b",name:"constant.numeric.binary.elixir"},{match:"\\b0o[0-7](?>_?[0-7])*\\b",name:"constant.numeric.octal.elixir"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.elixir"}},end:"'",name:"constant.other.symbol.single-quoted.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.elixir"}},end:'"',name:"constant.other.symbol.double-quoted.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"(?>''')",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Single-quoted heredocs",end:"^\\s*'''",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.single.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"single quoted string (allows for interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.single.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'(?>""")',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs",end:'^\\s*"""',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.double.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.double.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'~[a-z](?>""")',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs sigils",end:'^\\s*"""',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\}[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\][a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\>[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\)[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]([^\\w])",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\1[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:'~[A-Z](?>""")',beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs sigils",end:'^\\s*"""',endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.heredoc.literal.elixir"},{begin:"~[A-Z]\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\}[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\][a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\>[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\)[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]([^\\w])",beginCaptures:{0:{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\1[a-z]*",endCaptures:{0:{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{captures:{1:{name:"punctuation.definition.constant.elixir"}},comment:"symbols",match:"(?[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|=~|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|\\.\\.//|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)",name:"constant.other.symbol.elixir"},{captures:{1:{name:"punctuation.definition.constant.elixir"}},comment:"symbols",match:"(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)",name:"constant.other.keywords.elixir"},{begin:"(^[ \\t]+)?(?=##)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.elixir"}},end:"(?!#)",patterns:[{begin:"##",beginCaptures:{0:{name:"punctuation.definition.comment.elixir"}},end:"\\n",name:"comment.line.section.elixir"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.elixir"}},end:"(?!#)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.elixir"}},end:"\\n",name:"comment.line.number-sign.elixir"}]},{match:"\\b_([^_][\\w]+[?!]?)",name:"comment.unused.elixir"},{match:"\\b_\\b",name:"comment.wildcard.elixir"},{comment:'\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (3rd alternation = normal):\n\t\t\t?a ?A ?0\n\t\t\t?* ?" ?(\n\t\t\t?. ?#\n\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t',match:"(?",name:"keyword.operator.concatenation.elixir"},{match:"\\|\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\|>",name:"keyword.operator.sigils_1.elixir"},{match:"&&&|&&",name:"keyword.operator.sigils_2.elixir"},{match:"<\\-|\\\\\\\\",name:"keyword.operator.sigils_3.elixir"},{match:"===?|!==?|<=?|>=?",name:"keyword.operator.comparison.elixir"},{match:"(\\|\\|\\||&&&|\\^\\^\\^|<<<|>>>|~~~)",name:"keyword.operator.bitwise.elixir"},{match:"(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b",name:"keyword.operator.logical.elixir"},{match:"(\\*|\\+|\\-|/)",name:"keyword.operator.arithmetic.elixir"},{match:"\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|//|\\|>|~|=>|&",name:"keyword.operator.other.elixir"},{match:"=",name:"keyword.operator.assignment.elixir"},{match:":",name:"punctuation.separator.other.elixir"},{match:"\\;",name:"punctuation.separator.statement.elixir"},{match:",",name:"punctuation.separator.object.elixir"},{match:"\\.",name:"punctuation.separator.method.elixir"},{match:"\\{|\\}",name:"punctuation.section.scope.elixir"},{match:"\\[|\\]",name:"punctuation.section.array.elixir"},{match:"\\(|\\)",name:"punctuation.section.function.elixir"}]},escaped_char:{match:"\\\\(x[\\da-fA-F]{1,2}|.)",name:"constant.character.escaped.elixir"},interpolated_elixir:{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.elixir"}},contentName:"source.elixir",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.elixir"}},name:"meta.embedded.line.elixir",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.elixir"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}},s="source.elixir",d={displayName:e,fileTypes:i,firstLineMatch:n,foldingStartMarker:t,foldingStopMarker:a,name:r,patterns:o,repository:l,scopeName:s};export{d as default,e as displayName,i as fileTypes,n as firstLineMatch,t as foldingStartMarker,a as foldingStopMarker,r as name,o as patterns,l as repository,s as scopeName}; diff --git a/lib/dist/grammar/elm.mjs b/lib/dist/grammar/elm.mjs new file mode 100644 index 0000000..1a60e9b --- /dev/null +++ b/lib/dist/grammar/elm.mjs @@ -0,0 +1 @@ +var e="Elm",a=["elm"],n="elm",t=[{include:"#import"},{include:"#module"},{include:"#debug"},{include:"#comments"},{match:"\\b(_)\\b",name:"keyword.unused.elm"},{include:"#type-signature"},{include:"#type-declaration"},{include:"#type-alias-declaration"},{include:"#string-triple"},{include:"#string-quote"},{include:"#char"},{comment:"Floats are always decimal",match:"\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",name:"constant.numeric.float.elm"},{match:"\\b([0-9]+)\\b",name:"constant.numeric.elm"},{match:"\\b(0x[0-9a-fA-F]+)\\b",name:"constant.numeric.elm"},{include:"#glsl"},{include:"#record-prefix"},{include:"#module-prefix"},{include:"#constructor"},{captures:{1:{name:"punctuation.bracket.elm"},2:{name:"record.name.elm"},3:{name:"keyword.pipe.elm"},4:{name:"entity.name.record.field.elm"}},match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\|)\\s+([a-z][a-zA-Z0-9_]*)",name:"meta.record.field.update.elm"},{captures:{1:{name:"keyword.pipe.elm"},2:{name:"entity.name.record.field.elm"},3:{name:"keyword.operator.assignment.elm"}},match:"(\\|)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",name:"meta.record.field.update.elm"},{captures:{1:{name:"punctuation.bracket.elm"},2:{name:"record.name.elm"}},match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+$",name:"meta.record.field.update.elm"},{captures:{1:{name:"punctuation.bracket.elm"},2:{name:"entity.name.record.field.elm"},3:{name:"keyword.operator.assignment.elm"}},match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",name:"meta.record.field.elm"},{captures:{1:{name:"punctuation.separator.comma.elm"},2:{name:"entity.name.record.field.elm"},3:{name:"keyword.operator.assignment.elm"}},match:"(,)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",name:"meta.record.field.elm"},{match:"(\\}|\\{)",name:"punctuation.bracket.elm"},{include:"#unit"},{include:"#comma"},{include:"#parens"},{match:"(->)",name:"keyword.operator.arrow.elm"},{include:"#infix_op"},{match:"(\\=|\\:|\\||\\\\)",name:"keyword.other.elm"},{match:"\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\s+",name:"keyword.other.elm"},{match:"\\b(if|then|else|case|of|let|in)\\s+",name:"keyword.control.elm"},{include:"#record-accessor"},{include:"#top_level_value"},{include:"#value"},{include:"#period"},{include:"#square_brackets"}],m={block_comment:{applyEndPatternLast:1,begin:"\\{-(?!#)",captures:{0:{name:"punctuation.definition.comment.elm"}},end:"-\\}",name:"comment.block.elm",patterns:[{include:"#block_comment"}]},char:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.char.begin.elm"}},end:"'",endCaptures:{0:{name:"punctuation.definition.char.end.elm"}},name:"string.quoted.single.elm",patterns:[{match:"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},comma:{match:"(,)",name:"punctuation.separator.comma.elm"},comments:{patterns:[{begin:"--",captures:{1:{name:"punctuation.definition.comment.elm"}},end:"$",name:"comment.line.double-dash.elm"},{include:"#block_comment"}]},constructor:{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"constant.type-constructor.elm"},debug:{match:"\\b(Debug)\\b",name:"invalid.illegal.debug.elm"},glsl:{begin:"(\\[)(glsl)(\\|)",beginCaptures:{1:{name:"entity.glsl.bracket.elm"},2:{name:"entity.glsl.name.elm"},3:{name:"entity.glsl.bracket.elm"}},end:"(\\|\\])",endCaptures:{1:{name:"entity.glsl.bracket.elm"}},name:"meta.embedded.block.glsl",patterns:[{include:"source.glsl"}]},import:{begin:"^\\b(import)\\s+",beginCaptures:{1:{name:"keyword.control.import.elm"}},end:"\\n(?!\\s)",name:"meta.import.elm",patterns:[{match:"(as|exposing)",name:"keyword.control.elm"},{include:"#module_chunk"},{include:"#period"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-exports"}]},infix_op:{match:"(|<\\?>|<\\||<=|\\|\\||&&|>=|\\|>|\\|=|\\|\\.|\\+\\+|::|/=|==|//|>>|<<|<|>|\\^|\\+|-|/|\\*)",name:"keyword.operator.elm"},module:{begin:"^\\b((port |effect )?module)\\s+",beginCaptures:{1:{name:"keyword.other.elm"}},end:"\\n(?!\\s)",endCaptures:{1:{name:"keyword.other.elm"}},name:"meta.declaration.module.elm",patterns:[{include:"#module_chunk"},{include:"#period"},{match:"(exposing)",name:"keyword.other.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-exports"}]},"module-exports":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parens.module-export.elm"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parens.module-export.elm"}},name:"meta.declaration.exports.elm",patterns:[{match:"\\b[a-z][a-zA-Z_'0-9]*",name:"entity.name.function.elm"},{match:"\\b[A-Z][A-Za-z_'0-9]*",name:"storage.type.elm"},{match:",",name:"punctuation.separator.comma.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#comma"},{match:"\\(\\.\\.\\)",name:"punctuation.parens.ellipses.elm"},{match:"\\.\\.",name:"punctuation.parens.ellipses.elm"},{include:"#infix_op"},{comment:"So named because I don't know what to call this.",match:"\\(.*?\\)",name:"meta.other.unknown.elm"}]},"module-prefix":{captures:{1:{name:"support.module.elm"},2:{name:"keyword.other.period.elm"}},match:"([A-Z][a-zA-Z0-9_]*)(\\.)",name:"meta.module.name.elm"},module_chunk:{match:"[A-Z][a-zA-Z0-9_]*",name:"support.module.elm"},parens:{match:"(\\(|\\))",name:"punctuation.parens.elm"},period:{match:"[.]",name:"keyword.other.period.elm"},"record-accessor":{captures:{1:{name:"keyword.other.period.elm"},2:{name:"entity.name.record.field.accessor.elm"}},match:"(\\.)([a-z][a-zA-Z0-9_]*)",name:"meta.record.accessor"},"record-prefix":{captures:{1:{name:"record.name.elm"},2:{name:"keyword.other.period.elm"},3:{name:"entity.name.record.field.accessor.elm"}},match:"([a-z][a-zA-Z0-9_]*)(\\.)([a-z][a-zA-Z0-9_]*)",name:"record.accessor.elm"},square_brackets:{match:"[\\[\\]]",name:"punctuation.definition.list.elm"},"string-quote":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.elm"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.elm"}},name:"string.quoted.double.elm",patterns:[{match:"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},"string-triple":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.elm"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.elm"}},name:"string.quoted.triple.elm",patterns:[{match:"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},top_level_value:{match:"^[a-z][a-zA-Z0-9_]*\\b",name:"entity.name.function.top_level.elm"},"type-alias-declaration":{begin:"^(type\\s+)(alias\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",beginCaptures:{1:{name:"keyword.type.elm"},2:{name:"keyword.type-alias.elm"},3:{name:"storage.type.elm"}},end:"^(?=\\S)",name:"meta.function.type-declaration.elm",patterns:[{match:"\\n\\s+",name:"punctuation.spaces.elm"},{match:"\\=",name:"keyword.operator.assignment.elm"},{include:"#module-prefix"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-declaration":{begin:"^(type\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",beginCaptures:{1:{name:"keyword.type.elm"},2:{name:"storage.type.elm"}},end:"^(?=\\S)",name:"meta.function.type-declaration.elm",patterns:[{captures:{1:{name:"constant.type-constructor.elm"}},match:"^\\s*([A-Z][a-zA-Z0-9_]*)\\b",name:"meta.record.field.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{captures:{1:{name:"keyword.operator.assignment.elm"},2:{name:"constant.type-constructor.elm"}},match:"(\\=|\\|)\\s+([A-Z][a-zA-Z0-9_]*)\\b",name:"meta.record.field.elm"},{match:"\\=",name:"keyword.operator.assignment.elm"},{match:"\\-\\>",name:"keyword.operator.arrow.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-record":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.braces.begin"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.braces.end"}},name:"meta.function.type-record.elm",patterns:[{match:"\\s+",name:"punctuation.spaces.elm"},{match:"->",name:"keyword.operator.arrow.elm"},{captures:{1:{name:"entity.name.record.field.elm"},2:{name:"keyword.other.elm"}},match:"([a-z][a-zA-Z0-9_]*)\\s+(\\:)",name:"meta.record.field.elm"},{match:"\\,",name:"punctuation.separator.comma.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-signature":{begin:"^(port\\s+)?([a-z_][a-zA-Z0-9_']*)\\s+(\\:)",beginCaptures:{1:{name:"keyword.other.port.elm"},2:{name:"entity.name.function.elm"},3:{name:"keyword.other.colon.elm"}},end:"((^(?=[a-z]))|^$)",name:"meta.function.type-declaration.elm",patterns:[{include:"#type-signature-chunk"}]},"type-signature-chunk":{patterns:[{match:"->",name:"keyword.operator.arrow.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{match:"\\(\\)",name:"constant.unit.elm"},{include:"#comma"},{include:"#parens"},{include:"#comments"},{include:"#type-record"}]},unit:{match:"\\(\\)",name:"constant.unit.elm"},value:{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"meta.value.elm"}},c="source.elm",r={displayName:"Elm",fileTypes:a,name:"elm",patterns:t,repository:m,scopeName:c};export{r as default,e as displayName,a as fileTypes,n as name,t as patterns,m as repository,c as scopeName}; diff --git a/lib/dist/grammar/emacs-lisp.mjs b/lib/dist/grammar/emacs-lisp.mjs new file mode 100644 index 0000000..980731d --- /dev/null +++ b/lib/dist/grammar/emacs-lisp.mjs @@ -0,0 +1 @@ +var e="Emacs Lisp",t=["el","elc","eld","spacemacs","_emacs","emacs","emacs.desktop","abbrev_defs","Project.ede","Cask","gnus","viper"],r="(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\temacs\n(?:$|\\s)\n|\n# Modeline\n(?:\n\t# Emacs\n\t-\\*-(?i:[ \\t]*(?=[^:;\\s]+[ \\t]*-\\*-)|(?:.*?[ \\t;]|(?<=-\\*-))[ \\t]*mode[ \\t]*:[ \\t]*)\n\t\t(?i:emacs-lisp)\n\t(?=[ \\t;]|(?]?[0-9]+|m)?|[ \\t]ex)(?=:(?=[ \\t]*set?[ \\t][^\\r\\n:]+:)|:(?![ \\t]*set?[ \\t]))\n\t(?:(?:[ \\t]*:[ \\t]*|[ \\t])\\w*(?:[ \\t]*=(?:[^\\\\\\s]|\\\\.)*)?)*[ \\t:]\n\t(?:filetype|ft|syntax)[ \\t]*=\n\t\t(?i:emacs-lisp|elisp)\n\t(?=$|\\s|:)\n)",a="emacs-lisp",i=[{begin:"\\A(#!)",beginCaptures:{1:{name:"punctuation.definition.comment.hashbang.emacs.lisp"}},end:"$",name:"comment.line.hashbang.emacs.lisp"},{include:"#main"}],n={"archive-sources":{captures:{1:{name:"support.language.constant.archive-source.emacs.lisp"}},match:"(?x)\\b(?<=[\\s()\\[]|^)\n(SC|gnu|marmalade|melpa-stable|melpa|org)\n(?=[\\s()]|$) \\b"},"arg-values":{patterns:[{match:"&(optional|rest)(?=\\s|\\))",name:"constant.language.$1.arguments.emacs.lisp"}]},autoload:{begin:"^(;;;###)(autoload)",beginCaptures:{1:{name:"punctuation.definition.comment.emacs.lisp"},2:{name:"storage.modifier.autoload.emacs.lisp"}},contentName:"string.unquoted.other.emacs.lisp",end:"$",name:"comment.line.semicolon.autoload.emacs.lisp"},binding:{match:"\\b(?<=[\\s()\\[]|^)(let\\*?|set[fq]?)(?=[\\s()]|$)",name:"storage.binding.emacs.lisp"},boolean:{patterns:[{match:"\\b(?<=[\\s()\\[]|^)t(?=[\\s()]|$)\\b",name:"constant.boolean.true.emacs.lisp"},{match:"\\b(?<=[\\s()\\[]|^)(nil)(?=[\\s()]|$)\\b",name:"constant.language.nil.emacs.lisp"}]},cask:{match:"\\b(?<=[\\s()\\[]|^)(?:files|source|development|depends-on|package-file|package-descriptor|package)(?=[\\s()]|$)\\b",name:"support.function.emacs.lisp"},comment:{begin:";",beginCaptures:{0:{name:"punctuation.definition.comment.emacs.lisp"}},end:"$",name:"comment.line.semicolon.emacs.lisp",patterns:[{include:"#modeline"},{include:"#eldoc"}]},definition:{patterns:[{begin:"(\\()(?:(cl-(defun|defmacro|defsubst))|(defun|defmacro|defsubst))(?!-)\\b(?:\\s*(?![-+\\d])([-+=*/\\w~!@$%^&:<>{}?]+))?",beginCaptures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"storage.type.$3.function.cl-lib.emacs.lisp"},4:{name:"storage.type.$4.function.emacs.lisp"},5:{name:"entity.function.name.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.function.definition.emacs.lisp",patterns:[{include:"#defun-innards"}]},{match:"\\b(?<=[\\s()\\[]|^)defun(?=[\\s()]|$)",name:"storage.type.function.emacs.lisp"},{begin:"(?x) (?<=\\s|^) (\\()\n(def(advice|class|const|custom|face|image|group|package|struct|subst|theme|type|var))\n(?:\\s+([-+=*/\\w~!@$%^&:<>{}?]+))?\n(?=[\\s()]|$)",beginCaptures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"storage.type.$3.emacs.lisp"},4:{name:"entity.name.$3.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.$3.definition.emacs.lisp",patterns:[{include:"$self"}]},{match:"\\b(?<=[\\s()\\[]|^)(define-(?:condition|widget))(?=[\\s()]|$)\\b",name:"storage.type.$1.emacs.lisp"}]},"defun-innards":{patterns:[{begin:"\\G\\s*(\\()",beginCaptures:{0:{name:"punctuation.section.expression.begin.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.argument-list.expression.emacs.lisp",patterns:[{include:"#arg-keywords"},{match:"(?![-+\\d:&'#])([-+=*/\\w~!@$%^&:<>{}?]+)",name:"variable.parameter.emacs.lisp"},{include:"$self"}]},{include:"$self"}]},docesc:{patterns:[{match:"\\x5C{2}=",name:"constant.escape.character.key-sequence.emacs.lisp"},{match:"\\x5C{2}+",name:"constant.escape.character.suppress-link.emacs.lisp"}]},dockey:{captures:{1:{name:"punctuation.definition.reference.begin.emacs.lisp"},2:{name:"constant.other.reference.link.emacs.lisp"},3:{name:"punctuation.definition.reference.end.emacs.lisp"}},match:"(\\x5C{2}\\[)((?:[^\\s\\\\]|\\\\.)+)(\\])",name:"variable.other.reference.key-sequence.emacs.lisp"},docmap:{patterns:[{captures:{1:{name:"punctuation.definition.reference.begin.emacs.lisp"},2:{name:"entity.name.tag.keymap.emacs.lisp"},3:{name:"punctuation.definition.reference.end.emacs.lisp"}},match:"(\\x5C{2}{)((?:[^\\s\\\\]|\\\\.)+)(})",name:"meta.keymap.summary.emacs.lisp"},{captures:{1:{name:"punctuation.definition.reference.begin.emacs.lisp"},2:{name:"entity.name.tag.keymap.emacs.lisp"},3:{name:"punctuation.definition.reference.end.emacs.lisp"}},match:"(\\x5C{2}<)((?:[^\\s\\\\]|\\\\.)+)(>)",name:"meta.keymap.specifier.emacs.lisp"}]},docvar:{captures:{1:{name:"punctuation.definition.quote.begin.emacs.lisp"},2:{name:"punctuation.definition.quote.end.emacs.lisp"}},match:"(`)[^\\s()]+(')",name:"variable.other.literal.emacs.lisp"},eldoc:{patterns:[{include:"#docesc"},{include:"#docvar"},{include:"#dockey"},{include:"#docmap"}]},escapes:{patterns:[{captures:{1:{name:"punctuation.definition.codepoint.emacs.lisp"},2:{name:"punctuation.definition.codepoint.emacs.lisp"}},match:"(\\?)\\\\u[A-Fa-f0-9]{4}|(\\?)\\\\U00[A-Fa-f0-9]{6}",name:"constant.character.escape.hex.emacs.lisp"},{captures:{1:{name:"punctuation.definition.codepoint.emacs.lisp"}},match:"(\\?)\\\\x[A-Fa-f0-9]+",name:"constant.character.escape.hex.emacs.lisp"},{captures:{1:{name:"punctuation.definition.codepoint.emacs.lisp"}},match:"(\\?)\\\\[0-7]{1,3}",name:"constant.character.escape.octal.emacs.lisp"},{captures:{1:{name:"punctuation.definition.codepoint.emacs.lisp"},2:{name:"punctuation.definition.backslash.emacs.lisp"}},match:"(\\?)(?:[^\\\\]|(\\\\).)",name:"constant.numeric.codepoint.emacs.lisp"},{captures:{1:{name:"punctuation.definition.backslash.emacs.lisp"}},match:"(\\\\).",name:"constant.character.escape.emacs.lisp"}]},expression:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.expression.begin.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.expression.emacs.lisp",patterns:[{include:"$self"}]},{begin:"(\\')(\\()",beginCaptures:{1:{name:"punctuation.definition.symbol.emacs.lisp"},2:{name:"punctuation.section.quoted.expression.begin.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.quoted.expression.end.emacs.lisp"}},name:"meta.quoted.expression.emacs.lisp",patterns:[{include:"$self"}]},{begin:"(\\`)(\\()",beginCaptures:{1:{name:"punctuation.definition.symbol.emacs.lisp"},2:{name:"punctuation.section.backquoted.expression.begin.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.backquoted.expression.end.emacs.lisp"}},name:"meta.backquoted.expression.emacs.lisp",patterns:[{include:"$self"}]},{begin:"(,@)(\\()",beginCaptures:{1:{name:"punctuation.definition.symbol.emacs.lisp"},2:{name:"punctuation.section.interpolated.expression.begin.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.interpolated.expression.end.emacs.lisp"}},name:"meta.interpolated.expression.emacs.lisp",patterns:[{include:"$self"}]}]},"face-innards":{patterns:[{captures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"variable.language.display.type.emacs.lisp"},3:{name:"support.constant.display.type.emacs.lisp"},4:{name:"punctuation.section.expression.end.emacs.lisp"}},match:"(\\()(type)\\s+(graphic|x|pc|w32|tty)(\\))",name:"meta.expression.display-type.emacs.lisp"},{captures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"variable.language.display.class.emacs.lisp"},3:{name:"support.constant.display.class.emacs.lisp"},4:{name:"punctuation.section.expression.end.emacs.lisp"}},match:"(\\()(class)\\s+(color|grayscale|mono)(\\))",name:"meta.expression.display-class.emacs.lisp"},{captures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"variable.language.background-type.emacs.lisp"},3:{name:"support.constant.background-type.emacs.lisp"},4:{name:"punctuation.section.expression.end.emacs.lisp"}},match:"(\\()(background)\\s+(light|dark)(\\))",name:"meta.expression.background-type.emacs.lisp"},{begin:"(\\()(min-colors|supports)(?=[\\s()]|$)",beginCaptures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"variable.language.display-prerequisite.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.expression.display-prerequisite.emacs.lisp",patterns:[{include:"$self"}]}]},faces:{match:"(?x) \\b (?<=[\\s()\\[]|^)\n(?:Buffer-menu-buffer|Info-quoted|Info-title-1-face|Info-title-2-face|Info-title-3-face|Info-title-4-face|Man-overstrike|Man-reverse\n|Man-underline|antlr-default|antlr-font-lock-default-face|antlr-font-lock-keyword-face|antlr-font-lock-literal-face\n|antlr-font-lock-ruledef-face|antlr-font-lock-ruleref-face|antlr-font-lock-syntax-face|antlr-font-lock-tokendef-face\n|antlr-font-lock-tokenref-face|antlr-keyword|antlr-literal|antlr-ruledef|antlr-ruleref|antlr-syntax|antlr-tokendef|antlr-tokenref\n|apropos-keybinding|apropos-property|apropos-symbol|bat-label-face|bg:erc-color-face0|bg:erc-color-face1|bg:erc-color-face10\n|bg:erc-color-face11|bg:erc-color-face12|bg:erc-color-face13|bg:erc-color-face14|bg:erc-color-face15|bg:erc-color-face2\n|bg:erc-color-face3|bg:erc-color-face4|bg:erc-color-face5|bg:erc-color-face6|bg:erc-color-face7|bg:erc-color-face8|bg:erc-color-face9\n|bold-italic|bold|bookmark-menu-bookmark|bookmark-menu-heading|border|breakpoint-disabled|breakpoint-enabled|buffer-menu-buffer\n|button|c-annotation-face|calc-nonselected-face|calc-selected-face|calendar-month-header|calendar-today|calendar-weekday-header\n|calendar-weekend-header|change-log-acknowledgement-face|change-log-acknowledgement|change-log-acknowledgment\n|change-log-conditionals-face|change-log-conditionals|change-log-date-face|change-log-date|change-log-email-face|change-log-email\n|change-log-file-face|change-log-file|change-log-function-face|change-log-function|change-log-list-face|change-log-list\n|change-log-name-face|change-log-name|comint-highlight-input|comint-highlight-prompt|compare-windows|compilation-column-number\n|compilation-error|compilation-info|compilation-line-number|compilation-mode-line-exit|compilation-mode-line-fail\n|compilation-mode-line-run|compilation-warning|completions-annotations|completions-common-part|completions-first-difference\n|cperl-array-face|cperl-hash-face|cperl-nonoverridable-face|css-property|css-selector|cua-global-mark|cua-rectangle-noselect\n|cua-rectangle|cursor|custom-button-mouse|custom-button-pressed-unraised|custom-button-pressed|custom-button-unraised|custom-button\n|custom-changed|custom-comment-tag|custom-comment|custom-documentation|custom-face-tag|custom-group-subtitle|custom-group-tag-1\n|custom-group-tag|custom-invalid|custom-link|custom-modified|custom-rogue|custom-saved|custom-set|custom-state|custom-themed\n|custom-variable-button|custom-variable-tag|custom-visibility|cvs-filename-face|cvs-filename|cvs-handled-face|cvs-handled\n|cvs-header-face|cvs-header|cvs-marked-face|cvs-marked|cvs-msg-face|cvs-msg|cvs-need-action-face|cvs-need-action|cvs-unknown-face\n|cvs-unknown|default|diary-anniversary|diary-button|diary-time|diary|diff-added-face|diff-added|diff-changed-face|diff-changed\n|diff-context-face|diff-context|diff-file-header-face|diff-file-header|diff-function-face|diff-function|diff-header-face\n|diff-header|diff-hunk-header-face|diff-hunk-header|diff-index-face|diff-index|diff-indicator-added|diff-indicator-changed\n|diff-indicator-removed|diff-nonexistent-face|diff-nonexistent|diff-refine-added|diff-refine-change|diff-refine-changed\n|diff-refine-removed|diff-removed-face|diff-removed|dired-directory|dired-flagged|dired-header|dired-ignored|dired-mark\n|dired-marked|dired-perm-write|dired-symlink|dired-warning|ebrowse-default|ebrowse-file-name|ebrowse-member-attribute\n|ebrowse-member-class|ebrowse-progress|ebrowse-root-class|ebrowse-tree-mark|ediff-current-diff-A|ediff-current-diff-Ancestor\n|ediff-current-diff-B|ediff-current-diff-C|ediff-even-diff-A|ediff-even-diff-Ancestor|ediff-even-diff-B|ediff-even-diff-C\n|ediff-fine-diff-A|ediff-fine-diff-Ancestor|ediff-fine-diff-B|ediff-fine-diff-C|ediff-odd-diff-A|ediff-odd-diff-Ancestor\n|ediff-odd-diff-B|ediff-odd-diff-C|eieio-custom-slot-tag-face|eldoc-highlight-function-argument|epa-field-body\n|epa-field-name|epa-mark|epa-string|epa-validity-disabled|epa-validity-high|epa-validity-low|epa-validity-medium|erc-action-face\n|erc-bold-face|erc-button|erc-command-indicator-face|erc-current-nick-face|erc-dangerous-host-face|erc-default-face|erc-direct-msg-face\n|erc-error-face|erc-fool-face|erc-header-line|erc-input-face|erc-inverse-face|erc-keyword-face|erc-my-nick-face|erc-my-nick-prefix-face\n|erc-nick-default-face|erc-nick-msg-face|erc-nick-prefix-face|erc-notice-face|erc-pal-face|erc-prompt-face|erc-timestamp-face|erc-underline-face\n|error|ert-test-result-expected|ert-test-result-unexpected|escape-glyph|eww-form-checkbox|eww-form-file|eww-form-select|eww-form-submit\n|eww-form-text|eww-form-textarea|eww-invalid-certificate|eww-valid-certificate|excerpt|ffap|fg:erc-color-face0|fg:erc-color-face1\n|fg:erc-color-face10|fg:erc-color-face11|fg:erc-color-face12|fg:erc-color-face13|fg:erc-color-face14|fg:erc-color-face15|fg:erc-color-face2\n|fg:erc-color-face3|fg:erc-color-face4|fg:erc-color-face5|fg:erc-color-face6|fg:erc-color-face7|fg:erc-color-face8|fg:erc-color-face9\n|file-name-shadow|fixed-pitch|fixed|flymake-errline|flymake-warnline|flyspell-duplicate|flyspell-incorrect|font-lock-builtin-face\n|font-lock-comment-delimiter-face|font-lock-comment-face|font-lock-constant-face|font-lock-doc-face|font-lock-function-name-face\n|font-lock-keyword-face|font-lock-negation-char-face|font-lock-preprocessor-face|font-lock-regexp-grouping-backslash|font-lock-regexp-grouping-construct\n|font-lock-string-face|font-lock-type-face|font-lock-variable-name-face|font-lock-warning-face|fringe|glyphless-char|gnus-button\n|gnus-cite-1|gnus-cite-10|gnus-cite-11|gnus-cite-2|gnus-cite-3|gnus-cite-4|gnus-cite-5|gnus-cite-6|gnus-cite-7|gnus-cite-8|gnus-cite-9\n|gnus-cite-attribution-face|gnus-cite-attribution|gnus-cite-face-1|gnus-cite-face-10|gnus-cite-face-11|gnus-cite-face-2|gnus-cite-face-3\n|gnus-cite-face-4|gnus-cite-face-5|gnus-cite-face-6|gnus-cite-face-7|gnus-cite-face-8|gnus-cite-face-9|gnus-emphasis-bold-italic\n|gnus-emphasis-bold|gnus-emphasis-highlight-words|gnus-emphasis-italic|gnus-emphasis-strikethru|gnus-emphasis-underline-bold-italic\n|gnus-emphasis-underline-bold|gnus-emphasis-underline-italic|gnus-emphasis-underline|gnus-group-mail-1-empty-face|gnus-group-mail-1-empty\n|gnus-group-mail-1-face|gnus-group-mail-1|gnus-group-mail-2-empty-face|gnus-group-mail-2-empty|gnus-group-mail-2-face|gnus-group-mail-2\n|gnus-group-mail-3-empty-face|gnus-group-mail-3-empty|gnus-group-mail-3-face|gnus-group-mail-3|gnus-group-mail-low-empty-face\n|gnus-group-mail-low-empty|gnus-group-mail-low-face|gnus-group-mail-low|gnus-group-news-1-empty-face|gnus-group-news-1-empty|gnus-group-news-1-face\n|gnus-group-news-1|gnus-group-news-2-empty-face|gnus-group-news-2-empty|gnus-group-news-2-face|gnus-group-news-2|gnus-group-news-3-empty-face\n|gnus-group-news-3-empty|gnus-group-news-3-face|gnus-group-news-3|gnus-group-news-4-empty-face|gnus-group-news-4-empty|gnus-group-news-4-face\n|gnus-group-news-4|gnus-group-news-5-empty-face|gnus-group-news-5-empty|gnus-group-news-5-face|gnus-group-news-5|gnus-group-news-6-empty-face\n|gnus-group-news-6-empty|gnus-group-news-6-face|gnus-group-news-6|gnus-group-news-low-empty-face|gnus-group-news-low-empty|gnus-group-news-low-face\n|gnus-group-news-low|gnus-header-content-face|gnus-header-content|gnus-header-from-face|gnus-header-from|gnus-header-name-face\n|gnus-header-name|gnus-header-newsgroups-face|gnus-header-newsgroups|gnus-header-subject-face|gnus-header-subject|gnus-signature-face\n|gnus-signature|gnus-splash-face|gnus-splash|gnus-summary-cancelled-face|gnus-summary-cancelled|gnus-summary-high-ancient-face\n|gnus-summary-high-ancient|gnus-summary-high-read-face|gnus-summary-high-read|gnus-summary-high-ticked-face|gnus-summary-high-ticked\n|gnus-summary-high-undownloaded-face|gnus-summary-high-undownloaded|gnus-summary-high-unread-face|gnus-summary-high-unread|gnus-summary-low-ancient-face\n|gnus-summary-low-ancient|gnus-summary-low-read-face|gnus-summary-low-read|gnus-summary-low-ticked-face|gnus-summary-low-ticked\n|gnus-summary-low-undownloaded-face|gnus-summary-low-undownloaded|gnus-summary-low-unread-face|gnus-summary-low-unread|gnus-summary-normal-ancient-face\n|gnus-summary-normal-ancient|gnus-summary-normal-read-face|gnus-summary-normal-read|gnus-summary-normal-ticked-face|gnus-summary-normal-ticked\n|gnus-summary-normal-undownloaded-face|gnus-summary-normal-undownloaded|gnus-summary-normal-unread-face|gnus-summary-normal-unread\n|gnus-summary-selected-face|gnus-summary-selected|gomoku-O|gomoku-X|header-line|help-argument-name|hexl-address-region|hexl-ascii-region\n|hi-black-b|hi-black-hb|hi-blue-b|hi-blue|hi-green-b|hi-green|hi-pink|hi-red-b|hi-yellow|hide-ifdef-shadow|highlight-changes-delete-face\n|highlight-changes-delete|highlight-changes-face|highlight-changes|highlight|hl-line|holiday|icomplete-first-match|idlwave-help-link\n|idlwave-shell-bp|idlwave-shell-disabled-bp|idlwave-shell-electric-stop-line|idlwave-shell-pending-electric-stop|idlwave-shell-pending-stop\n|ido-first-match|ido-incomplete-regexp|ido-indicator|ido-only-match|ido-subdir|ido-virtual|info-header-node|info-header-xref|info-index-match\n|info-menu-5|info-menu-header|info-menu-star|info-node|info-title-1|info-title-2|info-title-3|info-title-4|info-xref|isearch-fail|isearch-lazy-highlight-face\n|isearch|iswitchb-current-match|iswitchb-invalid-regexp|iswitchb-single-match|iswitchb-virtual-matches|italic|landmark-font-lock-face-O\n|landmark-font-lock-face-X|lazy-highlight|ld-script-location-counter|link-visited|link|log-edit-header|log-edit-summary|log-edit-unknown-header\n|log-view-file-face|log-view-file|log-view-message-face|log-view-message|makefile-makepp-perl|makefile-shell|makefile-space-face\n|makefile-space|makefile-targets|match|menu|message-cited-text-face|message-cited-text|message-header-cc-face|message-header-cc|message-header-name-face\n|message-header-name|message-header-newsgroups-face|message-header-newsgroups|message-header-other-face|message-header-other|message-header-subject-face\n|message-header-subject|message-header-to-face|message-header-to|message-header-xheader-face|message-header-xheader|message-mml-face\n|message-mml|message-separator-face|message-separator|mh-folder-address|mh-folder-blacklisted|mh-folder-body|mh-folder-cur-msg-number\n|mh-folder-date|mh-folder-deleted|mh-folder-followup|mh-folder-msg-number|mh-folder-refiled|mh-folder-sent-to-me-hint|mh-folder-sent-to-me-sender\n|mh-folder-subject|mh-folder-tick|mh-folder-to|mh-folder-whitelisted|mh-letter-header-field|mh-search-folder|mh-show-cc|mh-show-date\n|mh-show-from|mh-show-header|mh-show-pgg-bad|mh-show-pgg-good|mh-show-pgg-unknown|mh-show-signature|mh-show-subject|mh-show-to|mh-speedbar-folder-with-unseen-messages\n|mh-speedbar-folder|mh-speedbar-selected-folder-with-unseen-messages|mh-speedbar-selected-folder|minibuffer-prompt|mm-command-output\n|mm-uu-extract|mode-line-buffer-id|mode-line-emphasis|mode-line-highlight|mode-line-inactive|mode-line|modeline-buffer-id|modeline-highlight\n|modeline-inactive|mouse|mpuz-solved|mpuz-text|mpuz-trivial|mpuz-unsolved|newsticker-date-face|newsticker-default-face|newsticker-enclosure-face\n|newsticker-extra-face|newsticker-feed-face|newsticker-immortal-item-face|newsticker-new-item-face|newsticker-obsolete-item-face\n|newsticker-old-item-face|newsticker-statistics-face|newsticker-treeview-face|newsticker-treeview-immortal-face|newsticker-treeview-new-face\n|newsticker-treeview-obsolete-face|newsticker-treeview-old-face|newsticker-treeview-selection-face|next-error|nobreak-space|nxml-attribute-colon\n|nxml-attribute-local-name|nxml-attribute-prefix|nxml-attribute-value-delimiter|nxml-attribute-value|nxml-cdata-section-CDATA\n|nxml-cdata-section-content|nxml-cdata-section-delimiter|nxml-char-ref-delimiter|nxml-char-ref-number|nxml-comment-content|nxml-comment-delimiter\n|nxml-delimited-data|nxml-delimiter|nxml-element-colon|nxml-element-local-name|nxml-element-prefix|nxml-entity-ref-delimiter|nxml-entity-ref-name\n|nxml-glyph|nxml-hash|nxml-heading|nxml-markup-declaration-delimiter|nxml-name|nxml-namespace-attribute-colon|nxml-namespace-attribute-prefix\n|nxml-namespace-attribute-value-delimiter|nxml-namespace-attribute-value|nxml-namespace-attribute-xmlns|nxml-outline-active-indicator\n|nxml-outline-ellipsis|nxml-outline-indicator|nxml-processing-instruction-content|nxml-processing-instruction-delimiter|nxml-processing-instruction-target\n|nxml-prolog-keyword|nxml-prolog-literal-content|nxml-prolog-literal-delimiter|nxml-ref|nxml-tag-delimiter|nxml-tag-slash|nxml-text\n|octave-function-comment-block|org-agenda-calendar-event|org-agenda-calendar-sexp|org-agenda-clocking|org-agenda-column-dateline\n|org-agenda-current-time|org-agenda-date-today|org-agenda-date-weekend|org-agenda-date|org-agenda-diary|org-agenda-dimmed-todo-face\n|org-agenda-done|org-agenda-filter-category|org-agenda-filter-regexp|org-agenda-filter-tags|org-agenda-restriction-lock|org-agenda-structure\n|org-archived|org-block-background|org-block-begin-line|org-block-end-line|org-block|org-checkbox-statistics-done|org-checkbox-statistics-todo\n|org-checkbox|org-clock-overlay|org-code|org-column-title|org-column|org-date-selected|org-date|org-default|org-document-info-keyword\n|org-document-info|org-document-title|org-done|org-drawer|org-ellipsis|org-footnote|org-formula|org-headline-done|org-hide|org-latex-and-related\n|org-level-1|org-level-2|org-level-3|org-level-4|org-level-5|org-level-6|org-level-7|org-level-8|org-link|org-list-dt|org-macro|org-meta-line\n|org-mode-line-clock-overrun|org-mode-line-clock|org-priority|org-property-value|org-quote|org-scheduled-previously|org-scheduled-today\n|org-scheduled|org-sexp-date|org-special-keyword|org-table|org-tag-group|org-tag|org-target|org-time-grid|org-todo|org-upcoming-deadline\n|org-verbatim|org-verse|org-warning|outline-1|outline-2|outline-3|outline-4|outline-5|outline-6|outline-7|outline-8|proced-mark|proced-marked\n|proced-sort-header|pulse-highlight-face|pulse-highlight-start-face|query-replace|rcirc-bright-nick|rcirc-dim-nick|rcirc-keyword\n|rcirc-my-nick|rcirc-nick-in-message-full-line|rcirc-nick-in-message|rcirc-other-nick|rcirc-prompt|rcirc-server-prefix|rcirc-server\n|rcirc-timestamp|rcirc-track-keyword|rcirc-track-nick|rcirc-url|reb-match-0|reb-match-1|reb-match-2|reb-match-3|rectangle-preview-face\n|region|rmail-header-name|rmail-highlight|rng-error|rst-adornment|rst-block|rst-comment|rst-definition|rst-directive|rst-emphasis1\n|rst-emphasis2|rst-external|rst-level-1|rst-level-2|rst-level-3|rst-level-4|rst-level-5|rst-level-6|rst-literal|rst-reference|rst-transition\n|ruler-mode-column-number|ruler-mode-comment-column|ruler-mode-current-column|ruler-mode-default|ruler-mode-fill-column|ruler-mode-fringes\n|ruler-mode-goal-column|ruler-mode-margins|ruler-mode-pad|ruler-mode-tab-stop|scroll-bar|secondary-selection|semantic-highlight-edits-face\n|semantic-highlight-func-current-tag-face|semantic-unmatched-syntax-face|senator-momentary-highlight-face|sgml-namespace|sh-escaped-newline\n|sh-heredoc-face|sh-heredoc|sh-quoted-exec|shadow|show-paren-match-face|show-paren-match|show-paren-mismatch-face|show-paren-mismatch\n|shr-link|shr-strike-through|smerge-base-face|smerge-base|smerge-markers-face|smerge-markers|smerge-mine-face|smerge-mine|smerge-other-face\n|smerge-other|smerge-refined-added|smerge-refined-change|smerge-refined-changed|smerge-refined-removed|speedbar-button-face|speedbar-directory-face\n|speedbar-file-face|speedbar-highlight-face|speedbar-selected-face|speedbar-separator-face|speedbar-tag-face|srecode-separator-face\n|strokes-char|subscript|success|superscript|table-cell|tcl-escaped-newline|term-bold|term-color-black|term-color-blue|term-color-cyan\n|term-color-green|term-color-magenta|term-color-red|term-color-white|term-color-yellow|term-underline|term|testcover-1value|testcover-nohits\n|tex-math-face|tex-math|tex-verbatim-face|tex-verbatim|texinfo-heading-face|texinfo-heading|tmm-inactive|todo-archived-only|todo-button\n|todo-category-string|todo-comment|todo-date|todo-diary-expired|todo-done-sep|todo-done|todo-key-prompt|todo-mark|todo-nondiary|todo-prefix-string\n|todo-search|todo-sorted-column|todo-time|todo-top-priority|tool-bar|tooltip|trailing-whitespace|tty-menu-disabled-face|tty-menu-enabled-face\n|tty-menu-selected-face|underline|variable-pitch|vc-conflict-state|vc-edited-state|vc-locally-added-state|vc-locked-state|vc-missing-state\n|vc-needs-update-state|vc-removed-state|vc-state-base-face|vc-up-to-date-state|vcursor|vera-font-lock-function|vera-font-lock-interface\n|vera-font-lock-number|verilog-font-lock-ams-face|verilog-font-lock-grouping-keywords-face|verilog-font-lock-p1800-face|verilog-font-lock-translate-off-face\n|vertical-border|vhdl-font-lock-attribute-face|vhdl-font-lock-directive-face|vhdl-font-lock-enumvalue-face|vhdl-font-lock-function-face\n|vhdl-font-lock-generic-\\/constant-face|vhdl-font-lock-prompt-face|vhdl-font-lock-reserved-words-face|vhdl-font-lock-translate-off-face\n|vhdl-font-lock-type-face|vhdl-font-lock-variable-face|vhdl-speedbar-architecture-face|vhdl-speedbar-architecture-selected-face\n|vhdl-speedbar-configuration-face|vhdl-speedbar-configuration-selected-face|vhdl-speedbar-entity-face|vhdl-speedbar-entity-selected-face\n|vhdl-speedbar-instantiation-face|vhdl-speedbar-instantiation-selected-face|vhdl-speedbar-library-face|vhdl-speedbar-package-face\n|vhdl-speedbar-package-selected-face|vhdl-speedbar-subprogram-face|viper-minibuffer-emacs|viper-minibuffer-insert|viper-minibuffer-vi\n|viper-replace-overlay|viper-search|warning|which-func|whitespace-big-indent|whitespace-empty|whitespace-hspace|whitespace-indentation\n|whitespace-line|whitespace-newline|whitespace-space-after-tab|whitespace-space-before-tab|whitespace-space|whitespace-tab|whitespace-trailing\n|widget-button-face|widget-button-pressed-face|widget-button-pressed|widget-button|widget-documentation-face|widget-documentation\n|widget-field-face|widget-field|widget-inactive-face|widget-inactive|widget-single-line-field-face|widget-single-line-field|window-divider-first-pixel\n|window-divider-last-pixel|window-divider|woman-addition-face|woman-addition|woman-bold-face|woman-bold|woman-italic-face|woman-italic\n|woman-unknown-face|woman-unknown)\n(?=[\\s()]|$)\\b",name:"support.constant.face.emacs.lisp"},format:{begin:"\\G",contentName:"string.quoted.double.emacs.lisp",end:'(?=")',patterns:[{captures:{1:{name:"constant.other.placeholder.emacs.lisp"},2:{name:"invalid.illegal.placeholder.emacs.lisp"}},match:"(%[%cdefgosSxX])|(%.)"},{include:"#string-innards"}]},formatting:{begin:'(\\()(format|format-message|message|error)(?=\\s|$|")',beginCaptures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"support.function.$2.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.string-formatting.expression.emacs.lisp",patterns:[{begin:'\\G\\s*(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.emacs.lisp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.emacs.lisp"}},patterns:[{include:"#format"}]},{begin:"\\G\\s*$\\n?",end:'"|(?>)",name:"constant.command-name.key.emacs.lisp"},{captures:{1:{name:"constant.numeric.integer.int.decimal.emacs.lisp"},2:{name:"keyword.operator.arithmetic.multiply.emacs.lisp"}},match:"([0-9]+)(\\*)(?=[\\S])",name:"meta.key-repetition.emacs.lisp"},{captures:{1:{patterns:[{include:"#key-notation-prefix"}]},2:{name:"constant.character.key.emacs.lisp"}},match:"\\b(M-)(-?[0-9]+)\\b",name:"meta.key-sequence.emacs.lisp"},{captures:{1:{patterns:[{include:"#key-notation-prefix"}]},2:{name:"punctuation.definition.angle.bracket.begin.emacs.lisp"},3:{name:"constant.control-character.key.emacs.lisp"},4:{name:"punctuation.definition.angle.bracket.end.emacs.lisp"},5:{name:"constant.control-character.key.emacs.lisp"},6:{name:"invalid.illegal.bad-prefix.emacs.lisp"},7:{name:"constant.character.key.emacs.lisp"}},match:"(?x)\n\\b((?:[MCSAHs]-)+)\n(?: (<)(DEL|ESC|LFD|NUL|RET|SPC|TAB)(>)\n| (DEL|ESC|LFD|NUL|RET|SPC|TAB)\\b\n| ([!-_a-z]{2,})\n| ([!-_a-z])\n)?",name:"meta.key-sequence.emacs.lisp"},{captures:{1:{patterns:[{match:"<",name:"punctuation.definition.angle.bracket.begin.emacs.lisp"},{include:"#key-notation-prefix"}]},2:{name:"constant.function-key.emacs.lisp"},3:{name:"punctuation.definition.angle.bracket.end.emacs.lisp"}},match:"([MCSAHs]-<|<[MCSAHs]-|<)([-A-Za-z0-9]+)(>)",name:"meta.function-key.emacs.lisp"},{match:"(?<=\\s)(?![MCSAHs<>])[!-_a-z](?=\\s)",name:"constant.character.key.emacs.lisp"}]},"key-notation-prefix":{captures:{1:{name:"constant.character.key.modifier.emacs.lisp"},2:{name:"punctuation.separator.modifier.dash.emacs.lisp"}},match:"([MCSAHs])(-)"},keyword:{captures:{1:{name:"punctuation.definition.keyword.emacs.lisp"}},match:"(?<=[\\s()\\[]|^)(:)[-+=*/\\w~!@$%^&:<>{}?]+",name:"constant.keyword.emacs.lisp"},lambda:{begin:"(\\()(lambda|function)(?:\\s+|(?=[()]))",beginCaptures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"storage.type.lambda.function.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.lambda.expression.emacs.lisp",patterns:[{include:"#defun-innards"}]},loop:{begin:"(\\()(cl-loop)(?=[\\s()]|$)",beginCaptures:{1:{name:"punctuation.section.expression.begin.emacs.lisp"},2:{name:"support.function.cl-lib.emacs.lisp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.expression.end.emacs.lisp"}},name:"meta.cl-lib.loop.emacs.lisp",patterns:[{match:"(?x)(?<=[\\s()\\[]|^)\n(above|across|across-ref|always|and|append|as|below|by|collect|concat\n|count|do|each|finally|for|from|if|in|in-ref|initially|into|maximize\n|minimize|named|nconc|never|of|of-ref|on|repeat|return|sum|then|thereis\n|sum|to|unless|until|using|vconcat|when|while|with|(?:\n\nbeing \\s+\n(?:the)? \\s+\n\n(?:element|hash-key|hash-value|key-code|key-binding\n|key-seq|overlay|interval|symbols|frame|window|buffer)\ns?\n\n))(?=[\\s()]|$)",name:"keyword.control.emacs.lisp"},{include:"$self"}]},main:{patterns:[{include:"#autoload"},{include:"#comment"},{include:"#lambda"},{include:"#loop"},{include:"#escapes"},{include:"#definition"},{include:"#formatting"},{include:"#face-innards"},{include:"#expression"},{include:"#operators"},{include:"#functions"},{include:"#binding"},{include:"#keyword"},{include:"#string"},{include:"#number"},{include:"#quote"},{include:"#symbols"},{include:"#vectors"},{include:"#arg-values"},{include:"#archive-sources"},{include:"#boolean"},{include:"#faces"},{include:"#cask"},{include:"#stdlib"}]},modeline:{captures:{1:{name:"punctuation.definition.modeline.begin.emacs.lisp"},2:{patterns:[{include:"#modeline-innards"}]},3:{name:"punctuation.definition.modeline.end.emacs.lisp"}},match:"(-\\*-)(.*)(-\\*-)",name:"meta.modeline.emacs.lisp"},"modeline-innards":{patterns:[{captures:{1:{name:"variable.assignment.modeline.emacs.lisp"},2:{name:"punctuation.separator.key-value.emacs.lisp"},3:{patterns:[{include:"#modeline-innards"}]}},match:"([^\\s:;]+)\\s*(:)\\s*([^;]*)",name:"meta.modeline.variable.emacs.lisp"},{match:";",name:"punctuation.terminator.statement.emacs.lisp"},{match:":",name:"punctuation.separator.key-value.emacs.lisp"},{match:"\\S+",name:"string.other.modeline.emacs.lisp"}]},number:{patterns:[{captures:{1:{name:"punctuation.definition.binary.emacs.lisp"}},match:"(?<=[\\s()\\[]|^)(#)[Bb][01]+",name:"constant.numeric.integer.binary.emacs.lisp"},{captures:{1:{name:"punctuation.definition.hex.emacs.lisp"}},match:"(?<=[\\s()\\[]|^)(#)[Xx][0-9A-Fa-f]+",name:"constant.numeric.integer.hex.viml"},{match:"(?<=[\\s()\\[]|^)[-+]?\\d*\\.\\d+(?:[Ee][-+]?\\d+|[Ee]\\+(?:INF|NaN))?(?=[\\s()]|$)",name:"constant.numeric.float.emacs.lisp"},{match:"(?<=[\\s()\\[]|^)[-+]?\\d+(?:[Ee][-+]?\\d+|[Ee]\\+(?:INF|NaN))?(?=[\\s()]|$)",name:"constant.numeric.integer.emacs.lisp"}]},operators:{patterns:[{match:"(?x)(?<=[()]|^)\n(and|catch|cond|condition-case(?:-unless-debug)?|dotimes|eql?\n|equal|if|not|or|pcase|prog[12n]|throw|unless|unwind-protect\n|when|while)\n(?=[\\s()]|$)",name:"keyword.control.$1.emacs.lisp"},{match:"(?<=\\(|\\s|^)(interactive)(?=\\s|\\(|\\))",name:"storage.modifier.interactive.function.emacs.lisp"},{match:"(?<=\\(|\\s|^)[-*+/%](?=\\s|\\)|$)",name:"keyword.operator.numeric.emacs.lisp"},{match:"(?<=\\(|\\s|^)[/<>]=|[=<>](?=\\s|\\)|$)",name:"keyword.operator.comparison.emacs.lisp"},{match:"(?<=\\s)\\.(?=\\s|$)",name:"keyword.operator.pair-separator.emacs.lisp"}]},quote:{patterns:[{captures:{1:{name:"punctuation.definition.quote.emacs.lisp"},2:{patterns:[{include:"$self"}]}},match:"(')([-+=*/\\w~!@$%^&:<>{}?]+)",name:"constant.other.symbol.emacs.lisp"}]},stdlib:{patterns:[{match:"(?x)(?<=[()]|^)\n(`--pcase-macroexpander|Buffer-menu-unmark-all-buffers|Buffer-menu-unmark-all|Info-node-description|aa2u-mark-as-text|aa2u-mark-rectangle-as-text\n|aa2u-rectangle|aa2u|ada-find-file|ada-header|ada-mode|add-abbrev|add-change-log-entry-other-window|add-change-log-entry|add-dir-local-variable\n|add-file-local-variable-prop-line|add-file-local-variable|add-global-abbrev|add-log-current-defun|add-minor-mode|add-mode-abbrev|add-submenu\n|add-timeout|add-to-coding-system-list|add-to-list--anon-cmacro|add-variable-watcher|adoc-mode|advertised-undo|advice--add-function\n|advice--buffer-local|advice--called-interactively-skip|advice--car|advice--cd\\*r|advice--cdr|advice--defalias-fset|advice--interactive-form\n|advice--make-1|advice--make-docstring|advice--make-interactive-form|advice--make|advice--member-p|advice--normalize-place|advice--normalize\n|advice--props|advice--p|advice--remove-function|advice--set-buffer-local|advice--strip-macro|advice--subst-main|advice--symbol-function\n|advice--tweak|advice--where|after-insert-file-set-coding|aggressive-indent--extend-end-to-whole-sexps|aggressive-indent--indent-current-balanced-line\n|aggressive-indent--indent-if-changed|aggressive-indent--keep-track-of-changes|aggressive-indent--local-electric\n|aggressive-indent--proccess-changed-list-and-indent|aggressive-indent--run-user-hooks|aggressive-indent--softly-indent-defun\n|aggressive-indent--softly-indent-region-and-on|aggressive-indent-bug-report|aggressive-indent-global-mode|aggressive-indent-indent-defun\n|aggressive-indent-indent-region-and-on|aggressive-indent-mode-set-explicitly|aggressive-indent-mode|align-current|align-entire|align-highlight-rule\n|align-newline-and-indent|align-regexp|align-unhighlight-rule|align|alist-get|all-threads|allout-auto-activation-helper|allout-mode-p|allout-mode\n|allout-setup|allout-widgets-mode|allout-widgets-setup|alter-text-property|and-let\\*|ange-ftp-completion-hook-function|apache-mode\n|apropos-local-value|apropos-local-variable|arabic-shape-gstring|assoc-delete-all|auth-source--decode-octal-string|auth-source--symbol-keyword\n|auth-source-backend--anon-cmacro|auth-source-backend--eieio-childp|auth-source-backends-parser-file|auth-source-backends-parser-macos-keychain\n|auth-source-backends-parser-secrets|auth-source-json-check|auth-source-json-search|auth-source-pass-enable|auth-source-secrets-saver\n|auto-save-visited-mode|backtrace-frame--internal|backtrace-frames|backward-to-word|backward-word-strictly|battery-upower-prop|battery-upower\n|beginning-of-defun--in-emptyish-line-p|beginning-of-defun-comments|bf-help-describe-symbol|bf-help-mode|bf-help-setup|bignump|bison-mode\n|blink-cursor--rescan-frames|blink-cursor--should-blink|blink-cursor--start-idle-timer|blink-cursor--start-timer|bookmark-set-no-overwrite\n|brainfuck-mode|browse-url-conkeror|buffer-hash|bufferpos-to-filepos|byte-compile--function-signature|byte-compile--log-warning-for-byte-compile\n|byte-compile-cond-jump-table-info|byte-compile-cond-jump-table|byte-compile-cond-vars|byte-compile-define-symbol-prop|byte-compile-file-form-defvar-function\n|byte-compile-file-form-make-obsolete|byte-opt--arith-reduce|byte-opt--portable-numberp|byte-optimize-1-|byte-optimize-1\\+|byte-optimize-memq\n|c-or-c\\+\\+-mode|call-shell-region|cancel-debug-on-variable-change|cancel-debug-watch|capitalize-dwim|cconv--convert-funcbody|cconv--remap-llv\n|char-fold-to-regexp|char-from-name|checkdoc-file|checkdoc-package-keywords|cl--assertion-failed|cl--class-docstring--cmacro|cl--class-docstring\n|cl--class-index-table--cmacro|cl--class-index-table|cl--class-name--cmacro|cl--class-name|cl--class-p--cmacro|cl--class-parents--cmacro\n|cl--class-parents|cl--class-p|cl--class-slots--cmacro|cl--class-slots|cl--copy-slot-descriptor-1|cl--copy-slot-descriptor|cl--defstruct-predicate\n|cl--describe-class-slots|cl--describe-class-slot|cl--describe-class|cl--do-&aux|cl--find-class|cl--generic-arg-specializer\n|cl--generic-build-combined-method|cl--generic-cache-miss|cl--generic-class-parents|cl--generic-derived-specializers|cl--generic-describe\n|cl--generic-dispatches--cmacro|cl--generic-dispatches|cl--generic-fgrep|cl--generic-generalizer-name--cmacro|cl--generic-generalizer-name\n|cl--generic-generalizer-p--cmacro|cl--generic-generalizer-priority--cmacro|cl--generic-generalizer-priority|cl--generic-generalizer-p\n|cl--generic-generalizer-specializers-function--cmacro|cl--generic-generalizer-specializers-function|cl--generic-generalizer-tagcode-function--cmacro\n|cl--generic-generalizer-tagcode-function|cl--generic-get-dispatcher|cl--generic-isnot-nnm-p|cl--generic-lambda|cl--generic-load-hist-format\n|cl--generic-make--cmacro|cl--generic-make-defmethod-docstring|cl--generic-make-function|cl--generic-make-method--cmacro|cl--generic-make-method\n|cl--generic-make-next-function|cl--generic-make|cl--generic-member-method|cl--generic-method-documentation|cl--generic-method-files\n|cl--generic-method-function--cmacro|cl--generic-method-function|cl--generic-method-info|cl--generic-method-qualifiers--cmacro\n|cl--generic-method-qualifiers|cl--generic-method-specializers--cmacro|cl--generic-method-specializers|cl--generic-method-table--cmacro\n|cl--generic-method-table|cl--generic-method-uses-cnm--cmacro|cl--generic-method-uses-cnm|cl--generic-name--cmacro|cl--generic-name)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(cl--generic-no-next-method-function|cl--generic-options--cmacro|cl--generic-options|cl--generic-search-method|cl--generic-specializers-apply-to-type-p\n|cl--generic-split-args|cl--generic-standard-method-combination|cl--generic-struct-specializers|cl--generic-struct-tag|cl--generic-with-memoization\n|cl--generic|cl--make-random-state--cmacro|cl--make-random-state|cl--make-slot-descriptor--cmacro|cl--make-slot-descriptor|cl--make-slot-desc\n|cl--old-struct-type-of|cl--pcase-mutually-exclusive-p|cl--plist-remove|cl--print-table|cl--prog|cl--random-state-i--cmacro|cl--random-state-i\n|cl--random-state-j--cmacro|cl--random-state-j|cl--random-state-vec--cmacro|cl--random-state-vec|cl--slot-descriptor-initform--cmacro\n|cl--slot-descriptor-initform|cl--slot-descriptor-name--cmacro|cl--slot-descriptor-name|cl--slot-descriptor-props--cmacro|cl--slot-descriptor-props\n|cl--slot-descriptor-type--cmacro|cl--slot-descriptor-type|cl--struct-all-parents|cl--struct-cl--generic-method-p--cmacro|cl--struct-cl--generic-method-p\n|cl--struct-cl--generic-p--cmacro|cl--struct-cl--generic-p|cl--struct-class-children-sym--cmacro|cl--struct-class-children-sym\n|cl--struct-class-docstring--cmacro|cl--struct-class-docstring|cl--struct-class-index-table--cmacro|cl--struct-class-index-table\n|cl--struct-class-name--cmacro|cl--struct-class-named--cmacro|cl--struct-class-named|cl--struct-class-name|cl--struct-class-p--cmacro\n|cl--struct-class-parents--cmacro|cl--struct-class-parents|cl--struct-class-print--cmacro|cl--struct-class-print|cl--struct-class-p\n|cl--struct-class-slots--cmacro|cl--struct-class-slots|cl--struct-class-tag--cmacro|cl--struct-class-tag|cl--struct-class-type--cmacro|cl--struct-class-type\n|cl--struct-get-class|cl--struct-name-p|cl--struct-new-class--cmacro|cl--struct-new-class|cl--struct-register-child|cl-call-next-method|cl-defgeneric\n|cl-defmethod|cl-describe-type|cl-find-class|cl-find-method|cl-generic-all-functions|cl-generic-apply|cl-generic-call-method|cl-generic-combine-methods\n|cl-generic-current-method-specializers|cl-generic-define-context-rewriter|cl-generic-define-generalizer|cl-generic-define-method|cl-generic-define\n|cl-generic-ensure-function|cl-generic-function-options|cl-generic-generalizers|cl-generic-make-generalizer--cmacro|cl-generic-make-generalizer|cl-generic-p\n|cl-iter-defun|cl-method-qualifiers|cl-next-method-p|cl-no-applicable-method|cl-no-next-method|cl-no-primary-method|cl-old-struct-compat-mode\n|cl-prin1-to-string|cl-prin1|cl-print-expand-ellipsis|cl-print-object|cl-print-to-string-with-limit|cl-prog\\*|cl-prog|cl-random-state-p--cmacro\n|cl-slot-descriptor-p--cmacro|cl-slot-descriptor-p|cl-struct--pcase-macroexpander|cl-struct-define|cl-struct-p--cmacro|cl-struct-p\n|cl-struct-slot-value--inliner|cl-typep--inliner|clear-composition-cache|cmake-command-run|cmake-help-command|cmake-help-list-commands|cmake-help-module\n|cmake-help-property|cmake-help-variable|cmake-help|cmake-mode|coffee-mode|combine-change-calls-1|combine-change-calls|comment-line|comment-make-bol-ws\n|comment-quote-nested-default|comment-region-default-1|completion--category-override|completion-pcm--pattern-point-idx|condition-mutex|condition-name\n|condition-notify|condition-variable-p|condition-wait|conf-desktop-mode|conf-toml-mode|conf-toml-recognize-section|connection-local-set-profile-variables\n|connection-local-set-profiles|copy-cl--generic-generalizer|copy-cl--generic-method|copy-cl--generic|copy-from-above-command|copy-lisp-indent-state\n|copy-xref-elisp-location|copy-yas--exit|copy-yas--field|copy-yas--mirror|copy-yas--snippet|copy-yas--table|copy-yas--template|css-lookup-symbol\n|csv-mode|cuda-mode|current-thread|cursor-intangible-mode|cursor-sensor-mode|custom--should-apply-setting|debug-on-variable-change|debug-watch\n|default-font-width|define-symbol-prop|define-thing-chars|defined-colors-with-face-attributes|delete-selection-uses-region-p|describe-char-eldoc\n|describe-symbol|dir-locals--all-files|dir-locals-read-from-dir|dired--align-all-files|dired--need-align-p|dired-create-empty-file|dired-do-compress-to\n|dired-do-find-regexp-and-replace|dired-do-find-regexp|dired-mouse-find-file-other-frame|dired-mouse-find-file|dired-omit-mode|display-buffer--maybe-at-bottom\n|display-buffer--maybe-pop-up-frame|display-buffer--maybe-pop-up-window|display-buffer-in-child-frame|display-buffer-reuse-mode-window\n|display-buffer-use-some-frame|display-line-numbers-mode|dna-add-hooks|dna-isearch-forward|dna-mode|dna-reverse-complement-region|dockerfile-build-buffer\n|dockerfile-build-no-cache-buffer|dockerfile-mode|dolist-with-progress-reporter|dotenv-mode|downcase-dwim|dyalog-ediff-forward-word|dyalog-editor-connect\n|dyalog-fix-altgr-chars|dyalog-mode|dyalog-session-connect|easy-mmode--mode-docstring|eieio--add-new-slot|eieio--c3-candidate|eieio--c3-merge-lists\n|eieio--class-children--cmacro|eieio--class-class-allocation-values--cmacro|eieio--class-class-slots--cmacro|eieio--class-class-slots|eieio--class-constructor\n|eieio--class-default-object-cache--cmacro|eieio--class-docstring--cmacro|eieio--class-docstring|eieio--class-index-table--cmacro|eieio--class-index-table\n|eieio--class-initarg-tuples--cmacro|eieio--class-make--cmacro|eieio--class-make|eieio--class-method-invocation-order|eieio--class-name--cmacro\n|eieio--class-name|eieio--class-object|eieio--class-option-assoc|eieio--class-options--cmacro|eieio--class-option|eieio--class-p--cmacro)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(eieio--class-parents--cmacro|eieio--class-parents|eieio--class-precedence-bfs|eieio--class-precedence-c3|eieio--class-precedence-dfs\n|eieio--class-precedence-list|eieio--class-print-name|eieio--class-p|eieio--class-slot-initarg|eieio--class-slot-name-index|eieio--class-slots--cmacro\n|eieio--class-slots|eieio--class\\/struct-parents|eieio--generic-subclass-specializers|eieio--initarg-to-attribute|eieio--object-class-tag\n|eieio--pcase-macroexpander|eieio--perform-slot-validation-for-default|eieio--perform-slot-validation|eieio--slot-name-index|eieio--slot-override\n|eieio--validate-class-slot-value|eieio--validate-slot-value|eieio-change-class|eieio-class-slots|eieio-default-superclass--eieio-childp\n|eieio-defclass-internal|eieio-make-child-predicate|eieio-make-class-predicate|eieio-oref--anon-cmacro|eieio-pcase-slot-index-from-index-table\n|eieio-pcase-slot-index-table|eieio-slot-descriptor-name|eldoc--supported-p|eldoc-docstring-format-sym-doc|eldoc-mode-set-explicitly\n|electric-pair--balance-info|electric-pair--insert|electric-pair--inside-string-p|electric-pair--skip-whitespace|electric-pair--syntax-ppss\n|electric-pair--unbalanced-strings-p|electric-pair--with-uncached-syntax|electric-pair-conservative-inhibit|electric-pair-default-inhibit\n|electric-pair-default-skip-self|electric-pair-delete-pair|electric-pair-inhibit-if-helps-balance|electric-pair-local-mode\n|electric-pair-post-self-insert-function|electric-pair-skip-if-helps-balance|electric-pair-syntax-info|electric-pair-will-use-region\n|electric-quote-local-mode|electric-quote-mode|electric-quote-post-self-insert-function|elisp--font-lock-backslash|elisp--font-lock-flush-elisp-buffers\n|elisp--xref-backend|elisp--xref-make-xref|elisp-flymake--batch-compile-for-flymake|elisp-flymake--byte-compile-done|elisp-flymake-byte-compile\n|elisp-flymake-checkdoc|elisp-function-argstring|elisp-get-fnsym-args-string|elisp-get-var-docstring|elisp-load-path-roots|emacs-repository-version-git\n|enh-ruby-mode|epg-config--make-gpg-configuration|epg-config--make-gpgsm-configuration|epg-context-error-buffer--cmacro|epg-context-error-buffer\n|epg-find-configuration|erlang-compile|erlang-edoc-mode|erlang-find-tag-other-window|erlang-find-tag|erlang-mode|erlang-shell|erldoc-apropos\n|erldoc-browse-topic|erldoc-browse|erldoc-eldoc-function|etags--xref-backend|eval-expression-get-print-arguments\n|event-line-count|face-list-p|facemenu-set-charset|faces--attribute-at-point|faceup-clean-buffer|faceup-defexplainer|faceup-render-view-buffer\n|faceup-view-buffer|faceup-write-file|fic-mode|file-attribute-access-time|file-attribute-collect|file-attribute-device-number|file-attribute-group-id\n|file-attribute-inode-number|file-attribute-link-number|file-attribute-modes|file-attribute-modification-time|file-attribute-size\n|file-attribute-status-change-time|file-attribute-type|file-attribute-user-id|file-local-name|file-name-case-insensitive-p|file-name-quoted-p\n|file-name-quote|file-name-unquote|file-system-info|filepos-to-bufferpos--dos|filepos-to-bufferpos|files--ask-user-about-large-file\n|files--ensure-directory|files--force|files--make-magic-temp-file|files--message|files--name-absolute-system-p|files--splice-dirname-file\n|fill-polish-nobreak-p|find-function-on-key-other-frame|find-function-on-key-other-window|find-library-other-frame|find-library-other-window\n|fixnump|flymake-cc|flymake-diag-region|flymake-diagnostics|flymake-make-diagnostic|follow-scroll-down-window|follow-scroll-up-window\n|font-lock--remove-face-from-text-property|form-feed-mode|format-message|forth-block-mode|forth-eval-defun|forth-eval-last-expression-display-output\n|forth-eval-last-expression|forth-eval-region|forth-eval|forth-interaction-send|forth-kill|forth-load-file|forth-mode|forth-restart|forth-see\n|forth-switch-to-output-buffer|forth-switch-to-source-buffer|forth-words|fortune-message|forward-to-word|forward-word-strictly|frame--size-history\n|frame-after-make-frame|frame-ancestor-p|frame-creation-function|frame-edges|frame-focus-state|frame-geometry|frame-inner-height|frame-inner-width\n|frame-internal-border-width|frame-list-z-order|frame-monitor-attribute|frame-monitor-geometry|frame-monitor-workarea|frame-native-height\n|frame-native-width|frame-outer-height|frame-outer-width|frame-parent|frame-position|frame-restack|frame-size-changed-p|func-arity\n|generic--normalize-comments|generic-bracket-support|generic-mode-set-comments|generic-set-comment-syntax|generic-set-comment-vars\n|get-variable-watchers|gfm-mode|gfm-view-mode|ghc-core-create-core|ghc-core-mode|ghci-script-mode|git-commit--save-and-exit|git-commit-ack\n|git-commit-cc|git-commit-committer-email|git-commit-committer-name|git-commit-commit|git-commit-find-pseudo-header-position|git-commit-first-env-var\n|git-commit-font-lock-diff|git-commit-git-config-var|git-commit-insert-header-as-self|git-commit-insert-header|git-commit-mode|git-commit-reported\n|git-commit-review|git-commit-signoff|git-commit-test|git-define-git-commit-self|git-define-git-commit|gitattributes-mode--highlight-1st-field\n|gitattributes-mode-backward-field|gitattributes-mode-eldoc|gitattributes-mode-forward-field|gitattributes-mode-help|gitattributes-mode-menu\n|gitattributes-mode|gitconfig-indent-line|gitconfig-indentation-string|gitconfig-line-indented-p|gitconfig-mode|gitconfig-point-in-indentation-p\n|gitignore-mode|global-aggressive-indent-mode-check-buffers|global-aggressive-indent-mode-cmhh|global-aggressive-indent-mode-enable-in-buffers\n|global-aggressive-indent-mode|global-display-line-numbers-mode|global-eldoc-mode-check-buffers|global-eldoc-mode-cmhh|global-eldoc-mode-enable-in-buffers\n|glsl-mode|gnutls-asynchronous-parameters|gnutls-ciphers|gnutls-digests|gnutls-hash-digest|gnutls-hash-mac|gnutls-macs|gnutls-symmetric-decrypt\n|gnutls-symmetric-encrypt|go-download-play|go-mode|godoc|gofmt-before-save|gui-backend-get-selection|gui-backend-selection-exists-p\n|gui-backend-selection-owner-p|gui-backend-set-selection|gv-delay-error|gv-setter|gv-synthetic-place|hack-connection-local-variables-apply\n|handle-args-function|handle-move-frame|hash-table-empty-p|haskell-align-imports|haskell-c2hs-mode|haskell-cabal-get-dir|haskell-cabal-get-field\n|haskell-cabal-mode|haskell-cabal-visit-file|haskell-collapse-mode|haskell-compile|haskell-completions-completion-at-point|haskell-decl-scan-mode\n|haskell-describe|haskell-doc-current-info|haskell-doc-mode|haskell-doc-show-type|haskell-ds-create-imenu-index|haskell-forward-sexp|haskell-hayoo\n|haskell-hoogle-lookup-from-local|haskell-hoogle|haskell-indent-mode|haskell-indentation-mode|haskell-interactive-bring|haskell-interactive-kill\n|haskell-interactive-mode-echo|haskell-interactive-mode-reset-error|haskell-interactive-mode-return|haskell-interactive-mode-visit-error\n|haskell-interactive-switch|haskell-kill-session-process|haskell-menu|haskell-mode-after-save-handler|haskell-mode-find-uses|haskell-mode-generate-tags\n|haskell-mode-goto-loc|haskell-mode-jump-to-def-or-tag|haskell-mode-jump-to-def|haskell-mode-jump-to-tag|haskell-mode-show-type-at)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(haskell-mode-stylish-buffer|haskell-mode-tag-find|haskell-mode-view-news|haskell-mode|haskell-move-nested-left|haskell-move-nested-right\n|haskell-move-nested|haskell-navigate-imports-go|haskell-navigate-imports-return|haskell-navigate-imports|haskell-process-cabal-build\n|haskell-process-cabal-macros|haskell-process-cabal|haskell-process-cd|haskell-process-clear|haskell-process-do-info|haskell-process-do-type\n|haskell-process-interrupt|haskell-process-load-file|haskell-process-load-or-reload|haskell-process-minimal-imports|haskell-process-reload-devel-main\n|haskell-process-reload-file|haskell-process-reload|haskell-process-restart|haskell-process-show-repl-response|haskell-process-unignore|haskell-rgrep\n|haskell-session-all-modules|haskell-session-change-target|haskell-session-change|haskell-session-installed-modules|haskell-session-kill\n|haskell-session-maybe|haskell-session-process|haskell-session-project-modules|haskell-session|haskell-sort-imports|haskell-tab-indent-mode\n|haskell-version|hayoo|help--analyze-key|help--binding-undefined-p|help--docstring-quote|help--filter-info-list|help--load-prefixes|help--loaded-p\n|help--make-usage-docstring|help--make-usage|help--read-key-sequence|help--symbol-completion-table|help-definition-prefixes|help-fns--analyze-function\n|help-fns-function-description-header|help-fns-short-filename|highlight-uses-mode|hoogle|hyperspec-lookup|ibuffer-jump|ido-dired-other-frame\n|ido-dired-other-window|ido-display-buffer-other-frame|ido-find-alternate-file-other-window|if-let\\*|image-dired-minor-mode|image-mode-to-text\n|indent--default-inside-comment|indent--funcall-widened|indent-region-line-by-line|indent-relative-first-indent-point|inferior-erlang|inferior-lfe-mode\n|inferior-lfe|ini-mode|insert-directory-clean|insert-directory-wildcard-in-dir-p|interactive-haskell-mode|internal--compiler-macro-cXXr\n|internal--syntax-propertize|internal-auto-fill|internal-default-interrupt-process|internal-echo-keystrokes-prefix|internal-handle-focus-in\n|isearch--describe-regexp-mode|isearch--describe-word-mode|isearch--lax-regexp-function-p|isearch--momentary-message|isearch--yank-char-or-syntax\n|isearch-define-mode-toggle|isearch-lazy-highlight-start|isearch-string-propertize|isearch-toggle-char-fold|isearch-update-from-string-properties\n|isearch-xterm-paste|isearch-yank-symbol-or-char|jison-mode|jit-lock--run-functions|js-jsx-mode|js2-highlight-unused-variables-mode\n|js2-imenu-extras-mode|js2-imenu-extras-setup|js2-jsx-mode|js2-minor-mode|js2-mode|json--check-position|json--decode-utf-16-surrogates\n|json--plist-reverse|json--plist-to-alist|json--record-path|json-advance--inliner|json-path-to-position|json-peek--inliner|json-pop--inliner\n|json-pretty-print-buffer-ordered|json-pretty-print-ordered|json-readtable-dispatch|json-skip-whitespace--inliner|kill-current-buffer\n|kmacro-keyboard-macro-p|kmacro-p|kqueue-add-watch|kqueue-rm-watch|kqueue-valid-p|langdoc-call-fun|langdoc-define-help-mode|langdoc-if-let\n|langdoc-insert-link|langdoc-matched-strings|langdoc-while-let|lcms-cam02-ucs|lcms-cie-de2000|lcms-jab->jch|lcms-jch->jab|lcms-jch->xyz\n|lcms-temp->white-point|lcms-xyz->jch|lcms2-available-p|less-css-mode|let-when-compile|lfe-indent-function|lfe-mode|lgstring-remove-glyph\n|libxml-available-p|line-number-display-width|lisp--el-match-keyword|lisp--el-non-funcall-position-p|lisp-adaptive-fill|lisp-indent-calc-next\n|lisp-indent-initial-state|lisp-indent-region|lisp-indent-state-p--cmacro|lisp-indent-state-ppss--cmacro|lisp-indent-state-ppss-point--cmacro\n|lisp-indent-state-ppss-point|lisp-indent-state-ppss|lisp-indent-state-p|lisp-indent-state-stack--cmacro|lisp-indent-state-stack|lisp-ppss\n|list-timers|literate-haskell-mode|load-user-init-file|loadhist-unload-element|logcount|lread--substitute-object-in-subtree|macroexp-macroexpand\n|macroexp-parse-body|macrostep-c-mode-hook|macrostep-expand|macrostep-mode|major-mode-restore|major-mode-suspend|make-condition-variable\n|make-empty-file|make-finalizer|make-mutex|make-nearby-temp-file|make-pipe-process|make-process|make-record|make-temp-file-internal|make-thread\n|make-xref-elisp-location--cmacro|make-xref-elisp-location|make-yas--exit--cmacro|make-yas--exit|make-yas--field--cmacro|make-yas--field\n|make-yas--mirror--cmacro|make-yas--mirror|make-yas--snippet--cmacro|make-yas--snippet|make-yas--table--cmacro|make-yas--table|map--apply-alist\n|map--apply-array|map--apply-hash-table|map--do-alist|map--do-array|map--into-hash-table|map--make-pcase-bindings|map--make-pcase-patterns\n|map--pcase-macroexpander|map--put|map-apply|map-contains-key|map-copy|map-delete|map-do|map-elt|map-empty-p|map-every-p|map-filter|map-into\n|map-keys-apply|map-keys|map-length|map-let|map-merge-with|map-merge|map-nested-elt|map-pairs|map-put|map-remove|map-some|map-values-apply\n|map-values|mapbacktrace|mapp|mark-beginning-of-buffer|mark-end-of-buffer|markdown-live-preview-mode|markdown-mode|markdown-view-mode\n|mc-hide-unmatched-lines-mode|mc\\/add-cursor-on-click|mc\\/edit-beginnings-of-lines|mc\\/edit-ends-of-lines|mc\\/edit-lines|mc\\/insert-letters\n|mc\\/insert-numbers|mc\\/mark-all-dwim|mc\\/mark-all-in-region-regexp|mc\\/mark-all-in-region|mc\\/mark-all-like-this-dwim\n|mc\\/mark-all-like-this-in-defun|mc\\/mark-all-like-this|mc\\/mark-all-symbols-like-this-in-defun|mc\\/mark-all-symbols-like-this\n|mc\\/mark-all-words-like-this-in-defun|mc\\/mark-all-words-like-this|mc\\/mark-more-like-this-extended|mc\\/mark-next-like-this-word\n|mc\\/mark-next-like-this|mc\\/mark-next-lines|mc\\/mark-next-symbol-like-this|mc\\/mark-next-word-like-this|mc\\/mark-pop\n|mc\\/mark-previous-like-this-word|mc\\/mark-previous-like-this|mc\\/mark-previous-lines|mc\\/mark-previous-symbol-like-this\n|mc\\/mark-previous-word-like-this|mc\\/mark-sgml-tag-pair|mc\\/reverse-regions|mc\\/skip-to-next-like-this|mc\\/skip-to-previous-like-this\n|mc\\/sort-regions|mc\\/toggle-cursor-on-click|mc\\/unmark-next-like-this|mc\\/unmark-previous-like-this|mc\\/vertical-align-with-space\n|mc\\/vertical-align|menu-bar-bottom-and-right-window-divider|menu-bar-bottom-window-divider|menu-bar-display-line-numbers-mode\n|menu-bar-goto-uses-etags-p|menu-bar-no-window-divider|menu-bar-right-window-divider|menu-bar-window-divider-customize|mhtml-mode|midnight-mode\n|minibuffer-maybe-quote-filename|minibuffer-prompt-properties--setter|mm-images-in-region-p|mocha--get-callsite-name|mocha-attach-indium\n|mocha-check-debugger|mocha-compilation-filter|mocha-debug-at-point|mocha-debug-file|mocha-debug-project|mocha-debugger-get|mocha-debugger-name-p\n|mocha-debug|mocha-find-current-test|mocha-find-project-root|mocha-generate-command|mocha-list-of-strings-p|mocha-make-imenu-alist|mocha-opts-file\n|mocha-realgud:nodejs-attach|mocha-run|mocha-test-at-point|mocha-test-file|mocha-test-project|mocha-toggle-imenu-function|mocha-walk-up-to-it\n|mode-line-default-help-echo|module-function-p|module-load|mouse--click-1-maybe-follows-link|mouse-absolute-pixel-position|mouse-drag-and-drop-region\n|mouse-drag-bottom-edge|mouse-drag-bottom-left-corner|mouse-drag-bottom-right-corner|mouse-drag-frame|mouse-drag-left-edge|mouse-drag-right-edge\n|mouse-drag-top-edge|mouse-drag-top-left-corner|mouse-drag-top-right-corner|mouse-resize-frame|move-text--at-first-line-p)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(move-text--at-last-line-p|move-text--at-penultimate-line-p|move-text--last-line-is-just-newline|move-text--total-lines|move-text-default-bindings\n|move-text-down|move-text-line-down|move-text-line-up|move-text-region-down|move-text-region-up|move-text-region|move-text-up\n|move-to-window-group-line|mule--ucs-names-annotation|multiple-cursors-mode|mutex-lock|mutex-name|mutex-unlock|mutexp|nasm-mode|newlisp-mode\n|newlisp-show-repl|next-error-buffer-on-selected-frame|next-error-found|next-error-select-buffer|ninja-mode|obarray-get|obarray-make|obarray-map\n|obarray-put|obarray-remove|obarray-size|obarrayp|occur-regexp-descr|org-columns-insert-dblock|org-duration-from-minutes|org-duration-h:mm-only-p\n|org-duration-p|org-duration-set-regexps|org-duration-to-minutes|org-lint|package--activate-autoloads-and-load-path|package--add-to-compatibility-table\n|package--append-to-alist|package--autoloads-file-name|package--build-compatibility-table|package--check-signature-content\n|package--download-and-read-archives|package--find-non-dependencies|package--get-deps|package--incompatible-p|package--load-files-for-activation\n|package--newest-p|package--prettify-quick-help-key|package--print-help-section|package--quickstart-maybe-refresh|package--read-pkg-desc\n|package--removable-packages|package--remove-hidden|package--save-selected-packages|package--sort-by-dependence|package--sort-deps-in-alist\n|package--update-downloads-in-progress|package--update-selected-packages|package--used-elsewhere-p|package--user-installed-p|package--user-selected-p\n|package--with-response-buffer|package-activate-all|package-archive-priority|package-autoremove|package-delete-button-action|package-desc-priority-version\n|package-desc-priority|package-dir-info|package-install-selected-packages|package-menu--find-and-notify-upgrades|package-menu--list-to-prompt\n|package-menu--mark-or-notify-upgrades|package-menu--mark-upgrades-1|package-menu--partition-transaction|package-menu--perform-transaction\n|package-menu--populate-new-package-list|package-menu--post-refresh|package-menu--print-info-simple|package-menu--prompt-transaction-p\n|package-menu-hide-package|package-menu-mode-menu|package-menu-toggle-hiding|package-quickstart-refresh|package-reinstall|pcase--edebug-match-macro\n|pcase--make-docstring|pcase-lambda|pcomplete\\/find|perl-flymake|picolisp-mode|picolisp-repl-mode|picolisp-repl|pixel-scroll-mode\n|pos-visible-in-window-group-p|pov-mode|powershell-mode|powershell|prefix-command-preserve-state|prefix-command-update\n|prettify-symbols--post-command-hook|prettify-symbols-default-compose-p|print--preprocess|process-thread|prog-first-column|project-current\n|project-find-file|project-find-regexp|project-or-external-find-file|project-or-external-find-regexp|proper-list-p|provided-mode-derived-p\n|pulse-momentary-highlight-one-line|pulse-momentary-highlight-region|quelpa|query-replace--split-string|radix-tree--insert|radix-tree--lookup\n|radix-tree--prefixes|radix-tree--remove|radix-tree--subtree|radix-tree-count|radix-tree-from-map|radix-tree-insert|radix-tree-iter-mappings\n|radix-tree-iter-subtrees|radix-tree-leaf--pcase-macroexpander|radix-tree-lookup|radix-tree-prefixes|radix-tree-subtree|read-answer|read-multiple-choice\n|readable-foreground-color|recenter-window-group|recentf-mode|recode-file-name|recode-region|record-window-buffer|recordp|record|recover-file\n|recover-session-finish|recover-session|recover-this-file|rectangle-mark-mode|rectangle-number-lines|rectangular-region-mode|redirect-debugging-output\n|redisplay--pre-redisplay-functions|redisplay--update-region-highlight|redraw-modeline|refill-mode|reftex-all-document-files|reftex-citation\n|reftex-index-phrases-mode|reftex-isearch-minor-mode|reftex-mode|reftex-reset-scanning-information|regexp-builder|regexp-opt-group|region-active-p\n|region-bounds|region-modifiable-p|region-noncontiguous-p|register-ccl-program|register-code-conversion-map|register-definition-prefixes\n|register-describe-oneline|register-input-method|register-preview-default|register-preview|register-swap-out|register-to-point|register-val-describe\n|register-val-insert|register-val-jump-to|registerv--make--cmacro|registerv--make|registerv-data--cmacro|registerv-data|registerv-insert-func--cmacro\n|registerv-insert-func|registerv-jump-func--cmacro|registerv-jump-func|registerv-make|registerv-p--cmacro|registerv-print-func--cmacro\n|registerv-print-func|registerv-p|remember-clipboard|remember-diary-extract-entries|remember-notes|remember-other-frame|remember|remove-variable-watcher\n|remove-yank-excluded-properties|rename-uniquely|repeat-complex-command|repeat-matching-complex-command|repeat|replace--push-stack|replace-buffer-contents\n|replace-dehighlight|replace-eval-replacement|replace-highlight|replace-loop-through-replacements|replace-match-data|replace-match-maybe-edit\n|replace-match-string-symbols|replace-quote|replace-rectangle|replace-regexp|replace-search|replace-string|report-emacs-bug|report-errors\n|reporter-submit-bug-report|reposition-window|repunctuate-sentences|reset-language-environment|reset-this-command-lengths|resize-mini-window-internal\n|resize-temp-buffer-window|reveal-mode|reverse-region|revert-buffer--default|revert-buffer-insert-file-contents--default-function\n|revert-buffer-with-coding-system|rfc2104-hash|rfc822-goto-eoh|rfn-eshadow-setup-minibuffer|rfn-eshadow-sifn-equal|rfn-eshadow-update-overlay\n|rgrep|right-char|right-word|rlogin|rmail-input|rmail-mode|rmail-movemail-variant-p|rmail-output-as-seen|run-erlang|run-forth|run-haskell\n|run-lfe|run-newlisp|run-sml|rust-mode|rx--pcase-macroexpander|save-mark-and-excursion--restore|save-mark-and-excursion--save|save-mark-and-excursion\n|save-place-local-mode|save-place-mode|scad-mode|search-forward-help-for-help|secondary-selection-exist-p|secondary-selection-from-region\n|secondary-selection-to-region|secure-hash-algorithms|sed-mode|selected-window-group|seq--activate-font-lock-keywords|seq--elt-safe|seq--into-list\n|seq--into-string|seq--into-vector|seq--make-pcase-bindings|seq--make-pcase-patterns|seq--pcase-macroexpander|seq-contains|seq-difference\n|seq-do-indexed|seq-find|seq-group-by|seq-intersection|seq-into-sequence|seq-into|seq-let|seq-map-indexed|seq-mapcat|seq-mapn|seq-max|seq-min\n|seq-partition|seq-position|seq-random-elt|seq-set-equal-p|seq-some|seq-sort-by|seqp|set--this-command-keys|set-binary-mode|set-buffer-redisplay\n|set-mouse-absolute-pixel-position|set-process-thread|set-rectangular-region-anchor|set-window-group-start|shell-command--save-pos-or-erase\n|shell-command--set-point-after-cmd|shift-number-down|shift-number-up|slime-connect|slime-lisp-mode-hook|slime-mode|slime-scheme-mode-hook\n|slime-selector|slime-setup|slime|smerge-refine-regions|sml-cm-mode|sml-lex-mode|sml-mode|sml-run|sml-yacc-mode|snippet-mode|spice-mode\n|split-window-no-error|sql-mariadb|ssh-authorized-keys-mode|ssh-config-mode|ssh-known-hosts-mode|startup--setup-quote-display|string-distance\n|string-greaterp|string-version-lessp|string>|subr--with-wrapper-hook-no-warnings|switch-to-haskell|sxhash-eql|sxhash-equal|sxhash-eq|syntax-ppss--data)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(tabulated-list--col-local-max-widths|tabulated-list--get-sorter|tabulated-list-header-overlay-p|tabulated-list-line-number-width\n|tabulated-list-watch-line-number-width|tabulated-list-window-scroll-function|terminal-init-xterm|thing-at-point--beginning-of-sexp\n|thing-at-point--end-of-sexp|thing-at-point--read-from-whole-string|thread--blocker|thread-alive-p|thread-handle-event|thread-join\n|thread-last-error|thread-live-p|thread-name|thread-signal|thread-yield|threadp|tildify-mode|tildify-space|toml-mode\n|tramp-archive-autoload-file-name-regexp|tramp-register-archive-file-name-handler|tty-color-24bit|turn-on-haskell-decl-scan|turn-on-haskell-doc-mode\n|turn-on-haskell-doc|turn-on-haskell-indentation|turn-on-haskell-indent|turn-on-haskell-unicode-input-method|typescript-mode|uncomment-region-default-1\n|undo--wrap-and-run-primitive-undo|undo-amalgamate-change-group|undo-auto--add-boundary|undo-auto--boundaries|undo-auto--boundary-ensure-timer\n|undo-auto--boundary-timer|undo-auto--ensure-boundary|undo-auto--last-boundary-amalgamating-number|undo-auto--needs-boundary-p\n|undo-auto--undoable-change|undo-auto-amalgamate|universal-argument--description|universal-argument--preserve|upcase-char\n|upcase-dwim|url-asynchronous--cmacro|url-asynchronous|url-directory-files|url-domain|url-file-attributes|url-file-directory-p\n|url-file-executable-p|url-file-exists-p|url-file-handler-identity|url-file-name-all-completions|url-file-name-completion|url-file-symlink-p\n|url-file-truename|url-file-writable-p|url-handler-directory-file-name|url-handler-expand-file-name|url-handler-file-name-directory\n|url-handler-file-remote-p|url-handler-unhandled-file-name-directory|url-handlers-create-wrapper|url-handlers-set-buffer-mode|url-insert-buffer-contents\n|url-insert|url-run-real-handler|user-ptrp|userlock--ask-user-about-supersession-threat|vc-message-unresolved-conflicts|vc-print-branch-log|vc-push\n|vc-refresh-state|version-control-safe-local-p|vimrc-mode|wavefront-obj-mode|when-let\\*|window--adjust-process-windows\n|window--even-window-sizes|window--make-major-side-window-next-to|window--make-major-side-window|window--process-window-list\n|window--sides-check-failed|window--sides-check|window--sides-reverse-all|window--sides-reverse-frame|window--sides-reverse-on-frame-p\n|window--sides-reverse-side|window--sides-reverse|window--sides-verticalize-frame|window--sides-verticalize|window-absolute-body-pixel-edges\n|window-absolute-pixel-position|window-adjust-process-window-size-largest|window-adjust-process-window-size-smallest|window-adjust-process-window-size\n|window-body-edges|window-body-pixel-edges|window-divider-mode-apply|window-divider-mode|window-divider-width-valid-p|window-font-height|window-font-width\n|window-group-end|window-group-start|window-largest-empty-rectangle--disjoint-maximums|window-largest-empty-rectangle--maximums-1\n|window-largest-empty-rectangle--maximums|window-largest-empty-rectangle|window-lines-pixel-dimensions|window-main-window|window-max-chars-per-line\n|window-pixel-height-before-size-change|window-pixel-width-before-size-change|window-swap-states|window-system-initialization|window-toggle-side-windows\n|with-connection-local-profiles|with-mutex|x-load-color-file|xml-remove-comments|xref-backend-apropos|xref-backend-definitions\n|xref-backend-identifier-completion-table|xref-collect-matches|xref-elisp-location-file--cmacro|xref-elisp-location-file\n|xref-elisp-location-p--cmacro|xref-elisp-location-symbol--cmacro|xref-elisp-location-symbol|xref-elisp-location-type--cmacro\n|xref-elisp-location-type|xref-find-backend|xref-find-definitions-at-mouse|xref-make-elisp-location--cmacro|xref-marker-stack-empty-p\n|xterm--init-activate-get-selection|xterm--init-activate-set-selection|xterm--init-bracketed-paste-mode|xterm--init-focus-tracking\n|xterm--init-frame-title|xterm--init-modify-other-keys|xterm--pasted-text|xterm--push-map|xterm--query|xterm--read-event-for-query\n|xterm--report-background-handler|xterm--selection-char|xterm--suspend-tty-function|xterm--version-handler|xterm-maybe-set-dark-background-mode\n|xterm-paste|xterm-register-default-colors|xterm-rgb-convert-to-16bit|xterm-set-window-title-flag|xterm-set-window-title|xterm-translate-bracketed-paste\n|xterm-translate-focus-in|xterm-translate-focus-out|xterm-unset-window-title-flag|xwidget-webkit-browse-url|yaml-mode|yas--add-template\n|yas--advance-end-maybe|yas--advance-end-of-parents-maybe|yas--advance-start-maybe|yas--all-templates|yas--apply-transform|yas--auto-fill-wrapper\n|yas--auto-fill|yas--auto-next|yas--calculate-adjacencies|yas--calculate-group|yas--calculate-mirror-depth|yas--calculate-simple-fom-parentage\n|yas--check-commit-snippet|yas--collect-snippet-markers|yas--commit-snippet|yas--compute-major-mode-and-parents|yas--create-snippet-xrefs\n|yas--define-menu-1|yas--define-parents|yas--define-snippets-1|yas--define-snippets-2|yas--define|yas--delete-from-keymap|yas--delete-regions\n|yas--describe-pretty-table|yas--escape-string|yas--eval-condition|yas--eval-for-effect|yas--eval-for-string|yas--exit-marker--cmacro|yas--exit-marker\n|yas--exit-next--cmacro|yas--exit-next|yas--exit-p--cmacro|yas--exit-p|yas--expand-from-keymap-doc|yas--expand-from-trigger-key-doc\n|yas--expand-or-prompt-for-template|yas--expand-or-visit-from-menu|yas--fallback-translate-input|yas--fallback|yas--fetch|yas--field-contains-point-p\n|yas--field-end--cmacro|yas--field-end|yas--field-mirrors--cmacro|yas--field-mirrors|yas--field-modified-p--cmacro|yas--field-modified-p\n|yas--field-next--cmacro|yas--field-next|yas--field-number--cmacro|yas--field-number|yas--field-p--cmacro|yas--field-parent-field--cmacro\n|yas--field-parent-field|yas--field-parse-create|yas--field-probably-deleted-p|yas--field-p|yas--field-start--cmacro|yas--field-start\n|yas--field-text-for-display|yas--field-transform--cmacro|yas--field-transform|yas--field-update-display|yas--filter-templates-by-condition\n|yas--find-next-field|yas--finish-moving-snippets|yas--fom-end|yas--fom-next|yas--fom-parent-field|yas--fom-start|yas--format|yas--get-field-once\n|yas--get-snippet-tables|yas--get-template-by-uuid|yas--global-mode-reload-with-jit-maybe|yas--goto-saved-location|yas--guess-snippet-directories-1\n|yas--guess-snippet-directories|yas--indent-parse-create|yas--indent-region|yas--indent|yas--key-from-desc|yas--keybinding-beyond-yasnippet|yas--letenv\n|yas--load-directory-1|yas--load-directory-2|yas--load-pending-jits|yas--load-snippet-dirs|yas--load-yas-setup-file|yas--lookup-snippet-1\n|yas--make-control-overlay|yas--make-directory-maybe|yas--make-exit--cmacro|yas--make-exit|yas--make-field--cmacro|yas--make-field|yas--make-marker\n|yas--make-menu-binding|yas--make-mirror--cmacro|yas--make-mirror|yas--make-move-active-field-overlay|yas--make-move-field-protection-overlays\n|yas--make-snippet--cmacro|yas--make-snippet-table--cmacro|yas--make-snippet-table|yas--make-snippet|yas--make-template--cmacro|yas--make-template)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(yas--mark-this-and-children-modified|yas--markers-to-points|yas--maybe-clear-field-filter|yas--maybe-expand-from-keymap-filter\n|yas--maybe-expand-key-filter|yas--maybe-move-to-active-field|yas--menu-keymap-get-create|yas--message|yas--minor-mode-menu|yas--mirror-depth--cmacro\n|yas--mirror-depth|yas--mirror-end--cmacro|yas--mirror-end|yas--mirror-next--cmacro|yas--mirror-next|yas--mirror-p--cmacro|yas--mirror-parent-field--cmacro\n|yas--mirror-parent-field|yas--mirror-p|yas--mirror-start--cmacro|yas--mirror-start|yas--mirror-transform--cmacro|yas--mirror-transform\n|yas--mirror-update-display|yas--modes-to-activate|yas--move-to-field|yas--namehash-templates-alist|yas--on-buffer-kill|yas--on-field-overlay-modification\n|yas--on-protection-overlay-modification|yas--parse-template|yas--place-overlays|yas--points-to-markers|yas--post-command-handler\n|yas--prepare-snippets-for-move|yas--prompt-for-keys|yas--prompt-for-table|yas--prompt-for-template|yas--protect-escapes|yas--read-keybinding\n|yas--read-lisp|yas--read-table|yas--remove-misc-free-from-undo|yas--remove-template-by-uuid|yas--replace-all|yas--require-template-specific-condition-p\n|yas--restore-backquotes|yas--restore-escapes|yas--restore-marker-location|yas--restore-overlay-line-location|yas--restore-overlay-location|yas--safely-call-fun\n|yas--safely-run-hook|yas--save-backquotes|yas--save-restriction-and-widen|yas--scan-sexps|yas--schedule-jit|yas--show-menu-p|yas--simple-fom-create\n|yas--skip-and-clear-field-p|yas--skip-and-clear|yas--snapshot-marker-location|yas--snapshot-overlay-line-location|yas--snapshot-overlay-location\n|yas--snippet-active-field--cmacro|yas--snippet-active-field|yas--snippet-control-overlay--cmacro|yas--snippet-control-overlay|yas--snippet-create\n|yas--snippet-description-finish-runonce|yas--snippet-exit--cmacro|yas--snippet-exit|yas--snippet-expand-env--cmacro|yas--snippet-expand-env\n|yas--snippet-field-compare|yas--snippet-fields--cmacro|yas--snippet-fields|yas--snippet-find-field|yas--snippet-force-exit--cmacro|yas--snippet-force-exit\n|yas--snippet-id--cmacro|yas--snippet-id|yas--snippet-live-p|yas--snippet-map-markers|yas--snippet-next-id|yas--snippet-p--cmacro|yas--snippet-parse-create\n|yas--snippet-previous-active-field--cmacro|yas--snippet-previous-active-field|yas--snippet-p|yas--snippet-revive|yas--snippet-sort-fields\n|yas--snippets-at-point|yas--subdirs|yas--table-all-keys|yas--table-direct-keymap--cmacro|yas--table-direct-keymap|yas--table-get-create\n|yas--table-hash--cmacro|yas--table-hash|yas--table-mode|yas--table-name--cmacro|yas--table-name|yas--table-p--cmacro|yas--table-parents--cmacro\n|yas--table-parents|yas--table-p|yas--table-templates|yas--table-uuidhash--cmacro|yas--table-uuidhash|yas--take-care-of-redo|yas--template-can-expand-p\n|yas--template-condition--cmacro|yas--template-condition|yas--template-content--cmacro|yas--template-content|yas--template-expand-env--cmacro\n|yas--template-expand-env|yas--template-fine-group|yas--template-get-file|yas--template-group--cmacro|yas--template-group|yas--template-key--cmacro\n|yas--template-keybinding--cmacro|yas--template-keybinding|yas--template-key|yas--template-load-file--cmacro|yas--template-load-file\n|yas--template-menu-binding-pair--cmacro|yas--template-menu-binding-pair-get-create|yas--template-menu-binding-pair|yas--template-menu-managed-by-yas-define-menu\n|yas--template-name--cmacro|yas--template-name|yas--template-p--cmacro|yas--template-perm-group--cmacro|yas--template-perm-group|yas--template-pretty-list\n|yas--template-p|yas--template-save-file--cmacro|yas--template-save-file|yas--template-table--cmacro|yas--template-table|yas--template-uuid--cmacro\n|yas--template-uuid|yas--templates-for-key-at-point|yas--transform-mirror-parse-create|yas--undo-in-progress|yas--update-mirrors|yas--update-template-menu\n|yas--update-template|yas--visit-snippet-file-1|yas--warning|yas--watch-auto-fill|yas-abort-snippet|yas-about|yas-activate-extra-mode|yas-active-keys\n|yas-active-snippets|yas-auto-next|yas-choose-value|yas-compile-directory|yas-completing-prompt|yas-current-field|yas-deactivate-extra-mode\n|yas-default-from-field|yas-define-condition-cache|yas-define-menu|yas-define-snippets|yas-describe-table-by-namehash|yas-describe-tables\n|yas-direct-keymaps-reload|yas-dropdown-prompt|yas-escape-text|yas-exit-all-snippets|yas-exit-snippet|yas-expand-from-keymap|yas-expand-from-trigger-key\n|yas-expand-snippet|yas-expand|yas-field-value|yas-global-mode-check-buffers|yas-global-mode-cmhh|yas-global-mode-enable-in-buffers|yas-global-mode\n|yas-hippie-try-expand|yas-ido-prompt|yas-initialize|yas-insert-snippet|yas-inside-string|yas-key-to-value|yas-load-directory|yas-load-snippet-buffer-and-close\n|yas-load-snippet-buffer|yas-longest-key-from-whitespace|yas-lookup-snippet|yas-maybe-ido-prompt|yas-maybe-load-snippet-buffer|yas-minor-mode-on\n|yas-minor-mode-set-explicitly|yas-minor-mode|yas-new-snippet|yas-next-field-or-maybe-expand|yas-next-field-will-exit-p|yas-next-field|yas-no-prompt|yas-prev-field\n|yas-recompile-all|yas-reload-all|yas-selected-text|yas-shortest-key-until-whitespace|yas-skip-and-clear-field|yas-skip-and-clear-or-delete-char|yas-snippet-dirs\n|yas-snippet-mode-buffer-p|yas-substr|yas-text|yas-throw|yas-try-key-from-whitespace|yas-tryout-snippet|yas-unimplemented|yas-verify-value|yas-visit-snippet-file\n|yas-x-prompt|yas\\/abort-snippet|yas\\/about|yas\\/choose-value|yas\\/compile-directory|yas\\/completing-prompt|yas\\/default-from-field|yas\\/define-condition-cache\n|yas\\/define-menu|yas\\/define-snippets|yas\\/describe-tables|yas\\/direct-keymaps-reload|yas\\/dropdown-prompt|yas\\/exit-all-snippets|yas\\/exit-snippet\n|yas\\/expand-from-keymap|yas\\/expand-from-trigger-key|yas\\/expand-snippet|yas\\/expand|yas\\/field-value|yas\\/global-mode|yas\\/hippie-try-expand|yas\\/ido-prompt\n|yas\\/initialize|yas\\/insert-snippet|yas\\/inside-string|yas\\/key-to-value|yas\\/load-directory|yas\\/load-snippet-buffer|yas\\/minor-mode-on|yas\\/minor-mode\n|yas\\/new-snippet|yas\\/next-field-or-maybe-expand|yas\\/next-field|yas\\/no-prompt|yas\\/prev-field|yas\\/recompile-all|yas\\/reload-all|yas\\/selected-text\n|yas\\/skip-and-clear-or-delete-char|yas\\/snippet-dirs|yas\\/substr|yas\\/text|yas\\/throw|yas\\/tryout-snippet|yas\\/unimplemented|yas\\/verify-value\n|yas\\/visit-snippet-file|yas\\/x-prompt|yasnippet-unload-function|zap-up-to-char)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(abbrev-all-caps|abbrev-expand-function|abbrev-expansion|abbrev-file-name|abbrev-get|abbrev-insert|abbrev-map|abbrev-minor-mode-table-alist\n|abbrev-prefix-mark|abbrev-put|abbrev-start-location|abbrev-start-location-buffer|abbrev-symbol|abbrev-table-get|abbrev-table-name-list\n|abbrev-table-p|abbrev-table-put|abbreviate-file-name|abbrevs-changed|abort-recursive-edit|accept-change-group|accept-process-output\n|access-file|accessible-keymaps|acos|activate-change-group|activate-mark-hook|active-minibuffer-window|adaptive-fill-first-line-regexp\n|adaptive-fill-function|adaptive-fill-mode|adaptive-fill-regexp|add-face-text-property|add-function|add-hook|add-name-to-file\n|add-text-properties|add-to-history|add-to-invisibility-spec|add-to-list|add-to-ordered-list|adjust-window-trailing-edge|advice-add\n|advice-eval-interactive-spec|advice-function-mapc|advice-function-member-p|advice-mapc|advice-member-p|advice-remove|after-change-functions\n|after-change-major-mode-hook|after-find-file|after-init-hook|after-init-time|after-insert-file-functions|after-load-functions\n|after-make-frame-functions|after-revert-hook|after-save-hook|after-setting-font-hook|all-completions|append-to-file|apply-partially|apropos\n|aref|argv|arrayp|ascii-case-table|aset|ash|asin|ask-user-about-lock|ask-user-about-supersession-threat|assoc-default|assoc-string|assq\n|assq-delete-all|atan|atom|auto-coding-alist|auto-coding-functions|auto-coding-regexp-alist|auto-fill-chars|auto-fill-function|auto-hscroll-mode\n|auto-mode-alist|auto-raise-tool-bar-buttons|auto-resize-tool-bars|auto-save-default|auto-save-file-name-p|auto-save-hook|auto-save-interval\n|auto-save-list-file-name|auto-save-list-file-prefix|auto-save-mode|auto-save-timeout|auto-save-visited-file-name|auto-window-vscroll|autoload\n|autoload-do-load|autoloadp|back-to-indentation|backtrace|backtrace-debug|backtrace-frame|backup-buffer|backup-by-copying|backup-by-copying-when-linked\n|backup-by-copying-when-mismatch|backup-by-copying-when-privileged-mismatch|backup-directory-alist|backup-enable-predicate|backup-file-name-p\n|backup-inhibited|backward-button|backward-char|backward-delete-char-untabify|backward-delete-char-untabify-method|backward-list|backward-prefix-chars\n|backward-sexp|backward-to-indentation|backward-word|balance-windows|balance-windows-area|barf-if-buffer-read-only|base64-decode-region\n|base64-decode-string|base64-encode-region|base64-encode-string|batch-byte-compile|baud-rate|beep|before-change-functions|before-hack-local-variables-hook\n|before-init-hook|before-init-time|before-make-frame-hook|before-revert-hook|before-save-hook|beginning-of-buffer|beginning-of-defun\n|beginning-of-defun-function|beginning-of-line|bidi-display-reordering|bidi-paragraph-direction|bidi-string-mark-left-to-right\n|bindat-get-field|bindat-ip-to-string|bindat-length|bindat-pack|bindat-unpack|bitmap-spec-p|blink-cursor-alist|blink-matching-delay\n|blink-matching-open|blink-matching-paren|blink-matching-paren-distance|blink-paren-function|bobp|bolp|bool-vector-count-consecutive\n|bool-vector-count-population|bool-vector-exclusive-or|bool-vector-intersection|bool-vector-not|bool-vector-p|bool-vector-set-difference\n|bool-vector-subsetp|bool-vector-union|booleanp|boundp|buffer-access-fontified-property|buffer-access-fontify-functions|buffer-auto-save-file-format\n|buffer-auto-save-file-name|buffer-backed-up|buffer-base-buffer|buffer-chars-modified-tick|buffer-disable-undo|buffer-display-count|buffer-display-table\n|buffer-display-time|buffer-enable-undo|buffer-end|buffer-file-coding-system|buffer-file-format|buffer-file-name|buffer-file-number|buffer-file-truename\n|buffer-invisibility-spec|buffer-list|buffer-list-update-hook|buffer-live-p|buffer-local-value|buffer-local-variables|buffer-modified-p|buffer-modified-tick\n|buffer-name|buffer-name-history|buffer-narrowed-p|buffer-offer-save|buffer-quit-function|buffer-read-only|buffer-save-without-query|buffer-saved-size\n|buffer-size|buffer-stale-function|buffer-string|buffer-substring|buffer-substring-filters|buffer-substring-no-properties|buffer-swap-text|buffer-undo-list\n|bufferp|bury-buffer|button-activate|button-at|button-end|button-get|button-has-type-p|button-label|button-put|button-start|button-type|button-type-get\n|button-type-put|button-type-subtype-p|byte-boolean-vars|byte-code-function-p|byte-compile|byte-compile-dynamic|byte-compile-dynamic-docstrings\n|byte-compile-file|byte-recompile-directory|byte-to-position|byte-to-string|call-interactively|call-process|call-process-region|call-process-shell-command\n|called-interactively-p|cancel-change-group|cancel-debug-on-entry|cancel-timer|capitalize|capitalize-region|capitalize-word|case-fold-search|case-replace\n|case-table-p|category-docstring|category-set-mnemonics|category-table|category-table-p|ceiling|change-major-mode-after-body-hook|change-major-mode-hook\n|char-after|char-before|char-category-set|char-charset|char-code-property-description|char-displayable-p|char-equal|char-or-string-p|char-property-alias-alist\n|char-script-table|char-syntax|char-table-extra-slot|char-table-p|char-table-parent|char-table-range|char-table-subtype|char-to-string|char-width\n|char-width-table|characterp|charset-after|charset-list|charset-plist|charset-priority-list|charsetp|check-coding-system|check-coding-systems-region\n|checkdoc-minor-mode|cl|clear-abbrev-table|clear-image-cache|clear-string|clear-this-command-keys|clear-visited-file-modtime|clone-indirect-buffer\n|clrhash|coding-system-aliases|coding-system-change-eol-conversion|coding-system-change-text-conversion|coding-system-charset-list|coding-system-eol-type\n|coding-system-for-read|coding-system-for-write|coding-system-get|coding-system-list|coding-system-p|coding-system-priority-list|collapse-delayed-warnings\n|color-defined-p|color-gray-p|color-supported-p|color-values|combine-after-change-calls|combine-and-quote-strings|command-debug-status|command-error-function\n|command-execute|command-history|command-line|command-line-args|command-line-args-left|command-line-functions|command-line-processed|command-remapping\n|command-switch-alist|commandp|compare-buffer-substrings|compare-strings|compare-window-configurations|compile-defun|completing-read|completing-read-function\n|completion-at-point|completion-at-point-functions|completion-auto-help|completion-boundaries|completion-category-overrides|completion-extra-properties\n|completion-ignore-case|completion-ignored-extensions|completion-in-region|completion-regexp-list|completion-styles|completion-styles-alist\n|completion-table-case-fold|completion-table-dynamic|completion-table-in-turn|completion-table-merge|completion-table-subvert|completion-table-with-cache\n|completion-table-with-predicate|completion-table-with-quoting|completion-table-with-terminator|compute-motion|concat|cons-cells-consed|constrain-to-field\n|continue-process|controlling-tty-p|convert-standard-filename|coordinates-in-window-p|copy-abbrev-table|copy-category-table|copy-directory|copy-file\n|copy-hash-table|copy-keymap|copy-marker|copy-overlay|copy-region-as-kill|copy-sequence|copy-syntax-table|copysign|cos|count-lines|count-loop\n|count-screen-lines|count-words|create-file-buffer|create-fontset-from-fontset-spec|create-image|create-lockfiles|current-active-maps\n|current-bidi-paragraph-direction|current-buffer|current-case-table|current-column|current-fill-column|current-frame-configuration|current-global-map\n|current-idle-time|current-indentation|current-input-method|current-input-mode|current-justification|current-kill|current-left-margin|current-local-map\n|current-message|current-minor-mode-maps|current-prefix-arg|current-time|current-time-string|current-time-zone|current-window-configuration|current-word\n|cursor-in-echo-area|cursor-in-non-selected-windows|cursor-type|cust-print|custom-add-frequent-value|custom-initialize-delay|custom-known-themes\n|custom-reevaluate-setting|custom-set-faces|custom-set-variables|custom-theme-p|custom-theme-set-faces|custom-theme-set-variables\n|custom-unlispify-remove-prefixes|custom-variable-p|customize-package-emacs-version-alist|cygwin-convert-file-name-from-windows\n|cygwin-convert-file-name-to-windows|data-directory|date-leap-year-p|date-to-time|deactivate-mark|deactivate-mark-hook|debug|debug-ignored-errors\n|debug-on-entry|debug-on-error|debug-on-event|debug-on-message|debug-on-next-call|debug-on-quit|debug-on-signal|debugger|debugger-bury-or-kill|declare\n|declare-function|decode-char|decode-coding-inserted-region|decode-coding-region|decode-coding-string|decode-time|def-edebug-spec|defalias|default-boundp\n|default-directory|default-file-modes|default-frame-alist|default-input-method|default-justification|default-minibuffer-frame|default-process-coding-system\n|default-text-properties|default-value|define-abbrev|define-abbrev-table|define-alternatives|define-button-type|define-category|define-derived-mode\n|define-error|define-fringe-bitmap|define-generic-mode|define-globalized-minor-mode|define-hash-table-test|define-key|define-key-after|define-minor-mode\n|define-obsolete-face-alias|define-obsolete-function-alias|define-obsolete-variable-alias|define-package|define-prefix-command|defined-colors\n|defining-kbd-macro|defun-prompt-regexp|defvar-local|defvaralias|delay-mode-hooks|delayed-warnings-hook|delayed-warnings-list|delete\n|delete-and-extract-region|delete-auto-save-file-if-necessary|delete-auto-save-files|delete-backward-char|delete-blank-lines|delete-by-moving-to-trash\n|delete-char|delete-directory|delete-dups|delete-exited-processes|delete-field|delete-file|delete-frame|delete-frame-functions|delete-horizontal-space\n|delete-indentation|delete-minibuffer-contents|delete-old-versions|delete-other-windows|delete-overlay|delete-process|delete-region|delete-terminal\n|delete-terminal-functions|delete-to-left-margin|delete-trailing-whitespace|delete-window|delete-windows-on|delq|derived-mode-p|describe-bindings\n|describe-buffer-case-table|describe-categories|describe-current-display-table|describe-display-table|describe-mode|describe-prefix-bindings\n|describe-syntax|desktop-buffer-mode-handlers|desktop-save-buffer|destroy-fringe-bitmap|detect-coding-region|detect-coding-string|digit-argument\n|ding|dir-locals-class-alist|dir-locals-directory-cache|dir-locals-file|dir-locals-set-class-variables|dir-locals-set-directory-class|directory-file-name\n|directory-files|directory-files-and-attributes|dired-kept-versions|disable-command|disable-point-adjustment|disable-theme|disabled|disabled-command-function\n|disassemble|discard-input|display-backing-store|display-buffer|display-buffer-alist|display-buffer-at-bottom|display-buffer-base-action|display-buffer-below-selected\n|display-buffer-fallback-action|display-buffer-in-previous-window|display-buffer-no-window|display-buffer-overriding-action|display-buffer-pop-up-frame\n|display-buffer-pop-up-window|display-buffer-reuse-window|display-buffer-same-window|display-buffer-use-some-window|display-color-cells|display-color-p\n|display-completion-list|display-delayed-warnings|display-graphic-p|display-grayscale-p|display-images-p|display-message-or-buffer|display-mm-dimensions-alist\n|display-mm-height|display-mm-width|display-monitor-attributes-list|display-mouse-p|display-pixel-height|display-pixel-width|display-planes|display-popup-menus-p\n|display-save-under|display-screens|display-selections-p|display-supports-face-attributes-p|display-table-slot|display-visual-class|display-warning|dnd-protocol-alist\n|do-auto-save|doc-directory|documentation|documentation-property|dotimes-with-progress-reporter|double-click-fuzz|double-click-time|down-list|downcase|downcase-region\n|downcase-word|dump-emacs|dynamic-library-alist)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(easy-menu-define|easy-mmode-define-minor-mode|echo-area-clear-hook|echo-keystrokes|edebug|edebug-all-defs|edebug-all-forms\n|edebug-continue-kbd-macro|edebug-defun|edebug-display-freq-count|edebug-eval-macro-args|edebug-eval-top-level-form|edebug-global-break-condition\n|edebug-initial-mode|edebug-on-error|edebug-on-quit|edebug-print-circle|edebug-print-length|edebug-print-level|edebug-print-trace-after|edebug-print-trace-before\n|edebug-save-displayed-buffer-points|edebug-save-windows|edebug-set-global-break-condition|edebug-setup-hook|edebug-sit-for-seconds|edebug-temp-display-freq-count\n|edebug-test-coverage|edebug-trace|edebug-tracing|edebug-unwrap-results|edit-and-eval-command|electric-future-map|elt|emacs-build-time|emacs-init-time\n|emacs-lisp-docstring-fill-column|emacs-major-version|emacs-minor-version|emacs-pid|emacs-save-session-functions|emacs-session-restore|emacs-startup-hook\n|emacs-uptime|emacs-version|emulation-mode-map-alists|enable-command|enable-dir-local-variables|enable-local-eval|enable-local-variables\n|enable-multibyte-characters|enable-recursive-minibuffers|enable-theme|encode-char|encode-coding-region|encode-coding-string|encode-time|end-of-buffer\n|end-of-defun|end-of-defun-function|end-of-file|end-of-line|eobp|eolp|equal-including-properties|erase-buffer|error|error-conditions|error-message-string\n|esc-map|ESC-prefix|eval|eval-and-compile|eval-buffer|eval-current-buffer|eval-expression-debug-on-error|eval-expression-print-length\n|eval-expression-print-level|eval-minibuffer|eval-region|eval-when-compile|event-basic-type|event-click-count|event-convert-list|event-end|event-modifiers\n|event-start|eventp|ewoc-buffer|ewoc-collect|ewoc-create|ewoc-data|ewoc-delete|ewoc-enter-after|ewoc-enter-before|ewoc-enter-first|ewoc-enter-last\n|ewoc-filter|ewoc-get-hf|ewoc-goto-next|ewoc-goto-node|ewoc-goto-prev|ewoc-invalidate|ewoc-locate|ewoc-location|ewoc-map|ewoc-next|ewoc-nth|ewoc-prev\n|ewoc-refresh|ewoc-set-data|ewoc-set-hf|exec-directory|exec-path|exec-suffixes|executable-find|execute-extended-command|execute-kbd-macro|executing-kbd-macro\n|exit|exit-minibuffer|exit-recursive-edit|exp|expand-abbrev|expand-file-name|expt|extended-command-history|extra-keyboard-modifiers|face-all-attributes\n|face-attribute|face-attribute-relative-p|face-background|face-bold-p|face-differs-from-default-p|face-documentation|face-equal|face-font\n|face-font-family-alternatives|face-font-registry-alternatives|face-font-rescale-alist|face-font-selection-order|face-foreground|face-id|face-inverse-video-p\n|face-italic-p|face-list|face-name-history|face-remap-add-relative|face-remap-remove-relative|face-remap-reset-base|face-remap-set-base|face-remapping-alist\n|face-spec-set|face-stipple|face-underline-p|facemenu-keymap|facep|fboundp|fceiling|feature-unload-function|featurep|features|fetch-bytecode|ffloor\n|field-beginning|field-end|field-string|field-string-no-properties|file-accessible-directory-p|file-acl|file-already-exists|file-attributes|file-chase-links\n|file-coding-system-alist|file-directory-p|file-equal-p|file-error|file-executable-p|file-exists-p|file-expand-wildcards|file-extended-attributes\n|file-in-directory-p|file-local-copy|file-local-variables-alist|file-locked|file-locked-p|file-modes|file-modes-symbolic-to-number|file-name-absolute-p\n|file-name-all-completions|file-name-as-directory|file-name-base|file-name-coding-system|file-name-completion|file-name-directory|file-name-extension\n|file-name-handler-alist|file-name-history|file-name-nondirectory|file-name-sans-extension|file-name-sans-versions|file-newer-than-file-p|file-newest-backup\n|file-nlinks|file-notify-add-watch|file-notify-rm-watch|file-ownership-preserved-p|file-precious-flag|file-readable-p|file-regular-p|file-relative-name\n|file-remote-p|file-selinux-context|file-supersession|file-symlink-p|file-truename|file-writable-p|fill-column|fill-context-prefix\n|fill-forward-paragraph-function|fill-individual-paragraphs|fill-individual-varying-indent|fill-nobreak-predicate|fill-paragraph|fill-paragraph-function\n|fill-prefix|fill-region|fill-region-as-paragraph|fillarray|filter-buffer-substring|filter-buffer-substring-function|filter-buffer-substring-functions\n|find-auto-coding|find-backup-file-name|find-buffer-visiting|find-charset-region|find-charset-string|find-coding-systems-for-charsets|find-coding-systems-region\n|find-coding-systems-string|find-file|find-file-hook|find-file-literally|find-file-name-handler|find-file-noselect|find-file-not-found-functions|find-file-other-window\n|find-file-read-only|find-file-wildcards|find-font|find-image|find-operation-coding-system|first-change-hook|fit-frame-to-buffer|fit-frame-to-buffer-margins\n|fit-frame-to-buffer-sizes|fit-window-to-buffer|fit-window-to-buffer-horizontally|fixup-whitespace|float|float-e|float-output-format|float-pi|float-time\n|floatp|floats-consed|floor|fmakunbound|focus-follows-mouse|focus-in-hook|focus-out-hook|following-char|font-at|font-face-attributes|font-family-list|font-get\n|font-lock-add-keywords|font-lock-beginning-of-syntax-function|font-lock-builtin-face|font-lock-comment-delimiter-face|font-lock-comment-face\n|font-lock-constant-face|font-lock-defaults|font-lock-doc-face|font-lock-extend-after-change-region-function|font-lock-extra-managed-props\n|font-lock-fontify-buffer-function|font-lock-fontify-region-function|font-lock-function-name-face|font-lock-keyword-face|font-lock-keywords\n|font-lock-keywords-case-fold-search|font-lock-keywords-only|font-lock-mark-block-function|font-lock-multiline|font-lock-negation-char-face\n|font-lock-preprocessor-face|font-lock-remove-keywords|font-lock-string-face|font-lock-syntactic-face-function|font-lock-syntax-table|font-lock-type-face\n|font-lock-unfontify-buffer-function|font-lock-unfontify-region-function|font-lock-variable-name-face|font-lock-warning-face|font-put|font-spec\n|font-xlfd-name|fontification-functions|fontp|for|force-mode-line-update|force-window-update|format|format-alist|format-find-file|format-insert-file\n|format-mode-line|format-network-address|format-seconds|format-time-string|format-write-file|forward-button|forward-char|forward-comment|forward-line\n|forward-list|forward-sexp|forward-to-indentation|forward-word|frame-alpha-lower-limit|frame-auto-hide-function|frame-char-height|frame-char-width\n|frame-current-scroll-bars|frame-first-window|frame-height|frame-inherited-parameters|frame-list|frame-live-p|frame-monitor-attributes|frame-parameter\n|frame-parameters|frame-pixel-height|frame-pixel-width|frame-pointer-visible-p|frame-resize-pixelwise|frame-root-window|frame-selected-window|frame-terminal\n|frame-title-format|frame-visible-p|frame-width|framep|frexp|fringe-bitmaps-at-pos|fringe-cursor-alist|fringe-indicator-alist|fringes-outside-margins|fround\n|fset|ftp-login|ftruncate|function-get|functionp|fundamental-mode|fundamental-mode-abbrev-table|gap-position|gap-size|garbage-collect|garbage-collection-messages\n|gc-cons-percentage|gc-cons-threshold|gc-elapsed|gcs-done|generate-autoload-cookie|generate-new-buffer|generate-new-buffer-name|generated-autoload-file|get\n|get-buffer|get-buffer-create|get-buffer-process|get-buffer-window|get-buffer-window-list|get-byte|get-char-code-property|get-char-property\n|get-char-property-and-overlay|get-charset-property|get-device-terminal|get-file-buffer|get-internal-run-time|get-largest-window|get-load-suffixes\n|get-lru-window|get-pos-property|get-process|get-register|get-text-property|get-unused-category|get-window-with-predicate|getenv|gethash|global-abbrev-table\n|global-buffers-menu-map|global-disable-point-adjustment|global-key-binding|global-map|global-mode-string|global-set-key|global-unset-key|glyph-char|glyph-face\n|glyph-table|glyphless-char-display|glyphless-char-display-control|goto-char|goto-map|group-gid|group-real-gid|gv-define-expander|gv-define-setter\n|gv-define-simple-setter|gv-letplace|hack-dir-local-variables|hack-dir-local-variables-non-file-buffer|hack-local-variables|hack-local-variables-hook\n|handle-shift-selection|handle-switch-frame|hash-table-count|hash-table-p|hash-table-rehash-size|hash-table-rehash-threshold|hash-table-size|hash-table-test\n|hash-table-weakness|header-line-format|help-buffer|help-char|help-command|help-event-list|help-form|help-map|help-setup-xref|help-window-select\n|Helper-describe-bindings|Helper-help|Helper-help-map|history-add-new-input|history-delete-duplicates|history-length)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(icon-title-format|iconify-frame|identity|ignore|ignore-errors|ignore-window-parameters|ignored-local-variables|image-animate|image-animate-timer\n|image-cache-eviction-delay|image-current-frame|image-default-frame-delay|image-flush|image-format-suffixes|image-load-path|image-load-path-for-library\n|image-mask-p|image-minimum-frame-delay|image-multi-frame-p|image-show-frame|image-size|image-type-available-p|image-types|imagemagick-enabled-types\n|imagemagick-types|imagemagick-types-inhibit|imenu-add-to-menubar|imenu-case-fold-search|imenu-create-index-function|imenu-extract-index-name-function\n|imenu-generic-expression|imenu-prev-index-position-function|imenu-syntax-alist|inc|indent-according-to-mode|indent-code-rigidly|indent-for-tab-command\n|indent-line-function|indent-region|indent-region-function|indent-relative|indent-relative-maybe|indent-rigidly|indent-tabs-mode|indent-to|indent-to-left-margin\n|indicate-buffer-boundaries|indicate-empty-lines|indirect-function|indirect-variable|inhibit-default-init|inhibit-eol-conversion|inhibit-field-text-motion\n|inhibit-file-name-handlers|inhibit-file-name-operation|inhibit-iso-escape-detection|inhibit-local-variables-regexps|inhibit-modification-hooks|inhibit-null-byte-detection\n|inhibit-point-motion-hooks|inhibit-quit|inhibit-read-only|inhibit-splash-screen|inhibit-startup-echo-area-message|inhibit-startup-message|inhibit-startup-screen\n|inhibit-x-resources|init-file-user|initial-buffer-choice|initial-environment|initial-frame-alist|initial-major-mode|initial-scratch-message|initial-window-system\n|input-decode-map|input-method-alist|input-method-function|input-pending-p|insert|insert-abbrev-table-description|insert-and-inherit|insert-before-markers\n|insert-before-markers-and-inherit|insert-buffer|insert-buffer-substring|insert-buffer-substring-as-yank|insert-buffer-substring-no-properties|insert-button\n|insert-char|insert-default-directory|insert-directory|insert-directory-program|insert-file-contents|insert-file-contents-literally|insert-for-yank|insert-image\n|insert-register|insert-sliced-image|insert-text-button|installation-directory|integer-or-marker-p|integerp|interactive-form|intern|intern-soft|interpreter-mode-alist\n|interprogram-cut-function|interprogram-paste-function|interrupt-process|intervals-consed|invalid-function|invalid-read-syntax|invalid-regexp|invert-face\n|invisible-p|invocation-directory|invocation-name|isnan|jit-lock-register|jit-lock-unregister|just-one-space|justify-current-line|kbd|kbd-macro-termination-hook\n|kept-new-versions|kept-old-versions|key-binding|key-description|key-translation-map|keyboard-coding-system|keyboard-quit|keyboard-translate|keyboard-translate-table\n|keymap-parent|keymap-prompt|keymapp|keywordp|kill-all-local-variables|kill-append|kill-buffer|kill-buffer-hook|kill-buffer-query-functions|kill-emacs|kill-emacs-hook\n|kill-emacs-query-functions|kill-local-variable|kill-new|kill-process|kill-read-only-ok|kill-region|kill-ring|kill-ring-max|kill-ring-yank-pointer|kmacro-keymap\n|last-abbrev|last-abbrev-location|last-abbrev-text|last-buffer|last-coding-system-used|last-command|last-command-event|last-event-frame|last-input-event\n|last-kbd-macro|last-nonmenu-event|last-prefix-arg|last-repeatable-command|lax-plist-get|lax-plist-put|lazy-completion-table|ldexp|left-fringe-width|left-margin\n|left-margin-width|lexical-binding|libxml-parse-html-region|libxml-parse-xml-region|line-beginning-position|line-end-position|line-move-ignore-invisible\n|line-number-at-pos|line-prefix|line-spacing|lisp-mode-abbrev-table|list-buffers-directory|list-charset-chars|list-fonts|list-load-path-shadows|list-processes\n|list-system-processes|listify-key-sequence|ln|load-average|load-file|load-file-name|load-file-rep-suffixes|load-history|load-in-progress|load-library|load-path\n|load-prefer-newer|load-read-function|load-suffixes|load-theme|local-abbrev-table|local-function-key-map|local-key-binding|local-set-key|local-unset-key\n|local-variable-if-set-p|local-variable-p|locale-coding-system|locale-info|locate-file|locate-library|locate-user-emacs-file|lock-buffer|log|logand|logb|logior\n|lognot|logxor|looking-at|looking-at-p|looking-back|lookup-key|lower-frame|lsh|lwarn|macroexpand|macroexpand-all|macrop|magic-fallback-mode-alist|magic-mode-alist\n|mail-host-address|major-mode|make-abbrev-table|make-auto-save-file-name|make-backup-file-name|make-backup-file-name-function|make-backup-files|make-bool-vector|make-button\n|make-byte-code|make-category-set|make-category-table|make-char-table|make-composed-keymap|make-directory|make-display-table|make-frame|make-frame-invisible\n|make-frame-on-display|make-frame-visible|make-glyph-code|make-hash-table|make-help-screen|make-indirect-buffer|make-keymap|make-local-variable|make-marker\n|make-network-process|make-obsolete|make-obsolete-variable|make-overlay|make-progress-reporter|make-ring|make-serial-process|make-sparse-keymap|make-string\n|make-symbol|make-symbolic-link|make-syntax-table|make-temp-file|make-temp-name|make-text-button|make-translation-table|make-translation-table-from-alist\n|make-translation-table-from-vector|make-variable-buffer-local|make-vector|makehash|makunbound|map-char-table|map-charset-chars|map-keymap|map-y-or-n-p|mapatoms\n|mapconcat|maphash|mark|mark-active|mark-even-if-inactive|mark-marker|mark-ring|mark-ring-max|marker-buffer|marker-insertion-type|marker-position|markerp|match-beginning\n|match-data|match-end|match-string|match-string-no-properties|match-substitute-replacement|max-char|max-image-size|max-lisp-eval-depth|max-mini-window-height\n|max-specpdl-size|maximize-window|md5|member-ignore-case|memory-full|memory-limit|memory-use-counts|memq|memql|menu-bar-file-menu|menu-bar-final-items|menu-bar-help-menu\n|menu-bar-options-menu|menu-bar-tools-menu|menu-bar-update-hook|menu-item|menu-prompt-more-char|merge-face-attribute|message|message-box|message-log-max|message-or-box\n|message-truncate-lines|messages-buffer|meta-prefix-char|minibuffer-allow-text-properties|minibuffer-auto-raise|minibuffer-complete|minibuffer-complete-and-exit\n|minibuffer-complete-word|minibuffer-completion-confirm|minibuffer-completion-help|minibuffer-completion-predicate|minibuffer-completion-table|minibuffer-confirm-exit-commands\n|minibuffer-contents|minibuffer-contents-no-properties|minibuffer-depth|minibuffer-exit-hook|minibuffer-frame-alist|minibuffer-help-form|minibuffer-history\n|minibuffer-inactive-mode|minibuffer-local-completion-map|minibuffer-local-filename-completion-map|minibuffer-local-map|minibuffer-local-must-match-map\n|minibuffer-local-ns-map|minibuffer-local-shell-command-map|minibuffer-message|minibuffer-message-timeout|minibuffer-prompt|minibuffer-prompt-end\n|minibuffer-prompt-width|minibuffer-scroll-window|minibuffer-selected-window|minibuffer-setup-hook|minibuffer-window|minibuffer-window-active-p|minibufferp\n|minimize-window|minor-mode-alist|minor-mode-key-binding|minor-mode-list|minor-mode-map-alist|minor-mode-overriding-map-alist|misc-objects-consed|mkdir|mod\n|mode-line-buffer-identification|mode-line-client|mode-line-coding-system-map|mode-line-column-line-number-mode-map|mode-line-format|mode-line-frame-identification\n|mode-line-input-method-map|mode-line-modes|mode-line-modified|mode-line-mule-info|mode-line-position|mode-line-process|mode-line-remote|mode-name|mode-specific-map\n|modify-all-frames-parameters|modify-category-entry|modify-frame-parameters|modify-syntax-entry|momentary-string-display|most-negative-fixnum|most-positive-fixnum\n|mouse-1-click-follows-link|mouse-appearance-menu-map|mouse-leave-buffer-hook|mouse-movement-p|mouse-on-link-p|mouse-pixel-position|mouse-position|mouse-position-function\n|mouse-wheel-down-event|mouse-wheel-up-event|move-marker|move-overlay|move-point-visually|move-to-column|move-to-left-margin|move-to-window-line|movemail|mule-keymap\n|multi-query-replace-map|multibyte-char-to-unibyte|multibyte-string-p|multibyte-syntax-as-symbol|multiple-frames|narrow-map|narrow-to-page|narrow-to-region|natnump\n|negative-argument|network-coding-system-alist|network-interface-info|network-interface-list|newline|newline-and-indent|next-button|next-char-property-change\n|next-complete-history-element|next-frame|next-history-element|next-matching-history-element|next-overlay-change|next-property-change|next-screen-context-lines\n|next-single-char-property-change|next-single-property-change|next-window|nlistp|no-byte-compile|no-catch|no-redraw-on-reenter|noninteractive|noreturn\n|normal-auto-fill-function|normal-backup-enable-predicate|normal-mode|not-modified|notifications-close-notification|notifications-get-capabilities\n|notifications-get-server-information|notifications-notify|num-input-keys|num-nonmacro-input-events|number-or-marker-p|number-sequence|number-to-string\n|numberp|obarray|one-window-p|only-global-abbrevs|open-dribble-file|open-network-stream|open-paren-in-column-0-is-defun-start|open-termscript|other-buffer\n|other-window|other-window-scroll-buffer|overflow-newline-into-fringe|overlay-arrow-position|overlay-arrow-string|overlay-arrow-variable-list|overlay-buffer\n|overlay-end|overlay-get|overlay-properties|overlay-put|overlay-recenter|overlay-start|overlayp|overlays-at|overlays-in|overriding-local-map\n|overriding-local-map-menu-flag|overriding-terminal-local-map|overwrite-mode|package-archive-upload-base|package-archives|package-initialize|package-upload-buffer\n|package-upload-file|page-delimiter|paragraph-separate|paragraph-start|parse-colon-path|parse-partial-sexp|parse-sexp-ignore-comments|parse-sexp-lookup-properties\n|path-separator|perform-replace|play-sound|play-sound-file|play-sound-functions|plist-get|plist-member|plist-put|point|point-marker|point-max|point-max-marker\n|point-min|point-min-marker|pop-mark|pop-to-buffer|pop-up-frame-alist|pop-up-frame-function|pop-up-frames|pop-up-windows|pos-visible-in-window-p|position-bytes\n|posix-looking-at|posix-search-backward|posix-search-forward|posix-string-match|posn-actual-col-row|posn-area|posn-at-point|posn-at-x-y|posn-col-row|posn-image\n|posn-object|posn-object-width-height|posn-object-x-y|posn-point|posn-string|posn-timestamp|posn-window|posn-x-y|posnp|post-command-hook|post-gc-hook\n|post-self-insert-hook|pp|pre-command-hook|pre-redisplay-function|preceding-char|prefix-arg|prefix-help-command|prefix-numeric-value|preloaded-file-list\n|prepare-change-group|previous-button|previous-char-property-change|previous-complete-history-element|previous-frame|previous-history-element\n|previous-matching-history-element|previous-overlay-change|previous-property-change|previous-single-char-property-change|previous-single-property-change\n|previous-window|primitive-undo|prin1-to-string|print-circle|print-continuous-numbering|print-escape-multibyte|print-escape-newlines|print-escape-nonascii\n|print-gensym|print-length|print-level|print-number-table|print-quoted|printable-chars|process-adaptive-read-buffering|process-attributes|process-buffer\n|process-coding-system|process-coding-system-alist|process-command|process-connection-type|process-contact|process-datagram-address|process-environment\n|process-exit-status|process-file|process-file-shell-command|process-file-side-effects|process-filter|process-get|process-id|process-kill-buffer-query-function\n|process-lines|process-list|process-live-p|process-mark|process-name|process-plist|process-put|process-query-on-exit-flag|process-running-child-p|process-send-eof\n|process-send-region|process-send-string|process-sentinel|process-status|process-tty-name|process-type|processp|prog-mode|prog-mode-hook|progress-reporter-done\n|progress-reporter-force-update|progress-reporter-update|propertize|provide|provide-theme|pure-bytes-used|purecopy|purify-flag|push-button|push-mark|put\n|put-char-code-property|put-charset-property|put-image|put-text-property|puthash|query-replace-history|query-replace-map|quietly-read-abbrev-file|quit-flag\n|quit-process|quit-restore-window|quit-window|raise-frame|random|rassq|rassq-delete-all|re-builder|re-search-backward|re-search-forward|read|read-buffer\n|read-buffer-completion-ignore-case|read-buffer-function|read-char|read-char-choice|read-char-exclusive|read-circle|read-coding-system|read-color\n|read-command|read-directory-name|read-event|read-expression-history|read-file-modes|read-file-name|read-file-name-completion-ignore-case\n|read-file-name-function|read-from-minibuffer|read-from-string|read-input-method-name|read-kbd-macro|read-key|read-key-sequence|read-key-sequence-vector\n|read-minibuffer|read-no-blanks-input|read-non-nil-coding-system|read-only-mode|read-passwd|read-quoted-char|read-regexp|read-regexp-defaults-function\n|read-shell-command|read-string|read-variable|real-last-command|recent-auto-save-p|recent-keys|recenter|recenter-positions|recenter-redisplay\n|recenter-top-bottom|recursion-depth|recursive-edit|redirect-frame-focus|redisplay|redraw-display|redraw-frame|regexp-history|regexp-opt|regexp-opt-charset\n|regexp-opt-depth|regexp-quote|region-beginning|region-end|register-alist|register-read-with-preview|reindent-then-newline-and-indent|remhash\n|remote-file-name-inhibit-cache|remove|remove-from-invisibility-spec|remove-function|remove-hook|remove-images|remove-list-of-text-properties\n|remove-overlays|remove-text-properties|remq|rename-auto-save-file|rename-buffer|rename-file|replace-buffer-in-windows|replace-match|replace-re-search-function\n|replace-regexp-in-string|replace-search-function|require|require-final-newline|restore-buffer-modified-p|resume-tty|resume-tty-functions|revert-buffer\n|revert-buffer-function|revert-buffer-in-progress-p|revert-buffer-insert-file-contents-function|revert-without-query|right-fringe-width|right-margin-width\n|ring-bell-function|ring-copy|ring-elements|ring-empty-p|ring-insert|ring-insert-at-beginning|ring-length|ring-p|ring-ref|ring-remove|ring-size\n|risky-local-variable-p|rm|round|run-at-time|run-hook-with-args|run-hook-with-args-until-failure|run-hook-with-args-until-success|run-hooks\n|run-mode-hooks|run-with-idle-timer)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)\n(safe-local-eval-forms|safe-local-variable-p|safe-local-variable-values|same-window-buffer-names|same-window-p\n|same-window-regexps|save-abbrevs|save-buffer|save-buffer-coding-system|save-current-buffer|save-excursion|save-match-data|save-restriction\n|save-selected-window|save-some-buffers|save-window-excursion|scalable-fonts-allowed|scan-lists|scan-sexps|scroll-bar-event-ratio|scroll-bar-mode\n|scroll-bar-scale|scroll-bar-width|scroll-conservatively|scroll-down|scroll-down-aggressively|scroll-down-command|scroll-error-top-bottom|scroll-left\n|scroll-margin|scroll-other-window|scroll-preserve-screen-position|scroll-right|scroll-step|scroll-up|scroll-up-aggressively|scroll-up-command\n|search-backward|search-failed|search-forward|search-map|search-spaces-regexp|seconds-to-time|secure-hash|select-frame|select-frame-set-input-focus\n|select-safe-coding-system|select-safe-coding-system-accept-default-p|select-window|selected-frame|selected-window|selection-coding-system\n|selective-display|selective-display-ellipses|self-insert-and-exit|self-insert-command|send-string-to-terminal|sentence-end|sentence-end-double-space\n|sentence-end-without-period|sentence-end-without-space|sequencep|serial-process-configure|serial-term|set-advertised-calling-convention|set-auto-coding\n|set-auto-mode|set-buffer|set-buffer-auto-saved|set-buffer-major-mode|set-buffer-modified-p|set-buffer-multibyte|set-case-syntax|set-case-syntax-delims\n|set-case-syntax-pair|set-case-table|set-category-table|set-char-table-extra-slot|set-char-table-parent|set-char-table-range|set-charset-priority\n|set-coding-system-priority|set-default|set-default-file-modes|set-display-table-slot|set-face-attribute|set-face-background|set-face-bold|set-face-font\n|set-face-foreground|set-face-inverse-video|set-face-italic|set-face-stipple|set-face-underline|set-file-acl|set-file-extended-attributes|set-file-modes\n|set-file-selinux-context|set-file-times|set-fontset-font|set-frame-configuration|set-frame-height|set-frame-parameter|set-frame-position|set-frame-selected-window\n|set-frame-size|set-frame-width|set-fringe-bitmap-face|set-input-method|set-input-mode|set-keyboard-coding-system|set-keymap-parent|set-left-margin|set-mark|set-marker\n|set-marker-insertion-type|set-match-data|set-minibuffer-window|set-mouse-pixel-position|set-mouse-position|set-network-process-option|set-process-buffer\n|set-process-coding-system|set-process-datagram-address|set-process-filter|set-process-plist|set-process-query-on-exit-flag|set-process-sentinel\n|set-register|set-right-margin|set-standard-case-table|set-syntax-table|set-terminal-coding-system|set-terminal-parameter|set-text-properties|set-transient-map\n|set-visited-file-modtime|set-visited-file-name|set-window-buffer|set-window-combination-limit|set-window-configuration|set-window-dedicated-p|set-window-display-table\n|set-window-fringes|set-window-hscroll|set-window-margins|set-window-next-buffers|set-window-parameter|set-window-point|set-window-prev-buffers|set-window-scroll-bars\n|set-window-start|set-window-vscroll|setenv|setplist|setq-default|setq-local|shell-command-history|shell-command-to-string|shell-quote-argument|show-help-function\n|shr-insert-document|shrink-window-if-larger-than-buffer|signal|signal-process|sin|single-key-description|sit-for|site-run-file|skip-chars-backward|skip-chars-forward\n|skip-syntax-backward|skip-syntax-forward|sleep-for|small-temporary-file-directory|smie-bnf->prec2|smie-close-block|smie-config|smie-config-guess|smie-config-local\n|smie-config-save|smie-config-set-indent|smie-config-show-indent|smie-down-list|smie-merge-prec2s|smie-prec2->grammar|smie-precs->prec2|smie-rule-bolp|smie-rule-hanging-p\n|smie-rule-next-p|smie-rule-parent|smie-rule-parent-p|smie-rule-prev-p|smie-rule-separator|smie-rule-sibling-p|smie-setup|Snarf-documentation|sort|sort-columns|sort-fields\n|sort-fold-case|sort-lines|sort-numeric-base|sort-numeric-fields|sort-pages|sort-paragraphs|sort-regexp-fields|sort-subr|special-event-map|special-form-p|special-mode\n|special-variable-p|split-height-threshold|split-string|split-string-and-unquote|split-string-default-separators|split-width-threshold|split-window|split-window-below\n|split-window-keep-point|split-window-preferred-function|split-window-right|split-window-sensibly|sqrt|standard-case-table|standard-category-table|standard-display-table\n|standard-input|standard-output|standard-syntax-table|standard-translation-table-for-decode|standard-translation-table-for-encode|start-file-process\n|start-file-process-shell-command|start-process|start-process-shell-command|stop-process|store-match-data|store-substring|string|string-as-multibyte|string-as-unibyte\n|string-bytes|string-chars-consed|string-equal|string-lessp|string-match|string-match-p|string-or-null-p|string-prefix-p|string-suffix-p|string-to-char|string-to-int\n|string-to-multibyte|string-to-number|string-to-syntax|string-to-unibyte|string-width|string<|string=|stringp|strings-consed|subr-arity|subrp|subst-char-in-region\n|substitute-command-keys|substitute-in-file-name|substitute-key-definition|substring|substring-no-properties|suppress-keymap|suspend-emacs|suspend-frame|suspend-hook\n|suspend-resume-hook|suspend-tty|suspend-tty-functions|switch-to-buffer|switch-to-buffer-other-frame|switch-to-buffer-other-window|switch-to-buffer-preserve-window-point\n|switch-to-next-buffer|switch-to-prev-buffer|switch-to-visible-buffer|sxhash|symbol-file|symbol-function|symbol-name|symbol-plist|symbol-value|symbolp|symbols-consed\n|syntax-after|syntax-begin-function|syntax-class|syntax-ppss|syntax-ppss-flush-cache|syntax-ppss-toplevel-pos|syntax-propertize-extend-region-functions|syntax-propertize-function\n|syntax-table|syntax-table-p|system-configuration|system-groups|system-key-alist|system-messages-locale|system-name|system-time-locale|system-type|system-users|tab-always-indent\n|tab-stop-list|tab-to-tab-stop|tab-width|tabulated-list-entries|tabulated-list-format|tabulated-list-init-header|tabulated-list-mode|tabulated-list-print|tabulated-list-printer\n|tabulated-list-revert-hook|tabulated-list-sort-key|tan|temacs|temp-buffer-setup-hook|temp-buffer-show-function|temp-buffer-show-hook|temp-buffer-window-setup-hook\n|temp-buffer-window-show-hook|temporary-file-directory|term-file-prefix|terminal-coding-system|terminal-list|terminal-live-p|terminal-name|terminal-parameter\n|terminal-parameters|terpri|test-completion|testcover-mark-all|testcover-next-mark|testcover-start|text-char-description|text-mode|text-mode-abbrev-table\n|text-properties-at|text-property-any|text-property-default-nonsticky|text-property-not-all|thing-at-point|this-command|this-command-keys|this-command-keys-shift-translated\n|this-command-keys-vector|this-original-command|three-step-help|time-add|time-less-p|time-subtract|time-to-day-in-year|time-to-days|timer-max-repeats\n|toggle-enable-multibyte-characters|tool-bar-add-item|tool-bar-add-item-from-menu|tool-bar-border|tool-bar-button-margin|tool-bar-button-relief\n|tool-bar-local-item-from-menu|tool-bar-map|top-level|tq-close|tq-create|tq-enqueue|track-mouse|transient-mark-mode|translate-region|translation-table-for-input\n|transpose-regions|truncate|truncate-lines|truncate-partial-width-windows|truncate-string-to-width|try-completion|tty-color-alist|tty-color-approximate|tty-color-clear\n|tty-color-define|tty-color-translate|tty-erase-char|tty-setup-hook|tty-top-frame|type-of|unbury-buffer|undefined|underline-minimum-offset|undo-ask-before-discard\n|undo-boundary|undo-in-progress|undo-limit|undo-outer-limit|undo-strong-limit|unhandled-file-name-directory|unibyte-char-to-multibyte|unibyte-string|unicode-category-table\n|unintern|universal-argument|universal-argument-map|unload-feature|unload-feature-special-hooks|unlock-buffer|unread-command-events|unsafep|up-list|upcase|upcase-initials\n|upcase-region|upcase-word|update-directory-autoloads|update-file-autoloads|use-empty-active-region|use-global-map|use-hard-newlines|use-local-map|use-region-p\n|user-emacs-directory|user-error|user-full-name|user-init-file|user-login-name|user-mail-address|user-real-login-name|user-real-uid|user-uid|values|vc-mode\n|vc-prefix-map|vconcat|vector|vector-cells-consed|vectorp|verify-visited-file-modtime|version-control|vertical-motion|vertical-scroll-bar|view-register\n|visible-bell|visible-frame-list|visited-file-modtime|void-function|void-text-area-pointer|waiting-for-user-input-p|walk-windows|warn|warning-fill-prefix\n|warning-levels|warning-minimum-level|warning-minimum-log-level|warning-prefix-function|warning-series|warning-suppress-log-types|warning-suppress-types\n|warning-type-format|where-is-internal|while-no-input|wholenump|widen|window-absolute-pixel-edges|window-at|window-body-height|window-body-size\n|window-body-width|window-bottom-divider-width|window-buffer|window-child|window-combination-limit|window-combination-resize|window-combined-p\n|window-configuration-change-hook|window-configuration-frame|window-configuration-p|window-current-scroll-bars|window-dedicated-p|window-display-table\n|window-edges|window-end|window-frame|window-fringes|window-full-height-p|window-full-width-p|window-header-line-height|window-hscroll|window-in-direction\n|window-inside-absolute-pixel-edges|window-inside-edges|window-inside-pixel-edges|window-left-child|window-left-column|window-line-height|window-list\n|window-live-p|window-margins|window-min-height|window-min-size|window-min-width|window-minibuffer-p|window-mode-line-height|window-next-buffers\n|window-next-sibling|window-parameter|window-parameters|window-parent|window-persistent-parameters|window-pixel-edges|window-pixel-height\n|window-pixel-left|window-pixel-top|window-pixel-width|window-point|window-point-insertion-type|window-prev-buffers|window-prev-sibling\n|window-resizable|window-resize|window-resize-pixelwise|window-right-divider-width|window-scroll-bar-width|window-scroll-bars|window-scroll-functions\n|window-setup-hook|window-size-change-functions|window-size-fixed|window-start|window-state-get|window-state-put|window-system\n|window-system-initialization-alist|window-text-change-functions|window-text-pixel-size|window-top-child|window-top-line|window-total-height\n|window-total-size|window-total-width|window-tree|window-valid-p|window-vscroll|windowp|with-case-table|with-coding-priority|with-current-buffer\n|with-current-buffer-window|with-demoted-errors|with-eval-after-load|with-help-window|with-local-quit|with-no-warnings|with-output-to-string\n|with-output-to-temp-buffer|with-selected-window|with-syntax-table|with-temp-buffer|with-temp-buffer-window|with-temp-file|with-temp-message\n|with-timeout|word-search-backward|word-search-backward-lax|word-search-forward|word-search-forward-lax|word-search-regexp|words-include-escapes\n|wrap-prefix|write-abbrev-file|write-char|write-contents-functions|write-file|write-file-functions|write-region|write-region-annotate-functions\n|write-region-post-annotation-function|wrong-number-of-arguments|wrong-type-argument|x-alt-keysym|x-alternatives-map|x-bitmap-file-path\n|x-close-connection|x-color-defined-p|x-color-values|x-defined-colors|x-display-color-p|x-display-list|x-dnd-known-types|x-dnd-test-function\n|x-dnd-types-alist|x-family-fonts|x-get-resource|x-get-selection|x-hyper-keysym|x-list-fonts|x-meta-keysym|x-open-connection|x-parse-geometry\n|x-pointer-shape|x-popup-dialog|x-popup-menu|x-resource-class|x-resource-name|x-sensitive-text-pointer-shape|x-server-vendor|x-server-version\n|x-set-selection|x-setup-function-keys|x-super-keysym|y-or-n-p|y-or-n-p-with-timeout|yank|yank-excluded-properties|yank-handled-properties\n|yank-pop|yank-undo-function|yes-or-no-p|zerop|zlib-available-p|zlib-decompress-region)\n(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nmocha--other-js2-imenu-function|mocha-command|mocha-debug-port|mocha-debuggers|mocha-debugger|mocha-environment-variables|mocha-imenu-functions\n|mocha-options|mocha-project-test-directory|mocha-reporter|mocha-test-definition-nodes|mocha-which-node|node-error-regexp-alist|node-error-regexp)\n(?=[\\s()]|$)",name:"support.variable.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ndefine-modify-macro|define-setf-method|defsetf|eval-when-compile|flet|labels|lexical-let\\*?|\n\ncl-(?:acons|adjoin|assert|assoc|assoc-if|assoc-if-not|block|caddr|callf|callf2|case|ceiling|check-type|coerce\n|compiler-macroexpand|concatenate|copy-list|count|count-if|count-if-not|decf|declaim|declare|define-compiler-macro\n|defmacro|defstruct|defsubst|deftype|defun|delete|delete-duplicates|delete-if|delete-if-not|destructuring-bind\n|do\\*?|do-all-symbols|do-symbols|dolist|dotimes|ecase|endp|equalp|etypecase|eval-when|evenp|every|fill|find|find-if\n|find-if-not|first|flet|float-limits|floor|function|gcd|gensym|gentemp|getf?|incf|intersection|isqrt|labels\n|lcm|ldiff|letf\\*?|list\\*|list-length|load-time-value|locally|loop|macrolet|make-random-state|map|mapc|mapcan\n|mapcar|mapcon|mapl|maplist|member|member-if|member-if-not|merge|minusp|mismatch|mod|multiple-value-bind\n|multiple-value-setq|nintersection|notany|notevery|nset-difference|nset-exclusive-or|nsublis|nsubst|nsubst-if\n|nsubst-if-not|nsubstitute|nsubstitute-if|nsubstitute-if-not|nunion|oddp|pairlis|plusp|position|position-if\n|position-if-not|prettyexpand|proclaim|progv|psetf|psetq|pushnew|random|random-state-p|rassoc|rassoc-if|rassoc-if-not\n|reduce|remf?|remove|remove-duplicates|remove-if|remove-if-not|remprop|replace|rest|return|return-from|rotatef\n|round|search|set-difference|set-exclusive-or|shiftf|some|sort|stable-sort|sublis|subseq|subsetp|subst|subst-if\n|subst-if-not|substitute|substitute-if|substitute-if-not|symbol-macrolet|tagbody|tailp|the|tree-equal|truncate\n|typecase|typep|union)\n)(?=[\\s()]|$)",name:"support.function.cl-lib.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\n\\*table--cell-backward-kill-paragraph|\\*table--cell-backward-kill-sentence|\\*table--cell-backward-kill-sexp|\\*table--cell-backward-kill-word\n|\\*table--cell-backward-paragraph|\\*table--cell-backward-sentence|\\*table--cell-backward-word|\\*table--cell-beginning-of-buffer\n|\\*table--cell-beginning-of-line|\\*table--cell-center-line|\\*table--cell-center-paragraph|\\*table--cell-center-region|\\*table--cell-clipboard-yank\n|\\*table--cell-copy-region-as-kill|\\*table--cell-dabbrev-completion|\\*table--cell-dabbrev-expand|\\*table--cell-delete-backward-char\n|\\*table--cell-delete-char|\\*table--cell-delete-region|\\*table--cell-describe-bindings|\\*table--cell-describe-mode|\\*table--cell-end-of-buffer\n|\\*table--cell-end-of-line|\\*table--cell-fill-paragraph|\\*table--cell-forward-paragraph|\\*table--cell-forward-sentence|\\*table--cell-forward-word\n|\\*table--cell-insert|\\*table--cell-kill-line|\\*table--cell-kill-paragraph|\\*table--cell-kill-region|\\*table--cell-kill-ring-save\n|\\*table--cell-kill-sentence|\\*table--cell-kill-sexp|\\*table--cell-kill-word|\\*table--cell-move-beginning-of-line|\\*table--cell-move-end-of-line\n|\\*table--cell-newline-and-indent|\\*table--cell-newline|\\*table--cell-open-line|\\*table--cell-quoted-insert|\\*table--cell-self-insert-command\n|\\*table--cell-yank-clipboard-selection|\\*table--cell-yank|\\*table--present-cell-popup-menu|-cvs-create-fileinfo--cmacro|-cvs-create-fileinfo\n|-cvs-flags-make--cmacro|-cvs-flags-make|1\\+|1-|1value|2C-associate-buffer|2C-associated-buffer|2C-autoscroll|2C-command|2C-dissociate\n|2C-enlarge-window-horizontally|2C-merge|2C-mode|2C-newline|2C-other|2C-shrink-window-horizontally|2C-split|2C-toggle-autoscroll\n|2C-two-columns|5x5-bol|5x5-cell|5x5-copy-grid|5x5-crack-mutating-best|5x5-crack-mutating-current|5x5-crack-randomly|5x5-crack-xor-mutate\n|5x5-crack|5x5-defvar-local|5x5-down|5x5-draw-grid-end|5x5-draw-grid|5x5-eol|5x5-first|5x5-flip-cell|5x5-flip-current|5x5-grid-to-vec\n|5x5-grid-value|5x5-last|5x5-left|5x5-log-init|5x5-log|5x5-made-move|5x5-make-move|5x5-make-mutate-best|5x5-make-mutate-current|5x5-make-new-grid\n|5x5-make-random-grid|5x5-make-random-solution|5x5-make-xor-with-mutation|5x5-mode-menu|5x5-mode|5x5-mutate-solution|5x5-new-game\n|5x5-play-solution|5x5-position-cursor|5x5-quit-game|5x5-randomize|5x5-right|5x5-row-value|5x5-set-cell|5x5-solve-rotate-left|5x5-solve-rotate-right\n|5x5-solve-suggest|5x5-solver|5x5-up|5x5-vec-to-grid|5x5-xor|5x5-y-or-n-p|5x5|Buffer-menu--pretty-file-name|Buffer-menu--pretty-name\n|Buffer-menu--unmark|Buffer-menu-1-window|Buffer-menu-2-window|Buffer-menu-backup-unmark|Buffer-menu-beginning|Buffer-menu-buffer\n|Buffer-menu-bury|Buffer-menu-delete-backwards|Buffer-menu-delete|Buffer-menu-execute|Buffer-menu-info-node-description|Buffer-menu-isearch-buffers-regexp\n|Buffer-menu-isearch-buffers|Buffer-menu-mark|Buffer-menu-marked-buffers|Buffer-menu-mode|Buffer-menu-mouse-select|Buffer-menu-multi-occur\n|Buffer-menu-no-header|Buffer-menu-not-modified|Buffer-menu-other-window|Buffer-menu-save|Buffer-menu-select|Buffer-menu-sort|Buffer-menu-switch-other-window\n|Buffer-menu-this-window|Buffer-menu-toggle-files-only|Buffer-menu-toggle-read-only|Buffer-menu-unmark|Buffer-menu-view-other-window\n|Buffer-menu-view|Buffer-menu-visit-tags-table|Control-X-prefix|Custom-buffer-done|Custom-goto-parent|Custom-help|Custom-mode-menu\n|Custom-mode|Custom-newline|Custom-no-edit|Custom-reset-current|Custom-reset-saved|Custom-reset-standard|Custom-save|Custom-set|Electric-buffer-menu-exit\n|Electric-buffer-menu-mode-view-buffer|Electric-buffer-menu-mode|Electric-buffer-menu-mouse-select|Electric-buffer-menu-quit\n|Electric-buffer-menu-select|Electric-buffer-menu-undefined|Electric-command-history-redo-expression|Electric-command-loop|Electric-pop-up-window\n|Footnote-add-footnote|Footnote-assoc-index|Footnote-back-to-message|Footnote-current-regexp|Footnote-cycle-style|Footnote-delete-footnote\n|Footnote-english-lower|Footnote-english-upper|Footnote-goto-char-point-max|Footnote-goto-footnote|Footnote-index-to-string|Footnote-insert-footnote\n|Footnote-insert-numbered-footnote|Footnote-insert-pointer-marker|Footnote-insert-text-marker|Footnote-latin|Footnote-make-hole\n|Footnote-narrow-to-footnotes|Footnote-numeric|Footnote-refresh-footnotes|Footnote-renumber-footnotes|Footnote-renumber|Footnote-roman-common\n|Footnote-roman-lower|Footnote-roman-upper|Footnote-set-style|Footnote-sort|Footnote-style-p|Footnote-text-under-cursor|Footnote-under-cursor\n|Footnote-unicode|Info--search-loop|Info-apropos-find-file|Info-apropos-find-node|Info-apropos-matches|Info-apropos-toc-nodes|Info-backward-node\n|Info-bookmark-jump|Info-bookmark-make-record|Info-breadcrumbs|Info-build-node-completions-1|Info-build-node-completions|Info-cease-edit\n|Info-check-pointer|Info-clone-buffer|Info-complete-menu-item|Info-copy-current-node-name|Info-default-dirs|Info-desktop-buffer-misc-data\n|Info-dir-remove-duplicates|Info-directory-find-file|Info-directory-find-node|Info-directory-toc-nodes|Info-directory|Info-display-images-node\n|Info-edit-mode|Info-edit|Info-exit|Info-extract-menu-counting|Info-extract-menu-item|Info-extract-menu-node-name|Info-extract-pointer\n|Info-file-supports-index-cookies|Info-final-node|Info-find-emacs-command-nodes|Info-find-file|Info-find-in-tag-table-1|Info-find-in-tag-table\n|Info-find-index-name|Info-find-node-2|Info-find-node-in-buffer-1|Info-find-node-in-buffer|Info-find-node|Info-finder-find-file\n|Info-finder-find-node|Info-follow-nearest-node|Info-follow-reference|Info-following-node-name-re|Info-following-node-name|Info-fontify-node\n|Info-forward-node|Info-get-token|Info-goto-emacs-command-node|Info-goto-emacs-key-command-node|Info-goto-index|Info-goto-node\n|Info-help|Info-hide-cookies-node|Info-history-back|Info-history-find-file|Info-history-find-node|Info-history-forward|Info-history-toc-nodes\n|Info-history|Info-index-next|Info-index-node|Info-index-nodes|Info-index|Info-insert-dir|Info-install-speedbar-variables|Info-isearch-end\n|Info-isearch-filter|Info-isearch-pop-state|Info-isearch-push-state|Info-isearch-search|Info-isearch-start|Info-isearch-wrap|Info-kill-buffer\n|Info-last-menu-item|Info-last-preorder|Info-last|Info-menu-update|Info-menu|Info-mode-menu|Info-mode|Info-mouse-follow-link|Info-mouse-follow-nearest-node\n|Info-mouse-scroll-down|Info-mouse-scroll-up|Info-next-menu-item|Info-next-preorder|Info-next-reference-or-link|Info-next-reference\n|Info-next|Info-no-error|Info-node-at-bob-matching|Info-nth-menu-item|Info-on-current-buffer|Info-prev-reference-or-link|Info-prev-reference\n|Info-prev|Info-read-node-name-1|Info-read-node-name-2|Info-read-node-name|Info-read-subfile|Info-restore-desktop-buffer|Info-restore-point\n|Info-revert-buffer-function|Info-revert-find-node|Info-scroll-down|Info-scroll-up|Info-search-backward|Info-search-case-sensitively\n|Info-search-next|Info-search|Info-select-node|Info-set-mode-line|Info-speedbar-browser|Info-speedbar-buttons|Info-speedbar-expand-node\n|Info-speedbar-fetch-file-nodes|Info-speedbar-goto-node|Info-speedbar-hierarchy-buttons|Info-split-parameter-string|Info-split\n|Info-summary|Info-tagify|Info-toc-build|Info-toc-find-node|Info-toc-insert|Info-toc-nodes|Info-toc|Info-top-node|Info-try-follow-nearest-node\n|Info-undefined|Info-unescape-quotes|Info-up|Info-validate-node-name|Info-validate-tags-table|Info-validate|Info-virtual-call|Info-virtual-file-p\n|Info-virtual-fun|Info-virtual-index-find-node|Info-virtual-index|LaTeX-mode|Man-bgproc-filter|Man-bgproc-sentinel|Man-bookmark-jump\n|Man-bookmark-make-record|Man-build-man-command|Man-build-page-list|Man-build-references-alist|Man-build-section-alist|Man-cleanup-manpage\n|Man-completion-table|Man-default-bookmark-title|Man-default-man-entry|Man-find-section|Man-follow-manual-reference|Man-fontify-manpage\n|Man-getpage-in-background|Man-goto-page|Man-goto-section|Man-goto-see-also-section|Man-highlight-references|Man-highlight-references0\n|Man-init-defvars|Man-kill|Man-make-page-mode-string|Man-mode|Man-next-manpage|Man-next-section|Man-notify-when-ready|Man-page-from-arguments\n|Man-parse-man-k|Man-possibly-hyphenated-word|Man-previous-manpage|Man-previous-section|Man-quit|Man-softhyphen-to-minus|Man-start-calling\n|Man-strip-page-headers|Man-support-local-filenames|Man-translate-cleanup|Man-translate-references|Man-unindent|Man-update-manpage\n|Man-view-header-file|Man-xref-button-action|Math-anglep|Math-bignum-test|Math-equal-int|Math-equal|Math-integer-neg|Math-integer-negp\n|Math-integer-posp|Math-integerp|Math-lessp|Math-looks-negp|Math-messy-integerp|Math-natnum-lessp|Math-natnump|Math-negp|Math-num-integerp\n|Math-numberp|Math-objectp|Math-objvecp|Math-posp|Math-primp|Math-ratp|Math-realp|Math-scalarp|Math-vectorp|Math-zerop|TeX-mode|View-back-to-mark\n|View-exit-and-edit|View-exit|View-goto-line|View-goto-percent|View-kill-and-leave|View-leave|View-quit-all|View-quit|View-revert-buffer-scroll-page-forward\n|View-scroll-half-page-backward|View-scroll-half-page-forward|View-scroll-line-backward|View-scroll-line-forward|View-scroll-page-backward-set-page-size\n|View-scroll-page-backward|View-scroll-page-forward-set-page-size|View-scroll-page-forward|View-scroll-to-buffer-end|View-search-last-regexp-backward\n|View-search-last-regexp-forward|View-search-regexp-backward|View-search-regexp-forward|WoMan-find-buffer|WoMan-getpage-in-background\n|WoMan-log-1|WoMan-log-begin|WoMan-log-end|WoMan-log|WoMan-next-manpage|WoMan-previous-manpage|WoMan-warn-ignored|WoMan-warn|abbrev--active-tables\n|abbrev--before-point|abbrev--check-chars|abbrev--default-expand|abbrev--describe|abbrev--symbol|abbrev--write|abbrev-edit-save-buffer\n|abbrev-edit-save-to-file|abbrev-mode|abbrev-table-empty-p|abbrev-table-menu|abbrev-table-name|abort-if-file-too-large|about-emacs\n|accelerate-menu|accept-completion|acons|activate-input-method|activate-mark|activate-mode-local-bindings|ad--defalias-fset|ad--make-advised-docstring\n|ad-Advice-c-backward-sws|ad-Advice-c-beginning-of-macro|ad-Advice-c-forward-sws|ad-Advice-save-place-find-file-hook|ad-access-argument\n|ad-activate-advised-definition|ad-activate-all|ad-activate-internal|ad-activate-on|ad-activate-regexp|ad-activate|ad-add-advice\n|ad-advice-definition|ad-advice-enabled|ad-advice-name|ad-advice-p|ad-advice-position|ad-advice-protected|ad-advice-set-enabled\n|ad-advised-arglist|ad-advised-interactive-form|ad-arg-binding-field|ad-arglist|ad-assemble-advised-definition|ad-body-forms|ad-cache-id-verification-code\n|ad-class-p|ad-clear-advicefunname-definition|ad-clear-cache|ad-compile-function|ad-compiled-code|ad-compiled-p|ad-copy-advice-info\n|ad-deactivate-all|ad-deactivate-regexp|ad-deactivate|ad-definition-type|ad-disable-advice|ad-disable-regexp|ad-do-advised-functions\n|ad-docstring|ad-element-access|ad-enable-advice-internal|ad-enable-advice|ad-enable-regexp-internal|ad-enable-regexp|ad-find-advice\n|ad-find-some-advice|ad-get-advice-info-field|ad-get-advice-info-macro|ad-get-advice-info|ad-get-argument|ad-get-arguments|ad-get-cache-class-id\n|ad-get-cache-definition|ad-get-cache-id|ad-get-enabled-advices|ad-get-orig-definition|ad-has-any-advice|ad-has-enabled-advice\n|ad-has-proper-definition|ad-has-redefining-advice|ad-initialize-advice-info|ad-insert-argument-access-forms|ad-interactive-form\n|ad-is-active|ad-is-advised|ad-is-compilable|ad-lambda-expression|ad-lambda-p|ad-lambdafy|ad-list-access|ad-macrofy|ad-make-advice\n|ad-make-advicefunname|ad-make-advised-definition|ad-make-cache-id|ad-make-hook-form|ad-make-single-advice-docstring|ad-map-arglists\n|ad-name-p|ad-parse-arglist|ad-pop-advised-function|ad-position-p|ad-preactivate-advice|ad-pushnew-advised-function|ad-read-advice-class\n|ad-read-advice-name|ad-read-advice-specification|ad-read-advised-function|ad-read-regexp|ad-real-definition|ad-real-orig-definition\n|ad-recover-all|ad-recover-normality|ad-recover|ad-remove-advice|ad-retrieve-args-form|ad-set-advice-info-field|ad-set-advice-info\n|ad-set-argument|ad-set-arguments|ad-set-cache|ad-should-compile|ad-substitute-tree|ad-unadvise-all|ad-unadvise|ad-update-all|ad-update-regexp\n|ad-update|ad-verify-cache-class-id|ad-verify-cache-id|ad-with-originals|ada-activate-keys-for-case|ada-add-extensions|ada-adjust-case-buffer\n|ada-adjust-case-identifier|ada-adjust-case-interactive|ada-adjust-case-region|ada-adjust-case-skeleton|ada-adjust-case-substring\n|ada-adjust-case|ada-after-keyword-p|ada-array|ada-batch-reformat|ada-call-from-contextual-menu|ada-capitalize-word|ada-case-read-exceptions-from-file\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nada-case-read-exceptions|ada-case|ada-change-prj|ada-check-current|ada-check-defun-name|ada-check-matching-start|ada-compile-application\n|ada-compile-current|ada-compile-goto-error|ada-compile-mouse-goto-error|ada-complete-identifier|ada-contextual-menu|ada-create-case-exception-substring\n|ada-create-case-exception|ada-create-keymap|ada-create-menu|ada-customize|ada-declare-block|ada-else|ada-elsif|ada-exception-block\n|ada-exception|ada-exit|ada-ff-other-window|ada-fill-comment-paragraph-justify|ada-fill-comment-paragraph-postfix|ada-fill-comment-paragraph\n|ada-find-any-references|ada-find-file|ada-find-local-references|ada-find-references|ada-find-src-file-in-dir|ada-for-loop|ada-format-paramlist\n|ada-function-spec|ada-gdb-application|ada-gen-treat-proc|ada-get-body-name|ada-get-current-indent|ada-get-indent-block-label|ada-get-indent-block-start\n|ada-get-indent-case|ada-get-indent-end|ada-get-indent-goto-label|ada-get-indent-if|ada-get-indent-loop|ada-get-indent-nochange\n|ada-get-indent-noindent|ada-get-indent-open-paren|ada-get-indent-paramlist|ada-get-indent-subprog|ada-get-indent-type|ada-get-indent-when\n|ada-gnat-style|ada-goto-decl-start|ada-goto-declaration-other-frame|ada-goto-declaration|ada-goto-matching-end|ada-goto-matching-start\n|ada-goto-next-non-ws|ada-goto-next-word|ada-goto-parent|ada-goto-previous-word|ada-goto-stmt-end|ada-goto-stmt-start|ada-header\n|ada-if|ada-in-comment-p|ada-in-decl-p|ada-in-numeric-literal-p|ada-in-open-paren-p|ada-in-paramlist-p|ada-in-string-or-comment-p\n|ada-in-string-p|ada-indent-current-function|ada-indent-current|ada-indent-newline-indent-conditional|ada-indent-newline-indent\n|ada-indent-on-previous-lines|ada-indent-region|ada-insert-paramlist|ada-justified-indent-current|ada-looking-at-semi-or|ada-looking-at-semi-private\n|ada-loop|ada-loose-case-word|ada-make-body-gnatstub|ada-make-body|ada-make-filename-from-adaname|ada-make-subprogram-body|ada-mode-menu\n|ada-mode-version|ada-mode|ada-move-to-end|ada-move-to-start|ada-narrow-to-defun|ada-next-package|ada-next-procedure|ada-no-auto-case\n|ada-other-file-name|ada-outline-level|ada-package-body|ada-package-spec|ada-point-and-xref|ada-popup-menu|ada-previous-package\n|ada-previous-procedure|ada-private|ada-prj-edit|ada-prj-new|ada-prj-save|ada-procedure-spec|ada-record|ada-region-selected|ada-remove-trailing-spaces\n|ada-reread-prj-file|ada-run-application|ada-save-exceptions-to-file|ada-scan-paramlist|ada-search-ignore-complex-boolean|ada-search-ignore-string-comment\n|ada-search-prev-end-stmt|ada-set-default-project-file|ada-set-main-compile-application|ada-set-point-accordingly|ada-show-current-main\n|ada-subprogram-body|ada-subtype|ada-tab-hard|ada-tab|ada-tabsize|ada-task-body|ada-task-spec|ada-type|ada-uncomment-region|ada-untab-hard\n|ada-untab|ada-use|ada-when|ada-which-function-are-we-in|ada-which-function|ada-while-loop|ada-with|ada-xref-goto-previous-reference\n|add-abbrev|add-change-log-entry-other-window|add-change-log-entry|add-completion-to-head|add-completion-to-tail-if-new|add-completion\n|add-completions-from-buffer|add-completions-from-c-buffer|add-completions-from-file|add-completions-from-lisp-buffer|add-completions-from-tags-table\n|add-dir-local-variable|add-file-local-variable-prop-line|add-file-local-variable|add-global-abbrev|add-log-current-defun|add-log-edit-next-comment\n|add-log-edit-prev-comment|add-log-file-name|add-log-iso8601-time-string|add-log-iso8601-time-zone|add-log-tcl-defun|add-minor-mode\n|add-mode-abbrev|add-new-page|add-permanent-completion|add-submenu|add-timeout|add-to-coding-system-list|add-to-list--anon-cmacro\n|addbib|adjoin|advertised-undo|advertised-widget-backward|advertised-xscheme-send-previous-expression|advice--add-function|advice--buffer-local\n|advice--called-interactively-skip|advice--car|advice--cd\\*r|advice--cdr|advice--defalias-fset|advice--interactive-form|advice--make-1\n|advice--make-docstring|advice--make-interactive-form|advice--make|advice--member-p|advice--normalize-place|advice--normalize|advice--p\n|advice--props|advice--remove-function|advice--set-buffer-local|advice--strip-macro|advice--subst-main|advice--symbol-function\n|advice--tweak|after-insert-file-set-coding|align--set-marker|align-adjust-col-for-rule|align-areas|align-column|align-current|align-entire\n|align-highlight-rule|align-match-tex-pattern|align-new-section-p|align-newline-and-indent|align-regexp|align-region|align-regions\n|align-set-vhdl-rules|align-unhighlight-rule|align|alist-get|allout-aberrant-container-p|allout-add-resumptions|allout-adjust-file-variable\n|allout-after-saves-handler|allout-annotate-hidden|allout-ascend-to-depth|allout-ascend|allout-auto-activation-helper|allout-auto-fill\n|allout-back-to-current-heading|allout-back-to-heading|allout-back-to-visible-text|allout-backward-current-level|allout-before-change-handler\n|allout-beginning-of-current-entry|allout-beginning-of-current-line|allout-beginning-of-level|allout-beginning-of-line|allout-body-modification-handler\n|allout-bullet-for-depth|allout-bullet-isearch|allout-called-interactively-p|allout-chart-exposure-contour-by-icon|allout-chart-siblings\n|allout-chart-subtree|allout-chart-to-reveal|allout-compose-and-institute-keymap|allout-copy-exposed-to-buffer|allout-copy-line-as-kill\n|allout-copy-topic-as-kill|allout-current-bullet-pos|allout-current-bullet|allout-current-decorated-p|allout-current-depth|allout-current-topic-collapsed-p\n|allout-deannotate-hidden|allout-decorate-item-and-context|allout-decorate-item-body|allout-decorate-item-cue|allout-decorate-item-guides\n|allout-decorate-item-icon|allout-decorate-item-span|allout-depth|allout-descend-to-depth|allout-distinctive-bullet|allout-do-doublecheck\n|allout-do-resumptions|allout-e-o-prefix-p|allout-elapsed-time-seconds|allout-encrypt-decrypted|allout-encrypt-string|allout-encrypted-topic-p\n|allout-encrypted-type-prefix|allout-end-of-current-heading|allout-end-of-current-line|allout-end-of-current-subtree|allout-end-of-entry\n|allout-end-of-heading|allout-end-of-level|allout-end-of-line|allout-end-of-prefix|allout-end-of-subtree|allout-expose-topic|allout-fetch-icon-image\n|allout-file-vars-section-data|allout-find-file-hook|allout-find-image|allout-flag-current-subtree|allout-flag-region|allout-flatten-exposed-to-buffer\n|allout-flatten|allout-format-quote|allout-forward-current-level|allout-frame-property|allout-get-body-text|allout-get-bullet|allout-get-configvar-values\n|allout-get-current-prefix|allout-get-invisibility-overlay|allout-get-item-widget|allout-get-or-create-item-widget|allout-get-or-create-parent-widget\n|allout-get-prefix-bullet|allout-goto-prefix-doublechecked|allout-goto-prefix|allout-graphics-modification-handler|allout-hidden-p\n|allout-hide-bodies|allout-hide-by-annotation|allout-hide-current-entry|allout-hide-current-leaves|allout-hide-current-subtree\n|allout-hide-region-body|allout-hotspot-key-handler|allout-indented-exposed-to-buffer|allout-infer-body-reindent|allout-infer-header-lead-and-primary-bullet\n|allout-infer-header-lead|allout-inhibit-auto-save-info-for-decryption|allout-init|allout-insert-latex-header|allout-insert-latex-trailer\n|allout-insert-listified|allout-institute-keymap|allout-isearch-end-handler|allout-item-actual-position|allout-item-element-span-is\n|allout-item-icon-key-handler|allout-item-location|allout-item-span|allout-kill-line|allout-kill-topic|allout-latex-verb-quote\n|allout-latex-verbatim-quote-curr-line|allout-latexify-exposed|allout-latexify-one-item|allout-lead-with-comment-string|allout-listify-exposed\n|allout-make-topic-prefix|allout-mark-active-p|allout-mark-marker|allout-mark-topic|allout-maybe-resume-auto-save-info-after-encryption\n|allout-minor-mode|allout-mode-map|allout-mode-p|allout-mode|allout-new-exposure|allout-new-item-widget|allout-next-heading|allout-next-sibling-leap\n|allout-next-sibling|allout-next-single-char-property-change|allout-next-topic-pending-encryption|allout-next-visible-heading\n|allout-number-siblings|allout-numbered-type-prefix|allout-old-expose-topic|allout-on-current-heading-p|allout-on-heading-p|allout-open-sibtopic\n|allout-open-subtopic|allout-open-supertopic|allout-open-topic|allout-overlay-insert-in-front-handler|allout-overlay-interior-modification-handler\n|allout-overlay-preparations|allout-parse-item-at-point|allout-post-command-business|allout-pre-command-business|allout-pre-next-prefix\n|allout-prefix-data|allout-previous-heading|allout-previous-sibling|allout-previous-single-char-property-change|allout-previous-visible-heading\n|allout-process-exposed|allout-range-overlaps|allout-rebullet-current-heading|allout-rebullet-heading|allout-rebullet-topic-grunt\n|allout-rebullet-topic|allout-recent-bullet|allout-recent-depth|allout-recent-prefix|allout-redecorate-item|allout-redecorate-visible-subtree\n|allout-region-active-p|allout-reindent-body|allout-renumber-to-depth|allout-reset-header-lead|allout-resolve-xref|allout-run-unit-tests\n|allout-select-safe-coding-system|allout-set-boundary-marker|allout-setup-menubar|allout-setup-text-properties|allout-setup|allout-shift-in\n|allout-shift-out|allout-show-all|allout-show-children|allout-show-current-branches|allout-show-current-entry|allout-show-current-subtree\n|allout-show-entry|allout-show-to-offshoot|allout-sibling-index|allout-snug-back|allout-solicit-alternate-bullet|allout-stringify-flat-index-indented\n|allout-stringify-flat-index-plain|allout-stringify-flat-index|allout-substring-no-properties|allout-test-range-overlaps|allout-test-resumptions\n|allout-tests-obliterate-variable|allout-this-or-next-heading|allout-toggle-current-subtree-encryption|allout-toggle-current-subtree-exposure\n|allout-toggle-subtree-encryption|allout-topic-flat-index|allout-unload-function|allout-unprotected|allout-up-current-level|allout-version\n|allout-widgetize-buffer|allout-widgets-additions-processor|allout-widgets-additions-recorder|allout-widgets-adjusting-message\n|allout-widgets-after-change-handler|allout-widgets-after-copy-or-kill-function|allout-widgets-after-undo-function|allout-widgets-before-change-handler\n|allout-widgets-changes-dispatcher|allout-widgets-copy-list|allout-widgets-count-buttons-in-region|allout-widgets-deletions-processor\n|allout-widgets-deletions-recorder|allout-widgets-exposure-change-processor|allout-widgets-exposure-change-recorder|allout-widgets-exposure-undo-processor\n|allout-widgets-exposure-undo-recorder|allout-widgets-hook-error-handler|allout-widgets-mode-disable|allout-widgets-mode-enable\n|allout-widgets-mode-off|allout-widgets-mode-on|allout-widgets-mode|allout-widgets-post-command-business|allout-widgets-pre-command-business\n|allout-widgets-prepopulate-buffer|allout-widgets-run-unit-tests|allout-widgets-setup|allout-widgets-shifts-processor|allout-widgets-shifts-recorder\n|allout-widgets-tally-string|allout-widgets-undecorate-item|allout-widgets-undecorate-region|allout-widgets-undecorate-text|allout-widgets-version\n|allout-write-contents-hook-handler|allout-yank-pop|allout-yank-processing|allout-yank|alter-text-property|ange-ftp-abbreviate-filename\n|ange-ftp-add-bs2000-host|ange-ftp-add-bs2000-posix-host|ange-ftp-add-cms-host|ange-ftp-add-dl-dir|ange-ftp-add-dumb-unix-host\n|ange-ftp-add-file-entry|ange-ftp-add-mts-host|ange-ftp-add-vms-host|ange-ftp-allow-child-lookup|ange-ftp-barf-if-not-directory\n|ange-ftp-barf-or-query-if-file-exists|ange-ftp-binary-file|ange-ftp-bs2000-cd-to-posix|ange-ftp-bs2000-host|ange-ftp-bs2000-posix-host\n|ange-ftp-call-chmod|ange-ftp-call-cont|ange-ftp-canonize-filename|ange-ftp-cd|ange-ftp-cf1|ange-ftp-cf2|ange-ftp-chase-symlinks\n|ange-ftp-cms-host|ange-ftp-cms-make-compressed-filename|ange-ftp-completion-hook-function|ange-ftp-compress|ange-ftp-copy-file-internal\n|ange-ftp-copy-file|ange-ftp-copy-files-async|ange-ftp-del-tmp-name|ange-ftp-delete-directory|ange-ftp-delete-file-entry|ange-ftp-delete-file\n|ange-ftp-directory-file-name|ange-ftp-directory-files-and-attributes|ange-ftp-directory-files|ange-ftp-dired-compress-file|ange-ftp-dired-uncache\n|ange-ftp-dl-parser|ange-ftp-dumb-unix-host|ange-ftp-error|ange-ftp-expand-dir|ange-ftp-expand-file-name|ange-ftp-expand-symlink\n|ange-ftp-file-attributes|ange-ftp-file-directory-p|ange-ftp-file-entry-not-ignored-p|ange-ftp-file-entry-p|ange-ftp-file-executable-p\n|ange-ftp-file-exists-p|ange-ftp-file-local-copy|ange-ftp-file-modtime|ange-ftp-file-name-all-completions|ange-ftp-file-name-as-directory\n|ange-ftp-file-name-completion-1|ange-ftp-file-name-completion|ange-ftp-file-name-directory|ange-ftp-file-name-nondirectory|ange-ftp-file-name-sans-versions\n)(?=[\\s()]|$)"},{match:"(?x)(?<=[()]|^)(?:\nange-ftp-file-newer-than-file-p|ange-ftp-file-readable-p|ange-ftp-file-remote-p|ange-ftp-file-size|ange-ftp-file-symlink-p|ange-ftp-file-writable-p\n|ange-ftp-find-backup-file-name|ange-ftp-fix-dir-name-for-bs2000|ange-ftp-fix-dir-name-for-cms|ange-ftp-fix-dir-name-for-mts\n|ange-ftp-fix-dir-name-for-vms|ange-ftp-fix-name-for-bs2000|ange-ftp-fix-name-for-cms|ange-ftp-fix-name-for-mts|ange-ftp-fix-name-for-vms\n|ange-ftp-ftp-name-component|ange-ftp-ftp-name|ange-ftp-ftp-process-buffer|ange-ftp-generate-passwd-key|ange-ftp-generate-root-prefixes\n|ange-ftp-get-account|ange-ftp-get-file-entry|ange-ftp-get-file-part|ange-ftp-get-files|ange-ftp-get-host-with-passwd|ange-ftp-get-passwd\n|ange-ftp-get-process|ange-ftp-get-pwd|ange-ftp-get-user|ange-ftp-guess-hash-mark-size|ange-ftp-guess-host-type|ange-ftp-gwp-filter\n|ange-ftp-gwp-sentinel|ange-ftp-gwp-start|ange-ftp-hash-entry-exists-p|ange-ftp-hash-table-keys|ange-ftp-hook-function|ange-ftp-host-type\n|ange-ftp-ignore-errors-if-non-essential|ange-ftp-insert-directory|ange-ftp-insert-file-contents|ange-ftp-internal-add-file-entry\n|ange-ftp-internal-delete-file-entry|ange-ftp-kill-ftp-process|ange-ftp-load|ange-ftp-lookup-passwd|ange-ftp-ls-parser|ange-ftp-ls\n|ange-ftp-make-directory|ange-ftp-make-tmp-name|ange-ftp-message|ange-ftp-mts-host|ange-ftp-normal-login|ange-ftp-nslookup-host\n|ange-ftp-parse-bs2000-filename|ange-ftp-parse-bs2000-listing|ange-ftp-parse-cms-listing|ange-ftp-parse-dired-listing|ange-ftp-parse-filename\n|ange-ftp-parse-mts-listing|ange-ftp-parse-netrc-group|ange-ftp-parse-netrc-token|ange-ftp-parse-netrc|ange-ftp-parse-vms-filename\n|ange-ftp-parse-vms-listing|ange-ftp-passive-mode|ange-ftp-process-file|ange-ftp-process-filter|ange-ftp-process-handle-hash|ange-ftp-process-handle-line\n|ange-ftp-process-sentinel|ange-ftp-quote-string|ange-ftp-raw-send-cmd|ange-ftp-re-read-dir|ange-ftp-real-backup-buffer|ange-ftp-real-copy-file\n|ange-ftp-real-delete-directory|ange-ftp-real-delete-file|ange-ftp-real-directory-file-name|ange-ftp-real-directory-files-and-attributes\n|ange-ftp-real-directory-files|ange-ftp-real-expand-file-name|ange-ftp-real-file-attributes|ange-ftp-real-file-directory-p|ange-ftp-real-file-executable-p\n|ange-ftp-real-file-exists-p|ange-ftp-real-file-name-all-completions|ange-ftp-real-file-name-as-directory|ange-ftp-real-file-name-completion\n|ange-ftp-real-file-name-directory|ange-ftp-real-file-name-nondirectory|ange-ftp-real-file-name-sans-versions|ange-ftp-real-file-newer-than-file-p\n|ange-ftp-real-file-readable-p|ange-ftp-real-file-symlink-p|ange-ftp-real-file-writable-p|ange-ftp-real-find-backup-file-name\n|ange-ftp-real-insert-directory|ange-ftp-real-insert-file-contents|ange-ftp-real-load|ange-ftp-real-make-directory|ange-ftp-real-rename-file\n|ange-ftp-real-shell-command|ange-ftp-real-verify-visited-file-modtime|ange-ftp-real-write-region|ange-ftp-rename-file|ange-ftp-rename-local-to-remote\n|ange-ftp-rename-remote-to-local|ange-ftp-rename-remote-to-remote|ange-ftp-repaint-minibuffer|ange-ftp-replace-name-component\n|ange-ftp-reread-dir|ange-ftp-root-dir-p|ange-ftp-run-real-handler-orig|ange-ftp-run-real-handler|ange-ftp-send-cmd|ange-ftp-set-account\n|ange-ftp-set-ascii-mode|ange-ftp-set-binary-mode|ange-ftp-set-buffer-mode|ange-ftp-set-file-modes|ange-ftp-set-files|ange-ftp-set-passwd\n|ange-ftp-set-user|ange-ftp-set-xfer-size|ange-ftp-shell-command|ange-ftp-smart-login|ange-ftp-start-process|ange-ftp-switches-ok\n|ange-ftp-uncompress|ange-ftp-unhandled-file-name-directory|ange-ftp-use-gateway-p|ange-ftp-use-smart-gateway-p|ange-ftp-verify-visited-file-modtime\n|ange-ftp-vms-add-file-entry|ange-ftp-vms-delete-file-entry|ange-ftp-vms-file-name-as-directory|ange-ftp-vms-host|ange-ftp-vms-make-compressed-filename\n|ange-ftp-vms-sans-version|ange-ftp-wait-not-busy|ange-ftp-wipe-file-entries|ange-ftp-write-region|animate-birthday-present|animate-initialize\n|animate-place-char|animate-sequence|animate-step|animate-string|another-calc|ansi-color--find-face|ansi-color-apply-on-region|ansi-color-apply-overlay-face\n|ansi-color-apply-sequence|ansi-color-apply|ansi-color-filter-apply|ansi-color-filter-region|ansi-color-for-comint-mode-filter\n|ansi-color-for-comint-mode-off|ansi-color-for-comint-mode-on|ansi-color-freeze-overlay|ansi-color-get-face-1|ansi-color-make-color-map\n|ansi-color-make-extent|ansi-color-make-face|ansi-color-map-update|ansi-color-parse-sequence|ansi-color-process-output|ansi-color-set-extent-face\n|ansi-color-unfontify-region|ansi-term|antlr-beginning-of-body|antlr-beginning-of-rule|antlr-c\\+\\+-mode-extra|antlr-c-forward-sws\n|antlr-c-init-language-vars|antlr-default-directory|antlr-directory-dependencies|antlr-downcase-literals|antlr-electric-character\n|antlr-end-of-body|antlr-end-of-rule|antlr-file-dependencies|antlr-font-lock-keywords|antlr-grammar-tokens|antlr-hide-actions|antlr-imenu-create-index-function\n|antlr-indent-command|antlr-indent-line|antlr-insert-makefile-rules|antlr-insert-option-area|antlr-insert-option-do|antlr-insert-option-existing\n|antlr-insert-option-interactive|antlr-insert-option-space|antlr-insert-option|antlr-inside-rule-p|antlr-invalidate-context-cache\n|antlr-language-option-extra|antlr-language-option|antlr-makefile-insert-variable|antlr-mode-menu|antlr-mode|antlr-next-rule|antlr-option-kind\n|antlr-option-level|antlr-option-location|antlr-option-spec|antlr-options-menu-filter|antlr-outside-rule-p|antlr-re-search-forward\n|antlr-read-boolean|antlr-read-shell-command|antlr-read-value|antlr-run-tool-interactive|antlr-run-tool|antlr-search-backward|antlr-search-forward\n|antlr-set-tabs|antlr-show-makefile-rules|antlr-skip-exception-part|antlr-skip-file-prelude|antlr-skip-sexps|antlr-superclasses-glibs\n|antlr-syntactic-context|antlr-syntactic-grammar-depth|antlr-upcase-literals|antlr-upcase-p|antlr-version-string|antlr-with-displaying-help-buffer\n|antlr-with-syntax-table|append-next-kill|append-to-buffer|append-to-register|apply-macro-to-region-lines|apply-on-rectangle|appt-activate\n|appt-add|apropos-command|apropos-documentation-property|apropos-documentation|apropos-internal|apropos-library|apropos-read-pattern\n|apropos-user-option|apropos-value|apropos-variable|archive-\\*-expunge|archive-\\*-extract|archive-\\*-write-file-member|archive-7z-extract\n|archive-7z-summarize|archive-7z-write-file-member|archive-add-new-member|archive-alternate-display|archive-ar-extract|archive-ar-summarize\n|archive-arc-rename-entry|archive-arc-summarize|archive-calc-mode|archive-chgrp-entry|archive-chmod-entry|archive-chown-entry|archive-delete-local\n|archive-desummarize|archive-display-other-window|archive-dosdate|archive-dostime|archive-expunge|archive-extract-by-file|archive-extract-by-stdout\n|archive-extract-other-window|archive-extract|archive-file-name-handler|archive-find-type|archive-flag-deleted|archive-get-descr\n|archive-get-lineno|archive-get-marked|archive-int-to-mode|archive-l-e|archive-lzh-chgrp-entry|archive-lzh-chmod-entry|archive-lzh-chown-entry\n|archive-lzh-exe-extract|archive-lzh-exe-summarize|archive-lzh-extract|archive-lzh-ogm|archive-lzh-rename-entry|archive-lzh-resum\n|archive-lzh-summarize|archive-mark|archive-maybe-copy|archive-maybe-update|archive-mode-revert|archive-mode|archive-mouse-extract\n|archive-name|archive-next-line|archive-previous-line|archive-rar-exe-extract|archive-rar-exe-summarize|archive-rar-extract|archive-rar-summarize\n|archive-rename-entry|archive-resummarize|archive-set-buffer-as-visiting-file|archive-summarize-files|archive-summarize|archive-try-jka-compr\n|archive-undo|archive-unflag-backwards|archive-unflag|archive-unique-fname|archive-unixdate|archive-unixtime|archive-unmark-all-files\n|archive-view|archive-write-file-member|archive-write-file|archive-zip-chmod-entry|archive-zip-extract|archive-zip-summarize|archive-zip-write-file-member\n|archive-zoo-extract|archive-zoo-summarize|arp|array-backward-column|array-beginning-of-field|array-copy-backward|array-copy-column-backward\n|array-copy-column-forward|array-copy-down|array-copy-forward|array-copy-once-horizontally|array-copy-once-vertically|array-copy-row-down\n|array-copy-row-up|array-copy-to-cell|array-copy-to-column|array-copy-to-row|array-copy-up|array-current-column|array-current-row\n|array-cursor-in-array-range|array-display-local-variables|array-end-of-field|array-expand-rows|array-field-string|array-fill-rectangle\n|array-forward-column|array-goto-cell|array-make-template|array-maybe-scroll-horizontally|array-mode|array-move-one-column|array-move-one-row\n|array-move-to-cell|array-move-to-column|array-move-to-row|array-next-row|array-normalize-cursor|array-previous-row|array-reconfigure-rows\n|array-update-array-position|array-update-buffer-position|array-what-position|artist-2point-get-endpoint1|artist-2point-get-endpoint2\n|artist-2point-get-shapeinfo|artist-arrow-point-get-direction|artist-arrow-point-get-marker|artist-arrow-point-get-orig-char\n|artist-arrow-point-get-state|artist-arrow-point-set-state|artist-arrows|artist-backward-char|artist-calculate-new-char|artist-calculate-new-chars\n|artist-charlist-to-string|artist-clear-arrow-points|artist-clear-buffer|artist-compute-key-compl-table|artist-compute-line-char\n|artist-compute-popup-menu-table-sub|artist-compute-popup-menu-table|artist-compute-up-event-key|artist-coord-add-new-char|artist-coord-add-saved-char\n|artist-coord-get-new-char|artist-coord-get-saved-char|artist-coord-get-x|artist-coord-get-y|artist-coord-set-new-char|artist-coord-set-x\n|artist-coord-set-y|artist-coord-win-to-buf|artist-copy-generic|artist-copy-rect|artist-copy-square|artist-current-column|artist-current-line\n|artist-cut-rect|artist-cut-square|artist-direction-char|artist-direction-step-x|artist-direction-step-y|artist-do-nothing|artist-down-mouse-1\n|artist-down-mouse-3|artist-draw-circle|artist-draw-ellipse-general|artist-draw-ellipse-with-0-height|artist-draw-ellipse|artist-draw-line\n|artist-draw-rect|artist-draw-region-reset|artist-draw-region-trim-line-endings|artist-draw-sline|artist-draw-square|artist-eight-point\n|artist-ellipse-compute-fill-info|artist-ellipse-fill-info-add-center|artist-ellipse-generate-quadrant|artist-ellipse-mirror-quadrant\n|artist-ellipse-point-list-add-center|artist-ellipse-remove-0-fills|artist-endpoint-get-x|artist-endpoint-get-y|artist-erase-char\n|artist-erase-rect|artist-event-is-shifted|artist-fc-get-fn-from-symbol|artist-fc-get-fn|artist-fc-get-keyword|artist-fc-get-symbol\n|artist-fc-retrieve-from-symbol-sub|artist-fc-retrieve-from-symbol|artist-ff-get-rightmost-from-xy|artist-ff-is-bottommost-line\n|artist-ff-is-topmost-line|artist-ff-too-far-right|artist-figlet-choose-font|artist-figlet-get-extra-args|artist-figlet-get-font-list\n|artist-figlet-run|artist-figlet|artist-file-to-string|artist-fill-circle|artist-fill-ellipse|artist-fill-item-get-width|artist-fill-item-get-x\n|artist-fill-item-get-y|artist-fill-item-set-width|artist-fill-item-set-x|artist-fill-item-set-y|artist-fill-rect|artist-fill-square\n|artist-find-direction|artist-find-octant|artist-flood-fill|artist-forward-char|artist-funcall|artist-get-buffer-contents-at-xy\n|artist-get-char-at-xy-conv|artist-get-char-at-xy|artist-get-dfdx-init-coeff|artist-get-dfdy-init-coeff|artist-get-first-non-nil-op\n|artist-get-last-non-nil-op|artist-get-replacement-char|artist-get-x-step-q<0|artist-get-x-step-q>=0|artist-get-y-step-q<0|artist-get-y-step-q>=0\n|artist-go-get-arrow-pred-from-symbol|artist-go-get-arrow-pred|artist-go-get-arrow-set-fn-from-symbol|artist-go-get-arrow-set-fn\n|artist-go-get-desc|artist-go-get-draw-fn-from-symbol|artist-go-get-draw-fn|artist-go-get-draw-how-from-symbol|artist-go-get-draw-how\n|artist-go-get-exit-fn-from-symbol|artist-go-get-exit-fn|artist-go-get-fill-fn-from-symbol|artist-go-get-fill-fn|artist-go-get-fill-pred-from-symbol\n|artist-go-get-fill-pred|artist-go-get-init-fn-from-symbol|artist-go-get-init-fn|artist-go-get-interval-fn-from-symbol|artist-go-get-interval-fn\n|artist-go-get-keyword-from-symbol|artist-go-get-keyword|artist-go-get-mode-line-from-symbol|artist-go-get-mode-line|artist-go-get-prep-fill-fn-from-symbol\n|artist-go-get-prep-fill-fn|artist-go-get-shifted|artist-go-get-symbol-shift-sub|artist-go-get-symbol-shift|artist-go-get-symbol\n|artist-go-get-undraw-fn-from-symbol|artist-go-get-undraw-fn|artist-go-get-unshifted|artist-go-retrieve-from-symbol-sub|artist-go-retrieve-from-symbol\n|artist-intersection-char|artist-is-in-op-list-p|artist-key-do-continously-1point|artist-key-do-continously-2points|artist-key-do-continously-common\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nartist-key-do-continously-continously|artist-key-do-continously-poly|artist-key-draw-1point|artist-key-draw-2points|artist-key-draw-common\n|artist-key-draw-continously|artist-key-draw-poly|artist-key-set-point-1point|artist-key-set-point-2points|artist-key-set-point-common\n|artist-key-set-point-continously|artist-key-set-point-poly|artist-key-set-point|artist-key-undraw-1point|artist-key-undraw-2points\n|artist-key-undraw-common|artist-key-undraw-continously|artist-key-undraw-poly|artist-make-2point-object|artist-make-arrow-point\n|artist-make-endpoint|artist-make-prev-next-op-alist|artist-mn-get-items|artist-mn-get-title|artist-mode-exit|artist-mode-init\n|artist-mode-line-show-curr-operation|artist-mode-off|artist-mode|artist-modify-new-chars|artist-mouse-choose-operation|artist-mouse-draw-1point\n|artist-mouse-draw-2points|artist-mouse-draw-continously|artist-mouse-draw-poly|artist-move-to-xy|artist-mt-get-info-part|artist-mt-get-symbol-from-keyword-sub\n|artist-mt-get-symbol-from-keyword|artist-mt-get-tag|artist-new-coord|artist-new-fill-item|artist-next-line|artist-nil|artist-no-arrows\n|artist-no-rb-set-point1|artist-no-rb-set-point2|artist-no-rb-unset-point1|artist-no-rb-unset-point2|artist-no-rb-unset-points\n|artist-paste|artist-pen-line|artist-pen-reset-last-xy|artist-pen-set-arrow-points|artist-pen|artist-previous-line|artist-put-pixel\n|artist-rect-corners-squarify|artist-replace-char|artist-replace-chars|artist-replace-string|artist-save-chars-under-point-list\n|artist-save-chars-under-sline|artist-select-erase-char|artist-select-fill-char|artist-select-line-char|artist-select-next-op-in-list\n|artist-select-op-circle|artist-select-op-copy-rectangle|artist-select-op-copy-square|artist-select-op-cut-rectangle|artist-select-op-cut-square\n|artist-select-op-ellipse|artist-select-op-erase-char|artist-select-op-erase-rectangle|artist-select-op-flood-fill|artist-select-op-line\n|artist-select-op-paste|artist-select-op-pen-line|artist-select-op-poly-line|artist-select-op-rectangle|artist-select-op-spray-can\n|artist-select-op-spray-set-size|artist-select-op-square|artist-select-op-straight-line|artist-select-op-straight-poly-line|artist-select-op-text-overwrite\n|artist-select-op-text-see-thru|artist-select-op-vaporize-line|artist-select-op-vaporize-lines|artist-select-operation|artist-select-prev-op-in-list\n|artist-select-spray-chars|artist-set-arrow-points-for-2points|artist-set-arrow-points-for-poly|artist-set-pointer-shape|artist-shift-has-changed\n|artist-sline|artist-spray-clear-circle|artist-spray-get-interval|artist-spray-random-points|artist-spray-set-radius|artist-spray\n|artist-straight-calculate-length|artist-string-split|artist-string-to-charlist|artist-string-to-file|artist-submit-bug-report\n|artist-system|artist-t-if-fill-char-set|artist-t|artist-text-insert-common|artist-text-insert-overwrite|artist-text-insert-see-thru\n|artist-text-overwrite|artist-text-see-thru|artist-toggle-borderless-shapes|artist-toggle-first-arrow|artist-toggle-rubber-banding\n|artist-toggle-second-arrow|artist-toggle-trim-line-endings|artist-undraw-circle|artist-undraw-ellipse|artist-undraw-line|artist-undraw-rect\n|artist-undraw-sline|artist-undraw-square|artist-unintersection-char|artist-uniq|artist-update-display|artist-update-pointer-shape\n|artist-vap-find-endpoint|artist-vap-find-endpoints-horiz|artist-vap-find-endpoints-nwse|artist-vap-find-endpoints-swne|artist-vap-find-endpoints-vert\n|artist-vap-find-endpoints|artist-vap-group-in-pairs|artist-vaporize-by-endpoints|artist-vaporize-line|artist-vaporize-lines|asm-calculate-indentation\n|asm-colon|asm-comment|asm-indent-line|asm-mode|asm-newline|assert|assoc\\*|assoc-if-not|assoc-if|assoc-ignore-case|assoc-ignore-representation\n|async-shell-command|atomic-change-group|auth-source--aget|auth-source--aput-1|auth-source--aput|auth-source-backend-child-p|auth-source-backend-list-p\n|auth-source-backend-p|auth-source-backend-parse-parameters|auth-source-backend-parse|auth-source-backend|auth-source-current-line\n|auth-source-delete|auth-source-do-debug|auth-source-do-trivia|auth-source-do-warn|auth-source-ensure-strings|auth-source-epa-extract-gpg-token\n|auth-source-epa-make-gpg-token|auth-source-forget\\+|auth-source-forget-all-cached|auth-source-forget|auth-source-format-cache-entry\n|auth-source-format-prompt|auth-source-macos-keychain-create|auth-source-macos-keychain-result-append|auth-source-macos-keychain-search-items\n|auth-source-macos-keychain-search|auth-source-netrc-create|auth-source-netrc-element-or-first|auth-source-netrc-normalize|auth-source-netrc-parse-entries\n|auth-source-netrc-parse-next-interesting|auth-source-netrc-parse-one|auth-source-netrc-parse|auth-source-netrc-saver|auth-source-netrc-search\n|auth-source-pick-first-password|auth-source-plstore-create|auth-source-plstore-search|auth-source-read-char-choice|auth-source-recall\n|auth-source-remember|auth-source-remembered-p|auth-source-search-backends|auth-source-search-collection|auth-source-search|auth-source-secrets-create\n|auth-source-secrets-listify-pattern|auth-source-secrets-search|auth-source-specmatchp|auth-source-token-passphrase-callback-function\n|auth-source-user-and-password|auth-source-user-or-password|auto-coding-alist-lookup|auto-coding-regexp-alist-lookup|auto-compose-chars\n|auto-composition-mode|auto-compression-mode|auto-encryption-mode|auto-fill-mode|auto-image-file-mode|auto-insert-mode|auto-insert\n|auto-lower-mode|auto-raise-mode|auto-revert-active-p|auto-revert-buffers|auto-revert-handler|auto-revert-mode|auto-revert-notify-add-watch\n|auto-revert-notify-handler|auto-revert-notify-rm-watch|auto-revert-set-timer|auto-revert-tail-handler|auto-revert-tail-mode|autoarg-kp-digit-argument\n|autoarg-kp-mode|autoarg-mode|autoarg-terminate|autoconf-current-defun-function|autoconf-mode|autodoc-font-lock-keywords|autodoc-font-lock-line-markup\n|autoload-coding-system|autoload-rubric|avl-tree--check-node|avl-tree--check|avl-tree--cmpfun--cmacro|avl-tree--cmpfun|avl-tree--create--cmacro\n|avl-tree--create|avl-tree--del-balance|avl-tree--dir-to-sign|avl-tree--do-copy|avl-tree--do-del-internal|avl-tree--do-delete|avl-tree--do-enter\n|avl-tree--dummyroot--cmacro|avl-tree--dummyroot|avl-tree--enter-balance|avl-tree--mapc|avl-tree--node-balance--cmacro|avl-tree--node-balance\n|avl-tree--node-branch|avl-tree--node-create--cmacro|avl-tree--node-create|avl-tree--node-data--cmacro|avl-tree--node-data|avl-tree--node-left--cmacro\n|avl-tree--node-left|avl-tree--node-right--cmacro|avl-tree--node-right|avl-tree--root|avl-tree--sign-to-dir|avl-tree--stack-create\n|avl-tree--stack-p--cmacro|avl-tree--stack-p|avl-tree--stack-repopulate|avl-tree--stack-reverse--cmacro|avl-tree--stack-reverse\n|avl-tree--stack-store--cmacro|avl-tree--stack-store|avl-tree--switch-dir|avl-tree-clear|avl-tree-compare-function|avl-tree-copy\n|avl-tree-create|avl-tree-delete|avl-tree-empty|avl-tree-enter|avl-tree-first|avl-tree-flatten|avl-tree-last|avl-tree-map|avl-tree-mapc\n|avl-tree-mapcar|avl-tree-mapf|avl-tree-member-p|avl-tree-member|avl-tree-p--cmacro|avl-tree-p|avl-tree-size|avl-tree-stack-empty-p\n|avl-tree-stack-first|avl-tree-stack-p|avl-tree-stack-pop|avl-tree-stack|awk-mode|babel-as-string|background-color-at-point|backquote-delay-process\n|backquote-list\\*-function|backquote-list\\*-macro|backquote-list\\*|backquote-listify|backquote-process|backquote|backtrace--locals\n|backtrace-eval|backup-buffer-copy|backup-extract-version|backward-delete-char|backward-ifdef|backward-kill-paragraph|backward-kill-sentence\n|backward-kill-sexp|backward-kill-word|backward-page|backward-paragraph|backward-sentence|backward-text-line|backward-up-list|bad-package-check\n|balance-windows-1|balance-windows-2|balance-windows-area-adjust|basic-save-buffer-1|basic-save-buffer-2|basic-save-buffer|bat-cmd-help\n|bat-mode|bat-run-args|bat-run|bat-template|batch-byte-compile-file|batch-byte-compile-if-not-done|batch-byte-recompile-directory\n|batch-info-validate|batch-texinfo-format|batch-titdic-convert|batch-unrmail|batch-update-autoloads|battery-bsd-apm|battery-format\n|battery-linux-proc-acpi|battery-linux-proc-apm|battery-linux-sysfs|battery-pmset|battery-search-for-one-match-in-files|battery-update-handler\n|battery-update|battery|bb-bol|bb-done|bb-down|bb-eol|bb-goto|bb-init-board|bb-insert-board|bb-left|bb-outside-box|bb-place-ball|bb-right\n|bb-romp|bb-show-bogus-balls-2|bb-show-bogus-balls|bb-trace-ray-2|bb-trace-ray|bb-up|bb-update-board|beginning-of-buffer-other-window\n|beginning-of-defun-raw|beginning-of-icon-defun|beginning-of-line-text|beginning-of-sexp|beginning-of-thing|beginning-of-visual-line\n|benchmark-elapse|benchmark-run-compiled|benchmark-run|benchmark|bib-capitalize-title-region|bib-capitalize-title|bib-find-key|bib-mode\n|bibtex-Article|bibtex-Book|bibtex-BookInBook|bibtex-Booklet|bibtex-Collection|bibtex-InBook|bibtex-InCollection|bibtex-InProceedings\n|bibtex-InReference|bibtex-MVBook|bibtex-MVCollection|bibtex-MVProceedings|bibtex-MVReference|bibtex-Manual|bibtex-MastersThesis\n|bibtex-Misc|bibtex-Online|bibtex-Patent|bibtex-Periodical|bibtex-PhdThesis|bibtex-Preamble|bibtex-Proceedings|bibtex-Reference|bibtex-Report\n|bibtex-String|bibtex-SuppBook|bibtex-SuppCollection|bibtex-SuppPeriodical|bibtex-TechReport|bibtex-Thesis|bibtex-Unpublished|bibtex-autofill-entry\n|bibtex-autokey-abbrev|bibtex-autokey-demangle-name|bibtex-autokey-demangle-title|bibtex-autokey-get-field|bibtex-autokey-get-names\n|bibtex-autokey-get-title|bibtex-autokey-get-year|bibtex-beginning-first-field|bibtex-beginning-of-entry|bibtex-beginning-of-field\n|bibtex-beginning-of-first-entry|bibtex-button-action|bibtex-button|bibtex-clean-entry|bibtex-complete-crossref-cleanup|bibtex-complete-string-cleanup\n|bibtex-complete|bibtex-completion-at-point-function|bibtex-convert-alien|bibtex-copy-entry-as-kill|bibtex-copy-field-as-kill\n|bibtex-copy-summary-as-kill|bibtex-count-entries|bibtex-current-line|bibtex-delete-whitespace|bibtex-display-entries|bibtex-dist\n|bibtex-edit-menu|bibtex-empty-field|bibtex-enclosing-field|bibtex-end-of-entry|bibtex-end-of-field|bibtex-end-of-name-in-field\n|bibtex-end-of-string|bibtex-end-of-text-in-field|bibtex-end-of-text-in-string|bibtex-entry-alist|bibtex-entry-index|bibtex-entry-left-delimiter\n|bibtex-entry-right-delimiter|bibtex-entry-update|bibtex-entry|bibtex-field-left-delimiter|bibtex-field-list|bibtex-field-re-init\n|bibtex-field-right-delimiter|bibtex-fill-entry|bibtex-fill-field-bounds|bibtex-fill-field|bibtex-find-crossref|bibtex-find-entry\n|bibtex-find-text-internal|bibtex-find-text|bibtex-flash-head|bibtex-font-lock-cite|bibtex-font-lock-crossref|bibtex-font-lock-url\n|bibtex-format-entry|bibtex-generate-autokey|bibtex-global-key-alist|bibtex-goto-line|bibtex-init-sort-entry-class-alist|bibtex-initialize\n|bibtex-insert-kill|bibtex-ispell-abstract|bibtex-ispell-entry|bibtex-key-in-head|bibtex-kill-entry|bibtex-kill-field|bibtex-lessp\n|bibtex-make-field|bibtex-make-optional-field|bibtex-map-entries|bibtex-mark-entry|bibtex-mode|bibtex-move-outside-of-entry|bibtex-name-in-field\n|bibtex-narrow-to-entry|bibtex-next-field|bibtex-parse-association|bibtex-parse-buffers-stealthily|bibtex-parse-entry|bibtex-parse-field-name\n|bibtex-parse-field-string|bibtex-parse-field-text|bibtex-parse-field|bibtex-parse-keys|bibtex-parse-preamble|bibtex-parse-string-postfix\n|bibtex-parse-string-prefix|bibtex-parse-string|bibtex-parse-strings|bibtex-pop-next|bibtex-pop-previous|bibtex-pop|bibtex-prepare-new-entry\n|bibtex-print-help-message|bibtex-progress-message|bibtex-read-key|bibtex-read-string-key|bibtex-realign|bibtex-reference-key-in-string\n|bibtex-reformat|bibtex-remove-OPT-or-ALT|bibtex-remove-delimiters|bibtex-reposition-window|bibtex-search-backward-field|bibtex-search-crossref\n|bibtex-search-entries|bibtex-search-entry|bibtex-search-forward-field|bibtex-search-forward-string|bibtex-set-dialect|bibtex-skip-to-valid-entry\n|bibtex-sort-buffer|bibtex-start-of-field|bibtex-start-of-name-in-field|bibtex-start-of-text-in-field|bibtex-start-of-text-in-string\n|bibtex-string-files-init|bibtex-string=|bibtex-strings|bibtex-style-calculate-indentation|bibtex-style-indent-line|bibtex-style-mode\n|bibtex-summary|bibtex-text-in-field-bounds|bibtex-text-in-field|bibtex-text-in-string|bibtex-type-in-head|bibtex-url|bibtex-valid-entry\n|bibtex-validate-globally|bibtex-validate|bibtex-vec-incr|bibtex-vec-push|bibtex-yank-pop|bibtex-yank|bidi-find-overridden-directionality\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nbidi-resolved-levels|binary-overwrite-mode|bindat--length-group|bindat--pack-group|bindat--pack-item|bindat--pack-u16|bindat--pack-u16r\n|bindat--pack-u24|bindat--pack-u24r|bindat--pack-u32|bindat--pack-u32r|bindat--pack-u8|bindat--unpack-group|bindat--unpack-item\n|bindat--unpack-u16|bindat--unpack-u16r|bindat--unpack-u24|bindat--unpack-u24r|bindat--unpack-u32|bindat--unpack-u32r|bindat--unpack-u8\n|bindat-format-vector|bindat-vector-to-dec|bindat-vector-to-hex|bindings--define-key|binhex-char-int|binhex-char-map|binhex-decode-region-external\n|binhex-decode-region-internal|binhex-decode-region|binhex-header|binhex-insert-char|binhex-push-char|binhex-string-big-endian\n|binhex-string-little-endian|binhex-update-crc|binhex-verify-crc|blackbox-mode|blackbox-redefine-key|blackbox|blink-cursor-check\n|blink-cursor-end|blink-cursor-mode|blink-cursor-start|blink-cursor-suspend|blink-cursor-timer-function|blink-matching-check-mismatch\n|blink-paren-post-self-insert-function|block|bookmark--jump-via|bookmark-alist-from-buffer|bookmark-all-names|bookmark-bmenu-1-window\n|bookmark-bmenu-2-window|bookmark-bmenu-any-marks|bookmark-bmenu-backup-unmark|bookmark-bmenu-bookmark|bookmark-bmenu-delete-backwards\n|bookmark-bmenu-delete|bookmark-bmenu-edit-annotation|bookmark-bmenu-ensure-position|bookmark-bmenu-execute-deletions|bookmark-bmenu-filter-alist-by-regexp\n|bookmark-bmenu-goto-bookmark|bookmark-bmenu-hide-filenames|bookmark-bmenu-list|bookmark-bmenu-load|bookmark-bmenu-locate|bookmark-bmenu-mark\n|bookmark-bmenu-mode|bookmark-bmenu-other-window-with-mouse|bookmark-bmenu-other-window|bookmark-bmenu-relocate|bookmark-bmenu-rename\n|bookmark-bmenu-save|bookmark-bmenu-search|bookmark-bmenu-select|bookmark-bmenu-set-header|bookmark-bmenu-show-all-annotations\n|bookmark-bmenu-show-annotation|bookmark-bmenu-show-filenames|bookmark-bmenu-surreptitiously-rebuild-list|bookmark-bmenu-switch-other-window\n|bookmark-bmenu-this-window|bookmark-bmenu-toggle-filenames|bookmark-bmenu-unmark|bookmark-buffer-file-name|bookmark-buffer-name\n|bookmark-completing-read|bookmark-default-annotation-text|bookmark-default-handler|bookmark-delete|bookmark-edit-annotation-mode\n|bookmark-edit-annotation|bookmark-exit-hook-internal|bookmark-get-annotation|bookmark-get-bookmark-record|bookmark-get-bookmark\n|bookmark-get-filename|bookmark-get-front-context-string|bookmark-get-handler|bookmark-get-position|bookmark-get-rear-context-string\n|bookmark-grok-file-format-version|bookmark-handle-bookmark|bookmark-import-new-list|bookmark-insert-annotation|bookmark-insert-file-format-version-stamp\n|bookmark-insert-location|bookmark-insert|bookmark-jump-noselect|bookmark-jump-other-window|bookmark-jump|bookmark-kill-line|bookmark-load\n|bookmark-locate|bookmark-location|bookmark-make-record-default|bookmark-make-record|bookmark-map|bookmark-maybe-historicize-string\n|bookmark-maybe-load-default-file|bookmark-maybe-message|bookmark-maybe-rename|bookmark-maybe-sort-alist|bookmark-maybe-upgrade-file-format\n|bookmark-menu-popup-paned-menu|bookmark-name-from-full-record|bookmark-prop-get|bookmark-prop-set|bookmark-relocate|bookmark-rename\n|bookmark-save|bookmark-send-edited-annotation|bookmark-set-annotation|bookmark-set-filename|bookmark-set-front-context-string\n|bookmark-set-name|bookmark-set-position|bookmark-set-rear-context-string|bookmark-set|bookmark-show-all-annotations|bookmark-show-annotation\n|bookmark-store|bookmark-time-to-save-p|bookmark-unload-function|bookmark-upgrade-file-format-from-0|bookmark-upgrade-version-0-alist\n|bookmark-write-file|bookmark-write|bookmark-yank-word|bool-vector|bound-and-true-p|bounds-of-thing-at-point|bovinate|bovine-grammar-mode\n|browse-url-at-mouse|browse-url-at-point|browse-url-can-use-xdg-open|browse-url-cci|browse-url-chromium|browse-url-default-browser\n|browse-url-default-macosx-browser|browse-url-default-windows-browser|browse-url-delete-temp-file|browse-url-elinks-new-window\n|browse-url-elinks-sentinel|browse-url-elinks|browse-url-emacs-display|browse-url-emacs|browse-url-encode-url|browse-url-epiphany-sentinel\n|browse-url-epiphany|browse-url-file-url|browse-url-firefox-sentinel|browse-url-firefox|browse-url-galeon-sentinel|browse-url-galeon\n|browse-url-generic|browse-url-gnome-moz|browse-url-interactive-arg|browse-url-kde|browse-url-mail|browse-url-maybe-new-window\n|browse-url-mosaic|browse-url-mozilla-sentinel|browse-url-mozilla|browse-url-netscape-reload|browse-url-netscape-send|browse-url-netscape-sentinel\n|browse-url-netscape|browse-url-of-buffer|browse-url-of-dired-file|browse-url-of-file|browse-url-of-region|browse-url-process-environment\n|browse-url-text-emacs|browse-url-text-xterm|browse-url-url-at-point|browse-url-url-encode-chars|browse-url-w3-gnudoit|browse-url-w3\n|browse-url-xdg-open|browse-url|browse-web|bs--configuration-name-for-prefix-arg|bs--create-header-line|bs--current-buffer|bs--current-config-message\n|bs--down|bs--format-aux|bs--get-file-name|bs--get-marked-string|bs--get-mode-name|bs--get-modified-string|bs--get-name-length|bs--get-name\n|bs--get-readonly-string|bs--get-size-string|bs--get-value|bs--goto-current-buffer|bs--insert-one-entry|bs--make-header-match-string\n|bs--mark-unmark|bs--nth-wrapper|bs--redisplay|bs--remove-hooks|bs--restore-window-config|bs--set-toggle-to-show|bs--set-window-height\n|bs--show-config-message|bs--show-header|bs--show-with-configuration|bs--sort-by-filename|bs--sort-by-mode|bs--sort-by-name|bs--sort-by-size\n|bs--track-window-changes|bs--up|bs--update-current-line|bs-abort|bs-apply-sort-faces|bs-buffer-list|bs-buffer-sort|bs-bury-buffer\n|bs-clear-modified|bs-config--all-intern-last|bs-config--all|bs-config--files-and-scratch|bs-config--only-files|bs-config-clear\n|bs-customize|bs-cycle-next|bs-cycle-previous|bs-define-sort-function|bs-delete-backward|bs-delete|bs-down|bs-help|bs-kill|bs-mark-current\n|bs-message-without-log|bs-mode|bs-mouse-select-other-frame|bs-mouse-select|bs-next-buffer|bs-next-config-aux|bs-next-config|bs-previous-buffer\n|bs-refresh|bs-save|bs-select-in-one-window|bs-select-next-configuration|bs-select-other-frame|bs-select-other-window|bs-select\n|bs-set-configuration-and-refresh|bs-set-configuration|bs-set-current-buffer-to-show-always|bs-set-current-buffer-to-show-never\n|bs-show-in-buffer|bs-show-sorted|bs-show|bs-sort-buffer-interns-are-last|bs-tmp-select-other-window|bs-toggle-current-to-show\n|bs-toggle-readonly|bs-toggle-show-all|bs-unload-function|bs-unmark-current|bs-up|bs-view|bs-visit-tags-table|bs-visits-non-file\n|bubbles--char-at|bubbles--col|bubbles--colors|bubbles--compute-offsets|bubbles--count|bubbles--empty-char|bubbles--game-over|bubbles--goto\n|bubbles--grid-height|bubbles--grid-width|bubbles--initialize-faces|bubbles--initialize-images|bubbles--initialize|bubbles--mark-direct-neighbors\n|bubbles--mark-neighborhood|bubbles--neighborhood-available|bubbles--remove-overlays|bubbles--reset-score|bubbles--row|bubbles--set-faces\n|bubbles--shift-mode|bubbles--shift|bubbles--show-images|bubbles--show-scores|bubbles--update-faces-or-images|bubbles--update-neighborhood-score\n|bubbles--update-score|bubbles-customize|bubbles-mode|bubbles-plop|bubbles-quit|bubbles-save-settings|bubbles-set-game-difficult\n|bubbles-set-game-easy|bubbles-set-game-hard|bubbles-set-game-medium|bubbles-set-game-userdefined|bubbles-set-graphics-theme-ascii\n|bubbles-set-graphics-theme-balls|bubbles-set-graphics-theme-circles|bubbles-set-graphics-theme-diamonds|bubbles-set-graphics-theme-emacs\n|bubbles-set-graphics-theme-squares|bubbles-undo|bubbles|buffer-face-mode-invoke|buffer-face-mode|buffer-face-set|buffer-face-toggle\n|buffer-has-markers-at|buffer-menu-open|buffer-menu-other-window|buffer-menu|buffer-stale--default-function|buffer-substring--filter\n|buffer-substring-with-bidi-context|bug-reference-fontify|bug-reference-mode|bug-reference-prog-mode|bug-reference-push-button\n|bug-reference-set-overlay-properties|bug-reference-unfontify|build-mail-abbrevs|build-mail-aliases|bury-buffer-internal|butterfly\n|button--area-button-p|button--area-button-string|button-category-symbol|byte-code|byte-compile--declare-var|byte-compile--reify-function\n|byte-compile-abbreviate-file|byte-compile-and-folded|byte-compile-and-recursion|byte-compile-and|byte-compile-annotate-call-tree\n|byte-compile-arglist-signature-string|byte-compile-arglist-signature|byte-compile-arglist-signatures-congruent-p|byte-compile-arglist-vars\n|byte-compile-arglist-warn|byte-compile-associative|byte-compile-autoload|byte-compile-backward-char|byte-compile-backward-word\n|byte-compile-bind|byte-compile-body-do-effect|byte-compile-body|byte-compile-butlast|byte-compile-callargs-warn|byte-compile-catch\n|byte-compile-char-before|byte-compile-check-lambda-list|byte-compile-check-variable|byte-compile-cl-file-p|byte-compile-cl-warn\n|byte-compile-close-variables|byte-compile-concat|byte-compile-cond|byte-compile-condition-case--new|byte-compile-condition-case--old\n|byte-compile-condition-case|byte-compile-constant|byte-compile-constants-vector|byte-compile-defvar|byte-compile-delete-first\n|byte-compile-dest-file|byte-compile-disable-warning|byte-compile-discard|byte-compile-dynamic-variable-bind|byte-compile-dynamic-variable-op\n|byte-compile-enable-warning|byte-compile-eval-before-compile|byte-compile-eval|byte-compile-fdefinition|byte-compile-file-form-autoload\n|byte-compile-file-form-custom-declare-variable|byte-compile-file-form-defalias|byte-compile-file-form-define-abbrev-table|byte-compile-file-form-defmumble\n|byte-compile-file-form-defvar|byte-compile-file-form-eval|byte-compile-file-form-progn|byte-compile-file-form-require|byte-compile-file-form-with-no-warnings\n|byte-compile-file-form|byte-compile-find-bound-condition|byte-compile-find-cl-functions|byte-compile-fix-header|byte-compile-flush-pending\n|byte-compile-form-do-effect|byte-compile-form-make-variable-buffer-local|byte-compile-form|byte-compile-format-warn|byte-compile-from-buffer\n|byte-compile-fset|byte-compile-funcall|byte-compile-function-form|byte-compile-function-warn|byte-compile-get-closed-var|byte-compile-get-constant\n|byte-compile-goto-if|byte-compile-goto|byte-compile-if|byte-compile-indent-to|byte-compile-inline-expand|byte-compile-inline-lapcode\n|byte-compile-insert-header|byte-compile-insert|byte-compile-keep-pending|byte-compile-lambda-form|byte-compile-lambda|byte-compile-lapcode\n|byte-compile-let|byte-compile-list|byte-compile-log-1|byte-compile-log-file|byte-compile-log-lap-1|byte-compile-log-lap|byte-compile-log-warning\n|byte-compile-log|byte-compile-macroexpand-declare-function|byte-compile-make-args-desc|byte-compile-make-closure|byte-compile-make-lambda-lexenv\n|byte-compile-make-obsolete-variable|byte-compile-make-tag|byte-compile-make-variable-buffer-local|byte-compile-maybe-guarded\n|byte-compile-minus|byte-compile-nconc|byte-compile-negated|byte-compile-negation-optimizer|byte-compile-nilconstp|byte-compile-no-args\n|byte-compile-no-warnings|byte-compile-nogroup-warn|byte-compile-noop|byte-compile-normal-call|byte-compile-not-lexical-var-p\n|byte-compile-one-arg|byte-compile-one-or-two-args|byte-compile-or-recursion|byte-compile-or|byte-compile-out-tag|byte-compile-out-toplevel\n|byte-compile-out|byte-compile-output-as-comment|byte-compile-output-docform|byte-compile-output-file-form|byte-compile-preprocess\n|byte-compile-print-syms|byte-compile-prog1|byte-compile-prog2|byte-compile-progn|byte-compile-push-binding-init|byte-compile-push-bytecode-const2\n|byte-compile-push-bytecodes|byte-compile-push-constant|byte-compile-quo|byte-compile-quote|byte-compile-recurse-toplevel|byte-compile-refresh-preloaded\n|byte-compile-report-error|byte-compile-report-ops|byte-compile-save-current-buffer|byte-compile-save-excursion|byte-compile-save-restriction\n|byte-compile-set-default|byte-compile-set-symbol-position|byte-compile-setq-default|byte-compile-setq|byte-compile-sexp|byte-compile-stack-adjustment\n|byte-compile-stack-ref|byte-compile-stack-set|byte-compile-subr-wrong-args|byte-compile-three-args|byte-compile-top-level-body\n|byte-compile-top-level|byte-compile-toplevel-file-form|byte-compile-trueconstp|byte-compile-two-args|byte-compile-two-or-three-args\n|byte-compile-unbind|byte-compile-unfold-bcf|byte-compile-unfold-lambda|byte-compile-unwind-protect|byte-compile-variable-ref\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nbyte-compile-variable-set|byte-compile-warn-about-unresolved-functions|byte-compile-warn-obsolete|byte-compile-warn|byte-compile-warning-enabled-p\n|byte-compile-warning-prefix|byte-compile-warning-series|byte-compile-while|byte-compile-zero-or-one-arg|byte-compiler-base-file-name\n|byte-decompile-bytecode-1|byte-decompile-bytecode|byte-defop-compiler-1|byte-defop-compiler|byte-defop|byte-extrude-byte-code-vectors\n|byte-force-recompile|byte-optimize-all-constp|byte-optimize-and|byte-optimize-apply|byte-optimize-approx-equal|byte-optimize-associative-math\n|byte-optimize-binary-predicate|byte-optimize-body|byte-optimize-cond|byte-optimize-delay-constants-math|byte-optimize-divide\n|byte-optimize-form-code-walker|byte-optimize-form|byte-optimize-funcall|byte-optimize-identity|byte-optimize-if|byte-optimize-inline-handler\n|byte-optimize-lapcode|byte-optimize-letX|byte-optimize-logmumble|byte-optimize-minus|byte-optimize-multiply|byte-optimize-nonassociative-math\n|byte-optimize-nth|byte-optimize-nthcdr|byte-optimize-or|byte-optimize-plus|byte-optimize-predicate|byte-optimize-quote|byte-optimize-set\n|byte-optimize-while|byte-recompile-file|byteorder|c\\+\\+-font-lock-keywords-2|c\\+\\+-font-lock-keywords-3|c\\+\\+-font-lock-keywords\n|c\\+\\+-mode|c--macroexpand-all|c-add-class-syntax|c-add-language|c-add-stmt-syntax|c-add-style|c-add-syntax|c-add-type|c-advise-fl-for-region\n|c-after-change-check-<>-operators|c-after-change|c-after-conditional|c-after-font-lock-init|c-after-special-operator-id|c-after-statement-terminator-p\n|c-append-backslashes-forward|c-append-lower-brace-pair-to-state-cache|c-append-syntax|c-append-to-state-cache|c-ascertain-following-literal\n|c-ascertain-preceding-literal|c-at-expression-start-p|c-at-macro-vsemi-p|c-at-statement-start-p|c-at-toplevel-p|c-at-vsemi-p|c-awk-menu\n|c-back-over-illiterals|c-back-over-member-initializer-braces|c-back-over-member-initializers|c-backslash-region|c-backward-<>-arglist\n|c-backward-colon-prefixed-type|c-backward-comments|c-backward-conditional|c-backward-into-nomenclature|c-backward-over-enum-header\n|c-backward-sexp|c-backward-single-comment|c-backward-sws|c-backward-syntactic-ws|c-backward-to-block-anchor|c-backward-to-decl-anchor\n|c-backward-to-nth-BOF-\\{|c-backward-token-1|c-backward-token-2|c-basic-common-init|c-before-change-check-<>-operators|c-before-change\n|c-before-hack-hook|c-beginning-of-current-token|c-beginning-of-decl-1|c-beginning-of-defun-1|c-beginning-of-defun|c-beginning-of-inheritance-list\n|c-beginning-of-macro|c-beginning-of-sentence-in-comment|c-beginning-of-sentence-in-string|c-beginning-of-statement-1|c-beginning-of-statement\n|c-beginning-of-syntax|c-benign-error|c-bind-special-erase-keys|c-block-in-arglist-dwim|c-bos-pop-state-and-retry|c-bos-pop-state\n|c-bos-push-state|c-bos-report-error|c-bos-restore-pos|c-bos-save-error-info|c-bos-save-pos|c-brace-anchor-point|c-brace-newlines\n|c-c\\+\\+-menu|c-c-menu|c-calc-comment-indent|c-calc-offset|c-calculate-state|c-change-set-fl-decl-start|c-cheap-inside-bracelist-p\n|c-check-type|c-clear-<-pair-props-if-match-after|c-clear-<-pair-props|c-clear-<>-pair-props|c-clear->-pair-props-if-match-before\n|c-clear->-pair-props|c-clear-c-type-property|c-clear-char-properties|c-clear-char-property-with-value-function|c-clear-char-property-with-value\n|c-clear-char-property|c-clear-cpp-delimiters|c-clear-found-types|c-collect-line-comments|c-comment-indent|c-comment-line-break-function\n|c-comment-out-cpps|c-common-init|c-compose-keywords-list|c-concat-separated|c-constant-symbol|c-context-line-break|c-context-open-line\n|c-context-set-fl-decl-start|c-count-cfss|c-cpp-define-name|c-crosses-statement-barrier-p|c-debug-add-face|c-debug-parse-state-double-cons\n|c-debug-parse-state|c-debug-put-decl-spot-faces|c-debug-remove-decl-spot-faces|c-debug-remove-face|c-debug-sws-msg|c-declaration-limits\n|c-declare-lang-variables|c-default-value-sentence-end|c-define-abbrev-table|c-define-lang-constant|c-defun-name|c-delete-and-extract-region\n|c-delete-backslashes-forward|c-delete-overlay|c-determine-\\+ve-limit|c-determine-limit-get-base|c-determine-limit|c-do-auto-fill\n|c-down-conditional-with-else|c-down-conditional|c-down-list-backward|c-down-list-forward|c-echo-parsing-error|c-electric-backspace\n|c-electric-brace|c-electric-colon|c-electric-continued-statement|c-electric-delete-forward|c-electric-delete|c-electric-indent-local-mode-hook\n|c-electric-indent-mode-hook|c-electric-lt-gt|c-electric-paren|c-electric-pound|c-electric-semi&comma|c-electric-slash|c-electric-star\n|c-end-of-current-token|c-end-of-decl-1|c-end-of-defun-1|c-end-of-defun|c-end-of-macro|c-end-of-sentence-in-comment|c-end-of-sentence-in-string\n|c-end-of-statement|c-evaluate-offset|c-extend-after-change-region|c-extend-font-lock-region-for-macros|c-extend-region-for-CPP\n|c-face-name-p|c-fdoc-shift-type-backward|c-fill-paragraph|c-find-assignment-for-mode|c-find-decl-prefix-search|c-find-decl-spots\n|c-find-invalid-doc-markup|c-fn-region-is-active-p|c-font-lock-<>-arglists|c-font-lock-c\\+\\+-new|c-font-lock-complex-decl-prepare\n|c-font-lock-declarations|c-font-lock-declarators|c-font-lock-doc-comments|c-font-lock-enclosing-decls|c-font-lock-enum-tail|c-font-lock-fontify-region\n|c-font-lock-init|c-font-lock-invalid-string|c-font-lock-keywords-2|c-font-lock-keywords-3|c-font-lock-keywords|c-font-lock-labels\n|c-font-lock-objc-method|c-font-lock-objc-methods|c-fontify-recorded-types-and-refs|c-fontify-types-and-refs|c-forward-<>-arglist-recur\n|c-forward-<>-arglist|c-forward-annotation|c-forward-comments|c-forward-conditional|c-forward-decl-or-cast-1|c-forward-id-comma-list\n|c-forward-into-nomenclature|c-forward-keyword-clause|c-forward-keyword-prefixed-id|c-forward-label|c-forward-name|c-forward-objc-directive\n|c-forward-over-cpp-define-id|c-forward-over-illiterals|c-forward-sexp|c-forward-single-comment|c-forward-sws|c-forward-syntactic-ws\n|c-forward-to-cpp-define-body|c-forward-to-nth-EOF-\\}|c-forward-token-1|c-forward-token-2|c-forward-type|c-get-cache-scan-pos\n|c-get-char-property|c-get-current-file|c-get-lang-constant|c-get-offset|c-get-style-variables|c-get-syntactic-indentation|c-gnu-impose-minimum\n|c-go-down-list-backward|c-go-down-list-forward|c-go-list-backward|c-go-list-forward|c-go-up-list-backward|c-go-up-list-forward\n|c-got-face-at|c-guess-accumulate-offset|c-guess-accumulate|c-guess-basic-syntax|c-guess-buffer-no-install|c-guess-buffer|c-guess-continued-construct\n|c-guess-current-offset|c-guess-dump-accumulator|c-guess-dump-guessed-style|c-guess-dump-guessed-values|c-guess-empty-line-p|c-guess-examine\n|c-guess-fill-prefix|c-guess-guess|c-guess-guessed-syntactic-symbols|c-guess-install|c-guess-make-basic-offset|c-guess-make-offsets-alist\n|c-guess-make-style|c-guess-merge-offsets-alists|c-guess-no-install|c-guess-region-no-install|c-guess-region|c-guess-reset-accumulator\n|c-guess-sort-accumulator|c-guess-style-name|c-guess-symbolize-integer|c-guess-symbolize-offsets-alist|c-guess-view-mark-guessed-entries\n|c-guess-view-reorder-offsets-alist-in-style|c-guess-view|c-guess|c-hungry-backspace|c-hungry-delete-backwards|c-hungry-delete-forward\n|c-hungry-delete|c-idl-menu|c-in-comment-line-prefix-p|c-in-function-trailer-p|c-in-gcc-asm-p|c-in-knr-argdecl|c-in-literal|c-in-method-def-p\n|c-indent-command|c-indent-defun|c-indent-exp|c-indent-line-or-region|c-indent-line|c-indent-multi-line-block|c-indent-new-comment-line\n|c-indent-one-line-block|c-indent-region|c-init-language-vars-for|c-initialize-builtin-style|c-initialize-cc-mode|c-inside-bracelist-p\n|c-int-to-char|c-intersect-lists|c-invalidate-find-decl-cache|c-invalidate-macro-cache|c-invalidate-state-cache-1|c-invalidate-state-cache\n|c-invalidate-sws-region-after|c-java-menu|c-just-after-func-arglist-p|c-keep-region-active|c-keyword-member|c-keyword-sym|c-lang-const\n|c-lang-defconst-eval-immediately|c-lang-defconst|c-lang-major-mode-is|c-langelem-2nd-pos|c-langelem-col|c-langelem-pos|c-langelem-sym\n|c-last-command-char|c-least-enclosing-brace|c-leave-cc-mode-mode|c-lineup-C-comments|c-lineup-ObjC-method-args-2|c-lineup-ObjC-method-args\n|c-lineup-ObjC-method-call-colons|c-lineup-ObjC-method-call|c-lineup-after-whitesmith-blocks|c-lineup-argcont-scan|c-lineup-argcont\n|c-lineup-arglist-close-under-paren|c-lineup-arglist-intro-after-paren|c-lineup-arglist-operators|c-lineup-arglist|c-lineup-assignments\n|c-lineup-cascaded-calls|c-lineup-close-paren|c-lineup-comment|c-lineup-cpp-define|c-lineup-dont-change|c-lineup-gcc-asm-reg|c-lineup-gnu-DEFUN-intro-cont\n|c-lineup-inexpr-block|c-lineup-java-inher|c-lineup-java-throws|c-lineup-knr-region-comment|c-lineup-math|c-lineup-multi-inher\n|c-lineup-respect-col-0|c-lineup-runin-statements|c-lineup-streamop|c-lineup-string-cont|c-lineup-template-args|c-lineup-topmost-intro-cont\n|c-lineup-whitesmith-in-block|c-list-found-types|c-literal-limits-fast|c-literal-limits|c-literal-type|c-looking-at-bos|c-looking-at-decl-block\n|c-looking-at-inexpr-block-backward|c-looking-at-inexpr-block|c-looking-at-non-alphnumspace|c-looking-at-special-brace-list|c-lookup-lists\n|c-macro-display-buffer|c-macro-expand|c-macro-expansion|c-macro-is-genuine-p|c-macro-vsemi-status-unknown-p|c-major-mode-is|c-make-bare-char-alt\n|c-make-font-lock-BO-decl-search-function|c-make-font-lock-context-search-function|c-make-font-lock-extra-types-blurb|c-make-font-lock-search-form\n|c-make-font-lock-search-function|c-make-inherited-keymap|c-make-inverse-face|c-make-keywords-re|c-make-macro-with-semi-re|c-make-styles-buffer-local\n|c-make-syntactic-matcher|c-mark-<-as-paren|c-mark->-as-paren|c-mark-function|c-mask-paragraph|c-mode-menu|c-mode-symbol|c-mode-var\n|c-mode|c-most-enclosing-brace|c-most-enclosing-decl-block|c-narrow-to-comment-innards|c-narrow-to-most-enclosing-decl-block|c-neutralize-CPP-line\n|c-neutralize-syntax-in-and-mark-CPP|c-newline-and-indent|c-next-single-property-change|c-objc-menu|c-on-identifier|c-one-line-string-p\n|c-outline-level|c-override-default-keywords|c-parse-state-1|c-parse-state-get-strategy|c-parse-state|c-partial-ws-p|c-pike-menu\n|c-point-syntax|c-point|c-populate-syntax-table|c-postprocess-file-styles|c-progress-fini|c-progress-init|c-progress-update|c-pull-open-brace\n|c-punctuation-in|c-put-c-type-property|c-put-char-property-fun|c-put-char-property|c-put-font-lock-face|c-put-font-lock-string-face\n|c-put-in-sws|c-put-is-sws|c-put-overlay|c-query-and-set-macro-start|c-query-macro-start|c-read-offset|c-real-parse-state|c-record-parse-state-state\n|c-record-ref-id|c-record-type-id|c-regexp-opt-depth|c-regexp-opt|c-region-is-active-p|c-remove-any-local-eval-or-mode-variables\n|c-remove-font-lock-face|c-remove-in-sws|c-remove-is-and-in-sws|c-remove-is-sws|c-remove-stale-state-cache-backwards|c-remove-stale-state-cache\n|c-renarrow-state-cache|c-replay-parse-state-state|c-restore-<->-as-parens|c-run-mode-hooks|c-safe-position|c-safe-scan-lists|c-safe\n|c-save-buffer-state|c-sc-parse-partial-sexp-no-category|c-sc-parse-partial-sexp|c-sc-scan-lists-no-category\\+1\\+1|c-sc-scan-lists-no-category\\+1-1\n|c-sc-scan-lists-no-category-1\\+1|c-sc-scan-lists-no-category-1-1|c-sc-scan-lists|c-scan-conditionals|c-scope-operator|c-search-backward-char-property\n|c-search-decl-header-end|c-search-forward-char-property|c-search-uplist-for-classkey|c-semi&comma-inside-parenlist|c-semi&comma-no-newlines-before-nonblanks\n|c-semi&comma-no-newlines-for-oneline-inliners|c-sentence-end|c-set-cpp-delimiters|c-set-fl-decl-start|c-set-offset|c-set-region-active\n|c-set-style-1|c-set-style|c-set-stylevar-fallback|c-setup-doc-comment-style|c-setup-filladapt|c-setup-paragraph-variables|c-shift-line-indentation\n|c-show-syntactic-information|c-simple-skip-symbol-backward|c-skip-comments-and-strings|c-skip-conditional|c-skip-ws-backward\n|c-skip-ws-forward|c-snug-1line-defun-close|c-snug-do-while|c-ssb-lit-begin|c-state-balance-parens-backwards|c-state-cache-after-top-paren\n|c-state-cache-init|c-state-cache-non-literal-place|c-state-cache-top-lparen|c-state-cache-top-paren|c-state-get-min-scan-pos\n|c-state-lit-beg|c-state-literal-at|c-state-mark-point-min-literal|c-state-maybe-marker|c-state-pp-to-literal|c-state-push-any-brace-pair\n|c-state-safe-place|c-state-semi-safe-place|c-submit-bug-report|c-subword-mode|c-suppress-<->-as-parens|c-syntactic-content|c-syntactic-end-of-macro\n|c-syntactic-information-on-region|c-syntactic-re-search-forward|c-syntactic-skip-backward|c-tentative-buffer-changes|c-tnt-chng-cleanup\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nc-tnt-chng-record-state|c-toggle-auto-hungry-state|c-toggle-auto-newline|c-toggle-auto-state|c-toggle-electric-state|c-toggle-hungry-state\n|c-toggle-parse-state-debug|c-toggle-syntactic-indentation|c-trim-found-types|c-try-one-liner|c-uncomment-out-cpps|c-unfind-coalesced-tokens\n|c-unfind-enclosing-token|c-unfind-type|c-unmark-<->-as-paren|c-up-conditional-with-else|c-up-conditional|c-up-list-backward|c-up-list-forward\n|c-update-modeline|c-valid-offset|c-version|c-vsemi-status-unknown-p|c-whack-state-after|c-whack-state-before|c-where-wrt-brace-construct\n|c-while-widening-to-decl-block|c-widen-to-enclosing-decl-scope|c-with-<->-as-parens-suppressed|c-with-all-but-one-cpps-commented-out\n|c-with-cpps-commented-out|c-with-syntax-table|caaaar|caaadr|caaar|caadar|caaddr|caadr|cadaar|cadadr|cadar|caddar|cadddr|caddr|cal-html-cursor-month\n|cal-html-cursor-year|cal-menu-context-mouse-menu|cal-menu-global-mouse-menu|cal-menu-holiday-window-suffix|cal-menu-set-date-title\n|cal-menu-x-popup-menu|cal-tex-cursor-day|cal-tex-cursor-filofax-2week|cal-tex-cursor-filofax-daily|cal-tex-cursor-filofax-week\n|cal-tex-cursor-filofax-year|cal-tex-cursor-month-landscape|cal-tex-cursor-month|cal-tex-cursor-week-iso|cal-tex-cursor-week-monday\n|cal-tex-cursor-week|cal-tex-cursor-week2-summary|cal-tex-cursor-week2|cal-tex-cursor-year-landscape|cal-tex-cursor-year|calc-alg-digit-entry\n|calc-alg-entry|calc-algebraic-entry|calc-align-stack-window|calc-auto-algebraic-entry|calc-big-or-small|calc-binary-op|calc-change-sign\n|calc-check-defines|calc-check-stack|calc-check-trail-aligned|calc-check-user-syntax|calc-clear-unread-commands|calc-count-lines\n|calc-create-buffer|calc-cursor-stack-index|calc-dispatch-help|calc-dispatch|calc-divide|calc-do-alg-entry|calc-do-calc-eval|calc-do-dispatch\n|calc-do-embedded-activate|calc-do-handle-whys|calc-do-quick-calc|calc-do-refresh|calc-do|calc-embedded-activate|calc-embedded|calc-enter-result\n|calc-enter|calc-eval|calc-get-stack-element|calc-grab-rectangle|calc-grab-region|calc-grab-sum-across|calc-grab-sum-down|calc-handle-whys\n|calc-help|calc-info-goto-node|calc-info-summary|calc-info|calc-inv|calc-keypad|calc-kill-stack-buffer|calc-last-args-stub|calc-left-divide\n|calc-match-user-syntax|calc-minibuffer-contains|calc-minibuffer-size|calc-minus|calc-missing-key|calc-mod|calc-mode-var-list-restore-default-values\n|calc-mode-var-list-restore-saved-values|calc-normalize|calc-num-prefix-name|calc-other-window|calc-over|calc-percent|calc-plus\n|calc-pop-above|calc-pop-push-list|calc-pop-push-record-list|calc-pop-stack|calc-pop|calc-power|calc-push-list|calc-quit|calc-read-key-sequence\n|calc-read-key|calc-record-list|calc-record-undo|calc-record-why|calc-record|calc-refresh|calc-renumber-stack|calc-report-bug|calc-roll-down-stack\n|calc-roll-down|calc-roll-up-stack|calc-roll-up|calc-same-interface|calc-select-buffer|calc-set-command-flag|calc-set-mode-line\n|calc-shift-Y-prefix-help|calc-slow-wrapper|calc-stack-size|calc-substack-height|calc-temp-minibuffer-message|calc-times|calc-top-list-n\n|calc-top-list|calc-top-n|calc-top|calc-trail-buffer|calc-trail-display|calc-trail-here|calc-transpose-lines|calc-tutorial|calc-unary-op\n|calc-undo|calc-unread-command|calc-user-invocation|calc-window-width|calc-with-default-simplification|calc-with-trail-buffer|calc-wrapper\n|calc-yank|calc|calcDigit-algebraic|calcDigit-backspace|calcDigit-edit|calcDigit-key|calcDigit-letter|calcDigit-nondigit|calcDigit-start\n|calcFunc-floor|calcFunc-inv|calcFunc-trunc|calculate-icon-indent|calculate-lisp-indent|calculate-tcl-indent|calculator-add-operators\n|calculator-backspace|calculator-clear-fragile|calculator-clear-saved|calculator-clear|calculator-close-paren|calculator-copy|calculator-dec\\/deg-mode\n|calculator-decimal|calculator-digit|calculator-displayer-next|calculator-displayer-prev|calculator-eng-display|calculator-enter\n|calculator-exp|calculator-expt|calculator-fact|calculator-funcall|calculator-get-display|calculator-get-register|calculator-groupize-number\n|calculator-help|calculator-last-input|calculator-menu|calculator-message|calculator-mode|calculator-need-3-lines|calculator-number-to-string\n|calculator-op-arity|calculator-op-or-exp|calculator-op-prec|calculator-op|calculator-open-paren|calculator-paste|calculator-push-curnum\n|calculator-put-value|calculator-quit|calculator-radix-input-mode|calculator-radix-mode|calculator-radix-output-mode|calculator-reduce-stack-once\n|calculator-reduce-stack|calculator-remove-zeros|calculator-repL|calculator-repR|calculator-reset|calculator-rotate-displayer-back\n|calculator-rotate-displayer|calculator-save-and-quit|calculator-save-on-list|calculator-saved-down|calculator-saved-move|calculator-saved-up\n|calculator-set-register|calculator-standard-displayer|calculator-string-to-number|calculator-truncate|calculator-update-display\n|calculator|calendar-abbrev-construct|calendar-absolute-from-gregorian|calendar-astro-date-string|calendar-astro-from-absolute\n|calendar-astro-goto-day-number|calendar-astro-print-day-number|calendar-astro-to-absolute|calendar-backward-day|calendar-backward-month\n|calendar-backward-week|calendar-backward-year|calendar-bahai-date-string|calendar-bahai-goto-date|calendar-bahai-mark-date-pattern\n|calendar-bahai-print-date|calendar-basic-setup|calendar-beginning-of-month|calendar-beginning-of-week|calendar-beginning-of-year\n|calendar-buffer-list|calendar-check-holidays|calendar-chinese-date-string|calendar-chinese-goto-date|calendar-chinese-print-date\n|calendar-column-to-segment|calendar-coptic-date-string|calendar-coptic-goto-date|calendar-coptic-print-date|calendar-count-days-region\n|calendar-current-date|calendar-cursor-holidays|calendar-cursor-to-date|calendar-cursor-to-nearest-date|calendar-cursor-to-visible-date\n|calendar-customized-p|calendar-date-compare|calendar-date-equal|calendar-date-is-valid-p|calendar-date-is-visible-p|calendar-date-string\n|calendar-day-header-construct|calendar-day-name|calendar-day-number|calendar-day-of-week|calendar-day-of-year-string|calendar-dayname-on-or-before\n|calendar-end-of-month|calendar-end-of-week|calendar-end-of-year|calendar-ensure-newline|calendar-ethiopic-date-string|calendar-ethiopic-goto-date\n|calendar-ethiopic-print-date|calendar-exchange-point-and-mark|calendar-exit|calendar-extract-day|calendar-extract-month|calendar-extract-year\n|calendar-forward-day|calendar-forward-month|calendar-forward-week|calendar-forward-year|calendar-frame-setup|calendar-french-date-string\n|calendar-french-goto-date|calendar-french-print-date|calendar-generate-month|calendar-generate-window|calendar-generate|calendar-goto-date\n|calendar-goto-day-of-year|calendar-goto-info-node|calendar-goto-today|calendar-gregorian-from-absolute|calendar-hebrew-date-string\n|calendar-hebrew-goto-date|calendar-hebrew-list-yahrzeits|calendar-hebrew-mark-date-pattern|calendar-hebrew-print-date|calendar-holiday-list\n|calendar-in-read-only-buffer|calendar-increment-month-cons|calendar-increment-month|calendar-insert-at-column|calendar-interval\n|calendar-islamic-date-string|calendar-islamic-goto-date|calendar-islamic-mark-date-pattern|calendar-islamic-print-date|calendar-iso-date-string\n|calendar-iso-from-absolute|calendar-iso-goto-date|calendar-iso-goto-week|calendar-iso-print-date|calendar-julian-date-string\n|calendar-julian-from-absolute|calendar-julian-goto-date|calendar-julian-print-date|calendar-last-day-of-month|calendar-leap-year-p\n|calendar-list-holidays|calendar-lunar-phases|calendar-make-alist|calendar-make-temp-face|calendar-mark-1|calendar-mark-complex\n|calendar-mark-date-pattern|calendar-mark-days-named|calendar-mark-holidays|calendar-mark-month|calendar-mark-today|calendar-mark-visible-date\n|calendar-mayan-date-string|calendar-mayan-goto-long-count-date|calendar-mayan-next-haab-date|calendar-mayan-next-round-date\n|calendar-mayan-next-tzolkin-date|calendar-mayan-previous-haab-date|calendar-mayan-previous-round-date|calendar-mayan-previous-tzolkin-date\n|calendar-mayan-print-date|calendar-mode-line-entry|calendar-mode|calendar-month-edges|calendar-month-name|calendar-mouse-view-diary-entries\n|calendar-mouse-view-other-diary-entries|calendar-move-to-column|calendar-nongregorian-visible-p|calendar-not-implemented|calendar-nth-named-absday\n|calendar-nth-named-day|calendar-other-dates|calendar-other-month|calendar-persian-date-string|calendar-persian-goto-date|calendar-persian-print-date\n|calendar-print-day-of-year|calendar-print-other-dates|calendar-read-date|calendar-read|calendar-recompute-layout-variables|calendar-redraw\n|calendar-scroll-left-three-months|calendar-scroll-left|calendar-scroll-right-three-months|calendar-scroll-right|calendar-scroll-toolkit-scroll\n|calendar-set-date-style|calendar-set-layout-variable|calendar-set-mark|calendar-set-mode-line|calendar-star-date|calendar-string-spread\n|calendar-sum|calendar-sunrise-sunset-month|calendar-sunrise-sunset|calendar-unmark|calendar-update-mode-line|calendar-week-end-day\n|calendar|call-last-kbd-macro|call-next-method|callf|callf2|cancel-edebug-on-entry|cancel-function-timers|cancel-kbd-macro-events\n|cancel-timer-internal|canlock-insert-header|canlock-verify|canonicalize-coding-system-name|canonically-space-region|capitalized-words-mode\n|car-less-than-car|case-table-get-table|case|cc-choose-style-for-mode|cc-eval-when-compile|cc-imenu-init|cc-imenu-java-build-type-args-regex\n|cc-imenu-objc-function|cc-imenu-objc-method-to-selector|cc-imenu-objc-remove-white-space|ccl-compile|ccl-dump|ccl-execute-on-string\n|ccl-execute-with-args|ccl-execute|ccl-program-p|cconv--analyze-function|cconv--analyze-use|cconv--convert-function|cconv--map-diff-elem\n|cconv--map-diff-set|cconv--map-diff|cconv--set-diff-map|cconv--set-diff|cconv-analyse-form|cconv-analyze-form|cconv-closure-convert\n|cconv-convert|cconv-warnings-only|cd-absolute|cd|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cdl-get-file\n|cdl-put-region|cedet-version|ceiling\\*|center-line|center-paragraph|center-region|cfengine-auto-mode|cfengine-common-settings|cfengine-common-syntax\n|cfengine-fill-paragraph|cfengine-mode|cfengine2-beginning-of-defun|cfengine2-end-of-defun|cfengine2-indent-line|cfengine2-mode\n|cfengine2-outline-level|cfengine3--current-function|cfengine3-beginning-of-defun|cfengine3-clear-syntax-cache|cfengine3-completion-function\n|cfengine3-create-imenu-index|cfengine3-current-defun|cfengine3-documentation-function|cfengine3-end-of-defun|cfengine3-format-function-docstring\n|cfengine3-indent-line|cfengine3-make-syntax-cache|cfengine3-mode|change-class|change-log-beginning-of-defun|change-log-end-of-defun\n|change-log-fill-forward-paragraph|change-log-fill-parenthesized-list|change-log-find-file|change-log-get-method-definition-1\n|change-log-get-method-definition|change-log-goto-source-1|change-log-goto-source|change-log-indent|change-log-merge|change-log-mode\n|change-log-name|change-log-next-buffer|change-log-next-error|change-log-resolve-conflict|change-log-search-file-name|change-log-search-tag-name-1\n|change-log-search-tag-name|change-log-sortable-date-at|change-log-version-number-search|char-resolve-modifiers|char-valid-p|charset-bytes\n|charset-chars|charset-description|charset-dimension|charset-id-internal|charset-id|charset-info|charset-iso-final-char|charset-long-name\n|charset-short-name|chart-add-sequence|chart-axis-child-p|chart-axis-draw|chart-axis-list-p|chart-axis-names-child-p|chart-axis-names-list-p\n|chart-axis-names-p|chart-axis-names|chart-axis-p|chart-axis-range-child-p|chart-axis-range-list-p|chart-axis-range-p|chart-axis-range\n|chart-axis|chart-bar-child-p|chart-bar-list-p|chart-bar-p|chart-bar-quickie|chart-bar|chart-child-p|chart-deface-rectangle|chart-display-label\n|chart-draw-axis|chart-draw-data|chart-draw-line|chart-draw-title|chart-draw|chart-emacs-lists|chart-emacs-storage|chart-file-count\n|chart-goto-xy|chart-list-p|chart-mode|chart-new-buffer|chart-p|chart-rmail-from|chart-sequece-child-p|chart-sequece-list-p|chart-sequece-p\n|chart-sequece|chart-size-in-dir|chart-sort-matchlist|chart-sort|chart-space-usage|chart-test-it-all|chart-translate-namezone|chart-translate-xpos\n|chart-translate-ypos|chart-trim|chart-zap-chars|chart|check-ccl-program|check-completion-length|check-declare-directory|check-declare-errmsg\n|check-declare-file|check-declare-files|check-declare-locate|check-declare-scan|check-declare-sort|check-declare-verify|check-declare-warn\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ncheck-face|check-ispell-version|check-parens|check-type|checkdoc-autofix-ask-replace|checkdoc-buffer-label|checkdoc-char=|checkdoc-comments\n|checkdoc-continue|checkdoc-create-common-verbs-regexp|checkdoc-create-error|checkdoc-current-buffer|checkdoc-defun-info|checkdoc-defun\n|checkdoc-delete-overlay|checkdoc-display-status-buffer|checkdoc-error-end|checkdoc-error-start|checkdoc-error-text|checkdoc-error-unfixable\n|checkdoc-error|checkdoc-eval-current-buffer|checkdoc-eval-defun|checkdoc-file-comments-engine|checkdoc-in-example-string-p|checkdoc-in-sample-code-p\n|checkdoc-interactive-ispell-loop|checkdoc-interactive-loop|checkdoc-interactive|checkdoc-ispell-comments|checkdoc-ispell-continue\n|checkdoc-ispell-current-buffer|checkdoc-ispell-defun|checkdoc-ispell-docstring-engine|checkdoc-ispell-init|checkdoc-ispell-interactive\n|checkdoc-ispell-message-interactive|checkdoc-ispell-message-text|checkdoc-ispell-start|checkdoc-ispell|checkdoc-list-of-strings-p\n|checkdoc-make-overlay|checkdoc-message-interactive-ispell-loop|checkdoc-message-interactive|checkdoc-message-text-engine|checkdoc-message-text-next-string\n|checkdoc-message-text-search|checkdoc-message-text|checkdoc-mode-line-update|checkdoc-next-docstring|checkdoc-next-error|checkdoc-next-message-error\n|checkdoc-output-mode|checkdoc-outside-major-sexp|checkdoc-overlay-end|checkdoc-overlay-put|checkdoc-overlay-start|checkdoc-proper-noun-region-engine\n|checkdoc-recursive-edit|checkdoc-rogue-space-check-engine|checkdoc-rogue-spaces|checkdoc-run-hooks|checkdoc-sentencespace-region-engine\n|checkdoc-show-diagnostics|checkdoc-start-section|checkdoc-start|checkdoc-this-string-valid-engine|checkdoc-this-string-valid\n|checkdoc-y-or-n-p|checkdoc|child-of-class-p|chmod|choose-completion-delete-max-match|choose-completion-guess-base-position|choose-completion-string\n|choose-completion|cl--adjoin|cl--arglist-args|cl--block-throw--cmacro|cl--block-throw|cl--block-wrapper--cmacro|cl--block-wrapper\n|cl--check-key|cl--check-match|cl--check-test-nokey|cl--check-test|cl--compile-time-too|cl--compiler-macro-adjoin|cl--compiler-macro-assoc\n|cl--compiler-macro-cXXr|cl--compiler-macro-get|cl--compiler-macro-list\\*|cl--compiler-macro-member|cl--compiler-macro-typep\n|cl--compiling-file|cl--const-expr-p|cl--const-expr-val|cl--defalias|cl--defsubst-expand|cl--delete-duplicates|cl--do-arglist|cl--do-prettyprint\n|cl--do-proclaim|cl--do-remf|cl--do-subst|cl--expand-do-loop|cl--expr-contains-any|cl--expr-contains|cl--expr-depends-p|cl--finite-do\n|cl--function-convert|cl--gv-adapt|cl--labels-convert|cl--letf|cl--loop-build-ands|cl--loop-handle-accum|cl--loop-let|cl--loop-set-iterator-function\n|cl--macroexp-fboundp|cl--make-type-test|cl--make-usage-args|cl--make-usage-var|cl--map-intervals|cl--map-keymap-recursively|cl--map-overlays\n|cl--mapcar-many|cl--nsublis-rec|cl--parse-loop-clause|cl--parsing-keywords|cl--pass-args-to-cl-declare|cl--pop2|cl--position|cl--random-time\n|cl--safe-expr-p|cl--set-buffer-substring|cl--set-frame-visible-p|cl--set-getf|cl--set-substring|cl--simple-expr-p|cl--simple-exprs-p\n|cl--sm-macroexpand|cl--struct-epg-context-p--cmacro|cl--struct-epg-context-p|cl--struct-epg-data-p--cmacro|cl--struct-epg-data-p\n|cl--struct-epg-import-result-p--cmacro|cl--struct-epg-import-result-p|cl--struct-epg-import-status-p--cmacro|cl--struct-epg-import-status-p\n|cl--struct-epg-key-p--cmacro|cl--struct-epg-key-p|cl--struct-epg-key-signature-p--cmacro|cl--struct-epg-key-signature-p|cl--struct-epg-new-signature-p--cmacro\n|cl--struct-epg-new-signature-p|cl--struct-epg-sig-notation-p--cmacro|cl--struct-epg-sig-notation-p|cl--struct-epg-signature-p--cmacro\n|cl--struct-epg-signature-p|cl--struct-epg-sub-key-p--cmacro|cl--struct-epg-sub-key-p|cl--struct-epg-user-id-p--cmacro|cl--struct-epg-user-id-p\n|cl--sublis-rec|cl--sublis|cl--transform-lambda|cl--tree-equal-rec|cl--unused-var-p|cl--wrap-in-nil-block|cl-caaaar|cl-caaadr|cl-caaar\n|cl-caadar|cl-caaddr|cl-caadr|cl-cadaar|cl-cadadr|cl-cadar|cl-caddar|cl-cadddr|cl-cdaaar|cl-cdaadr|cl-cdaar|cl-cdadar|cl-cdaddr|cl-cdadr\n|cl-cddaar|cl-cddadr|cl-cddar|cl-cdddar|cl-cddddr|cl-cdddr|cl-clrhash|cl-copy-seq|cl-copy-tree|cl-digit-char-p|cl-eighth|cl-fifth|cl-flet\\*\n|cl-floatp-safe|cl-fourth|cl-fresh-line|cl-gethash|cl-hash-table-count|cl-hash-table-p|cl-maclisp-member|cl-macroexpand-all|cl-macroexpand\n|cl-make-hash-table|cl-map-extents|cl-map-intervals|cl-map-keymap-recursively|cl-map-keymap|cl-maphash|cl-multiple-value-apply|cl-multiple-value-call\n|cl-multiple-value-list|cl-ninth|cl-not-hash-table|cl-nreconc|cl-nth-value|cl-parse-integer|cl-prettyprint|cl-puthash|cl-remhash|cl-revappend\n|cl-second|cl-set-getf|cl-seventh|cl-signum|cl-sixth|cl-struct-sequence-type|cl-struct-setf-expander|cl-struct-slot-info|cl-struct-slot-offset\n|cl-struct-slot-value--cmacro|cl-struct-slot-value|cl-svref|cl-tenth|cl-third|cl-unload-function|cl-values-list|cl-values|class-abstract-p\n|class-children|class-constructor|class-direct-subclasses|class-direct-superclasses|class-method-invocation-order|class-name|class-of\n|class-option-assoc|class-option|class-p|class-parent|class-parents|class-precedence-list|class-slot-initarg|class-v|clean-buffer-list-delay\n|clean-buffer-list|clear-all-completions|clear-buffer-auto-save-failure|clear-charset-maps|clear-face-cache|clear-font-cache|clear-rectangle-line\n|clear-rectangle|clipboard-kill-region|clipboard-kill-ring-save|clipboard-yank|clone-buffer|clone-indirect-buffer-other-window\n|clone-process|clone|close-display-connection|close-font|close-rectangle|cmpl-coerce-string-case|cmpl-hours-since-origin|cmpl-merge-string-cases\n|cmpl-prefix-entry-head|cmpl-prefix-entry-tail|cmpl-string-case-type|coding-system-base|coding-system-category|coding-system-doc-string\n|coding-system-eol-type-mnemonic|coding-system-equal|coding-system-from-name|coding-system-lessp|coding-system-mnemonic|coding-system-plist\n|coding-system-post-read-conversion|coding-system-pre-write-conversion|coding-system-put|coding-system-translation-table-for-decode\n|coding-system-translation-table-for-encode|coding-system-type|coerce|color-cie-de2000|color-clamp|color-complement-hex|color-complement\n|color-darken-hsl|color-darken-name|color-desaturate-hsl|color-desaturate-name|color-distance|color-gradient|color-hsl-to-rgb|color-hue-to-rgb\n|color-lab-to-srgb|color-lab-to-xyz|color-lighten-hsl|color-lighten-name|color-name-to-rgb|color-rgb-to-hex|color-rgb-to-hsl|color-rgb-to-hsv\n|color-saturate-hsl|color-saturate-name|color-srgb-to-lab|color-srgb-to-xyz|color-xyz-to-lab|color-xyz-to-srgb|column-number-mode\n|combine-after-change-execute|comint--complete-file-name-data|comint--match-partial-filename|comint--requote-argument|comint--unquote&expand-filename\n|comint--unquote&requote-argument|comint--unquote-argument|comint-accumulate|comint-add-to-input-history|comint-adjust-point|comint-adjust-window-point\n|comint-after-pmark-p|comint-append-output-to-file|comint-args|comint-arguments|comint-backward-matching-input|comint-bol-or-process-mark\n|comint-bol|comint-c-a-p-replace-by-expanded-history|comint-carriage-motion|comint-check-proc|comint-check-source|comint-completion-at-point\n|comint-completion-file-name-table|comint-continue-subjob|comint-copy-old-input|comint-delchar-or-maybe-eof|comint-delete-input\n|comint-delete-output|comint-delim-arg|comint-directory|comint-dynamic-complete-as-filename|comint-dynamic-complete-filename|comint-dynamic-complete\n|comint-dynamic-list-completions|comint-dynamic-list-filename-completions|comint-dynamic-list-input-ring-select|comint-dynamic-list-input-ring\n|comint-dynamic-simple-complete|comint-exec-1|comint-exec|comint-extract-string|comint-filename-completion|comint-forward-matching-input\n|comint-get-next-from-history|comint-get-old-input-default|comint-get-source|comint-goto-input|comint-goto-process-mark|comint-history-isearch-backward-regexp\n|comint-history-isearch-backward|comint-history-isearch-end|comint-history-isearch-message|comint-history-isearch-pop-state|comint-history-isearch-push-state\n|comint-history-isearch-search|comint-history-isearch-setup|comint-history-isearch-wrap|comint-how-many-region|comint-insert-input\n|comint-insert-previous-argument|comint-interrupt-subjob|comint-kill-input|comint-kill-region|comint-kill-subjob|comint-kill-whole-line\n|comint-line-beginning-position|comint-magic-space|comint-match-partial-filename|comint-mode|comint-next-input|comint-next-matching-input-from-input\n|comint-next-matching-input|comint-next-prompt|comint-output-filter|comint-postoutput-scroll-to-bottom|comint-preinput-scroll-to-bottom\n|comint-previous-input-string|comint-previous-input|comint-previous-matching-input-from-input|comint-previous-matching-input-string-position\n|comint-previous-matching-input-string|comint-previous-matching-input|comint-previous-prompt|comint-proc-query|comint-quit-subjob\n|comint-quote-filename|comint-read-input-ring|comint-read-noecho|comint-redirect-cleanup|comint-redirect-filter|comint-redirect-preoutput-filter\n|comint-redirect-remove-redirection|comint-redirect-results-list-from-process|comint-redirect-results-list|comint-redirect-send-command-to-process\n|comint-redirect-send-command|comint-redirect-setup|comint-regexp-arg|comint-replace-by-expanded-filename|comint-replace-by-expanded-history-before-point\n|comint-replace-by-expanded-history|comint-restore-input|comint-run|comint-search-arg|comint-search-start|comint-send-eof|comint-send-input\n|comint-send-region|comint-send-string|comint-set-process-mark|comint-show-maximum-output|comint-show-output|comint-simple-send\n|comint-skip-input|comint-skip-prompt|comint-snapshot-last-prompt|comint-source-default|comint-stop-subjob|comint-strip-ctrl-m\n|comint-substitute-in-file-name|comint-truncate-buffer|comint-unquote-filename|comint-update-fence|comint-watch-for-password-prompt\n|comint-within-quotes|comint-word|comint-write-input-ring|comint-write-output|command-apropos|command-error-default-function|command-history-mode\n|command-history-repeat|command-line-1|command-line-normalize-file-name|comment-add|comment-beginning|comment-box|comment-choose-indent\n|comment-dwim|comment-enter-backward|comment-forward|comment-indent-default|comment-indent-new-line|comment-indent|comment-kill\n|comment-make-extra-lines|comment-normalize-vars|comment-only-p|comment-or-uncomment-region|comment-padleft|comment-padright|comment-quote-nested\n|comment-quote-re|comment-region-default|comment-region-internal|comment-region|comment-search-backward|comment-search-forward\n|comment-set-column|comment-string-reverse|comment-string-strip|comment-valid-prefix-p|comment-with-narrowing|common-lisp-indent-function\n|common-lisp-mode|compare-windows-dehighlight|compare-windows-get-next-window|compare-windows-get-recent-window|compare-windows-highlight\n|compare-windows-skip-whitespace|compare-windows-sync-default-function|compare-windows-sync-regexp|compare-windows|compilation--compat-error-properties\n|compilation--compat-parse-errors|compilation--ensure-parse|compilation--file-struct->file-spec|compilation--file-struct->formats\n|compilation--file-struct->loc-tree|compilation--flush-directory-cache|compilation--flush-file-structure|compilation--flush-parse\n|compilation--loc->col|compilation--loc->file-struct|compilation--loc->line|compilation--loc->marker|compilation--loc->visited\n|compilation--make-cdrloc|compilation--make-file-struct|compilation--make-message--cmacro|compilation--make-message|compilation--message->end-loc--cmacro\n|compilation--message->end-loc|compilation--message->loc--cmacro|compilation--message->loc|compilation--message->type--cmacro\n|compilation--message->type|compilation--message-p--cmacro|compilation--message-p|compilation--parse-region|compilation--previous-directory\n|compilation--put-prop|compilation--remove-properties|compilation--unsetup|compilation-auto-jump|compilation-buffer-internal-p\n|compilation-buffer-name|compilation-buffer-p|compilation-button-map|compilation-directory-properties|compilation-display-error\n|compilation-error-properties|compilation-face|compilation-fake-loc|compilation-filter|compilation-find-buffer|compilation-find-file\n|compilation-forget-errors|compilation-get-file-structure|compilation-goto-locus-delete-o|compilation-goto-locus|compilation-handle-exit\n|compilation-internal-error-properties|compilation-loop|compilation-minor-mode|compilation-mode-font-lock-keywords|compilation-mode\n|compilation-move-to-column|compilation-next-error-function|compilation-next-error|compilation-next-file|compilation-next-single-property-change\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ncompilation-parse-errors|compilation-previous-error|compilation-previous-file|compilation-read-command|compilation-revert-buffer\n|compilation-sentinel|compilation-set-skip-threshold|compilation-set-window-height|compilation-set-window|compilation-setup|compilation-shell-minor-mode\n|compilation-start|compile-goto-error|compile-mouse-goto-error|compile|compiler-macroexpand|complete-in-turn|complete-symbol|complete-tag\n|complete-with-action|complete|completing-read-default|completing-read-multiple|completion--cache-all-sorted-completions|completion--capf-wrapper\n|completion--common-suffix|completion--complete-and-exit|completion--cycle-threshold|completion--do-completion|completion--done\n|completion--embedded-envvar-table|completion--field-metadata|completion--file-name-table|completion--flush-all-sorted-completions\n|completion--in-region-1|completion--in-region|completion--insert-strings|completion--make-envvar-table|completion--merge-suffix\n|completion--message|completion--metadata|completion--nth-completion|completion--post-self-insert|completion--replace|completion--sifn-requote\n|completion--some|completion--string-equal-p|completion--styles|completion--try-word-completion|completion--twq-all|completion--twq-try\n|completion-all-completions|completion-all-sorted-completions|completion-backup-filename|completion-basic--pattern|completion-basic-all-completions\n|completion-basic-try-completion|completion-before-command|completion-c-mode-hook|completion-complete-and-exit|completion-def-wrapper\n|completion-emacs21-all-completions|completion-emacs21-try-completion|completion-emacs22-all-completions|completion-emacs22-try-completion\n|completion-file-name-table|completion-find-file-hook|completion-help-at-point|completion-hilit-commonality|completion-in-region--postch\n|completion-in-region--single-word|completion-in-region-mode|completion-initialize|completion-initials-all-completions|completion-initials-expand\n|completion-initials-try-completion|completion-kill-region|completion-last-use-time|completion-lisp-mode-hook|completion-list-mode-finish\n|completion-list-mode|completion-metadata-get|completion-metadata|completion-mode|completion-num-uses|completion-pcm--all-completions\n|completion-pcm--filename-try-filter|completion-pcm--find-all-completions|completion-pcm--hilit-commonality|completion-pcm--merge-completions\n|completion-pcm--merge-try|completion-pcm--optimize-pattern|completion-pcm--pattern->regex|completion-pcm--pattern->string|completion-pcm--pattern-trivial-p\n|completion-pcm--prepare-delim-re|completion-pcm--string->pattern|completion-pcm-all-completions|completion-pcm-try-completion\n|completion-search-next|completion-search-peek|completion-search-reset-1|completion-search-reset|completion-setup-fortran-mode\n|completion-setup-function|completion-source|completion-string|completion-substring--all-completions|completion-substring-all-completions\n|completion-substring-try-completion|completion-table-with-context|completion-try-completion|compose-chars-after|compose-chars\n|compose-glyph-string-relative|compose-glyph-string|compose-gstring-for-dotted-circle|compose-gstring-for-graphic|compose-gstring-for-terminal\n|compose-gstring-for-variation-glyph|compose-last-chars|compose-mail-other-frame|compose-mail-other-window|compose-mail|compose-region-internal\n|compose-region|compose-string-internal|compose-string|composition-get-gstring|concatenate|condition-case-no-debug|conf-align-assignments\n|conf-colon-mode|conf-javaprop-mode|conf-mode-initialize|conf-mode-maybe|conf-mode|conf-outline-level|conf-ppd-mode|conf-quote-normal\n|conf-space-keywords|conf-space-mode-internal|conf-space-mode|conf-unix-mode|conf-windows-mode|conf-xdefaults-mode|confirm-nonexistent-file-or-buffer\n|constructor|convert-define-charset-argument|cookie-apropos|cookie-check-file|cookie-doctor|cookie-insert|cookie-read|cookie-shuffle-vector\n|cookie-snarf|cookie|cookie1|copy-case-table|copy-cvs-flags|copy-cvs-tag|copy-dir-locals-to-file-locals-prop-line|copy-dir-locals-to-file-locals\n|copy-ebrowse-bs|copy-ebrowse-cs|copy-ebrowse-hs|copy-ebrowse-ms|copy-ebrowse-position|copy-ebrowse-ts|copy-erc-channel-user|copy-erc-response\n|copy-erc-server-user|copy-ert--ewoc-entry|copy-ert--stats|copy-ert--test-execution-info|copy-ert-test-aborted-with-non-local-exit\n|copy-ert-test-failed|copy-ert-test-passed|copy-ert-test-quit|copy-ert-test-result-with-condition|copy-ert-test-result|copy-ert-test-skipped\n|copy-ert-test|copy-ewoc--node|copy-ewoc|copy-face|copy-file-locals-to-dir-locals|copy-flymake-ler|copy-gdb-handler|copy-gdb-table\n|copy-htmlize-fstruct|copy-js--js-handle|copy-js--pitem|copy-list|copy-package--bi-desc|copy-package-desc|copy-profiler-calltree\n|copy-profiler-profile|copy-rectangle-as-kill|copy-rectangle-to-register|copy-seq|copy-ses--locprn|copy-sgml-tag|copy-soap-array-type\n|copy-soap-basic-type|copy-soap-binding|copy-soap-bound-operation|copy-soap-element|copy-soap-message|copy-soap-namespace-link\n|copy-soap-namespace|copy-soap-operation|copy-soap-port-type|copy-soap-port|copy-soap-sequence-element|copy-soap-sequence-type\n|copy-soap-simple-type|copy-soap-wsdl|copy-tar-header|copy-to-buffer|copy-to-register|copy-url-queue|copyright-find-copyright|copyright-find-end\n|copyright-fix-years|copyright-limit|copyright-offset-too-large-p|copyright-re-search|copyright-start-point|copyright-update-directory\n|copyright-update-year|copyright-update|copyright|count-if-not|count-if|count-lines-page|count-lines-region|count-matches|count-text-lines\n|count-trailing-whitespace-region|count-windows|count-words--buffer-message|count-words--message|count-words-region|count|cperl-1\\+\n|cperl-1-|cperl-add-tags-recurse-noxs-fullpath|cperl-add-tags-recurse-noxs|cperl-add-tags-recurse|cperl-after-block-and-statement-beg\n|cperl-after-block-p|cperl-after-change-function|cperl-after-expr-p|cperl-after-label|cperl-after-sub-regexp|cperl-at-end-of-expr\n|cperl-backward-to-noncomment|cperl-backward-to-start-of-continued-exp|cperl-backward-to-start-of-expr|cperl-beautify-level|cperl-beautify-regexp-piece\n|cperl-beautify-regexp|cperl-beginning-of-property|cperl-block-p|cperl-build-manpage|cperl-cached-syntax-table|cperl-calculate-indent-within-comment\n|cperl-calculate-indent|cperl-check-syntax|cperl-choose-color|cperl-comment-indent|cperl-comment-region|cperl-commentify|cperl-contract-level\n|cperl-contract-levels|cperl-db|cperl-define-key|cperl-delay-update-hook|cperl-describe-perl-symbol|cperl-do-auto-fill|cperl-electric-backspace\n|cperl-electric-brace|cperl-electric-else|cperl-electric-keyword|cperl-electric-lbrace|cperl-electric-paren|cperl-electric-pod\n|cperl-electric-rparen|cperl-electric-semi|cperl-electric-terminator|cperl-emulate-lazy-lock|cperl-enable-font-lock|cperl-ensure-newlines\n|cperl-etags|cperl-facemenu-add-face-function|cperl-fill-paragraph|cperl-find-bad-style|cperl-find-pods-heres-region|cperl-find-pods-heres\n|cperl-find-sub-attrs|cperl-find-tags|cperl-fix-line-spacing|cperl-font-lock-fontify-region-function|cperl-font-lock-unfontify-region-function\n|cperl-fontify-syntaxically|cperl-fontify-update-bad|cperl-fontify-update|cperl-forward-group-in-re|cperl-forward-re|cperl-forward-to-end-of-expr\n|cperl-get-help-defer|cperl-get-help|cperl-get-here-doc-region|cperl-get-state|cperl-here-doc-spell|cperl-highlight-charclass|cperl-imenu--create-perl-index\n|cperl-imenu-addback|cperl-imenu-info-imenu-name|cperl-imenu-info-imenu-search|cperl-imenu-name-and-position|cperl-imenu-on-info\n|cperl-indent-command|cperl-indent-exp|cperl-indent-for-comment|cperl-indent-line|cperl-indent-region|cperl-info-buffer|cperl-info-on-command\n|cperl-info-on-current-command|cperl-init-faces-weak|cperl-init-faces|cperl-inside-parens-p|cperl-invert-if-unless-modifiers|cperl-invert-if-unless\n|cperl-lazy-hook|cperl-lazy-install|cperl-lazy-unstall|cperl-linefeed|cperl-lineup|cperl-list-fold|cperl-load-font-lock-keywords-1\n|cperl-load-font-lock-keywords-2|cperl-load-font-lock-keywords|cperl-look-at-leading-count|cperl-make-indent|cperl-make-regexp-x\n|cperl-map-pods-heres|cperl-mark-active|cperl-menu-to-keymap|cperl-menu|cperl-mode|cperl-modify-syntax-type|cperl-msb-fix|cperl-narrow-to-here-doc\n|cperl-next-bad-style|cperl-next-interpolated-REx-0|cperl-next-interpolated-REx-1|cperl-next-interpolated-REx|cperl-outline-level\n|cperl-perldoc-at-point|cperl-perldoc|cperl-pod-spell|cperl-pod-to-manpage|cperl-pod2man-build-command|cperl-postpone-fontification\n|cperl-protect-defun-start|cperl-ps-print-init|cperl-ps-print|cperl-put-do-not-fontify|cperl-putback-char|cperl-regext-to-level-start\n|cperl-select-this-pod-or-here-doc|cperl-set-style-back|cperl-set-style|cperl-setup-tmp-buf|cperl-sniff-for-indent|cperl-switch-to-doc-buffer\n|cperl-tags-hier-fill|cperl-tags-hier-init|cperl-tags-treeify|cperl-time-fontification|cperl-to-comment-or-eol|cperl-toggle-abbrev\n|cperl-toggle-auto-newline|cperl-toggle-autohelp|cperl-toggle-construct-fix|cperl-toggle-electric|cperl-toggle-set-debug-unwind\n|cperl-uncomment-region|cperl-unwind-to-safe|cperl-update-syntaxification|cperl-use-region-p|cperl-val|cperl-windowed-init|cperl-word-at-point-hard\n|cperl-word-at-point|cperl-write-tags|cperl-xsub-scan|cpp-choose-branch|cpp-choose-default-face|cpp-choose-face|cpp-choose-symbol\n|cpp-create-bg-face|cpp-edit-apply|cpp-edit-background|cpp-edit-false|cpp-edit-home|cpp-edit-known|cpp-edit-list-entry-get-or-create\n|cpp-edit-load|cpp-edit-mode|cpp-edit-reset|cpp-edit-save|cpp-edit-toggle-known|cpp-edit-toggle-unknown|cpp-edit-true|cpp-edit-unknown\n|cpp-edit-write|cpp-face-name|cpp-grow-overlay|cpp-highlight-buffer|cpp-make-button|cpp-make-known-overlay|cpp-make-overlay-hidden\n|cpp-make-overlay-read-only|cpp-make-overlay-sticky|cpp-make-unknown-overlay|cpp-parse-close|cpp-parse-edit|cpp-parse-error|cpp-parse-open\n|cpp-parse-reset|cpp-progress-message|cpp-push-button|cpp-signal-read-only|create-default-fontset|create-fontset-from-ascii-font\n|create-fontset-from-x-resource|create-glyph|crm--choose-completion-string|crm--collection-fn|crm--completion-command|crm--current-element\n|crm-complete-and-exit|crm-complete-word|crm-complete|crm-completion-help|crm-minibuffer-complete-and-exit|crm-minibuffer-complete\n|crm-minibuffer-completion-help|css--font-lock-keywords|css-current-defun-name|css-extract-keyword-list|css-extract-parse-val-grammar\n|css-extract-props-and-vals|css-fill-paragraph|css-mode|css-smie--backward-token|css-smie--forward-token|css-smie-rules|ctext-non-standard-encodings-table\n|ctext-post-read-conversion|ctext-pre-write-conversion|ctl-x-4-prefix|ctl-x-5-prefix|ctl-x-ctl-p-prefix|cua--M\\/H-key|cua--deactivate\n|cua--fallback|cua--filter-buffer-noprops|cua--init-keymaps|cua--keep-active|cua--post-command-handler-1|cua--post-command-handler\n|cua--pre-command-handler-1|cua--pre-command-handler|cua--prefix-arg|cua--prefix-copy-handler|cua--prefix-cut-handler|cua--prefix-override-handler\n|cua--prefix-override-replay|cua--prefix-override-timeout|cua--prefix-repeat-handler|cua--select-keymaps|cua--self-insert-char-p\n|cua--shift-control-c-prefix|cua--shift-control-prefix|cua--shift-control-x-prefix|cua--update-indications|cua-cancel|cua-copy-region\n|cua-cut-region|cua-debug|cua-delete-region|cua-exchange-point-and-mark|cua-help-for-region|cua-mode|cua-paste-pop|cua-paste|cua-pop-to-last-change\n|cua-rectangle-mark-mode|cua-scroll-down|cua-scroll-up|cua-selection-mode|cua-set-mark|cua-set-rectangle-mark|cua-toggle-global-mark\n|current-line|custom--frame-color-default|custom--initialize-widget-variables|custom--sort-vars-1|custom--sort-vars|custom-add-dependencies\n|custom-add-link|custom-add-load|custom-add-option|custom-add-package-version|custom-add-parent-links|custom-add-see-also|custom-add-to-group\n|custom-add-version|custom-autoload|custom-available-themes|custom-browse-face-tag-action|custom-browse-group-tag-action|custom-browse-insert-prefix\n|custom-browse-variable-tag-action|custom-browse-visibility-action|custom-buffer-create-internal|custom-buffer-create-other-window\n|custom-buffer-create|custom-check-theme|custom-command-apply|custom-comment-create|custom-comment-hide|custom-comment-invisible-p\n|custom-comment-show|custom-convert-widget|custom-current-group|custom-declare-face|custom-declare-group|custom-declare-theme|custom-declare-variable\n|custom-face-action|custom-face-attributes-get|custom-face-edit-activate|custom-face-edit-all|custom-face-edit-attribute-tag|custom-face-edit-convert-widget\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ncustom-face-edit-deactivate|custom-face-edit-delete|custom-face-edit-fix-value|custom-face-edit-lisp|custom-face-edit-selected\n|custom-face-edit-value-create|custom-face-edit-value-visibility-action|custom-face-get-current-spec|custom-face-mark-to-reset-standard\n|custom-face-mark-to-save|custom-face-menu-create|custom-face-reset-saved|custom-face-reset-standard|custom-face-save-command\n|custom-face-save|custom-face-set|custom-face-standard-value|custom-face-state-set-and-redraw|custom-face-state-set|custom-face-state\n|custom-face-value-create|custom-face-widget-to-spec|custom-facep|custom-file|custom-filter-face-spec|custom-fix-face-spec|custom-get-fresh-buffer\n|custom-group-action|custom-group-link-action|custom-group-mark-to-reset-standard|custom-group-mark-to-save|custom-group-members\n|custom-group-menu-create|custom-group-of-mode|custom-group-reset-current|custom-group-reset-saved|custom-group-reset-standard\n|custom-group-sample-face-get|custom-group-save|custom-group-set|custom-group-state-set-and-redraw|custom-group-state-update|custom-group-value-create\n|custom-group-visibility-create|custom-guess-type|custom-handle-all-keywords|custom-handle-keyword|custom-hook-convert-widget\n|custom-initialize-changed|custom-initialize-default|custom-initialize-reset|custom-initialize-set|custom-load-symbol|custom-load-widget\n|custom-magic-reset|custom-magic-value-create|custom-make-theme-feature|custom-menu-create|custom-menu-filter|custom-mode|custom-note-var-changed\n|custom-notify|custom-post-filter-face-spec|custom-pre-filter-face-spec|custom-prefix-add|custom-prompt-customize-unsaved-options\n|custom-prompt-variable|custom-push-theme|custom-put-if-not|custom-quote|custom-redraw-magic|custom-redraw|custom-reset-faces|custom-reset-standard-save-and-update\n|custom-reset-variables|custom-reset|custom-save-all|custom-save-delete|custom-save-faces|custom-save-variables|custom-set-default\n|custom-set-minor-mode|custom-show|custom-sort-items|custom-split-regexp-maybe|custom-state-buffer-message|custom-tag-action|custom-tag-mouse-down-action\n|custom-theme--load-path|custom-theme-enabled-p|custom-theme-load-confirm|custom-theme-name-valid-p|custom-theme-recalc-face|custom-theme-recalc-variable\n|custom-theme-reset-faces|custom-theme-reset-variables|custom-theme-visit-theme|custom-toggle-hide-face|custom-toggle-hide-variable\n|custom-toggle-hide|custom-toggle-parent|custom-unlispify-menu-entry|custom-unlispify-tag-name|custom-unloaded-symbol-p|custom-unloaded-widget-p\n|custom-unsaved-options|custom-variable-action|custom-variable-backup-value|custom-variable-documentation|custom-variable-edit-lisp\n|custom-variable-edit|custom-variable-mark-to-reset-standard|custom-variable-mark-to-save|custom-variable-menu-create|custom-variable-prompt\n|custom-variable-reset-backup|custom-variable-reset-saved|custom-variable-reset-standard|custom-variable-save|custom-variable-set\n|custom-variable-standard-value|custom-variable-state-set-and-redraw|custom-variable-state-set|custom-variable-state|custom-variable-theme-value\n|custom-variable-type|custom-variable-value-create|customize-apropos-faces|customize-apropos-groups|customize-apropos-options\n|customize-apropos|customize-browse|customize-changed-options|customize-changed|customize-create-theme|customize-customized|customize-face-other-window\n|customize-face|customize-group-other-window|customize-group|customize-mark-as-set|customize-mark-to-save|customize-menu-create\n|customize-mode|customize-object|customize-option-other-window|customize-option|customize-package-emacs-version|customize-project\n|customize-push-and-save|customize-read-group|customize-rogue|customize-save-customized|customize-save-variable|customize-saved\n|customize-set-value|customize-set-variable|customize-target|customize-themes|customize-unsaved|customize-variable-other-window\n|customize-variable|customize-version-lessp|customize|cvs-add-branch-prefix|cvs-add-face|cvs-add-secondary-branch-prefix|cvs-addto-collection\n|cvs-append-to-ignore|cvs-append|cvs-applicable-p|cvs-buffer-check|cvs-buffer-p|cvs-bury-buffer|cvs-car|cvs-cdr|cvs-change-cvsroot\n|cvs-check-fileinfo|cvs-checkout|cvs-cleanup-collection|cvs-cleanup-removed|cvs-cmd-do|cvs-commit-filelist|cvs-commit-minor-wrap\n|cvs-create-fileinfo|cvs-defaults|cvs-diff-backup-extractor|cvs-dir-member-p|cvs-dired-noselect|cvs-do-commit|cvs-do-edit-log|cvs-do-match\n|cvs-do-removal|cvs-ediff-diff|cvs-ediff-exit-hook|cvs-ediff-merge|cvs-ediff-startup-hook|cvs-edit-log-filelist|cvs-edit-log-minor-wrap\n|cvs-edit-log-text-at-point|cvs-emerge-diff|cvs-emerge-merge|cvs-enabledp|cvs-every|cvs-examine|cvs-execute-single-file-list|cvs-execute-single-file\n|cvs-expand-dir-name|cvs-file-to-string|cvs-fileinfo->backup-file|cvs-fileinfo->base-rev--cmacro|cvs-fileinfo->base-rev|cvs-fileinfo->dir--cmacro\n|cvs-fileinfo->dir|cvs-fileinfo->file--cmacro|cvs-fileinfo->file|cvs-fileinfo->full-log--cmacro|cvs-fileinfo->full-log|cvs-fileinfo->full-name\n|cvs-fileinfo->full-path|cvs-fileinfo->head-rev--cmacro|cvs-fileinfo->head-rev|cvs-fileinfo->marked--cmacro|cvs-fileinfo->marked\n|cvs-fileinfo->merge--cmacro|cvs-fileinfo->merge|cvs-fileinfo->pp-name|cvs-fileinfo->subtype--cmacro|cvs-fileinfo->subtype|cvs-fileinfo->type--cmacro\n|cvs-fileinfo->type|cvs-fileinfo-from-entries|cvs-fileinfo-p--cmacro|cvs-fileinfo-p|cvs-fileinfo-pp|cvs-fileinfo-update|cvs-fileinfo<\n|cvs-find-modif|cvs-first|cvs-flags-defaults--cmacro|cvs-flags-defaults|cvs-flags-define|cvs-flags-desc--cmacro|cvs-flags-desc|cvs-flags-hist-sym--cmacro\n|cvs-flags-hist-sym|cvs-flags-p--cmacro|cvs-flags-p|cvs-flags-persist--cmacro|cvs-flags-persist|cvs-flags-qtypedesc--cmacro|cvs-flags-qtypedesc\n|cvs-flags-query|cvs-flags-set|cvs-get-buffer-create|cvs-get-cvsroot|cvs-get-marked|cvs-get-module|cvs-global-menu|cvs-header-msg\n|cvs-help|cvs-ignore-marks-p|cvs-insert-file|cvs-insert-strings|cvs-insert-visited-file|cvs-is-within-p|cvs-make-cvs-buffer|cvs-map\n|cvs-mark-buffer-changed|cvs-mark-fis-dead|cvs-match|cvs-menu|cvs-minor-mode|cvs-mode!|cvs-mode-acknowledge|cvs-mode-add-change-log-entry-other-window\n|cvs-mode-add|cvs-mode-byte-compile-files|cvs-mode-checkout|cvs-mode-commit-setup|cvs-mode-commit|cvs-mode-delete-lock|cvs-mode-diff-1\n|cvs-mode-diff-backup|cvs-mode-diff-head|cvs-mode-diff-map|cvs-mode-diff-repository|cvs-mode-diff-vendor|cvs-mode-diff-yesterday\n|cvs-mode-diff|cvs-mode-display-file|cvs-mode-do|cvs-mode-edit-log|cvs-mode-examine|cvs-mode-files|cvs-mode-find-file-other-window\n|cvs-mode-find-file|cvs-mode-force-command|cvs-mode-idiff-other|cvs-mode-idiff|cvs-mode-ignore|cvs-mode-imerge|cvs-mode-insert|cvs-mode-kill-buffers\n|cvs-mode-kill-process|cvs-mode-log|cvs-mode-map|cvs-mode-mark-all-files|cvs-mode-mark-get-modif|cvs-mode-mark-matching-files|cvs-mode-mark-on-state\n|cvs-mode-mark|cvs-mode-marked|cvs-mode-next-line|cvs-mode-previous-line|cvs-mode-quit|cvs-mode-remove-handled|cvs-mode-remove|cvs-mode-revert-buffer\n|cvs-mode-revert-to-rev|cvs-mode-run|cvs-mode-set-flags|cvs-mode-status|cvs-mode-tag|cvs-mode-toggle-mark|cvs-mode-toggle-marks\n|cvs-mode-tree|cvs-mode-undo|cvs-mode-unmark-all-files|cvs-mode-unmark-up|cvs-mode-unmark|cvs-mode-untag|cvs-mode-update|cvs-mode-view-file-other-window\n|cvs-mode-view-file|cvs-mode|cvs-mouse-toggle-mark|cvs-move-to-goal-column|cvs-or|cvs-parse-buffer|cvs-parse-commit|cvs-parse-merge\n|cvs-parse-msg|cvs-parse-process|cvs-parse-run-table|cvs-parse-status|cvs-parse-table|cvs-parsed-fileinfo|cvs-partition|cvs-pop-to-buffer-same-frame\n|cvs-prefix-define|cvs-prefix-get|cvs-prefix-make-local|cvs-prefix-set|cvs-prefix-sym|cvs-qtypedesc-complete--cmacro|cvs-qtypedesc-complete\n|cvs-qtypedesc-create--cmacro|cvs-qtypedesc-create|cvs-qtypedesc-hist-sym--cmacro|cvs-qtypedesc-hist-sym|cvs-qtypedesc-obj2str--cmacro\n|cvs-qtypedesc-obj2str|cvs-qtypedesc-p--cmacro|cvs-qtypedesc-p|cvs-qtypedesc-require--cmacro|cvs-qtypedesc-require|cvs-qtypedesc-str2obj--cmacro\n|cvs-qtypedesc-str2obj|cvs-query-directory|cvs-query-read|cvs-quickdir|cvs-reread-cvsrc|cvs-retrieve-revision|cvs-revert-if-needed\n|cvs-run-process|cvs-sentinel|cvs-set-branch-prefix|cvs-set-secondary-branch-prefix|cvs-status-current-file|cvs-status-current-tag\n|cvs-status-cvstrees|cvs-status-get-tags|cvs-status-minor-wrap|cvs-status-mode|cvs-status-next|cvs-status-prev|cvs-status-trees\n|cvs-status-vl-to-str|cvs-status|cvs-string-prefix-p|cvs-tag->name--cmacro|cvs-tag->name|cvs-tag->string|cvs-tag->type--cmacro|cvs-tag->type\n|cvs-tag->vlist--cmacro|cvs-tag->vlist|cvs-tag-compare-1|cvs-tag-compare|cvs-tag-lessp|cvs-tag-make--cmacro|cvs-tag-make-tag|cvs-tag-make\n|cvs-tag-merge|cvs-tag-p--cmacro|cvs-tag-p|cvs-tags->tree|cvs-tags-list|cvs-temp-buffer|cvs-tree-merge|cvs-tree-print|cvs-tree-tags-insert\n|cvs-union|cvs-update-filter|cvs-update-header|cvs-update|cvs-vc-command-advice|cwarn-font-lock-keywords|cwarn-font-lock-match-assignment-in-expression\n|cwarn-font-lock-match-dangerous-semicolon|cwarn-font-lock-match-reference|cwarn-font-lock-match|cwarn-inside-macro|cwarn-is-enabled\n|cwarn-mode-set-explicitly|cwarn-mode|cycle-spacing|cyrillic-encode-alternativnyj-char|cyrillic-encode-koi8-r-char|dabbrev--abbrev-at-point\n|dabbrev--find-all-expansions|dabbrev--find-expansion|dabbrev--goto-start-of-abbrev|dabbrev--ignore-buffer-p|dabbrev--ignore-case-p\n|dabbrev--make-friend-buffer-list|dabbrev--minibuffer-origin|dabbrev--reset-global-variables|dabbrev--safe-replace-match|dabbrev--same-major-mode-p\n|dabbrev--search|dabbrev--select-buffers|dabbrev--substitute-expansion|dabbrev--try-find|dabbrev-completion|dabbrev-expand|dabbrev-filter-elements\n|daemon-initialized|daemonp|data-debug-new-buffer|date-to-day|days-between|days-to-time|dbus--init-bus|dbus-byte-array-to-string\n|dbus-call-method-handler|dbus-check-event|dbus-escape-as-identifier|dbus-event-bus-name|dbus-event-interface-name|dbus-event-member-name\n|dbus-event-message-type|dbus-event-path-name|dbus-event-serial-number|dbus-event-service-name|dbus-get-all-managed-objects|dbus-get-all-properties\n|dbus-get-name-owner|dbus-get-property|dbus-get-unique-name|dbus-handle-bus-disconnect|dbus-handle-event|dbus-ignore-errors|dbus-init-bus\n|dbus-introspect-get-all-nodes|dbus-introspect-get-annotation-names|dbus-introspect-get-annotation|dbus-introspect-get-argument-names\n|dbus-introspect-get-argument|dbus-introspect-get-attribute|dbus-introspect-get-interface-names|dbus-introspect-get-interface\n|dbus-introspect-get-method-names|dbus-introspect-get-method|dbus-introspect-get-node-names|dbus-introspect-get-property-names\n|dbus-introspect-get-property|dbus-introspect-get-signal-names|dbus-introspect-get-signal|dbus-introspect-get-signature|dbus-introspect-xml\n|dbus-introspect|dbus-list-activatable-names|dbus-list-hash-table|dbus-list-known-names|dbus-list-names|dbus-list-queued-owners\n|dbus-managed-objects-handler|dbus-message-internal|dbus-method-error-internal|dbus-method-return-internal|dbus-notice-synchronous-call-errors\n|dbus-peer-handler|dbus-ping|dbus-property-handler|dbus-register-method|dbus-register-property|dbus-register-service|dbus-register-signal\n|dbus-set-property|dbus-setenv|dbus-string-to-byte-array|dbus-unescape-from-identifier|dbus-unregister-object|dbus-unregister-service\n|dbx|dcl-back-to-indentation-1|dcl-back-to-indentation|dcl-backward-command|dcl-beginning-of-command-p|dcl-beginning-of-command\n|dcl-beginning-of-statement|dcl-calc-command-indent-hang|dcl-calc-command-indent-multiple|dcl-calc-command-indent|dcl-calc-cont-indent-relative\n|dcl-calc-continuation-indent|dcl-command-p|dcl-delete-chars|dcl-delete-indentation|dcl-electric-character|dcl-end-of-command-p\n|dcl-end-of-command|dcl-end-of-statement|dcl-forward-command|dcl-get-line-type|dcl-guess-option-value|dcl-guess-option|dcl-imenu-create-index-function\n|dcl-indent-command-line|dcl-indent-command|dcl-indent-continuation-line|dcl-indent-line|dcl-indent-to|dcl-indentation-point|dcl-mode\n|dcl-option-value-basic|dcl-option-value-comment-line|dcl-option-value-margin-offset|dcl-option-value-offset|dcl-save-all-options\n|dcl-save-local-variable|dcl-save-mode|dcl-save-nondefault-options|dcl-save-option|dcl-set-option|dcl-show-line-type|dcl-split-line\n|dcl-tab|dcl-was-looking-at|deactivate-input-method|deactivate-mode-local-bindings|debug--function-list|debug--implement-debug-on-entry\n|debug-help-follow|debugger--backtrace-base|debugger--hide-locals|debugger--insert-locals|debugger--locals-visible-p|debugger--show-locals\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ndebugger-continue|debugger-env-macro|debugger-eval-expression|debugger-frame-clear|debugger-frame-number|debugger-frame|debugger-jump\n|debugger-list-functions|debugger-make-xrefs|debugger-mode|debugger-record-expression|debugger-reenable|debugger-return-value|debugger-setup-buffer\n|debugger-step-through|debugger-toggle-locals|decf|decipher--analyze|decipher--digram-counts|decipher--digram-total|decipher-add-undo\n|decipher-adjacency-list|decipher-alphabet-keypress|decipher-analyze-buffer|decipher-analyze|decipher-complete-alphabet|decipher-copy-cons\n|decipher-digram-list|decipher-display-range|decipher-display-regexp|decipher-display-stats-buffer|decipher-frequency-count|decipher-get-undo\n|decipher-insert-frequency-counts|decipher-insert|decipher-keypress|decipher-last-command-char|decipher-loop-no-breaks|decipher-loop-with-breaks\n|decipher-make-checkpoint|decipher-mode|decipher-read-alphabet|decipher-restore-checkpoint|decipher-resync|decipher-set-map|decipher-show-alphabet\n|decipher-stats-buffer|decipher-stats-mode|decipher-undo|decipher|declaim|declare-ccl-program|declare-equiv-charset|decode-big5-char\n|decode-composition-components|decode-composition-rule|decode-hex-string|decode-hz-buffer|decode-hz-region|decode-sjis-char|decompose-region\n|decompose-string|decrease-left-margin|decrease-right-margin|def-gdb-auto-update-handler|def-gdb-auto-update-trigger|def-gdb-memory-format\n|def-gdb-memory-show-page|def-gdb-memory-unit|def-gdb-preempt-display-buffer|def-gdb-set-positive-number|def-gdb-thread-buffer-command\n|def-gdb-thread-buffer-gud-command|def-gdb-thread-buffer-simple-command|def-gdb-trigger-and-handler|default-command-history-filter\n|default-font-height|default-indent-new-line|default-line-height|default-toplevel-value|defcalcmodevar|defconst-mode-local|defcustom-c-stylevar\n|defcustom-mh|defezimage|defface-mh|defgeneric|defgroup-mh|defimage-speedbar|define-abbrevs|define-advice|define-auto-insert|define-ccl-program\n|define-char-code-property|define-charset-alias|define-charset-internal|define-charset|define-child-mode|define-coding-system-alias\n|define-coding-system-internal|define-coding-system|define-compilation-mode|define-compiler-macro|define-erc-module|define-erc-response-handler\n|define-global-abbrev|define-global-minor-mode|define-hmac-function|define-ibuffer-column|define-ibuffer-filter|define-ibuffer-op\n|define-ibuffer-sorter|define-inline|define-lex-analyzer|define-lex-block-analyzer|define-lex-block-type-analyzer|define-lex-keyword-type-analyzer\n|define-lex-regex-analyzer|define-lex-regex-type-analyzer|define-lex-sexp-type-analyzer|define-lex-simple-regex-analyzer|define-lex-string-type-analyzer\n|define-lex|define-mail-abbrev|define-mail-alias|define-mail-user-agent|define-mode-abbrev|define-mode-local-override|define-mode-overload-implementation\n|define-overload|define-overloadable-function|define-setf-expander|define-skeleton|define-translation-hash-table|define-translation-table\n|define-widget-keywords|defmacro-mh|defmath|defmethod|defun-cvs-mode|defun-gmm|defun-mh|defun-rcirc-command|defvar-mode-local|degrees-to-radians\n|dehexlify-buffer|delay-warning|delete\\*|delete-active-region|delete-all-overlays|delete-completion-window|delete-completion|delete-consecutive-dups\n|delete-dir-local-variable|delete-directory-internal|delete-duplicate-lines|delete-duplicates|delete-extract-rectangle-line|delete-extract-rectangle\n|delete-file-local-variable-prop-line|delete-file-local-variable|delete-forward-char|delete-frame-enabled-p|delete-if-not|delete-if\n|delete-instance|delete-matching-lines|delete-non-matching-lines|delete-other-frames|delete-other-windows-internal|delete-other-windows-vertically\n|delete-pair|delete-rectangle-line|delete-rectangle|delete-selection-helper|delete-selection-mode|delete-selection-pre-hook|delete-selection-repeat-replace-region\n|delete-side-window|delete-whitespace-rectangle-line|delete-whitespace-rectangle|delete-window-internal|delimit-columns-customize\n|delimit-columns-format|delimit-columns-rectangle-line|delimit-columns-rectangle-max|delimit-columns-rectangle|delimit-columns-region\n|delimit-columns-str|delphi-mode|delsel-unload-function|denato-region|derived-mode-abbrev-table-name|derived-mode-class|derived-mode-hook-name\n|derived-mode-init-mode-variables|derived-mode-make-docstring|derived-mode-map-name|derived-mode-merge-abbrev-tables|derived-mode-merge-keymaps\n|derived-mode-merge-syntax-tables|derived-mode-run-hooks|derived-mode-set-abbrev-table|derived-mode-set-keymap|derived-mode-set-syntax-table\n|derived-mode-setup-function-name|derived-mode-syntax-table-name|describe-bindings-internal|describe-buffer-bindings|describe-char-after\n|describe-char-categories|describe-char-display|describe-char-padded-string|describe-char-unicode-data|describe-char|describe-character-set\n|describe-chinese-environment-map|describe-coding-system|describe-copying|describe-current-coding-system-briefly|describe-current-coding-system\n|describe-current-input-method|describe-cyrillic-environment-map|describe-distribution|describe-european-environment-map|describe-face\n|describe-font|describe-fontset|describe-function-1|describe-function|describe-gnu-project|describe-indian-environment-map|describe-input-method\n|describe-key-briefly|describe-key|describe-language-environment|describe-minor-mode-completion-table-for-indicator|describe-minor-mode-completion-table-for-symbol\n|describe-minor-mode-from-indicator|describe-minor-mode-from-symbol|describe-minor-mode|describe-mode-local-bindings-in-mode\n|describe-mode-local-bindings|describe-no-warranty|describe-package-1|describe-package|describe-project|describe-property-list\n|describe-register-1|describe-specified-language-support|describe-text-category|describe-text-properties-1|describe-text-properties\n|describe-text-sexp|describe-text-widget|describe-theme|describe-variable-custom-version-info|describe-variable|describe-vector\n|desktop--check-dont-save|desktop--v2s|desktop-append-buffer-args|desktop-auto-save-cancel-timer|desktop-auto-save-disable|desktop-auto-save-enable\n|desktop-auto-save-set-timer|desktop-auto-save|desktop-buffer-info|desktop-buffer|desktop-change-dir|desktop-claim-lock|desktop-clear\n|desktop-create-buffer|desktop-file-name|desktop-full-file-name|desktop-full-lock-name|desktop-idle-create-buffers|desktop-kill\n|desktop-lazy-abort|desktop-lazy-complete|desktop-lazy-create-buffer|desktop-list\\*|desktop-load-default|desktop-load-file|desktop-outvar\n|desktop-owner|desktop-read|desktop-release-lock|desktop-remove|desktop-restore-file-buffer|desktop-restore-frameset|desktop-restoring-frameset-p\n|desktop-revert|desktop-save-buffer-p|desktop-save-frameset|desktop-save-in-desktop-dir|desktop-save-mode-off|desktop-save-mode\n|desktop-save|desktop-truncate|desktop-value-to-string|destructor|destructuring-bind|detect-coding-with-language-environment|detect-coding-with-priority\n|dframe-attached-frame|dframe-click|dframe-close-frame|dframe-current-frame|dframe-detach|dframe-double-click|dframe-frame-mode\n|dframe-frame-parameter|dframe-get-focus|dframe-hack-buffer-menu|dframe-handle-delete-frame|dframe-handle-iconify-frame|dframe-handle-make-frame-visible\n|dframe-help-echo|dframe-live-p|dframe-maybee-jump-to-attached-frame|dframe-message|dframe-mouse-event-p|dframe-mouse-hscroll|dframe-mouse-set-point\n|dframe-needed-height|dframe-popup-kludge|dframe-power-click|dframe-quick-mouse|dframe-reposition-frame-emacs|dframe-reposition-frame-xemacs\n|dframe-reposition-frame|dframe-select-attached-frame|dframe-set-timer-internal|dframe-set-timer|dframe-switch-buffer-attached-frame\n|dframe-temp-buffer-show-function|dframe-timer-fn|dframe-track-mouse-xemacs|dframe-track-mouse|dframe-update-keymap|dframe-with-attached-buffer\n|dframe-y-or-n-p|diary-add-to-list|diary-anniversary|diary-astro-day-number|diary-attrtype-convert|diary-bahai-date|diary-bahai-insert-entry\n|diary-bahai-insert-monthly-entry|diary-bahai-insert-yearly-entry|diary-bahai-list-entries|diary-bahai-mark-entries|diary-block\n|diary-check-diary-file|diary-chinese-anniversary|diary-chinese-date|diary-chinese-insert-anniversary-entry|diary-chinese-insert-entry\n|diary-chinese-insert-monthly-entry|diary-chinese-insert-yearly-entry|diary-chinese-list-entries|diary-chinese-mark-entries|diary-coptic-date\n|diary-cyclic|diary-date-display-form|diary-date|diary-day-of-year|diary-display-no-entries|diary-entry-compare|diary-entry-time\n|diary-ethiopic-date|diary-fancy-date-matcher|diary-fancy-date-pattern|diary-fancy-display-mode|diary-fancy-display|diary-fancy-font-lock-fontify-region-function\n|diary-float|diary-font-lock-date-forms|diary-font-lock-keywords-1|diary-font-lock-keywords|diary-font-lock-sexps|diary-french-date\n|diary-from-outlook-gnus|diary-from-outlook-internal|diary-from-outlook-rmail|diary-from-outlook|diary-goto-entry|diary-hebrew-birthday\n|diary-hebrew-date|diary-hebrew-insert-entry|diary-hebrew-insert-monthly-entry|diary-hebrew-insert-yearly-entry|diary-hebrew-list-entries\n|diary-hebrew-mark-entries|diary-hebrew-omer|diary-hebrew-parasha|diary-hebrew-rosh-hodesh|diary-hebrew-sabbath-candles|diary-hebrew-yahrzeit\n|diary-include-files|diary-include-other-diary-files|diary-insert-anniversary-entry|diary-insert-block-entry|diary-insert-cyclic-entry\n|diary-insert-entry-1|diary-insert-entry|diary-insert-monthly-entry|diary-insert-weekly-entry|diary-insert-yearly-entry|diary-islamic-date\n|diary-islamic-insert-entry|diary-islamic-insert-monthly-entry|diary-islamic-insert-yearly-entry|diary-islamic-list-entries|diary-islamic-mark-entries\n|diary-iso-date|diary-julian-date|diary-list-entries-1|diary-list-entries-2|diary-list-entries|diary-list-sexp-entries|diary-live-p\n|diary-lunar-phases|diary-mail-entries|diary-make-date|diary-make-entry|diary-mark-entries-1|diary-mark-entries|diary-mark-included-diary-files\n|diary-mark-sexp-entries|diary-mayan-date|diary-mode|diary-name-pattern|diary-ordinal-suffix|diary-outlook-format-1|diary-persian-date\n|diary-print-entries|diary-pull-attrs|diary-redraw-calendar|diary-remind|diary-set-header|diary-set-maybe-redraw|diary-sexp-entry\n|diary-show-all-entries|diary-simple-display|diary-sort-entries|diary-sunrise-sunset|diary-unhide-everything|diary-view-entries\n|diary-view-other-diary-entries|diary|diff-add-change-log-entries-other-window|diff-after-change-function|diff-apply-hunk|diff-auto-refine-mode\n|diff-backup|diff-beginning-of-file-and-junk|diff-beginning-of-file|diff-beginning-of-hunk|diff-bounds-of-file|diff-bounds-of-hunk\n|diff-buffer-with-file|diff-context->unified|diff-count-matches|diff-current-defun|diff-delete-empty-files|diff-delete-if-empty\n|diff-delete-trailing-whitespace|diff-ediff-patch|diff-end-of-file|diff-end-of-hunk|diff-file-kill|diff-file-local-copy|diff-file-next\n|diff-file-prev|diff-filename-drop-dir|diff-find-approx-text|diff-find-file-name|diff-find-source-location|diff-find-text|diff-fixup-modifs\n|diff-goto-source|diff-hunk-file-names|diff-hunk-kill|diff-hunk-next|diff-hunk-prev|diff-hunk-status-msg|diff-hunk-style|diff-hunk-text\n|diff-ignore-whitespace-hunk|diff-kill-applied-hunks|diff-kill-junk|diff-latest-backup-file|diff-make-unified|diff-merge-strings\n|diff-minor-mode|diff-mode-menu|diff-mode|diff-mouse-goto-source|diff-next-complex-hunk|diff-next-error|diff-no-select|diff-post-command-hook\n|diff-process-filter|diff-refine-hunk|diff-refine-preproc|diff-restrict-view|diff-reverse-direction|diff-sanity-check-context-hunk-half\n|diff-sanity-check-hunk|diff-sentinel|diff-setup-whitespace|diff-split-hunk|diff-splittable-p|diff-switches|diff-tell-file-name\n|diff-test-hunk|diff-undo|diff-unified->context|diff-unified-hunk-p|diff-write-contents-hooks|diff-xor|diff-yank-function|diff|dig-exit\n|dig-extract-rr|dig-invoke|dig-mode|dig-rr-get-pkix-cert|dig|digest-md5-challenge|digest-md5-digest-response|digest-md5-digest-uri\n|digest-md5-parse-digest-challenge|dir-locals-collect-mode-variables|dir-locals-collect-variables|dir-locals-find-file|dir-locals-get-class-variables\n|dir-locals-read-from-file|directory-files-recursively|directory-name-p|dired-add-file|dired-advertise|dired-advertised-find-file\n|dired-align-file|dired-alist-add-1|dired-at-point-prompter|dired-at-point|dired-backup-diff|dired-between-files|dired-buffer-stale-p\n|dired-buffers-for-dir|dired-build-subdir-alist|dired-change-marks|dired-check-switches|dired-clean-directory|dired-clean-up-after-deletion\n|dired-clear-alist|dired-compare-directories|dired-compress-file|dired-copy-file|dired-copy-filename-as-kill|dired-create-directory\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ndired-current-directory|dired-delete-entry|dired-delete-file|dired-desktop-buffer-misc-data|dired-diff|dired-directory-changed-p\n|dired-display-file|dired-dnd-do-ask-action|dired-dnd-handle-file|dired-dnd-handle-local-file|dired-dnd-popup-notice|dired-do-async-shell-command\n|dired-do-byte-compile|dired-do-chgrp|dired-do-chmod|dired-do-chown|dired-do-compress|dired-do-copy-regexp|dired-do-copy|dired-do-create-files-regexp\n|dired-do-delete|dired-do-flagged-delete|dired-do-hardlink-regexp|dired-do-hardlink|dired-do-isearch-regexp|dired-do-isearch|dired-do-kill-lines\n|dired-do-load|dired-do-print|dired-do-query-replace-regexp|dired-do-redisplay|dired-do-relsymlink|dired-do-rename-regexp|dired-do-rename\n|dired-do-search|dired-do-shell-command|dired-do-symlink-regexp|dired-do-symlink|dired-do-touch|dired-downcase|dired-file-marker\n|dired-file-name-at-point|dired-find-alternate-file|dired-find-buffer-nocreate|dired-find-file-other-window|dired-find-file|dired-flag-auto-save-files\n|dired-flag-backup-files|dired-flag-file-deletion|dired-flag-files-regexp|dired-flag-garbage-files|dired-format-columns-of-files\n|dired-fun-in-all-buffers|dired-get-file-for-visit|dired-get-filename|dired-get-marked-files|dired-get-subdir-max|dired-get-subdir-min\n|dired-get-subdir|dired-glob-regexp|dired-goto-file-1|dired-goto-file|dired-goto-next-file|dired-goto-next-nontrivial-file|dired-goto-subdir\n|dired-hide-all|dired-hide-details-mode|dired-hide-details-update-invisibility-spec|dired-hide-subdir|dired-in-this-tree|dired-initial-position\n|dired-insert-directory|dired-insert-old-subdirs|dired-insert-set-properties|dired-insert-subdir|dired-internal-do-deletions|dired-internal-noselect\n|dired-isearch-filenames-regexp|dired-isearch-filenames-setup|dired-isearch-filenames|dired-jump-other-window|dired-jump|dired-kill-subdir\n|dired-log-summary|dired-log|dired-make-absolute|dired-make-relative|dired-map-over-marks|dired-mark-directories|dired-mark-executables\n|dired-mark-files-containing-regexp|dired-mark-files-in-region|dired-mark-files-regexp|dired-mark-if|dired-mark-pop-up|dired-mark-prompt\n|dired-mark-remembered|dired-mark-subdir-files|dired-mark-symlinks|dired-mark|dired-marker-regexp|dired-maybe-insert-subdir|dired-mode\n|dired-mouse-find-file-other-window|dired-move-to-end-of-filename|dired-move-to-filename|dired-next-dirline|dired-next-line|dired-next-marked-file\n|dired-next-subdir|dired-normalize-subdir|dired-noselect|dired-other-frame|dired-other-window|dired-plural-s|dired-pop-to-buffer\n|dired-prev-dirline|dired-prev-marked-file|dired-prev-subdir|dired-previous-line|dired-query|dired-read-dir-and-switches|dired-read-regexp\n|dired-readin-insert|dired-readin|dired-relist-file|dired-remember-hidden|dired-remember-marks|dired-remove-file|dired-rename-file\n|dired-repeat-over-lines|dired-replace-in-string|dired-restore-desktop-buffer|dired-restore-positions|dired-revert|dired-run-shell-command\n|dired-safe-switches-p|dired-save-positions|dired-show-file-type|dired-sort-R-check|dired-sort-other|dired-sort-set-mode-line|dired-sort-set-modeline\n|dired-sort-toggle-or-edit|dired-sort-toggle|dired-string-replace-match|dired-subdir-index|dired-subdir-max|dired-summary|dired-switches-escape-p\n|dired-switches-recursive-p|dired-toggle-marks|dired-toggle-read-only|dired-tree-down|dired-tree-up|dired-unadvertise|dired-uncache\n|dired-undo|dired-unmark-all-files|dired-unmark-all-marks|dired-unmark-backward|dired-unmark|dired-up-directory|dired-upcase|dired-view-file\n|dired-why|dired|dirs|dirtrack-cygwin-directory-function|dirtrack-debug-message|dirtrack-debug-mode|dirtrack-debug-toggle|dirtrack-mode\n|dirtrack-toggle|dirtrack-windows-directory-function|dirtrack|disable-timeout|disassemble-1|disassemble-internal|disassemble-offset\n|display-about-screen|display-battery-mode|display-buffer--maybe-pop-up-frame-or-window|display-buffer--maybe-same-window|display-buffer--special-action\n|display-buffer-assq-regexp|display-buffer-in-atom-window|display-buffer-in-major-side-window|display-buffer-in-side-window|display-buffer-other-frame\n|display-buffer-record-window|display-call-tree|display-local-help|display-multi-font-p|display-multi-frame-p|display-splash-screen\n|display-startup-echo-area-message|display-startup-screen|display-table-print-array|display-time-mode|display-time-world|display-time\n|displaying-byte-compile-warnings|dissociated-press|dnd-get-local-file-name|dnd-get-local-file-uri|dnd-handle-one-url|dnd-insert-text\n|dnd-open-file|dnd-open-local-file|dnd-open-remote-url|dnd-unescape-uri|dns-get-txt-answer|dns-get|dns-inverse-get|dns-lookup-host\n|dns-make-network-process|dns-mode-menu|dns-mode-soa-increment-serial|dns-mode-soa-maybe-increment-serial|dns-mode|dns-query-cached\n|dns-query|dns-read-bytes|dns-read-int32|dns-read-name|dns-read-string-name|dns-read-txt|dns-read-type|dns-read|dns-servers-up-to-date-p\n|dns-set-servers|dns-write-bytes|dns-write-name|dns-write|dnsDomainIs|dnsResolve|do\\*|do-after-load-evaluation|do-all-symbols|do-auto-fill\n|do-symbols|do|doc\\$|doc\\/\\/|doc-file-to-info|doc-file-to-man|doc-view--current-cache-dir|doc-view-active-pages|doc-view-already-converted-p\n|doc-view-bookmark-jump|doc-view-bookmark-make-record|doc-view-buffer-message|doc-view-clear-cache|doc-view-clone-buffer-hook\n|doc-view-convert-current-doc|doc-view-current-cache-doc-pdf|doc-view-current-image|doc-view-current-info|doc-view-current-overlay\n|doc-view-current-page|doc-view-current-slice|doc-view-desktop-save-buffer|doc-view-dired-cache|doc-view-display|doc-view-djvu->tiff-converter-ddjvu\n|doc-view-doc->txt|doc-view-document->bitmap|doc-view-dvi->pdf|doc-view-enlarge|doc-view-fallback-mode|doc-view-first-page|doc-view-fit-height-to-window\n|doc-view-fit-page-to-window|doc-view-fit-width-to-window|doc-view-get-bounding-box|doc-view-goto-page|doc-view-guess-paper-size\n|doc-view-initiate-display|doc-view-insert-image|doc-view-intersection|doc-view-kill-proc-and-buffer|doc-view-kill-proc|doc-view-last-page-number\n|doc-view-last-page|doc-view-make-safe-dir|doc-view-menu|doc-view-minor-mode|doc-view-mode-maybe|doc-view-mode-p|doc-view-mode|doc-view-new-window-function\n|doc-view-next-line-or-next-page|doc-view-next-page|doc-view-odf->pdf-converter-soffice|doc-view-odf->pdf-converter-unoconv|doc-view-open-text\n|doc-view-pdf\\/ps->png|doc-view-pdf->png-converter-ghostscript|doc-view-pdf->png-converter-mupdf|doc-view-pdf->txt|doc-view-previous-line-or-previous-page\n|doc-view-previous-page|doc-view-ps->pdf|doc-view-ps->png-converter-ghostscript|doc-view-reconvert-doc|doc-view-reset-slice|doc-view-restore-desktop-buffer\n|doc-view-revert-buffer|doc-view-scale-adjust|doc-view-scale-bounding-box|doc-view-scale-reset|doc-view-scroll-down-or-previous-page\n|doc-view-scroll-up-or-next-page|doc-view-search-backward|doc-view-search-internal|doc-view-search-next-match|doc-view-search-no-of-matches\n|doc-view-search-previous-match|doc-view-search|doc-view-sentinel|doc-view-set-doc-type|doc-view-set-slice-from-bounding-box|doc-view-set-slice-using-mouse\n|doc-view-set-slice|doc-view-set-up-single-converter|doc-view-show-tooltip|doc-view-shrink|doc-view-sort|doc-view-start-process\n|doc-view-toggle-display|doctex-font-lock-\\^\\^A|doctex-font-lock-syntactic-face-function|doctex-mode|doctor-\\$|doctor-adjectivep\n|doctor-adverbp|doctor-alcohol|doctor-articlep|doctor-assm|doctor-build|doctor-chat|doctor-colorp|doctor-concat|doctor-conj|doctor-correct-spelling\n|doctor-death|doctor-def|doctor-define|doctor-defq|doctor-desire|doctor-desire1|doctor-doc|doctor-drug|doctor-eliza|doctor-family|doctor-fear\n|doctor-fix-2|doctor-fixup|doctor-forget|doctor-foul|doctor-getnoun|doctor-go|doctor-hate|doctor-hates|doctor-hates1|doctor-howdy|doctor-huh\n|doctor-love|doctor-loves|doctor-mach|doctor-make-string|doctor-math|doctor-meaning|doctor-mode|doctor-modifierp|doctor-mood|doctor-nmbrp\n|doctor-nounp|doctor-othermodifierp|doctor-plural|doctor-possess|doctor-possessivepronounp|doctor-prepp|doctor-pronounp|doctor-put-meaning\n|doctor-qloves|doctor-query|doctor-read-print|doctor-read-token|doctor-readin|doctor-remem|doctor-remember|doctor-replace|doctor-ret-or-read\n|doctor-rms|doctor-rthing|doctor-school|doctor-setprep|doctor-sexnoun|doctor-sexverb|doctor-short|doctor-shorten|doctor-sizep|doctor-sports\n|doctor-state|doctor-subjsearch|doctor-svo|doctor-symptoms|doctor-toke|doctor-txtype|doctor-type-symbol|doctor-type|doctor-verbp|doctor-vowelp\n|doctor-when|doctor-wherego|doctor-zippy|doctor|dom-add-child-before|dom-append-child|dom-attr|dom-attributes|dom-by-class|dom-by-id\n|dom-by-style|dom-by-tag|dom-child-by-tag|dom-children|dom-elements|dom-ensure-node|dom-node|dom-non-text-children|dom-parent|dom-pp\n|dom-set-attribute|dom-set-attributes|dom-tag|dom-text|dom-texts|dont-compile|double-column|double-mode|double-read-event|double-translate-key\n|down-ifdef|dsssl-mode|dunnet|dynamic-completion-mode|dynamic-completion-table|dynamic-setting-handle-config-changed-event|easy-menu-add-item\n|easy-menu-add|easy-menu-always-true-p|easy-menu-binding|easy-menu-change|easy-menu-convert-item-1|easy-menu-convert-item|easy-menu-create-menu\n|easy-menu-define-key|easy-menu-do-define|easy-menu-filter-return|easy-menu-get-map|easy-menu-intern|easy-menu-item-present-p|easy-menu-lookup-name\n|easy-menu-make-symbol|easy-menu-name-match|easy-menu-remove-item|easy-menu-remove|easy-menu-return-item|easy-mmode-define-global-mode\n|easy-mmode-define-keymap|easy-mmode-define-navigation|easy-mmode-define-syntax|easy-mmode-defmap|easy-mmode-defsyntax|easy-mmode-pretty-mode-name\n|easy-mmode-set-keymap-parents|ebnf-abn-initialize|ebnf-abn-parser|ebnf-adjust-empty|ebnf-adjust-width|ebnf-alternative-dimension\n|ebnf-alternative-width|ebnf-apply-style|ebnf-apply-style1|ebnf-begin-file|ebnf-begin-job|ebnf-begin-line|ebnf-bnf-initialize|ebnf-bnf-parser\n|ebnf-boolean|ebnf-buffer-substring|ebnf-check-style-values|ebnf-customize|ebnf-delete-style|ebnf-despool|ebnf-dimensions|ebnf-directory\n|ebnf-dtd-initialize|ebnf-dtd-parser|ebnf-dup-list|ebnf-ebx-initialize|ebnf-ebx-parser|ebnf-element-width|ebnf-eliminate-empty-rules\n|ebnf-empty-alternative|ebnf-end-of-string|ebnf-entry|ebnf-eop-horizontal|ebnf-eop-vertical|ebnf-eps-add-context|ebnf-eps-add-production\n|ebnf-eps-buffer|ebnf-eps-directory|ebnf-eps-file|ebnf-eps-filename|ebnf-eps-finish-and-write|ebnf-eps-footer-comment|ebnf-eps-footer\n|ebnf-eps-header-comment|ebnf-eps-header-footer-comment|ebnf-eps-header-footer-file|ebnf-eps-header-footer-p|ebnf-eps-header-footer-set\n|ebnf-eps-header-footer|ebnf-eps-header|ebnf-eps-output|ebnf-eps-production-list|ebnf-eps-region|ebnf-eps-remove-context|ebnf-eps-string\n|ebnf-eps-write-kill-temp|ebnf-except-dimension|ebnf-file|ebnf-find-style|ebnf-font-attributes|ebnf-font-background|ebnf-font-foreground\n|ebnf-font-height|ebnf-font-list|ebnf-font-name-select|ebnf-font-name|ebnf-font-select|ebnf-font-size|ebnf-font-width|ebnf-format-color\n|ebnf-format-float|ebnf-gen-terminal|ebnf-generate-alternative|ebnf-generate-empty|ebnf-generate-eps|ebnf-generate-except|ebnf-generate-non-terminal\n|ebnf-generate-one-or-more|ebnf-generate-optional|ebnf-generate-postscript|ebnf-generate-production|ebnf-generate-region|ebnf-generate-repeat\n|ebnf-generate-sequence|ebnf-generate-special|ebnf-generate-terminal|ebnf-generate-with-max-height|ebnf-generate-without-max-height\n|ebnf-generate-zero-or-more|ebnf-generate|ebnf-get-string|ebnf-horizontal-movement|ebnf-insert-ebnf-prologue|ebnf-insert-style\n|ebnf-iso-initialize|ebnf-iso-parser|ebnf-justify-list|ebnf-justify|ebnf-log-header|ebnf-log|ebnf-make-alternative|ebnf-make-dup-sequence\n|ebnf-make-empty|ebnf-make-except|ebnf-make-non-terminal|ebnf-make-one-or-more|ebnf-make-optional|ebnf-make-or-more1|ebnf-make-production\n|ebnf-make-repeat|ebnf-make-sequence|ebnf-make-special|ebnf-make-terminal|ebnf-make-terminal1|ebnf-make-zero-or-more|ebnf-max-width\n|ebnf-merge-style|ebnf-message-float|ebnf-message-info|ebnf-new-page|ebnf-newline|ebnf-node-action|ebnf-node-default|ebnf-node-dimension-func\n|ebnf-node-entry|ebnf-node-generation|ebnf-node-height|ebnf-node-kind|ebnf-node-list|ebnf-node-name|ebnf-node-production|ebnf-node-separator\n|ebnf-node-width-func|ebnf-node-width|ebnf-non-terminal-dimension|ebnf-one-or-more-dimension|ebnf-optimize|ebnf-optional-dimension\n|ebnf-otz-initialize|ebnf-parse-and-sort|ebnf-pop-style|ebnf-print-buffer|ebnf-print-directory|ebnf-print-file|ebnf-print-region\n|ebnf-production-dimension|ebnf-push-style|ebnf-range-regexp|ebnf-repeat-dimension|ebnf-reset-style|ebnf-sequence-dimension|ebnf-sequence-width\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nebnf-setup|ebnf-shape-value|ebnf-sorter-ascending|ebnf-sorter-descending|ebnf-special-dimension|ebnf-spool-buffer|ebnf-spool-directory\n|ebnf-spool-file|ebnf-spool-region|ebnf-string|ebnf-syntax-buffer|ebnf-syntax-directory|ebnf-syntax-file|ebnf-syntax-region|ebnf-terminal-dimension\n|ebnf-terminal-dimension1|ebnf-token-alternative|ebnf-token-except|ebnf-token-optional|ebnf-token-repeat|ebnf-token-sequence|ebnf-trim-right\n|ebnf-vertical-movement|ebnf-yac-initialize|ebnf-yac-parser|ebnf-zero-or-more-dimension|ebrowse-back-in-position-stack|ebrowse-base-classes\n|ebrowse-browser-buffer-list|ebrowse-bs-file--cmacro|ebrowse-bs-file|ebrowse-bs-flags--cmacro|ebrowse-bs-flags|ebrowse-bs-name--cmacro\n|ebrowse-bs-name|ebrowse-bs-p--cmacro|ebrowse-bs-p|ebrowse-bs-pattern--cmacro|ebrowse-bs-pattern|ebrowse-bs-point--cmacro|ebrowse-bs-point\n|ebrowse-bs-scope--cmacro|ebrowse-bs-scope|ebrowse-buffer-p|ebrowse-build-tree-obarray|ebrowse-choose-from-browser-buffers|ebrowse-choose-tree\n|ebrowse-class-alist-for-member|ebrowse-class-declaration-regexp|ebrowse-class-in-tree|ebrowse-class-name-displayed-in-member-buffer\n|ebrowse-collapse-branch|ebrowse-collapse-fn|ebrowse-completing-read-value|ebrowse-const-p|ebrowse-create-tree-buffer|ebrowse-cs-file--cmacro\n|ebrowse-cs-file|ebrowse-cs-flags--cmacro|ebrowse-cs-flags|ebrowse-cs-name--cmacro|ebrowse-cs-name|ebrowse-cs-p--cmacro|ebrowse-cs-p\n|ebrowse-cs-pattern--cmacro|ebrowse-cs-pattern|ebrowse-cs-point--cmacro|ebrowse-cs-point|ebrowse-cs-scope--cmacro|ebrowse-cs-scope\n|ebrowse-cs-source-file--cmacro|ebrowse-cs-source-file|ebrowse-cyclic-display-next\\/previous-member-list|ebrowse-cyclic-successor-in-string-list\n|ebrowse-define-p|ebrowse-direct-base-classes|ebrowse-display-friends-member-list|ebrowse-display-function-member-list|ebrowse-display-member-buffer\n|ebrowse-display-member-list-for-accessor|ebrowse-display-next-member-list|ebrowse-display-previous-member-list|ebrowse-display-static-functions-member-list\n|ebrowse-display-static-variables-member-list|ebrowse-display-types-member-list|ebrowse-display-variables-member-list|ebrowse-displaying-friends\n|ebrowse-displaying-functions|ebrowse-displaying-static-functions|ebrowse-displaying-static-variables|ebrowse-displaying-types\n|ebrowse-displaying-variables|ebrowse-draw-file-member-info|ebrowse-draw-marks-fn|ebrowse-draw-member-attributes|ebrowse-draw-member-buffer-class-line\n|ebrowse-draw-member-long-fn|ebrowse-draw-member-regexp|ebrowse-draw-member-short-fn|ebrowse-draw-position-buffer|ebrowse-draw-tree-fn\n|ebrowse-electric-buffer-list|ebrowse-electric-choose-tree|ebrowse-electric-find-position|ebrowse-electric-get-buffer|ebrowse-electric-list-looper\n|ebrowse-electric-list-mode|ebrowse-electric-list-quit|ebrowse-electric-list-select|ebrowse-electric-list-undefined|ebrowse-electric-position-looper\n|ebrowse-electric-position-menu|ebrowse-electric-position-mode|ebrowse-electric-position-quit|ebrowse-electric-position-undefined\n|ebrowse-electric-select-position|ebrowse-electric-view-buffer|ebrowse-electric-view-position|ebrowse-every|ebrowse-expand-all\n|ebrowse-expand-branch|ebrowse-explicit-p|ebrowse-extern-c-p|ebrowse-files-list|ebrowse-files-table|ebrowse-fill-member-table|ebrowse-find-class-declaration\n|ebrowse-find-member-declaration|ebrowse-find-member-definition|ebrowse-find-pattern|ebrowse-find-source-file|ebrowse-for-all-trees\n|ebrowse-forward-in-position-stack|ebrowse-freeze-member-buffer|ebrowse-frozen-tree-buffer-name|ebrowse-function-declaration\\/definition-regexp\n|ebrowse-gather-statistics|ebrowse-globals-tree-p|ebrowse-goto-visible-member\\/all-member-lists|ebrowse-goto-visible-member\n|ebrowse-hack-electric-buffer-menu|ebrowse-hide-line|ebrowse-hs-command-line-options--cmacro|ebrowse-hs-command-line-options\n|ebrowse-hs-member-table--cmacro|ebrowse-hs-member-table|ebrowse-hs-p--cmacro|ebrowse-hs-p|ebrowse-hs-unused--cmacro|ebrowse-hs-unused\n|ebrowse-hs-version--cmacro|ebrowse-hs-version|ebrowse-ignoring-completion-case|ebrowse-inline-p|ebrowse-insert-supers|ebrowse-install-1-to-9-keys\n|ebrowse-kill-member-buffers-displaying|ebrowse-known-class-trees-buffer-list|ebrowse-list-of-matching-members|ebrowse-list-tree-buffers\n|ebrowse-mark-all-classes|ebrowse-marked-classes-p|ebrowse-member-bit-set-p|ebrowse-member-buffer-list|ebrowse-member-buffer-object-menu\n|ebrowse-member-buffer-p|ebrowse-member-class-name-object-menu|ebrowse-member-display-p|ebrowse-member-info-from-point|ebrowse-member-list-name\n|ebrowse-member-mode|ebrowse-member-mouse-2|ebrowse-member-mouse-3|ebrowse-member-name-object-menu|ebrowse-member-table|ebrowse-mouse-1-in-tree-buffer\n|ebrowse-mouse-2-in-tree-buffer|ebrowse-mouse-3-in-tree-buffer|ebrowse-mouse-find-member|ebrowse-move-in-position-stack|ebrowse-move-point-to-member\n|ebrowse-ms-definition-file--cmacro|ebrowse-ms-definition-file|ebrowse-ms-definition-pattern--cmacro|ebrowse-ms-definition-pattern\n|ebrowse-ms-definition-point--cmacro|ebrowse-ms-definition-point|ebrowse-ms-file--cmacro|ebrowse-ms-file|ebrowse-ms-flags--cmacro\n|ebrowse-ms-flags|ebrowse-ms-name--cmacro|ebrowse-ms-name|ebrowse-ms-p--cmacro|ebrowse-ms-p|ebrowse-ms-pattern--cmacro|ebrowse-ms-pattern\n|ebrowse-ms-point--cmacro|ebrowse-ms-point|ebrowse-ms-scope--cmacro|ebrowse-ms-scope|ebrowse-ms-visibility--cmacro|ebrowse-ms-visibility\n|ebrowse-mutable-p|ebrowse-name\\/accessor-alist-for-class-members|ebrowse-name\\/accessor-alist-for-visible-members|ebrowse-name\\/accessor-alist\n|ebrowse-on-class-name|ebrowse-on-member-name|ebrowse-output|ebrowse-pop\\/switch-to-member-buffer-for-same-tree|ebrowse-pop-from-member-to-tree-buffer\n|ebrowse-pop-to-browser-buffer|ebrowse-popup-menu|ebrowse-position-file-name--cmacro|ebrowse-position-file-name|ebrowse-position-info--cmacro\n|ebrowse-position-info|ebrowse-position-name|ebrowse-position-p--cmacro|ebrowse-position-p|ebrowse-position-point--cmacro|ebrowse-position-point\n|ebrowse-position-target--cmacro|ebrowse-position-target|ebrowse-position|ebrowse-pp-define-regexp|ebrowse-print-statistics-line\n|ebrowse-pure-virtual-p|ebrowse-push-position|ebrowse-qualified-class-name|ebrowse-read-class-name-and-go|ebrowse-read|ebrowse-redisplay-member-buffer\n|ebrowse-redraw-marks|ebrowse-redraw-tree|ebrowse-remove-all-member-filters|ebrowse-remove-class-and-kill-member-buffers|ebrowse-remove-class-at-point\n|ebrowse-rename-buffer|ebrowse-repeat-member-search|ebrowse-revert-tree-buffer-from-file|ebrowse-same-tree-member-buffer-list\n|ebrowse-save-class|ebrowse-save-selective|ebrowse-save-tree-as|ebrowse-save-tree|ebrowse-select-1st-to-9nth|ebrowse-set-face|ebrowse-set-mark-props\n|ebrowse-set-member-access-visibility|ebrowse-set-member-buffer-column-width|ebrowse-set-tree-indentation|ebrowse-show-displayed-class-in-tree\n|ebrowse-show-file-name-at-point|ebrowse-show-progress|ebrowse-some-member-table|ebrowse-some|ebrowse-sort-tree-list|ebrowse-statistics\n|ebrowse-switch-member-buffer-to-any-class|ebrowse-switch-member-buffer-to-base-class|ebrowse-switch-member-buffer-to-derived-class\n|ebrowse-switch-member-buffer-to-next-sibling-class|ebrowse-switch-member-buffer-to-other-class|ebrowse-switch-member-buffer-to-previous-sibling-class\n|ebrowse-switch-member-buffer-to-sibling-class|ebrowse-switch-to-next-member-buffer|ebrowse-symbol-regexp|ebrowse-tags-apropos\n|ebrowse-tags-choose-class|ebrowse-tags-complete-symbol|ebrowse-tags-display-member-buffer|ebrowse-tags-find-declaration-other-frame\n|ebrowse-tags-find-declaration-other-window|ebrowse-tags-find-declaration|ebrowse-tags-find-definition-other-frame|ebrowse-tags-find-definition-other-window\n|ebrowse-tags-find-definition|ebrowse-tags-list-members-in-file|ebrowse-tags-loop-continue|ebrowse-tags-next-file|ebrowse-tags-query-replace\n|ebrowse-tags-read-member\\+class-name|ebrowse-tags-read-name|ebrowse-tags-search-member-use|ebrowse-tags-search|ebrowse-tags-select\\/create-member-buffer\n|ebrowse-tags-view\\/find-member-decl\\/defn|ebrowse-tags-view-declaration-other-frame|ebrowse-tags-view-declaration-other-window\n|ebrowse-tags-view-declaration|ebrowse-tags-view-definition-other-frame|ebrowse-tags-view-definition-other-window|ebrowse-tags-view-definition\n|ebrowse-template-p|ebrowse-throw-list-p|ebrowse-toggle-base-class-display|ebrowse-toggle-const-member-filter|ebrowse-toggle-file-name-display\n|ebrowse-toggle-inline-member-filter|ebrowse-toggle-long-short-display|ebrowse-toggle-mark-at-point|ebrowse-toggle-member-attributes-display\n|ebrowse-toggle-private-member-filter|ebrowse-toggle-protected-member-filter|ebrowse-toggle-public-member-filter|ebrowse-toggle-pure-member-filter\n|ebrowse-toggle-regexp-display|ebrowse-toggle-virtual-member-filter|ebrowse-tree-at-point|ebrowse-tree-buffer-class-object-menu\n|ebrowse-tree-buffer-list|ebrowse-tree-buffer-object-menu|ebrowse-tree-buffer-p|ebrowse-tree-command:show-friends|ebrowse-tree-command:show-member-functions\n|ebrowse-tree-command:show-member-variables|ebrowse-tree-command:show-static-member-functions|ebrowse-tree-command:show-static-member-variables\n|ebrowse-tree-command:show-types|ebrowse-tree-mode|ebrowse-tree-obarray-as-alist|ebrowse-trim-string|ebrowse-ts-base-classes--cmacro\n|ebrowse-ts-base-classes|ebrowse-ts-class--cmacro|ebrowse-ts-class|ebrowse-ts-friends--cmacro|ebrowse-ts-friends|ebrowse-ts-mark--cmacro\n|ebrowse-ts-mark|ebrowse-ts-member-functions--cmacro|ebrowse-ts-member-functions|ebrowse-ts-member-variables--cmacro|ebrowse-ts-member-variables\n|ebrowse-ts-p--cmacro|ebrowse-ts-p|ebrowse-ts-static-functions--cmacro|ebrowse-ts-static-functions|ebrowse-ts-static-variables--cmacro\n|ebrowse-ts-static-variables|ebrowse-ts-subclasses--cmacro|ebrowse-ts-subclasses|ebrowse-ts-types--cmacro|ebrowse-ts-types|ebrowse-unhide-base-classes\n|ebrowse-update-member-buffer-mode-line|ebrowse-update-tree-buffer-mode-line|ebrowse-variable-declaration-regexp|ebrowse-view\\/find-class-declaration\n|ebrowse-view\\/find-file-and-search-pattern|ebrowse-view\\/find-member-declaration\\/definition|ebrowse-view\\/find-position\n|ebrowse-view-class-declaration|ebrowse-view-exit-fn|ebrowse-view-file-other-frame|ebrowse-view-member-declaration|ebrowse-view-member-definition\n|ebrowse-virtual-p|ebrowse-width-of-drawable-area|ebrowse-write-file-hook-fn|ebuffers|ebuffers3|ecase|ecomplete-display-matches\n|ecomplete-setup|ede--detect-ldf-predicate|ede--detect-ldf-root-predicate|ede--detect-ldf-rootonly-predicate|ede--detect-scan-directory-for-project-root\n|ede--detect-scan-directory-for-project|ede--detect-scan-directory-for-rootonly-project|ede--detect-stop-scan-p|ede--directory-project-add-description-to-hash\n|ede--directory-project-from-hash|ede--get-inode-dir-hash|ede--inode-for-dir|ede--inode-get-toplevel-open-project|ede--project-inode\n|ede--put-inode-dir-hash|ede-add-file|ede-add-project-autoload|ede-add-project-to-global-list|ede-add-subproject|ede-adebug-project-parent\n|ede-adebug-project-root|ede-adebug-project|ede-apply-object-keymap|ede-apply-preprocessor-map|ede-apply-project-local-variables\n|ede-apply-target-options|ede-auto-add-to-target|ede-auto-detect-in-dir|ede-auto-load-project|ede-buffer-belongs-to-project-p\n|ede-buffer-belongs-to-target-p|ede-buffer-documentation-files|ede-buffer-header-file|ede-buffer-mine|ede-buffer-object|ede-buffers\n|ede-build-forms-menu|ede-check-project-directory|ede-choose-object|ede-commit-local-variables|ede-compile-project|ede-compile-selected\n|ede-compile-target|ede-configuration-forms-menu|ede-convert-path|ede-cpp-root-project-child-p|ede-cpp-root-project-list-p|ede-cpp-root-project-p\n|ede-cpp-root-project|ede-create-tag-buttons|ede-current-project|ede-customize-current-target|ede-customize-forms-menu|ede-customize-project\n|ede-debug-target|ede-delete-project-from-global-list|ede-delete-target|ede-description|ede-detect-directory-for-project|ede-detect-qtest\n|ede-directory-get-open-project|ede-directory-get-toplevel-open-project|ede-directory-project-cons|ede-directory-project-p|ede-directory-safe-p\n|ede-dired-minor-mode|ede-dirmatch-installed|ede-do-dirmatch|ede-documentation-files|ede-documentation|ede-ecb-project-paths|ede-edit-file-target\n|ede-edit-web-page|ede-enable-generic-projects|ede-enable-locate-on-project|ede-expand-filename-impl-via-subproj|ede-expand-filename-impl\n|ede-expand-filename-local|ede-expand-filename|ede-file-find|ede-find-file|ede-find-nearest-file-line|ede-find-subproject-for-directory\n|ede-find-target|ede-flush-deleted-projects|ede-flush-directory-hash|ede-flush-project-hash|ede-get-locator-object|ede-global-list-sanity-check\n|ede-header-file|ede-html-documentation-files|ede-html-documentation|ede-ignore-file|ede-initialize-state-current-buffer|ede-invoke-method\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nede-java-classpath|ede-linux-load|ede-load-cache|ede-load-project-file|ede-make-check-version|ede-make-dist|ede-make-project-local-variable\n|ede-map-all-subprojects|ede-map-any-target-p|ede-map-buffers|ede-map-project-buffers|ede-map-subprojects|ede-map-target-buffers\n|ede-map-targets|ede-menu-items-build|ede-menu-obj-of-class-p|ede-minor-mode|ede-name|ede-new-target-custom|ede-new-target|ede-new\n|ede-normalize-file\\/directory|ede-object-keybindings|ede-object-menu|ede-object-sourcecode|ede-parent-project|ede-preprocessor-map\n|ede-project-autoload-child-p|ede-project-autoload-dirmatch-child-p|ede-project-autoload-dirmatch-list-p|ede-project-autoload-dirmatch-p\n|ede-project-autoload-dirmatch|ede-project-autoload-list-p|ede-project-autoload-p|ede-project-autoload|ede-project-buffers|ede-project-child-p\n|ede-project-configurations-set|ede-project-directory-remove-hash|ede-project-forms-menu|ede-project-list-p|ede-project-p|ede-project-placeholder-child-p\n|ede-project-placeholder-list-p|ede-project-placeholder-p|ede-project-placeholder|ede-project-root-directory|ede-project-root\n|ede-project-sort-targets|ede-project|ede-remove-file|ede-rescan-toplevel|ede-reset-all-buffers|ede-run-target|ede-save-cache|ede-set-project-local-variable\n|ede-set-project-variables|ede-set|ede-singular-object|ede-source-paths|ede-sourcecode-child-p|ede-sourcecode-list-p|ede-sourcecode-p\n|ede-sourcecode|ede-speedbar-compile-file-project|ede-speedbar-compile-line|ede-speedbar-compile-project|ede-speedbar-edit-projectfile\n|ede-speedbar-file-setup|ede-speedbar-get-top-project-for-line|ede-speedbar-make-distribution|ede-speedbar-make-map|ede-speedbar-remove-file-from-target\n|ede-speedbar-toplevel-buttons|ede-speedbar|ede-subproject-p|ede-subproject-relative-path|ede-system-include-path|ede-tag-expand\n|ede-tag-find|ede-target-buffer-in-sourcelist|ede-target-buffers|ede-target-child-p|ede-target-forms-menu|ede-target-in-project-p\n|ede-target-list-p|ede-target-name|ede-target-p|ede-target-parent|ede-target-sourcecode|ede-target|ede-toplevel-project-or-nil|ede-toplevel-project\n|ede-toplevel|ede-turn-on-hook|ede-up-directory|ede-update-version|ede-upload-distribution|ede-upload-html-documentation|ede-vc-project-directory\n|ede-version|ede-want-any-auxiliary-files-p|ede-want-any-files-p|ede-want-any-source-files-p|ede-want-file-auxiliary-p|ede-want-file-p\n|ede-want-file-source-p|ede-web-browse-home|ede-with-projectfile|ede|edebug-&optional-wrapper|edebug-&rest-wrapper|edebug--called-interactively-skip\n|edebug--display|edebug--enter-trace|edebug--form-data-begin--cmacro|edebug--form-data-begin|edebug--form-data-end--cmacro|edebug--form-data-end\n|edebug--form-data-name--cmacro|edebug--form-data-name|edebug--make-form-data-entry--cmacro|edebug--make-form-data-entry|edebug--read\n|edebug--recursive-edit|edebug--require-cl-read|edebug--update-coverage|edebug-Continue-fast-mode|edebug-Go-nonstop-mode|edebug-Trace-fast-mode\n|edebug-`|edebug-adjust-window|edebug-after-offset|edebug-after|edebug-all-defuns|edebug-backtrace|edebug-basic-spec|edebug-before-offset\n|edebug-before|edebug-bounce-point|edebug-changing-windows|edebug-clear-coverage|edebug-clear-form-data-entry|edebug-clear-frequency-count\n|edebug-compute-previous-result|edebug-continue-mode|edebug-copy-cursor|edebug-create-eval-buffer|edebug-current-windows|edebug-cursor-expressions\n|edebug-cursor-offsets|edebug-debugger|edebug-defining-form|edebug-delete-eval-item|edebug-empty-cursor|edebug-enter|edebug-eval-defun\n|edebug-eval-display-list|edebug-eval-display|edebug-eval-expression|edebug-eval-last-sexp|edebug-eval-mode|edebug-eval-print-last-sexp\n|edebug-eval-redisplay|edebug-eval-result-list|edebug-eval|edebug-fast-after|edebug-fast-before|edebug-find-stop-point|edebug-form-data-symbol\n|edebug-form|edebug-format|edebug-forms|edebug-forward-sexp|edebug-get-displayed-buffer-points|edebug-get-form-data-entry|edebug-go-mode\n|edebug-goto-here|edebug-help|edebug-ignore-offset|edebug-inc-offset|edebug-initialize-offsets|edebug-install-read-eval-functions\n|edebug-instrument-callee|edebug-instrument-function|edebug-interactive-p-name|edebug-kill-buffer|edebug-lambda-list-keywordp\n|edebug-last-sexp|edebug-list-form-args|edebug-list-form|edebug-make-after-form|edebug-make-before-and-after-form|edebug-make-enter-wrapper\n|edebug-make-form-wrapper|edebug-make-top-form-data-entry|edebug-mark-marker|edebug-mark|edebug-match-&define|edebug-match-&key\n|edebug-match-¬|edebug-match-&optional|edebug-match-&or|edebug-match-&rest|edebug-match-arg|edebug-match-body|edebug-match-colon-name\n|edebug-match-def-body|edebug-match-def-form|edebug-match-form|edebug-match-function|edebug-match-gate|edebug-match-lambda-expr\n|edebug-match-list|edebug-match-name|edebug-match-nil|edebug-match-one-spec|edebug-match-place|edebug-match-sexp|edebug-match-specs\n|edebug-match-string|edebug-match-sublist|edebug-match-symbol|edebug-match|edebug-menu|edebug-message|edebug-mode|edebug-modify-breakpoint\n|edebug-move-cursor|edebug-new-cursor|edebug-next-breakpoint|edebug-next-mode|edebug-next-token-class|edebug-no-match|edebug-on-entry\n|edebug-outside-excursion|edebug-overlay-arrow|edebug-pop-to-buffer|edebug-previous-result|edebug-prin1-to-string|edebug-prin1\n|edebug-print|edebug-read-and-maybe-wrap-form|edebug-read-and-maybe-wrap-form1|edebug-read-backquote|edebug-read-comma|edebug-read-function\n|edebug-read-list|edebug-read-quote|edebug-read-sexp|edebug-read-storing-offsets|edebug-read-string|edebug-read-symbol|edebug-read-top-level-form\n|edebug-read-vector|edebug-report-error|edebug-restore-status|edebug-run-fast|edebug-run-slow|edebug-safe-eval|edebug-safe-prin1-to-string\n|edebug-set-breakpoint|edebug-set-buffer-points|edebug-set-conditional-breakpoint|edebug-set-cursor|edebug-set-form-data-entry\n|edebug-set-mode|edebug-set-windows|edebug-sexps|edebug-signal|edebug-skip-whitespace|edebug-slow-after|edebug-slow-before|edebug-sort-alist\n|edebug-spec-p|edebug-step-in|edebug-step-mode|edebug-step-out|edebug-step-through-mode|edebug-stop|edebug-store-after-offset|edebug-store-before-offset\n|edebug-storing-offsets|edebug-syntax-error|edebug-toggle-save-all-windows|edebug-toggle-save-selected-window|edebug-toggle-save-windows\n|edebug-toggle|edebug-top-element-required|edebug-top-element|edebug-top-level-nonstop|edebug-top-offset|edebug-trace-display|edebug-trace-mode\n|edebug-uninstall-read-eval-functions|edebug-unload-function|edebug-unset-breakpoint|edebug-unwrap\\*|edebug-unwrap|edebug-update-eval-list\n|edebug-var-status|edebug-view-outside|edebug-visit-eval-list|edebug-where|edebug-window-list|edebug-window-live-p|edebug-wrap-def-body\n|ediff-3way-comparison-job|ediff-3way-job|ediff-abbrev-jobname|ediff-abbreviate-file-name|ediff-activate-mark|ediff-add-slash-if-directory\n|ediff-add-to-history|ediff-ancestor-metajob|ediff-append-custom-diff|ediff-arrange-autosave-in-merge-jobs|ediff-background-face\n|ediff-backup|ediff-barf-if-not-control-buffer|ediff-buffer-live-p|ediff-buffer-type|ediff-buffers-internal|ediff-buffers|ediff-buffers3\n|ediff-bury-dir-diffs-buffer|ediff-calc-command-time|ediff-change-saved-variable|ediff-char-to-buftype|ediff-check-version|ediff-choose-syntax-table\n|ediff-choose-window-setup-function-automatically|ediff-cleanup-mess|ediff-cleanup-meta-buffer|ediff-clear-diff-vector|ediff-clear-fine-diff-vector\n|ediff-clear-fine-differences-in-one-buffer|ediff-clear-fine-differences|ediff-clone-buffer-for-current-diff-comparison|ediff-clone-buffer-for-region-comparison\n|ediff-clone-buffer-for-window-comparison|ediff-collect-custom-diffs|ediff-collect-diffs-metajob|ediff-color-display-p|ediff-combine-diffs\n|ediff-comparison-metajob3|ediff-compute-custom-diffs-maybe|ediff-compute-toolbar-width|ediff-convert-diffs-to-overlays|ediff-convert-fine-diffs-to-overlays\n|ediff-convert-standard-filename|ediff-copy-A-to-B|ediff-copy-A-to-C|ediff-copy-B-to-A|ediff-copy-B-to-C|ediff-copy-C-to-A|ediff-copy-C-to-B\n|ediff-copy-diff|ediff-copy-list|ediff-copy-to-buffer|ediff-current-file|ediff-customize|ediff-deactivate-mark|ediff-debug-info\n|ediff-default-suspend-function|ediff-defvar-local|ediff-delete-all-matches|ediff-delete-overlay|ediff-delete-temp-files|ediff-destroy-control-frame\n|ediff-device-type|ediff-diff-at-point|ediff-diff-to-diff|ediff-diff3-job|ediff-dir-diff-copy-file|ediff-directories-command|ediff-directories-internal\n|ediff-directories|ediff-directories3-command|ediff-directories3|ediff-directory-revisions-internal|ediff-directory-revisions\n|ediff-display-pixel-height|ediff-display-pixel-width|ediff-dispose-of-meta-buffer|ediff-dispose-of-variant-according-to-user\n|ediff-do-merge|ediff-documentation|ediff-draw-dir-diffs|ediff-empty-diff-region-p|ediff-empty-overlay-p|ediff-event-buffer|ediff-event-key\n|ediff-event-point|ediff-exec-process|ediff-extract-diffs|ediff-extract-diffs3|ediff-file-attributes|ediff-file-checked-in-p|ediff-file-checked-out-p\n|ediff-file-compressed-p|ediff-file-modtime|ediff-file-remote-p|ediff-file-size|ediff-filegroup-action|ediff-filename-magic-p|ediff-files-command\n|ediff-files-internal|ediff-files|ediff-files3|ediff-fill-leading-zero|ediff-find-file|ediff-focus-on-regexp-matches|ediff-format-bindings-of\n|ediff-format-date|ediff-forward-word|ediff-frame-char-height|ediff-frame-char-width|ediff-frame-has-dedicated-windows|ediff-frame-iconified-p\n|ediff-frame-unsplittable-p|ediff-get-buffer|ediff-get-combined-region|ediff-get-default-directory-name|ediff-get-default-file-name\n|ediff-get-diff-overlay-from-diff-record|ediff-get-diff-overlay|ediff-get-diff-posn|ediff-get-diff3-group|ediff-get-difference\n|ediff-get-directory-files-under-revision|ediff-get-file-eqstatus|ediff-get-fine-diff-vector-from-diff-record|ediff-get-fine-diff-vector\n|ediff-get-group-buffer|ediff-get-group-comparison-func|ediff-get-group-merge-autostore-dir|ediff-get-group-objA|ediff-get-group-objB\n|ediff-get-group-objC|ediff-get-group-regexp|ediff-get-lines-to-region-end|ediff-get-lines-to-region-start|ediff-get-meta-info\n|ediff-get-meta-overlay-at-pos|ediff-get-next-window|ediff-get-region-contents|ediff-get-region-size-coefficient|ediff-get-selected-buffers\n|ediff-get-session-activity-marker|ediff-get-session-buffer|ediff-get-session-number-at-pos|ediff-get-session-objA-name|ediff-get-session-objA\n|ediff-get-session-objB-name|ediff-get-session-objB|ediff-get-session-objC-name|ediff-get-session-objC|ediff-get-session-status\n|ediff-get-state-of-ancestor|ediff-get-state-of-diff|ediff-get-state-of-merge|ediff-get-symbol-from-alist|ediff-get-value-according-to-buffer-type\n|ediff-get-visible-buffer-window|ediff-get-window-by-clicking|ediff-good-frame-under-mouse|ediff-goto-word|ediff-has-face-support-p\n|ediff-has-gutter-support-p|ediff-has-toolbar-support-p|ediff-help-for-quick-help|ediff-help-message-line-length|ediff-hide-face\n|ediff-hide-marked-sessions|ediff-hide-regexp-matches|ediff-highlight-diff-in-one-buffer|ediff-highlight-diff|ediff-in-control-buffer-p\n|ediff-indent-help-message|ediff-inferior-compare-regions|ediff-insert-dirs-in-meta-buffer|ediff-insert-session-activity-marker-in-meta-buffer\n|ediff-insert-session-info-in-meta-buffer|ediff-insert-session-status-in-meta-buffer|ediff-install-fine-diff-if-necessary|ediff-intersect-directories\n|ediff-intersection|ediff-janitor|ediff-jump-to-difference-at-point|ediff-jump-to-difference|ediff-keep-window-config|ediff-key-press-event-p\n|ediff-kill-bottom-toolbar|ediff-kill-buffer-carefully|ediff-last-command-char|ediff-listable-file|ediff-load-version-control\n|ediff-looks-like-combined-merge|ediff-make-base-title|ediff-make-bottom-toolbar|ediff-make-bullet-proof-overlay|ediff-make-cloned-buffer\n|ediff-make-current-diff-overlay|ediff-make-diff2-buffer|ediff-make-empty-tmp-file|ediff-make-fine-diffs|ediff-make-frame-position\n|ediff-make-indirect-buffer|ediff-make-narrow-control-buffer-id|ediff-make-new-meta-list-element|ediff-make-new-meta-list-header\n|ediff-make-or-kill-fine-diffs|ediff-make-overlay|ediff-make-temp-file|ediff-make-wide-control-buffer-id|ediff-make-wide-display\n|ediff-mark-diff-as-space-only|ediff-mark-for-hiding-at-pos|ediff-mark-for-operation-at-pos|ediff-mark-if-equal|ediff-mark-session-for-hiding\n|ediff-mark-session-for-operation|ediff-maybe-checkout|ediff-maybe-save-and-delete-merge|ediff-member|ediff-merge-buffers-with-ancestor\n|ediff-merge-buffers|ediff-merge-changed-from-default-p|ediff-merge-command|ediff-merge-directories-command|ediff-merge-directories-with-ancestor-command\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nediff-merge-directories-with-ancestor|ediff-merge-directories|ediff-merge-directory-revisions-with-ancestor|ediff-merge-directory-revisions\n|ediff-merge-files-with-ancestor|ediff-merge-files|ediff-merge-job|ediff-merge-metajob|ediff-merge-on-startup|ediff-merge-region-is-non-clash-to-skip\n|ediff-merge-region-is-non-clash|ediff-merge-revisions-with-ancestor|ediff-merge-revisions|ediff-merge-with-ancestor-command\n|ediff-merge-with-ancestor-job|ediff-merge-with-ancestor|ediff-merge|ediff-message-if-verbose|ediff-meta-insert-file-info1|ediff-meta-mark-equal-files\n|ediff-meta-mode|ediff-meta-session-p|ediff-meta-show-patch|ediff-metajob3|ediff-minibuffer-with-setup-hook|ediff-mode|ediff-mouse-event-p\n|ediff-move-overlay|ediff-multiframe-setup-p|ediff-narrow-control-frame-p|ediff-narrow-job|ediff-next-difference|ediff-next-meta-item\n|ediff-next-meta-item1|ediff-next-meta-overlay-start|ediff-no-fine-diffs-p|ediff-nonempty-string-p|ediff-nuke-selective-display\n|ediff-one-filegroup-metajob|ediff-operate-on-marked-sessions|ediff-operate-on-windows|ediff-other-buffer|ediff-overlay-buffer\n|ediff-overlay-end|ediff-overlay-get|ediff-overlay-put|ediff-overlay-start|ediff-overlayp|ediff-paint-background-regions-in-one-buffer\n|ediff-paint-background-regions|ediff-patch-buffer|ediff-patch-file-form-meta|ediff-patch-file-internal|ediff-patch-file|ediff-patch-job\n|ediff-patch-metajob|ediff-place-flags-in-buffer|ediff-place-flags-in-buffer1|ediff-pop-diff|ediff-position-region|ediff-prepare-error-list\n|ediff-prepare-meta-buffer|ediff-previous-difference|ediff-previous-meta-item|ediff-previous-meta-item1|ediff-previous-meta-overlay-start\n|ediff-print-diff-vector|ediff-problematic-session-p|ediff-process-filter|ediff-process-sentinel|ediff-profile|ediff-quit-meta-buffer\n|ediff-quit|ediff-re-merge|ediff-read-event|ediff-read-file-name|ediff-really-quit|ediff-recenter-ancestor|ediff-recenter-one-window\n|ediff-recenter|ediff-redraw-directory-group-buffer|ediff-redraw-registry-buffer|ediff-refresh-control-frame|ediff-refresh-mode-lines\n|ediff-region-help-echo|ediff-regions-internal|ediff-regions-linewise|ediff-regions-wordwise|ediff-registry-action|ediff-reload-keymap\n|ediff-remove-flags-from-buffer|ediff-replace-session-activity-marker-in-meta-buffer|ediff-replace-session-status-in-meta-buffer\n|ediff-reset-mouse|ediff-restore-diff-in-merge-buffer|ediff-restore-diff|ediff-restore-highlighting|ediff-restore-protected-variables\n|ediff-restore-variables|ediff-revert-buffers-then-recompute-diffs|ediff-revision-metajob|ediff-revision|ediff-safe-to-quit|ediff-same-contents\n|ediff-same-file-contents-lists|ediff-same-file-contents|ediff-save-buffer-in-file|ediff-save-buffer|ediff-save-diff-region|ediff-save-protected-variables\n|ediff-save-time|ediff-save-variables|ediff-scroll-horizontally|ediff-scroll-vertically|ediff-select-difference|ediff-select-lowest-window\n|ediff-set-actual-diff-options|ediff-set-diff-options|ediff-set-diff-overlays-in-one-buffer|ediff-set-difference|ediff-set-face-pixmap\n|ediff-set-file-eqstatus|ediff-set-fine-diff-properties-in-one-buffer|ediff-set-fine-diff-properties|ediff-set-fine-diff-vector\n|ediff-set-fine-overlays-for-combined-merge|ediff-set-fine-overlays-in-one-buffer|ediff-set-help-message|ediff-set-help-overlays\n|ediff-set-keys|ediff-set-merge-mode|ediff-set-meta-overlay|ediff-set-overlay-face|ediff-set-read-only-in-buf-A|ediff-set-session-status\n|ediff-set-state-of-all-diffs-in-all-buffers|ediff-set-state-of-diff-in-all-buffers|ediff-set-state-of-diff|ediff-set-state-of-merge\n|ediff-setup-control-buffer|ediff-setup-control-frame|ediff-setup-diff-regions|ediff-setup-diff-regions3|ediff-setup-fine-diff-regions\n|ediff-setup-keymap|ediff-setup-meta-map|ediff-setup-windows-default|ediff-setup-windows-multiframe-compare|ediff-setup-windows-multiframe-merge\n|ediff-setup-windows-multiframe|ediff-setup-windows-plain-compare|ediff-setup-windows-plain-merge|ediff-setup-windows-plain|ediff-setup-windows\n|ediff-setup|ediff-show-all-diffs|ediff-show-ancestor|ediff-show-current-session-meta-buffer|ediff-show-diff-output|ediff-show-dir-diffs\n|ediff-show-meta-buff-from-registry|ediff-show-meta-buffer|ediff-show-registry|ediff-shrink-window-C|ediff-skip-merge-region-if-changed-from-default-p\n|ediff-skip-unsuitable-frames|ediff-spy-after-mouse|ediff-status-info|ediff-strip-last-dir|ediff-strip-mode-line-format|ediff-submit-report\n|ediff-suspend|ediff-swap-buffers|ediff-test-save-region|ediff-toggle-autorefine|ediff-toggle-filename-truncation|ediff-toggle-help\n|ediff-toggle-hilit|ediff-toggle-ignore-case|ediff-toggle-multiframe|ediff-toggle-narrow-region|ediff-toggle-read-only|ediff-toggle-regexp-match\n|ediff-toggle-show-clashes-only|ediff-toggle-skip-changed-regions|ediff-toggle-skip-similar|ediff-toggle-split|ediff-toggle-use-toolbar\n|ediff-toggle-verbose-help-meta-buffer|ediff-toggle-wide-display|ediff-truncate-string-left|ediff-unhighlight-diff-in-one-buffer\n|ediff-unhighlight-diff|ediff-unhighlight-diffs-totally-in-one-buffer|ediff-unhighlight-diffs-totally|ediff-union|ediff-unique-buffer-name\n|ediff-unmark-all-for-hiding|ediff-unmark-all-for-operation|ediff-unselect-and-select-difference|ediff-unselect-difference|ediff-up-meta-hierarchy\n|ediff-update-diffs|ediff-update-markers-in-dir-meta-buffer|ediff-update-meta-buffer|ediff-update-registry|ediff-update-session-marker-in-dir-meta-buffer\n|ediff-use-toolbar-p|ediff-user-grabbed-mouse|ediff-valid-difference-p|ediff-verify-file-buffer|ediff-verify-file-merge-buffer\n|ediff-version|ediff-visible-region|ediff-whitespace-diff-region-p|ediff-window-display-p|ediff-window-ok-for-display|ediff-window-visible-p\n|ediff-windows-job|ediff-windows-linewise|ediff-windows-wordwise|ediff-windows|ediff-with-current-buffer|ediff-with-syntax-table\n|ediff-word-mode-job|ediff-wordify|ediff-write-merge-buffer-and-maybe-kill|ediff-xemacs-select-frame-hook|ediff|ediff3-files-command\n|ediff3|edir-merge-revisions-with-ancestor|edir-merge-revisions|edir-revisions|edirs-merge-with-ancestor|edirs-merge|edirs|edirs3\n|edit-abbrevs-mode|edit-abbrevs-redefine|edit-abbrevs|edit-bookmarks|edit-kbd-macro|edit-last-kbd-macro|edit-named-kbd-macro|edit-picture\n|edit-tab-stops-note-changes|edit-tab-stops|edmacro-finish-edit|edmacro-fix-menu-commands|edmacro-format-keys|edmacro-insert-key\n|edmacro-mode|edmacro-parse-keys|edmacro-sanitize-for-string|edt-advance|edt-append|edt-backup|edt-beginning-of-line|edt-bind-function-key-default\n|edt-bind-function-key|edt-bind-gold-key-default|edt-bind-gold-key|edt-bind-key-default|edt-bind-key|edt-bind-standard-key|edt-bottom-check\n|edt-bottom|edt-change-case|edt-change-direction|edt-character|edt-check-match|edt-check-prefix|edt-check-selection|edt-copy-rectangle\n|edt-copy|edt-current-line|edt-cut-or-copy|edt-cut-rectangle-insert-mode|edt-cut-rectangle-overstrike-mode|edt-cut-rectangle|edt-cut\n|edt-default-emulation-setup|edt-default-menu-bar-update-buffers|edt-define-key|edt-delete-character|edt-delete-entire-line|edt-delete-line\n|edt-delete-previous-character|edt-delete-to-beginning-of-line|edt-delete-to-beginning-of-word|edt-delete-to-end-of-line|edt-delete-word\n|edt-display-the-time|edt-duplicate-line|edt-duplicate-word|edt-electric-helpify|edt-electric-keypad-help|edt-electric-user-keypad-help\n|edt-eliminate-all-tabs|edt-emulation-off|edt-emulation-on|edt-end-of-line-backward|edt-end-of-line-forward|edt-end-of-line|edt-exit\n|edt-fill-region|edt-find-backward|edt-find-forward|edt-find-next-backward|edt-find-next-forward|edt-find-next|edt-find|edt-form-feed-insert\n|edt-goto-percentage|edt-indent-or-fill-region|edt-key-not-assigned|edt-keypad-help|edt-learn|edt-line-backward|edt-line-forward\n|edt-line-to-bottom-of-window|edt-line-to-middle-of-window|edt-line-to-top-of-window|edt-line|edt-load-keys|edt-lowercase|edt-mark-section-wisely\n|edt-match-beginning|edt-match-end|edt-next-line|edt-one-word-backward|edt-one-word-forward|edt-page-backward|edt-page-forward|edt-page\n|edt-paragraph-backward|edt-paragraph-forward|edt-paragraph|edt-paste-rectangle-insert-mode|edt-paste-rectangle-overstrike-mode\n|edt-paste-rectangle|edt-previous-line|edt-quit|edt-remember|edt-replace|edt-reset|edt-restore-key|edt-scroll-line|edt-scroll-window-backward-line\n|edt-scroll-window-backward|edt-scroll-window-forward-line|edt-scroll-window-forward|edt-scroll-window|edt-sect-backward|edt-sect-forward\n|edt-sect|edt-select-default-global-map|edt-select-mode|edt-select-user-global-map|edt-select|edt-sentence-backward|edt-sentence-forward\n|edt-sentence|edt-set-match|edt-set-screen-width-132|edt-set-screen-width-80|edt-set-scroll-margins|edt-setup-default-bindings\n|edt-show-match-markers|edt-split-window|edt-substitute|edt-switch-global-maps|edt-tab-insert|edt-toggle-capitalization-of-word\n|edt-toggle-select|edt-top-check|edt-top|edt-undelete-character|edt-undelete-line|edt-undelete-word|edt-unset-match|edt-uppercase\n|edt-user-emulation-setup|edt-user-menu-bar-update-buffers|edt-window-bottom|edt-window-top|edt-with-position|edt-word-backward\n|edt-word-forward|edt-word|edt-y-or-n-p|ehelp-command|eieio--check-type|eieio--class--unused-0|eieio--class-children|eieio--class-class-allocation-a\n|eieio--class-class-allocation-custom-group|eieio--class-class-allocation-custom-label|eieio--class-class-allocation-custom\n|eieio--class-class-allocation-doc|eieio--class-class-allocation-printer|eieio--class-class-allocation-protection|eieio--class-class-allocation-type\n|eieio--class-class-allocation-values|eieio--class-default-object-cache|eieio--class-initarg-tuples|eieio--class-options|eieio--class-parent\n|eieio--class-protection|eieio--class-public-a|eieio--class-public-custom-group|eieio--class-public-custom-label|eieio--class-public-custom\n|eieio--class-public-d|eieio--class-public-doc|eieio--class-public-printer|eieio--class-public-type|eieio--class-symbol-obarray\n|eieio--class-symbol|eieio--defalias|eieio--defgeneric-init-form|eieio--define-field-accessors|eieio--defmethod|eieio--object--unused-0\n|eieio--object-class|eieio--object-name|eieio--scoped-class|eieio--with-scoped-class|eieio-add-new-slot|eieio-attribute-to-initarg\n|eieio-barf-if-slot-unbound|eieio-browse|eieio-c3-candidate|eieio-c3-merge-lists|eieio-class-children-fast|eieio-class-children\n|eieio-class-name|eieio-class-parent|eieio-class-parents-fast|eieio-class-parents|eieio-class-precedence-bfs|eieio-class-precedence-c3\n|eieio-class-precedence-dfs|eieio-class-precedence-list|eieio-class-slot-name-index|eieio-class-un-autoload|eieio-copy-parents-into-subclass\n|eieio-custom-mode|eieio-custom-object-apply-reset|eieio-custom-toggle-hide|eieio-custom-toggle-parent|eieio-custom-widget-insert\n|eieio-customize-object-group|eieio-customize-object|eieio-default-eval-maybe|eieio-default-superclass-child-p|eieio-default-superclass-list-p\n|eieio-default-superclass-p|eieio-default-superclass|eieio-defclass-autoload|eieio-defclass|eieio-defgeneric-form-primary-only-one\n|eieio-defgeneric-form-primary-only|eieio-defgeneric-form|eieio-defgeneric-reset-generic-form-primary-only-one|eieio-defgeneric-reset-generic-form-primary-only\n|eieio-defgeneric-reset-generic-form|eieio-defgeneric|eieio-defmethod|eieio-done-customizing|eieio-edebug-prin1-to-string|eieio-eval-default-p\n|eieio-filter-slot-type|eieio-generic-call-primary-only|eieio-generic-call|eieio-generic-form|eieio-help-class|eieio-help-constructor\n|eieio-help-generic|eieio-initarg-to-attribute|eieio-instance-inheritor-child-p|eieio-instance-inheritor-list-p|eieio-instance-inheritor-p\n|eieio-instance-inheritor-slot-boundp|eieio-instance-inheritor|eieio-instance-tracker-child-p|eieio-instance-tracker-find|eieio-instance-tracker-list-p\n|eieio-instance-tracker-p|eieio-instance-tracker|eieio-list-prin1|eieio-named-child-p|eieio-named-list-p|eieio-named-p|eieio-named\n|eieio-object-abstract-to-value|eieio-object-class-name|eieio-object-class|eieio-object-match|eieio-object-name-string|eieio-object-name\n|eieio-object-p|eieio-object-set-name-string|eieio-object-value-create|eieio-object-value-get|eieio-object-value-to-abstract|eieio-oref-default\n|eieio-oref|eieio-oset-default|eieio-oset|eieio-override-prin1|eieio-perform-slot-validation-for-default|eieio-perform-slot-validation\n|eieio-persistent-child-p|eieio-persistent-convert-list-to-object|eieio-persistent-list-p|eieio-persistent-p|eieio-persistent-path-relative\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\neieio-persistent-read|eieio-persistent-save-interactive|eieio-persistent-save|eieio-persistent-slot-type-is-class-p|eieio-persistent-validate\\/fix-slot-value\n|eieio-persistent|eieio-read-customization-group|eieio-set-defaults|eieio-singleton-child-p|eieio-singleton-list-p|eieio-singleton-p\n|eieio-singleton|eieio-slot-name-index|eieio-slot-originating-class-p|eieio-slot-value-create|eieio-slot-value-get|eieio-specialized-key-to-generic-key\n|eieio-speedbar-buttons|eieio-speedbar-child-description|eieio-speedbar-child-make-tag-lines|eieio-speedbar-child-p|eieio-speedbar-create-engine\n|eieio-speedbar-create|eieio-speedbar-customize-line|eieio-speedbar-derive-line-path|eieio-speedbar-description|eieio-speedbar-directory-button-child-p\n|eieio-speedbar-directory-button-list-p|eieio-speedbar-directory-button-p|eieio-speedbar-directory-button|eieio-speedbar-expand\n|eieio-speedbar-file-button-child-p|eieio-speedbar-file-button-list-p|eieio-speedbar-file-button-p|eieio-speedbar-file-button\n|eieio-speedbar-find-nearest-object|eieio-speedbar-handle-click|eieio-speedbar-item-info|eieio-speedbar-line-path|eieio-speedbar-list-p\n|eieio-speedbar-make-map|eieio-speedbar-make-tag-line|eieio-speedbar-object-buttonname|eieio-speedbar-object-children|eieio-speedbar-object-click\n|eieio-speedbar-object-expand|eieio-speedbar-p|eieio-speedbar|eieio-unbind-method-implementations|eieio-validate-class-slot-value\n|eieio-validate-slot-value|eieio-version|eieio-widget-test-class-child-p|eieio-widget-test-class-list-p|eieio-widget-test-class-p\n|eieio-widget-test-class|eieiomt-add|eieiomt-install|eieiomt-method-list|eieiomt-next|eieiomt-sym-optimize|eighth|eldoc--message-command-p\n|eldoc-add-command-completions|eldoc-add-command|eldoc-display-message-no-interference-p|eldoc-display-message-p|eldoc-edit-message-commands\n|eldoc-message|eldoc-minibuffer-message|eldoc-mode|eldoc-pre-command-refresh-echo-area|eldoc-print-current-symbol-info|eldoc-remove-command-completions\n|eldoc-remove-command|eldoc-schedule-timer|electric--after-char-pos|electric--sort-post-self-insertion-hook|electric-apropos|electric-buffer-list\n|electric-buffer-menu-looper|electric-buffer-menu-mode|electric-buffer-update-highlight|electric-command-apropos|electric-describe-bindings\n|electric-describe-function|electric-describe-key|electric-describe-mode|electric-describe-syntax|electric-describe-variable|electric-help-command-loop\n|electric-help-ctrl-x-prefix|electric-help-execute-extended|electric-help-exit|electric-help-help|electric-help-mode|electric-help-retain\n|electric-help-undefined|electric-helpify|electric-icon-brace|electric-indent-just-newline|electric-indent-local-mode|electric-indent-mode\n|electric-indent-post-self-insert-function|electric-layout-mode|electric-layout-post-self-insert-function|electric-newline-and-maybe-indent\n|electric-nroff-mode|electric-nroff-newline|electric-pair-mode|electric-pascal-colon|electric-pascal-equal|electric-pascal-hash\n|electric-pascal-semi-or-dot|electric-pascal-tab|electric-pascal-terminate-line|electric-perl-terminator|electric-verilog-backward-sexp\n|electric-verilog-colon|electric-verilog-forward-sexp|electric-verilog-semi-with-comment|electric-verilog-semi|electric-verilog-tab\n|electric-verilog-terminate-and-indent|electric-verilog-terminate-line|electric-verilog-tick|electric-view-lossage|el-get[-\\w]*|elide-head-show\n|elide-head|elint-add-required-env|elint-check-cond-form|elint-check-condition-case-form|elint-check-conditional-form|elint-check-defalias-form\n|elint-check-defcustom-form|elint-check-defun-form|elint-check-defvar-form|elint-check-function-form|elint-check-let-form|elint-check-macro-form\n|elint-check-quote-form|elint-check-setq-form|elint-clear-log|elint-current-buffer|elint-defun|elint-directory|elint-display-log\n|elint-env-add-env|elint-env-add-func|elint-env-add-global-var|elint-env-add-macro|elint-env-add-var|elint-env-find-func|elint-env-find-var\n|elint-env-macro-env|elint-env-macrop|elint-error|elint-file|elint-find-args-in-code|elint-find-autoloaded-variables|elint-find-builtin-args\n|elint-find-builtins|elint-find-next-top-form|elint-form|elint-forms|elint-get-args|elint-get-log-buffer|elint-get-top-forms|elint-init-env\n|elint-init-form|elint-initialize|elint-log-message|elint-log|elint-make-env|elint-make-top-form|elint-match-args|elint-output|elint-put-function-args\n|elint-scan-doc-file|elint-set-mode-line|elint-top-form-form|elint-top-form-pos|elint-top-form|elint-unbound-variable|elint-update-env\n|elint-warning|elisp--beginning-of-sexp|elisp--byte-code-comment|elisp--company-doc-buffer|elisp--company-doc-string|elisp--company-location\n|elisp--current-symbol|elisp--docstring-first-line|elisp--docstring-format-sym-doc|elisp--eval-defun-1|elisp--eval-defun|elisp--eval-last-sexp-print-value\n|elisp--eval-last-sexp|elisp--expect-function-p|elisp--fnsym-in-current-sexp|elisp--form-quoted-p|elisp--function-argstring|elisp--get-fnsym-args-string\n|elisp--get-var-docstring|elisp--highlight-function-argument|elisp--last-data-store|elisp--local-variables-1|elisp--local-variables\n|elisp--preceding-sexp|elisp--xref-find-apropos|elisp--xref-find-definitions|elisp--xref-identifier-completion-table|elisp--xref-identifier-file\n|elisp-byte-code-mode|elisp-byte-code-syntax-propertize|elisp-completion-at-point|elisp-eldoc-documentation-function|elisp-index-search\n|elisp-last-sexp-toggle-display|elisp-xref-find|elp--instrumented-p|elp--make-wrapper|elp-elapsed-time|elp-instrument-function\n|elp-instrument-list|elp-instrument-package|elp-output-insert-symname|elp-output-result|elp-pack-number|elp-profilable-p|elp-reset-all\n|elp-reset-function|elp-reset-list|elp-restore-all|elp-restore-function|elp-restore-list|elp-results-jump-to-definition|elp-results\n|elp-set-master|elp-sort-by-average-time|elp-sort-by-call-count|elp-sort-by-total-time|elp-unload-function|elp-unset-master|emacs-bzr-get-version\n|emacs-bzr-version-bzr|emacs-bzr-version-dirstate|emacs-index-search|emacs-lisp-byte-compile-and-load|emacs-lisp-byte-compile\n|emacs-lisp-macroexpand|emacs-lisp-mode|emacs-lock--can-auto-unlock|emacs-lock--exit-locked-buffer|emacs-lock--kill-buffer-query-functions\n|emacs-lock--kill-emacs-hook|emacs-lock--kill-emacs-query-functions|emacs-lock--set-mode|emacs-lock-live-process-p|emacs-lock-mode\n|emacs-lock-unload-function|emacs-repository-get-version|emacs-session-filename|emacs-session-save|emerge-abort|emerge-auto-advance\n|emerge-buffers-with-ancestor|emerge-buffers|emerge-combine-versions-edit|emerge-combine-versions-internal|emerge-combine-versions-register\n|emerge-combine-versions|emerge-command-exit|emerge-compare-buffers|emerge-convert-diffs-to-markers|emerge-copy-as-kill-A|emerge-copy-as-kill-B\n|emerge-copy-modes|emerge-count-matches-string|emerge-default-A|emerge-default-B|emerge-define-key-if-possible|emerge-defvar-local\n|emerge-edit-mode|emerge-execute-line|emerge-extract-diffs|emerge-extract-diffs3|emerge-fast-mode|emerge-file-names|emerge-files-command\n|emerge-files-exit|emerge-files-internal|emerge-files-remote|emerge-files-with-ancestor-command|emerge-files-with-ancestor-internal\n|emerge-files-with-ancestor-remote|emerge-files-with-ancestor|emerge-files|emerge-find-difference-A|emerge-find-difference-B|emerge-find-difference-merge\n|emerge-find-difference|emerge-find-difference1|emerge-force-define-key|emerge-get-diff3-group|emerge-goto-line|emerge-handle-local-variables\n|emerge-hash-string-into-string|emerge-insert-A|emerge-insert-B|emerge-join-differences|emerge-jump-to-difference|emerge-line-number-in-buf\n|emerge-line-numbers|emerge-make-auto-save-file-name|emerge-make-diff-list|emerge-make-diff3-list|emerge-make-temp-file|emerge-mark-difference\n|emerge-merge-directories|emerge-mode|emerge-new-flags|emerge-next-difference|emerge-one-line-window|emerge-operate-on-windows\n|emerge-place-flags-in-buffer|emerge-place-flags-in-buffer1|emerge-position-region|emerge-prepare-error-list|emerge-previous-difference\n|emerge-protect-metachars|emerge-query-and-call|emerge-query-save-buffer|emerge-query-write-file|emerge-quit|emerge-read-file-name\n|emerge-really-quit|emerge-recenter|emerge-refresh-mode-line|emerge-remember-buffer-characteristics|emerge-remote-exit|emerge-remove-flags-in-buffer\n|emerge-restore-buffer-characteristics|emerge-restore-variables|emerge-revision-with-ancestor-internal|emerge-revisions-internal\n|emerge-revisions-with-ancestor|emerge-revisions|emerge-save-variables|emerge-scroll-down|emerge-scroll-left|emerge-scroll-reset\n|emerge-scroll-right|emerge-scroll-up|emerge-select-A-edit|emerge-select-A|emerge-select-B-edit|emerge-select-B|emerge-select-difference\n|emerge-select-prefer-Bs|emerge-select-version|emerge-set-combine-template|emerge-set-combine-versions-template|emerge-set-keys\n|emerge-set-merge-mode|emerge-setup-fixed-keymaps|emerge-setup-windows|emerge-setup-with-ancestor|emerge-setup|emerge-show-file-name\n|emerge-skip-prefers|emerge-split-difference|emerge-trim-difference|emerge-unique-buffer-name|emerge-unselect-and-select-difference\n|emerge-unselect-difference|emerge-unslashify-name|emerge-validate-difference|emerge-verify-file-buffer|emerge-write-and-delete\n|en\\/disable-command|enable-flow-control-on|enable-flow-control|encode-big5-char|encode-coding-char|encode-composition-components\n|encode-composition-rule|encode-hex-string|encode-hz-buffer|encode-hz-region|encode-sjis-char|encode-time-value|encoded-string-description\n|end-kbd-macro|end-of-buffer-other-window|end-of-icon-defun|end-of-paragraph-text|end-of-sexp|end-of-thing|end-of-visible-line|end-of-visual-line\n|endp|enlarge-window-horizontally|enlarge-window|enriched-after-change-major-mode|enriched-before-change-major-mode|enriched-decode-background\n|enriched-decode-display-prop|enriched-decode-foreground|enriched-decode|enriched-encode-other-face|enriched-encode|enriched-face-ans\n|enriched-get-file-width|enriched-handle-display-prop|enriched-insert-indentation|enriched-make-annotation|enriched-map-property-regions\n|enriched-mode-map|enriched-mode|enriched-next-annotation|enriched-remove-header|epa--decode-coding-string|epa--derived-mode-p\n|epa--encode-coding-string|epa--find-coding-system-for-mime-charset|epa--insert-keys|epa--key-list-revert-buffer|epa--key-widget-action\n|epa--key-widget-button-face-get|epa--key-widget-help-echo|epa--key-widget-value-create|epa--list-keys|epa--marked-keys|epa--read-signature-type\n|epa--select-keys|epa--select-safe-coding-system|epa--show-key|epa-decrypt-armor-in-region|epa-decrypt-file|epa-decrypt-region\n|epa-delete-keys|epa-dired-do-decrypt|epa-dired-do-encrypt|epa-dired-do-sign|epa-dired-do-verify|epa-display-error|epa-display-info\n|epa-display-verify-result|epa-encrypt-file|epa-encrypt-region|epa-exit-buffer|epa-export-keys|epa-file--file-name-regexp-set|epa-file-disable\n|epa-file-enable|epa-file-find-file-hook|epa-file-handler|epa-file-name-regexp-update|epa-global-mail-mode|epa-import-armor-in-region\n|epa-import-keys-region|epa-import-keys|epa-info-mode|epa-insert-keys|epa-key-list-mode|epa-key-mode|epa-list-keys|epa-list-secret-keys\n|epa-mail-decrypt|epa-mail-encrypt|epa-mail-import-keys|epa-mail-mode|epa-mail-sign|epa-mail-verify|epa-mark-key|epa-passphrase-callback-function\n|epa-progress-callback-function|epa-read-file-name|epa-select-keys|epa-sign-file|epa-sign-region|epa-unmark-key|epa-verify-cleartext-in-region\n|epa-verify-file|epa-verify-region|epatch-buffer|epatch|epg--args-from-sig-notations|epg--check-error-for-decrypt|epg--clear-string\n|epg--decode-coding-string|epg--decode-hexstring|epg--decode-percent-escape|epg--decode-quotedstring|epg--encode-coding-string\n|epg--gv-nreverse|epg--import-keys-1|epg--list-keys-1|epg--make-sub-key-1|epg--make-temp-file|epg--process-filter|epg--prompt-GET_BOOL-untrusted_key\\.override\n|epg--prompt-GET_BOOL|epg--start|epg--status-\\*SIG|epg--status-BADARMOR|epg--status-BADSIG|epg--status-DECRYPTION_FAILED|epg--status-DECRYPTION_OKAY\n|epg--status-DELETE_PROBLEM|epg--status-ENC_TO|epg--status-ERRSIG|epg--status-EXPKEYSIG|epg--status-EXPSIG|epg--status-GET_BOOL\n|epg--status-GET_HIDDEN|epg--status-GET_LINE|epg--status-GOODSIG|epg--status-IMPORTED|epg--status-IMPORT_OK|epg--status-IMPORT_PROBLEM\n|epg--status-IMPORT_RES|epg--status-INV_RECP|epg--status-INV_SGNR|epg--status-KEYEXPIRED|epg--status-KEYREVOKED|epg--status-KEY_CREATED\n|epg--status-KEY_NOT_CREATED|epg--status-NEED_PASSPHRASE|epg--status-NEED_PASSPHRASE_PIN|epg--status-NEED_PASSPHRASE_SYM|epg--status-NODATA\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nepg--status-NOTATION_DATA|epg--status-NOTATION_NAME|epg--status-NO_PUBKEY|epg--status-NO_RECP|epg--status-NO_SECKEY|epg--status-NO_SGNR\n|epg--status-POLICY_URL|epg--status-PROGRESS|epg--status-REVKEYSIG|epg--status-SIG_CREATED|epg--status-TRUST_FULLY|epg--status-TRUST_MARGINAL\n|epg--status-TRUST_NEVER|epg--status-TRUST_ULTIMATE|epg--status-TRUST_UNDEFINED|epg--status-UNEXPECTED|epg--status-USERID_HINT\n|epg--status-VALIDSIG|epg--time-from-seconds|epg-cancel|epg-check-configuration|epg-config--compare-version|epg-config--parse-version\n|epg-configuration|epg-context--make|epg-context-armor--cmacro|epg-context-armor|epg-context-cipher-algorithm--cmacro|epg-context-cipher-algorithm\n|epg-context-compress-algorithm--cmacro|epg-context-compress-algorithm|epg-context-digest-algorithm--cmacro|epg-context-digest-algorithm\n|epg-context-edit-callback--cmacro|epg-context-edit-callback|epg-context-error-output--cmacro|epg-context-error-output|epg-context-home-directory--cmacro\n|epg-context-home-directory|epg-context-include-certs--cmacro|epg-context-include-certs|epg-context-operation--cmacro|epg-context-operation\n|epg-context-output-file--cmacro|epg-context-output-file|epg-context-passphrase-callback--cmacro|epg-context-passphrase-callback\n|epg-context-pinentry-mode--cmacro|epg-context-pinentry-mode|epg-context-process--cmacro|epg-context-process|epg-context-program--cmacro\n|epg-context-program|epg-context-progress-callback--cmacro|epg-context-progress-callback|epg-context-protocol--cmacro|epg-context-protocol\n|epg-context-result--cmacro|epg-context-result-for|epg-context-result|epg-context-set-armor|epg-context-set-passphrase-callback\n|epg-context-set-progress-callback|epg-context-set-result-for|epg-context-set-signers|epg-context-set-textmode|epg-context-sig-notations--cmacro\n|epg-context-sig-notations|epg-context-signers--cmacro|epg-context-signers|epg-context-textmode--cmacro|epg-context-textmode|epg-data-file--cmacro\n|epg-data-file|epg-data-string--cmacro|epg-data-string|epg-decode-dn|epg-decrypt-file|epg-decrypt-string|epg-delete-keys|epg-delete-output-file\n|epg-dn-from-string|epg-edit-key|epg-encrypt-file|epg-encrypt-string|epg-error-to-string|epg-errors-to-string|epg-expand-group|epg-export-keys-to-file\n|epg-export-keys-to-string|epg-generate-key-from-file|epg-generate-key-from-string|epg-import-keys-from-file|epg-import-keys-from-server\n|epg-import-keys-from-string|epg-import-result-considered--cmacro|epg-import-result-considered|epg-import-result-imported--cmacro\n|epg-import-result-imported-rsa--cmacro|epg-import-result-imported-rsa|epg-import-result-imported|epg-import-result-imports--cmacro\n|epg-import-result-imports|epg-import-result-new-revocations--cmacro|epg-import-result-new-revocations|epg-import-result-new-signatures--cmacro\n|epg-import-result-new-signatures|epg-import-result-new-sub-keys--cmacro|epg-import-result-new-sub-keys|epg-import-result-new-user-ids--cmacro\n|epg-import-result-new-user-ids|epg-import-result-no-user-id--cmacro|epg-import-result-no-user-id|epg-import-result-not-imported--cmacro\n|epg-import-result-not-imported|epg-import-result-secret-imported--cmacro|epg-import-result-secret-imported|epg-import-result-secret-read--cmacro\n|epg-import-result-secret-read|epg-import-result-secret-unchanged--cmacro|epg-import-result-secret-unchanged|epg-import-result-to-string\n|epg-import-result-unchanged--cmacro|epg-import-result-unchanged|epg-import-status-fingerprint--cmacro|epg-import-status-fingerprint\n|epg-import-status-new--cmacro|epg-import-status-new|epg-import-status-reason--cmacro|epg-import-status-reason|epg-import-status-secret--cmacro\n|epg-import-status-secret|epg-import-status-signature--cmacro|epg-import-status-signature|epg-import-status-sub-key--cmacro|epg-import-status-sub-key\n|epg-import-status-user-id--cmacro|epg-import-status-user-id|epg-key-owner-trust--cmacro|epg-key-owner-trust|epg-key-signature-class--cmacro\n|epg-key-signature-class|epg-key-signature-creation-time--cmacro|epg-key-signature-creation-time|epg-key-signature-expiration-time--cmacro\n|epg-key-signature-expiration-time|epg-key-signature-exportable-p--cmacro|epg-key-signature-exportable-p|epg-key-signature-key-id--cmacro\n|epg-key-signature-key-id|epg-key-signature-pubkey-algorithm--cmacro|epg-key-signature-pubkey-algorithm|epg-key-signature-user-id--cmacro\n|epg-key-signature-user-id|epg-key-signature-validity--cmacro|epg-key-signature-validity|epg-key-sub-key-list--cmacro|epg-key-sub-key-list\n|epg-key-user-id-list--cmacro|epg-key-user-id-list|epg-list-keys|epg-make-context|epg-make-data-from-file--cmacro|epg-make-data-from-file\n|epg-make-data-from-string--cmacro|epg-make-data-from-string|epg-make-import-result--cmacro|epg-make-import-result|epg-make-import-status--cmacro\n|epg-make-import-status|epg-make-key--cmacro|epg-make-key-signature--cmacro|epg-make-key-signature|epg-make-key|epg-make-new-signature--cmacro\n|epg-make-new-signature|epg-make-sig-notation--cmacro|epg-make-sig-notation|epg-make-signature--cmacro|epg-make-signature|epg-make-sub-key--cmacro\n|epg-make-sub-key|epg-make-user-id--cmacro|epg-make-user-id|epg-new-signature-class--cmacro|epg-new-signature-class|epg-new-signature-creation-time--cmacro\n|epg-new-signature-creation-time|epg-new-signature-digest-algorithm--cmacro|epg-new-signature-digest-algorithm|epg-new-signature-fingerprint--cmacro\n|epg-new-signature-fingerprint|epg-new-signature-pubkey-algorithm--cmacro|epg-new-signature-pubkey-algorithm|epg-new-signature-to-string\n|epg-new-signature-type--cmacro|epg-new-signature-type|epg-passphrase-callback-function|epg-read-output|epg-receive-keys|epg-reset\n|epg-sig-notation-critical--cmacro|epg-sig-notation-critical|epg-sig-notation-human-readable--cmacro|epg-sig-notation-human-readable\n|epg-sig-notation-name--cmacro|epg-sig-notation-name|epg-sig-notation-value--cmacro|epg-sig-notation-value|epg-sign-file|epg-sign-keys\n|epg-sign-string|epg-signature-class--cmacro|epg-signature-class|epg-signature-creation-time--cmacro|epg-signature-creation-time\n|epg-signature-digest-algorithm--cmacro|epg-signature-digest-algorithm|epg-signature-expiration-time--cmacro|epg-signature-expiration-time\n|epg-signature-fingerprint--cmacro|epg-signature-fingerprint|epg-signature-key-id--cmacro|epg-signature-key-id|epg-signature-notations--cmacro\n|epg-signature-notations|epg-signature-pubkey-algorithm--cmacro|epg-signature-pubkey-algorithm|epg-signature-status--cmacro|epg-signature-status\n|epg-signature-to-string|epg-signature-validity--cmacro|epg-signature-validity|epg-signature-version--cmacro|epg-signature-version\n|epg-start-decrypt|epg-start-delete-keys|epg-start-edit-key|epg-start-encrypt|epg-start-export-keys|epg-start-generate-key|epg-start-import-keys\n|epg-start-receive-keys|epg-start-sign-keys|epg-start-sign|epg-start-verify|epg-sub-key-algorithm--cmacro|epg-sub-key-algorithm\n|epg-sub-key-capability--cmacro|epg-sub-key-capability|epg-sub-key-creation-time--cmacro|epg-sub-key-creation-time|epg-sub-key-expiration-time--cmacro\n|epg-sub-key-expiration-time|epg-sub-key-fingerprint--cmacro|epg-sub-key-fingerprint|epg-sub-key-id--cmacro|epg-sub-key-id|epg-sub-key-length--cmacro\n|epg-sub-key-length|epg-sub-key-secret-p--cmacro|epg-sub-key-secret-p|epg-sub-key-validity--cmacro|epg-sub-key-validity|epg-user-id-signature-list--cmacro\n|epg-user-id-signature-list|epg-user-id-string--cmacro|epg-user-id-string|epg-user-id-validity--cmacro|epg-user-id-validity|epg-verify-file\n|epg-verify-result-to-string|epg-verify-string|epg-wait-for-completion|epg-wait-for-status|equalp|erc-active-buffer|erc-add-dangerous-host\n|erc-add-default-channel|erc-add-entry-to-list|erc-add-fool|erc-add-keyword|erc-add-pal|erc-add-query|erc-add-scroll-to-bottom|erc-add-server-user\n|erc-add-timestamp|erc-add-to-input-ring|erc-all-buffer-names|erc-already-logged-in|erc-arrange-session-in-multiple-windows|erc-auto-query\n|erc-autoaway-mode|erc-autojoin-add|erc-autojoin-after-ident|erc-autojoin-channels-delayed|erc-autojoin-channels|erc-autojoin-disable\n|erc-autojoin-enable|erc-autojoin-mode|erc-autojoin-remove|erc-away-time|erc-banlist-finished|erc-banlist-store|erc-banlist-update\n|erc-beep-on-match|erc-beg-of-input-line|erc-bol|erc-browse-emacswiki-lisp|erc-browse-emacswiki|erc-buffer-filter|erc-buffer-list-with-nick\n|erc-buffer-list|erc-buffer-visible|erc-button-add-button|erc-button-add-buttons-1|erc-button-add-buttons|erc-button-add-face|erc-button-add-nickname-buttons\n|erc-button-beats-to-time|erc-button-click-button|erc-button-describe-symbol|erc-button-disable|erc-button-enable|erc-button-mode\n|erc-button-next-function|erc-button-next|erc-button-press-button|erc-button-previous|erc-button-remove-old-buttons|erc-button-setup\n|erc-call-hooks|erc-cancel-timer|erc-canonicalize-server-name|erc-capab-identify-mode|erc-change-user-nickname|erc-channel-begin-receiving-names\n|erc-channel-end-receiving-names|erc-channel-list|erc-channel-names|erc-channel-p|erc-channel-receive-names|erc-channel-user-admin--cmacro\n|erc-channel-user-admin-p|erc-channel-user-admin|erc-channel-user-halfop--cmacro|erc-channel-user-halfop-p|erc-channel-user-halfop\n|erc-channel-user-last-message-time--cmacro|erc-channel-user-last-message-time|erc-channel-user-op--cmacro|erc-channel-user-op-p\n|erc-channel-user-op|erc-channel-user-owner--cmacro|erc-channel-user-owner-p|erc-channel-user-owner|erc-channel-user-p--cmacro\n|erc-channel-user-p|erc-channel-user-voice--cmacro|erc-channel-user-voice-p|erc-channel-user-voice|erc-clear-input-ring|erc-client-info\n|erc-cmd-AMSG|erc-cmd-APPENDTOPIC|erc-cmd-AT|erc-cmd-AWAY|erc-cmd-BANLIST|erc-cmd-BL|erc-cmd-BYE|erc-cmd-CHANNEL|erc-cmd-CLEAR|erc-cmd-CLEARTOPIC\n|erc-cmd-COUNTRY|erc-cmd-CTCP|erc-cmd-DATE|erc-cmd-DCC|erc-cmd-DEOP|erc-cmd-DESCRIBE|erc-cmd-EXIT|erc-cmd-GAWAY|erc-cmd-GQ|erc-cmd-GQUIT\n|erc-cmd-H|erc-cmd-HELP|erc-cmd-IDLE|erc-cmd-IGNORE|erc-cmd-J|erc-cmd-JOIN|erc-cmd-KICK|erc-cmd-LASTLOG|erc-cmd-LEAVE|erc-cmd-LIST\n|erc-cmd-LOAD|erc-cmd-M|erc-cmd-MASSUNBAN|erc-cmd-ME'S|erc-cmd-ME|erc-cmd-MODE|erc-cmd-MSG|erc-cmd-MUB|erc-cmd-N|erc-cmd-NAMES|erc-cmd-NICK\n|erc-cmd-NOTICE|erc-cmd-NOTIFY|erc-cmd-OP|erc-cmd-OPS|erc-cmd-PART|erc-cmd-PING|erc-cmd-Q|erc-cmd-QUERY|erc-cmd-QUIT|erc-cmd-QUOTE\n|erc-cmd-RECONNECT|erc-cmd-SAY|erc-cmd-SERVER|erc-cmd-SET|erc-cmd-SIGNOFF|erc-cmd-SM|erc-cmd-SQUERY|erc-cmd-SV|erc-cmd-T|erc-cmd-TIME\n|erc-cmd-TOPIC|erc-cmd-UNIGNORE|erc-cmd-VAR|erc-cmd-VARIABLE|erc-cmd-WHOAMI|erc-cmd-WHOIS|erc-cmd-WHOLEFT|erc-cmd-WI|erc-cmd-WL|erc-cmd-default\n|erc-cmd-ezb|erc-coding-system-for-target|erc-command-indicator|erc-command-name|erc-command-no-process-p|erc-command-symbol|erc-complete-word-at-point\n|erc-complete-word|erc-completion-mode|erc-compute-full-name|erc-compute-nick|erc-compute-port|erc-compute-server|erc-connection-established\n|erc-controls-highlight|erc-controls-interpret|erc-controls-propertize|erc-controls-strip|erc-create-imenu-index|erc-ctcp-query-ACTION\n|erc-ctcp-query-CLIENTINFO|erc-ctcp-query-DCC|erc-ctcp-query-ECHO|erc-ctcp-query-FINGER|erc-ctcp-query-PING|erc-ctcp-query-TIME\n|erc-ctcp-query-USERINFO|erc-ctcp-query-VERSION|erc-ctcp-reply-CLIENTINFO|erc-ctcp-reply-ECHO|erc-ctcp-reply-FINGER|erc-ctcp-reply-PING\n|erc-ctcp-reply-TIME|erc-ctcp-reply-VERSION|erc-current-network|erc-current-nick-p|erc-current-nick|erc-current-time|erc-dcc-mode\n|erc-debug-missing-hooks|erc-decode-coding-string|erc-decode-parsed-server-response|erc-decode-string-from-target|erc-default-server-handler\n|erc-default-target|erc-define-catalog-entry|erc-define-catalog|erc-define-minor-mode|erc-delete-dangerous-host|erc-delete-default-channel\n|erc-delete-dups|erc-delete-fool|erc-delete-if|erc-delete-keyword|erc-delete-pal|erc-delete-query|erc-determine-network|erc-determine-parameters\n|erc-directory-writable-p|erc-display-command|erc-display-error-notice|erc-display-line-1|erc-display-line|erc-display-message-highlight\n|erc-display-message|erc-display-msg|erc-display-prompt|erc-display-server-message|erc-downcase|erc-echo-notice-in-active-buffer\n|erc-echo-notice-in-active-non-server-buffer|erc-echo-notice-in-default-buffer|erc-echo-notice-in-first-user-buffer|erc-echo-notice-in-minibuffer\n|erc-echo-notice-in-server-buffer|erc-echo-notice-in-target-buffer|erc-echo-notice-in-user-and-target-buffers|erc-echo-notice-in-user-buffers\n|erc-echo-timestamp|erc-emacs-time-to-erc-time|erc-encode-coding-string|erc-end-of-input-line|erc-ensure-channel-name|erc-error\n|erc-extract-command-from-line|erc-extract-nick|erc-ezb-add-session|erc-ezb-end-of-session-list|erc-ezb-get-login|erc-ezb-identify\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nerc-ezb-init-session-list|erc-ezb-initialize|erc-ezb-lookup-action|erc-ezb-notice-autodetect|erc-ezb-select-session|erc-ezb-select\n|erc-faces-in|erc-fill-disable|erc-fill-enable|erc-fill-mode|erc-fill-regarding-timestamp|erc-fill-static|erc-fill-variable|erc-fill\n|erc-find-file|erc-find-parsed-property|erc-find-script-file|erc-format-@nick|erc-format-away-status|erc-format-channel-modes|erc-format-lag-time\n|erc-format-message|erc-format-my-nick|erc-format-network|erc-format-nick|erc-format-privmessage|erc-format-target-and\\/or-network\n|erc-format-target-and\\/or-server|erc-format-target|erc-format-timestamp|erc-function-arglist|erc-generate-new-buffer-name|erc-get-arglist\n|erc-get-bg-color-face|erc-get-buffer-create|erc-get-buffer|erc-get-channel-mode-from-keypress|erc-get-channel-nickname-alist\n|erc-get-channel-nickname-list|erc-get-channel-user-list|erc-get-channel-user|erc-get-fg-color-face|erc-get-hook|erc-get-parsed-vector-nick\n|erc-get-parsed-vector-type|erc-get-parsed-vector|erc-get-server-nickname-alist|erc-get-server-nickname-list|erc-get-server-user\n|erc-get-user-mode-prefix|erc-get|erc-go-to-log-matches-buffer|erc-grab-region|erc-group-list|erc-handle-irc-url|erc-handle-login\n|erc-handle-parsed-server-response|erc-handle-unknown-server-response|erc-handle-user-status-change|erc-hide-current-message-p\n|erc-hide-fools|erc-hide-timestamps|erc-highlight-error|erc-highlight-notice|erc-identd-mode|erc-identd-start|erc-identd-stop|erc-ignored-reply-p\n|erc-ignored-user-p|erc-imenu-setup|erc-initialize-log-marker|erc-input-action|erc-input-message|erc-input-ring-setup|erc-insert-aligned\n|erc-insert-mode-command|erc-insert-timestamp-left-and-right|erc-insert-timestamp-left|erc-insert-timestamp-right|erc-invite-only-mode\n|erc-irccontrols-disable|erc-irccontrols-enable|erc-irccontrols-mode|erc-is-message-ctcp-and-not-action-p|erc-is-message-ctcp-p\n|erc-is-valid-nick-p|erc-ison-p|erc-iswitchb|erc-join-channel|erc-keep-place-disable|erc-keep-place-enable|erc-keep-place-mode|erc-keep-place\n|erc-kill-buffer-function|erc-kill-channel|erc-kill-input|erc-kill-query-buffers|erc-kill-server|erc-list-button|erc-list-disable\n|erc-list-enable|erc-list-handle-322|erc-list-insert-item|erc-list-install-322-handler|erc-list-join|erc-list-kill|erc-list-make-string\n|erc-list-match|erc-list-menu-mode|erc-list-menu-sort-by-column|erc-list-mode|erc-list-revert|erc-list|erc-load-irc-script-lines\n|erc-load-irc-script|erc-load-script|erc-log-aux|erc-log-irc-protocol|erc-log-matches-come-back|erc-log-matches-make-buffer|erc-log-matches\n|erc-log-mode|erc-log|erc-logging-enabled|erc-login|erc-lurker-cleanup|erc-lurker-initialize|erc-lurker-maybe-trim|erc-lurker-p|erc-lurker-update-status\n|erc-make-message-variable-name|erc-make-mode-line-buffer-name|erc-make-notice|erc-make-obsolete-variable|erc-make-obsolete|erc-make-read-only\n|erc-match-current-nick-p|erc-match-dangerous-host-p|erc-match-directed-at-fool-p|erc-match-disable|erc-match-enable|erc-match-fool-p\n|erc-match-keyword-p|erc-match-message|erc-match-mode|erc-match-pal-p|erc-member-if|erc-member-ignore-case|erc-menu-add|erc-menu-disable\n|erc-menu-enable|erc-menu-mode|erc-menu-remove|erc-menu|erc-message-english-PART|erc-message-target|erc-message-type-member|erc-message\n|erc-migrate-modules|erc-mode|erc-modes|erc-modified-channels-display|erc-modified-channels-object|erc-modified-channels-remove-buffer\n|erc-modified-channels-update|erc-move-to-prompt-disable|erc-move-to-prompt-enable|erc-move-to-prompt-mode|erc-move-to-prompt-setup\n|erc-move-to-prompt|erc-munge-invisibility-spec|erc-netsplit-JOIN|erc-netsplit-MODE|erc-netsplit-QUIT|erc-netsplit-disable|erc-netsplit-enable\n|erc-netsplit-install-message-catalogs|erc-netsplit-mode|erc-netsplit-timer|erc-network-name|erc-network|erc-networks-disable|erc-networks-enable\n|erc-networks-mode|erc-next-command|erc-nick-at-point|erc-nick-equal-p|erc-nick-popup|erc-nickname-in-use|erc-nickserv-identify-mode\n|erc-nickserv-identify|erc-noncommands-disable|erc-noncommands-enable|erc-noncommands-mode|erc-normalize-port|erc-notifications-mode\n|erc-notify-mode|erc-occur|erc-once-with-server-event|erc-open-server-buffer-p|erc-open-tls-stream|erc-open|erc-page-mode|erc-parse-modes\n|erc-parse-prefix|erc-parse-server-response|erc-parse-user|erc-part-from-channel|erc-part-reason-normal|erc-part-reason-various\n|erc-part-reason-zippy|erc-pcomplete-disable|erc-pcomplete-enable|erc-pcomplete-mode|erc-pcomplete|erc-pcompletions-at-point|erc-popup-input-buffer\n|erc-port-equal|erc-port-to-string|erc-ports-list|erc-previous-command|erc-process-away|erc-process-ctcp-query|erc-process-ctcp-reply\n|erc-process-input-line|erc-process-script-line|erc-process-sentinel-1|erc-process-sentinel-2|erc-process-sentinel|erc-prompt|erc-propertize\n|erc-put-text-properties|erc-put-text-property|erc-query-buffer-p|erc-query|erc-quit\\/part-reason-default|erc-quit-reason-normal\n|erc-quit-reason-various|erc-quit-reason-zippy|erc-quit-server|erc-readonly-disable|erc-readonly-enable|erc-readonly-mode|erc-remove-channel-member\n|erc-remove-channel-user|erc-remove-channel-users|erc-remove-current-channel-member|erc-remove-entry-from-list|erc-remove-if-not\n|erc-remove-server-user|erc-remove-text-properties-region|erc-remove-user|erc-replace-current-command|erc-replace-match-subexpression-in-string\n|erc-replace-mode|erc-replace-regexp-in-string|erc-response-p--cmacro|erc-response-p|erc-response\\.command--cmacro|erc-response\\.command-args--cmacro\n|erc-response\\.command-args|erc-response\\.command|erc-response\\.contents--cmacro|erc-response\\.contents|erc-response\\.sender--cmacro\n|erc-response\\.sender|erc-response\\.unparsed--cmacro|erc-response\\.unparsed|erc-restore-text-properties|erc-retrieve-catalog-entry\n|erc-ring-disable|erc-ring-enable|erc-ring-mode|erc-save-buffer-in-logs|erc-scroll-to-bottom|erc-scrolltobottom-disable|erc-scrolltobottom-enable\n|erc-scrolltobottom-mode|erc-sec-to-time|erc-seconds-to-string|erc-select-read-args|erc-select-startup-file|erc-select|erc-send-action\n|erc-send-command|erc-send-ctcp-message|erc-send-ctcp-notice|erc-send-current-line|erc-send-distinguish-noncommands|erc-send-input-line\n|erc-send-input|erc-send-line|erc-send-message|erc-server-001|erc-server-002|erc-server-003|erc-server-004|erc-server-005|erc-server-221\n|erc-server-250|erc-server-251|erc-server-252|erc-server-253|erc-server-254|erc-server-255|erc-server-256|erc-server-257|erc-server-258\n|erc-server-259|erc-server-265|erc-server-266|erc-server-275|erc-server-290|erc-server-301|erc-server-303|erc-server-305|erc-server-306\n|erc-server-307|erc-server-311|erc-server-312|erc-server-313|erc-server-314|erc-server-315|erc-server-317|erc-server-318|erc-server-319\n|erc-server-320|erc-server-321-message|erc-server-321|erc-server-322-message|erc-server-322|erc-server-323|erc-server-324|erc-server-328\n|erc-server-329|erc-server-330|erc-server-331|erc-server-332|erc-server-333|erc-server-341|erc-server-352|erc-server-353|erc-server-366\n|erc-server-367|erc-server-368|erc-server-369|erc-server-371|erc-server-372|erc-server-374|erc-server-375|erc-server-376|erc-server-377\n|erc-server-378|erc-server-379|erc-server-391|erc-server-401|erc-server-403|erc-server-404|erc-server-405|erc-server-406|erc-server-412\n|erc-server-421|erc-server-422|erc-server-431|erc-server-432|erc-server-433|erc-server-437|erc-server-442|erc-server-445|erc-server-446\n|erc-server-451|erc-server-461|erc-server-462|erc-server-463|erc-server-464|erc-server-465|erc-server-474|erc-server-475|erc-server-477\n|erc-server-481|erc-server-482|erc-server-483|erc-server-484|erc-server-485|erc-server-491|erc-server-501|erc-server-502|erc-server-671\n|erc-server-ERROR|erc-server-INVITE|erc-server-JOIN|erc-server-KICK|erc-server-MODE|erc-server-MOTD|erc-server-NICK|erc-server-NOTICE\n|erc-server-PART|erc-server-PING|erc-server-PONG|erc-server-PRIVMSG|erc-server-QUIT|erc-server-TOPIC|erc-server-WALLOPS|erc-server-buffer-live-p\n|erc-server-buffer-p|erc-server-buffer|erc-server-connect|erc-server-filter-function|erc-server-join-channel|erc-server-process-alive\n|erc-server-reconnect-p|erc-server-reconnect|erc-server-select|erc-server-send-ping|erc-server-send-queue|erc-server-send|erc-server-setup-periodical-ping\n|erc-server-user-buffers--cmacro|erc-server-user-buffers|erc-server-user-full-name--cmacro|erc-server-user-full-name|erc-server-user-host--cmacro\n|erc-server-user-host|erc-server-user-info--cmacro|erc-server-user-info|erc-server-user-login--cmacro|erc-server-user-login|erc-server-user-nickname--cmacro\n|erc-server-user-nickname|erc-server-user-p--cmacro|erc-server-user-p|erc-services-mode|erc-set-active-buffer|erc-set-channel-key\n|erc-set-channel-limit|erc-set-current-nick|erc-set-initial-user-mode|erc-set-modes|erc-set-network-name|erc-set-topic|erc-set-write-file-functions\n|erc-setup-buffer|erc-shorten-server-name|erc-show-timestamps|erc-smiley-disable|erc-smiley-enable|erc-smiley-mode|erc-smiley|erc-sort-channel-users-alphabetically\n|erc-sort-channel-users-by-activity|erc-sort-strings|erc-sound-mode|erc-speedbar-browser|erc-spelling-mode|erc-split-line|erc-split-multiline-safe\n|erc-ssl|erc-stamp-disable|erc-stamp-enable|erc-stamp-mode|erc-string-invisible-p|erc-string-no-properties|erc-string-to-emacs-time\n|erc-string-to-port|erc-subseq|erc-time-diff|erc-time-gt|erc-timestamp-mode|erc-timestamp-offset|erc-tls|erc-toggle-channel-mode\n|erc-toggle-ctcp-autoresponse|erc-toggle-debug-irc-protocol|erc-toggle-flood-control|erc-toggle-interpret-controls|erc-toggle-timestamps\n|erc-track-add-to-mode-line|erc-track-disable|erc-track-enable|erc-track-face-priority|erc-track-find-face|erc-track-get-active-buffer\n|erc-track-get-buffer-window|erc-track-minor-mode-maybe|erc-track-minor-mode|erc-track-mode|erc-track-modified-channels|erc-track-remove-from-mode-line\n|erc-track-shorten-names|erc-track-sort-by-activest|erc-track-sort-by-importance|erc-track-switch-buffer|erc-trim-string|erc-truncate-buffer-to-size\n|erc-truncate-buffer|erc-truncate-mode|erc-unique-channel-names|erc-unique-substring-1|erc-unique-substrings|erc-unmorse-disable\n|erc-unmorse-enable|erc-unmorse-mode|erc-unmorse|erc-unset-network-name|erc-upcase-first-word|erc-update-channel-key|erc-update-channel-limit\n|erc-update-channel-member|erc-update-channel-topic|erc-update-current-channel-member|erc-update-mode-line-buffer|erc-update-mode-line\n|erc-update-modes|erc-update-modules|erc-update-undo-list|erc-update-user-nick|erc-update-user|erc-user-input|erc-user-is-active\n|erc-user-spec|erc-version|erc-view-mode-enter|erc-wash-quit-reason|erc-window-configuration-change|erc-with-all-buffers-of-server\n|erc-with-buffer|erc-with-selected-window|erc-with-server-buffer|erc-xdcc-add-file|erc-xdcc-mode|erc|eregistry|erevision|ert--abbreviate-string\n|ert--activate-font-lock-keywords|ert--button-action-position|ert--ewoc-entry-expanded-p--cmacro|ert--ewoc-entry-expanded-p|ert--ewoc-entry-extended-printer-limits-p--cmacro\n|ert--ewoc-entry-extended-printer-limits-p|ert--ewoc-entry-hidden-p--cmacro|ert--ewoc-entry-hidden-p|ert--ewoc-entry-p--cmacro\n|ert--ewoc-entry-p|ert--ewoc-entry-test--cmacro|ert--ewoc-entry-test|ert--ewoc-position|ert--expand-should-1|ert--expand-should\n|ert--explain-equal-including-properties|ert--explain-equal-rec|ert--explain-equal|ert--explain-format-atom|ert--force-message-log-buffer-truncation\n|ert--format-time-iso8601|ert--insert-human-readable-selector|ert--insert-infos|ert--make-stats|ert--make-xrefs-region|ert--parse-keys-and-body\n|ert--plist-difference-explanation|ert--pp-with-indentation-and-newline|ert--print-backtrace|ert--print-test-for-ewoc|ert--proper-list-p\n|ert--record-backtrace|ert--remove-from-list|ert--results-expand-collapse-button-action|ert--results-font-lock-function|ert--results-format-expected-unexpected\n|ert--results-move|ert--results-progress-bar-button-action|ert--results-test-at-point-allow-redefinition|ert--results-test-at-point-no-redefinition\n|ert--results-test-node-at-point|ert--results-test-node-or-null-at-point|ert--results-update-after-test-redefinition|ert--results-update-ewoc-hf\n|ert--results-update-stats-display-maybe|ert--results-update-stats-display|ert--run-test-debugger|ert--run-test-internal|ert--setup-results-buffer\n|ert--should-error-handle-error|ert--signal-should-execution|ert--significant-plist-keys|ert--skip-unless|ert--special-operator-p\n|ert--stats-aborted-p--cmacro|ert--stats-aborted-p|ert--stats-current-test--cmacro|ert--stats-current-test|ert--stats-end-time--cmacro\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nert--stats-end-time|ert--stats-failed-expected--cmacro|ert--stats-failed-expected|ert--stats-failed-unexpected--cmacro|ert--stats-failed-unexpected\n|ert--stats-next-redisplay--cmacro|ert--stats-next-redisplay|ert--stats-p--cmacro|ert--stats-p|ert--stats-passed-expected--cmacro\n|ert--stats-passed-expected|ert--stats-passed-unexpected--cmacro|ert--stats-passed-unexpected|ert--stats-selector--cmacro|ert--stats-selector\n|ert--stats-set-test-and-result|ert--stats-skipped--cmacro|ert--stats-skipped|ert--stats-start-time--cmacro|ert--stats-start-time\n|ert--stats-test-end-times--cmacro|ert--stats-test-end-times|ert--stats-test-key|ert--stats-test-map--cmacro|ert--stats-test-map\n|ert--stats-test-pos|ert--stats-test-results--cmacro|ert--stats-test-results|ert--stats-test-start-times--cmacro|ert--stats-test-start-times\n|ert--stats-tests--cmacro|ert--stats-tests|ert--string-first-line|ert--test-execution-info-ert-debug-on-error--cmacro|ert--test-execution-info-ert-debug-on-error\n|ert--test-execution-info-exit-continuation--cmacro|ert--test-execution-info-exit-continuation|ert--test-execution-info-next-debugger--cmacro\n|ert--test-execution-info-next-debugger|ert--test-execution-info-p--cmacro|ert--test-execution-info-p|ert--test-execution-info-result--cmacro\n|ert--test-execution-info-result|ert--test-execution-info-test--cmacro|ert--test-execution-info-test|ert--test-name-button-action\n|ert--tests-running-mode-line-indicator|ert--unload-function|ert-char-for-test-result|ert-deftest|ert-delete-all-tests|ert-delete-test\n|ert-describe-test|ert-equal-including-properties|ert-face-for-stats|ert-face-for-test-result|ert-fail|ert-find-test-other-window\n|ert-get-test|ert-info|ert-insert-test-name-button|ert-kill-all-test-buffers|ert-make-test-unbound|ert-pass|ert-read-test-name-at-point\n|ert-read-test-name|ert-results-describe-test-at-point|ert-results-find-test-at-point-other-window|ert-results-jump-between-summary-and-result\n|ert-results-mode-menu|ert-results-mode|ert-results-next-test|ert-results-pop-to-backtrace-for-test-at-point|ert-results-pop-to-messages-for-test-at-point\n|ert-results-pop-to-should-forms-for-test-at-point|ert-results-pop-to-timings|ert-results-previous-test|ert-results-rerun-all-tests\n|ert-results-rerun-test-at-point-debugging-errors|ert-results-rerun-test-at-point|ert-results-toggle-printer-limits-for-test-at-point\n|ert-run-or-rerun-test|ert-run-test|ert-run-tests-batch-and-exit|ert-run-tests-batch|ert-run-tests-interactively|ert-run-tests\n|ert-running-test|ert-select-tests|ert-set-test|ert-simple-view-mode|ert-skip|ert-stats-completed-expected|ert-stats-completed-unexpected\n|ert-stats-completed|ert-stats-skipped|ert-stats-total|ert-string-for-test-result|ert-summarize-tests-batch-and-exit|ert-test-aborted-with-non-local-exit-messages--cmacro\n|ert-test-aborted-with-non-local-exit-messages|ert-test-aborted-with-non-local-exit-p--cmacro|ert-test-aborted-with-non-local-exit-p\n|ert-test-aborted-with-non-local-exit-should-forms--cmacro|ert-test-aborted-with-non-local-exit-should-forms|ert-test-at-point\n|ert-test-body--cmacro|ert-test-body|ert-test-boundp|ert-test-documentation--cmacro|ert-test-documentation|ert-test-expected-result-type--cmacro\n|ert-test-expected-result-type|ert-test-failed-backtrace--cmacro|ert-test-failed-backtrace|ert-test-failed-condition--cmacro\n|ert-test-failed-condition|ert-test-failed-infos--cmacro|ert-test-failed-infos|ert-test-failed-messages--cmacro|ert-test-failed-messages\n|ert-test-failed-p--cmacro|ert-test-failed-p|ert-test-failed-should-forms--cmacro|ert-test-failed-should-forms|ert-test-most-recent-result--cmacro\n|ert-test-most-recent-result|ert-test-name--cmacro|ert-test-name|ert-test-p--cmacro|ert-test-p|ert-test-passed-messages--cmacro\n|ert-test-passed-messages|ert-test-passed-p--cmacro|ert-test-passed-p|ert-test-passed-should-forms--cmacro|ert-test-passed-should-forms\n|ert-test-quit-backtrace--cmacro|ert-test-quit-backtrace|ert-test-quit-condition--cmacro|ert-test-quit-condition|ert-test-quit-infos--cmacro\n|ert-test-quit-infos|ert-test-quit-messages--cmacro|ert-test-quit-messages|ert-test-quit-p--cmacro|ert-test-quit-p|ert-test-quit-should-forms--cmacro\n|ert-test-quit-should-forms|ert-test-result-expected-p|ert-test-result-messages--cmacro|ert-test-result-messages|ert-test-result-p--cmacro\n|ert-test-result-p|ert-test-result-should-forms--cmacro|ert-test-result-should-forms|ert-test-result-type-p|ert-test-result-with-condition-backtrace--cmacro\n|ert-test-result-with-condition-backtrace|ert-test-result-with-condition-condition--cmacro|ert-test-result-with-condition-condition\n|ert-test-result-with-condition-infos--cmacro|ert-test-result-with-condition-infos|ert-test-result-with-condition-messages--cmacro\n|ert-test-result-with-condition-messages|ert-test-result-with-condition-p--cmacro|ert-test-result-with-condition-p|ert-test-result-with-condition-should-forms--cmacro\n|ert-test-result-with-condition-should-forms|ert-test-skipped-backtrace--cmacro|ert-test-skipped-backtrace|ert-test-skipped-condition--cmacro\n|ert-test-skipped-condition|ert-test-skipped-infos--cmacro|ert-test-skipped-infos|ert-test-skipped-messages--cmacro|ert-test-skipped-messages\n|ert-test-skipped-p--cmacro|ert-test-skipped-p|ert-test-skipped-should-forms--cmacro|ert-test-skipped-should-forms|ert-test-tags--cmacro\n|ert-test-tags|ert|eshell\\/addpath|eshell\\/define|eshell\\/env|eshell\\/eshell-debug|eshell\\/exit|eshell\\/export|eshell\\/jobs\n|eshell\\/kill|eshell\\/setq|eshell\\/unset|eshell\\/wait|eshell\\/which|eshell--apply-redirections|eshell--do-opts|eshell--process-args\n|eshell--process-option|eshell--set-option|eshell-add-to-window-buffer-names|eshell-apply\\*|eshell-apply-indices|eshell-apply\n|eshell-applyn|eshell-arg-delimiter|eshell-arg-initialize|eshell-as-subcommand|eshell-backward-argument|eshell-begin-on-new-line\n|eshell-beginning-of-input|eshell-beginning-of-output|eshell-bol|eshell-buffered-print|eshell-clipboard-append|eshell-close-handles\n|eshell-close-target|eshell-cmd-initialize|eshell-command-finished|eshell-command-result|eshell-command-started|eshell-command-to-value\n|eshell-command|eshell-commands|eshell-complete-lisp-symbols|eshell-complete-variable-assignment|eshell-complete-variable-reference\n|eshell-condition-case|eshell-convert|eshell-copy-environment|eshell-copy-handles|eshell-copy-old-input|eshell-copy-tree|eshell-create-handles\n|eshell-current-ange-uids|eshell-debug-command|eshell-debug-show-parsed-args|eshell-directory-files-and-attributes|eshell-directory-files\n|eshell-do-command-to-value|eshell-do-eval|eshell-do-pipelines-synchronously|eshell-do-pipelines|eshell-do-subjob|eshell-end-of-output\n|eshell-environment-variables|eshell-envvar-names|eshell-error|eshell-errorn|eshell-escape-arg|eshell-eval\\*|eshell-eval-command\n|eshell-eval-using-options|eshell-eval|eshell-evaln|eshell-exec-lisp|eshell-execute-pipeline|eshell-exit-success-p|eshell-explicit-command\n|eshell-ext-initialize|eshell-external-command|eshell-file-attributes|eshell-find-alias-function|eshell-find-delimiter|eshell-find-interpreter\n|eshell-find-tag|eshell-finish-arg|eshell-flatten-and-stringify|eshell-flatten-list|eshell-flush|eshell-for|eshell-forward-argument\n|eshell-funcall\\*|eshell-funcall|eshell-funcalln|eshell-gather-process-output|eshell-get-old-input|eshell-get-target|eshell-get-variable\n|eshell-goto-input-start|eshell-group-id|eshell-group-name|eshell-handle-ansi-color|eshell-handle-control-codes|eshell-handle-local-variables\n|eshell-index-value|eshell-init-print-buffer|eshell-insert-buffer-name|eshell-insert-envvar|eshell-insert-process|eshell-insertion-filter\n|eshell-interactive-output-p|eshell-interactive-print|eshell-interactive-process|eshell-intercept-commands|eshell-interpolate-variable\n|eshell-interrupt-process|eshell-invoke-batch-file|eshell-invoke-directly|eshell-invokify-arg|eshell-io-initialize|eshell-kill-append\n|eshell-kill-buffer-function|eshell-kill-input|eshell-kill-new|eshell-kill-output|eshell-kill-process-function|eshell-kill-process\n|eshell-life-is-too-much|eshell-lisp-command\\*|eshell-lisp-command|eshell-looking-at-backslash-return|eshell-make-private-directory\n|eshell-manipulate|eshell-mark-output|eshell-mode|eshell-move-argument|eshell-named-command\\*|eshell-named-command|eshell-needs-pipe-p\n|eshell-no-command-conversion|eshell-operator|eshell-output-filter|eshell-output-object-to-target|eshell-output-object|eshell-parse-ange-ls\n|eshell-parse-argument|eshell-parse-arguments|eshell-parse-backslash|eshell-parse-colon-path|eshell-parse-command-input|eshell-parse-command\n|eshell-parse-delimiter|eshell-parse-double-quote|eshell-parse-indices|eshell-parse-lisp-argument|eshell-parse-literal-quote|eshell-parse-pipeline\n|eshell-parse-redirection|eshell-parse-special-reference|eshell-parse-subcommand-argument|eshell-parse-variable-ref|eshell-parse-variable\n|eshell-plain-command|eshell-postoutput-scroll-to-bottom|eshell-preinput-scroll-to-bottom|eshell-print|eshell-printable-size|eshell-printn\n|eshell-proc-initialize|eshell-process-identity|eshell-process-interact|eshell-processp|eshell-protect-handles|eshell-protect|eshell-push-command-mark\n|eshell-query-kill-processes|eshell-queue-input|eshell-quit-process|eshell-quote-argument|eshell-quote-backslash|eshell-read-group-names\n|eshell-read-host-names|eshell-read-hosts-file|eshell-read-hosts|eshell-read-passwd-file|eshell-read-passwd|eshell-read-process-name\n|eshell-read-user-names|eshell-record-process-object|eshell-redisplay|eshell-regexp-arg|eshell-remote-command|eshell-remove-from-window-buffer-names\n|eshell-remove-process-entry|eshell-repeat-argument|eshell-report-bug|eshell-reset-after-proc|eshell-reset|eshell-resolve-current-argument\n|eshell-resume-command|eshell-resume-eval|eshell-return-exits-minibuffer|eshell-rewrite-for-command|eshell-rewrite-if-command\n|eshell-rewrite-initial-subcommand|eshell-rewrite-named-command|eshell-rewrite-sexp-command|eshell-rewrite-while-command|eshell-round-robin-kill\n|eshell-run-output-filters|eshell-script-interpreter|eshell-search-path|eshell-self-insert-command|eshell-send-eof-to-process\n|eshell-send-input|eshell-send-invisible|eshell-sentinel|eshell-separate-commands|eshell-set-output-handle|eshell-show-maximum-output\n|eshell-show-output|eshell-show-usage|eshell-split-path|eshell-stringify-list|eshell-stringify|eshell-strip-redirections|eshell-structure-basic-command\n|eshell-subcommand-arg-values|eshell-subgroups|eshell-sublist|eshell-substring|eshell-to-flat-string|eshell-toggle-direct-send\n|eshell-trap-errors|eshell-truncate-buffer|eshell-under-windows-p|eshell-uniqify-list|eshell-unload-all-modules|eshell-unload-extension-modules\n|eshell-update-markers|eshell-user-id|eshell-user-name|eshell-using-module|eshell-var-initialize|eshell-variables-list|eshell-wait-for-process\n|eshell-watch-for-password-prompt|eshell-winnow-list|eshell-with-file-modes|eshell-with-private-file-modes|eshell|etags--xref-find-definitions\n|etags-file-of-tag|etags-goto-tag-location|etags-list-tags|etags-recognize-tags-table|etags-snarf-tag|etags-tags-apropos-additional\n|etags-tags-apropos|etags-tags-completion-table|etags-tags-included-tables|etags-tags-table-files|etags-verify-tags-table|etags-xref-find\n|ethio-composition-function|ethio-fidel-to-java-buffer|ethio-fidel-to-sera-buffer|ethio-fidel-to-sera-marker|ethio-fidel-to-sera-region\n|ethio-fidel-to-tex-buffer|ethio-find-file|ethio-input-special-character|ethio-insert-ethio-space|ethio-java-to-fidel-buffer|ethio-modify-vowel\n|ethio-replace-space|ethio-sera-to-fidel-buffer|ethio-sera-to-fidel-marker|ethio-sera-to-fidel-region|ethio-tex-to-fidel-buffer\n|ethio-write-file|etypecase|eudc-add-field-to-records|eudc-bookmark-current-server|eudc-bookmark-server|eudc-caar|eudc-cadr|eudc-cdaar\n|eudc-cdar|eudc-customize|eudc-default-set|eudc-display-generic-binary|eudc-display-jpeg-as-button|eudc-display-jpeg-inline|eudc-display-mail\n|eudc-display-records|eudc-display-sound|eudc-display-url|eudc-distribute-field-on-records|eudc-edit-hotlist|eudc-expand-inline\n|eudc-extract-n-word-formats|eudc-filter-duplicate-attributes|eudc-filter-partial-records|eudc-format-attribute-name-for-display\n|eudc-format-query|eudc-get-attribute-list|eudc-get-email|eudc-get-phone|eudc-insert-record-at-point-into-bbdb|eudc-install-menu\n|eudc-lax-plist-get|eudc-load-eudc|eudc-menu|eudc-mode|eudc-move-to-next-record|eudc-move-to-previous-record|eudc-plist-get|eudc-plist-member\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\neudc-print-attribute-value|eudc-print-record-field|eudc-process-form|eudc-protocol-local-variable-p|eudc-protocol-set|eudc-query-form\n|eudc-query|eudc-register-protocol|eudc-replace-in-string|eudc-save-options|eudc-select|eudc-server-local-variable-p|eudc-server-set\n|eudc-set-server|eudc-set|eudc-tools-menu|eudc-translate-attribute-list|eudc-translate-query|eudc-try-bbdb-insert|eudc-update-local-variables\n|eudc-update-variable|eudc-variable-default-value|eudc-variable-protocol-value|eudc-variable-server-value|eval-after-load--anon-cmacro\n|eval-after-load|eval-defun|eval-expression-print-format|eval-expression|eval-last-sexp|eval-next-after-load|eval-print-last-sexp\n|eval-sexp-add-defvars|eval-when|evenp|event-apply-alt-modifier|event-apply-control-modifier|event-apply-hyper-modifier|event-apply-meta-modifier\n|event-apply-modifier|event-apply-shift-modifier|event-apply-super-modifier|every|ewoc--adjust|ewoc--buffer--cmacro|ewoc--buffer\n|ewoc--create--cmacro|ewoc--create|ewoc--dll--cmacro|ewoc--dll|ewoc--filter-hf-nodes|ewoc--footer--cmacro|ewoc--footer|ewoc--header--cmacro\n|ewoc--header|ewoc--hf-pp--cmacro|ewoc--hf-pp|ewoc--insert-new-node|ewoc--last-node--cmacro|ewoc--last-node|ewoc--node-create--cmacro\n|ewoc--node-create|ewoc--node-data--cmacro|ewoc--node-data|ewoc--node-left--cmacro|ewoc--node-left|ewoc--node-next|ewoc--node-nth\n|ewoc--node-prev|ewoc--node-right--cmacro|ewoc--node-right|ewoc--node-start-marker--cmacro|ewoc--node-start-marker|ewoc--pretty-printer--cmacro\n|ewoc--pretty-printer|ewoc--refresh-node|ewoc--set-buffer-bind-dll-let\\*|ewoc--set-buffer-bind-dll|ewoc--wrap|ewoc-p--cmacro|ewoc-p\n|eww-add-bookmark|eww-back-url|eww-beginning-of-field|eww-beginning-of-text|eww-bookmark-browse|eww-bookmark-kill|eww-bookmark-mode\n|eww-bookmark-prepare|eww-bookmark-yank|eww-browse-url|eww-browse-with-external-browser|eww-buffer-kill|eww-buffer-select|eww-buffer-show-next\n|eww-buffer-show-previous|eww-buffer-show|eww-buffers-mode|eww-change-select|eww-copy-page-url|eww-current-url|eww-desktop-data-1\n|eww-desktop-history-duplicate|eww-desktop-misc-data|eww-detect-charset|eww-display-html|eww-display-image|eww-display-pdf|eww-display-raw\n|eww-download-callback|eww-download|eww-end-of-field|eww-end-of-text|eww-follow-link|eww-form-checkbox|eww-form-file|eww-form-submit\n|eww-form-text|eww-forward-url|eww-handle-link|eww-highest-readability|eww-history-browse|eww-history-mode|eww-input-value|eww-inputs\n|eww-links-at-point|eww-list-bookmarks|eww-list-buffers|eww-list-histories|eww-make-unique-file-name|eww-mode|eww-next-bookmark\n|eww-next-url|eww-open-file|eww-parse-headers|eww-previous-bookmark|eww-previous-url|eww-process-text-input|eww-read-bookmarks|eww-readable\n|eww-reload|eww-render|eww-restore-desktop|eww-restore-history|eww-same-page-p|eww-save-history|eww-score-readability|eww-search-words\n|eww-select-display|eww-select-file|eww-set-character-encoding|eww-setup-buffer|eww-size-text-inputs|eww-submit|eww-suggested-uris\n|eww-tag-a|eww-tag-body|eww-tag-form|eww-tag-input|eww-tag-link|eww-tag-select|eww-tag-textarea|eww-tag-title|eww-toggle-checkbox\n|eww-top-url|eww-up-url|eww-update-field|eww-update-header-line-format|eww-view-source|eww-write-bookmarks|eww|ex-args|ex-cd|ex-cmd-accepts-multiple-files-p\n|ex-cmd-assoc|ex-cmd-complete|ex-cmd-execute|ex-cmd-is-mashed-with-args|ex-cmd-is-one-letter|ex-cmd-not-yet|ex-cmd-obsolete|ex-cmd-read-exit\n|ex-command|ex-compile|ex-copy|ex-delete|ex-edit|ex-expand-filsyms|ex-find-file|ex-fixup-history|ex-get-inline-cmd-args|ex-global|ex-goto\n|ex-help|ex-line-no|ex-line-subr|ex-line|ex-map-read-args|ex-map|ex-mark|ex-next-related-buffer|ex-next|ex-preserve|ex-print-display-lines\n|ex-print|ex-put|ex-pwd|ex-quit|ex-read|ex-recover|ex-rewind|ex-search-address|ex-set-read-variable|ex-set-visited-file-name|ex-set\n|ex-shell|ex-show-vars|ex-source|ex-splice-args-in-1-letr-cmd|ex-substitute|ex-tag|ex-unmap-read-args|ex-unmap|ex-write-info|ex-write\n|ex-yank|exchange-dot-and-mark|exchange-point-and-mark|executable-chmod|executable-command-find-posix-p|executable-interpret|executable-make-buffer-file-executable-if-script-p\n|executable-self-display|executable-set-magic|execute-extended-command--shorter-1|execute-extended-command--shorter|exit-scheme-interaction-mode\n|exit-splash-screen|expand-abbrev-from-expand|expand-abbrev-hook|expand-add-abbrev|expand-add-abbrevs|expand-build-list|expand-build-marks\n|expand-c-for-skeleton|expand-clear-markers|expand-do-expansion|expand-in-literal|expand-jump-to-next-slot|expand-jump-to-previous-slot\n|expand-list-to-markers|expand-mail-aliases|expand-previous-word|expand-region-abbrevs|expand-skeleton-end-hook|external-debugging-output\n|extract-rectangle-line|extract-rectangle|ezimage-all-images|ezimage-image-association-dump|ezimage-image-dump|ezimage-image-over-string\n|ezimage-insert-image-button-maybe|ezimage-insert-over-text|f90-abbrev-help|f90-abbrev-start|f90-add-imenu-menu|f90-backslash-not-special\n|f90-beginning-of-block|f90-beginning-of-subprogram|f90-block-match|f90-break-line|f90-calculate-indent|f90-capitalize-keywords\n|f90-capitalize-region-keywords|f90-change-keywords|f90-comment-indent|f90-comment-region|f90-current-defun|f90-current-indentation\n|f90-do-auto-fill|f90-downcase-keywords|f90-downcase-region-keywords|f90-electric-insert|f90-end-of-block|f90-end-of-subprogram\n|f90-equal-symbols|f90-fill-region|f90-find-breakpoint|f90-font-lock-1|f90-font-lock-2|f90-font-lock-3|f90-font-lock-4|f90-font-lock-n\n|f90-get-correct-indent|f90-get-present-comment-type|f90-imenu-type-matcher|f90-in-comment|f90-in-string|f90-indent-line-no|f90-indent-line\n|f90-indent-new-line|f90-indent-region|f90-indent-subprogram|f90-indent-to|f90-insert-end|f90-join-lines|f90-line-continued|f90-looking-at-associate\n|f90-looking-at-critical|f90-looking-at-do|f90-looking-at-end-critical|f90-looking-at-if-then|f90-looking-at-program-block-end\n|f90-looking-at-program-block-start|f90-looking-at-select-case|f90-looking-at-type-like|f90-looking-at-where-or-forall|f90-mark-subprogram\n|f90-match-end|f90-menu|f90-mode|f90-next-block|f90-next-statement|f90-no-block-limit|f90-prepare-abbrev-list-buffer|f90-present-statement-cont\n|f90-previous-block|f90-previous-statement|f90-typedec-matcher|f90-typedef-matcher|f90-upcase-keywords|f90-upcase-region-keywords\n|f90-update-line|face-at-point|face-attr-construct|face-attr-match-p|face-attribute-merged-with|face-attribute-specified-or|face-attributes-as-vector\n|face-attrs-more-relative-p|face-background-pixmap|face-default-spec|face-descriptive-attribute-name|face-doc-string|face-name\n|face-nontrivial-p|face-read-integer|face-read-string|face-remap-order|face-set-after-frame-default|face-spec-choose|face-spec-match-p\n|face-spec-recalc|face-spec-reset-face|face-spec-set-2|face-spec-set-match-display|face-user-default-spec|face-valid-attribute-values\n|facemenu-active-faces|facemenu-add-face|facemenu-add-new-color|facemenu-add-new-face|facemenu-background-menu|facemenu-color-equal\n|facemenu-complete-face-list|facemenu-enable-faces-p|facemenu-face-menu|facemenu-foreground-menu|facemenu-indentation-menu|facemenu-iterate\n|facemenu-justification-menu|facemenu-menu|facemenu-post-self-insert-function|facemenu-read-color|facemenu-remove-all|facemenu-remove-face-props\n|facemenu-remove-special|facemenu-set-background|facemenu-set-bold-italic|facemenu-set-bold|facemenu-set-default|facemenu-set-face-from-menu\n|facemenu-set-face|facemenu-set-foreground|facemenu-set-intangible|facemenu-set-invisible|facemenu-set-italic|facemenu-set-read-only\n|facemenu-set-self-insert-face|facemenu-set-underline|facemenu-special-menu|facemenu-update|fancy-about-screen|fancy-splash-frame\n|fancy-splash-head|fancy-splash-image-file|fancy-splash-insert|fancy-startup-screen|fancy-startup-tail|feature-file|feature-symbols\n|feedmail-accume-n-nuke-header|feedmail-buffer-to-binmail|feedmail-buffer-to-sendmail|feedmail-buffer-to-smtp|feedmail-buffer-to-smtpmail\n|feedmail-confirm-addresses-hook-example|feedmail-create-queue-filename|feedmail-deduce-address-list|feedmail-default-date-generator\n|feedmail-default-message-id-generator|feedmail-default-x-mailer-generator|feedmail-dump-message-to-queue|feedmail-envelope-deducer\n|feedmail-fiddle-date|feedmail-fiddle-from|feedmail-fiddle-header|feedmail-fiddle-list-of-fiddle-plexes|feedmail-fiddle-list-of-spray-fiddle-plexes\n|feedmail-fiddle-message-id|feedmail-fiddle-sender|feedmail-fiddle-spray-address|feedmail-fiddle-x-mailer|feedmail-fill-this-one\n|feedmail-fill-to-cc-function|feedmail-find-eoh|feedmail-fqm-p|feedmail-give-it-to-buffer-eater|feedmail-look-at-queue-directory\n|feedmail-mail-send-hook-splitter|feedmail-message-action-draft-strong|feedmail-message-action-draft|feedmail-message-action-edit\n|feedmail-message-action-help-blat|feedmail-message-action-help|feedmail-message-action-queue-strong|feedmail-message-action-queue\n|feedmail-message-action-scroll-down|feedmail-message-action-scroll-up|feedmail-message-action-send-strong|feedmail-message-action-send\n|feedmail-message-action-toggle-spray|feedmail-one-last-look|feedmail-queue-express-to-draft|feedmail-queue-express-to-queue\n|feedmail-queue-reminder-brief|feedmail-queue-reminder-medium|feedmail-queue-reminder|feedmail-queue-runner-prompt|feedmail-queue-send-edit-prompt-inner\n|feedmail-queue-send-edit-prompt|feedmail-queue-subject-slug-maker|feedmail-rfc822-date|feedmail-rfc822-time-zone|feedmail-run-the-queue-global-prompt\n|feedmail-run-the-queue-no-prompts|feedmail-run-the-queue|feedmail-say-chatter|feedmail-say-debug|feedmail-scroll-buffer|feedmail-send-it-immediately-wrapper\n|feedmail-send-it-immediately|feedmail-send-it|feedmail-spray-via-bbdb|feedmail-tidy-up-slug|feedmail-vm-mail-mode|fetch-overload\n|ff-all-dirs-under|ff-basename|ff-cc-hh-converter|ff-find-file|ff-find-other-file|ff-find-related-file|ff-find-the-other-file|ff-get-file-name\n|ff-get-file|ff-get-other-file|ff-list-replace-env-vars|ff-mouse-find-other-file-other-window|ff-mouse-find-other-file|ff-other-file-name\n|ff-set-point-accordingly|ff-string-match|ff-switch-file|ff-switch-to-buffer|ff-treat-as-special|ff-upcase-p|ff-which-function-are-we-in\n|ffap--toggle-read-only|ffap-all-subdirs-loop|ffap-all-subdirs|ffap-alternate-file-other-window|ffap-alternate-file|ffap-at-mouse\n|ffap-bib|ffap-bindings|ffap-bug|ffap-c\\+\\+-mode|ffap-c-mode|ffap-completable|ffap-copy-string-as-kill|ffap-dired-other-frame|ffap-dired-other-window\n|ffap-dired|ffap-el-mode|ffap-el|ffap-event-buffer|ffap-file-at-point|ffap-file-exists-string|ffap-file-remote-p|ffap-file-suffix\n|ffap-fixup-machine|ffap-fixup-url|ffap-fortran-mode|ffap-gnus-hook|ffap-gnus-menu|ffap-gnus-next|ffap-gnus-wrapper|ffap-gopher-at-point\n|ffap-guess-file-name-at-point|ffap-guesser|ffap-highlight|ffap-home|ffap-host-to-filename|ffap-info-2|ffap-info-3|ffap-info|ffap-kpathsea-expand-path\n|ffap-latex-mode|ffap-lcd|ffap-list-directory|ffap-list-env|ffap-literally|ffap-locate-file|ffap-machine-at-point|ffap-machine-p\n|ffap-menu-ask|ffap-menu-cont|ffap-menu-rescan|ffap-menu|ffap-mouse-event|ffap-newsgroup-p|ffap-next-guess|ffap-next-url|ffap-next\n|ffap-other-frame|ffap-other-window|ffap-prompter|ffap-read-file-or-url-internal|ffap-read-file-or-url|ffap-read-only-other-frame\n|ffap-read-only-other-window|ffap-read-only|ffap-read-url-internal|ffap-reduce-path|ffap-replace-file-component|ffap-rfc|ffap-ro-mode-hook\n|ffap-string-around|ffap-string-at-point|ffap-submit-bug|ffap-symbol-value|ffap-tex-init|ffap-tex-mode|ffap-tex|ffap-url-at-point\n|ffap-url-p|ffap-url-unwrap-local|ffap-url-unwrap-remote|ffap-what-domain|ffap|field-at-pos|field-complete|fifth|file-attributes-lessp\n|file-cache--read-list|file-cache-add-directory-list|file-cache-add-directory-recursively|file-cache-add-directory-using-find\n|file-cache-add-directory-using-locate|file-cache-add-directory|file-cache-add-file-list|file-cache-add-file|file-cache-add-from-file-cache-buffer\n|file-cache-canonical-directory|file-cache-choose-completion|file-cache-clear-cache|file-cache-complete|file-cache-completion-setup-function\n|file-cache-debug-read-from-minibuffer|file-cache-delete-directory-list|file-cache-delete-directory|file-cache-delete-file-list\n|file-cache-delete-file-regexp|file-cache-delete-file|file-cache-directory-name|file-cache-display|file-cache-do-delete-directory\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nfile-cache-file-name|file-cache-files-matching-internal|file-cache-files-matching|file-cache-minibuffer-complete|file-cache-mouse-choose-completion\n|file-dependents|file-loadhist-lookup|file-modes-char-to-right|file-modes-char-to-who|file-modes-rights-to-number|file-name-non-special\n|file-name-shadow-mode|file-notify--event-cookie|file-notify--event-file-name|file-notify--event-file1-name|file-notify-callback\n|file-notify-handle-event|file-of-tag|file-provides|file-requires|file-set-intersect|file-size-human-readable|file-tree-walk|filesets-add-buffer\n|filesets-alist-get|filesets-browse-dir|filesets-browser-name|filesets-build-dir-submenu-now|filesets-build-dir-submenu|filesets-build-ingroup-submenu\n|filesets-build-menu-maybe|filesets-build-menu-now|filesets-build-menu|filesets-build-submenu|filesets-close|filesets-cmd-get-args\n|filesets-cmd-get-def|filesets-cmd-get-fn|filesets-cmd-isearch-getargs|filesets-cmd-query-replace-getargs|filesets-cmd-query-replace-regexp-getargs\n|filesets-cmd-shell-command-getargs|filesets-cmd-shell-command|filesets-cmd-show-result|filesets-conditional-sort|filesets-convert-path-list\n|filesets-convert-patterns|filesets-customize|filesets-data-get-data|filesets-data-get-name|filesets-data-get|filesets-data-set-default\n|filesets-data-set|filesets-directory-files|filesets-edit|filesets-entry-get-dormant-flag|filesets-entry-get-file|filesets-entry-get-files\n|filesets-entry-get-filter-dirs-flag|filesets-entry-get-master|filesets-entry-get-open-fn|filesets-entry-get-pattern--dir|filesets-entry-get-pattern--pattern\n|filesets-entry-get-pattern|filesets-entry-get-save-fn|filesets-entry-get-tree-max-level|filesets-entry-get-tree|filesets-entry-get-verbosity\n|filesets-entry-mode|filesets-entry-set-files|filesets-error|filesets-eviewer-constraint-p|filesets-eviewer-get-props|filesets-exit\n|filesets-file-close|filesets-file-open|filesets-files-equalp|filesets-files-in-same-directory-p|filesets-filetype-get-prop|filesets-filetype-property\n|filesets-filter-dir-names|filesets-filter-list|filesets-find-file-using|filesets-find-file|filesets-find-or-display-file|filesets-get-cmd-menu\n|filesets-get-external-viewer-by-name|filesets-get-external-viewer|filesets-get-filelist|filesets-get-fileset-from-name|filesets-get-fileset-name\n|filesets-get-menu-epilog|filesets-get-quoted-selection|filesets-get-selection|filesets-get-shortcut|filesets-goto-homepage|filesets-info\n|filesets-ingroup-cache-get|filesets-ingroup-cache-put|filesets-ingroup-collect-build-menu|filesets-ingroup-collect-files|filesets-ingroup-collect-finder\n|filesets-ingroup-collect|filesets-ingroup-get-data|filesets-ingroup-get-pattern|filesets-ingroup-get-remdupl-p|filesets-init\n|filesets-member|filesets-menu-cache-file-load|filesets-menu-cache-file-save-maybe|filesets-menu-cache-file-save|filesets-message\n|filesets-open|filesets-ormap|filesets-quote|filesets-rebuild-this-submenu|filesets-remake-shortcut|filesets-remove-buffer|filesets-remove-from-ubl\n|filesets-reset-filename-on-change|filesets-reset-fileset|filesets-run-cmd--repl-fn|filesets-run-cmd|filesets-save-config|filesets-select-command\n|filesets-set-config|filesets-set-default!|filesets-set-default\\+|filesets-set-default|filesets-some|filesets-spawn-external-viewer\n|filesets-sublist|filesets-update-cleanup|filesets-update-pre010505|filesets-update|filesets-which-command-p|filesets-which-command\n|filesets-which-file|filesets-wrap-submenu|fill-comment-paragraph|fill-common-string-prefix|fill-delete-newlines|fill-delete-prefix\n|fill-find-break-point|fill-flowed-encode|fill-flowed|fill-forward-paragraph|fill-french-nobreak-p|fill-indent-to-left-margin|fill-individual-paragraphs-citation\n|fill-individual-paragraphs-prefix|fill-match-adaptive-prefix|fill-minibuffer-function|fill-move-to-break-point|fill-newline|fill-nobreak-p\n|fill-nonuniform-paragraphs|fill-single-char-nobreak-p|fill-single-word-nobreak-p|fill-text-properties-at|fill|filtered-frame-list\n|find-alternate-file-other-window|find-alternate-file|find-change-log|find-class|find-cmd|find-cmpl-prefix-entry|find-coding-systems-region-internal\n|find-composition-internal|find-composition|find-definition-noselect|find-dired-filter|find-dired-sentinel|find-dired|find-emacs-lisp-shadows\n|find-exact-completion|find-face-definition|find-file--read-only|find-file-at-point|find-file-existing|find-file-literally-at-point\n|find-file-noselect-1|find-file-other-frame|find-file-read-args|find-file-read-only-other-frame|find-file-read-only-other-window\n|find-function-C-source|find-function-advised-original|find-function-at-point|find-function-do-it|find-function-library|find-function-noselect\n|find-function-on-key|find-function-other-frame|find-function-other-window|find-function-read|find-function-search-for-symbol\n|find-function-setup-keys|find-function|find-grep-dired|find-grep|find-if-not|find-if|find-library--load-name|find-library-name|find-library-suffixes\n|find-library|find-lisp-debug-message|find-lisp-default-directory-predicate|find-lisp-default-file-predicate|find-lisp-file-predicate-is-directory\n|find-lisp-find-dired-filter|find-lisp-find-dired-insert-file|find-lisp-find-dired-internal|find-lisp-find-dired-subdirectories\n|find-lisp-find-dired|find-lisp-find-files-internal|find-lisp-find-files|find-lisp-format-time|find-lisp-format|find-lisp-insert-directory\n|find-lisp-object-file-name|find-lisp-time-index|find-multibyte-characters|find-name-dired|find-new-buffer-file-coding-system\n|find-tag-default-as-regexp|find-tag-default-as-symbol-regexp|find-tag-default-bounds|find-tag-default|find-tag-in-order|find-tag-interactive\n|find-tag-noselect|find-tag-other-frame|find-tag-other-window|find-tag-regexp|find-tag-tag|find-tag|find-variable-at-point|find-variable-noselect\n|find-variable-other-frame|find-variable-other-window|find-variable|find|finder-by-keyword|finder-commentary|finder-compile-keywords-make-dist\n|finder-compile-keywords|finder-current-item|finder-exit|finder-goto-xref|finder-insert-at-column|finder-list-keywords|finder-list-matches\n|finder-mode|finder-mouse-face-on-line|finder-mouse-select|finder-select|finder-summary|finder-unknown-keywords|finder-unload-function\n|finger|first-error|first|floatp-safe|floor\\*|flush-lines|flymake-add-buildfile-to-cache|flymake-add-err-info|flymake-add-line-err-info\n|flymake-add-project-include-dirs-to-cache|flymake-after-change-function|flymake-after-save-hook|flymake-can-syntax-check-file\n|flymake-check-include|flymake-check-patch-master-file-buffer|flymake-clear-buildfile-cache|flymake-clear-project-include-dirs-cache\n|flymake-compilation-is-running|flymake-compile|flymake-copy-buffer-to-temp-buffer|flymake-create-master-file|flymake-create-temp-inplace\n|flymake-create-temp-with-folder-structure|flymake-delete-own-overlays|flymake-delete-temp-directory|flymake-display-err-menu-for-current-line\n|flymake-display-warning|flymake-er-get-line-err-info-list|flymake-er-get-line|flymake-er-make-er|flymake-find-buffer-for-file\n|flymake-find-buildfile|flymake-find-err-info|flymake-find-file-hook|flymake-find-make-buildfile|flymake-find-possible-master-files\n|flymake-fix-file-name|flymake-fix-line-numbers|flymake-get-ant-cmdline|flymake-get-buildfile-from-cache|flymake-get-cleanup-function\n|flymake-get-err-count|flymake-get-file-name-mode-and-masks|flymake-get-first-err-line-no|flymake-get-full-nonpatched-file-name\n|flymake-get-full-patched-file-name|flymake-get-include-dirs-dot|flymake-get-include-dirs|flymake-get-init-function|flymake-get-last-err-line-no\n|flymake-get-line-err-count|flymake-get-make-cmdline|flymake-get-next-err-line-no|flymake-get-prev-err-line-no|flymake-get-project-include-dirs-from-cache\n|flymake-get-project-include-dirs-imp|flymake-get-project-include-dirs|flymake-get-real-file-name-function|flymake-get-real-file-name\n|flymake-get-syntax-check-program-args|flymake-get-system-include-dirs|flymake-get-tex-args|flymake-goto-file-and-line|flymake-goto-line\n|flymake-goto-next-error|flymake-goto-prev-error|flymake-highlight-err-lines|flymake-highlight-line|flymake-init-create-temp-buffer-copy\n|flymake-init-create-temp-source-and-master-buffer-copy|flymake-init-find-buildfile-dir|flymake-ins-after|flymake-kill-buffer-hook\n|flymake-kill-process|flymake-ler-file--cmacro|flymake-ler-file|flymake-ler-full-file--cmacro|flymake-ler-full-file|flymake-ler-line--cmacro\n|flymake-ler-line|flymake-ler-make-ler--cmacro|flymake-ler-make-ler|flymake-ler-p--cmacro|flymake-ler-p|flymake-ler-set-file|flymake-ler-set-full-file\n|flymake-ler-set-line|flymake-ler-text--cmacro|flymake-ler-text|flymake-ler-type--cmacro|flymake-ler-type|flymake-line-err-info-is-less-or-equal\n|flymake-log|flymake-make-overlay|flymake-master-cleanup|flymake-master-file-compare|flymake-master-make-header-init|flymake-master-make-init\n|flymake-master-tex-init|flymake-mode-off|flymake-mode-on|flymake-mode|flymake-on-timer-event|flymake-overlay-p|flymake-parse-err-lines\n|flymake-parse-line|flymake-parse-output-and-residual|flymake-parse-residual|flymake-patch-err-text|flymake-perl-init|flymake-php-init\n|flymake-popup-current-error-menu|flymake-post-syntax-check|flymake-process-filter|flymake-process-sentinel|flymake-read-file-to-temp-buffer\n|flymake-reformat-err-line-patterns-from-compile-el|flymake-region-has-flymake-overlays|flymake-replace-region|flymake-report-fatal-status\n|flymake-report-status|flymake-safe-delete-directory|flymake-safe-delete-file|flymake-same-files|flymake-save-buffer-in-file|flymake-set-at\n|flymake-simple-ant-java-init|flymake-simple-cleanup|flymake-simple-java-cleanup|flymake-simple-make-init-impl|flymake-simple-make-init\n|flymake-simple-make-java-init|flymake-simple-tex-init|flymake-skip-whitespace|flymake-split-output|flymake-start-syntax-check-process\n|flymake-start-syntax-check|flymake-stop-all-syntax-checks|flymake-xml-init|flyspell-abbrev-table|flyspell-accept-buffer-local-defs\n|flyspell-after-change-function|flyspell-ajust-cursor-point|flyspell-already-abbrevp|flyspell-auto-correct-previous-hook|flyspell-auto-correct-previous-word\n|flyspell-auto-correct-word|flyspell-buffer|flyspell-change-abbrev|flyspell-check-changed-word-p|flyspell-check-pre-word-p|flyspell-check-previous-highlighted-word\n|flyspell-check-region-doublons|flyspell-check-word-p|flyspell-correct-word-before-point|flyspell-correct-word|flyspell-debug-signal-changed-checked\n|flyspell-debug-signal-no-check|flyspell-debug-signal-pre-word-checked|flyspell-debug-signal-word-checked|flyspell-define-abbrev\n|flyspell-delay-command|flyspell-delay-commands|flyspell-delete-all-overlays|flyspell-delete-region-overlays|flyspell-deplacement-command\n|flyspell-deplacement-commands|flyspell-display-next-corrections|flyspell-do-correct|flyspell-emacs-popup|flyspell-external-point-words\n|flyspell-generic-progmode-verify|flyspell-get-casechars|flyspell-get-not-casechars|flyspell-get-word|flyspell-goto-next-error\n|flyspell-hack-local-variables-hook|flyspell-highlight-duplicate-region|flyspell-highlight-incorrect-region|flyspell-kill-ispell-hook\n|flyspell-large-region|flyspell-math-tex-command-p|flyspell-maybe-correct-doubling|flyspell-maybe-correct-transposition|flyspell-minibuffer-p\n|flyspell-mode-off|flyspell-mode-on|flyspell-mode|flyspell-notify-misspell|flyspell-overlay-p|flyspell-post-command-hook|flyspell-pre-command-hook\n|flyspell-process-localwords|flyspell-prog-mode|flyspell-properties-at-p|flyspell-region|flyspell-small-region|flyspell-tex-command-p\n|flyspell-unhighlight-at|flyspell-word-search-backward|flyspell-word-search-forward|flyspell-word|flyspell-xemacs-popup|focus-frame\n|foldout-exit-fold|foldout-mouse-goto-heading|foldout-mouse-hide-or-exit|foldout-mouse-show|foldout-mouse-swallow-events|foldout-mouse-zoom\n|foldout-update-mode-line|foldout-zoom-subtree|follow--window-sorter|follow-adjust-window|follow-align-compilation-windows|follow-all-followers\n|follow-avoid-tail-recenter|follow-cache-valid-p|follow-calc-win-end|follow-calc-win-start|follow-calculate-first-window-start-from-above\n|follow-calculate-first-window-start-from-below|follow-comint-scroll-to-bottom|follow-debug-message|follow-delete-other-windows-and-split\n|follow-end-of-buffer|follow-estimate-first-window-start|follow-find-file-hook|follow-first-window|follow-last-window|follow-maximize-region\n|follow-menu-filter|follow-mode|follow-mwheel-scroll|follow-next-window|follow-point-visible-all-windows-p|follow-pos-visible|follow-post-command-hook\n|follow-previous-window|follow-recenter|follow-redisplay|follow-redraw-after-event|follow-redraw|follow-scroll-bar-drag|follow-scroll-bar-scroll-down\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nfollow-scroll-bar-scroll-up|follow-scroll-bar-toolkit-scroll|follow-scroll-down|follow-scroll-up|follow-select-if-end-visible\n|follow-select-if-visible-from-first|follow-select-if-visible|follow-split-followers|follow-switch-to-buffer-all|follow-switch-to-buffer\n|follow-switch-to-current-buffer-all|follow-update-window-start|follow-window-size-change|follow-windows-aligned-p|follow-windows-start-end\n|font-get-glyphs|font-get-system-font|font-get-system-normal-font|font-info|font-lock-after-change-function|font-lock-after-fontify-buffer\n|font-lock-after-unfontify-buffer|font-lock-append-text-property|font-lock-apply-highlight|font-lock-apply-syntactic-highlight\n|font-lock-change-mode|font-lock-choose-keywords|font-lock-compile-keyword|font-lock-compile-keywords|font-lock-default-fontify-buffer\n|font-lock-default-fontify-region|font-lock-default-function|font-lock-default-unfontify-buffer|font-lock-default-unfontify-region\n|font-lock-defontify|font-lock-ensure|font-lock-eval-keywords|font-lock-extend-jit-lock-region-after-change|font-lock-extend-region-multiline\n|font-lock-extend-region-wholelines|font-lock-fillin-text-property|font-lock-flush|font-lock-fontify-anchored-keywords|font-lock-fontify-block\n|font-lock-fontify-buffer|font-lock-fontify-keywords-region|font-lock-fontify-region|font-lock-fontify-syntactic-anchored-keywords\n|font-lock-fontify-syntactic-keywords-region|font-lock-fontify-syntactically-region|font-lock-initial-fontify|font-lock-match-c-style-declaration-item-and-skip-to-next\n|font-lock-match-meta-declaration-item-and-skip-to-next|font-lock-mode-internal|font-lock-mode-set-explicitly|font-lock-mode\n|font-lock-prepend-text-property|font-lock-refresh-defaults|font-lock-set-defaults|font-lock-specified-p|font-lock-turn-off-thing-lock\n|font-lock-turn-on-thing-lock|font-lock-unfontify-buffer|font-lock-unfontify-region|font-lock-update-removed-keyword-alist|font-lock-value-in-major-mode\n|font-match-p|font-menu-add-default|font-setting-change-default-font|font-shape-gstring|font-show-log|font-variation-glyphs|fontset-font\n|fontset-info|fontset-list|fontset-name-p|fontset-plain-name|footnote-mode|foreground-color-at-point|form-at-point|format-annotate-atomic-property-change\n|format-annotate-function|format-annotate-location|format-annotate-region|format-annotate-single-property-change|format-annotate-value\n|format-deannotate-region|format-decode-buffer|format-decode-region|format-decode-run-method|format-decode|format-delq-cons|format-encode-buffer\n|format-encode-region|format-encode-run-method|format-insert-annotations|format-kbd-macro|format-make-relatively-unique|format-proper-list-p\n|format-property-increment-region|format-read|format-reorder|format-replace-strings|format-spec-make|format-spec|format-subtract-regions\n|forms-find-file-other-window|forms-find-file|forms-mode|fortran-abbrev-help|fortran-abbrev-start|fortran-analyze-file-format|fortran-auto-fill-mode\n|fortran-auto-fill|fortran-beginning-do|fortran-beginning-if|fortran-beginning-of-block|fortran-beginning-of-subprogram|fortran-blink-match\n|fortran-blink-matching-do|fortran-blink-matching-if|fortran-break-line|fortran-calculate-indent|fortran-check-end-prog-re|fortran-check-for-matching-do\n|fortran-column-ruler|fortran-comment-indent|fortran-comment-region|fortran-current-defun|fortran-current-line-indentation|fortran-electric-line-number\n|fortran-end-do|fortran-end-if|fortran-end-of-block|fortran-end-of-subprogram|fortran-fill-paragraph|fortran-fill-statement|fortran-fill\n|fortran-find-comment-start-skip|fortran-gud-find-expr|fortran-hack-local-variables|fortran-indent-comment|fortran-indent-line\n|fortran-indent-new-line|fortran-indent-subprogram|fortran-indent-to-column|fortran-is-in-string-p|fortran-join-line|fortran-line-length\n|fortran-line-number-indented-correctly-p|fortran-looking-at-if-then|fortran-make-syntax-propertize-function|fortran-mark-do\n|fortran-mark-if|fortran-match-and-skip-declaration|fortran-menu|fortran-mode|fortran-next-statement|fortran-numerical-continuation-char\n|fortran-prepare-abbrev-list-buffer|fortran-previous-statement|fortran-remove-continuation|fortran-split-line|fortran-strip-sequence-nos\n|fortran-uncomment-region|fortran-window-create-momentarily|fortran-window-create|fortune-add-fortune|fortune-append|fortune-ask-file\n|fortune-compile|fortune-from-region|fortune-in-buffer|fortune-to-signature|fortune|forward-ifdef|forward-page|forward-paragraph\n|forward-point|forward-same-syntax|forward-sentence|forward-symbol|forward-text-line|forward-thing|forward-visible-line|forward-whitespace\n|fourth|frame-border-width|frame-bottom-divider-width|frame-can-run-window-configuration-change-hook|frame-char-size|frame-configuration-p\n|frame-configuration-to-register|frame-face-alist|frame-focus|frame-font-cache|frame-fringe-width|frame-geom-spec-cons|frame-geom-value-cons\n|frame-initialize|frame-notice-user-settings|frame-or-buffer-changed-p|frame-remove-geometry-params|frame-right-divider-width\n|frame-root-window-p|frame-scroll-bar-height|frame-scroll-bar-width|frame-set-background-mode|frame-terminal-default-bg-mode|frame-text-cols\n|frame-text-height|frame-text-lines|frame-text-width|frame-total-cols|frame-total-lines|frame-windows-min-size|framep-on-display\n|frames-on-display-list|frameset--find-frame-if|frameset--initial-params|frameset--jump-to-register|frameset--make--cmacro|frameset--make\n|frameset--minibufferless-last-p|frameset--print-register|frameset--prop-setter|frameset--record-minibuffer-relationships|frameset--restore-frame\n|frameset--reuse-frame|frameset--set-id|frameset-app--cmacro|frameset-app|frameset-cfg-id|frameset-compute-pos|frameset-copy|frameset-description--cmacro\n|frameset-description|frameset-filter-iconified|frameset-filter-minibuffer|frameset-filter-params|frameset-filter-sanitize-color\n|frameset-filter-shelve-param|frameset-filter-tty-to-GUI|frameset-filter-unshelve-param|frameset-frame-id-equal-p|frameset-frame-id\n|frameset-frame-with-id|frameset-keep-original-display-p|frameset-minibufferless-first-p|frameset-move-onscreen|frameset-name--cmacro\n|frameset-name|frameset-p--cmacro|frameset-p|frameset-prop|frameset-properties--cmacro|frameset-properties|frameset-restore|frameset-save\n|frameset-states--cmacro|frameset-states|frameset-switch-to-gui-p|frameset-switch-to-tty-p|frameset-timestamp--cmacro|frameset-timestamp\n|frameset-to-register|frameset-valid-p|frameset-version--cmacro|frameset-version|fringe--check-style|fringe-bitmap-p|fringe-columns\n|fringe-mode-initialize|fringe-mode|fringe-query-style|ftp-mode|ftp|full-calc-keypad|full-calc|funcall-interactively|function\\*|function-called-at-point\n|function-equal|function-overload-p|function-put|function|gamegrid-add-score-insecure|gamegrid-add-score-with-update-game-score-1\n|gamegrid-add-score-with-update-game-score|gamegrid-add-score|gamegrid-cell-offset|gamegrid-characterp|gamegrid-color|gamegrid-colorize-glyph\n|gamegrid-display-type|gamegrid-event-x|gamegrid-event-y|gamegrid-get-cell|gamegrid-init-buffer|gamegrid-init|gamegrid-initialize-display\n|gamegrid-kill-timer|gamegrid-make-color-tty-face|gamegrid-make-color-x-face|gamegrid-make-face|gamegrid-make-glyph|gamegrid-make-grid-x-face\n|gamegrid-make-image-from-vector|gamegrid-make-mono-tty-face|gamegrid-make-mono-x-face|gamegrid-match-spec-list|gamegrid-match-spec\n|gamegrid-set-cell|gamegrid-set-display-table|gamegrid-set-face|gamegrid-set-font|gamegrid-set-timer|gamegrid-setup-default-font\n|gamegrid-setup-face|gamegrid-start-timer|gametree-apply-layout|gametree-apply-register-layout|gametree-break-line-here|gametree-children-shown-p\n|gametree-compute-and-insert-score|gametree-compute-reduced-score|gametree-current-branch-depth|gametree-current-branch-ply|gametree-current-branch-score\n|gametree-current-layout|gametree-entry-shown-p|gametree-forward-line|gametree-hack-file-layout|gametree-insert-new-leaf|gametree-insert-score\n|gametree-layout-to-register|gametree-looking-at-ply|gametree-merge-line|gametree-mode|gametree-mouse-break-line-here|gametree-mouse-hide-subtree\n|gametree-mouse-show-children-and-entry|gametree-mouse-show-subtree|gametree-prettify-heading|gametree-restore-layout|gametree-save-and-hack-layout\n|gametree-save-layout|gametree-show-children-and-entry|gametree-transpose-following-leaves|gcd|gdb--check-interpreter|gdb--if-arrow\n|gdb-add-handler|gdb-add-subscriber|gdb-append-to-partial-output|gdb-bind-function-to-buffer|gdb-breakpoints-buffer-name|gdb-breakpoints-list-handler-custom\n|gdb-breakpoints-list-handler|gdb-breakpoints-mode|gdb-buffer-shows-main-thread-p|gdb-buffer-type|gdb-changed-registers-handler\n|gdb-check-target-async|gdb-clear-inferior-io|gdb-clear-partial-output|gdb-concat-output|gdb-console|gdb-continue-thread|gdb-control-all-threads\n|gdb-control-current-thread|gdb-create-define-alist|gdb-current-buffer-frame|gdb-current-buffer-rules|gdb-current-buffer-thread\n|gdb-current-context-buffer-name|gdb-current-context-command|gdb-current-context-mode-name|gdb-delchar-or-quit|gdb-delete-breakpoint\n|gdb-delete-frame-or-window|gdb-delete-handler|gdb-delete-subscriber|gdb-disassembly-buffer-name|gdb-disassembly-handler-custom\n|gdb-disassembly-handler|gdb-disassembly-mode|gdb-disassembly-place-breakpoints|gdb-display-breakpoints-buffer|gdb-display-buffer\n|gdb-display-disassembly-buffer|gdb-display-disassembly-for-thread|gdb-display-gdb-buffer|gdb-display-io-buffer|gdb-display-locals-buffer\n|gdb-display-locals-for-thread|gdb-display-memory-buffer|gdb-display-registers-buffer|gdb-display-registers-for-thread|gdb-display-source-buffer\n|gdb-display-stack-buffer|gdb-display-stack-for-thread|gdb-display-threads-buffer|gdb-done-or-error|gdb-done|gdb-edit-locals-value\n|gdb-edit-register-value|gdb-edit-value-handler|gdb-edit-value|gdb-emit-signal|gdb-enable-debug|gdb-error|gdb-find-file-hook|gdb-find-watch-expression\n|gdb-force-mode-line-update|gdb-frame-breakpoints-buffer|gdb-frame-disassembly-buffer|gdb-frame-disassembly-for-thread|gdb-frame-gdb-buffer\n|gdb-frame-handler|gdb-frame-io-buffer|gdb-frame-locals-buffer|gdb-frame-locals-for-thread|gdb-frame-location|gdb-frame-memory-buffer\n|gdb-frame-registers-buffer|gdb-frame-registers-for-thread|gdb-frame-stack-buffer|gdb-frame-stack-for-thread|gdb-frame-threads-buffer\n|gdb-frames-mode|gdb-gdb|gdb-get-buffer-create|gdb-get-buffer|gdb-get-changed-registers|gdb-get-handler-function|gdb-get-location\n|gdb-get-main-selected-frame|gdb-get-many-fields|gdb-get-prompt|gdb-get-source-file-list|gdb-get-source-file|gdb-get-subscribers\n|gdb-get-target-string|gdb-goto-breakpoint|gdb-gud-context-call|gdb-gud-context-command|gdb-handle-reply|gdb-handler-function--cmacro\n|gdb-handler-function|gdb-handler-p--cmacro|gdb-handler-p|gdb-handler-pending-trigger--cmacro|gdb-handler-pending-trigger|gdb-handler-token-number--cmacro\n|gdb-handler-token-number|gdb-ignored-notification|gdb-inferior-filter|gdb-inferior-io--init-proc|gdb-inferior-io-mode|gdb-inferior-io-name\n|gdb-inferior-io-sentinel|gdb-init-1|gdb-init-buffer|gdb-input|gdb-internals|gdb-interrupt-thread|gdb-invalidate-breakpoints|gdb-invalidate-disassembly\n|gdb-invalidate-frames|gdb-invalidate-locals|gdb-invalidate-memory|gdb-invalidate-registers|gdb-invalidate-threads|gdb-io-eof|gdb-io-interrupt\n|gdb-io-quit|gdb-io-stop|gdb-json-partial-output|gdb-json-read-buffer|gdb-json-string|gdb-jsonify-buffer|gdb-line-posns|gdb-locals-buffer-name\n|gdb-locals-handler-custom|gdb-locals-handler|gdb-locals-mode|gdb-make-header-line-mouse-map|gdb-many-windows|gdb-mark-line|gdb-memory-buffer-name\n|gdb-memory-column-width|gdb-memory-format-binary|gdb-memory-format-hexadecimal|gdb-memory-format-menu-1|gdb-memory-format-menu\n|gdb-memory-format-octal|gdb-memory-format-signed|gdb-memory-format-unsigned|gdb-memory-mode|gdb-memory-set-address-event|gdb-memory-set-address\n|gdb-memory-set-columns|gdb-memory-set-rows|gdb-memory-show-next-page|gdb-memory-show-previous-page|gdb-memory-unit-byte|gdb-memory-unit-giant\n|gdb-memory-unit-halfword|gdb-memory-unit-menu-1|gdb-memory-unit-menu|gdb-memory-unit-word|gdb-mi-quote|gdb-mouse-jump|gdb-mouse-set-clear-breakpoint\n|gdb-mouse-toggle-breakpoint-fringe|gdb-mouse-toggle-breakpoint-margin|gdb-mouse-until|gdb-non-stop-handler|gdb-pad-string|gdb-parent-mode\n|gdb-partial-output-name|gdb-pending-handler-p|gdb-place-breakpoints|gdb-preempt-existing-or-display-buffer|gdb-preemptively-display-disassembly-buffer\n|gdb-preemptively-display-locals-buffer|gdb-preemptively-display-registers-buffer|gdb-preemptively-display-stack-buffer|gdb-propertize-header\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ngdb-put-breakpoint-icon|gdb-put-string|gdb-read-memory-custom|gdb-read-memory-handler|gdb-register-names-handler|gdb-registers-buffer-name\n|gdb-registers-handler-custom|gdb-registers-handler|gdb-registers-mode|gdb-remove-all-pending-triggers|gdb-remove-breakpoint-icons\n|gdb-remove-strings|gdb-reset|gdb-restore-windows|gdb-resync|gdb-rules-buffer-mode|gdb-rules-name-maker|gdb-rules-update-trigger\n|gdb-running|gdb-script-beginning-of-defun|gdb-script-calculate-indentation|gdb-script-end-of-defun|gdb-script-font-lock-syntactic-face\n|gdb-script-indent-line|gdb-script-mode|gdb-script-skip-to-head|gdb-select-frame|gdb-select-thread|gdb-send|gdb-set-buffer-rules\n|gdb-set-window-buffer|gdb-setq-thread-number|gdb-setup-windows|gdb-shell|gdb-show-run-p|gdb-show-stop-p|gdb-speedbar-auto-raise\n|gdb-speedbar-expand-node|gdb-speedbar-timer-fn|gdb-speedbar-update|gdb-stack-buffer-name|gdb-stack-list-frames-custom|gdb-stack-list-frames-handler\n|gdb-starting|gdb-step-thread|gdb-stopped|gdb-strip-string-backslash|gdb-table-add-row|gdb-table-column-sizes--cmacro|gdb-table-column-sizes\n|gdb-table-p--cmacro|gdb-table-p|gdb-table-right-align--cmacro|gdb-table-right-align|gdb-table-row-properties--cmacro|gdb-table-row-properties\n|gdb-table-rows--cmacro|gdb-table-rows|gdb-table-string|gdb-thread-created|gdb-thread-exited|gdb-thread-list-handler-custom|gdb-thread-list-handler\n|gdb-thread-selected|gdb-threads-buffer-name|gdb-threads-mode|gdb-toggle-breakpoint|gdb-toggle-switch-when-another-stopped|gdb-tooltip-print-1\n|gdb-tooltip-print|gdb-update-buffer-name|gdb-update-gud-running|gdb-update|gdb-var-create-handler|gdb-var-delete-1|gdb-var-delete-children\n|gdb-var-delete|gdb-var-evaluate-expression-handler|gdb-var-list-children-handler|gdb-var-list-children|gdb-var-set-format|gdb-var-update-handler\n|gdb-var-update|gdb-wait-for-pending|gdb|gdbmi-bnf-async-record|gdbmi-bnf-console-stream-output|gdbmi-bnf-gdb-prompt|gdbmi-bnf-incomplete-record-result\n|gdbmi-bnf-init|gdbmi-bnf-log-stream-output|gdbmi-bnf-out-of-band-record|gdbmi-bnf-output|gdbmi-bnf-result-and-async-record-impl\n|gdbmi-bnf-result-record|gdbmi-bnf-skip-unrecognized|gdbmi-bnf-stream-record|gdbmi-bnf-target-stream-output|gdbmi-is-number|gdbmi-same-start\n|gdbmi-start-with|generate-fontset-menu|generic-char-p|generic-make-keywords-list|generic-mode-internal|generic-mode|generic-p|generic-primary-only-one-p\n|generic-primary-only-p|gensym|gentemp|get\\*|get-edebug-spec|get-file-char|get-free-disk-space|get-language-info|get-mode-local-parent\n|get-mru-window|get-next-valid-buffer|get-other-frame|get-scroll-bar-mode|get-unicode-property-internal|get-unused-iso-final-char\n|get-upcase-table|getenv-internal|getf|gfile-add-watch|gfile-rm-watch|glasses-change|glasses-convert-to-unreadable|glasses-custom-set\n|glasses-make-overlay|glasses-make-readable|glasses-make-unreadable|glasses-mode|glasses-overlay-p|glasses-parenthesis-exception-p\n|glasses-set-overlay-properties|global-auto-composition-mode|global-auto-revert-mode|global-cwarn-mode-check-buffers|global-cwarn-mode-cmhh\n|global-cwarn-mode-enable-in-buffers|global-cwarn-mode|global-ede-mode|global-eldoc-mode|global-font-lock-mode-check-buffers|global-font-lock-mode-cmhh\n|global-font-lock-mode-enable-in-buffers|global-font-lock-mode|global-hi-lock-mode-check-buffers|global-hi-lock-mode-cmhh|global-hi-lock-mode-enable-in-buffers\n|global-hi-lock-mode|global-highlight-changes-mode-check-buffers|global-highlight-changes-mode-cmhh|global-highlight-changes-mode-enable-in-buffers\n|global-highlight-changes-mode|global-highlight-changes|global-hl-line-highlight|global-hl-line-mode|global-hl-line-unhighlight-all\n|global-hl-line-unhighlight|global-linum-mode-check-buffers|global-linum-mode-cmhh|global-linum-mode-enable-in-buffers|global-linum-mode\n|global-prettify-symbols-mode-check-buffers|global-prettify-symbols-mode-cmhh|global-prettify-symbols-mode-enable-in-buffers\n|global-prettify-symbols-mode|global-reveal-mode|global-semantic-decoration-mode|global-semantic-highlight-edits-mode|global-semantic-highlight-func-mode\n|global-semantic-idle-completions-mode|global-semantic-idle-local-symbol-highlight-mode|global-semantic-idle-scheduler-mode\n|global-semantic-idle-summary-mode|global-semantic-mru-bookmark-mode|global-semantic-show-parser-state-mode|global-semantic-show-unmatched-syntax-mode\n|global-semantic-stickyfunc-mode|global-semanticdb-minor-mode|global-set-scheme-interaction-buffer|global-srecode-minor-mode\n|global-subword-mode|global-superword-mode|global-visual-line-mode-check-buffers|global-visual-line-mode-cmhh|global-visual-line-mode-enable-in-buffers\n|global-visual-line-mode|global-whitespace-mode|global-whitespace-newline-mode|global-whitespace-toggle-options|glyphless-set-char-table-range\n|gmm-called-interactively-p|gmm-customize-mode|gmm-error|gmm-format-time-string|gmm-image-load-path-for-library|gmm-image-search-load-path\n|gmm-labels|gmm-message|gmm-regexp-concat|gmm-tool-bar-from-list|gmm-widget-p|gmm-write-region|gnus--random-face-with-type|gnus-1\n|gnus-Folder-save-name|gnus-active|gnus-add-buffer|gnus-add-configuration|gnus-add-shutdown|gnus-add-text-properties-when|gnus-add-text-properties\n|gnus-add-to-sorted-list|gnus-agent-batch-fetch|gnus-agent-batch|gnus-agent-delete-group|gnus-agent-fetch-session|gnus-agent-find-parameter\n|gnus-agent-get-function|gnus-agent-get-undownloaded-list|gnus-agent-group-covered-p|gnus-agent-method-p|gnus-agent-possibly-alter-active\n|gnus-agent-possibly-save-gcc|gnus-agent-regenerate|gnus-agent-rename-group|gnus-agent-request-article|gnus-agent-retrieve-headers\n|gnus-agent-save-active|gnus-agent-save-group-info|gnus-agent-store-article|gnus-agentize|gnus-alist-pull|gnus-alive-p|gnus-and\n|gnus-annotation-in-region-p|gnus-apply-kill-file-internal|gnus-apply-kill-file|gnus-archive-server-wanted-p|gnus-article-date-lapsed\n|gnus-article-date-local|gnus-article-date-original|gnus-article-de-base64-unreadable|gnus-article-de-quoted-unreadable|gnus-article-decode-HZ\n|gnus-article-decode-encoded-words|gnus-article-delete-invisible-text|gnus-article-display-x-face|gnus-article-edit-article|gnus-article-edit-done\n|gnus-article-edit-mode|gnus-article-fill-cited-article|gnus-article-fill-cited-long-lines|gnus-article-hide-boring-headers|gnus-article-hide-citation-in-followups\n|gnus-article-hide-citation-maybe|gnus-article-hide-citation|gnus-article-hide-headers|gnus-article-hide-pem|gnus-article-hide-signature\n|gnus-article-highlight-citation|gnus-article-html|gnus-article-mail|gnus-article-mode|gnus-article-next-page|gnus-article-outlook-deuglify-article\n|gnus-article-outlook-repair-attribution|gnus-article-outlook-unwrap-lines|gnus-article-prepare-display|gnus-article-prepare\n|gnus-article-prev-page|gnus-article-read-summary-keys|gnus-article-remove-cr|gnus-article-remove-trailing-blank-lines|gnus-article-save\n|gnus-article-set-window-start|gnus-article-setup-buffer|gnus-article-strip-leading-blank-lines|gnus-article-treat-overstrike\n|gnus-article-unsplit-urls|gnus-article-wash-html|gnus-assq-delete-all|gnus-async-halt-prefetch|gnus-async-prefetch-article|gnus-async-prefetch-next\n|gnus-async-prefetch-remove-group|gnus-async-request-fetched-article|gnus-atomic-progn-assign|gnus-atomic-progn|gnus-atomic-setq\n|gnus-backlog-enter-article|gnus-backlog-remove-article|gnus-backlog-request-article|gnus-batch-kill|gnus-batch-score|gnus-binary-mode\n|gnus-bind-print-variables|gnus-blocked-images|gnus-bookmark-bmenu-list|gnus-bookmark-jump|gnus-bookmark-set|gnus-bound-and-true-p\n|gnus-boundp|gnus-browse-foreign-server|gnus-buffer-exists-p|gnus-buffer-live-p|gnus-buffers|gnus-bug|gnus-button-mailto|gnus-button-reply\n|gnus-byte-compile|gnus-cache-articles-in-group|gnus-cache-close|gnus-cache-delete-group|gnus-cache-enter-article|gnus-cache-enter-remove-article\n|gnus-cache-file-contents|gnus-cache-generate-active|gnus-cache-generate-nov-databases|gnus-cache-open|gnus-cache-possibly-alter-active\n|gnus-cache-possibly-enter-article|gnus-cache-possibly-remove-articles|gnus-cache-remove-article|gnus-cache-rename-group|gnus-cache-request-article\n|gnus-cache-retrieve-headers|gnus-cache-save-buffers|gnus-cache-update-article|gnus-cached-article-p|gnus-character-to-event|gnus-check-backend-function\n|gnus-check-reasonable-setup|gnus-completing-read|gnus-configure-windows|gnus-continuum-version|gnus-convert-article-to-rmail\n|gnus-convert-face-to-png|gnus-convert-gray-x-face-to-xpm|gnus-convert-image-to-gray-x-face|gnus-convert-png-to-face|gnus-copy-article-buffer\n|gnus-copy-file|gnus-copy-overlay|gnus-copy-sequence|gnus-create-hash-size|gnus-create-image|gnus-create-info-command|gnus-current-score-file-nondirectory\n|gnus-data-find|gnus-data-header|gnus-date-get-time|gnus-date-iso8601|gnus-dd-mmm|gnus-deactivate-mark|gnus-declare-backend|gnus-decode-newsgroups\n|gnus-define-group-parameter|gnus-define-keymap|gnus-define-keys-1|gnus-define-keys-safe|gnus-define-keys|gnus-delay-article|gnus-delay-initialize\n|gnus-delay-send-queue|gnus-delete-alist|gnus-delete-directory|gnus-delete-duplicates|gnus-delete-file|gnus-delete-first|gnus-delete-gnus-frame\n|gnus-delete-line|gnus-delete-overlay|gnus-demon-add-disconnection|gnus-demon-add-handler|gnus-demon-add-rescan|gnus-demon-add-scan-timestamps\n|gnus-demon-add-scanmail|gnus-demon-cancel|gnus-demon-init|gnus-demon-remove-handler|gnus-display-x-face-in-from|gnus-draft-mode\n|gnus-draft-reminder|gnus-dribble-enter|gnus-dribble-touch|gnus-dup-enter-articles|gnus-dup-suppress-articles|gnus-dup-unsuppress-article\n|gnus-edit-form|gnus-emacs-completing-read|gnus-emacs-version|gnus-ems-redefine|gnus-enter-server-buffer|gnus-ephemeral-group-p\n|gnus-error|gnus-eval-in-buffer-window|gnus-execute|gnus-expand-group-parameter|gnus-expand-group-parameters|gnus-expunge|gnus-extended-version\n|gnus-extent-detached-p|gnus-extent-start-open|gnus-extract-address-components|gnus-extract-references|gnus-face-from-file|gnus-faces-at\n|gnus-fetch-field|gnus-fetch-group-other-frame|gnus-fetch-group|gnus-fetch-original-field|gnus-file-newer-than|gnus-final-warning\n|gnus-find-method-for-group|gnus-find-subscribed-addresses|gnus-find-text-property-region|gnus-float-time|gnus-folder-save-name\n|gnus-frame-or-window-display-name|gnus-generate-new-group-name|gnus-get-buffer-create|gnus-get-buffer-window|gnus-get-display-table\n|gnus-get-info|gnus-get-text-property-excluding-characters-with-faces|gnus-getenv-nntpserver|gnus-gethash-safe|gnus-gethash|gnus-globalify-regexp\n|gnus-goto-char|gnus-goto-colon|gnus-graphic-display-p|gnus-grep-in-list|gnus-group-add-parameter|gnus-group-add-score|gnus-group-auto-expirable-p\n|gnus-group-customize|gnus-group-decoded-name|gnus-group-entry|gnus-group-fast-parameter|gnus-group-find-parameter|gnus-group-first-unread-group\n|gnus-group-foreign-p|gnus-group-full-name|gnus-group-get-new-news|gnus-group-get-parameter|gnus-group-group-name|gnus-group-guess-full-name-from-command-method\n|gnus-group-insert-group-line|gnus-group-iterate|gnus-group-list-groups|gnus-group-mail|gnus-group-make-help-group|gnus-group-method\n|gnus-group-name-charset|gnus-group-name-decode|gnus-group-name-to-method|gnus-group-native-p|gnus-group-news|gnus-group-parameter-value\n|gnus-group-position-point|gnus-group-post-news|gnus-group-prefixed-name|gnus-group-prefixed-p|gnus-group-quit-config|gnus-group-quit\n|gnus-group-read-only-p|gnus-group-real-name|gnus-group-real-prefix|gnus-group-remove-parameter|gnus-group-save-newsrc|gnus-group-secondary-p\n|gnus-group-send-queue|gnus-group-server|gnus-group-set-info|gnus-group-set-mode-line|gnus-group-set-parameter|gnus-group-setup-buffer\n|gnus-group-short-name|gnus-group-split-fancy|gnus-group-split-setup|gnus-group-split-update|gnus-group-split|gnus-group-startup-message\n|gnus-group-total-expirable-p|gnus-group-unread|gnus-group-update-group|gnus-groups-from-server|gnus-header-from|gnus-highlight-selected-tree\n|gnus-horizontal-recenter|gnus-html-prefetch-images|gnus-ido-completing-read|gnus-image-type-available-p|gnus-indent-rigidly|gnus-info-find-node\n|gnus-info-group|gnus-info-level|gnus-info-marks|gnus-info-method|gnus-info-params|gnus-info-rank|gnus-info-read|gnus-info-score\n|gnus-info-set-entry|gnus-info-set-group|gnus-info-set-level|gnus-info-set-marks|gnus-info-set-method|gnus-info-set-params|gnus-info-set-rank\n|gnus-info-set-read|gnus-info-set-score|gnus-insert-random-face-header|gnus-insert-random-x-face-header|gnus-interactive|gnus-intern-safe\n|gnus-intersection|gnus-invisible-p|gnus-iswitchb-completing-read|gnus-jog-cache|gnus-key-press-event-p|gnus-kill-all-overlays\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ngnus-kill-buffer|gnus-kill-ephemeral-group|gnus-kill-file-edit-file|gnus-kill-file-raise-followups-to-author|gnus-kill-save-kill-buffer\n|gnus-kill|gnus-list-debbugs|gnus-list-memq-of-list|gnus-list-of-read-articles|gnus-list-of-unread-articles|gnus-local-set-keys\n|gnus-mail-strip-quoted-names|gnus-mailing-list-insinuate|gnus-mailing-list-mode|gnus-make-directory|gnus-make-hashtable|gnus-make-local-hook\n|gnus-make-overlay|gnus-make-predicate-1|gnus-make-predicate|gnus-make-sort-function-1|gnus-make-sort-function|gnus-make-thread-indent-array\n|gnus-map-function|gnus-mapcar|gnus-mark-active-p|gnus-match-substitute-replacement|gnus-max-width-function|gnus-member-of-valid\n|gnus-merge|gnus-message-with-timestamp|gnus-message|gnus-method-ephemeral-p|gnus-method-equal|gnus-method-option-p|gnus-method-simplify\n|gnus-method-to-full-server-name|gnus-method-to-server-name|gnus-method-to-server|gnus-methods-equal-p|gnus-methods-sloppily-equal\n|gnus-methods-using|gnus-mime-view-all-parts|gnus-mode-line-buffer-identification|gnus-mode-string-quote|gnus-move-overlay|gnus-msg-mail\n|gnus-mule-max-width-function|gnus-multiple-choice|gnus-narrow-to-body|gnus-narrow-to-page|gnus-native-method-p|gnus-news-group-p\n|gnus-newsgroup-directory-form|gnus-newsgroup-kill-file|gnus-newsgroup-savable-name|gnus-newsrc-parse-options|gnus-next-char-property-change\n|gnus-no-server-1|gnus-no-server|gnus-not-ignore|gnus-notifications|gnus-offer-save-summaries|gnus-online|gnus-open-agent|gnus-open-server\n|gnus-or|gnus-other-frame|gnus-outlook-deuglify-article|gnus-output-to-mail|gnus-output-to-rmail|gnus-overlay-buffer|gnus-overlay-end\n|gnus-overlay-get|gnus-overlay-put|gnus-overlay-start|gnus-overlays-at|gnus-overlays-in|gnus-parameter-charset|gnus-parameter-ham-marks\n|gnus-parameter-ham-process-destination|gnus-parameter-ham-resend-to|gnus-parameter-large-newsgroup-initial|gnus-parameter-post-method\n|gnus-parameter-registry-ignore|gnus-parameter-spam-autodetect-methods|gnus-parameter-spam-autodetect|gnus-parameter-spam-contents\n|gnus-parameter-spam-marks|gnus-parameter-spam-process-destination|gnus-parameter-spam-process|gnus-parameter-spam-resend-to\n|gnus-parameter-subscribed|gnus-parameter-to-address|gnus-parameter-to-list|gnus-parameters-get-parameter|gnus-parent-id|gnus-parse-without-error\n|gnus-pick-mode|gnus-plugged|gnus-possibly-generate-tree|gnus-possibly-score-headers|gnus-post-news|gnus-pp-to-string|gnus-pp|gnus-previous-char-property-change\n|gnus-prin1-to-string|gnus-prin1|gnus-process-get|gnus-process-plist|gnus-process-put|gnus-put-display-table|gnus-put-image|gnus-put-overlay-excluding-newlines\n|gnus-put-text-property-excluding-characters-with-faces|gnus-put-text-property-excluding-newlines|gnus-put-text-property|gnus-random-face\n|gnus-random-x-face|gnus-range-add|gnus-read-event-char|gnus-read-group|gnus-read-init-file|gnus-read-method|gnus-read-shell-command\n|gnus-recursive-directory-files|gnus-redefine-select-method-widget|gnus-region-active-p|gnus-registry-handle-action|gnus-registry-initialize\n|gnus-registry-install-hooks|gnus-remassoc|gnus-remove-from-range|gnus-remove-if-not|gnus-remove-if|gnus-remove-image|gnus-remove-text-properties-when\n|gnus-remove-text-with-property|gnus-rename-file|gnus-replace-in-string|gnus-request-article-this-buffer|gnus-request-post|gnus-request-type\n|gnus-rescale-image|gnus-run-hook-with-args|gnus-run-hooks|gnus-run-mode-hooks|gnus-same-method-different-name|gnus-score-adaptive\n|gnus-score-advanced|gnus-score-close|gnus-score-customize|gnus-score-delta-default|gnus-score-file-name|gnus-score-find-trace\n|gnus-score-flush-cache|gnus-score-followup-article|gnus-score-followup-thread|gnus-score-headers|gnus-score-mode|gnus-score-save\n|gnus-secondary-method-p|gnus-seconds-month|gnus-seconds-today|gnus-seconds-year|gnus-select-frame-set-input-focus|gnus-select-lowest-window\n|gnus-server-add-address|gnus-server-equal|gnus-server-extend-method|gnus-server-get-method|gnus-server-server-name|gnus-server-set-info\n|gnus-server-status|gnus-server-string|gnus-server-to-method|gnus-servers-using-backend|gnus-set-active|gnus-set-file-modes|gnus-set-info\n|gnus-set-process-plist|gnus-set-process-query-on-exit-flag|gnus-set-sorted-intersection|gnus-set-window-start|gnus-set-work-buffer\n|gnus-sethash|gnus-short-group-name|gnus-shutdown|gnus-sieve-article-add-rule|gnus-sieve-generate|gnus-sieve-update|gnus-similar-server-opened\n|gnus-simplify-mode-line|gnus-slave-no-server|gnus-slave-unplugged|gnus-slave|gnus-sloppily-equal-method-parameters|gnus-sorted-complement\n|gnus-sorted-difference|gnus-sorted-intersection|gnus-sorted-ndifference|gnus-sorted-nintersection|gnus-sorted-nunion|gnus-sorted-range-intersection\n|gnus-sorted-union|gnus-splash-svg-color-symbols|gnus-splash|gnus-split-references|gnus-start-date-timer|gnus-stop-date-timer|gnus-string-equal\n|gnus-string-mark-left-to-right|gnus-string-match-p|gnus-string-or-1|gnus-string-or|gnus-string-prefix-p|gnus-string-remove-all-properties\n|gnus-string<|gnus-string>|gnus-strip-whitespace|gnus-subscribe-topics|gnus-summary-article-number|gnus-summary-bookmark-jump|gnus-summary-buffer-name\n|gnus-summary-cancel-article|gnus-summary-current-score|gnus-summary-exit|gnus-summary-followup-to-mail-with-original|gnus-summary-followup-to-mail\n|gnus-summary-followup-with-original|gnus-summary-followup|gnus-summary-increase-score|gnus-summary-insert-cached-articles|gnus-summary-insert-line\n|gnus-summary-last-subject|gnus-summary-line-format-spec|gnus-summary-lower-same-subject-and-select|gnus-summary-lower-same-subject\n|gnus-summary-lower-score|gnus-summary-lower-thread|gnus-summary-mail-forward|gnus-summary-mail-other-window|gnus-summary-news-other-window\n|gnus-summary-position-point|gnus-summary-post-forward|gnus-summary-post-news|gnus-summary-raise-same-subject-and-select|gnus-summary-raise-same-subject\n|gnus-summary-raise-score|gnus-summary-raise-thread|gnus-summary-read-group|gnus-summary-reply-with-original|gnus-summary-reply\n|gnus-summary-resend-bounced-mail|gnus-summary-resend-message|gnus-summary-save-article-folder|gnus-summary-save-article-vm|gnus-summary-save-in-folder\n|gnus-summary-save-in-vm|gnus-summary-score-map|gnus-summary-send-map|gnus-summary-set-agent-mark|gnus-summary-set-score|gnus-summary-skip-intangible\n|gnus-summary-supersede-article|gnus-summary-wide-reply-with-original|gnus-summary-wide-reply|gnus-suppress-keymap|gnus-symbolic-argument\n|gnus-sync-initialize|gnus-sync-install-hooks|gnus-time-iso8601|gnus-timer--function|gnus-tool-bar-update|gnus-topic-mode|gnus-topic-remove-group\n|gnus-topic-set-parameters|gnus-treat-article|gnus-treat-from-gravatar|gnus-treat-from-picon|gnus-treat-mail-gravatar|gnus-treat-mail-picon\n|gnus-treat-newsgroups-picon|gnus-tree-close|gnus-tree-open|gnus-try-warping-via-registry|gnus-turn-off-edit-menu|gnus-undo-mode\n|gnus-undo-register|gnus-union|gnus-unplugged|gnus-update-alist-soft|gnus-update-format|gnus-update-read-articles|gnus-url-unhex-string\n|gnus-url-unhex|gnus-use-long-file-name|gnus-user-format-function-D|gnus-user-format-function-d|gnus-uu-decode-binhex-view|gnus-uu-decode-binhex\n|gnus-uu-decode-save-view|gnus-uu-decode-save|gnus-uu-decode-unshar-and-save-view|gnus-uu-decode-unshar-and-save|gnus-uu-decode-unshar-view\n|gnus-uu-decode-unshar|gnus-uu-decode-uu-and-save-view|gnus-uu-decode-uu-and-save|gnus-uu-decode-uu-view|gnus-uu-decode-uu|gnus-uu-delete-work-dir\n|gnus-uu-digest-mail-forward|gnus-uu-digest-post-forward|gnus-uu-extract-map|gnus-uu-invert-processable|gnus-uu-mark-all|gnus-uu-mark-buffer\n|gnus-uu-mark-by-regexp|gnus-uu-mark-map|gnus-uu-mark-over|gnus-uu-mark-region|gnus-uu-mark-series|gnus-uu-mark-sparse|gnus-uu-mark-thread\n|gnus-uu-post-news|gnus-uu-unmark-thread|gnus-version|gnus-virtual-group-p|gnus-visual-p|gnus-window-edges|gnus-window-inside-pixel-edges\n|gnus-with-output-to-file|gnus-write-active-file|gnus-write-buffer|gnus-x-face-from-file|gnus-xmas-define|gnus-xmas-redefine|gnus-xmas-splash\n|gnus-y-or-n-p|gnus-yes-or-no-p|gnus|gnutls-available-p|gnutls-boot|gnutls-bye|gnutls-deinit|gnutls-error-fatalp|gnutls-error-string\n|gnutls-errorp|gnutls-get-initstage|gnutls-message-maybe|gnutls-negotiate|gnutls-peer-status-warning-describe|gnutls-peer-status\n|gomoku--intangible|gomoku-beginning-of-line|gomoku-check-filled-qtuple|gomoku-click|gomoku-crash-game|gomoku-cross-qtuple|gomoku-display-statistics\n|gomoku-emacs-plays|gomoku-end-of-line|gomoku-find-filled-qtuple|gomoku-goto-square|gomoku-goto-xy|gomoku-human-plays|gomoku-human-resigns\n|gomoku-human-takes-back|gomoku-index-to-x|gomoku-index-to-y|gomoku-init-board|gomoku-init-display|gomoku-init-score-table|gomoku-init-square-score\n|gomoku-max-height|gomoku-max-width|gomoku-mode|gomoku-mouse-play|gomoku-move-down|gomoku-move-ne|gomoku-move-nw|gomoku-move-se|gomoku-move-sw\n|gomoku-move-up|gomoku-nb-qtuples|gomoku-offer-a-draw|gomoku-play-move|gomoku-plot-square|gomoku-point-square|gomoku-point-y|gomoku-prompt-for-move\n|gomoku-prompt-for-other-game|gomoku-start-game|gomoku-strongest-square|gomoku-switch-to-window|gomoku-take-back|gomoku-terminate-game\n|gomoku-update-score-in-direction|gomoku-update-score-table|gomoku-xy-to-index|gomoku|goto-address-at-mouse|goto-address-at-point\n|goto-address-find-address-at-point|goto-address-fontify-region|goto-address-fontify|goto-address-mode|goto-address-prog-mode\n|goto-address-unfontify|goto-address|goto-history-element|goto-line|goto-next-locus|gpm-mouse-disable|gpm-mouse-enable|gpm-mouse-mode\n|gpm-mouse-start|gpm-mouse-stop|gravatar-retrieve-synchronously|gravatar-retrieve|grep-apply-setting|grep-compute-defaults|grep-default-command\n|grep-expand-template|grep-filter|grep-find|grep-mode|grep-probe|grep-process-setup|grep-read-files|grep-read-regexp|grep-tag-default\n|grep|gs-height-in-pt|gs-load-image|gs-options|gs-set-ghostview-colors-window-prop|gs-set-ghostview-window-prop|gs-width-in-pt|gud-backward-sexp\n|gud-basic-call|gud-call|gud-common-init|gud-dbx-marker-filter|gud-dbx-massage-args|gud-def|gud-dguxdbx-marker-filter|gud-display-frame\n|gud-display-line|gud-expansion-speedbar-buttons|gud-expr-compound-sep|gud-expr-compound|gud-file-name|gud-filter|gud-find-c-expr\n|gud-find-class|gud-find-expr|gud-find-file|gud-format-command|gud-forward-sexp|gud-gdb-completion-at-point|gud-gdb-completions-1\n|gud-gdb-completions|gud-gdb-fetch-lines-filter|gud-gdb-get-stackframe|gud-gdb-goto-stackframe|gud-gdb-marker-filter|gud-gdb-run-command-fetch-lines\n|gud-gdb|gud-gdbmi-completions|gud-gdbmi-fetch-lines-filter|gud-gdbmi-marker-filter|gud-goto-info|gud-guiler-marker-filter|gud-innermost-expr\n|gud-install-speedbar-variables|gud-irixdbx-marker-filter|gud-jdb-analyze-source|gud-jdb-build-class-source-alist-for-file|gud-jdb-build-class-source-alist\n|gud-jdb-build-source-files-list|gud-jdb-find-source-file|gud-jdb-find-source-using-classpath|gud-jdb-find-source|gud-jdb-marker-filter\n|gud-jdb-massage-args|gud-jdb-parse-classpath-string|gud-jdb-skip-block|gud-jdb-skip-character-literal|gud-jdb-skip-id-ish-thing\n|gud-jdb-skip-single-line-comment|gud-jdb-skip-string-literal|gud-jdb-skip-traditional-or-documentation-comment|gud-jdb-skip-whitespace-and-comments\n|gud-jdb-skip-whitespace|gud-kill-buffer-hook|gud-marker-filter|gud-mipsdbx-marker-filter|gud-mode|gud-next-expr|gud-pdb-marker-filter\n|gud-perldb-marker-filter|gud-perldb-massage-args|gud-prev-expr|gud-query-cmdline|gud-read-address|gud-refresh|gud-reset|gud-sdb-find-file\n|gud-sdb-marker-filter|gud-sentinel|gud-set-buffer|gud-speedbar-buttons|gud-speedbar-item-info|gud-stop-subjob|gud-symbol|gud-tool-bar-item-visible-no-fringe\n|gud-tooltip-activate-mouse-motions-if-enabled|gud-tooltip-activate-mouse-motions|gud-tooltip-change-major-mode|gud-tooltip-dereference\n|gud-tooltip-mode|gud-tooltip-mouse-motion|gud-tooltip-print-command|gud-tooltip-process-output|gud-tooltip-tips|gud-val|gud-watch\n|gud-xdb-marker-filter|gud-xdb-massage-args|gui--selection-value-internal|gui--valid-simple-selection-p|gui-call|gui-get-primary-selection\n|gui-get-selection|gui-method--name|gui-method-declare|gui-method-define|gui-method|gui-select-text|gui-selection-value|gui-set-selection\n|guiler|gv--defsetter|gv--defun-declaration|gv-deref|gv-get|gv-ref|hack-local-variables-apply|hack-local-variables-confirm|hack-local-variables-filter\n|hack-local-variables-prop-line|hack-one-local-variable--obsolete|hack-one-local-variable-constantp|hack-one-local-variable-eval-safep\n|hack-one-local-variable-quotep|hack-one-local-variable|handle-delete-frame|handle-focus-in|handle-focus-out|handle-save-session\n|handle-select-window|handwrite-10pt|handwrite-11pt|handwrite-12pt|handwrite-13pt|handwrite-insert-font|handwrite-insert-header\n|handwrite-insert-info|handwrite-insert-preamble|handwrite-set-pagenumber-off|handwrite-set-pagenumber-on|handwrite-set-pagenumber\n|handwrite|hangul-input-method-activate|hanoi-0|hanoi-goto-char|hanoi-insert-ring|hanoi-internal|hanoi-move-ring|hanoi-n|hanoi-pos-on-tower-p\n|hanoi-put-face|hanoi-ring-to-pos|hanoi-sit-for|hanoi-unix-64|hanoi-unix|hanoi|hash-table-keys|hash-table-values|hashcash-already-paid-p\n|hashcash-cancel-async|hashcash-check-payment|hashcash-generate-payment-async|hashcash-generate-payment|hashcash-insert-payment-async-2\n|hashcash-insert-payment-async|hashcash-insert-payment|hashcash-payment-required|hashcash-payment-to|hashcash-point-at-bol|hashcash-point-at-eol\n|hashcash-processes-running-p|hashcash-strip-quoted-names|hashcash-token-substring|hashcash-verify-payment|hashcash-version|hashcash-wait-async\n|hashcash-wait-or-cancel|he--all-buffers|he-buffer-member|he-capitalize-first|he-concat-directory-file-name|he-dabbrev-beg|he-dabbrev-kill-search\n|he-dabbrev-search|he-file-name-beg|he-init-string|he-kill-beg|he-line-beg|he-line-search-regexp|he-line-search|he-lisp-symbol-beg\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nhe-list-beg|he-list-search|he-ordinary-case-p|he-reset-string|he-string-member|he-substitute-string|he-transfer-case|he-whole-kill-search\n|hebrew-font-get-precomposed|hebrew-shape-gstring|help--binding-locus|help--key-binding-keymap|help-C-file-name|help-add-fundoc-usage\n|help-at-pt-cancel-timer|help-at-pt-kbd-string|help-at-pt-maybe-display|help-at-pt-set-timer|help-at-pt-string|help-bookmark-jump\n|help-bookmark-make-record|help-button-action|help-describe-category-set|help-do-arg-highlight|help-do-xref|help-fns--autoloaded-p\n|help-fns--compiler-macro|help-fns--interactive-only|help-fns--key-bindings|help-fns--obsolete|help-fns--parent-mode|help-fns--signature\n|help-follow-mouse|help-follow-symbol|help-follow|help-for-help-internal-doc|help-for-help-internal|help-for-help|help-form-show\n|help-function-arglist|help-go-back|help-go-forward|help-highlight-arg|help-highlight-arguments|help-insert-string|help-insert-xref-button\n|help-key-description|help-make-usage|help-make-xrefs|help-mode-finish|help-mode-menu|help-mode-revert-buffer|help-mode-setup|help-mode\n|help-print-return-message|help-quit|help-split-fundoc|help-window-display-message|help-window-setup|help-with-tutorial-spec-language\n|help-with-tutorial|help-xref-button|help-xref-go-back|help-xref-go-forward|help-xref-interned|help-xref-on-pp|help|hexl-C-c-prefix\n|hexl-C-x-prefix|hexl-ESC-prefix|hexl-activate-ruler|hexl-address-to-marker|hexl-ascii-start-column|hexl-backward-char|hexl-backward-short\n|hexl-backward-word|hexl-beginning-of-1k-page|hexl-beginning-of-512b-page|hexl-beginning-of-buffer|hexl-beginning-of-line|hexl-char-after-point\n|hexl-current-address|hexl-end-of-1k-page|hexl-end-of-512b-page|hexl-end-of-buffer|hexl-end-of-line|hexl-find-file|hexl-follow-ascii-find\n|hexl-follow-ascii|hexl-follow-line|hexl-forward-char|hexl-forward-short|hexl-forward-word|hexl-goto-address|hexl-goto-hex-address\n|hexl-hex-char-to-integer|hexl-hex-string-to-integer|hexl-highlight-line-range|hexl-htoi|hexl-insert-char|hexl-insert-decimal-char\n|hexl-insert-hex-char|hexl-insert-hex-string|hexl-insert-multibyte-char|hexl-insert-octal-char|hexl-isearch-search-function|hexl-line-displen\n|hexl-maybe-dehexlify-buffer|hexl-menu|hexl-mode--minor-mode-p|hexl-mode--setq-local|hexl-mode-exit|hexl-mode-ruler|hexl-mode|hexl-next-line\n|hexl-oct-char-to-integer|hexl-octal-string-to-integer|hexl-options|hexl-previous-line|hexl-print-current-point-info|hexl-printable-character\n|hexl-quoted-insert|hexl-revert-buffer-function|hexl-rulerize|hexl-save-buffer|hexl-scroll-down|hexl-scroll-up|hexl-self-insert-command\n|hexlify-buffer|hfy-begin-span|hfy-bgcol|hfy-box-to-border-assoc|hfy-box-to-style|hfy-box|hfy-buffer|hfy-colour-vals|hfy-colour|hfy-combined-face-spec\n|hfy-compile-face-map|hfy-compile-stylesheet|hfy-copy-and-fontify-file|hfy-css-name|hfy-decor|hfy-default-footer|hfy-default-header\n|hfy-dirname|hfy-end-span|hfy-face-at|hfy-face-attr-for-class|hfy-face-or-def-to-name|hfy-face-resolve-face|hfy-face-to-css-default\n|hfy-face-to-style-i|hfy-face-to-style|hfy-fallback-colour-values|hfy-family|hfy-find-invisible-ranges|hfy-flatten-style|hfy-fontified-p\n|hfy-fontify-buffer|hfy-force-fontification|hfy-href-stub|hfy-href|hfy-html-dekludge-buffer|hfy-html-enkludge-buffer|hfy-html-quote\n|hfy-init-progn|hfy-initfile|hfy-interq|hfy-invisible-name|hfy-invisible|hfy-kludge-cperl-mode|hfy-link-style-string|hfy-link-style\n|hfy-list-files|hfy-load-tags-cache|hfy-lookup|hfy-make-directory|hfy-mark-tag-hrefs|hfy-mark-tag-names|hfy-mark-trailing-whitespace\n|hfy-merge-adjacent-spans|hfy-opt|hfy-overlay-props-at|hfy-parse-tags-buffer|hfy-prepare-index-i|hfy-prepare-index|hfy-prepare-tag-map\n|hfy-prop-invisible-p|hfy-relstub|hfy-save-buffer-state|hfy-save-initvar|hfy-save-kill-buffers|hfy-shell|hfy-size-to-int|hfy-size\n|hfy-slant|hfy-sprintf-stylesheet|hfy-subtract-maps|hfy-tags-for-file|hfy-text-p|hfy-triplet|hfy-unmark-trailing-whitespace|hfy-weight\n|hfy-which-etags|hfy-width|hfy-word-regex|hi-lock--hashcons|hi-lock--regexps-at-point|hi-lock-face-buffer|hi-lock-face-phrase-buffer\n|hi-lock-face-symbol-at-point|hi-lock-find-patterns|hi-lock-font-lock-hook|hi-lock-keyword->face|hi-lock-line-face-buffer|hi-lock-mode-set-explicitly\n|hi-lock-mode|hi-lock-process-phrase|hi-lock-read-face-name|hi-lock-regexp-okay|hi-lock-set-file-patterns|hi-lock-set-pattern|hi-lock-unface-buffer\n|hi-lock-unload-function|hi-lock-write-interactive-patterns|hide-body|hide-entry|hide-ifdef-block|hide-ifdef-define|hide-ifdef-guts\n|hide-ifdef-mode-menu|hide-ifdef-mode|hide-ifdef-region-internal|hide-ifdef-region|hide-ifdef-set-define-alist|hide-ifdef-toggle-outside-read-only\n|hide-ifdef-toggle-read-only|hide-ifdef-toggle-shadowing|hide-ifdef-undef|hide-ifdef-use-define-alist|hide-ifdefs|hide-leaves|hide-other\n|hide-region-body|hide-sublevels|hide-subtree|hif-add-new-defines|hif-after-revert-function|hif-and-expr|hif-and|hif-canonicalize-tokens\n|hif-canonicalize|hif-clear-all-ifdef-defined|hif-comma|hif-comp-expr|hif-compress-define-list|hif-conditional|hif-define-macro\n|hif-define-operator|hif-defined|hif-delimit|hif-divide|hif-end-of-line|hif-endif-to-ifdef|hif-eq-expr|hif-equal|hif-evaluate-macro\n|hif-evaluate-region|hif-expand-token-list|hif-expr|hif-exprlist|hif-factor|hif-find-any-ifX|hif-find-define|hif-find-ifdef-block\n|hif-find-next-relevant|hif-find-previous-relevant|hif-find-range|hif-flatten|hif-get-argument-list|hif-greater-equal|hif-greater\n|hif-hide-line|hif-if-valid-identifier-p|hif-ifdef-to-endif|hif-invoke|hif-less-equal|hif-less|hif-logand-expr|hif-logand|hif-logior-expr\n|hif-logior|hif-lognot|hif-logshift-expr|hif-logxor-expr|hif-logxor|hif-looking-at-elif|hif-looking-at-else|hif-looking-at-endif\n|hif-looking-at-ifX|hif-lookup|hif-macro-supply-arguments|hif-make-range|hif-math|hif-mathify-binop|hif-mathify|hif-merge-ifdef-region\n|hif-minus|hif-modulo|hif-muldiv-expr|hif-multiply|hif-nexttoken|hif-not|hif-notequal|hif-or-expr|hif-or|hif-parse-exp|hif-parse-macro-arglist\n|hif-place-macro-invocation|hif-plus|hif-possibly-hide|hif-range-elif|hif-range-else|hif-range-end|hif-range-start|hif-recurse-on\n|hif-set-var|hif-shiftleft|hif-shiftright|hif-show-all|hif-show-ifdef-region|hif-string-concatenation|hif-string-to-number|hif-stringify\n|hif-token-concat|hif-token-concatenation|hif-token-stringification|hif-tokenize|hif-undefine-symbol|highlight-changes-mode-set-explicitly\n|highlight-changes-mode-turn-on|highlight-changes-mode|highlight-changes-next-change|highlight-changes-previous-change|highlight-changes-remove-highlight\n|highlight-changes-rotate-faces|highlight-changes-visible-mode|highlight-compare-buffers|highlight-compare-with-file|highlight-lines-matching-regexp\n|highlight-markup-buffers|highlight-phrase|highlight-regexp|highlight-symbol-at-point|hilit-chg-bump-change|hilit-chg-clear|hilit-chg-cust-fix-changes-face-list\n|hilit-chg-desktop-restore|hilit-chg-display-changes|hilit-chg-fixup|hilit-chg-get-diff-info|hilit-chg-get-diff-list-hk|hilit-chg-hide-changes\n|hilit-chg-make-list|hilit-chg-make-ov|hilit-chg-map-changes|hilit-chg-set-face-on-change|hilit-chg-set|hilit-chg-unload-function\n|hilit-chg-update|hippie-expand|hl-line-highlight|hl-line-make-overlay|hl-line-mode|hl-line-move|hl-line-unhighlight|hl-line-unload-function\n|hmac-md5-96|hmac-md5|holiday-list|holidays|horizontal-scroll-bar-mode|horizontal-scroll-bars-available-p|how-many|hs-already-hidden-p\n|hs-c-like-adjust-block-beginning|hs-discard-overlays|hs-find-block-beginning|hs-forward-sexp|hs-grok-mode-type|hs-hide-all|hs-hide-block-at-point\n|hs-hide-block|hs-hide-comment-region|hs-hide-initial-comment-block|hs-hide-level-recursive|hs-hide-level|hs-inside-comment-p|hs-isearch-show-temporary\n|hs-isearch-show|hs-life-goes-on|hs-looking-at-block-start-p|hs-make-overlay|hs-minor-mode-menu|hs-minor-mode|hs-mouse-toggle-hiding\n|hs-overlay-at|hs-show-all|hs-show-block|hs-toggle-hiding|html-autoview-mode|html-checkboxes|html-current-defun-name|html-headline-1\n|html-headline-2|html-headline-3|html-headline-4|html-headline-5|html-headline-6|html-horizontal-rule|html-href-anchor|html-image\n|html-imenu-index|html-line|html-list-item|html-mode|html-name-anchor|html-ordered-list|html-paragraph|html-radio-buttons|html-unordered-list\n|html2text|htmlfontify-buffer|htmlfontify-copy-and-link-dir|htmlfontify-load-initfile|htmlfontify-load-rgb-file|htmlfontify-run-etags\n|htmlfontify-save-initfile|htmlfontify-string|htmlize-attrlist-to-fstruct|htmlize-buffer-1|htmlize-buffer-substring-no-invisible\n|htmlize-buffer|htmlize-color-to-rgb|htmlize-copy-attr-if-set|htmlize-css-insert-head|htmlize-css-insert-text|htmlize-css-specs\n|htmlize-defang-local-variables|htmlize-default-body-tag|htmlize-default-doctype|htmlize-despam-address|htmlize-ensure-fontified\n|htmlize-face-background|htmlize-face-color-internal|htmlize-face-emacs21-attr|htmlize-face-foreground|htmlize-face-list-p|htmlize-face-size\n|htmlize-face-specifies-property|htmlize-face-to-fstruct|htmlize-faces-at-point|htmlize-faces-in-buffer|htmlize-file|htmlize-font-body-tag\n|htmlize-font-insert-text|htmlize-fstruct-background--cmacro|htmlize-fstruct-background|htmlize-fstruct-boldp--cmacro|htmlize-fstruct-boldp\n|htmlize-fstruct-css-name--cmacro|htmlize-fstruct-css-name|htmlize-fstruct-foreground--cmacro|htmlize-fstruct-foreground|htmlize-fstruct-italicp--cmacro\n|htmlize-fstruct-italicp|htmlize-fstruct-overlinep--cmacro|htmlize-fstruct-overlinep|htmlize-fstruct-p--cmacro|htmlize-fstruct-p\n|htmlize-fstruct-size--cmacro|htmlize-fstruct-size|htmlize-fstruct-strikep--cmacro|htmlize-fstruct-strikep|htmlize-fstruct-underlinep--cmacro\n|htmlize-fstruct-underlinep|htmlize-get-color-rgb-hash|htmlize-inline-css-body-tag|htmlize-inline-css-insert-text|htmlize-locate-file\n|htmlize-make-face-map|htmlize-make-file-name|htmlize-make-hyperlinks|htmlize-many-files-dired|htmlize-many-files|htmlize-memoize\n|htmlize-merge-faces|htmlize-merge-size|htmlize-merge-two-faces|htmlize-method-function|htmlize-method|htmlize-next-change|htmlize-protect-string\n|htmlize-region-for-paste|htmlize-region|htmlize-trim-ellipsis|htmlize-unstringify-face|htmlize-untabify|htmlize-with-fontify-message\n|ibuffer-active-formats-name|ibuffer-add-saved-filters|ibuffer-add-to-tmp-hide|ibuffer-add-to-tmp-show|ibuffer-assert-ibuffer-mode\n|ibuffer-auto-mode|ibuffer-backward-filter-group|ibuffer-backward-line|ibuffer-backwards-next-marked|ibuffer-bs-show|ibuffer-buf-matches-predicates\n|ibuffer-buffer-file-name|ibuffer-buffer-name-face|ibuffer-buffer-names-with-mark|ibuffer-bury-buffer|ibuffer-check-formats|ibuffer-clear-filter-groups\n|ibuffer-clear-summary-columns|ibuffer-columnize-and-insert-list|ibuffer-compile-format|ibuffer-compile-make-eliding-form|ibuffer-compile-make-format-form\n|ibuffer-compile-make-substring-form|ibuffer-confirm-operation-on|ibuffer-copy-filename-as-kill|ibuffer-count-deletion-lines\n|ibuffer-count-marked-lines|ibuffer-current-buffer|ibuffer-current-buffers-with-marks|ibuffer-current-format|ibuffer-current-formats\n|ibuffer-current-mark|ibuffer-current-state-list|ibuffer-customize|ibuffer-decompose-filter-group|ibuffer-decompose-filter|ibuffer-delete-saved-filter-groups\n|ibuffer-delete-saved-filters|ibuffer-deletion-marked-buffer-names|ibuffer-diff-with-file|ibuffer-do-delete|ibuffer-do-eval|ibuffer-do-isearch-regexp\n|ibuffer-do-isearch|ibuffer-do-kill-lines|ibuffer-do-kill-on-deletion-marks|ibuffer-do-occur|ibuffer-do-print|ibuffer-do-query-replace-regexp\n|ibuffer-do-query-replace|ibuffer-do-rename-uniquely|ibuffer-do-replace-regexp|ibuffer-do-revert|ibuffer-do-save|ibuffer-do-shell-command-file\n|ibuffer-do-shell-command-pipe-replace|ibuffer-do-shell-command-pipe|ibuffer-do-sort-by-alphabetic|ibuffer-do-sort-by-filename\\/process\n|ibuffer-do-sort-by-major-mode|ibuffer-do-sort-by-mode-name|ibuffer-do-sort-by-recency|ibuffer-do-sort-by-size|ibuffer-do-toggle-modified\n|ibuffer-do-toggle-read-only|ibuffer-do-view-1|ibuffer-do-view-and-eval|ibuffer-do-view-horizontally|ibuffer-do-view-other-frame\n|ibuffer-do-view|ibuffer-exchange-filters|ibuffer-expand-format-entry|ibuffer-filter-buffers|ibuffer-filter-by-content|ibuffer-filter-by-derived-mode\n|ibuffer-filter-by-filename|ibuffer-filter-by-mode|ibuffer-filter-by-name|ibuffer-filter-by-predicate|ibuffer-filter-by-size-gt\n|ibuffer-filter-by-size-lt|ibuffer-filter-by-used-mode|ibuffer-filter-disable|ibuffer-filters-to-filter-group|ibuffer-find-file\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nibuffer-format-column|ibuffer-forward-filter-group|ibuffer-forward-line|ibuffer-forward-next-marked|ibuffer-get-marked-buffers\n|ibuffer-included-in-filters-p|ibuffer-insert-buffer-line|ibuffer-insert-filter-group|ibuffer-interactive-filter-by-mode|ibuffer-invert-sorting\n|ibuffer-jump-to-buffer|ibuffer-jump-to-filter-group|ibuffer-kill-filter-group|ibuffer-kill-line|ibuffer-list-buffers|ibuffer-make-column-filename-and-process\n|ibuffer-make-column-filename|ibuffer-make-column-process|ibuffer-map-deletion-lines|ibuffer-map-lines-nomodify|ibuffer-map-lines\n|ibuffer-map-marked-lines|ibuffer-map-on-mark|ibuffer-mark-by-file-name-regexp|ibuffer-mark-by-mode-regexp|ibuffer-mark-by-mode\n|ibuffer-mark-by-name-regexp|ibuffer-mark-compressed-file-buffers|ibuffer-mark-dired-buffers|ibuffer-mark-dissociated-buffers\n|ibuffer-mark-for-delete-backwards|ibuffer-mark-for-delete|ibuffer-mark-forward|ibuffer-mark-help-buffers|ibuffer-mark-interactive\n|ibuffer-mark-modified-buffers|ibuffer-mark-old-buffers|ibuffer-mark-read-only-buffers|ibuffer-mark-special-buffers|ibuffer-mark-unsaved-buffers\n|ibuffer-marked-buffer-names|ibuffer-mode|ibuffer-mouse-filter-by-mode|ibuffer-mouse-popup-menu|ibuffer-mouse-toggle-filter-group\n|ibuffer-mouse-toggle-mark|ibuffer-mouse-visit-buffer|ibuffer-negate-filter|ibuffer-or-filter|ibuffer-other-window|ibuffer-pop-filter-group\n|ibuffer-pop-filter|ibuffer-recompile-formats|ibuffer-redisplay-current|ibuffer-redisplay-engine|ibuffer-redisplay|ibuffer-save-filter-groups\n|ibuffer-save-filters|ibuffer-set-filter-groups-by-mode|ibuffer-set-mark-1|ibuffer-set-mark|ibuffer-shrink-to-fit|ibuffer-skip-properties\n|ibuffer-sort-bufferlist|ibuffer-switch-format|ibuffer-switch-to-saved-filter-groups|ibuffer-switch-to-saved-filters|ibuffer-toggle-filter-group\n|ibuffer-toggle-marks|ibuffer-toggle-sorting-mode|ibuffer-unmark-all|ibuffer-unmark-backward|ibuffer-unmark-forward|ibuffer-update-format\n|ibuffer-update-title-and-summary|ibuffer-update|ibuffer-visible-p|ibuffer-visit-buffer-1-window|ibuffer-visit-buffer-other-frame\n|ibuffer-visit-buffer-other-window-noselect|ibuffer-visit-buffer-other-window|ibuffer-visit-buffer|ibuffer-visit-tags-table|ibuffer-yank-filter-group\n|ibuffer-yank|ibuffer|icalendar--add-decoded-times|icalendar--add-diary-entry|icalendar--all-events|icalendar--convert-all-timezones\n|icalendar--convert-anniversary-to-ical|icalendar--convert-block-to-ical|icalendar--convert-cyclic-to-ical|icalendar--convert-date-to-ical\n|icalendar--convert-float-to-ical|icalendar--convert-ical-to-diary|icalendar--convert-non-recurring-all-day-to-diary|icalendar--convert-non-recurring-not-all-day-to-diary\n|icalendar--convert-ordinary-to-ical|icalendar--convert-recurring-to-diary|icalendar--convert-sexp-to-ical|icalendar--convert-string-for-export\n|icalendar--convert-string-for-import|icalendar--convert-to-ical|icalendar--convert-tz-offset|icalendar--convert-weekly-to-ical\n|icalendar--convert-yearly-to-ical|icalendar--create-ical-alarm|icalendar--create-uid|icalendar--date-to-isodate|icalendar--datestring-to-isodate\n|icalendar--datetime-to-american-date|icalendar--datetime-to-colontime|icalendar--datetime-to-diary-date|icalendar--datetime-to-european-date\n|icalendar--datetime-to-iso-date|icalendar--datetime-to-noneuropean-date|icalendar--decode-isodatetime|icalendar--decode-isoduration\n|icalendar--diarytime-to-isotime|icalendar--dmsg|icalendar--do-create-ical-alarm|icalendar--find-time-zone|icalendar--format-ical-event\n|icalendar--get-children|icalendar--get-event-properties|icalendar--get-event-property-attributes|icalendar--get-event-property\n|icalendar--get-month-number|icalendar--get-unfolded-buffer|icalendar--get-weekday-abbrev|icalendar--get-weekday-number|icalendar--get-weekday-numbers\n|icalendar--parse-summary-and-rest|icalendar--parse-vtimezone|icalendar--read-element|icalendar--rris|icalendar--split-value|icalendar-convert-diary-to-ical\n|icalendar-export-file|icalendar-export-region|icalendar-extract-ical-from-buffer|icalendar-first-weekday-of-year|icalendar-import-buffer\n|icalendar-import-file|icalendar-import-format-sample|icomplete--completion-predicate|icomplete--completion-table|icomplete--field-beg\n|icomplete--field-end|icomplete--field-string|icomplete--in-region-setup|icomplete-backward-completions|icomplete-completions\n|icomplete-exhibit|icomplete-forward-completions|icomplete-minibuffer-setup|icomplete-mode|icomplete-post-command-hook|icomplete-pre-command-hook\n|icomplete-simple-completing-p|icomplete-tidy|icon-backward-to-noncomment|icon-backward-to-start-of-continued-exp|icon-backward-to-start-of-if\n|icon-comment-indent|icon-forward-sexp-function|icon-indent-command|icon-indent-line|icon-is-continuation-line|icon-is-continued-line\n|icon-mode|iconify-or-deiconify-frame|idl-font-lock-keywords-2|idl-font-lock-keywords-3|idl-font-lock-keywords|idl-mode|idlwave-action-and-binding\n|idlwave-active-rinfo-space|idlwave-add-file-link-selector|idlwave-after-successful-completion|idlwave-all-assq|idlwave-all-class-inherits\n|idlwave-all-class-tags|idlwave-all-method-classes|idlwave-all-method-keyword-classes|idlwave-any-syslib|idlwave-attach-class-tag-classes\n|idlwave-attach-classes|idlwave-attach-keyword-classes|idlwave-attach-method-classes|idlwave-auto-fill-mode|idlwave-auto-fill\n|idlwave-backward-block|idlwave-backward-up-block|idlwave-beginning-of-block|idlwave-beginning-of-statement|idlwave-beginning-of-subprogram\n|idlwave-best-rinfo-assoc|idlwave-best-rinfo-assq|idlwave-block-jump-out|idlwave-block-master|idlwave-calc-hanging-indent|idlwave-calculate-cont-indent\n|idlwave-calculate-indent|idlwave-calculate-paren-indent|idlwave-call-special|idlwave-case|idlwave-check-abbrev|idlwave-choose-completion\n|idlwave-choose|idlwave-class-alist|idlwave-class-file-or-buffer|idlwave-class-found-in|idlwave-class-info|idlwave-class-inherits\n|idlwave-class-or-superclass-with-tag|idlwave-class-tag-reset|idlwave-class-tags|idlwave-close-block|idlwave-code-abbrev|idlwave-command-hook\n|idlwave-comment-hook|idlwave-complete-class-structure-tag-help|idlwave-complete-class-structure-tag|idlwave-complete-class|idlwave-complete-filename\n|idlwave-complete-in-buffer|idlwave-complete-sysvar-help|idlwave-complete-sysvar-or-tag|idlwave-complete-sysvar-tag-help|idlwave-complete\n|idlwave-completing-read|idlwave-completion-fontify-classes|idlwave-concatenate-rinfo-lists|idlwave-context-help|idlwave-convert-xml-clean-routine-aliases\n|idlwave-convert-xml-clean-statement-aliases|idlwave-convert-xml-clean-sysvar-aliases|idlwave-convert-xml-system-routine-info\n|idlwave-count-eq|idlwave-count-memq|idlwave-count-outlawed-buffers|idlwave-create-customize-menu|idlwave-create-user-catalog-file\n|idlwave-current-indent|idlwave-current-routine-fullname|idlwave-current-routine|idlwave-current-statement-indent|idlwave-custom-ampersand-surround\n|idlwave-custom-ltgtr-surround|idlwave-customize|idlwave-debug-map|idlwave-default-choose-completion|idlwave-default-insert-timestamp\n|idlwave-define-abbrev|idlwave-delete-user-catalog-file|idlwave-determine-class|idlwave-display-calling-sequence|idlwave-display-completion-list-emacs\n|idlwave-display-completion-list-xemacs|idlwave-display-completion-list|idlwave-display-user-catalog-widget|idlwave-do-action\n|idlwave-do-context-help|idlwave-do-context-help1|idlwave-do-find-module|idlwave-do-kill-autoloaded-buffers|idlwave-do-mouse-completion-help\n|idlwave-doc-header|idlwave-doc-modification|idlwave-down-block|idlwave-downcase-safe|idlwave-edit-in-idlde|idlwave-elif|idlwave-end-of-block\n|idlwave-end-of-statement|idlwave-end-of-statement0|idlwave-end-of-subprogram|idlwave-entry-find-keyword|idlwave-entry-has-help\n|idlwave-entry-keywords|idlwave-expand-equal|idlwave-expand-keyword|idlwave-expand-lib-file-name|idlwave-expand-path|idlwave-expand-region-abbrevs\n|idlwave-explicit-class-listed|idlwave-fill-paragraph|idlwave-find-class-definition|idlwave-find-file-noselect|idlwave-find-inherited-class\n|idlwave-find-key|idlwave-find-module-this-file|idlwave-find-module|idlwave-find-struct-tag|idlwave-find-structure-definition\n|idlwave-fix-keywords|idlwave-fix-module-if-obj_new|idlwave-font-lock-fontify-region|idlwave-for|idlwave-forward-block|idlwave-function-menu\n|idlwave-function|idlwave-get-buffer-routine-info|idlwave-get-buffer-visiting|idlwave-get-routine-info-from-buffers|idlwave-goto-comment\n|idlwave-grep|idlwave-hard-tab|idlwave-has-help|idlwave-help-assistant-available|idlwave-help-assistant-close|idlwave-help-assistant-command\n|idlwave-help-assistant-help-with-topic|idlwave-help-assistant-open-link|idlwave-help-assistant-raise|idlwave-help-assistant-start\n|idlwave-help-check-locations|idlwave-help-diagnostics|idlwave-help-display-help-window|idlwave-help-error|idlwave-help-find-first-header\n|idlwave-help-find-header|idlwave-help-find-in-doc-header|idlwave-help-find-routine-definition|idlwave-help-fontify|idlwave-help-get-help-buffer\n|idlwave-help-get-special-help|idlwave-help-html-link|idlwave-help-menu|idlwave-help-mode|idlwave-help-quit|idlwave-help-return-to-calling-frame\n|idlwave-help-select-help-frame|idlwave-help-show-help-frame|idlwave-help-toggle-header-match-and-def|idlwave-help-toggle-header-top-and-def\n|idlwave-help-with-source|idlwave-highlight-linked-completions|idlwave-html-help-location|idlwave-if|idlwave-in-comment|idlwave-in-quote\n|idlwave-in-structure|idlwave-indent-and-action|idlwave-indent-left-margin|idlwave-indent-line|idlwave-indent-statement|idlwave-indent-subprogram\n|idlwave-indent-to|idlwave-info|idlwave-insert-source-location|idlwave-is-comment-line|idlwave-is-comment-or-empty-line|idlwave-is-continuation-line\n|idlwave-is-pointer-dereference|idlwave-keyboard-quit|idlwave-keyword-abbrev|idlwave-kill-autoloaded-buffers|idlwave-kill-buffer-update\n|idlwave-last-valid-char|idlwave-launch-idlhelp|idlwave-lib-p|idlwave-list-abbrevs|idlwave-list-all-load-path-shadows|idlwave-list-buffer-load-path-shadows\n|idlwave-list-load-path-shadows|idlwave-list-shell-load-path-shadows|idlwave-load-all-rinfo|idlwave-load-rinfo-next-step|idlwave-load-system-routine-info\n|idlwave-local-value|idlwave-locate-lib-file|idlwave-look-at|idlwave-make-force-complete-where-list|idlwave-make-full-name|idlwave-make-modified-completion-map-emacs\n|idlwave-make-modified-completion-map-xemacs|idlwave-make-one-key-alist|idlwave-make-space|idlwave-make-tags|idlwave-mark-block\n|idlwave-mark-doclib|idlwave-mark-statement|idlwave-mark-subprogram|idlwave-match-class-arrows|idlwave-members-only|idlwave-min-current-statement-indent\n|idlwave-mode-debug-menu|idlwave-mode-menu|idlwave-mode|idlwave-mouse-active-rinfo-right|idlwave-mouse-active-rinfo-shift|idlwave-mouse-active-rinfo\n|idlwave-mouse-choose-completion|idlwave-mouse-completion-help|idlwave-mouse-context-help|idlwave-new-buffer-update|idlwave-new-sintern-type\n|idlwave-newline|idlwave-next-statement|idlwave-nonmembers-only|idlwave-one-key-select|idlwave-online-help|idlwave-parse-definition\n|idlwave-path-alist-add-flag|idlwave-path-alist-remove-flag|idlwave-popup-select|idlwave-prepare-class-tag-completion|idlwave-prev-index-position\n|idlwave-previous-statement|idlwave-print-source|idlwave-procedure|idlwave-process-sysvars|idlwave-quit-help|idlwave-quoted|idlwave-read-paths\n|idlwave-recursive-directory-list|idlwave-region-active-p|idlwave-repeat|idlwave-replace-buffer-routine-info|idlwave-replace-string\n|idlwave-rescan-asynchronously|idlwave-rescan-catalog-directories|idlwave-reset-sintern-type|idlwave-reset-sintern|idlwave-resolve\n|idlwave-restore-wconf-after-completion|idlwave-revoke-license-to-kill|idlwave-rinfo-assoc|idlwave-rinfo-assq-any-class|idlwave-rinfo-assq\n|idlwave-rinfo-group-keywords|idlwave-rinfo-insert-keyword|idlwave-routine-entry-compare-twins|idlwave-routine-entry-compare\n|idlwave-routine-info|idlwave-routine-source-file|idlwave-routine-twin-compare|idlwave-routine-twins|idlwave-routines|idlwave-rw-case\n|idlwave-save-buffer-update|idlwave-save-routine-info|idlwave-scan-class-info|idlwave-scan-library-catalogs|idlwave-scan-user-lib-files\n|idlwave-scroll-completions|idlwave-selector|idlwave-set-local|idlwave-setup|idlwave-shell-break-here|idlwave-shell-compile-helper-routines\n|idlwave-shell-filter-sysvars|idlwave-shell-recenter-shell-window|idlwave-shell-run-region|idlwave-shell-save-and-run|idlwave-shell-send-command\n|idlwave-shell-show-commentary|idlwave-shell-update-routine-info|idlwave-shell|idlwave-shorten-syntax|idlwave-show-begin-check\n|idlwave-show-begin|idlwave-show-commentary|idlwave-show-matching-quote|idlwave-sintern-class-info|idlwave-sintern-class-tag|idlwave-sintern-class\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nidlwave-sintern-dir|idlwave-sintern-keyword-list|idlwave-sintern-keyword|idlwave-sintern-libname|idlwave-sintern-method|idlwave-sintern-rinfo-list\n|idlwave-sintern-routine-or-method|idlwave-sintern-routine|idlwave-sintern-set|idlwave-sintern-sysvar-alist|idlwave-sintern-sysvar\n|idlwave-sintern-sysvartag|idlwave-sintern|idlwave-skip-label-or-case|idlwave-skip-multi-commands|idlwave-skip-object|idlwave-special-lib-test\n|idlwave-split-line|idlwave-split-link-target|idlwave-split-menu-emacs|idlwave-split-menu-xemacs|idlwave-split-string|idlwave-start-load-rinfo-timer\n|idlwave-start-of-substatement|idlwave-statement-type|idlwave-struct-borders|idlwave-struct-inherits|idlwave-struct-tags|idlwave-study-twins\n|idlwave-substitute-link-target|idlwave-surround|idlwave-switch|idlwave-sys-dir|idlwave-syslib-p|idlwave-syslib-scanned-p|idlwave-sysvars-reset\n|idlwave-template|idlwave-this-word|idlwave-toggle-comment-region|idlwave-true-path-alist|idlwave-uniquify|idlwave-unit-name|idlwave-update-buffer-routine-info\n|idlwave-update-current-buffer-info|idlwave-update-routine-info|idlwave-user-catalog-command-hook|idlwave-what-function|idlwave-what-module-find-class\n|idlwave-what-module|idlwave-what-procedure|idlwave-where|idlwave-while|idlwave-widget-scan-user-lib-files|idlwave-with-special-syntax\n|idlwave-write-paths|idlwave-xml-create-class-method-lists|idlwave-xml-create-rinfo-list|idlwave-xml-create-sysvar-alist|idlwave-xml-system-routine-info-up-to-date\n|idlwave-xor|idna-to-ascii|ido-active|ido-add-virtual-buffers-to-list|ido-all-completions|ido-buffer-internal|ido-buffer-window-other-frame\n|ido-bury-buffer-at-head|ido-cache-ftp-valid|ido-cache-unc-valid|ido-choose-completion-string|ido-chop|ido-common-initialization\n|ido-complete-space|ido-complete|ido-completing-read|ido-completion-help|ido-completions|ido-copy-current-file-name|ido-copy-current-word\n|ido-delete-backward-updir|ido-delete-backward-word-updir|ido-delete-file-at-head|ido-directory-too-big-p|ido-dired|ido-display-buffer\n|ido-display-file|ido-edit-input|ido-enter-dired|ido-enter-find-file|ido-enter-insert-buffer|ido-enter-insert-file|ido-enter-switch-buffer\n|ido-everywhere|ido-exhibit|ido-existing-item-p|ido-exit-minibuffer|ido-expand-directory|ido-fallback-command|ido-file-extension-aux\n|ido-file-extension-lessp|ido-file-extension-order|ido-file-internal|ido-file-lessp|ido-file-name-all-completions-1|ido-file-name-all-completions\n|ido-final-slash|ido-find-alternate-file|ido-find-common-substring|ido-find-file-in-dir|ido-find-file-other-frame|ido-find-file-other-window\n|ido-find-file-read-only-other-frame|ido-find-file-read-only-other-window|ido-find-file-read-only|ido-find-file|ido-flatten-merged-list\n|ido-forget-work-directory|ido-fractionp|ido-get-buffers-in-frames|ido-get-bufname|ido-get-work-directory|ido-get-work-file|ido-ignore-item-p\n|ido-init-completion-maps|ido-initiate-auto-merge|ido-insert-buffer|ido-insert-file|ido-is-ftp-directory|ido-is-root-directory\n|ido-is-slow-ftp-host|ido-is-tramp-root|ido-is-unc-host|ido-is-unc-root|ido-kill-buffer-at-head|ido-kill-buffer|ido-kill-emacs-hook\n|ido-list-directory|ido-load-history|ido-local-file-exists-p|ido-magic-backward-char|ido-magic-delete-char|ido-magic-forward-char\n|ido-make-buffer-list-1|ido-make-buffer-list|ido-make-choice-list|ido-make-dir-list-1|ido-make-dir-list|ido-make-directory|ido-make-file-list-1\n|ido-make-file-list|ido-make-merged-file-list-1|ido-make-merged-file-list|ido-make-prompt|ido-makealist|ido-may-cache-directory\n|ido-merge-work-directories|ido-minibuffer-setup|ido-mode|ido-name|ido-next-match-dir|ido-next-match|ido-next-work-directory|ido-next-work-file\n|ido-no-final-slash|ido-nonreadable-directory-p|ido-pop-dir|ido-pp|ido-prev-match-dir|ido-prev-match|ido-prev-work-directory|ido-prev-work-file\n|ido-push-dir-first|ido-push-dir|ido-read-buffer|ido-read-directory-name|ido-read-file-name|ido-read-internal|ido-record-command\n|ido-record-work-directory|ido-record-work-file|ido-remove-cached-dir|ido-reread-directory|ido-restrict-to-matches|ido-save-history\n|ido-select-text|ido-set-common-completion|ido-set-current-directory|ido-set-current-home|ido-set-matches-1|ido-set-matches|ido-setup-completion-map\n|ido-sort-merged-list|ido-summary-buffers-to-end|ido-switch-buffer-other-frame|ido-switch-buffer-other-window|ido-switch-buffer\n|ido-take-first-match|ido-tidy|ido-time-stamp|ido-to-end|ido-toggle-case|ido-toggle-ignore|ido-toggle-literal|ido-toggle-prefix|ido-toggle-regexp\n|ido-toggle-trace|ido-toggle-vc|ido-toggle-virtual-buffers|ido-trace|ido-unc-hosts-net-view|ido-unc-hosts|ido-undo-merge-work-directory\n|ido-unload-function|ido-up-directory|ido-visit-buffer|ido-wash-history|ido-wide-find-dir-or-delete-dir|ido-wide-find-dir|ido-wide-find-dirs-or-files\n|ido-wide-find-file-or-pop-dir|ido-wide-find-file|ido-word-matching-substring|ido-write-file|ielm|ietf-drums-get-comment|ietf-drums-init\n|ietf-drums-make-address|ietf-drums-narrow-to-header|ietf-drums-parse-address|ietf-drums-parse-addresses|ietf-drums-parse-date\n|ietf-drums-quote-string|ietf-drums-remove-comments|ietf-drums-remove-whitespace|ietf-drums-strip|ietf-drums-token-to-list|ietf-drums-unfold-fws\n|if-let|ifconfig|iimage-mode-buffer|iimage-mode|iimage-modification-hook|iimage-recenter|image--set-speed|image-after-revert-hook\n|image-animate-get-speed|image-animate-set-speed|image-animate-timeout|image-animated-p|image-backward-hscroll|image-bob|image-bol\n|image-bookmark-jump|image-bookmark-make-record|image-decrease-speed|image-dired--with-db-file|image-dired-add-to-file-comment-list\n|image-dired-add-to-tag-file-list|image-dired-add-to-tag-file-lists|image-dired-associated-dired-buffer-window|image-dired-associated-dired-buffer\n|image-dired-backward-image|image-dired-comment-thumbnail|image-dired-copy-with-exif-file-name|image-dired-create-display-image-buffer\n|image-dired-create-gallery-lists|image-dired-create-thumb|image-dired-create-thumbnail-buffer|image-dired-create-thumbs|image-dired-define-display-image-mode-keymap\n|image-dired-define-thumbnail-mode-keymap|image-dired-delete-char|image-dired-delete-tag|image-dired-dir|image-dired-dired-after-readin-hook\n|image-dired-dired-comment-files|image-dired-dired-display-external|image-dired-dired-display-image|image-dired-dired-display-properties\n|image-dired-dired-edit-comment-and-tags|image-dired-dired-file-marked-p|image-dired-dired-next-line|image-dired-dired-previous-line\n|image-dired-dired-toggle-marked-thumbs|image-dired-dired-with-window-configuration|image-dired-display-current-image-full|image-dired-display-current-image-sized\n|image-dired-display-image-mode|image-dired-display-image|image-dired-display-next-thumbnail-original|image-dired-display-previous-thumbnail-original\n|image-dired-display-thumb-properties|image-dired-display-thumb|image-dired-display-thumbnail-original-image|image-dired-display-thumbs-append\n|image-dired-display-thumbs|image-dired-display-window-height|image-dired-display-window-width|image-dired-display-window|image-dired-flag-thumb-original-file\n|image-dired-format-properties-string|image-dired-forward-image|image-dired-gallery-generate|image-dired-get-buffer-window|image-dired-get-comment\n|image-dired-get-exif-data|image-dired-get-exif-file-name|image-dired-get-thumbnail-image|image-dired-hidden-p|image-dired-image-at-point-p\n|image-dired-insert-image|image-dired-insert-thumbnail|image-dired-jump-original-dired-buffer|image-dired-jump-thumbnail-buffer\n|image-dired-kill-buffer-and-window|image-dired-line-up-dynamic|image-dired-line-up-interactive|image-dired-line-up|image-dired-list-tags\n|image-dired-mark-and-display-next|image-dired-mark-tagged-files|image-dired-mark-thumb-original-file|image-dired-modify-mark-on-thumb-original-file\n|image-dired-mouse-display-image|image-dired-mouse-select-thumbnail|image-dired-mouse-toggle-mark|image-dired-next-line-and-display\n|image-dired-next-line|image-dired-original-file-name|image-dired-previous-line-and-display|image-dired-previous-line|image-dired-read-comment\n|image-dired-refresh-thumb|image-dired-remove-tag|image-dired-restore-window-configuration|image-dired-rotate-original-left|image-dired-rotate-original-right\n|image-dired-rotate-original|image-dired-rotate-thumbnail-left|image-dired-rotate-thumbnail-right|image-dired-rotate-thumbnail\n|image-dired-sane-db-file|image-dired-save-information-from-widgets|image-dired-set-exif-data|image-dired-setup-dired-keybindings\n|image-dired-show-all-from-dir|image-dired-slideshow-start|image-dired-slideshow-step|image-dired-slideshow-stop|image-dired-tag-files\n|image-dired-tag-thumbnail-remove|image-dired-tag-thumbnail|image-dired-thumb-name|image-dired-thumbnail-display-external|image-dired-thumbnail-mode\n|image-dired-thumbnail-set-image-description|image-dired-thumbnail-window|image-dired-toggle-append-browsing|image-dired-toggle-dired-display-properties\n|image-dired-toggle-mark-thumb-original-file|image-dired-toggle-movement-tracking|image-dired-track-original-file|image-dired-track-thumbnail\n|image-dired-unmark-thumb-original-file|image-dired-update-property|image-dired-window-height-pixels|image-dired-window-width-pixels\n|image-dired-write-comments|image-dired-write-tags|image-dired|image-display-size|image-eob|image-eol|image-extension-data|image-file-call-underlying\n|image-file-handler|image-file-name-regexp|image-file-yank-handler|image-forward-hscroll|image-get-display-property|image-goto-frame\n|image-increase-speed|image-jpeg-p|image-metadata|image-minor-mode|image-mode--images-in-directory|image-mode-as-text|image-mode-fit-frame\n|image-mode-maybe|image-mode-menu|image-mode-reapply-winprops|image-mode-setup-winprops|image-mode-window-get|image-mode-window-put\n|image-mode-winprops|image-mode|image-next-file|image-next-frame|image-next-line|image-previous-file|image-previous-frame|image-previous-line\n|image-refresh|image-reset-speed|image-reverse-speed|image-scroll-down|image-scroll-up|image-search-load-path|image-set-window-hscroll\n|image-set-window-vscroll|image-toggle-animation|image-toggle-display-image|image-toggle-display-text|image-toggle-display|image-transform-check-size\n|image-transform-fit-to-height|image-transform-fit-to-width|image-transform-fit-width|image-transform-properties|image-transform-reset\n|image-transform-set-rotation|image-transform-set-scale|image-transform-width|image-type-auto-detected-p|image-type-from-buffer\n|image-type-from-data|image-type-from-file-header|image-type-from-file-name|image-type|imagemagick-filter-types|imagemagick-register-types\n|imap-add-callback|imap-anonymous-auth|imap-anonymous-p|imap-arrival-filter|imap-authenticate|imap-body-lines|imap-capability|imap-close\n|imap-cram-md5-auth|imap-cram-md5-p|imap-current-mailbox-p-1|imap-current-mailbox-p|imap-current-mailbox|imap-current-message|imap-digest-md5-auth\n|imap-digest-md5-p|imap-disable-multibyte|imap-envelope-from|imap-error-text|imap-fetch-asynch|imap-fetch-safe|imap-fetch|imap-find-next-line\n|imap-forward|imap-gssapi-auth-p|imap-gssapi-auth|imap-gssapi-open|imap-gssapi-stream-p|imap-id|imap-interactive-login|imap-kerberos4-auth-p\n|imap-kerberos4-auth|imap-kerberos4-open|imap-kerberos4-stream-p|imap-list-to-message-set|imap-log|imap-login-auth|imap-login-p\n|imap-logout-wait|imap-logout|imap-mailbox-acl-delete|imap-mailbox-acl-get|imap-mailbox-acl-set|imap-mailbox-close|imap-mailbox-create-1\n|imap-mailbox-create|imap-mailbox-delete|imap-mailbox-examine-1|imap-mailbox-examine|imap-mailbox-expunge|imap-mailbox-get-1|imap-mailbox-get\n|imap-mailbox-list|imap-mailbox-lsub|imap-mailbox-map-1|imap-mailbox-map|imap-mailbox-put|imap-mailbox-rename|imap-mailbox-select-1\n|imap-mailbox-select|imap-mailbox-status-asynch|imap-mailbox-status|imap-mailbox-subscribe|imap-mailbox-unselect|imap-mailbox-unsubscribe\n|imap-message-append|imap-message-appenduid-1|imap-message-appenduid|imap-message-body|imap-message-copy|imap-message-copyuid-1\n|imap-message-copyuid|imap-message-envelope-bcc|imap-message-envelope-cc|imap-message-envelope-date|imap-message-envelope-from\n|imap-message-envelope-in-reply-to|imap-message-envelope-message-id|imap-message-envelope-reply-to|imap-message-envelope-sender\n|imap-message-envelope-subject|imap-message-envelope-to|imap-message-flag-permanent-p|imap-message-flags-add|imap-message-flags-del\n|imap-message-flags-set|imap-message-get|imap-message-map|imap-message-put|imap-namespace|imap-network-open|imap-network-p|imap-ok-p\n|imap-open-1|imap-open|imap-opened|imap-parse-acl|imap-parse-address-list|imap-parse-address|imap-parse-astring|imap-parse-body-ext\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nimap-parse-body-extension|imap-parse-body|imap-parse-data-list|imap-parse-envelope|imap-parse-fetch-body-section|imap-parse-fetch\n|imap-parse-flag-list|imap-parse-greeting|imap-parse-header-list|imap-parse-literal|imap-parse-mailbox|imap-parse-nil|imap-parse-nstring\n|imap-parse-number|imap-parse-resp-text-code|imap-parse-resp-text|imap-parse-response|imap-parse-status|imap-parse-string-list\n|imap-parse-string|imap-ping-server|imap-quote-specials|imap-range-to-message-set|imap-remassoc|imap-sasl-auth-p|imap-sasl-auth\n|imap-sasl-make-mechanisms|imap-search|imap-send-command-1|imap-send-command-wait|imap-send-command|imap-sentinel|imap-shell-open\n|imap-shell-p|imap-ssl-open|imap-ssl-p|imap-starttls-open|imap-starttls-p|imap-string-to-integer|imap-tls-open|imap-tls-p|imap-utf7-decode\n|imap-utf7-encode|imap-wait-for-tag|imenu--cleanup|imenu--completion-buffer|imenu--create-keymap|imenu--generic-function|imenu--in-alist\n|imenu--make-index-alist|imenu--menubar-select|imenu--mouse-menu|imenu--relative-position|imenu--sort-by-name|imenu--sort-by-position\n|imenu--split-menu|imenu--split-submenus|imenu--split|imenu--subalist-p|imenu--truncate-items|imenu-add-menubar-index|imenu-choose-buffer-index\n|imenu-default-create-index-function|imenu-default-goto-function|imenu-example--create-c-index|imenu-example--create-lisp-index\n|imenu-example--lisp-extract-index-name|imenu-example--name-and-position|imenu-find-default|imenu-progress-message|imenu-update-menubar\n|imenu|in-is13194-post-read-conversion|in-is13194-pre-write-conversion|in-string-p|inactivate-input-method|incf|increase-left-margin\n|increase-right-margin|increment-register|indent-accumulate-tab-stops|indent-for-comment|indent-icon-exp|indent-line-to|indent-new-comment-line\n|indent-next-tab-stop|indent-perl-exp|indent-pp-sexp|indent-rigidly--current-indentation|indent-rigidly--pop-undo|indent-rigidly-left-to-tab-stop\n|indent-rigidly-left|indent-rigidly-right-to-tab-stop|indent-rigidly-right|indent-sexp|indent-tcl-exp|indent-to-column|indented-text-mode\n|indian-2-column-to-ucs-region|indian-compose-regexp|indian-compose-region|indian-compose-string|indicate-copied-region|inferior-lisp-install-letter-bindings\n|inferior-lisp-menu|inferior-lisp-mode|inferior-lisp-proc|inferior-lisp|inferior-octave-check-process|inferior-octave-complete\n|inferior-octave-completion-at-point|inferior-octave-completion-table|inferior-octave-directory-tracker|inferior-octave-dynamic-list-input-ring\n|inferior-octave-mode|inferior-octave-output-digest|inferior-octave-process-live-p|inferior-octave-resync-dirs|inferior-octave-send-list-and-digest\n|inferior-octave-startup|inferior-octave-track-window-width-change|inferior-octave|inferior-python-mode|inferior-scheme-mode|inferior-tcl-mode\n|inferior-tcl-proc|inferior-tcl|info--manual-names|info--prettify-description|info-apropos|info-complete-file|info-complete-symbol\n|info-complete|info-display-manual|info-emacs-bug|info-emacs-manual|info-file-exists-p|info-finder|info-initialize|info-insert-file-contents-1\n|info-insert-file-contents|info-lookup->all-modes|info-lookup->cache|info-lookup->completions|info-lookup->doc-spec|info-lookup->ignore-case\n|info-lookup->initialized|info-lookup->mode-cache|info-lookup->mode-value|info-lookup->other-modes|info-lookup->parse-rule|info-lookup->refer-modes\n|info-lookup->regexp|info-lookup->topic-cache|info-lookup->topic-value|info-lookup-add-help\\*|info-lookup-add-help|info-lookup-change-mode\n|info-lookup-completions-at-point|info-lookup-file|info-lookup-guess-c-symbol|info-lookup-guess-custom-symbol|info-lookup-guess-default\\*\n|info-lookup-guess-default|info-lookup-interactive-arguments|info-lookup-make-completions|info-lookup-maybe-add-help|info-lookup-quick-all-modes\n|info-lookup-reset|info-lookup-select-mode|info-lookup-setup-mode|info-lookup-symbol|info-lookup|info-other-window|info-setup|info-standalone\n|info-xref-all-info-files|info-xref-check-all-custom|info-xref-check-all|info-xref-check-buffer|info-xref-check-list|info-xref-check-node\n|info-xref-check|info-xref-docstrings|info-xref-goto-node-p|info-xref-lock-file-p|info-xref-output-error|info-xref-output|info-xref-subfile-p\n|info-xref-with-file|info-xref-with-output|info|inhibit-local-variables-p|init-image-library|initialize-completions|initialize-instance\n|initialize-new-tags-table|inline|insert-abbrevs|insert-byte|insert-directory-adj-pos|insert-directory-safely|insert-file-1|insert-file-literally\n|insert-file|insert-for-yank-1|insert-image-file|insert-kbd-macro|insert-pair|insert-parentheses|insert-rectangle|insert-string|insert-tab\n|int-to-string|interactive-completion-string-reader|interactive-p|intern-safe|internal--after-save-selected-window|internal--after-with-selected-window\n|internal--before-save-selected-window|internal--before-with-selected-window|internal--build-binding-value-form|internal--build-binding\n|internal--build-bindings|internal--check-binding|internal--listify|internal--thread-argument|internal--track-mouse|internal-ange-ftp-mode\n|internal-char-font|internal-complete-buffer-except|internal-complete-buffer|internal-copy-lisp-face|internal-default-process-filter\n|internal-default-process-sentinel|internal-describe-syntax-value|internal-event-symbol-parse-modifiers|internal-face-x-get-resource\n|internal-get-lisp-face-attribute|internal-lisp-face-attribute-values|internal-lisp-face-empty-p|internal-lisp-face-equal-p|internal-lisp-face-p\n|internal-macroexpand-for-load|internal-make-lisp-face|internal-make-var-non-special|internal-merge-in-global-face|internal-pop-keymap\n|internal-push-keymap|internal-set-alternative-font-family-alist|internal-set-alternative-font-registry-alist|internal-set-font-selection-order\n|internal-set-lisp-face-attribute-from-resource|internal-set-lisp-face-attribute|internal-show-cursor-p|internal-show-cursor\n|internal-temp-output-buffer-show|internal-timer-start-idle|intersection|inverse-add-abbrev|inverse-add-global-abbrev|inverse-add-mode-abbrev\n|inversion-<|inversion-=|inversion-add-to-load-path|inversion-check-version|inversion-decode-version|inversion-download-package-ask\n|inversion-find-version|inversion-locate-package-files-and-split|inversion-locate-package-files|inversion-package-incompatibility-version\n|inversion-package-version|inversion-recode|inversion-release-to-number|inversion-require-emacs|inversion-require|inversion-reverse-test\n|inversion-test|ipconfig|irc|isInNet|isPlainHostName|isResolvable|isearch--get-state|isearch--set-state|isearch--state-barrier--cmacro\n|isearch--state-barrier|isearch--state-case-fold-search--cmacro|isearch--state-case-fold-search|isearch--state-error--cmacro\n|isearch--state-error|isearch--state-forward--cmacro|isearch--state-forward|isearch--state-message--cmacro|isearch--state-message\n|isearch--state-other-end--cmacro|isearch--state-other-end|isearch--state-p--cmacro|isearch--state-p|isearch--state-point--cmacro\n|isearch--state-point|isearch--state-pop-fun--cmacro|isearch--state-pop-fun|isearch--state-string--cmacro|isearch--state-string\n|isearch--state-success--cmacro|isearch--state-success|isearch--state-word--cmacro|isearch--state-word|isearch--state-wrapped--cmacro\n|isearch--state-wrapped|isearch-abort|isearch-back-into-window|isearch-backslash|isearch-backward-regexp|isearch-backward|isearch-cancel\n|isearch-char-by-name|isearch-clean-overlays|isearch-close-unnecessary-overlays|isearch-complete-edit|isearch-complete|isearch-complete1\n|isearch-dehighlight|isearch-del-char|isearch-delete-char|isearch-describe-bindings|isearch-describe-key|isearch-describe-mode\n|isearch-done|isearch-edit-string|isearch-exit|isearch-fail-pos|isearch-fallback|isearch-filter-visible|isearch-forward-exit-minibuffer\n|isearch-forward-regexp|isearch-forward-symbol-at-point|isearch-forward-symbol|isearch-forward-word|isearch-forward|isearch-help-for-help-internal-doc\n|isearch-help-for-help-internal|isearch-help-for-help|isearch-highlight-regexp|isearch-highlight|isearch-intersects-p|isearch-lazy-highlight-cleanup\n|isearch-lazy-highlight-new-loop|isearch-lazy-highlight-search|isearch-lazy-highlight-update|isearch-message-prefix|isearch-message-suffix\n|isearch-message|isearch-mode-help|isearch-mode|isearch-mouse-2|isearch-no-upper-case-p|isearch-nonincremental-exit-minibuffer\n|isearch-occur|isearch-open-necessary-overlays|isearch-open-overlay-temporary|isearch-pop-state|isearch-post-command-hook|isearch-pre-command-hook\n|isearch-printing-char|isearch-process-search-char|isearch-process-search-multibyte-characters|isearch-process-search-string\n|isearch-push-state|isearch-query-replace-regexp|isearch-query-replace|isearch-quote-char|isearch-range-invisible|isearch-repeat-backward\n|isearch-repeat-forward|isearch-repeat|isearch-resume|isearch-reverse-exit-minibuffer|isearch-ring-adjust|isearch-ring-adjust1\n|isearch-ring-advance|isearch-ring-retreat|isearch-search-and-update|isearch-search-fun-default|isearch-search-fun|isearch-search-string\n|isearch-search|isearch-string-out-of-window|isearch-symbol-regexp|isearch-text-char-description|isearch-toggle-case-fold|isearch-toggle-input-method\n|isearch-toggle-invisible|isearch-toggle-lax-whitespace|isearch-toggle-regexp|isearch-toggle-specified-input-method|isearch-toggle-symbol\n|isearch-toggle-word|isearch-unread|isearch-update-ring|isearch-update|isearch-yank-char-in-minibuffer|isearch-yank-char|isearch-yank-internal\n|isearch-yank-kill|isearch-yank-line|isearch-yank-pop|isearch-yank-string|isearch-yank-word-or-char|isearch-yank-word|isearch-yank-x-selection\n|isearchb-activate|isearchb-follow-char|isearchb-iswitchb|isearchb-set-keybindings|isearchb-stop|isearchb|iso-charset|iso-cvt-define-menu\n|iso-cvt-read-only|iso-cvt-write-only|iso-german|iso-gtex2iso|iso-iso2duden|iso-iso2gtex|iso-iso2sgml|iso-iso2tex|iso-sgml2iso|iso-spanish\n|iso-tex2iso|iso-transl-ctl-x-8-map|ispell-accept-buffer-local-defs|ispell-accept-output|ispell-add-per-file-word-list|ispell-aspell-add-aliases\n|ispell-aspell-find-dictionary|ispell-begin-skip-region-regexp|ispell-begin-skip-region|ispell-begin-tex-skip-regexp|ispell-buffer-local-dict\n|ispell-buffer-local-parsing|ispell-buffer-local-words|ispell-buffer-with-debug|ispell-buffer|ispell-call-process-region|ispell-call-process\n|ispell-change-dictionary|ispell-check-minver|ispell-check-version|ispell-command-loop|ispell-comments-and-strings|ispell-complete-word-interior-frag\n|ispell-complete-word|ispell-continue|ispell-create-debug-buffer|ispell-decode-string|ispell-display-buffer|ispell-filter|ispell-find-aspell-dictionaries\n|ispell-find-hunspell-dictionaries|ispell-get-aspell-config-value|ispell-get-casechars|ispell-get-coding-system|ispell-get-decoded-string\n|ispell-get-extended-character-mode|ispell-get-ispell-args|ispell-get-line|ispell-get-many-otherchars-p|ispell-get-not-casechars\n|ispell-get-otherchars|ispell-get-word|ispell-help|ispell-highlight-spelling-error-generic|ispell-highlight-spelling-error-overlay\n|ispell-highlight-spelling-error-xemacs|ispell-highlight-spelling-error|ispell-horiz-scroll|ispell-hunspell-fill-dictionary-entry\n|ispell-ignore-fcc|ispell-init-process|ispell-int-char|ispell-internal-change-dictionary|ispell-kill-ispell|ispell-looking-at|ispell-looking-back\n|ispell-lookup-words|ispell-menu-map|ispell-message|ispell-mime-multipartp|ispell-mime-skip-part|ispell-minor-check|ispell-minor-mode\n|ispell-non-empty-string|ispell-parse-hunspell-affix-file|ispell-parse-output|ispell-pdict-save|ispell-print-if-debug|ispell-process-line\n|ispell-process-status|ispell-region|ispell-send-replacement|ispell-send-string|ispell-set-spellchecker-params|ispell-show-choices\n|ispell-skip-region-list|ispell-skip-region|ispell-start-process|ispell-tex-arg-end|ispell-valid-dictionary-list|ispell-with-no-warnings\n|ispell-word|ispell|isqrt|iswitchb-buffer-other-frame|iswitchb-buffer-other-window|iswitchb-buffer|iswitchb-case|iswitchb-chop|iswitchb-complete\n|iswitchb-completion-help|iswitchb-completions|iswitchb-display-buffer|iswitchb-entryfn-p|iswitchb-exhibit|iswitchb-existing-buffer-p\n|iswitchb-exit-minibuffer|iswitchb-find-common-substring|iswitchb-find-file|iswitchb-get-buffers-in-frames|iswitchb-get-bufname\n|iswitchb-get-matched-buffers|iswitchb-ignore-buffername-p|iswitchb-init-XEmacs-trick|iswitchb-kill-buffer|iswitchb-make-buflist\n|iswitchb-makealist|iswitchb-minibuffer-setup|iswitchb-mode|iswitchb-next-match|iswitchb-output-completion|iswitchb-possible-new-buffer\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\niswitchb-post-command|iswitchb-pre-command|iswitchb-prev-match|iswitchb-read-buffer|iswitchb-rotate-list|iswitchb-select-buffer-text\n|iswitchb-set-common-completion|iswitchb-set-matches|iswitchb-summaries-to-end|iswitchb-tidy|iswitchb-to-end|iswitchb-toggle-case\n|iswitchb-toggle-ignore|iswitchb-toggle-regexp|iswitchb-visit-buffer|iswitchb-window-buffer-p|iswitchb-word-matching-substring\n|iswitchb-xemacs-backspacekey|iswitchb|iwconfig|japanese-hankaku-region|japanese-hankaku|japanese-hiragana-region|japanese-hiragana\n|japanese-katakana-region|japanese-katakana|japanese-zenkaku-region|japanese-zenkaku|java-font-lock-keywords-2|java-font-lock-keywords-3\n|java-font-lock-keywords|java-mode|javascript-mode|jdb|jit-lock--debug-fontify|jit-lock-after-change|jit-lock-context-fontify|jit-lock-debug-mode\n|jit-lock-deferred-fontify|jit-lock-fontify-now|jit-lock-force-redisplay|jit-lock-function|jit-lock-mode|jit-lock-refontify|jit-lock-stealth-chunk-start\n|jit-lock-stealth-fontify|jka-compr-build-file-regexp|jka-compr-byte-compiler-base-file-name|jka-compr-call-process|jka-compr-error\n|jka-compr-file-local-copy|jka-compr-get-compression-info|jka-compr-handler|jka-compr-info-can-append|jka-compr-info-compress-args\n|jka-compr-info-compress-message|jka-compr-info-compress-program|jka-compr-info-file-magic-bytes|jka-compr-info-regexp|jka-compr-info-strip-extension\n|jka-compr-info-uncompress-args|jka-compr-info-uncompress-message|jka-compr-info-uncompress-program|jka-compr-insert-file-contents\n|jka-compr-install|jka-compr-installed-p|jka-compr-load|jka-compr-make-temp-name|jka-compr-partial-uncompress|jka-compr-run-real-handler\n|jka-compr-set|jka-compr-uninstall|jka-compr-update|jka-compr-write-region|join-line|js--array-comp-indentation|js--backward-pstate\n|js--backward-syntactic-ws|js--backward-text-property|js--beginning-of-defun-flat|js--beginning-of-defun-nested|js--beginning-of-defun-raw\n|js--beginning-of-macro|js--class-decl-matcher|js--clear-stale-cache|js--continued-expression-p|js--ctrl-statement-indentation\n|js--debug|js--end-of-defun-flat|js--end-of-defun-nested|js--end-of-do-while-loop-p|js--ensure-cache--pop-if-ended|js--ensure-cache--update-parse\n|js--ensure-cache|js--flatten-list|js--flush-caches|js--forward-destructuring-spec|js--forward-expression|js--forward-function-decl\n|js--forward-pstate|js--forward-syntactic-ws|js--forward-text-property|js--function-prologue-beginning|js--get-all-known-symbols\n|js--get-c-offset|js--get-js-context|js--get-tabs|js--guess-eval-defun-info|js--guess-function-name|js--guess-symbol-at-point|js--imenu-create-index\n|js--imenu-to-flat|js--indent-in-array-comp|js--inside-dojo-class-list-p|js--inside-param-list-p|js--inside-pitem-p|js--js-add-resource-alias\n|js--js-content-window|js--js-create-instance|js--js-decode-retval|js--js-encode-value|js--js-enter-repl|js--js-eval|js--js-funcall\n|js--js-get-service|js--js-get|js--js-handle-expired-p|js--js-handle-id--cmacro|js--js-handle-id|js--js-handle-p--cmacro|js--js-handle-p\n|js--js-handle-process--cmacro|js--js-handle-process|js--js-leave-repl|js--js-list|js--js-new|js--js-not|js--js-put|js--js-qi|js--js-true\n|js--js-wait-for-eval-prompt|js--looking-at-operator-p|js--make-framework-matcher|js--make-merged-item|js--make-nsilocalfile|js--maybe-join\n|js--maybe-make-marker|js--multi-line-declaration-indentation|js--optimize-arglist|js--parse-state-at-point|js--pitem-add-child\n|js--pitem-b-end--cmacro|js--pitem-b-end|js--pitem-children--cmacro|js--pitem-children|js--pitem-format|js--pitem-goto-h-end|js--pitem-h-begin--cmacro\n|js--pitem-h-begin|js--pitem-name--cmacro|js--pitem-name|js--pitem-paren-depth--cmacro|js--pitem-paren-depth|js--pitem-strname\n|js--pitem-type--cmacro|js--pitem-type|js--pitems-to-imenu|js--proper-indentation|js--pstate-is-toplevel-defun|js--re-search-backward-inner\n|js--re-search-backward|js--re-search-forward-inner|js--re-search-forward|js--read-symbol|js--read-tab|js--regexp-opt-symbol|js--same-line\n|js--show-cache-at-point|js--splice-into-items|js--split-name|js--syntactic-context-from-pstate|js--syntax-begin-function|js--up-nearby-list\n|js--update-quick-match-re|js--variable-decl-matcher|js--wait-for-matching-output|js--which-func-joiner|js-beginning-of-defun\n|js-c-fill-paragraph|js-end-of-defun|js-eval-defun|js-eval|js-find-symbol|js-gc|js-indent-line|js-mode|js-set-js-context|js-syntactic-context\n|js-syntax-propertize-regexp|js-syntax-propertize|json--with-indentation|json-add-to-object|json-advance|json-alist-p|json-decode-char0\n|json-encode-alist|json-encode-array|json-encode-char|json-encode-char0|json-encode-hash-table|json-encode-key|json-encode-keyword\n|json-encode-list|json-encode-number|json-encode-plist|json-encode-string|json-encode|json-join|json-new-object|json-peek|json-plist-p\n|json-pop|json-pretty-print-buffer|json-pretty-print|json-read-array|json-read-escaped-char|json-read-file|json-read-from-string\n|json-read-keyword|json-read-number|json-read-object|json-read-string|json-read|json-skip-whitespace|jump-to-register|kbd-macro-query\n|keep-lines-read-args|keep-lines|kermit-clean-filter|kermit-clean-off|kermit-clean-on|kermit-default-cr|kermit-default-nl|kermit-esc\n|kermit-send-char|kermit-send-input-cr|keyboard-escape-quit|keymap--menu-item-binding|keymap--menu-item-with-binding|keymap--merge-bindings\n|keymap-canonicalize|keypad-setup|kill-all-abbrevs|kill-backward-chars|kill-backward-up-list|kill-buffer-and-window|kill-buffer-ask\n|kill-buffer-if-not-modified|kill-comment|kill-compilation|kill-completion|kill-emacs-save-completions|kill-find|kill-forward-chars\n|kill-grep|kill-line|kill-matching-buffers|kill-paragraph|kill-rectangle|kill-ring-save|kill-sentence|kill-sexp|kill-some-buffers\n|kill-this-buffer-enabled-p|kill-this-buffer|kill-visual-line|kill-whole-line|kill-word|kinsoku-longer|kinsoku-shorter|kinsoku|kkc-region\n|kmacro-add-counter|kmacro-bind-to-key|kmacro-call-macro|kmacro-call-ring-2nd-repeat|kmacro-call-ring-2nd|kmacro-cycle-ring-next\n|kmacro-cycle-ring-previous|kmacro-delete-ring-head|kmacro-display-counter|kmacro-display|kmacro-edit-lossage|kmacro-edit-macro-repeat\n|kmacro-edit-macro|kmacro-end-and-call-macro|kmacro-end-call-mouse|kmacro-end-macro|kmacro-end-or-call-macro-repeat|kmacro-end-or-call-macro\n|kmacro-exec-ring-item|kmacro-execute-from-register|kmacro-extract-lambda|kmacro-get-repeat-prefix|kmacro-insert-counter|kmacro-keyboard-quit\n|kmacro-lambda-form|kmacro-loop-setup-function|kmacro-name-last-macro|kmacro-pop-ring|kmacro-pop-ring1|kmacro-push-ring|kmacro-repeat-on-last-key\n|kmacro-ring-empty-p|kmacro-ring-head|kmacro-set-counter|kmacro-set-format|kmacro-split-ring-element|kmacro-start-macro-or-insert-counter\n|kmacro-start-macro|kmacro-step-edit-insert|kmacro-step-edit-macro|kmacro-step-edit-minibuf-setup|kmacro-step-edit-post-command\n|kmacro-step-edit-pre-command|kmacro-step-edit-prompt|kmacro-step-edit-query|kmacro-swap-ring|kmacro-to-register|kmacro-view-macro-repeat\n|kmacro-view-macro|kmacro-view-ring-2nd|lambda|landmark--distance|landmark--intangible|landmark-amble-robot|landmark-beginning-of-line\n|landmark-blackbox|landmark-calc-confidences|landmark-calc-current-smells|landmark-calc-distance-of-robot-from|landmark-calc-payoff\n|landmark-calc-smell-internal|landmark-check-filled-qtuple|landmark-click|landmark-confidence-for|landmark-crash-game|landmark-cross-qtuple\n|landmark-display-statistics|landmark-emacs-plays|landmark-end-of-line|landmark-f|landmark-find-filled-qtuple|landmark-fix-weights-for\n|landmark-flip-a-coin|landmark-goto-square|landmark-goto-xy|landmark-human-plays|landmark-human-resigns|landmark-human-takes-back\n|landmark-index-to-x|landmark-index-to-y|landmark-init-board|landmark-init-display|landmark-init-score-table|landmark-init-square-score\n|landmark-init|landmark-max-height|landmark-max-width|landmark-mode|landmark-mouse-play|landmark-move-down|landmark-move-ne|landmark-move-nw\n|landmark-move-se|landmark-move-sw|landmark-move-up|landmark-move|landmark-nb-qtuples|landmark-noise|landmark-nslify-wts-int|landmark-nslify-wts\n|landmark-offer-a-draw|landmark-play-move|landmark-plot-internal|landmark-plot-landmarks|landmark-plot-square|landmark-point-square\n|landmark-point-y|landmark-print-distance-int|landmark-print-distance|landmark-print-moves|landmark-print-smell-int|landmark-print-smell\n|landmark-print-w0-int|landmark-print-w0|landmark-print-wts-blackbox|landmark-print-wts-int|landmark-print-wts|landmark-print-y-s-noise-int\n|landmark-print-y-s-noise|landmark-prompt-for-move|landmark-prompt-for-other-game|landmark-random-move|landmark-randomize-weights-for\n|landmark-repeat|landmark-set-landmark-signal-strengths|landmark-start-game|landmark-start-robot|landmark-store-old-y_t|landmark-strongest-square\n|landmark-switch-to-window|landmark-take-back|landmark-terminate-game|landmark-test-run|landmark-update-naught-weights|landmark-update-normal-weights\n|landmark-update-score-in-direction|landmark-update-score-table|landmark-weights-debug|landmark-xy-to-index|landmark-y|landmark\n|lao-compose-region|lao-compose-string|lao-composition-function|lao-transcribe-roman-to-lao-string|lao-transcribe-single-roman-syllable-to-lao\n|last-nonminibuffer-frame|last-sexp-setup-props|latex-backward-sexp-1|latex-close-block|latex-complete-bibtex-keys|latex-complete-data\n|latex-complete-envnames|latex-complete-refkeys|latex-down-list|latex-electric-env-pair-mode|latex-env-before-change|latex-fill-nobreak-predicate\n|latex-find-indent|latex-forward-sexp-1|latex-forward-sexp|latex-imenu-create-index|latex-indent|latex-insert-block|latex-insert-item\n|latex-mode|latex-outline-level|latex-skip-close-parens|latex-split-block|latex-string-prefix-p|latex-syntax-after|latexenc-coding-system-to-inputenc\n|latexenc-find-file-coding-system|latexenc-inputenc-to-coding-system|latin1-display|lazy-highlight-cleanup|lcm|ld-script-mode|ldap-decode-address\n|ldap-decode-attribute|ldap-decode-boolean|ldap-decode-string|ldap-encode-address|ldap-encode-boolean|ldap-encode-country-string\n|ldap-encode-string|ldap-get-host-parameter|ldap-search-internal|ldap-search|ldiff|led-flash|led-off|led-on|led-update|left-char|left-word\n|let-alist--access-sexp|let-alist--deep-dot-search|let-alist--list-to-sexp|let-alist--remove-dot|let-alist|letf\\*|letf|letrec|lglyph-adjustment\n|lglyph-ascent|lglyph-char|lglyph-code|lglyph-copy|lglyph-descent|lglyph-from|lglyph-lbearing|lglyph-rbearing|lglyph-set-adjustment\n|lglyph-set-char|lglyph-set-code|lglyph-set-from-to|lglyph-set-width|lglyph-to|lglyph-width|lgrep|lgstring-char-len|lgstring-char\n|lgstring-font|lgstring-glyph-len|lgstring-glyph|lgstring-header|lgstring-insert-glyph|lgstring-set-glyph|lgstring-set-header|lgstring-set-id\n|lgstring-shaped-p|life-birth-char|life-birth-string|life-compute-neighbor-deltas|life-death-char|life-death-string|life-display-generation\n|life-expand-plane-if-needed|life-extinct-quit|life-grim-reaper|life-increment-generation|life-increment|life-insert-random-pattern\n|life-life-char|life-life-string|life-mode|life-not-void-regexp|life-setup|life-void-char|life-void-string|life|limit-index|line-move-1\n|line-move-finish|line-move-partial|line-move-to-column|line-move-visual|line-move|line-number-mode|line-pixel-height|line-substring-with-bidi-context\n|linum--face-width|linum-after-change|linum-after-scroll|linum-delete-overlays|linum-mode-set-explicitly|linum-mode|linum-on|linum-schedule\n|linum-unload-function|linum-update-current|linum-update-window|linum-update|lisp--match-hidden-arg|lisp-comment-indent|lisp-compile-defun-and-go\n|lisp-compile-defun|lisp-compile-file|lisp-compile-region-and-go|lisp-compile-region|lisp-compile-string|lisp-complete-symbol|lisp-completion-at-point\n|lisp-current-defun-name|lisp-describe-sym|lisp-do-defun|lisp-eval-defun-and-go|lisp-eval-defun|lisp-eval-form-and-next|lisp-eval-last-sexp\n|lisp-eval-paragraph|lisp-eval-region-and-go|lisp-eval-region|lisp-eval-string|lisp-fill-paragraph|lisp-find-tag-default|lisp-fn-called-at-pt\n|lisp-font-lock-syntactic-face-function|lisp-get-old-input|lisp-indent-defform|lisp-indent-function|lisp-indent-line|lisp-indent-specform\n|lisp-input-filter|lisp-interaction-mode|lisp-load-file|lisp-mode-auto-fill|lisp-mode-variables|lisp-mode|lisp-outline-level|lisp-show-arglist\n|lisp-show-function-documentation|lisp-show-variable-documentation|lisp-string-after-doc-keyword-p|lisp-string-in-doc-position-p\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nlisp-symprompt|lisp-var-at-pt|list\\*|list-abbrevs|list-all-completions-1|list-all-completions-by-hash-bucket-1|list-all-completions-by-hash-bucket\n|list-all-completions|list-at-point|list-bookmarks|list-buffers--refresh|list-buffers-noselect|list-buffers|list-character-sets\n|list-coding-categories|list-coding-systems|list-colors-display|list-colors-duplicates|list-colors-print|list-colors-redisplay\n|list-colors-sort-key|list-command-history|list-directory|list-dynamic-libraries|list-faces-display|list-fontsets|list-holidays\n|list-input-methods|list-length|list-matching-lines|list-packages|list-processes--refresh|list-registers|list-tags|lm-adapted-by\n|lm-authors|lm-code-mark|lm-code-start|lm-commentary-end|lm-commentary-mark|lm-commentary-start|lm-commentary|lm-copyright-mark|lm-crack-address\n|lm-crack-copyright|lm-creation-date|lm-get-header-re|lm-get-package-name|lm-header-multiline|lm-header|lm-history-mark|lm-history-start\n|lm-homepage|lm-insert-at-column|lm-keywords-finder-p|lm-keywords-list|lm-keywords|lm-last-modified-date|lm-maintainer|lm-report-bug\n|lm-section-end|lm-section-mark|lm-section-start|lm-summary|lm-synopsis|lm-verify|lm-version|lm-with-file|load-completions-from-file\n|load-history-filename-element|load-history-regexp|load-path-shadows-find|load-path-shadows-mode|load-path-shadows-same-file-or-nonexistent\n|load-save-place-alist-from-file|load-time-value|load-with-code-conversion|local-clear-scheme-interaction-buffer|local-set-scheme-interaction-buffer\n|locale-charset-match-p|locale-charset-to-coding-system|locale-name-match|locale-translate|locally|locate-completion-db-error|locate-completion-entry-retry\n|locate-completion-entry|locate-current-line-number|locate-default-make-command-line|locate-do-redisplay|locate-do-setup|locate-dominating-file\n|locate-file-completion-table|locate-file-completion|locate-file-internal|locate-filter-output|locate-find-directory-other-window\n|locate-find-directory|locate-get-dirname|locate-get-file-positions|locate-get-filename|locate-in-alternate-database|locate-insert-header\n|locate-main-listing-line-p|locate-mode|locate-mouse-view-file|locate-prompt-for-search-string|locate-set-properties|locate-tags\n|locate-update|locate-with-filter|locate-word-at-point|locate|log-edit--match-first-line|log-edit-add-field|log-edit-add-to-changelog\n|log-edit-beginning-of-line|log-edit-changelog-entries|log-edit-changelog-entry|log-edit-changelog-insert-entries|log-edit-changelog-ours-p\n|log-edit-changelog-paragraph|log-edit-changelog-subparagraph|log-edit-comment-search-backward|log-edit-comment-search-forward\n|log-edit-comment-to-change-log|log-edit-done|log-edit-empty-buffer-p|log-edit-extract-headers|log-edit-files|log-edit-font-lock-keywords\n|log-edit-goto-eoh|log-edit-hide-buf|log-edit-insert-changelog-entries|log-edit-insert-changelog|log-edit-insert-cvs-rcstemplate\n|log-edit-insert-cvs-template|log-edit-insert-filenames-without-changelog|log-edit-insert-filenames|log-edit-insert-message-template\n|log-edit-kill-buffer|log-edit-match-to-eoh|log-edit-menu|log-edit-mode-help|log-edit-mode|log-edit-narrow-changelog|log-edit-new-comment-index\n|log-edit-next-comment|log-edit-previous-comment|log-edit-remember-comment|log-edit-set-common-indentation|log-edit-set-header\n|log-edit-show-diff|log-edit-show-files|log-edit-toggle-header|log-edit|log-view-annotate-version|log-view-beginning-of-defun|log-view-current-entry\n|log-view-current-file|log-view-current-tag|log-view-diff-changeset|log-view-diff-common|log-view-diff|log-view-end-of-defun-1\n|log-view-end-of-defun|log-view-extract-comment|log-view-file-next|log-view-file-prev|log-view-find-revision|log-view-get-marked\n|log-view-goto-rev|log-view-inside-comment-p|log-view-minor-wrap|log-view-mode-menu|log-view-mode|log-view-modify-change-comment\n|log-view-msg-next|log-view-msg-prev|log-view-toggle-entry-display|log-view-toggle-mark-entry|log10|lookfor-dired|lookup-image-map\n|lookup-key-ignore-too-long|lookup-minor-mode-from-indicator|lookup-nested-alist|lookup-words|loop|lpr-buffer|lpr-customize|lpr-eval-switch\n|lpr-flatten-list-1|lpr-flatten-list|lpr-print-region|lpr-region|lpr-setup|lunar-phases|m2-begin-comment|m2-begin|m2-case|m2-compile\n|m2-definition|m2-else|m2-end-comment|m2-execute-monitor-command|m2-export|m2-for|m2-header|m2-if|m2-import|m2-link|m2-loop|m2-mode|m2-module\n|m2-or|m2-procedure|m2-record|m2-smie-backward-token|m2-smie-forward-token|m2-smie-refine-colon|m2-smie-refine-of|m2-smie-refine-semi\n|m2-smie-rules|m2-stdio|m2-toggle|m2-type|m2-until|m2-var|m2-visit|m2-while|m2-with|m4--quoted-p|m4-current-defun-name|m4-m4-buffer|m4-m4-region\n|m4-mode|macro-declaration-function|macroexp--accumulate|macroexp--all-clauses|macroexp--all-forms|macroexp--backtrace|macroexp--compiler-macro\n|macroexp--compiling-p|macroexp--cons|macroexp--const-symbol-p|macroexp--expand-all|macroexp--funcall-if-compiled|macroexp--maxsize\n|macroexp--obsolete-warning|macroexp--trim-backtrace-frame|macroexp--warn-and-return|macroexp-const-p|macroexp-copyable-p|macroexp-if\n|macroexp-let\\*|macroexp-let2\\*|macroexp-let2|macroexp-progn|macroexp-quote|macroexp-small-p|macroexp-unprogn|macroexpand-1|macrolet\n|mail-abbrev-complete-alias|mail-abbrev-end-of-buffer|mail-abbrev-expand-hook|mail-abbrev-expand-wrapper|mail-abbrev-in-expansion-header-p\n|mail-abbrev-insert-alias|mail-abbrev-make-syntax-table|mail-abbrev-next-line|mail-abbrevs-disable|mail-abbrevs-enable|mail-abbrevs-mode\n|mail-abbrevs-setup|mail-abbrevs-sync-aliases|mail-add-attachment|mail-add-payment-async|mail-add-payment|mail-attach-file|mail-bcc\n|mail-bury|mail-cc|mail-check-payment|mail-comma-list-regexp|mail-complete|mail-completion-at-point-function|mail-completion-expand\n|mail-content-type-get|mail-decode-encoded-address-region|mail-decode-encoded-address-string|mail-decode-encoded-word-region\n|mail-decode-encoded-word-string|mail-directory-process|mail-directory-stream|mail-directory|mail-do-fcc|mail-dont-reply-to|mail-dont-send\n|mail-encode-encoded-word-buffer|mail-encode-encoded-word-region|mail-encode-encoded-word-string|mail-encode-header|mail-envelope-from\n|mail-extract-address-components|mail-fcc|mail-fetch-field|mail-file-babyl-p|mail-fill-yanked-message|mail-get-names|mail-header-chars\n|mail-header-date|mail-header-encode-parameter|mail-header-end|mail-header-extra|mail-header-extract-no-properties|mail-header-extract\n|mail-header-field-value|mail-header-fold-field|mail-header-format|mail-header-from|mail-header-get-comment|mail-header-id|mail-header-lines\n|mail-header-make-address|mail-header-merge|mail-header-message-id|mail-header-narrow-to-field|mail-header-number|mail-header-parse-address\n|mail-header-parse-addresses|mail-header-parse-content-disposition|mail-header-parse-content-type|mail-header-parse-date|mail-header-parse\n|mail-header-references|mail-header-remove-comments|mail-header-remove-whitespace|mail-header-set-chars|mail-header-set-date|mail-header-set-extra\n|mail-header-set-from|mail-header-set-id|mail-header-set-lines|mail-header-set-message-id|mail-header-set-number|mail-header-set-references\n|mail-header-set-subject|mail-header-set-xref|mail-header-set|mail-header-strip|mail-header-subject|mail-header-unfold-field|mail-header-xref\n|mail-header|mail-hist-define-keys|mail-hist-enable|mail-hist-put-headers-into-history|mail-indent-citation|mail-insert-file|mail-insert-from-field\n|mail-mail-followup-to|mail-mail-reply-to|mail-mbox-from|mail-mode-auto-fill|mail-mode-fill-paragraph|mail-mode-flyspell-verify\n|mail-mode|mail-narrow-to-head|mail-other-frame|mail-other-window|mail-parse-comma-list|mail-position-on-field|mail-quote-printable-region\n|mail-quote-printable|mail-quote-string|mail-recover-1|mail-recover|mail-reply-to|mail-resolve-all-aliases-1|mail-resolve-all-aliases\n|mail-rfc822-date|mail-rfc822-time-zone|mail-send-and-exit|mail-send|mail-sendmail-delimit-header|mail-sendmail-undelimit-header\n|mail-sent-via|mail-sentto-newsgroups|mail-setup|mail-signature|mail-split-line|mail-string-delete|mail-strip-quoted-names|mail-subject\n|mail-text-start|mail-text|mail-to|mail-unquote-printable-hexdigit|mail-unquote-printable-region|mail-unquote-printable|mail-yank-clear-headers\n|mail-yank-original|mail-yank-region|mail|mailcap-add-mailcap-entry|mailcap-add|mailcap-command-p|mailcap-delete-duplicates|mailcap-extension-to-mime\n|mailcap-file-default-commands|mailcap-mailcap-entry-passes-test|mailcap-maybe-eval|mailcap-mime-info|mailcap-mime-types|mailcap-parse-mailcap-extras\n|mailcap-parse-mailcap|mailcap-parse-mailcaps|mailcap-parse-mimetype-file|mailcap-parse-mimetypes|mailcap-possible-viewers|mailcap-replace-in-string\n|mailcap-replace-regexp|mailcap-save-binary-file|mailcap-unescape-mime-test|mailcap-view-mime|mailcap-viewer-lessp|mailcap-viewer-passes-test\n|mailclient-encode-string-as-url|mailclient-gather-addresses|mailclient-send-it|mailclient-url-delim|mairix-build-search-list\n|mairix-call-mairix|mairix-edit-saved-searches-customize|mairix-edit-saved-searches|mairix-gnus-ephemeral-nndoc|mairix-gnus-fetch-field\n|mairix-insert-search-line|mairix-next-search|mairix-previous-search|mairix-replace-invalid-chars|mairix-rmail-display|mairix-rmail-fetch-field\n|mairix-save-search|mairix-search-from-this-article|mairix-search-thread-this-article|mairix-search|mairix-searches-mode|mairix-select-delete\n|mairix-select-edit|mairix-select-quit|mairix-select-save|mairix-select-search|mairix-sentinel-mairix-update-finished|mairix-show-folder\n|mairix-update-database|mairix-use-saved-search|mairix-vm-display|mairix-vm-fetch-field|mairix-widget-add|mairix-widget-build-editable-fields\n|mairix-widget-create-query|mairix-widget-get-values|mairix-widget-make-query-from-widgets|mairix-widget-save-search|mairix-widget-search-based-on-article\n|mairix-widget-search|mairix-widget-send-query|mairix-widget-toggle-activate|make-backup-file-name--default-function|make-backup-file-name-1\n|make-char-internal|make-char|make-cmpl-prefix-entry|make-coding-system|make-comint-in-buffer|make-comint|make-command-summary|make-completion\n|make-directory-internal|make-doctor-variables|make-ebrowse-bs--cmacro|make-ebrowse-bs|make-ebrowse-cs--cmacro|make-ebrowse-cs\n|make-ebrowse-hs--cmacro|make-ebrowse-hs|make-ebrowse-ms--cmacro|make-ebrowse-ms|make-ebrowse-position--cmacro|make-ebrowse-position\n|make-ebrowse-ts--cmacro|make-ebrowse-ts|make-empty-face|make-erc-channel-user--cmacro|make-erc-channel-user|make-erc-response--cmacro\n|make-erc-response|make-erc-server-user--cmacro|make-erc-server-user|make-ert--ewoc-entry--cmacro|make-ert--ewoc-entry|make-ert--stats--cmacro\n|make-ert--stats|make-ert--test-execution-info--cmacro|make-ert--test-execution-info|make-ert-test--cmacro|make-ert-test-aborted-with-non-local-exit--cmacro\n|make-ert-test-aborted-with-non-local-exit|make-ert-test-failed--cmacro|make-ert-test-failed|make-ert-test-passed--cmacro|make-ert-test-passed\n|make-ert-test-quit--cmacro|make-ert-test-quit|make-ert-test-result--cmacro|make-ert-test-result-with-condition--cmacro|make-ert-test-result-with-condition\n|make-ert-test-result|make-ert-test-skipped--cmacro|make-ert-test-skipped|make-ert-test|make-face-bold-italic|make-face-bold|make-face-italic\n|make-face-unbold|make-face-unitalic|make-face-x-resource-internal|make-face|make-flyspell-overlay|make-frame-command|make-frame-names-alist\n|make-full-mail-header|make-gdb-handler--cmacro|make-gdb-handler|make-gdb-table--cmacro|make-gdb-table|make-hippie-expand-function\n|make-htmlize-fstruct--cmacro|make-htmlize-fstruct|make-initial-minibuffer-frame|make-instance|make-js--js-handle--cmacro|make-js--js-handle\n|make-js--pitem--cmacro|make-js--pitem|make-mail-header|make-mode-line-mouse-map|make-obsolete-overload|make-package--ac-desc--cmacro\n|make-package--ac-desc|make-package--bi-desc--cmacro|make-package--bi-desc|make-random-state|make-ses--locprn--cmacro|make-ses--locprn\n|make-sgml-tag--cmacro|make-sgml-tag|make-soap-array-type--cmacro|make-soap-array-type|make-soap-basic-type--cmacro|make-soap-basic-type\n|make-soap-binding--cmacro|make-soap-binding|make-soap-bound-operation--cmacro|make-soap-bound-operation|make-soap-element--cmacro\n|make-soap-element|make-soap-message--cmacro|make-soap-message|make-soap-namespace--cmacro|make-soap-namespace-link--cmacro|make-soap-namespace-link\n|make-soap-namespace|make-soap-operation--cmacro|make-soap-operation|make-soap-port--cmacro|make-soap-port-type--cmacro|make-soap-port-type\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nmake-soap-port|make-soap-sequence-element--cmacro|make-soap-sequence-element|make-soap-sequence-type--cmacro|make-soap-sequence-type\n|make-soap-simple-type--cmacro|make-soap-simple-type|make-soap-wsdl--cmacro|make-soap-wsdl|make-tar-header--cmacro|make-tar-header\n|make-term|make-terminal-frame|make-url-queue--cmacro|make-url-queue|make-variable-frame-local|makefile-add-log-defun|makefile-append-backslash\n|makefile-automake-mode|makefile-backslash-region|makefile-browse|makefile-browser-fill|makefile-browser-format-macro-line|makefile-browser-format-target-line\n|makefile-browser-get-state-for-line|makefile-browser-insert-continuation|makefile-browser-insert-selection-and-quit|makefile-browser-insert-selection\n|makefile-browser-next-line|makefile-browser-on-macro-line-p|makefile-browser-previous-line|makefile-browser-quit|makefile-browser-send-this-line-item\n|makefile-browser-set-state-for-line|makefile-browser-start-interaction|makefile-browser-this-line-macro-name|makefile-browser-this-line-target-name\n|makefile-browser-toggle-state-for-line|makefile-browser-toggle|makefile-bsdmake-mode|makefile-cleanup-continuations|makefile-complete\n|makefile-completions-at-point|makefile-create-up-to-date-overview|makefile-delete-backslash|makefile-do-macro-insertion|makefile-electric-colon\n|makefile-electric-dot|makefile-electric-equal|makefile-fill-paragraph|makefile-first-line-p|makefile-format-macro-ref|makefile-forward-after-target-colon\n|makefile-generate-temporary-filename|makefile-gmake-mode|makefile-imake-mode|makefile-insert-gmake-function|makefile-insert-macro-ref\n|makefile-insert-macro|makefile-insert-special-target|makefile-insert-target-ref|makefile-insert-target|makefile-last-line-p|makefile-make-font-lock-keywords\n|makefile-makepp-mode|makefile-match-action|makefile-match-dependency|makefile-match-function-end|makefile-mode|makefile-next-dependency\n|makefile-pickup-everything|makefile-pickup-filenames-as-targets|makefile-pickup-macros|makefile-pickup-targets|makefile-previous-dependency\n|makefile-prompt-for-gmake-funargs|makefile-query-by-make-minus-q|makefile-query-targets|makefile-remember-macro|makefile-remember-target\n|makefile-save-temporary|makefile-switch-to-browser|makefile-warn-continuations|makefile-warn-suspicious-lines|makeinfo-buffer\n|makeinfo-compilation-sentinel-buffer|makeinfo-compilation-sentinel-region|makeinfo-compile|makeinfo-current-node|makeinfo-next-error\n|makeinfo-recenter-compilation-buffer|makeinfo-region|man-follow|man|mantemp-insert-cxx-syntax|mantemp-make-mantemps-buffer|mantemp-make-mantemps-region\n|mantemp-make-mantemps|mantemp-remove-comments|mantemp-remove-memfuncs|mantemp-sort-and-unique-lines|manual-entry|map-keymap-internal\n|map-keymap-sorted|map-query-replace-regexp|map|mapcan|mapcar\\*|mapcon|mapl|maplist|mark-bib|mark-defun|mark-end-of-sentence|mark-icon-function\n|mark-page|mark-paragraph|mark-perl-function|mark-sexp|mark-whole-buffer|mark-word|master-mode|master-says-beginning-of-buffer|master-says-end-of-buffer\n|master-says-recenter|master-says-scroll-down|master-says-scroll-up|master-says|master-set-slave|master-show-slave|matching-paren\n|math-add-bignum|math-add-float|math-add|math-bignum-big|math-bignum|math-build-parse-table|math-check-complete|math-comp-concat\n|math-concat|math-constp|math-div-bignum-big|math-div-bignum-digit|math-div-bignum-part|math-div-bignum-try|math-div-bignum|math-div-float\n|math-div|math-div10-bignum|math-div2-bignum|math-div2|math-do-working|math-evenp|math-expr-ops|math-find-user-tokens|math-fixnatnump\n|math-fixnump|math-float|math-floatp|math-floor|math-format-bignum-decimal|math-format-bignum|math-format-flat-expr|math-format-number\n|math-format-stack-value|math-format-value|math-idivmod|math-imod|math-infinitep|math-ipow|math-looks-negp|math-make-float|math-match-substring\n|math-mod|math-mul-bignum-digit|math-mul-bignum|math-mul|math-neg|math-negp|math-normalize|math-numdigs|math-posp|math-pow|math-quotient\n|math-read-bignum|math-read-expr-list|math-read-exprs|math-read-if|math-read-number-simple|math-read-number|math-read-preprocess-string\n|math-read-radix-digit|math-read-token|math-reject-arg|math-remove-dashes|math-scale-int|math-scale-left-bignum|math-scale-left\n|math-scale-right-bignum|math-scale-right|math-scale-rounding|math-showing-full-precision|math-stack-value-offset|math-standard-ops-p\n|math-standard-ops|math-sub-bignum|math-sub-float|math-sub|math-trunc|math-with-extra-prec|math-working|math-zerop|md4-64|md4-F|md4-G\n|md4-H|md4-add|md4-and|md4-copy64|md4-make-step|md4-pack-int16|md4-pack-int32|md4-round1|md4-round2|md4-round3|md4-unpack-int16|md4-unpack-int32\n|md4|md5-binary|member\\*|member-if-not|member-if|memory-info|menu-bar-bookmark-map|menu-bar-buffer-vector|menu-bar-ediff-menu|menu-bar-ediff-merge-menu\n|menu-bar-ediff-misc-menu|menu-bar-enable-clipboard|menu-bar-epatch-menu|menu-bar-frame-for-menubar|menu-bar-handwrite-map|menu-bar-horizontal-scroll-bar\n|menu-bar-kill-ring-save|menu-bar-left-scroll-bar|menu-bar-make-mm-toggle|menu-bar-make-toggle|menu-bar-menu-at-x-y|menu-bar-menu-frame-live-and-visible-p\n|menu-bar-mode|menu-bar-next-tag-other-window|menu-bar-next-tag|menu-bar-no-horizontal-scroll-bar|menu-bar-no-scroll-bar|menu-bar-non-minibuffer-window-p\n|menu-bar-open|menu-bar-options-save|menu-bar-positive-p|menu-bar-read-lispintro|menu-bar-read-lispref|menu-bar-read-mail|menu-bar-right-scroll-bar\n|menu-bar-select-buffer|menu-bar-select-frame|menu-bar-select-yank|menu-bar-set-tool-bar-position|menu-bar-showhide-fringe-ind-box\n|menu-bar-showhide-fringe-ind-customize|menu-bar-showhide-fringe-ind-left|menu-bar-showhide-fringe-ind-mixed|menu-bar-showhide-fringe-ind-none\n|menu-bar-showhide-fringe-ind-right|menu-bar-showhide-fringe-menu-customize-disable|menu-bar-showhide-fringe-menu-customize-left\n|menu-bar-showhide-fringe-menu-customize-reset|menu-bar-showhide-fringe-menu-customize-right|menu-bar-showhide-fringe-menu-customize\n|menu-bar-showhide-tool-bar-menu-customize-disable|menu-bar-showhide-tool-bar-menu-customize-enable-bottom|menu-bar-showhide-tool-bar-menu-customize-enable-left\n|menu-bar-showhide-tool-bar-menu-customize-enable-right|menu-bar-showhide-tool-bar-menu-customize-enable-top|menu-bar-update-buffers-1\n|menu-bar-update-buffers|menu-bar-update-yank-menu|menu-find-file-existing|menu-or-popup-active-p|menu-set-font|mercury-mode|merge-coding-systems\n|merge-mail-abbrevs|merge|message--yank-original-internal|message-add-action|message-add-archive-header|message-add-header|message-alter-recipients-discard-bogus-full-name\n|message-beginning-of-line|message-bogus-recipient-p|message-bold-region|message-bounce|message-buffer-name|message-buffers|message-bury\n|message-caesar-buffer-body|message-caesar-region|message-cancel-news|message-canlock-generate|message-canlock-password|message-carefully-insert-headers\n|message-change-subject|message-check-element|message-check-news-body-syntax|message-check-news-header-syntax|message-check-news-syntax\n|message-check-recipients|message-check|message-checksum|message-cite-original-1|message-cite-original-without-signature|message-cite-original\n|message-cleanup-headers|message-clone-locals|message-completion-function|message-completion-in-region|message-cross-post-followup-to-header\n|message-cross-post-followup-to|message-cross-post-insert-note|message-default-send-mail-function|message-default-send-rename-function\n|message-delete-action|message-delete-line|message-delete-not-region|message-delete-overlay|message-disassociate-draft|message-display-abbrev\n|message-do-actions|message-do-auto-fill|message-do-fcc|message-do-send-housekeeping|message-dont-reply-to-names|message-dont-send\n|message-elide-region|message-encode-message-body|message-exchange-point-and-mark|message-expand-group|message-expand-name|message-fetch-field\n|message-fetch-reply-field|message-field-name|message-field-value|message-fill-field-address|message-fill-field-general|message-fill-field\n|message-fill-paragraph|message-fill-yanked-message|message-fix-before-sending|message-flatten-list|message-followup|message-font-lock-make-header-matcher\n|message-forward-make-body-digest-mime|message-forward-make-body-digest-plain|message-forward-make-body-digest|message-forward-make-body-mime\n|message-forward-make-body-mml|message-forward-make-body-plain|message-forward-make-body|message-forward-rmail-make-body|message-forward-subject-author-subject\n|message-forward-subject-fwd|message-forward-subject-name-subject|message-forward|message-generate-headers|message-generate-new-buffer-clone-locals\n|message-generate-unsubscribed-mail-followup-to|message-get-reply-headers|message-gnksa-enable-p|message-goto-bcc|message-goto-body\n|message-goto-cc|message-goto-distribution|message-goto-eoh|message-goto-fcc|message-goto-followup-to|message-goto-from|message-goto-keywords\n|message-goto-mail-followup-to|message-goto-newsgroups|message-goto-reply-to|message-goto-signature|message-goto-subject|message-goto-summary\n|message-goto-to|message-headers-to-generate|message-hide-header-p|message-hide-headers|message-idna-to-ascii-rhs-1|message-idna-to-ascii-rhs\n|message-in-body-p|message-indent-citation|message-info|message-insert-canlock|message-insert-citation-line|message-insert-courtesy-copy\n|message-insert-disposition-notification-to|message-insert-expires|message-insert-formatted-citation-line|message-insert-header\n|message-insert-headers|message-insert-importance-high|message-insert-importance-low|message-insert-newsgroups|message-insert-or-toggle-importance\n|message-insert-signature|message-insert-to|message-insert-wide-reply|message-insinuate-rmail|message-is-yours-p|message-kill-address\n|message-kill-all-overlays|message-kill-buffer|message-kill-to-signature|message-mail-alias-type-p|message-mail-file-mbox-p|message-mail-other-frame\n|message-mail-other-window|message-mail-p|message-mail-user-agent|message-mail|message-make-address|message-make-caesar-translation-table\n|message-make-date|message-make-distribution|message-make-domain|message-make-expires-date|message-make-expires|message-make-forward-subject\n|message-make-fqdn|message-make-from|message-make-html-message-with-image-files|message-make-in-reply-to|message-make-lines|message-make-mail-followup-to\n|message-make-message-id|message-make-organization|message-make-overlay|message-make-path|message-make-references|message-make-sender\n|message-make-tool-bar|message-mark-active-p|message-mark-insert-file|message-mark-inserted-region|message-mode-field-menu|message-mode-menu\n|message-mode|message-multi-smtp-send-mail|message-narrow-to-field|message-narrow-to-head-1|message-narrow-to-head|message-narrow-to-headers-or-head\n|message-narrow-to-headers|message-newline-and-reformat|message-news-other-frame|message-news-other-window|message-news-p|message-news\n|message-next-header|message-number-base36|message-options-get|message-options-set-recipient|message-options-set|message-output\n|message-overlay-put|message-pipe-buffer-body|message-point-in-header-p|message-pop-to-buffer|message-position-on-field|message-position-point\n|message-posting-charset|message-prune-recipients|message-put-addresses-in-ecomplete|message-read-from-minibuffer|message-recover\n|message-reduce-to-to-cc|message-remove-blank-cited-lines|message-remove-first-header|message-remove-header|message-remove-ignored-headers\n|message-rename-buffer|message-replace-header|message-reply|message-resend|message-send-and-exit|message-send-form-letter|message-send-mail-function\n|message-send-mail-partially|message-send-mail-with-mailclient|message-send-mail-with-mh|message-send-mail-with-qmail|message-send-mail-with-sendmail\n|message-send-mail|message-send-news|message-send-via-mail|message-send-via-news|message-send|message-sendmail-envelope-from|message-set-auto-save-file-name\n|message-setup-1|message-setup-fill-variables|message-setup-toolbar|message-setup|message-shorten-1|message-shorten-references\n|message-signed-or-encrypted-p|message-simplify-recipients|message-simplify-subject|message-skip-to-next-address|message-smtpmail-send-it\n|message-sort-headers-1|message-sort-headers|message-split-line|message-strip-forbidden-properties|message-strip-list-identifiers\n|message-strip-subject-encoded-words|message-strip-subject-re|message-strip-subject-trailing-was|message-subscribed-p|message-supersede\n|message-tab|message-talkative-question|message-tamago-not-in-use-p|message-text-with-property|message-to-list-only|message-tokenize-header\n|message-tool-bar-update|message-unbold-region|message-unique-id|message-unquote-tokens|message-use-alternative-email-as-from\n|message-user-mail-address|message-wash-subject|message-wide-reply|message-widen-reply|message-with-reply-buffer|message-y-or-n-p\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nmessage-yank-buffer|message-yank-original|messages-buffer-mode|meta-add-symbols|meta-beginning-of-defun|meta-car-string-lessp\n|meta-comment-defun|meta-comment-indent|meta-comment-region|meta-common-mode|meta-complete-symbol|meta-completions-at-point|meta-end-of-defun\n|meta-indent-buffer|meta-indent-calculate|meta-indent-current-indentation|meta-indent-current-nesting|meta-indent-defun|meta-indent-in-string-p\n|meta-indent-level-count|meta-indent-line|meta-indent-looking-at-code|meta-indent-previous-line|meta-indent-region|meta-indent-unfinished-line\n|meta-listify|meta-mark-active|meta-mark-defun|meta-mode-menu|meta-symbol-list|meta-uncomment-defun|meta-uncomment-region|metafont-mode\n|metamail-buffer|metamail-interpret-body|metamail-interpret-header|metamail-region|metapost-mode|mh-adaptive-cmd-note-flag-check\n|mh-add-missing-mime-version-header|mh-add-msgs-to-seq|mh-alias-address-to-alias|mh-alias-expand|mh-alias-for-from-p|mh-alias-grab-from-field\n|mh-alias-letter-expand-alias|mh-alias-minibuffer-confirm-address|mh-alias-reload-maybe|mh-assoc-string|mh-beginning-of-word|mh-bogofilter-blacklist\n|mh-bogofilter-whitelist|mh-buffer-data|mh-burst-digest|mh-cancel-timer|mh-catchup|mh-cl-flet|mh-clean-msg-header|mh-clear-sub-folders-cache\n|mh-coalesce-msg-list|mh-colors-available-p|mh-colors-in-use-p|mh-complete-word|mh-compose-forward|mh-compose-insertion|mh-copy-msg\n|mh-create-sequence-map|mh-customize|mh-decode-message-header|mh-decode-message-subject|mh-define-obsolete-variable-alias|mh-define-sequence\n|mh-defstruct|mh-delete-a-msg|mh-delete-line|mh-delete-msg-from-seq|mh-delete-msg-no-motion|mh-delete-msg|mh-delete-seq|mh-delete-subject-or-thread\n|mh-delete-subject|mh-destroy-postponed-handles|mh-display-color-cells|mh-display-completion-list|mh-display-emphasis|mh-display-msg\n|mh-display-smileys|mh-display-with-external-viewer|mh-do-at-event-location|mh-do-in-gnu-emacs|mh-do-in-xemacs|mh-edit-again|mh-ephem-message\n|mh-exchange-point-and-mark-preserving-active-mark|mh-exec-cmd-daemon|mh-exec-cmd-env-daemon|mh-exec-cmd-error|mh-exec-cmd-output\n|mh-exec-cmd-quiet|mh-exec-cmd|mh-exec-lib-cmd-output|mh-execute-commands|mh-expand-file-name|mh-extract-from-header-value|mh-extract-rejected-mail\n|mh-face-background|mh-face-data|mh-face-foreground|mh-file-command-p|mh-file-mime-type|mh-find-path|mh-find-seq|mh-first-msg|mh-folder-completion-function\n|mh-folder-from-address|mh-folder-inline-mime-part|mh-folder-list|mh-folder-mode|mh-folder-name-p|mh-folder-save-mime-part|mh-folder-speedbar-buttons\n|mh-folder-toggle-mime-part|mh-font-lock-add-keywords|mh-forward|mh-fully-kill-draft|mh-funcall-if-exists|mh-get-header-field|mh-get-msg-num\n|mh-gnus-article-highlight-citation|mh-goto-cur-msg|mh-goto-header-end|mh-goto-header-field|mh-goto-msg|mh-goto-next-button|mh-handle-process-error\n|mh-have-file-command|mh-header-display|mh-header-field-beginning|mh-header-field-end|mh-help|mh-identity-add-menu|mh-identity-handler-attribution-verb\n|mh-identity-handler-bottom|mh-identity-handler-gpg-identity|mh-identity-handler-signature|mh-identity-handler-top|mh-identity-insert-attribution-verb\n|mh-identity-make-menu-no-autoload|mh-identity-make-menu|mh-image-load-path-for-library|mh-image-search-load-path|mh-in-header-p\n|mh-in-show-buffer|mh-inc-folder|mh-inc-spool-make-no-autoload|mh-inc-spool-make|mh-index-add-to-sequence|mh-index-create-imenu-index\n|mh-index-create-sequences|mh-index-delete-folder-headers|mh-index-delete-from-sequence|mh-index-execute-commands|mh-index-group-by-folder\n|mh-index-insert-folder-headers|mh-index-new-messages|mh-index-next-folder|mh-index-previous-folder|mh-index-read-data|mh-index-sequenced-messages\n|mh-index-ticked-messages|mh-index-update-maps|mh-index-visit-folder|mh-insert-auto-fields|mh-insert-identity|mh-insert-signature\n|mh-interactive-range|mh-invalidate-show-buffer|mh-invisible-headers|mh-iterate-on-messages-in-region|mh-iterate-on-range|mh-junk-blacklist-disposition\n|mh-junk-blacklist|mh-junk-choose|mh-junk-process-blacklist|mh-junk-process-whitelist|mh-junk-whitelist|mh-kill-folder|mh-last-msg\n|mh-lessp|mh-letter-hide-all-skipped-fields|mh-letter-mode|mh-letter-next-header-field|mh-letter-skip-leading-whitespace-in-header-field\n|mh-letter-skipped-header-field-p|mh-letter-speedbar-buttons|mh-letter-toggle-header-field-display-button|mh-letter-toggle-header-field-display\n|mh-line-beginning-position|mh-line-end-position|mh-list-folders|mh-list-sequences|mh-list-to-string-1|mh-list-to-string|mh-logo-display\n|mh-macro-expansion-time-gnus-version|mh-mail-abbrev-make-syntax-table|mh-mail-header-end|mh-make-folder-mode-line|mh-make-local-hook\n|mh-make-local-vars|mh-make-obsolete-variable|mh-mapc|mh-mark-active-p|mh-match-string-no-properties|mh-maybe-show|mh-mh-compose-anon-ftp\n|mh-mh-compose-external-compressed-tar|mh-mh-compose-external-type|mh-mh-directive-present-p|mh-mh-to-mime-undo|mh-mh-to-mime\n|mh-mime-cleanup|mh-mime-display|mh-mime-save-parts|mh-mml-forward-message|mh-mml-secure-message-encrypt|mh-mml-secure-message-sign\n|mh-mml-secure-message-signencrypt|mh-mml-tag-present-p|mh-mml-to-mime|mh-mml-unsecure-message|mh-modify|mh-msg-filename|mh-msg-is-in-seq\n|mh-msg-num-width-to-column|mh-msg-num-width|mh-narrow-to-cc|mh-narrow-to-from|mh-narrow-to-range|mh-narrow-to-seq|mh-narrow-to-subject\n|mh-narrow-to-tick|mh-narrow-to-to|mh-new-draft-name|mh-next-button|mh-next-msg|mh-next-undeleted-msg|mh-next-unread-msg|mh-nmail\n|mh-notate-cur|mh-notate-deleted-and-refiled|mh-notate-user-sequences|mh-notate|mh-outstanding-commands-p|mh-pack-folder|mh-page-digest-backwards\n|mh-page-digest|mh-page-msg|mh-parse-flist-output-line|mh-pipe-msg|mh-position-on-field|mh-prefix-help|mh-prev-button|mh-previous-page\n|mh-previous-undeleted-msg|mh-previous-unread-msg|mh-print-msg|mh-process-daemon|mh-process-or-undo-commands|mh-profile-component-value\n|mh-profile-component|mh-prompt-for-folder|mh-prompt-for-refile-folder|mh-ps-print-msg-file|mh-ps-print-msg|mh-ps-print-toggle-color\n|mh-ps-print-toggle-faces|mh-put-msg-in-seq|mh-quit|mh-quote-for-shell|mh-quote-pick-expr|mh-range-to-msg-list|mh-read-address|mh-read-folder-sequences\n|mh-read-range|mh-read-seq-default|mh-recenter|mh-redistribute|mh-refile-a-msg|mh-refile-msg|mh-refile-or-write-again|mh-regenerate-headers\n|mh-remove-all-notation|mh-remove-cur-notation|mh-remove-from-sub-folders-cache|mh-replace-regexp-in-string|mh-replace-string\n|mh-reply|mh-require-cl|mh-require|mh-rescan-folder|mh-reset-threads-and-narrowing|mh-rmail|mh-run-time-gnus-version|mh-scan-folder\n|mh-scan-format-file-check|mh-scan-format|mh-scan-msg-number-regexp|mh-scan-msg-search-regexp|mh-search-from-end|mh-search-p|mh-search\n|mh-send-letter|mh-send|mh-seq-msgs|mh-seq-to-msgs|mh-set-cmd-note|mh-set-folder-modified-p|mh-set-help|mh-set-x-image-cache-directory\n|mh-show-addr|mh-show-buffer-message-number|mh-show-font-lock-keywords-with-cite|mh-show-font-lock-keywords|mh-show-mode|mh-show-preferred-alternative\n|mh-show-speedbar-buttons|mh-show-xface|mh-show|mh-showing-mode|mh-signature-separator-p|mh-smail-batch|mh-smail-other-window|mh-smail\n|mh-sort-folder|mh-spamassassin-blacklist|mh-spamassassin-identify-spammers|mh-spamassassin-whitelist|mh-spamprobe-blacklist|mh-spamprobe-whitelist\n|mh-speed-add-folder|mh-speed-flists-active-p|mh-speed-flists|mh-speed-invalidate-map|mh-start-of-uncleaned-message|mh-store-msg\n|mh-strip-package-version|mh-sub-folders|mh-test-completion|mh-thread-add-spaces|mh-thread-ancestor|mh-thread-delete|mh-thread-find-msg-subject\n|mh-thread-forget-message|mh-thread-generate|mh-thread-inc|mh-thread-next-sibling|mh-thread-parse-scan-line|mh-thread-previous-sibling\n|mh-thread-print-scan-lines|mh-thread-refile|mh-thread-update-scan-line-map|mh-toggle-mh-decode-mime-flag|mh-toggle-mime-buttons\n|mh-toggle-showing|mh-toggle-threads|mh-toggle-tick|mh-translate-range|mh-truncate-log-buffer|mh-undefine-sequence|mh-undo-folder\n|mh-undo|mh-update-sequences|mh-url-hexify-string|mh-user-agent-compose|mh-valid-seq-p|mh-valid-view-change-operation-p|mh-variant-gnu-mh-info\n|mh-variant-info|mh-variant-mh-info|mh-variant-nmh-info|mh-variant-p|mh-variant-set-variant|mh-variant-set|mh-variants|mh-version\n|mh-view-mode-enter|mh-visit-folder|mh-widen|mh-window-full-height-p|mh-write-file-functions|mh-write-msg-to-file|mh-xargs|mh-yank-cur-msg\n|midnight-buffer-display-time|midnight-delay-set|midnight-find|midnight-next|mime-to-mml|minibuf-eldef-setup-minibuffer|minibuf-eldef-update-minibuffer\n|minibuffer--bitset|minibuffer--double-dollars|minibuffer-avoid-prompt|minibuffer-completion-contents|minibuffer-default--in-prompt-regexps\n|minibuffer-default-add-completions|minibuffer-default-add-shell-commands|minibuffer-depth-indicate-mode|minibuffer-depth-setup\n|minibuffer-electric-default-mode|minibuffer-force-complete-and-exit|minibuffer-force-complete|minibuffer-frame-list|minibuffer-hide-completions\n|minibuffer-history-initialize|minibuffer-history-isearch-end|minibuffer-history-isearch-message|minibuffer-history-isearch-pop-state\n|minibuffer-history-isearch-push-state|minibuffer-history-isearch-search|minibuffer-history-isearch-setup|minibuffer-history-isearch-wrap\n|minibuffer-insert-file-name-at-point|minibuffer-keyboard-quit|minibuffer-with-setup-hook|minor-mode-menu-from-indicator|minusp\n|mismatch|mixal-debug|mixal-describe-operation-code|mixal-mode|mixal-run|mm-add-meta-html-tag|mm-alist-to-plist|mm-annotationp|mm-append-to-file\n|mm-archive-decoders|mm-archive-dissect-and-inline|mm-assoc-string-match|mm-attachment-override-p|mm-auto-mode-alist|mm-automatic-display-p\n|mm-automatic-external-display-p|mm-body-7-or-8|mm-body-encoding|mm-char-int|mm-char-or-char-int-p|mm-charset-after|mm-charset-to-coding-system\n|mm-codepage-setup|mm-coding-system-equal|mm-coding-system-list|mm-coding-system-p|mm-coding-system-to-mime-charset|mm-complicated-handles\n|mm-content-transfer-encoding|mm-convert-shr-links|mm-copy-to-buffer|mm-create-image-xemacs|mm-decode-body|mm-decode-coding-region\n|mm-decode-coding-string|mm-decode-content-transfer-encoding|mm-decode-string|mm-decompress-buffer|mm-default-file-encoding|mm-default-multibyte-p\n|mm-delete-duplicates|mm-destroy-part|mm-destroy-parts|mm-destroy-postponed-undisplay-list|mm-detect-coding-region|mm-detect-mime-charset-region\n|mm-disable-multibyte|mm-display-external|mm-display-inline|mm-display-part|mm-display-parts|mm-dissect-archive|mm-dissect-buffer\n|mm-dissect-multipart|mm-dissect-singlepart|mm-enable-multibyte|mm-encode-body|mm-encode-buffer|mm-encode-coding-region|mm-encode-coding-string\n|mm-encode-content-transfer-encoding|mm-enrich-utf-8-by-mule-ucs|mm-extern-cache-contents|mm-file-name-collapse-whitespace|mm-file-name-delete-control\n|mm-file-name-delete-gotchas|mm-file-name-delete-whitespace|mm-file-name-replace-whitespace|mm-file-name-trim-whitespace|mm-find-buffer-file-coding-system\n|mm-find-charset-region|mm-find-mime-charset-region|mm-find-part-by-type|mm-find-raw-part-by-type|mm-get-coding-system-list|mm-get-content-id\n|mm-get-image|mm-get-part|mm-guess-charset|mm-handle-buffer|mm-handle-cache|mm-handle-description|mm-handle-displayed-p|mm-handle-disposition\n|mm-handle-encoding|mm-handle-filename|mm-handle-id|mm-handle-media-subtype|mm-handle-media-supertype|mm-handle-media-type|mm-handle-multipart-ctl-parameter\n|mm-handle-multipart-from|mm-handle-multipart-original-buffer|mm-handle-set-cache|mm-handle-set-external-undisplayer|mm-handle-set-undisplayer\n|mm-handle-type|mm-handle-undisplayer|mm-image-fit-p|mm-image-load-path|mm-image-type-from-buffer|mm-inlinable-p|mm-inline-external-body\n|mm-inline-override-p|mm-inline-partial|mm-inlined-p|mm-insert-byte|mm-insert-file-contents|mm-insert-headers|mm-insert-inline|mm-insert-multipart-headers\n|mm-insert-part|mm-insert-rfc822-headers|mm-interactively-view-part|mm-iso-8859-x-to-15-region|mm-keep-viewer-alive-p|mm-line-number-at-pos\n|mm-long-lines-p|mm-mailcap-command|mm-make-handle|mm-make-temp-file|mm-merge-handles|mm-mime-charset|mm-mule-charset-to-mime-charset\n|mm-multibyte-char-to-unibyte|mm-multibyte-p|mm-multibyte-string-p|mm-multiple-handles|mm-pipe-part|mm-possibly-verify-or-decrypt\n|mm-preferred-alternative-precedence|mm-preferred-alternative|mm-preferred-coding-system|mm-qp-or-base64|mm-read-charset|mm-read-coding-system\n|mm-readable-p|mm-remove-part|mm-remove-parts|mm-replace-in-string|mm-safer-encoding|mm-save-part-to-file|mm-save-part|mm-set-buffer-file-coding-system\n|mm-set-buffer-multibyte|mm-set-handle-multipart-parameter|mm-setup-codepage-ibm|mm-setup-codepage-iso-8859|mm-shr|mm-sort-coding-systems-predicate\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nmm-special-display-p|mm-string-as-multibyte|mm-string-as-unibyte|mm-string-make-unibyte|mm-string-to-multibyte|mm-subst-char-in-string\n|mm-substring-no-properties|mm-temp-files-delete|mm-ucs-to-char|mm-url-decode-entities-nbsp|mm-url-decode-entities-string|mm-url-decode-entities\n|mm-url-encode-multipart-form-data|mm-url-encode-www-form-urlencoded|mm-url-form-encode-xwfu|mm-url-insert-file-contents-external\n|mm-url-insert-file-contents|mm-url-insert|mm-url-load-url|mm-url-remove-markup|mm-uu-dissect-text-parts|mm-uu-dissect|mm-valid-and-fit-image-p\n|mm-valid-image-format-p|mm-view-pkcs7|mm-with-multibyte-buffer|mm-with-part|mm-with-unibyte-buffer|mm-with-unibyte-current-buffer\n|mm-write-region|mm-xemacs-find-mime-charset-1|mm-xemacs-find-mime-charset|mml-attach-buffer|mml-attach-external|mml-attach-file\n|mml-buffer-substring-no-properties-except-hard-newlines|mml-compute-boundary-1|mml-compute-boundary|mml-content-disposition\n|mml-destroy-buffers|mml-dnd-attach-file|mml-expand-html-into-multipart-related|mml-generate-mime-1|mml-generate-mime|mml-generate-new-buffer\n|mml-insert-buffer|mml-insert-empty-tag|mml-insert-mime-headers|mml-insert-mime|mml-insert-mml-markup|mml-insert-multipart|mml-insert-parameter-string\n|mml-insert-parameter|mml-insert-part|mml-insert-tag|mml-make-boundary|mml-menu|mml-minibuffer-read-description|mml-minibuffer-read-disposition\n|mml-minibuffer-read-file|mml-minibuffer-read-type|mml-mode|mml-parameter-string|mml-parse-1|mml-parse-file-name|mml-parse-singlepart-with-multiple-charsets\n|mml-parse|mml-pgp-encrypt-buffer|mml-pgp-sign-buffer|mml-pgpauto-encrypt-buffer|mml-pgpauto-sign-buffer|mml-pgpmime-encrypt-buffer\n|mml-pgpmime-sign-buffer|mml-preview-insert-mail-followup-to|mml-preview|mml-quote-region|mml-read-part|mml-read-tag|mml-secure-encrypt-pgp\n|mml-secure-encrypt-pgpmime|mml-secure-encrypt-smime|mml-secure-encrypt|mml-secure-message-encrypt-pgp|mml-secure-message-encrypt-pgpauto\n|mml-secure-message-encrypt-pgpmime|mml-secure-message-encrypt-smime|mml-secure-message-encrypt|mml-secure-message-sign-encrypt\n|mml-secure-message-sign-pgp|mml-secure-message-sign-pgpauto|mml-secure-message-sign-pgpmime|mml-secure-message-sign-smime|mml-secure-message-sign\n|mml-secure-message|mml-secure-part|mml-secure-sign-pgp|mml-secure-sign-pgpauto|mml-secure-sign-pgpmime|mml-secure-sign-smime|mml-secure-sign\n|mml-signencrypt-style|mml-smime-encrypt-buffer|mml-smime-encrypt-query|mml-smime-encrypt|mml-smime-sign-buffer|mml-smime-sign-query\n|mml-smime-sign|mml-smime-verify-test|mml-smime-verify|mml-to-mime|mml-tweak-externalize-attachments|mml-tweak-part|mml-unsecure-message\n|mml-validate|mml1991-encrypt|mml1991-sign|mml2015-decrypt-test|mml2015-decrypt|mml2015-encrypt|mml2015-self-encrypt|mml2015-sign\n|mml2015-verify-test|mml2015-verify|mod\\*|mode-line-bury-buffer|mode-line-change-eol|mode-line-eol-desc|mode-line-frame-control\n|mode-line-minor-mode-help|mode-line-modified-help-echo|mode-line-mule-info-help-echo|mode-line-next-buffer|mode-line-other-buffer\n|mode-line-previous-buffer|mode-line-read-only-help-echo|mode-line-toggle-modified|mode-line-toggle-read-only|mode-line-unbury-buffer\n|mode-line-widen|mode-local--expand-overrides|mode-local--overload-body|mode-local--override|mode-local-augment-function-help\n|mode-local-bind|mode-local-describe-bindings-1|mode-local-describe-bindings-2|mode-local-equivalent-mode-p|mode-local-initialized-p\n|mode-local-map-file-buffers|mode-local-map-mode-buffers|mode-local-on-major-mode-change|mode-local-post-major-mode-change|mode-local-print-binding\n|mode-local-print-bindings|mode-local-read-function|mode-local-setup-edebug-specs|mode-local-symbol-value|mode-local-symbol|mode-local-use-bindings-p\n|mode-local-value|mode-specific-command-prefix|modify-coding-system-alist|modify-face|modula-2-mode|morse-region|mouse--down-1-maybe-follows-link\n|mouse--drag-set-mark-and-point|mouse--strip-first-event|mouse-appearance-menu|mouse-autoselect-window-cancel|mouse-autoselect-window-select\n|mouse-autoselect-window-start|mouse-avoidance-banish-destination|mouse-avoidance-banish-mouse|mouse-avoidance-banish|mouse-avoidance-delta\n|mouse-avoidance-exile|mouse-avoidance-fancy|mouse-avoidance-ignore-p|mouse-avoidance-mode|mouse-avoidance-nudge-mouse|mouse-avoidance-point-position\n|mouse-avoidance-random-shape|mouse-avoidance-set-mouse-position|mouse-avoidance-set-pointer-shape|mouse-avoidance-too-close-p\n|mouse-buffer-menu-alist|mouse-buffer-menu-keymap|mouse-buffer-menu-map|mouse-buffer-menu-split|mouse-buffer-menu|mouse-choose-completion\n|mouse-copy-work-around-drag-bug|mouse-delete-other-windows|mouse-delete-window|mouse-drag-drag|mouse-drag-events-are-point-events-p\n|mouse-drag-header-line|mouse-drag-line|mouse-drag-mode-line|mouse-drag-region|mouse-drag-repeatedly-safe-scroll|mouse-drag-safe-scroll\n|mouse-drag-scroll-delta|mouse-drag-secondary-moving|mouse-drag-secondary-pasting|mouse-drag-secondary|mouse-drag-should-do-col-scrolling\n|mouse-drag-throw|mouse-drag-track|mouse-drag-vertical-line|mouse-event-p|mouse-fixup-help-message|mouse-kill-preserving-secondary\n|mouse-kill-ring-save|mouse-kill-secondary|mouse-kill|mouse-major-mode-menu|mouse-menu-bar-map|mouse-menu-major-mode-map|mouse-menu-non-singleton\n|mouse-minibuffer-check|mouse-minor-mode-menu|mouse-popup-menubar-stuff|mouse-popup-menubar|mouse-posn-property|mouse-region-match\n|mouse-save-then-kill-delete-region|mouse-save-then-kill|mouse-scroll-subr|mouse-secondary-save-then-kill|mouse-select-buffer\n|mouse-select-font|mouse-select-window|mouse-set-font|mouse-set-mark-fast|mouse-set-mark|mouse-set-point|mouse-set-region-1|mouse-set-region\n|mouse-set-secondary|mouse-skip-word|mouse-split-window-horizontally|mouse-split-window-vertically|mouse-start-end|mouse-start-secondary\n|mouse-tear-off-window|mouse-undouble-last-event|mouse-wheel-change-button|mouse-wheel-mode|mouse-yank-at-click|mouse-yank-primary\n|mouse-yank-secondary|move-beginning-of-line|move-end-of-line|move-file-to-trash|move-past-close-and-reindent|move-to-column-untabify\n|move-to-tab-stop|move-to-window-line-top-bottom|mpc--debug|mpc--faster-stop|mpc--faster-toggle-refresh|mpc--faster-toggle|mpc--faster\n|mpc--proc-alist-to-alists|mpc--proc-connect|mpc--proc-filter|mpc--proc-quote-string|mpc--songduration|mpc--status-callback|mpc--status-idle-timer-run\n|mpc--status-idle-timer-start|mpc--status-idle-timer-stop|mpc--status-timer-run|mpc--status-timer-start|mpc--status-timer-stop\n|mpc--status-timers-refresh|mpc-assq-all|mpc-cmd-add|mpc-cmd-clear|mpc-cmd-delete|mpc-cmd-find|mpc-cmd-flush|mpc-cmd-list|mpc-cmd-move\n|mpc-cmd-pause|mpc-cmd-play|mpc-cmd-special-tag-p|mpc-cmd-status|mpc-cmd-stop|mpc-cmd-tagtypes|mpc-cmd-update|mpc-compare-strings\n|mpc-constraints-get-current|mpc-constraints-pop|mpc-constraints-push|mpc-constraints-restore|mpc-constraints-tag-lookup|mpc-current-refresh\n|mpc-data-directory|mpc-drag-n-drop|mpc-event-set-point|mpc-ffwd|mpc-file-local-copy|mpc-format|mpc-intersection|mpc-mode-menu|mpc-mode\n|mpc-next|mpc-pause|mpc-play-at-point|mpc-play|mpc-playlist-add|mpc-playlist-create|mpc-playlist-delete|mpc-playlist-destroy|mpc-playlist-rename\n|mpc-playlist|mpc-prev|mpc-proc-buf-to-alist|mpc-proc-buf-to-alists|mpc-proc-buffer|mpc-proc-check|mpc-proc-cmd-list-ok|mpc-proc-cmd-list\n|mpc-proc-cmd-to-alist|mpc-proc-cmd|mpc-proc-sync|mpc-proc-tag-string-to-sym|mpc-proc|mpc-quit|mpc-reorder|mpc-resume|mpc-rewind|mpc-ring-make\n|mpc-ring-pop|mpc-ring-push|mpc-secs-to-time|mpc-select-extend|mpc-select-get-selection|mpc-select-make-overlay|mpc-select-restore\n|mpc-select-save|mpc-select-toggle|mpc-select|mpc-selection-refresh|mpc-separator|mpc-songpointer-context|mpc-songpointer-refresh-hairy\n|mpc-songpointer-refresh|mpc-songpointer-score|mpc-songpointer-set|mpc-songs-buf|mpc-songs-hashcons|mpc-songs-jump-to|mpc-songs-kill-search\n|mpc-songs-mode|mpc-songs-refresh|mpc-songs-search|mpc-songs-selection|mpc-sort|mpc-status-buffer-refresh|mpc-status-buffer-show\n|mpc-status-mode|mpc-status-refresh|mpc-status-stop|mpc-stop|mpc-string-prefix-p|mpc-tagbrowser-all-p|mpc-tagbrowser-all-select\n|mpc-tagbrowser-buf|mpc-tagbrowser-dir-mode|mpc-tagbrowser-dir-toggle|mpc-tagbrowser-mode|mpc-tagbrowser-refresh|mpc-tagbrowser-tag-name\n|mpc-tagbrowser|mpc-tempfiles-add|mpc-tempfiles-clean|mpc-union|mpc-update|mpc-updated-db|mpc-volume-mouse-set|mpc-volume-refresh\n|mpc-volume-widget|mpc|mpuz-ask-for-try|mpuz-build-random-perm|mpuz-check-all-solved|mpuz-close-game|mpuz-create-buffer|mpuz-digit-solved-p\n|mpuz-ding|mpuz-get-buffer|mpuz-mode|mpuz-offer-abort|mpuz-paint-board|mpuz-paint-digit|mpuz-paint-errors|mpuz-paint-number|mpuz-paint-statistics\n|mpuz-put-number-on-board|mpuz-random-puzzle|mpuz-show-solution|mpuz-solve|mpuz-start-new-game|mpuz-switch-to-window|mpuz-to-digit\n|mpuz-to-letter|mpuz-try-letter|mpuz-try-proposal|mpuz|msb--add-separators|msb--add-to-menu|msb--aggregate-alist|msb--choose-file-menu\n|msb--choose-menu|msb--collect|msb--create-buffer-menu-2|msb--create-buffer-menu|msb--create-function-info|msb--create-sort-item\n|msb--dired-directory|msb--format-title|msb--init-file-alist|msb--make-keymap-menu|msb--mode-menu-cond|msb--most-recently-used-menu\n|msb--split-menus-2|msb--split-menus|msb--strip-dir|msb--toggle-menu-type|msb-alon-item-handler|msb-custom-set|msb-dired-item-handler\n|msb-invisible-buffer-p|msb-item-handler|msb-menu-bar-update-buffers|msb-mode|msb-sort-by-directory|msb-sort-by-name|msb-unload-function\n|msb|mspools-get-folder-from-spool|mspools-get-spool-files|mspools-get-spool-name|mspools-help|mspools-mode|mspools-quit|mspools-revert-buffer\n|mspools-set-vm-spool-files|mspools-show-again|mspools-show|mspools-size-folder|mspools-visit-spool|mule-diag|multi-isearch-buffers-regexp\n|multi-isearch-buffers|multi-isearch-end|multi-isearch-files-regexp|multi-isearch-files|multi-isearch-next-buffer-from-list|multi-isearch-next-file-buffer-from-list\n|multi-isearch-pop-state|multi-isearch-push-state|multi-isearch-read-buffers|multi-isearch-read-files|multi-isearch-read-matching-buffers\n|multi-isearch-read-matching-files|multi-isearch-search-fun|multi-isearch-setup|multi-isearch-wrap|multi-occur-in-matching-buffers\n|multi-occur|multiple-value-apply|multiple-value-bind|multiple-value-call|multiple-value-list|multiple-value-setq|mwheel-event-button\n|mwheel-event-window|mwheel-filter-click-events|mwheel-inhibit-click-timeout|mwheel-install|mwheel-scroll|name-last-kbd-macro|narrow-to-defun\n|nato-region|nested-alist-p|net-utils--revert-function|net-utils-machine-at-point|net-utils-mode|net-utils-remove-ctrl-m-filter\n|net-utils-run-program|net-utils-run-simple|net-utils-url-at-point|netrc-credentials|netrc-find-service-name|netrc-get|netrc-machine-user-or-password\n|netrc-machine|netrc-parse-services|netrc-parse|netrc-port-equal|netstat|network-connection-mode-setup|network-connection-mode|network-connection-reconnect\n|network-connection-to-service|network-connection|network-service-connection|network-stream-certificate|network-stream-command\n|network-stream-get-response|network-stream-open-plain|network-stream-open-shell|network-stream-open-starttls|network-stream-open-tls\n|new-fontset|new-frame|new-mode-local-bindings|newline-cache-check|newsticker--age|newsticker--buffer-beginning-of-feed|newsticker--buffer-beginning-of-item\n|newsticker--buffer-do-insert-text|newsticker--buffer-end-of-feed|newsticker--buffer-end-of-item|newsticker--buffer-get-feed-title-at-point\n|newsticker--buffer-get-item-title-at-point|newsticker--buffer-goto|newsticker--buffer-hideshow|newsticker--buffer-insert-all-items\n|newsticker--buffer-insert-item|newsticker--buffer-make-item-completely-visible|newsticker--buffer-redraw|newsticker--buffer-set-faces\n|newsticker--buffer-set-invisibility|newsticker--buffer-set-uptodate|newsticker--buffer-statistics|newsticker--cache-add|newsticker--cache-contains\n|newsticker--cache-dir|newsticker--cache-get-feed|newsticker--cache-item-compare-by-position|newsticker--cache-item-compare-by-time\n|newsticker--cache-item-compare-by-title|newsticker--cache-mark-expired|newsticker--cache-read-feed|newsticker--cache-read-version1\n|newsticker--cache-read|newsticker--cache-remove|newsticker--cache-replace-age|newsticker--cache-save-feed|newsticker--cache-save-version1\n|newsticker--cache-save|newsticker--cache-set-preformatted-contents|newsticker--cache-set-preformatted-title|newsticker--cache-sort\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nnewsticker--cache-update|newsticker--count-grouped-feeds|newsticker--count-groups|newsticker--debug-msg|newsticker--decode-iso8601-date\n|newsticker--decode-rfc822-date|newsticker--desc|newsticker--display-jump|newsticker--display-scroll|newsticker--display-tick\n|newsticker--do-forget-preformatted|newsticker--do-mark-item-at-point-as-read|newsticker--do-print-extra-element|newsticker--do-run-auto-mark-filter\n|newsticker--do-xml-workarounds|newsticker--echo-area-clean-p|newsticker--enclosure|newsticker--extra|newsticker--forget-preformatted\n|newsticker--get-group-names|newsticker--get-icon-url-atom-1\\.0|newsticker--get-logo-url-atom-0\\.3|newsticker--get-logo-url-atom-1\\.0\n|newsticker--get-logo-url-rss-0\\.91|newsticker--get-logo-url-rss-0\\.92|newsticker--get-logo-url-rss-1\\.0|newsticker--get-logo-url-rss-2\\.0\n|newsticker--get-news-by-funcall|newsticker--get-news-by-url-callback|newsticker--get-news-by-url|newsticker--get-news-by-wget\n|newsticker--group-all-groups|newsticker--group-do-find-group|newsticker--group-do-get-group|newsticker--group-do-rename-group\n|newsticker--group-find-parent-group|newsticker--group-get-feeds|newsticker--group-get-group|newsticker--group-get-subgroups\n|newsticker--group-manage-orphan-feeds|newsticker--group-names|newsticker--group-remove-obsolete-feeds|newsticker--group-shift\n|newsticker--guid-to-string|newsticker--guid|newsticker--icon-read|newsticker--icons-dir|newsticker--image-download-by-url-callback\n|newsticker--image-download-by-url|newsticker--image-download-by-wget|newsticker--image-get|newsticker--image-read|newsticker--image-remove\n|newsticker--image-save|newsticker--image-sentinel|newsticker--images-dir|newsticker--imenu-create-index|newsticker--imenu-goto\n|newsticker--insert-enclosure|newsticker--insert-image|newsticker--link|newsticker--lists-intersect-p|newsticker--opml-import-outlines\n|newsticker--parse-atom-0\\.3|newsticker--parse-atom-1\\.0|newsticker--parse-generic-feed|newsticker--parse-generic-items|newsticker--parse-rss-0\\.91\n|newsticker--parse-rss-0\\.92|newsticker--parse-rss-1\\.0|newsticker--parse-rss-2\\.0|newsticker--pos|newsticker--preformatted-contents\n|newsticker--preformatted-title|newsticker--print-extra-elements|newsticker--process-auto-mark-filter-match|newsticker--real-feed-name\n|newsticker--remove-whitespace|newsticker--run-auto-mark-filter|newsticker--sentinel-work|newsticker--sentinel|newsticker--set-customvar-buffer\n|newsticker--set-customvar-formatting|newsticker--set-customvar-retrieval|newsticker--set-customvar-sorting|newsticker--set-customvar-ticker\n|newsticker--set-face-properties|newsticker--splicer|newsticker--start-feed|newsticker--stat-num-items-for-group|newsticker--stat-num-items-total\n|newsticker--stat-num-items|newsticker--stop-feed|newsticker--ticker-text-remove|newsticker--ticker-text-setup|newsticker--time\n|newsticker--title|newsticker--tree-widget-icon-create|newsticker--treeview-activate-node|newsticker--treeview-buffer-init|newsticker--treeview-count-node-items\n|newsticker--treeview-do-get-node-by-id|newsticker--treeview-do-get-node-of-feed|newsticker--treeview-first-feed|newsticker--treeview-frame-init\n|newsticker--treeview-get-current-node|newsticker--treeview-get-feed-vfeed|newsticker--treeview-get-first-child|newsticker--treeview-get-id\n|newsticker--treeview-get-last-child|newsticker--treeview-get-next-sibling|newsticker--treeview-get-next-uncle|newsticker--treeview-get-node-by-id\n|newsticker--treeview-get-node-of-feed|newsticker--treeview-get-other-tree|newsticker--treeview-get-prev-sibling|newsticker--treeview-get-prev-uncle\n|newsticker--treeview-get-second-child|newsticker--treeview-get-selected-item|newsticker--treeview-ids-eq|newsticker--treeview-item-buffer\n|newsticker--treeview-item-show-text|newsticker--treeview-item-show|newsticker--treeview-item-update|newsticker--treeview-item-window\n|newsticker--treeview-list-add-item|newsticker--treeview-list-all-items|newsticker--treeview-list-buffer|newsticker--treeview-list-clear-highlight\n|newsticker--treeview-list-clear|newsticker--treeview-list-compare-item-by-age-reverse|newsticker--treeview-list-compare-item-by-age\n|newsticker--treeview-list-compare-item-by-time-reverse|newsticker--treeview-list-compare-item-by-time|newsticker--treeview-list-compare-item-by-title-reverse\n|newsticker--treeview-list-compare-item-by-title|newsticker--treeview-list-feed-items|newsticker--treeview-list-highlight-start\n|newsticker--treeview-list-immortal-items|newsticker--treeview-list-items-v|newsticker--treeview-list-items-with-age-callback\n|newsticker--treeview-list-items-with-age|newsticker--treeview-list-items|newsticker--treeview-list-new-items|newsticker--treeview-list-obsolete-items\n|newsticker--treeview-list-select|newsticker--treeview-list-sort-by-column|newsticker--treeview-list-sort-items|newsticker--treeview-list-update-faces\n|newsticker--treeview-list-update-highlight|newsticker--treeview-list-update|newsticker--treeview-list-window|newsticker--treeview-load\n|newsticker--treeview-mark-item|newsticker--treeview-nodes-eq|newsticker--treeview-propertize-tag|newsticker--treeview-render-text\n|newsticker--treeview-restore-layout|newsticker--treeview-set-current-node|newsticker--treeview-tree-buffer|newsticker--treeview-tree-do-update-tags\n|newsticker--treeview-tree-expand-status|newsticker--treeview-tree-expand|newsticker--treeview-tree-get-tag|newsticker--treeview-tree-open-menu\n|newsticker--treeview-tree-update-highlight|newsticker--treeview-tree-update-tag|newsticker--treeview-tree-update-tags|newsticker--treeview-tree-update\n|newsticker--treeview-tree-window|newsticker--treeview-unfold-node|newsticker--treeview-virtual-feed-p|newsticker--treeview-window-init\n|newsticker--unxml-attribute|newsticker--unxml-node|newsticker--unxml|newsticker--update-process-ids|newsticker-add-url|newsticker-browse-url-item\n|newsticker-browse-url|newsticker-buffer-force-update|newsticker-buffer-update|newsticker-close-buffer|newsticker-customize|newsticker-download-enclosures\n|newsticker-download-images|newsticker-get-all-news|newsticker-get-news-at-point|newsticker-get-news|newsticker-group-add-group\n|newsticker-group-delete-group|newsticker-group-move-feed|newsticker-group-rename-group|newsticker-group-shift-feed-down|newsticker-group-shift-feed-up\n|newsticker-group-shift-group-down|newsticker-group-shift-group-up|newsticker-handle-url|newsticker-hide-all-desc|newsticker-hide-entry\n|newsticker-hide-extra|newsticker-hide-feed-desc|newsticker-hide-new-item-desc|newsticker-hide-old-item-desc|newsticker-hide-old-items\n|newsticker-htmlr-render|newsticker-item-not-immortal-p|newsticker-item-not-old-p|newsticker-mark-all-items-as-read|newsticker-mark-all-items-at-point-as-read-and-redraw\n|newsticker-mark-all-items-at-point-as-read|newsticker-mark-all-items-of-feed-as-read|newsticker-mark-item-at-point-as-immortal\n|newsticker-mark-item-at-point-as-read|newsticker-mode|newsticker-mouse-browse-url|newsticker-new-item-functions-sample|newsticker-next-feed-available-p\n|newsticker-next-feed|newsticker-next-item-available-p|newsticker-next-item-same-feed|newsticker-next-item|newsticker-next-new-item\n|newsticker-opml-export|newsticker-opml-import|newsticker-plainview|newsticker-previous-feed-available-p|newsticker-previous-feed\n|newsticker-previous-item-available-p|newsticker-previous-item|newsticker-previous-new-item|newsticker-retrieve-random-message\n|newsticker-running-p|newsticker-save-item|newsticker-set-auto-narrow-to-feed|newsticker-set-auto-narrow-to-item|newsticker-show-all-desc\n|newsticker-show-entry|newsticker-show-extra|newsticker-show-feed-desc|newsticker-show-new-item-desc|newsticker-show-news|newsticker-show-old-item-desc\n|newsticker-show-old-items|newsticker-start-ticker|newsticker-start|newsticker-stop-ticker|newsticker-stop|newsticker-ticker-running-p\n|newsticker-toggle-auto-narrow-to-feed|newsticker-toggle-auto-narrow-to-item|newsticker-treeview-browse-url-item|newsticker-treeview-browse-url\n|newsticker-treeview-get-news|newsticker-treeview-item-mode|newsticker-treeview-jump|newsticker-treeview-list-make-sort-button\n|newsticker-treeview-list-mode|newsticker-treeview-mark-item-old|newsticker-treeview-mark-list-items-old|newsticker-treeview-mode\n|newsticker-treeview-mouse-browse-url|newsticker-treeview-next-feed|newsticker-treeview-next-item|newsticker-treeview-next-new-or-immortal-item\n|newsticker-treeview-next-page|newsticker-treeview-prev-feed|newsticker-treeview-prev-item|newsticker-treeview-prev-new-or-immortal-item\n|newsticker-treeview-quit|newsticker-treeview-save-item|newsticker-treeview-save|newsticker-treeview-scroll-item|newsticker-treeview-show-item\n|newsticker-treeview-toggle-item-immortal|newsticker-treeview-tree-click|newsticker-treeview-tree-do-click|newsticker-treeview-update\n|newsticker-treeview|newsticker-w3m-show-inline-images|next-buffer|next-cdabbrev|next-completion|next-error-buffer-p|next-error-find-buffer\n|next-error-follow-minor-mode|next-error-follow-mode-post-command-hook|next-error-internal|next-error-no-select|next-error|next-file\n|next-ifdef|next-line-or-history-element|next-line|next-logical-line|next-match|next-method-p|next-multiframe-window|next-page|next-read-file-uses-dialog-p\n|nintersection|ninth|nndiary-generate-nov-databases|nndoc-add-type|nndraft-request-associate-buffer|nndraft-request-expire-articles\n|nnfolder-generate-active-file|nnheader-accept-process-output|nnheader-article-p|nnheader-article-to-file-alist|nnheader-be-verbose\n|nnheader-cancel-function-timers|nnheader-cancel-timer|nnheader-concat|nnheader-directory-articles|nnheader-directory-files-safe\n|nnheader-directory-files|nnheader-directory-regular-files|nnheader-fake-message-id-p|nnheader-file-error|nnheader-file-size|nnheader-file-to-group\n|nnheader-file-to-number|nnheader-find-etc-directory|nnheader-find-file-noselect|nnheader-find-nov-line|nnheader-fold-continuation-lines\n|nnheader-generate-fake-message-id|nnheader-get-lines-and-char|nnheader-get-report-string|nnheader-get-report|nnheader-group-pathname\n|nnheader-header-value|nnheader-init-server-buffer|nnheader-insert-article-line|nnheader-insert-buffer-substring|nnheader-insert-file-contents\n|nnheader-insert-head|nnheader-insert-header|nnheader-insert-nov-file|nnheader-insert-nov|nnheader-insert-references|nnheader-insert\n|nnheader-message-maybe|nnheader-message|nnheader-ms-strip-cr|nnheader-narrow-to-headers|nnheader-nov-delete-outside-range|nnheader-nov-field\n|nnheader-nov-parse-extra|nnheader-nov-read-integer|nnheader-nov-read-message-id|nnheader-nov-skip-field|nnheader-parse-head|nnheader-parse-naked-head\n|nnheader-parse-nov|nnheader-parse-overview-file|nnheader-re-read-dir|nnheader-remove-body|nnheader-remove-cr-followed-by-lf|nnheader-replace-chars-in-string\n|nnheader-replace-duplicate-chars-in-string|nnheader-replace-header|nnheader-replace-regexp|nnheader-replace-string|nnheader-report\n|nnheader-set-temp-buffer|nnheader-skeleton-replace|nnheader-strip-cr|nnheader-translate-file-chars|nnheader-update-marks-actions\n|nnheader-write-overview-file|nnmail-article-group|nnmail-message-id|nnmail-split-fancy|nnml-generate-nov-databases|nnvirtual-catchup-group\n|nnvirtual-convert-headers|nnvirtual-find-group-art|no-applicable-method|no-next-method|nonincremental-re-search-backward|nonincremental-re-search-forward\n|nonincremental-repeat-search-backward|nonincremental-repeat-search-forward|nonincremental-search-backward|nonincremental-search-forward\n|normal-about-screen|normal-erase-is-backspace-mode|normal-erase-is-backspace-setup-frame|normal-mouse-startup-screen|normal-no-mouse-startup-screen\n|normal-splash-screen|normal-top-level-add-subdirs-to-load-path|normal-top-level-add-to-load-path|normal-top-level|notany|notevery\n|notifications-on-action-signal|notifications-on-closed-signal|nreconc|nroff-backward-text-line|nroff-comment-indent|nroff-count-text-lines\n|nroff-electric-mode|nroff-electric-newline|nroff-forward-text-line|nroff-insert-comment-function|nroff-mode|nroff-outline-level\n|nroff-view|nset-difference|nset-exclusive-or|nslookup-host|nslookup-mode|nslookup|nsm-certificate-part|nsm-check-certificate|nsm-check-plain-connection\n|nsm-check-protocol|nsm-check-tls-connection|nsm-fingerprint-ok-p|nsm-fingerprint|nsm-format-certificate|nsm-host-settings|nsm-id\n|nsm-level|nsm-new-fingerprint-ok-p|nsm-parse-subject|nsm-query-user|nsm-query|nsm-read-settings|nsm-remove-permanent-setting|nsm-remove-temporary-setting\n|nsm-save-host|nsm-verify-connection|nsm-warnings-ok-p|nsm-write-settings|nsublis|nsubst-if-not|nsubst-if|nsubst|nsubstitute-if-not\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nnsubstitute-if|nsubstitute|nth-value|ntlm-ascii2unicode|ntlm-build-auth-request|ntlm-build-auth-response|ntlm-get-password-hashes\n|ntlm-md4hash|ntlm-smb-des-e-p16|ntlm-smb-des-e-p24|ntlm-smb-dohash|ntlm-smb-hash|ntlm-smb-owf-encrypt|ntlm-smb-passwd-hash|ntlm-smb-str-to-key\n|ntlm-string-lshift|ntlm-string-permute|ntlm-string-xor|ntlm-unicode2ascii|nullify-allout-prefix-data|number-at-point|number-to-register\n|nunion|nxml-enable-unicode-char-name-sets|nxml-glyph-display-string|nxml-mode|obj-of-class-p|objc-font-lock-keywords-2|objc-font-lock-keywords-3\n|objc-font-lock-keywords|objc-mode|object-add-to-list|object-assoc-list-safe|object-assoc-list|object-assoc|object-class-fast|object-class-name\n|object-class|object-name-string|object-name|object-of-class-p|object-p|object-print|object-remove-from-list|object-set-name-string\n|object-slots|object-write|occur-1|occur-accumulate-lines|occur-after-change-function|occur-cease-edit|occur-context-lines|occur-edit-mode\n|occur-engine-add-prefix|occur-engine-line|occur-engine|occur-find-match|occur-mode-display-occurrence|occur-mode-find-occurrence\n|occur-mode-goto-occurrence-other-window|occur-mode-goto-occurrence|occur-mode-mouse-goto|occur-mode|occur-next-error|occur-next\n|occur-prev|occur-read-primary-args|occur-rename-buffer|occur-revert-function|occur|octave--indent-new-comment-line|octave-add-log-current-defun\n|octave-beginning-of-defun|octave-beginning-of-line|octave-complete-symbol|octave-completing-read|octave-completion-at-point|octave-eldoc-function-signatures\n|octave-eldoc-function|octave-end-of-line|octave-eval-print-last-sexp|octave-fill-paragraph|octave-find-definition-default-filename\n|octave-find-definition|octave-font-lock-texinfo-comment|octave-function-file-comment|octave-function-file-p|octave-goto-function-definition\n|octave-help-mode|octave-help|octave-hide-process-buffer|octave-in-comment-p|octave-in-string-or-comment-p|octave-in-string-p|octave-indent-comment\n|octave-indent-defun|octave-indent-new-comment-line|octave-insert-defun|octave-kill-process|octave-lookfor|octave-looking-at-kw\n|octave-mark-block|octave-maybe-insert-continuation-string|octave-mode-menu|octave-mode|octave-next-code-line|octave-previous-code-line\n|octave-send-block|octave-send-buffer|octave-send-defun|octave-send-line|octave-send-region|octave-show-process-buffer|octave-skip-comment-forward\n|octave-smie-backward-token|octave-smie-forward-token|octave-smie-rules|octave-source-directories|octave-source-file|octave-submit-bug-report\n|octave-sync-function-file-names|octave-syntax-propertize-function|octave-syntax-propertize-sqs|octave-update-function-file-comment\n|oddp|opascal-block-start|opascal-char-token-at|opascal-charset-token-at|opascal-column-of|opascal-comment-block-end|opascal-comment-block-start\n|opascal-comment-content-start|opascal-comment-indent-of|opascal-composite-type-start|opascal-corrected-indentation|opascal-current-token\n|opascal-debug-goto-next-token|opascal-debug-goto-point|opascal-debug-goto-previous-token|opascal-debug-log|opascal-debug-show-current-string\n|opascal-debug-show-current-token|opascal-debug-token-string|opascal-debug-tokenize-buffer|opascal-debug-tokenize-region|opascal-debug-tokenize-window\n|opascal-else-start|opascal-enclosing-indent-of|opascal-ensure-buffer|opascal-explicit-token-at|opascal-fill-comment|opascal-find-current-body\n|opascal-find-current-def|opascal-find-current-xdef|opascal-find-unit-file|opascal-find-unit-in-directory|opascal-find-unit|opascal-group-end\n|opascal-group-start|opascal-in-token|opascal-indent-line|opascal-indent-of|opascal-is-block-after-expr-statement|opascal-is-directory\n|opascal-is-file|opascal-is-literal-end|opascal-is-simple-class-type|opascal-is-use-clause-end|opascal-is|opascal-line-indent-of\n|opascal-literal-end-pattern|opascal-literal-kind|opascal-literal-start-pattern|opascal-literal-stop-pattern|opascal-literal-token-at\n|opascal-log-msg|opascal-looking-at-string|opascal-match-token|opascal-mode|opascal-new-comment-line|opascal-next-line-start|opascal-next-token\n|opascal-next-visible-token|opascal-on-first-comment-line|opascal-open-group-indent|opascal-point-token-at|opascal-previous-indent-of\n|opascal-previous-token|opascal-progress-done|opascal-progress-start|opascal-save-excursion|opascal-search-directory|opascal-section-indent-of\n|opascal-set-token-end|opascal-set-token-kind|opascal-set-token-start|opascal-space-token-at|opascal-step-progress|opascal-stmt-line-indent-of\n|opascal-string-of|opascal-tab|opascal-token-at|opascal-token-end|opascal-token-kind|opascal-token-of|opascal-token-start|opascal-token-string\n|opascal-word-token-at|open-font|open-gnutls-stream|open-line|open-protocol-stream|open-rectangle-line|open-rectangle|open-tls-stream\n|operate-on-rectangle|optimize-char-table|oref-default|oref|org-2ft|org-N-empty-lines-before-current|org-activate-angle-links|org-activate-bracket-links\n|org-activate-code|org-activate-dates|org-activate-footnote-links|org-activate-mark|org-activate-plain-links|org-activate-tags\n|org-activate-target-links|org-adaptive-fill-function|org-add-angle-brackets|org-add-archive-files|org-add-hook|org-add-link-props\n|org-add-link-type|org-add-log-note|org-add-log-setup|org-add-note|org-add-planning-info|org-add-prop-inherited|org-add-props|org-advertized-archive-subtree\n|org-agenda-check-for-timestamp-as-reason-to-ignore-todo-item|org-agenda-columns|org-agenda-file-p|org-agenda-file-to-front|org-agenda-files\n|org-agenda-list-stuck-projects|org-agenda-list|org-agenda-prepare-buffers|org-agenda-set-restriction-lock|org-agenda-to-appt\n|org-agenda|org-align-all-tags|org-align-tags-here|org-all-targets|org-apply-on-list|org-apps-regexp-alist|org-archive-subtree-default-with-confirmation\n|org-archive-subtree-default|org-archive-subtree|org-archive-to-archive-sibling|org-ascii-export-as-ascii|org-ascii-export-to-ascii\n|org-ascii-publish-to-ascii|org-ascii-publish-to-latin1|org-ascii-publish-to-utf8|org-assign-fast-keys|org-at-TBLFM-p|org-at-block-p\n|org-at-clock-log-p|org-at-comment-p|org-at-date-range-p|org-at-drawer-p|org-at-heading-or-item-p|org-at-heading-p|org-at-item-bullet-p\n|org-at-item-checkbox-p|org-at-item-counter-p|org-at-item-description-p|org-at-item-p|org-at-item-timer-p|org-at-property-p|org-at-regexp-p\n|org-at-table-hline-p|org-at-table-p|org-at-table\\.el-p|org-at-target-p|org-at-timestamp-p|org-attach|org-auto-fill-function|org-auto-repeat-maybe\n|org-babel--shell-command-on-region|org-babel-active-location-p|org-babel-balanced-split|org-babel-check-confirm-evaluate|org-babel-check-evaluate\n|org-babel-check-src-block|org-babel-chomp|org-babel-combine-header-arg-lists|org-babel-comint-buffer-livep|org-babel-comint-eval-invisibly-and-wait-for-file\n|org-babel-comint-in-buffer|org-babel-comint-input-command|org-babel-comint-wait-for-output|org-babel-comint-with-output|org-babel-confirm-evaluate\n|org-babel-current-result-hash|org-babel-del-hlines|org-babel-demarcate-block|org-babel-describe-bindings|org-babel-detangle|org-babel-disassemble-tables\n|org-babel-do-in-edit-buffer|org-babel-do-key-sequence-in-edit-buffer|org-babel-do-load-languages|org-babel-edit-distance|org-babel-enter-header-arg-w-completion\n|org-babel-eval-error-notify|org-babel-eval-read-file|org-babel-eval-wipe-error-buffer|org-babel-eval|org-babel-examplize-region\n|org-babel-execute-buffer|org-babel-execute-maybe|org-babel-execute-safely-maybe|org-babel-execute-src-block-maybe|org-babel-execute-src-block\n|org-babel-execute-subtree|org-babel-execute:emacs-lisp|org-babel-exp-code|org-babel-exp-do-export|org-babel-exp-get-export-buffer\n|org-babel-exp-in-export-file|org-babel-exp-process-buffer|org-babel-exp-results|org-babel-exp-src-block|org-babel-expand-body:emacs-lisp\n|org-babel-expand-body:generic|org-babel-expand-noweb-references|org-babel-expand-src-block-maybe|org-babel-expand-src-block\n|org-babel-find-file-noselect-refresh|org-babel-find-named-block|org-babel-find-named-result|org-babel-format-result|org-babel-get-colnames\n|org-babel-get-header|org-babel-get-inline-src-block-matches|org-babel-get-lob-one-liner-matches|org-babel-get-rownames|org-babel-get-src-block-info\n|org-babel-goto-named-result|org-babel-goto-named-src-block|org-babel-goto-src-block-head|org-babel-hash-at-point|org-babel-header-arg-expand\n|org-babel-hide-all-hashes|org-babel-hide-hash|org-babel-hide-result-toggle-maybe|org-babel-hide-result-toggle|org-babel-import-elisp-from-file\n|org-babel-in-example-or-verbatim|org-babel-initiate-session|org-babel-insert-header-arg|org-babel-insert-result|org-babel-join-splits-near-ch\n|org-babel-load-file|org-babel-load-in-session-maybe|org-babel-load-in-session|org-babel-lob-execute-maybe|org-babel-lob-execute\n|org-babel-lob-get-info|org-babel-lob-ingest|org-babel-local-file-name|org-babel-map-call-lines|org-babel-map-executables|org-babel-map-inline-src-blocks\n|org-babel-map-src-blocks|org-babel-mark-block|org-babel-merge-params|org-babel-named-data-regexp-for-name|org-babel-named-src-block-regexp-for-name\n|org-babel-next-src-block|org-babel-noweb-p|org-babel-noweb-wrap|org-babel-number-p|org-babel-open-src-block-result|org-babel-params-from-properties\n|org-babel-parse-header-arguments|org-babel-parse-inline-src-block-match|org-babel-parse-multiple-vars|org-babel-parse-src-block-match\n|org-babel-pick-name|org-babel-pop-to-session-maybe|org-babel-pop-to-session|org-babel-previous-src-block|org-babel-process-file-name\n|org-babel-process-params|org-babel-put-colnames|org-babel-put-rownames|org-babel-read-link|org-babel-read-list|org-babel-read-result\n|org-babel-read-table|org-babel-read|org-babel-reassemble-table|org-babel-ref-at-ref-p|org-babel-ref-goto-headline-id|org-babel-ref-headline-body\n|org-babel-ref-index-list|org-babel-ref-parse|org-babel-ref-resolve|org-babel-ref-split-args|org-babel-remove-result|org-babel-remove-temporary-directory\n|org-babel-result-cond|org-babel-result-end|org-babel-result-hide-all|org-babel-result-hide-spec|org-babel-result-names|org-babel-result-to-file\n|org-babel-script-escape|org-babel-set-current-result-hash|org-babel-sha1-hash|org-babel-show-result-all|org-babel-spec-to-string\n|org-babel-speed-command-activate|org-babel-speed-command-hook|org-babel-src-block-names|org-babel-string-read|org-babel-switch-to-session-with-code\n|org-babel-switch-to-session|org-babel-table-truncate-at-newline|org-babel-tangle-clean|org-babel-tangle-collect-blocks|org-babel-tangle-comment-links\n|org-babel-tangle-file|org-babel-tangle-jump-to-org|org-babel-tangle-publish|org-babel-tangle-single-block|org-babel-tangle|org-babel-temp-file\n|org-babel-tramp-handle-call-process-region|org-babel-trim|org-babel-update-block-body|org-babel-view-src-block-info|org-babel-when-in-src-block\n|org-babel-where-is-src-block-head|org-babel-where-is-src-block-result|org-babel-with-temp-filebuffer|org-back-over-empty-lines\n|org-back-to-heading|org-backward-element|org-backward-heading-same-level|org-backward-paragraph|org-backward-sentence|org-base-buffer\n|org-batch-agenda-csv|org-batch-agenda|org-batch-store-agenda-views|org-bbdb-anniversaries|org-beamer-export-as-latex|org-beamer-export-to-latex\n|org-beamer-export-to-pdf|org-beamer-insert-options-template|org-beamer-mode|org-beamer-publish-to-latex|org-beamer-publish-to-pdf\n|org-beamer-select-environment|org-before-change-function|org-before-first-heading-p|org-beginning-of-dblock|org-beginning-of-item-list\n|org-beginning-of-item|org-beginning-of-line|org-between-regexps-p|org-block-map|org-block-todo-from-checkboxes|org-block-todo-from-children-or-siblings-or-parent\n|org-bookmark-jump-unhide|org-bound-and-true-p|org-buffer-list|org-buffer-narrowed-p|org-buffer-property-keys|org-cached-entry-get\n|org-calendar-goto-agenda|org-calendar-holiday|org-calendar-select-mouse|org-calendar-select|org-call-for-shift-select|org-call-with-arg\n|org-called-interactively-p|org-capture-import-remember-templates|org-capture-string|org-capture|org-cdlatex-math-modify|org-cdlatex-mode\n|org-cdlatex-underscore-caret|org-change-tag-in-region|org-char-to-string|org-check-after-date|org-check-agenda-file|org-check-and-save-marker\n|org-check-before-date|org-check-before-invisible-edit|org-check-dates-range|org-check-deadlines|org-check-external-command|org-check-for-hidden\n|org-check-running-clock|org-check-version|org-clean-visibility-after-subtree-move|org-clock-cancel|org-clock-display|org-clock-get-clocktable\n|org-clock-goto|org-clock-in-last|org-clock-in|org-clock-is-active|org-clock-out|org-clock-persistence-insinuate|org-clock-remove-overlays\n|org-clock-report|org-clock-sum|org-clock-update-time-maybe|org-clocktable-shift|org-clocktable-try-shift|org-clone-local-variables\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\norg-clone-subtree-with-time-shift|org-closest-date|org-columns-compute|org-columns-get-format-and-top-level|org-columns-number-to-string\n|org-columns-remove-overlays|org-columns|org-combine-plists|org-command-at-point|org-comment-line-break-function|org-comment-or-uncomment-region\n|org-compatible-face|org-complete-expand-structure-template|org-completing-read-no-i|org-completing-read|org-compute-latex-and-related-regexp\n|org-compute-property-at-point|org-content|org-context-p|org-context|org-contextualize-keys|org-contextualize-validate-key|org-convert-to-odd-levels\n|org-convert-to-oddeven-levels|org-copy-face|org-copy-special|org-copy-subtree|org-copy-visible|org-copy|org-count-lines|org-count\n|org-create-customize-menu|org-create-dblock|org-create-formula--latex-header|org-create-formula-image-with-dvipng|org-create-formula-image-with-imagemagick\n|org-create-formula-image|org-create-math-formula|org-create-multibrace-regexp|org-ctrl-c-ctrl-c|org-ctrl-c-minus|org-ctrl-c-ret\n|org-ctrl-c-star|org-current-effective-time|org-current-level|org-current-line-string|org-current-line|org-current-time|org-cursor-to-region-beginning\n|org-customize|org-cut-special|org-cut-subtree|org-cycle-agenda-files|org-cycle-hide-archived-subtrees|org-cycle-hide-drawers|org-cycle-hide-inline-tasks\n|org-cycle-internal-global|org-cycle-internal-local|org-cycle-item-indentation|org-cycle-level|org-cycle-list-bullet|org-cycle-show-empty-lines\n|org-cycle|org-date-from-calendar|org-date-to-gregorian|org-datetree-find-date-create|org-days-to-iso-week|org-days-to-time|org-dblock-update\n|org-dblock-write:clocktable|org-dblock-write:columnview|org-deadline-close|org-deadline|org-decompose-region|org-default-apps\n|org-defkey|org-defvaralias|org-delete-all|org-delete-backward-char|org-delete-char|org-delete-directory|org-delete-property-globally\n|org-delete-property|org-demote-subtree|org-demote|org-detach-overlay|org-diary-sexp-entry|org-diary-to-ical-string|org-diary|org-display-custom-time\n|org-display-inline-images|org-display-inline-modification-hook|org-display-inline-remove-overlay|org-display-outline-path|org-display-warning\n|org-do-demote|org-do-emphasis-faces|org-do-latex-and-related|org-do-occur|org-do-promote|org-do-remove-indentation|org-do-sort\n|org-do-wrap|org-down-element|org-drag-element-backward|org-drag-element-forward|org-drag-line-backward|org-drag-line-forward|org-duration-string-to-minutes\n|org-dvipng-color-format|org-dvipng-color|org-edit-agenda-file-list|org-edit-fixed-width-region|org-edit-special|org-edit-src-abort\n|org-edit-src-code|org-edit-src-continue|org-edit-src-exit|org-edit-src-find-buffer|org-edit-src-find-region-and-lang|org-edit-src-get-indentation\n|org-edit-src-get-label-format|org-edit-src-get-lang|org-edit-src-save|org-element-at-point|org-element-context|org-element-interpret-data\n|org-email-link-description|org-emphasize|org-end-of-item-list|org-end-of-item|org-end-of-line|org-end-of-meta-data-and-drawers\n|org-end-of-subtree|org-entities-create-table|org-entities-help|org-entity-get-representation|org-entity-get|org-entity-latex-math-p\n|org-entry-add-to-multivalued-property|org-entry-beginning-position|org-entry-blocked-p|org-entry-delete|org-entry-end-position\n|org-entry-get-multivalued-property|org-entry-get-with-inheritance|org-entry-get|org-entry-is-done-p|org-entry-is-todo-p|org-entry-member-in-multivalued-property\n|org-entry-properties|org-entry-protect-space|org-entry-put-multivalued-property|org-entry-put|org-entry-remove-from-multivalued-property\n|org-entry-restore-space|org-escape-code-in-region|org-escape-code-in-string|org-eval-in-calendar|org-eval-in-environment|org-eval\n|org-evaluate-time-range|org-every|org-export-as|org-export-dispatch|org-export-insert-default-template|org-export-replace-region-by\n|org-export-string-as|org-export-to-buffer|org-export-to-file|org-extract-attributes|org-extract-log-state-settings|org-face-from-face-or-color\n|org-fast-tag-insert|org-fast-tag-selection|org-fast-tag-show-exit|org-fast-todo-selection|org-feed-goto-inbox|org-feed-show-raw-feed\n|org-feed-update-all|org-feed-update|org-file-apps-entry-match-against-dlink-p|org-file-complete-link|org-file-contents|org-file-equal-p\n|org-file-image-p|org-file-menu-entry|org-file-remote-p|org-files-list|org-fill-line-break-nobreak-p|org-fill-paragraph-with-timestamp-nobreak-p\n|org-fill-paragraph|org-fill-template|org-find-base-buffer-visiting|org-find-dblock|org-find-entry-with-id|org-find-exact-heading-in-directory\n|org-find-exact-headline-in-buffer|org-find-file-at-mouse|org-find-if|org-find-invisible-foreground|org-find-invisible|org-find-library-dir\n|org-find-olp|org-find-overlays|org-find-text-property-in-string|org-find-visible|org-first-headline-recenter|org-first-sibling-p\n|org-fit-window-to-buffer|org-fix-decoded-time|org-fix-indentation|org-fix-position-after-promote|org-fix-tags-on-the-fly|org-fixup-indentation\n|org-fixup-message-id-for-http|org-flag-drawer|org-flag-heading|org-flag-subtree|org-float-time|org-floor\\*|org-follow-timestamp-link\n|org-font-lock-add-priority-faces|org-font-lock-add-tag-faces|org-font-lock-ensure|org-font-lock-hook|org-fontify-entities|org-fontify-like-in-org-mode\n|org-fontify-meta-lines-and-blocks-1|org-fontify-meta-lines-and-blocks|org-footnote-action|org-footnote-all-labels|org-footnote-at-definition-p\n|org-footnote-at-reference-p|org-footnote-auto-adjust-maybe|org-footnote-create-definition|org-footnote-delete-definitions|org-footnote-delete-references\n|org-footnote-delete|org-footnote-get-definition|org-footnote-get-next-reference|org-footnote-goto-definition|org-footnote-goto-local-insertion-point\n|org-footnote-goto-previous-reference|org-footnote-in-valid-context-p|org-footnote-new|org-footnote-next-reference-or-definition\n|org-footnote-normalize-label|org-footnote-normalize|org-footnote-renumber-fn:N|org-footnote-unique-label|org-force-cycle-archived\n|org-force-self-insert|org-format-latex-as-mathml|org-format-latex-mathml-available-p|org-format-latex|org-format-outline-path\n|org-format-seconds|org-forward-element|org-forward-heading-same-level|org-forward-paragraph|org-forward-sentence|org-get-agenda-file-buffer\n|org-get-alist-option|org-get-at-bol|org-get-buffer-for-internal-link|org-get-buffer-tags|org-get-category|org-get-checkbox-statistics-face\n|org-get-compact-tod|org-get-cursor-date|org-get-date-from-calendar|org-get-deadline-time|org-get-entry|org-get-export-keywords\n|org-get-heading|org-get-indentation|org-get-indirect-buffer|org-get-last-sibling|org-get-level-face|org-get-limited-outline-regexp\n|org-get-local-tags-at|org-get-local-tags|org-get-local-variables|org-get-location|org-get-next-sibling|org-get-org-file|org-get-outline-path\n|org-get-packages-alist|org-get-previous-line-level|org-get-priority|org-get-property-block|org-get-repeat|org-get-scheduled-time\n|org-get-string-indentation|org-get-tag-face|org-get-tags-at|org-get-tags-string|org-get-tags|org-get-todo-face|org-get-todo-sequence-head\n|org-get-todo-state|org-get-valid-level|org-get-wdays|org-get-x-clipboard-compat|org-get-x-clipboard|org-git-version|org-global-cycle\n|org-global-tags-completion-table|org-goto-calendar|org-goto-first-child|org-goto-left|org-goto-line|org-goto-local-auto-isearch\n|org-goto-local-search-headings|org-goto-map|org-goto-marker-or-bmk|org-goto-quit|org-goto-ret|org-goto-right|org-goto-sibling|org-goto\n|org-heading-components|org-hh:mm-string-to-minutes|org-hidden-tree-error|org-hide-archived-subtrees|org-hide-block-all|org-hide-block-toggle-all\n|org-hide-block-toggle-maybe|org-hide-block-toggle|org-hide-wide-columns|org-highlight-new-match|org-hours-to-clocksum-string\n|org-html-convert-region-to-html|org-html-export-as-html|org-html-export-to-html|org-html-htmlize-generate-css|org-html-publish-to-html\n|org-icalendar-combine-agenda-files|org-icalendar-export-agenda-files|org-icalendar-export-to-ics|org-icompleting-read|org-id-copy\n|org-id-find-id-file|org-id-find|org-id-get-create|org-id-get-with-outline-drilling|org-id-get-with-outline-path-completion|org-id-get\n|org-id-goto|org-id-new|org-id-store-link|org-id-update-id-locations|org-ido-switchb|org-image-file-name-regexp|org-imenu-get-tree\n|org-imenu-new-marker|org-in-block-p|org-in-clocktable-p|org-in-commented-line|org-in-drawer-p|org-in-fixed-width-region-p|org-in-indented-comment-line\n|org-in-invisibility-spec-p|org-in-item-p|org-in-regexp|org-in-src-block-p|org-in-subtree-not-table-p|org-in-verbatim-emphasis\n|org-inc-effort|org-indent-block|org-indent-drawer|org-indent-item-tree|org-indent-item|org-indent-line-to|org-indent-line|org-indent-mode\n|org-indent-region|org-indent-to-column|org-info|org-inhibit-invisibility|org-insert-all-links|org-insert-columns-dblock|org-insert-comment\n|org-insert-drawer|org-insert-heading-after-current|org-insert-heading-respect-content|org-insert-heading|org-insert-item|org-insert-link-global\n|org-insert-link|org-insert-property-drawer|org-insert-subheading|org-insert-time-stamp|org-insert-todo-heading-respect-content\n|org-insert-todo-heading|org-insert-todo-subheading|org-inside-LaTeX-fragment-p|org-inside-latex-macro-p|org-install-agenda-files-menu\n|org-invisible-p2|org-irc-store-link|org-iread-file-name|org-isearch-end|org-isearch-post-command|org-iswitchb-completing-read\n|org-iswitchb|org-item-beginning-re|org-item-re|org-key|org-kill-is-subtree-p|org-kill-line|org-kill-new|org-kill-note-or-show-branches\n|org-last|org-latex-color-format|org-latex-color|org-latex-convert-region-to-latex|org-latex-export-as-latex|org-latex-export-to-latex\n|org-latex-export-to-pdf|org-latex-packages-to-string|org-latex-publish-to-latex|org-latex-publish-to-pdf|org-let|org-let2|org-level-increment\n|org-link-display-format|org-link-escape|org-link-expand-abbrev|org-link-fontify-links-to-this-file|org-link-prettify|org-link-search\n|org-link-try-special-completion|org-link-unescape-compound|org-link-unescape-single-byte-sequence|org-link-unescape|org-list-at-regexp-after-bullet-p\n|org-list-bullet-string|org-list-context|org-list-delete-item|org-list-get-all-items|org-list-get-bottom-point|org-list-get-bullet\n|org-list-get-checkbox|org-list-get-children|org-list-get-counter|org-list-get-first-item|org-list-get-ind|org-list-get-item-begin\n|org-list-get-item-end-before-blank|org-list-get-item-end|org-list-get-item-number|org-list-get-last-item|org-list-get-list-begin\n|org-list-get-list-end|org-list-get-list-type|org-list-get-next-item|org-list-get-nth|org-list-get-parent|org-list-get-prev-item\n|org-list-get-subtree|org-list-get-tag|org-list-get-top-point|org-list-has-child-p|org-list-in-valid-context-p|org-list-inc-bullet-maybe\n|org-list-indent-item-generic|org-list-insert-item|org-list-insert-radio-list|org-list-item-body-column|org-list-item-trim-br\n|org-list-make-subtree|org-list-parents-alist|org-list-prevs-alist|org-list-repair|org-list-search-backward|org-list-search-forward\n|org-list-search-generic|org-list-send-item|org-list-send-list|org-list-separating-blank-lines-number|org-list-set-bullet|org-list-set-checkbox\n|org-list-set-ind|org-list-set-item-visibility|org-list-set-nth|org-list-struct-apply-struct|org-list-struct-assoc-end|org-list-struct-fix-box\n|org-list-struct-fix-bul|org-list-struct-fix-ind|org-list-struct-fix-item-end|org-list-struct-indent|org-list-struct-outdent|org-list-swap-items\n|org-list-to-generic|org-list-to-html|org-list-to-latex|org-list-to-subtree|org-list-to-texinfo|org-list-use-alpha-bul-p|org-list-write-struct\n|org-load-modules-maybe|org-load-noerror-mustsuffix|org-local-logging|org-log-into-drawer|org-looking-at-p|org-looking-back|org-macro--collect-macros\n|org-macro-expand|org-macro-initialize-templates|org-macro-replace-all|org-make-link-regexps|org-make-link-string|org-make-options-regexp\n|org-make-org-heading-search-string|org-make-parameter-alist|org-make-tags-matcher|org-make-target-link-regexp|org-make-tdiff-string\n|org-map-dblocks|org-map-entries|org-map-region|org-map-tree|org-mark-element|org-mark-ring-goto|org-mark-ring-push|org-mark-subtree\n|org-match-any-p|org-match-line|org-match-sparse-tree|org-match-string-no-properties|org-matcher-time|org-maybe-intangible|org-md-convert-region-to-md\n|org-md-export-as-markdown|org-md-export-to-markdown|org-meta-return|org-metadown|org-metaleft|org-metaright|org-metaup|org-minutes-to-clocksum-string\n|org-minutes-to-hh:mm-string|org-mobile-pull|org-mobile-push|org-mode-flyspell-verify|org-mode-restart|org-mode|org-modifier-cursor-error\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\norg-modify-ts-extra|org-move-item-down|org-move-item-up|org-move-subtree-down|org-move-subtree-up|org-move-to-column|org-narrow-to-block\n|org-narrow-to-element|org-narrow-to-subtree|org-next-block|org-next-item|org-next-link|org-no-popups|org-no-properties|org-no-read-only\n|org-no-warnings|org-normalize-color|org-not-nil|org-notes-order-reversed-p|org-number-sequence|org-occur-in-agenda-files|org-occur-link-in-agenda-files\n|org-occur-next-match|org-occur|org-odt-convert|org-odt-export-as-odf-and-open|org-odt-export-as-odf|org-odt-export-to-odt|org-offer-links-in-entry\n|org-olpath-completing-read|org-on-heading-p|org-on-target-p|org-op-to-function|org-open-at-mouse|org-open-at-point-global|org-open-at-point\n|org-open-file-with-emacs|org-open-file-with-system|org-open-file|org-open-line|org-open-link-from-string|org-optimize-window-after-visibility-change\n|org-order-calendar-date-args|org-org-export-as-org|org-org-export-to-org|org-org-menu|org-org-publish-to-org|org-outdent-item-tree\n|org-outdent-item|org-outline-level|org-outline-overlay-data|org-overlay-before-string|org-overlay-display|org-overview|org-parse-arguments\n|org-parse-time-string|org-paste-special|org-paste-subtree|org-pcomplete-case-double|org-pcomplete-initial|org-plist-delete|org-plot\\/gnuplot\n|org-point-at-end-of-empty-headline|org-point-in-group|org-pop-to-buffer-same-window|org-pos-in-match-range|org-prepare-dblock\n|org-preserve-lc|org-preview-latex-fragment|org-previous-block|org-previous-item|org-previous-line-empty-p|org-previous-link|org-print-speed-command\n|org-priority-down|org-priority-up|org-priority|org-promote-subtree|org-promote|org-propertize|org-property-action|org-property-get-allowed-values\n|org-property-inherit-p|org-property-next-allowed-value|org-property-or-variable-value|org-property-previous-allowed-value|org-property-values\n|org-protect-slash|org-publish-all|org-publish-current-file|org-publish-current-project|org-publish-project|org-publish|org-quote-csv-field\n|org-quote-vert|org-raise-scripts|org-re-property|org-re-timestamp|org-re|org-read-agenda-file-list|org-read-date-analyze|org-read-date-display\n|org-read-date-get-relative|org-read-date|org-read-property-name|org-read-property-value|org-rear-nonsticky-at|org-recenter-calendar\n|org-redisplay-inline-images|org-reduce|org-reduced-level|org-refile--get-location|org-refile-cache-check-set|org-refile-cache-clear\n|org-refile-cache-get|org-refile-cache-put|org-refile-check-position|org-refile-get-location|org-refile-get-targets|org-refile-goto-last-stored\n|org-refile-marker|org-refile-new-child|org-refile|org-refresh-category-properties|org-refresh-properties|org-reftex-citation|org-region-active-p\n|org-reinstall-markers-in-region|org-release-buffers|org-release|org-reload|org-remap|org-remove-angle-brackets|org-remove-double-quotes\n|org-remove-empty-drawer-at|org-remove-empty-overlays-at|org-remove-file|org-remove-flyspell-overlays-in|org-remove-font-lock-display-properties\n|org-remove-from-invisibility-spec|org-remove-if-not|org-remove-if|org-remove-indentation|org-remove-inline-images|org-remove-keyword-keys\n|org-remove-latex-fragment-image-overlays|org-remove-occur-highlights|org-remove-tabs|org-remove-timestamp-with-keyword|org-remove-uninherited-tags\n|org-replace-escapes|org-replace-match-keep-properties|org-require-autoloaded-modules|org-reset-checkbox-state-subtree|org-resolve-clocks\n|org-restart-font-lock|org-return-indent|org-return|org-reveal|org-reverse-string|org-revert-all-org-buffers|org-run-like-in-org-mode\n|org-save-all-org-buffers|org-save-markers-in-region|org-save-outline-visibility|org-sbe|org-scan-tags|org-schedule|org-search-not-self\n|org-search-view|org-select-frame-set-input-focus|org-self-insert-command|org-set-current-tags-overlay|org-set-effort|org-set-emph-re\n|org-set-font-lock-defaults|org-set-frame-title|org-set-local|org-set-modules|org-set-outline-overlay-data|org-set-packages-alist\n|org-set-property-and-value|org-set-property-function|org-set-property|org-set-regexps-and-options-for-tags|org-set-regexps-and-options\n|org-set-startup-visibility|org-set-tag-faces|org-set-tags-command|org-set-tags-to|org-set-tags|org-set-transient-map|org-set-visibility-according-to-property\n|org-setup-comments-handling|org-setup-filling|org-shiftcontroldown|org-shiftcontrolleft|org-shiftcontrolright|org-shiftcontrolup\n|org-shiftdown|org-shiftleft|org-shiftmetadown|org-shiftmetaleft|org-shiftmetaright|org-shiftmetaup|org-shiftright|org-shiftselect-error\n|org-shifttab|org-shiftup|org-shorten-string|org-show-block-all|org-show-context|org-show-empty-lines-in-parent|org-show-entry|org-show-hidden-entry\n|org-show-priority|org-show-siblings|org-show-subtree|org-show-todo-tree|org-skip-over-state-notes|org-skip-whitespace|org-small-year-to-year\n|org-some|org-sort-entries|org-sort-list|org-sort-remove-invisible|org-sort|org-sparse-tree|org-speed-command-activate|org-speed-command-default-hook\n|org-speed-command-help|org-speed-move-safe|org-speedbar-set-agenda-restriction|org-splice-latex-header|org-split-string|org-src-associate-babel-session\n|org-src-babel-configure-edit-buffer|org-src-construct-edit-buffer-name|org-src-do-at-code-block|org-src-do-key-sequence-at-code-block\n|org-src-edit-buffer-p|org-src-font-lock-fontify-block|org-src-fontify-block|org-src-fontify-buffer|org-src-get-lang-mode|org-src-in-org-buffer\n|org-src-mode-configure-edit-buffer|org-src-mode|org-src-native-tab-command-maybe|org-src-switch-to-buffer|org-src-tangle|org-store-agenda-views\n|org-store-link-props|org-store-link|org-store-log-note|org-store-new-agenda-file-list|org-string-match-p|org-string-nw-p|org-string-width\n|org-string<=|org-string<>|org-string>|org-string>=|org-sublist|org-submit-bug-report|org-substitute-posix-classes|org-subtree-end-visible-p\n|org-switch-to-buffer-other-window|org-switchb|org-table-align|org-table-begin|org-table-blank-field|org-table-convert-region|org-table-convert\n|org-table-copy-down|org-table-copy-region|org-table-create-or-convert-from-region|org-table-create-with-table\\.el|org-table-create\n|org-table-current-dline|org-table-cut-region|org-table-delete-column|org-table-edit-field|org-table-edit-formulas|org-table-end\n|org-table-eval-formula|org-table-export|org-table-field-info|org-table-get-stored-formulas|org-table-goto-column|org-table-hline-and-move\n|org-table-import|org-table-insert-column|org-table-insert-hline|org-table-insert-row|org-table-iterate-buffer-tables|org-table-iterate\n|org-table-justify-field-maybe|org-table-kill-row|org-table-map-tables|org-table-maybe-eval-formula|org-table-maybe-recalculate-line\n|org-table-move-column-left|org-table-move-column-right|org-table-move-column|org-table-move-row-down|org-table-move-row-up|org-table-move-row\n|org-table-next-field|org-table-next-row|org-table-p|org-table-paste-rectangle|org-table-previous-field|org-table-recalculate-buffer-tables\n|org-table-recalculate|org-table-recognize-table\\.el|org-table-rotate-recalc-marks|org-table-set-constants|org-table-sort-lines\n|org-table-sum|org-table-to-lisp|org-table-toggle-coordinate-overlays|org-table-toggle-formula-debugger|org-table-wrap-region\n|org-tag-inherit-p|org-tags-completion-function|org-tags-expand|org-tags-sparse-tree|org-tags-view|org-tbl-menu|org-texinfo-convert-region-to-texinfo\n|org-texinfo-publish-to-texinfo|org-thing-at-point|org-time-from-absolute|org-time-stamp-format|org-time-stamp-inactive|org-time-stamp-to-now\n|org-time-stamp|org-time-string-to-absolute|org-time-string-to-seconds|org-time-string-to-time|org-time-today|org-time<|org-time<=\n|org-time<>|org-time=|org-time>|org-time>=|org-timer-change-times-in-region|org-timer-item|org-timer-set-timer|org-timer-start|org-timer\n|org-timestamp-change|org-timestamp-down-day|org-timestamp-down|org-timestamp-format|org-timestamp-has-time-p|org-timestamp-split-range\n|org-timestamp-translate|org-timestamp-up-day|org-timestamp-up|org-today|org-todo-list|org-todo-trigger-tag-changes|org-todo-yesterday\n|org-todo|org-toggle-archive-tag|org-toggle-checkbox|org-toggle-comment|org-toggle-custom-properties-visibility|org-toggle-fixed-width-section\n|org-toggle-heading|org-toggle-inline-images|org-toggle-item|org-toggle-link-display|org-toggle-ordered-property|org-toggle-pretty-entities\n|org-toggle-sticky-agenda|org-toggle-tag|org-toggle-tags-groups|org-toggle-time-stamp-overlays|org-toggle-timestamp-type|org-tr-level\n|org-translate-link-from-planner|org-translate-link|org-translate-time|org-transpose-element|org-transpose-words|org-tree-to-indirect-buffer\n|org-trim|org-truely-invisible-p|org-try-cdlatex-tab|org-try-structure-completion|org-unescape-code-in-region|org-unescape-code-in-string\n|org-unfontify-region|org-unindent-buffer|org-uniquify-alist|org-uniquify|org-unlogged-message|org-unmodified|org-up-element|org-up-heading-all\n|org-up-heading-safe|org-update-all-dblocks|org-update-checkbox-count-maybe|org-update-checkbox-count|org-update-dblock|org-update-parent-todo-statistics\n|org-update-property-plist|org-update-radio-target-regexp|org-update-statistics-cookies|org-uuidgen-p|org-version-check|org-version\n|org-with-gensyms|org-with-limited-levels|org-with-point-at|org-with-remote-undo|org-with-silent-modifications|org-with-wide-buffer\n|org-without-partial-completion|org-wrap|org-xemacs-without-invisibility|org-xor|org-yank-folding-would-swallow-text|org-yank-generic\n|org-yank|org<>|orgstruct\\+\\+-mode|orgstruct-error|orgstruct-make-binding|orgstruct-mode|orgstruct-setup|orgtbl-mode|orgtbl-to-csv\n|orgtbl-to-generic|orgtbl-to-html|orgtbl-to-latex|orgtbl-to-orgtbl|orgtbl-to-texinfo|orgtbl-to-tsv|oset-default|oset|other-frame|other-window-for-scrolling\n|outline-back-to-heading|outline-backward-same-level|outline-demote|outline-end-of-heading|outline-end-of-subtree|outline-flag-region\n|outline-flag-subtree|outline-font-lock-face|outline-forward-same-level|outline-get-last-sibling|outline-get-next-sibling|outline-head-from-level\n|outline-headers-as-kill|outline-insert-heading|outline-invent-heading|outline-invisible-p|outline-isearch-open-invisible|outline-level\n|outline-map-region|outline-mark-subtree|outline-minor-mode|outline-mode|outline-move-subtree-down|outline-move-subtree-up|outline-next-heading\n|outline-next-preface|outline-next-visible-heading|outline-on-heading-p|outline-previous-heading|outline-previous-visible-heading\n|outline-promote|outline-reveal-toggle-invisible|outline-show-heading|outline-toggle-children|outline-up-heading|outlineify-sticky\n|outlinify-sticky|overlay-lists|overload-docstring-extension|overload-obsoleted-by|overload-that-obsolete|package--ac-desc-extras--cmacro\n|package--ac-desc-extras|package--ac-desc-kind--cmacro|package--ac-desc-kind|package--ac-desc-reqs--cmacro|package--ac-desc-reqs\n|package--ac-desc-summary--cmacro|package--ac-desc-summary|package--ac-desc-version--cmacro|package--ac-desc-version|package--add-to-archive-contents\n|package--alist-to-plist-args|package--archive-file-exists-p|package--bi-desc-reqs--cmacro|package--bi-desc-reqs|package--bi-desc-summary--cmacro\n|package--bi-desc-summary|package--bi-desc-version--cmacro|package--bi-desc-version|package--check-signature|package--compile\n|package--description-file|package--display-verify-error|package--download-one-archive|package--from-builtin|package--has-keyword-p\n|package--list-loaded-files|package--make-autoloads-and-stuff|package--mapc|package--prepare-dependencies|package--push|package--read-archive-file\n|package--with-work-buffer|package--write-file-no-coding|package-activate-1|package-activate|package-all-keywords|package-archive-base\n|package-autoload-ensure-default-file|package-buffer-info|package-built-in-p|package-compute-transaction|package-delete|package-desc--keywords\n|package-desc-archive--cmacro|package-desc-archive|package-desc-create--cmacro|package-desc-create|package-desc-dir--cmacro|package-desc-dir\n|package-desc-extras--cmacro|package-desc-extras|package-desc-from-define|package-desc-full-name|package-desc-kind--cmacro|package-desc-kind\n|package-desc-name--cmacro|package-desc-name|package-desc-p--cmacro|package-desc-p|package-desc-reqs--cmacro|package-desc-reqs\n|package-desc-signed--cmacro|package-desc-signed|package-desc-status|package-desc-suffix|package-desc-summary--cmacro|package-desc-summary\n|package-desc-version--cmacro|package-desc-version|package-disabled-p|package-download-transaction|package-generate-autoloads\n|package-generate-description-file|package-import-keyring|package-install-button-action|package-install-file|package-install-from-archive\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\npackage-install-from-buffer|package-install|package-installed-p|package-keyword-button-action|package-list-packages-no-fetch\n|package-list-packages|package-load-all-descriptors|package-load-descriptor|package-make-ac-desc--cmacro|package-make-ac-desc\n|package-make-builtin--cmacro|package-make-builtin|package-make-button|package-menu--archive-predicate|package-menu--description-predicate\n|package-menu--find-upgrades|package-menu--generate|package-menu--name-predicate|package-menu--print-info|package-menu--refresh\n|package-menu--status-predicate|package-menu--version-predicate|package-menu-backup-unmark|package-menu-describe-package|package-menu-execute\n|package-menu-filter|package-menu-get-status|package-menu-mark-delete|package-menu-mark-install|package-menu-mark-obsolete-for-deletion\n|package-menu-mark-unmark|package-menu-mark-upgrades|package-menu-mode|package-menu-quick-help|package-menu-refresh|package-menu-view-commentary\n|package-process-define-package|package-read-all-archive-contents|package-read-archive-contents|package-read-from-string|package-refresh-contents\n|package-show-package-list|package-strip-rcs-id|package-tar-file-info|package-unpack|package-untar-buffer|package-version-join\n|pages-copy-header-and-position|pages-directory-address-mode|pages-directory-for-addresses|pages-directory-goto-with-mouse|pages-directory-goto\n|pages-directory-mode|pages-directory|pairlis|paragraph-indent-minor-mode|paragraph-indent-text-mode|parse-iso8601-time-string\n|parse-time-string-chars|parse-time-string|parse-time-tokenize|pascal-beg-of-defun|pascal-build-defun-re|pascal-calculate-indent\n|pascal-capitalize-keywords|pascal-change-keywords|pascal-comment-area|pascal-comp-defun|pascal-complete-word|pascal-completion\n|pascal-completions-at-point|pascal-declaration-beg|pascal-declaration-end|pascal-downcase-keywords|pascal-end-of-defun|pascal-end-of-statement\n|pascal-func-completion|pascal-get-completion-decl|pascal-get-default-symbol|pascal-get-lineup-indent|pascal-goto-defun|pascal-hide-other-defuns\n|pascal-indent-case|pascal-indent-command|pascal-indent-comment|pascal-indent-declaration|pascal-indent-level|pascal-indent-line\n|pascal-indent-paramlist|pascal-insert-block|pascal-keyword-completion|pascal-mark-defun|pascal-mode|pascal-outline-change|pascal-outline-goto-defun\n|pascal-outline-mode|pascal-outline-next-defun|pascal-outline-prev-defun|pascal-outline|pascal-set-auto-comments|pascal-show-all\n|pascal-show-completions|pascal-star-comment|pascal-string-diff|pascal-type-completion|pascal-uncomment-area|pascal-upcase-keywords\n|pascal-var-completion|pascal-within-string|password-cache-add|password-cache-remove|password-in-cache-p|password-read-and-add\n|password-read-from-cache|password-read|password-reset|pcase--and|pcase--app-subst-match|pcase--app-subst-rest|pcase--eval|pcase--expand\n|pcase--fgrep|pcase--flip|pcase--funcall|pcase--if|pcase--let\\*|pcase--macroexpand|pcase--mark-used|pcase--match|pcase--mutually-exclusive-p\n|pcase--self-quoting-p|pcase--small-branch-p|pcase--split-equal|pcase--split-match|pcase--split-member|pcase--split-pred|pcase--split-rest\n|pcase--trivial-upat-p|pcase--u|pcase--u1|pcase-codegen|pcase-defmacro|pcase-dolist|pcase-exhaustive|pcase-let\\*|pcase-let|pcomplete\\/ack-grep\n|pcomplete\\/ack|pcomplete\\/ag|pcomplete\\/bzip2|pcomplete\\/cd|pcomplete\\/chgrp|pcomplete\\/chown|pcomplete\\/cvs|pcomplete\\/erc-mode\\/CLEARTOPIC\n|pcomplete\\/erc-mode\\/CTCP|pcomplete\\/erc-mode\\/DCC|pcomplete\\/erc-mode\\/DEOP|pcomplete\\/erc-mode\\/DESCRIBE|pcomplete\\/erc-mode\\/IDLE\n|pcomplete\\/erc-mode\\/KICK|pcomplete\\/erc-mode\\/LEAVE|pcomplete\\/erc-mode\\/LOAD|pcomplete\\/erc-mode\\/ME|pcomplete\\/erc-mode\\/MODE\n|pcomplete\\/erc-mode\\/MSG|pcomplete\\/erc-mode\\/NAMES|pcomplete\\/erc-mode\\/NOTICE|pcomplete\\/erc-mode\\/NOTIFY|pcomplete\\/erc-mode\\/OP\n|pcomplete\\/erc-mode\\/PART|pcomplete\\/erc-mode\\/QUERY|pcomplete\\/erc-mode\\/SAY|pcomplete\\/erc-mode\\/SOUND|pcomplete\\/erc-mode\\/TOPIC\n|pcomplete\\/erc-mode\\/UNIGNORE|pcomplete\\/erc-mode\\/WHOIS|pcomplete\\/erc-mode\\/complete-command|pcomplete\\/eshell-mode\\/eshell-debug\n|pcomplete\\/eshell-mode\\/export|pcomplete\\/eshell-mode\\/setq|pcomplete\\/eshell-mode\\/unset|pcomplete\\/gdb|pcomplete\\/gzip\n|pcomplete\\/kill|pcomplete\\/make|pcomplete\\/mount|pcomplete\\/org-mode\\/block-option\\/clocktable|pcomplete\\/org-mode\\/block-option\\/src\n|pcomplete\\/org-mode\\/drawer|pcomplete\\/org-mode\\/file-option\\/author|pcomplete\\/org-mode\\/file-option\\/bind|pcomplete\\/org-mode\\/file-option\\/date\n|pcomplete\\/org-mode\\/file-option\\/email|pcomplete\\/org-mode\\/file-option\\/exclude_tags|pcomplete\\/org-mode\\/file-option\\/filetags\n|pcomplete\\/org-mode\\/file-option\\/infojs_opt|pcomplete\\/org-mode\\/file-option\\/language|pcomplete\\/org-mode\\/file-option\\/options\n|pcomplete\\/org-mode\\/file-option\\/priorities|pcomplete\\/org-mode\\/file-option\\/select_tags|pcomplete\\/org-mode\\/file-option\\/startup\n|pcomplete\\/org-mode\\/file-option\\/tags|pcomplete\\/org-mode\\/file-option\\/title|pcomplete\\/org-mode\\/file-option|pcomplete\\/org-mode\\/link\n|pcomplete\\/org-mode\\/prop|pcomplete\\/org-mode\\/searchhead|pcomplete\\/org-mode\\/tag|pcomplete\\/org-mode\\/tex|pcomplete\\/org-mode\\/todo\n|pcomplete\\/pushd|pcomplete\\/rm|pcomplete\\/rmdir|pcomplete\\/rpm|pcomplete\\/scp|pcomplete\\/ssh|pcomplete\\/tar|pcomplete\\/time\n|pcomplete\\/tlmgr|pcomplete\\/umount|pcomplete\\/which|pcomplete\\/xargs|pcomplete--common-suffix|pcomplete--entries|pcomplete--help\n|pcomplete--here|pcomplete--test|pcomplete-actual-arg|pcomplete-all-entries|pcomplete-arg|pcomplete-begin|pcomplete-comint-setup\n|pcomplete-command-name|pcomplete-completions-at-point|pcomplete-completions|pcomplete-continue|pcomplete-dirs-or-entries|pcomplete-dirs\n|pcomplete-do-complete|pcomplete-entries|pcomplete-erc-all-nicks|pcomplete-erc-channels|pcomplete-erc-command-name|pcomplete-erc-commands\n|pcomplete-erc-nicks|pcomplete-erc-not-ops|pcomplete-erc-ops|pcomplete-erc-parse-arguments|pcomplete-erc-setup|pcomplete-event-matches-key-specifier-p\n|pcomplete-executables|pcomplete-expand-and-complete|pcomplete-expand|pcomplete-find-completion-function|pcomplete-help|pcomplete-here\\*\n|pcomplete-here|pcomplete-insert-entry|pcomplete-list|pcomplete-match-beginning|pcomplete-match-end|pcomplete-match-string|pcomplete-match\n|pcomplete-next-arg|pcomplete-opt|pcomplete-parse-arguments|pcomplete-parse-buffer-arguments|pcomplete-parse-comint-arguments\n|pcomplete-process-result|pcomplete-quote-argument|pcomplete-read-event|pcomplete-restore-windows|pcomplete-reverse|pcomplete-shell-setup\n|pcomplete-show-completions|pcomplete-std-complete|pcomplete-stub|pcomplete-test|pcomplete-uniqify-list|pcomplete-unquote-argument\n|pcomplete|pdb|pending-delete-mode|perl-backward-to-noncomment|perl-backward-to-start-of-continued-exp|perl-beginning-of-function\n|perl-calculate-indent|perl-comment-indent|perl-continuation-line-p|perl-current-defun-name|perl-electric-noindent-p|perl-electric-terminator\n|perl-end-of-function|perl-font-lock-syntactic-face-function|perl-hanging-paren-p|perl-indent-command|perl-indent-exp|perl-indent-line\n|perl-indent-new-calculate|perl-mark-function|perl-mode|perl-outline-level|perl-quote-syntax-table|perl-syntax-propertize-function\n|perl-syntax-propertize-special-constructs|perldb|picture-backward-clear-column|picture-backward-column|picture-beginning-of-line\n|picture-clear-column|picture-clear-line|picture-clear-rectangle-to-register|picture-clear-rectangle|picture-current-line|picture-delete-char\n|picture-draw-rectangle|picture-duplicate-line|picture-end-of-line|picture-forward-column|picture-insert-rectangle|picture-insert\n|picture-mode-exit|picture-mode|picture-motion-reverse|picture-motion|picture-mouse-set-point|picture-move-down|picture-move-up\n|picture-move|picture-movement-down|picture-movement-left|picture-movement-ne|picture-movement-nw|picture-movement-right|picture-movement-se\n|picture-movement-sw|picture-movement-up|picture-newline|picture-open-line|picture-replace-match|picture-self-insert|picture-set-motion\n|picture-set-tab-stops|picture-snarf-rectangle|picture-tab-search|picture-tab|picture-update-desired-column|picture-yank-at-click\n|picture-yank-rectangle-from-register|picture-yank-rectangle|pike-font-lock-keywords-2|pike-font-lock-keywords-3|pike-font-lock-keywords\n|pike-mode|ping|plain-TeX-mode|plain-tex-mode|play-sound-internal|plstore-delete|plstore-find|plstore-get-file|plstore-mode|plstore-open\n|plstore-put|plstore-save|plusp|po-find-charset|po-find-file-coding-system-guts|po-find-file-coding-system|point-at-bol|point-at-eol\n|point-to-register|pong-display-options|pong-init-buffer|pong-init|pong-move-down|pong-move-left|pong-move-right|pong-move-up|pong-pause\n|pong-quit|pong-resume|pong-update-bat|pong-update-game|pong-update-score|pong|pop-global-mark|pop-tag-mark|pop-to-buffer-same-window\n|pop-to-mark-command|pop3-movemail|popup-menu-normalize-position|popup-menu|position-if-not|position-if|position|posn-set-point|post-read-decode-hz\n|pp-buffer|pp-display-expression|pp-eval-expression|pp-eval-last-sexp|pp-last-sexp|pp-macroexpand-expression|pp-macroexpand-last-sexp\n|pp-to-string|pr-alist-custom-set|pr-article-date|pr-auto-mode-p|pr-call-process|pr-choice-alist|pr-command|pr-complete-alist|pr-create-interface\n|pr-customize|pr-delete-file-if-exists|pr-delete-file|pr-despool-preview|pr-despool-print|pr-despool-ps-print|pr-despool-using-ghostscript\n|pr-do-update-menus|pr-dosify-file-name|pr-eval-alist|pr-eval-local-alist|pr-eval-setting-alist|pr-even-or-odd-pages|pr-expand-file-name\n|pr-file-list|pr-find-buffer-visiting|pr-find-command|pr-get-symbol|pr-global-menubar|pr-gnus-lpr|pr-gnus-print|pr-help|pr-i-directory\n|pr-i-ps-send|pr-insert-button|pr-insert-checkbox|pr-insert-italic|pr-insert-menu|pr-insert-radio-button|pr-insert-section-1|pr-insert-section-2\n|pr-insert-section-3|pr-insert-section-4|pr-insert-section-5|pr-insert-section-6|pr-insert-section-7|pr-insert-toggle|pr-interactive-dir-args\n|pr-interactive-dir|pr-interactive-n-up-file|pr-interactive-n-up-inout|pr-interactive-n-up|pr-interactive-ps-dir-args|pr-interactive-regexp\n|pr-interface-directory|pr-interface-help|pr-interface-infile|pr-interface-outfile|pr-interface-preview|pr-interface-printify|pr-interface-ps-print\n|pr-interface-ps|pr-interface-quit|pr-interface-save|pr-interface-txt-print|pr-interface|pr-keep-region-active|pr-kill-help|pr-kill-local-variable\n|pr-local-variable|pr-lpr-message-from-summary|pr-menu-alist|pr-menu-bind|pr-menu-char-height|pr-menu-char-width|pr-menu-create\n|pr-menu-get-item|pr-menu-index|pr-menu-lock|pr-menu-lookup|pr-menu-position|pr-menu-set-item-name|pr-menu-set-ps-title|pr-menu-set-txt-title\n|pr-menu-set-utility-title|pr-mh-current-message|pr-mh-lpr-1|pr-mh-lpr-2|pr-mh-print-1|pr-mh-print-2|pr-mode-alist-p|pr-mode-lpr\n|pr-mode-print|pr-path-command|pr-printify-buffer|pr-printify-directory|pr-printify-region|pr-prompt-gs|pr-prompt-region|pr-prompt\n|pr-ps-buffer-preview|pr-ps-buffer-print|pr-ps-buffer-ps-print|pr-ps-buffer-using-ghostscript|pr-ps-directory-preview|pr-ps-directory-print\n|pr-ps-directory-ps-print|pr-ps-directory-using-ghostscript|pr-ps-fast-fire|pr-ps-file-list|pr-ps-file-preview|pr-ps-file-print\n|pr-ps-file-ps-print|pr-ps-file-up-preview|pr-ps-file-up-ps-print|pr-ps-file-using-ghostscript|pr-ps-file|pr-ps-infile-preprint\n|pr-ps-message-from-summary|pr-ps-mode-preview|pr-ps-mode-print|pr-ps-mode-ps-print|pr-ps-mode-using-ghostscript|pr-ps-mode|pr-ps-name-custom-set\n|pr-ps-name|pr-ps-outfile-preprint|pr-ps-preview|pr-ps-print|pr-ps-region-preview|pr-ps-region-print|pr-ps-region-ps-print|pr-ps-region-using-ghostscript\n|pr-ps-set-printer|pr-ps-set-utility|pr-ps-using-ghostscript|pr-ps-utility-args|pr-ps-utility-custom-set|pr-ps-utility-process\n|pr-ps-utility|pr-read-string|pr-region-active-p|pr-region-active-string|pr-region-active-symbol|pr-remove-nil-from-list|pr-rmail-lpr\n|pr-rmail-print|pr-save-file-modes|pr-set-dir-args|pr-set-keymap-name|pr-set-keymap-parents|pr-set-n-up-and-filename|pr-set-outfilename\n|pr-set-ps-dir-args|pr-setup|pr-show-lpr-setup|pr-show-pr-setup|pr-show-ps-setup|pr-show-setup|pr-standard-file-name|pr-switches-string\n|pr-switches|pr-text2ps|pr-toggle-duplex-menu|pr-toggle-duplex|pr-toggle-faces-menu|pr-toggle-faces|pr-toggle-file-duplex-menu|pr-toggle-file-duplex\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\npr-toggle-file-landscape-menu|pr-toggle-file-landscape|pr-toggle-file-tumble-menu|pr-toggle-file-tumble|pr-toggle-ghostscript-menu\n|pr-toggle-ghostscript|pr-toggle-header-frame-menu|pr-toggle-header-frame|pr-toggle-header-menu|pr-toggle-header|pr-toggle-landscape-menu\n|pr-toggle-landscape|pr-toggle-line-menu|pr-toggle-line|pr-toggle-lock-menu|pr-toggle-lock|pr-toggle-mode-menu|pr-toggle-mode|pr-toggle-region-menu\n|pr-toggle-region|pr-toggle-spool-menu|pr-toggle-spool|pr-toggle-tumble-menu|pr-toggle-tumble|pr-toggle-upside-down-menu|pr-toggle-upside-down\n|pr-toggle-zebra-menu|pr-toggle-zebra|pr-toggle|pr-txt-buffer|pr-txt-directory|pr-txt-fast-fire|pr-txt-mode|pr-txt-name-custom-set\n|pr-txt-name|pr-txt-print|pr-txt-region|pr-txt-set-printer|pr-unixify-file-name|pr-update-checkbox|pr-update-menus|pr-update-mode-line\n|pr-update-radio-button|pr-update-var|pr-using-ghostscript-p|pr-visible-p|pr-vm-lpr|pr-vm-print|pr-widget-field-action|pre-write-encode-hz\n|preceding-sexp|prefer-coding-system|prepare-abbrev-list-buffer|prepend-to-buffer|prepend-to-register|prettify-symbols--compose-symbol\n|prettify-symbols--make-keywords|prettify-symbols-mode-set-explicitly|prettify-symbols-mode|previous-buffer|previous-completion\n|previous-error-no-select|previous-error|previous-ifdef|previous-line-or-history-element|previous-line|previous-logical-line|previous-multiframe-window\n|previous-page|prin1-char|princ-list|print-buffer|print-help-return-message|print-region-1|print-region-new-buffer|print-region|printify-region\n|proced-<|proced-auto-update-timer|proced-children-alist|proced-children-pids|proced-do-mark-all|proced-do-mark|proced-filter-children\n|proced-filter-interactive|proced-filter-parents|proced-filter|proced-format-args|proced-format-interactive|proced-format-start\n|proced-format-time|proced-format-tree|proced-format-ttname|proced-format|proced-header-line|proced-help|proced-insert-mark|proced-log-summary\n|proced-log|proced-mark-all|proced-mark-children|proced-mark-parents|proced-mark-process-alist|proced-mark|proced-marked-processes\n|proced-marker-regexp|proced-menu|proced-mode|proced-move-to-goal-column|proced-omit-process|proced-omit-processes|proced-pid-at-point\n|proced-process-attributes|proced-process-tree-internal|proced-process-tree|proced-refine|proced-renice|proced-revert|proced-send-signal\n|proced-sort-header|proced-sort-interactive|proced-sort-p|proced-sort-pcpu|proced-sort-pid|proced-sort-pmem|proced-sort-start|proced-sort-time\n|proced-sort-user|proced-sort|proced-string-lessp|proced-success-message|proced-time-lessp|proced-toggle-auto-update|proced-toggle-marks\n|proced-toggle-tree|proced-tree-insert|proced-tree|proced-undo|proced-unmark-all|proced-unmark-backward|proced-unmark|proced-update\n|proced-why|proced-with-processes-buffer|proced-xor|proced|process-filter-multibyte-p|process-inherit-coding-system-flag|process-kill-without-query\n|process-menu-delete-process|process-menu-mode|process-menu-visit-buffer|proclaim|produce-allout-mode-menubar-entries|profiler-calltree-build-1\n|profiler-calltree-build-unified|profiler-calltree-build|profiler-calltree-children--cmacro|profiler-calltree-children|profiler-calltree-compute-percentages\n|profiler-calltree-count--cmacro|profiler-calltree-count-percent--cmacro|profiler-calltree-count-percent|profiler-calltree-count\n|profiler-calltree-count<|profiler-calltree-count>|profiler-calltree-depth|profiler-calltree-entry--cmacro|profiler-calltree-entry\n|profiler-calltree-find|profiler-calltree-leaf-p|profiler-calltree-p--cmacro|profiler-calltree-p|profiler-calltree-parent--cmacro\n|profiler-calltree-parent|profiler-calltree-sort|profiler-calltree-walk|profiler-compare-logs|profiler-compare-profiles|profiler-cpu-log\n|profiler-cpu-profile|profiler-cpu-running-p|profiler-cpu-start|profiler-cpu-stop|profiler-ensure-string|profiler-find-profile-other-frame\n|profiler-find-profile-other-window|profiler-find-profile|profiler-fixup-backtrace|profiler-fixup-entry|profiler-fixup-log|profiler-fixup-profile\n|profiler-format-entry|profiler-format-number|profiler-format-percent|profiler-format|profiler-make-calltree--cmacro|profiler-make-calltree\n|profiler-make-profile--cmacro|profiler-make-profile|profiler-memory-log|profiler-memory-profile|profiler-memory-running-p|profiler-memory-start\n|profiler-memory-stop|profiler-profile-diff-p--cmacro|profiler-profile-diff-p|profiler-profile-log--cmacro|profiler-profile-log\n|profiler-profile-tag--cmacro|profiler-profile-tag|profiler-profile-timestamp--cmacro|profiler-profile-timestamp|profiler-profile-type--cmacro\n|profiler-profile-type|profiler-profile-version--cmacro|profiler-profile-version|profiler-read-profile|profiler-report-ascending-sort\n|profiler-report-calltree-at-point|profiler-report-collapse-entry|profiler-report-compare-profile|profiler-report-cpu|profiler-report-descending-sort\n|profiler-report-describe-entry|profiler-report-expand-entry|profiler-report-find-entry|profiler-report-header-line-format|profiler-report-insert-calltree-children\n|profiler-report-insert-calltree|profiler-report-line-format|profiler-report-make-buffer-name|profiler-report-make-entry-part\n|profiler-report-make-name-part|profiler-report-memory|profiler-report-menu|profiler-report-mode|profiler-report-move-to-entry\n|profiler-report-next-entry|profiler-report-previous-entry|profiler-report-profile-other-frame|profiler-report-profile-other-window\n|profiler-report-profile|profiler-report-render-calltree-1|profiler-report-render-calltree|profiler-report-render-reversed-calltree\n|profiler-report-rerender-calltree|profiler-report-setup-buffer-1|profiler-report-setup-buffer|profiler-report-toggle-entry|profiler-report-write-profile\n|profiler-report|profiler-reset|profiler-running-p|profiler-start|profiler-stop|profiler-write-profile|prog-indent-sexp|progress-reporter-do-update\n|progv|project-add-file|project-compile-project|project-compile-target|project-debug-target|project-delete-target|project-dist-files\n|project-edit-file-target|project-interactive-select-target|project-make-dist|project-new-target-custom|project-new-target|project-remove-file\n|project-rescan|project-run-target|prolog-Info-follow-nearest-node|prolog-atleast-version|prolog-atom-under-point|prolog-beginning-of-clause\n|prolog-beginning-of-predicate|prolog-bsts|prolog-buffer-module|prolog-build-info-alist|prolog-build-prolog-command|prolog-clause-end\n|prolog-clause-info|prolog-clause-start|prolog-comment-limits|prolog-compile-buffer|prolog-compile-file|prolog-compile-predicate\n|prolog-compile-region|prolog-compile-string|prolog-consult-buffer|prolog-consult-compile-buffer|prolog-consult-compile-file|prolog-consult-compile-filter\n|prolog-consult-compile-predicate|prolog-consult-compile-region|prolog-consult-compile|prolog-consult-file|prolog-consult-predicate\n|prolog-consult-region|prolog-consult-string|prolog-debug-off|prolog-debug-on|prolog-disable-sicstus-sd|prolog-do-auto-fill|prolog-edit-menu-insert-move\n|prolog-edit-menu-runtime|prolog-electric--colon|prolog-electric--dash|prolog-electric--dot|prolog-electric--if-then-else|prolog-electric--underscore\n|prolog-enable-sicstus-sd|prolog-end-of-clause|prolog-end-of-predicate|prolog-ensure-process|prolog-face-name-p|prolog-fill-paragraph\n|prolog-find-documentation|prolog-find-term|prolog-find-unmatched-paren|prolog-find-value-by-system|prolog-font-lock-keywords\n|prolog-font-lock-object-matcher|prolog-get-predspec|prolog-goto-predicate-info|prolog-goto-prolog-process-buffer|prolog-guess-fill-prefix\n|prolog-help-apropos|prolog-help-info|prolog-help-on-predicate|prolog-help-online|prolog-in-object|prolog-indent-buffer|prolog-indent-predicate\n|prolog-inferior-buffer|prolog-inferior-guess-flavor|prolog-inferior-menu-all|prolog-inferior-menu|prolog-inferior-mode|prolog-inferior-self-insert-command\n|prolog-input-filter|prolog-insert-module-modeline|prolog-insert-next-clause|prolog-insert-predicate-template|prolog-insert-predspec\n|prolog-mark-clause|prolog-mark-predicate|prolog-menu-help|prolog-menu|prolog-mode-keybindings-common|prolog-mode-keybindings-edit\n|prolog-mode-keybindings-inferior|prolog-mode-variables|prolog-mode-version|prolog-mode|prolog-old-process-buffer|prolog-old-process-file\n|prolog-old-process-predicate|prolog-old-process-region|prolog-paren-balance|prolog-parse-sicstus-compilation-errors|prolog-post-self-insert\n|prolog-pred-end|prolog-pred-start|prolog-process-insert-string|prolog-program-name|prolog-program-switches|prolog-prompt-regexp\n|prolog-read-predicate|prolog-replace-in-string|prolog-smie-backward-token|prolog-smie-forward-token|prolog-smie-rules|prolog-temporary-file\n|prolog-toggle-sicstus-sd|prolog-trace-off|prolog-trace-on|prolog-uncomment-region|prolog-variables-to-anonymous|prolog-view-predspec\n|prolog-zip-off|prolog-zip-on|prompt-for-change-log-name|propertized-buffer-identification|prune-directory-list|ps-alist-position\n|ps-avg-char-width|ps-background-image|ps-background-pages|ps-background-text|ps-background|ps-basic-plot-str|ps-basic-plot-string\n|ps-basic-plot-whitespace|ps-begin-file|ps-begin-job|ps-begin-page|ps-boolean-capitalized|ps-boolean-constant|ps-build-reference-face-lists\n|ps-color-device|ps-color-scale|ps-color-values|ps-comment-string|ps-continue-line|ps-control-character|ps-count-lines-preprint\n|ps-count-lines|ps-del|ps-despool|ps-do-despool|ps-end-job|ps-end-page|ps-end-sheet|ps-extend-face-list|ps-extend-face|ps-extension-bit\n|ps-face-attribute-list|ps-face-attributes|ps-face-background-color-p|ps-face-background-name|ps-face-background|ps-face-bold-p\n|ps-face-box-p|ps-face-color-p|ps-face-extract-color|ps-face-foreground-color-p|ps-face-foreground-name|ps-face-italic-p|ps-face-overline-p\n|ps-face-strikeout-p|ps-face-underlined-p|ps-find-wrappoint|ps-float-format|ps-flush-output|ps-font-alist|ps-font-lock-face-attributes\n|ps-font-number|ps-font|ps-fonts|ps-format-color|ps-frame-parameter|ps-generate-header-line|ps-generate-header|ps-generate-postscript-with-faces\n|ps-generate-postscript-with-faces1|ps-generate-postscript|ps-generate|ps-get-boundingbox|ps-get-buffer-name|ps-get-font-size|ps-get-page-dimensions\n|ps-get-size|ps-get|ps-header-dirpart|ps-header-page|ps-header-sheet|ps-init-output-queue|ps-insert-file|ps-insert-string|ps-kill-emacs-check\n|ps-line-height|ps-line-lengths-internal|ps-line-lengths|ps-lookup|ps-map-face|ps-mark-active-p|ps-message-log-max|ps-mode--syntax-propertize-special\n|ps-mode-RE|ps-mode-backward-delete-char|ps-mode-center|ps-mode-comment-out-region|ps-mode-epsf-rich|ps-mode-epsf-sparse|ps-mode-heapsort\n|ps-mode-latin-extended|ps-mode-main|ps-mode-octal-buffer|ps-mode-octal-region|ps-mode-other-newline|ps-mode-print-buffer|ps-mode-print-region\n|ps-mode-right|ps-mode-show-version|ps-mode-smie-rules|ps-mode-submit-bug-report|ps-mode-syntax-propertize|ps-mode-target-column\n|ps-mode-uncomment-region|ps-mode|ps-mule-begin-job|ps-mule-end-job|ps-mule-initialize|ps-n-up-columns|ps-n-up-end|ps-n-up-filling\n|ps-n-up-landscape|ps-n-up-lines|ps-n-up-missing|ps-n-up-printing|ps-n-up-repeat|ps-n-up-xcolumn|ps-n-up-xline|ps-n-up-xstart|ps-n-up-ycolumn\n|ps-n-up-yline|ps-n-up-ystart|ps-nb-pages-buffer|ps-nb-pages-region|ps-nb-pages|ps-next-line|ps-next-page|ps-output-boolean|ps-output-frame-properties\n|ps-output-prologue|ps-output-string-prim|ps-output-string|ps-output|ps-page-dimensions-get-height|ps-page-dimensions-get-media\n|ps-page-dimensions-get-width|ps-page-number|ps-plot-region|ps-plot-string|ps-plot-with-face|ps-plot|ps-print-buffer-with-faces\n|ps-print-buffer|ps-print-customize|ps-print-ensure-fontified|ps-print-page-p|ps-print-preprint-region|ps-print-preprint|ps-print-quote\n|ps-print-region-with-faces|ps-print-region|ps-print-sheet-p|ps-print-with-faces|ps-print-without-faces|ps-printing-region|ps-prologue-file\n|ps-put|ps-remove-duplicates|ps-restore-selected-pages|ps-rgb-color|ps-run-boundingbox|ps-run-buffer|ps-run-cleanup|ps-run-clear\n|ps-run-goto-error|ps-run-kill|ps-run-make-tmp-filename|ps-run-mode|ps-run-mouse-goto-error|ps-run-quit|ps-run-region|ps-run-running\n|ps-run-send-string|ps-run-start|ps-screen-to-bit-face|ps-select-font|ps-selected-pages|ps-set-bg|ps-set-color|ps-set-face-attribute\n|ps-set-face-bold|ps-set-face-italic|ps-set-face-underline|ps-set-font|ps-setup|ps-size-scale|ps-skip-newline|ps-space-width|ps-spool-buffer-with-faces\n|ps-spool-buffer|ps-spool-region-with-faces|ps-spool-region|ps-spool-with-faces|ps-spool-without-faces|ps-time-stamp-hh:mm:ss|ps-time-stamp-iso8601\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nps-time-stamp-locale-default|ps-time-stamp-mon-dd-yyyy|ps-time-stamp-yyyy-mm-dd|ps-title-line-height|ps-value-string|ps-value\n|psetf|psetq|push-mark-command|pushnew|put-unicode-property-internal|pwd|python-check|python-comint-output-filter-function|python-comint-postoutput-scroll-to-bottom\n|python-completion-at-point|python-completion-complete-at-point|python-define-auxiliary-skeleton|python-docstring-at-p|python-eldoc--get-doc-at-point\n|python-eldoc-at-point|python-eldoc-function|python-electric-pair-string-delimiter|python-ffap-module-path|python-fill-comment\n|python-fill-decorator|python-fill-paragraph|python-fill-paren|python-fill-string|python-font-lock-syntactic-face-function|python-imenu--build-tree\n|python-imenu--put-parent|python-imenu-create-flat-index|python-imenu-create-index|python-imenu-format-item-label|python-imenu-format-parent-item-jump-label\n|python-imenu-format-parent-item-label|python-indent-calculate-indentation|python-indent-calculate-levels|python-indent-context\n|python-indent-dedent-line-backspace|python-indent-dedent-line|python-indent-guess-indent-offset|python-indent-line-function\n|python-indent-line|python-indent-post-self-insert-function|python-indent-region|python-indent-shift-left|python-indent-shift-right\n|python-indent-toggle-levels|python-info-assignment-continuation-line-p|python-info-beginning-of-backslash|python-info-beginning-of-block-p\n|python-info-beginning-of-statement-p|python-info-block-continuation-line-p|python-info-closing-block-message|python-info-closing-block\n|python-info-continuation-line-p|python-info-current-defun|python-info-current-line-comment-p|python-info-current-line-empty-p\n|python-info-current-symbol|python-info-dedenter-opening-block-message|python-info-dedenter-opening-block-position|python-info-dedenter-opening-block-positions\n|python-info-dedenter-statement-p|python-info-encoding-from-cookie|python-info-encoding|python-info-end-of-block-p|python-info-end-of-statement-p\n|python-info-line-ends-backslash-p|python-info-looking-at-beginning-of-defun|python-info-ppss-comment-or-string-p|python-info-ppss-context-type\n|python-info-ppss-context|python-info-statement-ends-block-p|python-info-statement-starts-block-p|python-menu|python-mode|python-nav--beginning-of-defun\n|python-nav--forward-defun|python-nav--forward-sexp|python-nav--lisp-forward-sexp-safe|python-nav--lisp-forward-sexp|python-nav--syntactically\n|python-nav--up-list|python-nav-backward-block|python-nav-backward-defun|python-nav-backward-sexp-safe|python-nav-backward-sexp\n|python-nav-backward-statement|python-nav-backward-up-list|python-nav-beginning-of-block|python-nav-beginning-of-defun|python-nav-beginning-of-statement\n|python-nav-end-of-block|python-nav-end-of-defun|python-nav-end-of-statement|python-nav-forward-block|python-nav-forward-defun\n|python-nav-forward-sexp-safe|python-nav-forward-sexp|python-nav-forward-statement|python-nav-if-name-main|python-nav-up-list\n|python-pdbtrack-comint-output-filter-function|python-pdbtrack-set-tracked-buffer|python-proc|python-send-receive|python-send-string\n|python-shell--save-temp-file|python-shell-accept-process-output|python-shell-buffer-substring|python-shell-calculate-command\n|python-shell-calculate-exec-path|python-shell-calculate-process-environment|python-shell-calculate-pythonpath|python-shell-comint-end-of-output-p\n|python-shell-completion-at-point|python-shell-completion-complete-at-point|python-shell-completion-complete-or-indent|python-shell-completion-get-completions\n|python-shell-font-lock-cleanup-buffer|python-shell-font-lock-comint-output-filter-function|python-shell-font-lock-get-or-create-buffer\n|python-shell-font-lock-kill-buffer|python-shell-font-lock-post-command-hook|python-shell-font-lock-toggle|python-shell-font-lock-turn-off\n|python-shell-font-lock-turn-on|python-shell-font-lock-with-font-lock-buffer|python-shell-get-buffer|python-shell-get-or-create-process\n|python-shell-get-process-name|python-shell-get-process|python-shell-internal-get-or-create-process|python-shell-internal-get-process-name\n|python-shell-internal-send-string|python-shell-make-comint|python-shell-output-filter|python-shell-package-enable|python-shell-parse-command\n|python-shell-prompt-detect|python-shell-prompt-set-calculated-regexps|python-shell-prompt-validate-regexps|python-shell-send-buffer\n|python-shell-send-defun|python-shell-send-file|python-shell-send-region|python-shell-send-setup-code|python-shell-send-string-no-output\n|python-shell-send-string|python-shell-switch-to-shell|python-shell-with-shell-buffer|python-skeleton--else|python-skeleton--except\n|python-skeleton--finally|python-skeleton-add-menu-items|python-skeleton-class|python-skeleton-def|python-skeleton-define|python-skeleton-for\n|python-skeleton-if|python-skeleton-import|python-skeleton-try|python-skeleton-while|python-syntax-comment-or-string-p|python-syntax-context-type\n|python-syntax-context|python-syntax-count-quotes|python-syntax-stringify|python-util-clone-local-variables|python-util-comint-last-prompt\n|python-util-forward-comment|python-util-goto-line|python-util-list-directories|python-util-list-files|python-util-list-packages\n|python-util-popn|python-util-strip-string|python-util-text-properties-replace-name|python-util-valid-regexp-p|quail-define-package\n|quail-define-rules|quail-defrule-internal|quail-defrule|quail-install-decode-map|quail-install-map|quail-set-keyboard-layout|quail-show-keyboard-layout\n|quail-title|quail-update-leim-list-file|quail-use-package|query-dig|query-font|query-fontset|query-replace-compile-replacement\n|query-replace-descr|query-replace-read-args|query-replace-read-from|query-replace-read-to|query-replace-regexp-eval|query-replace-regexp\n|query-replace|quick-calc|quickurl-add-url|quickurl-ask|quickurl-browse-url-ask|quickurl-browse-url|quickurl-edit-urls|quickurl-find-url\n|quickurl-grab-url|quickurl-insert|quickurl-list-add-url|quickurl-list-insert-lookup|quickurl-list-insert-naked-url|quickurl-list-insert-url\n|quickurl-list-insert-with-desc|quickurl-list-insert-with-lookup|quickurl-list-insert|quickurl-list-make-inserter|quickurl-list-mode\n|quickurl-list-mouse-select|quickurl-list-populate-buffer|quickurl-list-quit|quickurl-list|quickurl-load-urls|quickurl-make-url\n|quickurl-read|quickurl-save-urls|quickurl-url-comment|quickurl-url-commented-p|quickurl-url-description|quickurl-url-keyword|quickurl-url-url\n|quickurl|quit-windows-on|quoted-insert|quoted-printable-decode-region|quoted-printable-decode-string|quoted-printable-encode-region\n|r2b-barf-output|r2b-capitalize-title-region|r2b-capitalize-title|r2b-clear-variables|r2b-convert-buffer|r2b-convert-month|r2b-convert-record\n|r2b-get-field|r2b-help|r2b-isa-proceedings|r2b-isa-university|r2b-match|r2b-moveq|r2b-put-field|r2b-require|r2b-reset|r2b-set-match\n|r2b-snarf-input|r2b-trace|r2b-warning|radians-to-degrees|raise-sexp|random\\*|random-state-p|rassoc\\*|rassoc-if-not|rassoc-if|rcirc--connection-open-p\n|rcirc-abbreviate|rcirc-activity-string|rcirc-add-face|rcirc-add-or-remove|rcirc-any-buffer|rcirc-authenticate|rcirc-browse-url\n|rcirc-buffer-nick|rcirc-buffer-process|rcirc-change-major-mode-hook|rcirc-channel-nicks|rcirc-channel-p|rcirc-check-auth-status\n|rcirc-clean-up-buffer|rcirc-clear-activity|rcirc-clear-unread|rcirc-cmd-bright|rcirc-cmd-ctcp|rcirc-cmd-dim|rcirc-cmd-ignore|rcirc-cmd-invite\n|rcirc-cmd-join|rcirc-cmd-keyword|rcirc-cmd-kick|rcirc-cmd-list|rcirc-cmd-me|rcirc-cmd-mode|rcirc-cmd-msg|rcirc-cmd-names|rcirc-cmd-nick\n|rcirc-cmd-oper|rcirc-cmd-part|rcirc-cmd-query|rcirc-cmd-quit|rcirc-cmd-quote|rcirc-cmd-reconnect|rcirc-cmd-topic|rcirc-cmd-whois\n|rcirc-complete|rcirc-completion-at-point|rcirc-condition-filter|rcirc-connect|rcirc-ctcp-sender-PING|rcirc-debug|rcirc-delete-process\n|rcirc-disconnect-buffer|rcirc-edit-multiline|rcirc-elapsed-lines|rcirc-facify|rcirc-fill-paragraph|rcirc-filter|rcirc-float-time\n|rcirc-format-response-string|rcirc-generate-log-filename|rcirc-generate-new-buffer-name|rcirc-get-buffer-create|rcirc-get-buffer\n|rcirc-get-temp-buffer-create|rcirc-handler-001|rcirc-handler-301|rcirc-handler-317|rcirc-handler-332|rcirc-handler-333|rcirc-handler-353\n|rcirc-handler-366|rcirc-handler-433|rcirc-handler-477|rcirc-handler-CTCP-response|rcirc-handler-CTCP|rcirc-handler-ERROR|rcirc-handler-INVITE\n|rcirc-handler-JOIN|rcirc-handler-KICK|rcirc-handler-MODE|rcirc-handler-NICK|rcirc-handler-NOTICE|rcirc-handler-PART-or-KICK|rcirc-handler-PART\n|rcirc-handler-PING|rcirc-handler-PONG|rcirc-handler-PRIVMSG|rcirc-handler-QUIT|rcirc-handler-TOPIC|rcirc-handler-WALLOPS|rcirc-handler-ctcp-ACTION\n|rcirc-handler-ctcp-KEEPALIVE|rcirc-handler-ctcp-TIME|rcirc-handler-ctcp-VERSION|rcirc-handler-generic|rcirc-ignore-update-automatic\n|rcirc-insert-next-input|rcirc-insert-prev-input|rcirc-join-channels-post-auth|rcirc-join-channels|rcirc-jump-to-first-unread-line\n|rcirc-keepalive|rcirc-kill-buffer-hook|rcirc-last-line|rcirc-last-quit-line|rcirc-log-write|rcirc-log|rcirc-looking-at-input|rcirc-make-trees\n|rcirc-markup-attributes|rcirc-markup-bright-nicks|rcirc-markup-fill|rcirc-markup-keywords|rcirc-markup-my-nick|rcirc-markup-timestamp\n|rcirc-markup-urls|rcirc-maybe-remember-nick-quit|rcirc-mode|rcirc-multiline-minor-cancel|rcirc-multiline-minor-mode|rcirc-multiline-minor-submit\n|rcirc-next-active-buffer|rcirc-nick-channels|rcirc-nick-remove|rcirc-nick|rcirc-nickname<|rcirc-non-irc-buffer|rcirc-omit-mode\n|rcirc-prev-input-string|rcirc-print|rcirc-process-command|rcirc-process-input-line|rcirc-process-list|rcirc-process-message|rcirc-process-server-response-1\n|rcirc-process-server-response|rcirc-prompt-for-encryption|rcirc-put-nick-channel|rcirc-rebuild-tree|rcirc-record-activity|rcirc-remove-nick-channel\n|rcirc-reschedule-timeout|rcirc-send-ctcp|rcirc-send-input|rcirc-send-message|rcirc-send-privmsg|rcirc-send-string|rcirc-sentinel\n|rcirc-server-name|rcirc-set-changed|rcirc-short-buffer-name|rcirc-sort-nicknames-join|rcirc-split-activity|rcirc-split-message\n|rcirc-switch-to-server-buffer|rcirc-target-buffer|rcirc-toggle-ignore-buffer-activity|rcirc-toggle-low-priority|rcirc-track-minor-mode\n|rcirc-update-activity-string|rcirc-update-prompt|rcirc-update-short-buffer-names|rcirc-user-nick|rcirc-view-log-file|rcirc-visible-buffers\n|rcirc-window-configuration-change-1|rcirc-window-configuration-change|rcirc|re-builder-unload-function|re-search-backward-lax-whitespace\n|re-search-forward-lax-whitespace|read--expression|read-abbrev-file|read-all-face-attributes|read-buffer-file-coding-system|read-buffer-to-switch\n|read-char-by-name|read-charset|read-cookie|read-envvar-name|read-extended-command|read-face-and-attribute|read-face-attribute|read-face-font\n|read-face-name|read-feature|read-file-name--defaults|read-file-name-default|read-file-name-internal|read-from-whole-string|read-hiragana-string\n|read-input|read-language-name|read-multilingual-string|read-number|read-regexp-suggestions|reb-assert-buffer-in-window|reb-auto-update\n|reb-change-syntax|reb-change-target-buffer|reb-color-display-p|reb-cook-regexp|reb-copy|reb-count-subexps|reb-delete-overlays|reb-display-subexp\n|reb-do-update|reb-empty-regexp|reb-enter-subexp-mode|reb-force-update|reb-initialize-buffer|reb-insert-regexp|reb-kill-buffer|reb-lisp-mode\n|reb-lisp-syntax-p|reb-mode-buffer-p|reb-mode-common|reb-mode|reb-next-match|reb-prev-match|reb-quit-subexp-mode|reb-quit|reb-read-regexp\n|reb-show-subexp|reb-target-binding|reb-toggle-case|reb-update-modestring|reb-update-overlays|reb-update-regexp|rebuild-mail-abbrevs\n|recentf-add-file|recentf-apply-filename-handlers|recentf-apply-menu-filter|recentf-arrange-by-dir|recentf-arrange-by-mode|recentf-arrange-by-rule\n|recentf-auto-cleanup|recentf-build-mode-rules|recentf-cancel-dialog|recentf-cleanup|recentf-dialog-goto-first|recentf-dialog-mode\n|recentf-dialog|recentf-digit-shortcut-command-name|recentf-dir-rule|recentf-directory-compare|recentf-dump-variable|recentf-edit-list-select\n|recentf-edit-list-validate|recentf-edit-list|recentf-elements|recentf-enabled-p|recentf-expand-file-name|recentf-file-name-nondir\n|recentf-filter-changer-select|recentf-filter-changer|recentf-hide-menu|recentf-include-p|recentf-indirect-mode-rule|recentf-keep-default-predicate\n|recentf-keep-p|recentf-load-list|recentf-make-default-menu-element|recentf-make-menu-element|recentf-make-menu-item|recentf-make-menu-items\n|recentf-match-rule|recentf-menu-bar|recentf-menu-customization-changed|recentf-menu-element-item|recentf-menu-element-value|recentf-menu-elements\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nrmail-output-body-to-file|rmail-output-to-rmail-buffer|rmail-output|rmail-parse-url|rmail-perm-variables|rmail-pop-to-buffer|rmail-previous-labeled-message\n|rmail-previous-message|rmail-previous-same-subject|rmail-previous-undeleted-message|rmail-probe|rmail-quit|rmail-read-label|rmail-redecode-body\n|rmail-reply|rmail-require-mime-maybe|rmail-resend|rmail-restore-desktop-buffer|rmail-retry-failure|rmail-revert|rmail-search-backwards\n|rmail-search-message|rmail-search|rmail-select-summary|rmail-set-attribute-1|rmail-set-attribute|rmail-set-header-1|rmail-set-header\n|rmail-set-message-counters-counter|rmail-set-message-counters|rmail-set-message-deleted-p|rmail-set-remote-password|rmail-show-message-1\n|rmail-show-message|rmail-simplified-subject-regexp|rmail-simplified-subject|rmail-sort-by-author|rmail-sort-by-correspondent\n|rmail-sort-by-date|rmail-sort-by-labels|rmail-sort-by-lines|rmail-sort-by-recipient|rmail-sort-by-subject|rmail-speedbar-button\n|rmail-speedbar-buttons|rmail-speedbar-find-file|rmail-speedbar-move-message-to-folder-on-line|rmail-speedbar-move-message|rmail-start-mail\n|rmail-summary-by-labels|rmail-summary-by-recipients|rmail-summary-by-regexp|rmail-summary-by-senders|rmail-summary-by-topic|rmail-summary-displayed\n|rmail-summary-exists|rmail-summary|rmail-swap-buffers-maybe|rmail-swap-buffers|rmail-toggle-header|rmail-undelete-previous-message\n|rmail-unfontify-buffer-function|rmail-unknown-mail-followup-to|rmail-unrmail-new-mail-maybe|rmail-unrmail-new-mail|rmail-update-summary\n|rmail-variables|rmail-view-buffer-kill-buffer-hook|rmail-what-message|rmail-widen-to-current-msgbeg|rmail-widen|rmail-write-region-annotate\n|rmail-yank-current-message|rmail|rng-c-load-schema|rng-nxml-mode-init|rng-validate-mode|rng-xsd-compile|robin-define-package|robin-modify-package\n|robin-use-package|rot13-other-window|rot13-region|rot13-string|rot13|rotate-yank-pointer|rotatef|round\\*|route|rsh|rst-minor-mode\n|rst-mode|ruby--at-indentation-p|ruby--detect-encoding|ruby--electric-indent-p|ruby--encoding-comment-required-p|ruby--insert-coding-comment\n|ruby--inverse-string-quote|ruby--string-region|ruby-accurate-end-of-block|ruby-add-log-current-method|ruby-backward-sexp|ruby-beginning-of-block\n|ruby-beginning-of-defun|ruby-beginning-of-indent|ruby-block-contains-point|ruby-brace-to-do-end|ruby-calculate-indent|ruby-current-indentation\n|ruby-deep-indent-paren-p|ruby-do-end-to-brace|ruby-end-of-block|ruby-end-of-defun|ruby-expr-beg|ruby-forward-sexp|ruby-forward-string\n|ruby-here-doc-end-match|ruby-imenu-create-index-in-block|ruby-imenu-create-index|ruby-in-ppss-context-p|ruby-indent-exp|ruby-indent-line\n|ruby-indent-size|ruby-indent-to|ruby-match-expression-expansion|ruby-mode-menu|ruby-mode-set-encoding|ruby-mode-variables|ruby-mode\n|ruby-move-to-block|ruby-parse-partial|ruby-parse-region|ruby-singleton-class-p|ruby-smie--args-separator-p|ruby-smie--at-dot-call\n|ruby-smie--backward-token|ruby-smie--bosp|ruby-smie--closing-pipe-p|ruby-smie--forward-token|ruby-smie--implicit-semi-p|ruby-smie--indent-to-stmt-p\n|ruby-smie--indent-to-stmt|ruby-smie--opening-pipe-p|ruby-smie--redundant-do-p|ruby-smie-rules|ruby-special-char-p|ruby-string-at-point-p\n|ruby-syntax-enclosing-percent-literal|ruby-syntax-expansion-allowed-p|ruby-syntax-propertize-expansion|ruby-syntax-propertize-expansions\n|ruby-syntax-propertize-function|ruby-syntax-propertize-heredoc|ruby-syntax-propertize-percent-literal|ruby-toggle-block|ruby-toggle-string-quotes\n|ruler--save-header-line-format|ruler-mode-character-validate|ruler-mode-full-window-width|ruler-mode-mouse-add-tab-stop|ruler-mode-mouse-del-tab-stop\n|ruler-mode-mouse-drag-any-column-iteration|ruler-mode-mouse-drag-any-column|ruler-mode-mouse-grab-any-column|ruler-mode-mouse-set-left-margin\n|ruler-mode-mouse-set-right-margin|ruler-mode-ruler|ruler-mode-space|ruler-mode-toggle-show-tab-stops|ruler-mode-window-col|ruler-mode\n|run-dig|run-hook-wrapped|run-lisp|run-network-program|run-octave|run-prolog|run-python-internal|run-python|run-scheme|run-tcl|run-window-configuration-change-hook\n|run-window-scroll-functions|run-with-timer|rx-\\*\\*|rx-=|rx->=|rx-and|rx-any-condense-range|rx-any-delete-from-range|rx-any|rx-anything\n|rx-atomic-p|rx-backref|rx-category|rx-check-any-string|rx-check-any|rx-check-backref|rx-check-category|rx-check-not|rx-check|rx-eval\n|rx-form|rx-greedy|rx-group-if|rx-info|rx-kleene|rx-not-char|rx-not-syntax|rx-not|rx-or|rx-regexp|rx-repeat|rx-submatch-n|rx-submatch\n|rx-syntax|rx-to-string|rx-trans-forms|rx|rzgrep|safe-date-to-time|same-class-fast-p|same-class-p|sanitize-coding-system-list|sasl-anonymous-response\n|sasl-client-mechanism|sasl-client-name|sasl-client-properties|sasl-client-property|sasl-client-server|sasl-client-service|sasl-client-set-properties\n|sasl-client-set-property|sasl-error|sasl-find-mechanism|sasl-login-response-1|sasl-login-response-2|sasl-make-client|sasl-make-mechanism\n|sasl-mechanism-name|sasl-mechanism-steps|sasl-next-step|sasl-plain-response|sasl-read-passphrase|sasl-step-data|sasl-step-set-data\n|sasl-unique-id-function|sasl-unique-id-number-base36|sasl-unique-id|save-buffers-kill-emacs|save-buffers-kill-terminal|save-completions-to-file\n|save-place-alist-to-file|save-place-dired-hook|save-place-find-file-hook|save-place-forget-unreadable-files|save-place-kill-emacs-hook\n|save-place-to-alist|save-places-to-alist|savehist-autosave|savehist-install|savehist-load|savehist-minibuffer-hook|savehist-mode\n|savehist-printable|savehist-save|savehist-trim-history|savehist-uninstall|sc-S-cite-region-limit|sc-S-mail-header-nuke-list|sc-S-mail-nuke-mail-headers\n|sc-S-preferred-attribution-list|sc-S-preferred-header-style|sc-T-auto-fill-region|sc-T-confirm-always|sc-T-describe|sc-T-downcase\n|sc-T-electric-circular|sc-T-electric-references|sc-T-fixup-whitespace|sc-T-mail-nuke-blank-lines|sc-T-nested-citation|sc-T-use-only-preferences\n|sc-add-citation-level|sc-ask|sc-attribs-!-addresses|sc-attribs-%@-addresses|sc-attribs-<>-addresses|sc-attribs-chop-address|sc-attribs-chop-namestring\n|sc-attribs-emailname|sc-attribs-extract-namestring|sc-attribs-filter-namelist|sc-attribs-strip-initials|sc-cite-coerce-cited-line\n|sc-cite-coerce-dumb-citer|sc-cite-line|sc-cite-original|sc-cite-regexp|sc-cite-region|sc-describe|sc-electric-mode|sc-eref-abort\n|sc-eref-exit|sc-eref-goto|sc-eref-insert-selected|sc-eref-jump|sc-eref-next|sc-eref-prev|sc-eref-setn|sc-eref-show|sc-fill-if-different\n|sc-get-address|sc-guess-attribution|sc-guess-nesting|sc-hdr|sc-header-attributed-writes|sc-header-author-writes|sc-header-inarticle-writes\n|sc-header-on-said|sc-header-regarding-adds|sc-header-verbose|sc-insert-citation|sc-insert-reference|sc-mail-append-field|sc-mail-build-nuke-frame\n|sc-mail-check-from|sc-mail-cleanup-blank-lines|sc-mail-error-in-mail-field|sc-mail-fetch-field|sc-mail-field-query|sc-mail-field\n|sc-mail-nuke-continuation-line|sc-mail-nuke-header-line|sc-mail-nuke-line|sc-mail-process-headers|sc-make-citation|sc-minor-mode\n|sc-name-substring|sc-no-blank-line-or-header|sc-no-header|sc-open-line|sc-raw-mode-toggle|sc-recite-line|sc-recite-region|sc-scan-info-alist\n|sc-select-attribution|sc-set-variable|sc-setup-filladapt|sc-setvar-symbol|sc-toggle-fn|sc-toggle-symbol|sc-toggle-var|sc-uncite-line\n|sc-uncite-region|sc-valid-index-p|sc-whofrom|scan-buf-move-to-region|scan-buf-next-region|scan-buf-previous-region|scheme-compile-definition-and-go\n|scheme-compile-definition|scheme-compile-file|scheme-compile-region-and-go|scheme-compile-region|scheme-debugger-mode-commands\n|scheme-debugger-mode-initialize|scheme-debugger-mode|scheme-debugger-self-insert|scheme-expand-current-form|scheme-form-at-point\n|scheme-get-old-input|scheme-get-process|scheme-indent-function|scheme-input-filter|scheme-interaction-mode-commands|scheme-interaction-mode-initialize\n|scheme-interaction-mode|scheme-interactively-start-process|scheme-let-indent|scheme-load-file|scheme-mode-commands|scheme-mode-variables\n|scheme-mode|scheme-proc|scheme-send-definition-and-go|scheme-send-definition|scheme-send-last-sexp|scheme-send-region-and-go|scheme-send-region\n|scheme-start-file|scheme-syntax-propertize-sexp-comment|scheme-syntax-propertize|scheme-trace-procedure|scroll-all-beginning-of-buffer-all\n|scroll-all-check-to-scroll|scroll-all-end-of-buffer-all|scroll-all-function-all|scroll-all-mode|scroll-all-page-down-all|scroll-all-page-up-all\n|scroll-all-scroll-down-all|scroll-all-scroll-up-all|scroll-bar-columns|scroll-bar-drag-1|scroll-bar-drag-position|scroll-bar-drag\n|scroll-bar-horizontal-drag-1|scroll-bar-horizontal-drag|scroll-bar-lines|scroll-bar-maybe-set-window-start|scroll-bar-scroll-down\n|scroll-bar-scroll-up|scroll-bar-set-window-start|scroll-bar-toolkit-horizontal-scroll|scroll-bar-toolkit-scroll|scroll-down-line\n|scroll-lock-mode|scroll-other-window-down|scroll-up-line|scss-mode|scss-smie--not-interpolation-p|sdb|search-backward-lax-whitespace\n|search-backward-regexp|search-emacs-glossary|search-forward-lax-whitespace|search-forward-regexp|search-pages|search-unencodable-char\n|search|second|seconds-to-string|secrets-close-session|secrets-collection-handler|secrets-collection-path|secrets-create-collection\n|secrets-create-item|secrets-delete-alias|secrets-delete-collection|secrets-delete-item|secrets-empty-path|secrets-expand-collection\n|secrets-expand-item|secrets-get-alias|secrets-get-attribute|secrets-get-attributes|secrets-get-collection-properties|secrets-get-collection-property\n|secrets-get-collections|secrets-get-item-properties|secrets-get-item-property|secrets-get-items|secrets-get-secret|secrets-item-path\n|secrets-list-collections|secrets-list-items|secrets-mode|secrets-open-session|secrets-prompt-handler|secrets-prompt|secrets-search-items\n|secrets-set-alias|secrets-show-collections|secrets-show-secrets|secrets-tree-widget-after-toggle-function|secrets-tree-widget-show-password\n|secrets-unlock-collection|secure-hash|select-frame-by-name|select-frame-set-input-focus|select-frame|select-message-coding-system\n|select-safe-coding-system-interactively|select-safe-coding-system|select-scheme|select-tags-table-mode|select-tags-table-quit\n|select-tags-table-select|select-tags-table|select-window|selected-frame|selected-window|self-insert-and-exit|self-insert-command\n|semantic--set-buffer-cache|semantic--tag-attributes-cdr|semantic--tag-copy-properties|semantic--tag-deep-copy-attributes|semantic--tag-deep-copy-tag-list\n|semantic--tag-deep-copy-value|semantic--tag-expand|semantic--tag-expanded-p|semantic--tag-find-parent-by-name|semantic--tag-get-property\n|semantic--tag-link-cache-to-buffer|semantic--tag-link-list-to-buffer|semantic--tag-link-to-buffer|semantic--tag-overlay-cdr\n|semantic--tag-properties-cdr|semantic--tag-put-property-no-side-effect|semantic--tag-put-property|semantic--tag-run-hooks|semantic--tag-set-overlay\n|semantic--tag-unlink-cache-from-buffer|semantic--tag-unlink-from-buffer|semantic--tag-unlink-list-from-buffer|semantic--umatched-syntax-needs-refresh-p\n|semantic-active-p|semantic-add-label|semantic-add-minor-mode|semantic-add-system-include|semantic-alias-obsolete|semantic-analyze-completion-at-point-function\n|semantic-analyze-current-context|semantic-analyze-current-tag|semantic-analyze-nolongprefix-completion-at-point-function|semantic-analyze-notc-completion-at-point-function\n|semantic-analyze-possible-completions|semantic-analyze-proto-impl-toggle|semantic-analyze-type-constants|semantic-assert-valid-token\n|semantic-bovinate-from-nonterminal-full|semantic-bovinate-from-nonterminal|semantic-bovinate-region-until-error|semantic-bovinate-stream\n|semantic-bovinate-toplevel|semantic-buffer-local-value|semantic-c-add-preprocessor-symbol|semantic-cache-data-post-command-hook\n|semantic-cache-data-to-buffer|semantic-calculate-scope|semantic-change-function|semantic-clean-token-of-unmatched-syntax|semantic-clean-unmatched-syntax-in-buffer\n|semantic-clean-unmatched-syntax-in-region|semantic-clear-parser-warnings|semantic-clear-toplevel-cache|semantic-clear-unmatched-syntax-cache\n|semantic-comment-lexer|semantic-complete-analyze-and-replace|semantic-complete-analyze-inline-idle|semantic-complete-analyze-inline\n|semantic-complete-inline-project|semantic-complete-jump-local-members|semantic-complete-jump-local|semantic-complete-jump|semantic-complete-self-insert\n|semantic-complete-symbol|semantic-create-imenu-index|semantic-create-tag-proxy|semantic-ctxt-current-mode|semantic-current-tag-parent\n|semantic-current-tag|semantic-customize-system-include-path|semantic-debug|semantic-decoration-include-visit|semantic-decoration-unparsed-include-do-reset\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nsemantic-default-c-setup|semantic-default-elisp-setup|semantic-default-html-setup|semantic-default-make-setup|semantic-default-scheme-setup\n|semantic-default-texi-setup|semantic-delete-overlay-maybe|semantic-dependency-tag-file|semantic-describe-buffer-var-helper|semantic-describe-buffer\n|semantic-describe-tag|semantic-desktop-ignore-this-minor-mode|semantic-documentation-for-tag|semantic-dump-parser-warnings|semantic-edits-incremental-parser\n|semantic-elapsed-time|semantic-equivalent-tag-p|semantic-error-if-unparsed|semantic-event-window|semantic-exit-on-input|semantic-fetch-available-tags\n|semantic-fetch-tags-fast|semantic-fetch-tags|semantic-file-tag-table|semantic-file-token-stream|semantic-find-file-noselect|semantic-find-first-tag-by-name\n|semantic-find-tag-by-overlay-in-region|semantic-find-tag-by-overlay-next|semantic-find-tag-by-overlay-prev|semantic-find-tag-by-overlay\n|semantic-find-tag-for-completion|semantic-find-tag-parent-by-overlay|semantic-find-tags-by-scope-protection|semantic-find-tags-included\n|semantic-flatten-tags-table|semantic-flex-buffer|semantic-flex-end|semantic-flex-keyword-get|semantic-flex-keyword-p|semantic-flex-keyword-put\n|semantic-flex-keywords|semantic-flex-list|semantic-flex-make-keyword-table|semantic-flex-map-keywords|semantic-flex-start|semantic-flex-text\n|semantic-flex|semantic-force-refresh|semantic-foreign-tag-check|semantic-foreign-tag-invalid|semantic-foreign-tag-p|semantic-foreign-tag\n|semantic-format-tag-concise-prototype|semantic-format-tag-name|semantic-format-tag-prototype|semantic-format-tag-summarize|semantic-fw-add-edebug-spec\n|semantic-gcc-setup|semantic-get-cache-data|semantic-go-to-tag|semantic-highlight-edits-mode|semantic-highlight-edits-new-change-hook-fcn\n|semantic-highlight-func-highlight-current-tag|semantic-highlight-func-menu|semantic-highlight-func-mode|semantic-highlight-func-popup-menu\n|semantic-ia-complete-symbol-menu|semantic-ia-complete-symbol|semantic-ia-complete-tip|semantic-ia-describe-class|semantic-ia-fast-jump\n|semantic-ia-fast-mouse-jump|semantic-ia-show-doc|semantic-ia-show-summary|semantic-ia-show-variants|semantic-idle-completions-mode\n|semantic-idle-scheduler-mode|semantic-idle-summary-mode|semantic-insert-foreign-tag-change-log-mode|semantic-insert-foreign-tag-default\n|semantic-insert-foreign-tag-log-edit-mode|semantic-insert-foreign-tag|semantic-install-function-overrides|semantic-lex-beginning-of-line\n|semantic-lex-buffer|semantic-lex-catch-errors|semantic-lex-charquote|semantic-lex-close-paren|semantic-lex-comments-as-whitespace\n|semantic-lex-comments|semantic-lex-debug-break|semantic-lex-debug|semantic-lex-default-action|semantic-lex-end-block|semantic-lex-expand-block-specs\n|semantic-lex-highlight-token|semantic-lex-ignore-comments|semantic-lex-ignore-newline|semantic-lex-ignore-whitespace|semantic-lex-init\n|semantic-lex-keyword-get|semantic-lex-keyword-invalid|semantic-lex-keyword-p|semantic-lex-keyword-put|semantic-lex-keyword-set\n|semantic-lex-keyword-symbol|semantic-lex-keyword-value|semantic-lex-keywords|semantic-lex-list|semantic-lex-make-keyword-table\n|semantic-lex-make-type-table|semantic-lex-map-keywords|semantic-lex-map-symbols|semantic-lex-map-types|semantic-lex-newline-as-whitespace\n|semantic-lex-newline|semantic-lex-number|semantic-lex-one-token|semantic-lex-open-paren|semantic-lex-paren-or-list|semantic-lex-preset-default-types\n|semantic-lex-punctuation-type|semantic-lex-punctuation|semantic-lex-push-token|semantic-lex-spp-table-write-slot-value|semantic-lex-start-block\n|semantic-lex-string|semantic-lex-symbol-or-keyword|semantic-lex-test|semantic-lex-token-bounds|semantic-lex-token-class|semantic-lex-token-end\n|semantic-lex-token-p|semantic-lex-token-start|semantic-lex-token-text|semantic-lex-token-with-text-p|semantic-lex-token-without-text-p\n|semantic-lex-token|semantic-lex-type-get|semantic-lex-type-invalid|semantic-lex-type-p|semantic-lex-type-put|semantic-lex-type-set\n|semantic-lex-type-symbol|semantic-lex-type-value|semantic-lex-types|semantic-lex-unterminated-syntax-detected|semantic-lex-unterminated-syntax-protection\n|semantic-lex-whitespace|semantic-lex|semantic-make-local-hook|semantic-make-overlay|semantic-map-buffers|semantic-map-mode-buffers\n|semantic-menu-item|semantic-mode-line-update|semantic-mode|semantic-narrow-to-tag|semantic-new-buffer-fcn|semantic-next-unmatched-syntax\n|semantic-obtain-foreign-tag|semantic-overlay-buffer|semantic-overlay-delete|semantic-overlay-end|semantic-overlay-get|semantic-overlay-lists\n|semantic-overlay-live-p|semantic-overlay-move|semantic-overlay-next-change|semantic-overlay-p|semantic-overlay-previous-change\n|semantic-overlay-properties|semantic-overlay-put|semantic-overlay-start|semantic-overlays-at|semantic-overlays-in|semantic-overload-symbol-from-function\n|semantic-parse-changes-default|semantic-parse-changes|semantic-parse-region-default|semantic-parse-region|semantic-parse-stream-default\n|semantic-parse-stream|semantic-parse-tree-needs-rebuild-p|semantic-parse-tree-needs-update-p|semantic-parse-tree-set-needs-rebuild\n|semantic-parse-tree-set-needs-update|semantic-parse-tree-set-up-to-date|semantic-parse-tree-unparseable-p|semantic-parse-tree-unparseable\n|semantic-parse-tree-up-to-date-p|semantic-parser-working-message|semantic-popup-menu|semantic-push-parser-warning|semantic-read-event\n|semantic-read-function|semantic-read-symbol|semantic-read-type|semantic-read-variable|semantic-refresh-tags-safe|semantic-remove-system-include\n|semantic-repeat-parse-whole-stream|semantic-require-version|semantic-reset-system-include|semantic-run-mode-hooks|semantic-safe\n|semantic-sanity-check|semantic-set-unmatched-syntax-cache|semantic-show-label|semantic-show-parser-state-auto-marker|semantic-show-parser-state-marker\n|semantic-show-parser-state-mode|semantic-show-unmatched-lex-tokens-fetch|semantic-show-unmatched-syntax-mode|semantic-show-unmatched-syntax-next\n|semantic-show-unmatched-syntax|semantic-showing-unmatched-syntax-p|semantic-simple-lexer|semantic-something-to-stream|semantic-something-to-tag-table\n|semantic-speedbar-analysis|semantic-stickyfunc-fetch-stickyline|semantic-stickyfunc-menu|semantic-stickyfunc-mode|semantic-stickyfunc-popup-menu\n|semantic-stickyfunc-tag-to-stick|semantic-subst-char-in-string|semantic-symref-find-file-references-by-name|semantic-symref-find-references-by-name\n|semantic-symref-find-tags-by-completion|semantic-symref-find-tags-by-name|semantic-symref-find-tags-by-regexp|semantic-symref-find-text\n|semantic-symref-regexp|semantic-symref-symbol|semantic-symref-tool-cscope-child-p|semantic-symref-tool-cscope-list-p|semantic-symref-tool-cscope-p\n|semantic-symref-tool-cscope|semantic-symref-tool-global-child-p|semantic-symref-tool-global-list-p|semantic-symref-tool-global-p\n|semantic-symref-tool-global|semantic-symref-tool-grep-child-p|semantic-symref-tool-grep-list-p|semantic-symref-tool-grep-p|semantic-symref-tool-grep\n|semantic-symref-tool-idutils-child-p|semantic-symref-tool-idutils-list-p|semantic-symref-tool-idutils-p|semantic-symref-tool-idutils\n|semantic-symref|semantic-tag-add-hook|semantic-tag-alias-class|semantic-tag-alias-definition|semantic-tag-attributes|semantic-tag-bounds\n|semantic-tag-buffer|semantic-tag-children-compatibility|semantic-tag-class|semantic-tag-clone|semantic-tag-code-detail|semantic-tag-components-default\n|semantic-tag-components-with-overlays-default|semantic-tag-components-with-overlays|semantic-tag-components|semantic-tag-copy\n|semantic-tag-deep-copy-one-tag|semantic-tag-docstring|semantic-tag-end|semantic-tag-external-member-parent|semantic-tag-faux-p\n|semantic-tag-file-name|semantic-tag-function-arguments|semantic-tag-function-constructor-p|semantic-tag-function-destructor-p\n|semantic-tag-function-parent|semantic-tag-function-throws|semantic-tag-get-attribute|semantic-tag-in-buffer-p|semantic-tag-include-filename-default\n|semantic-tag-include-filename|semantic-tag-include-system-p|semantic-tag-make-assoc-list|semantic-tag-make-plist|semantic-tag-mode\n|semantic-tag-modifiers|semantic-tag-name|semantic-tag-named-parent|semantic-tag-new-alias|semantic-tag-new-code|semantic-tag-new-function\n|semantic-tag-new-include|semantic-tag-new-package|semantic-tag-new-type|semantic-tag-new-variable|semantic-tag-of-class-p|semantic-tag-of-type-p\n|semantic-tag-overlay|semantic-tag-p|semantic-tag-properties|semantic-tag-prototype-p|semantic-tag-put-attribute-no-side-effect\n|semantic-tag-put-attribute|semantic-tag-remove-hook|semantic-tag-resolve-proxy|semantic-tag-set-bounds|semantic-tag-set-faux\n|semantic-tag-set-name|semantic-tag-set-proxy|semantic-tag-similar-with-subtags-p|semantic-tag-start|semantic-tag-type-compound-p\n|semantic-tag-type-interfaces|semantic-tag-type-members|semantic-tag-type-superclass-protection|semantic-tag-type-superclasses\n|semantic-tag-type|semantic-tag-variable-constant-p|semantic-tag-variable-default|semantic-tag-with-position-p|semantic-tag-write-list-slot-value\n|semantic-tag|semantic-test-data-cache|semantic-throw-on-input|semantic-toggle-minor-mode-globally|semantic-token-type-parent\n|semantic-unmatched-syntax-overlay-p|semantic-unmatched-syntax-tokens|semantic-varalias-obsolete|semantic-with-buffer-narrowed-to-current-tag\n|semantic-with-buffer-narrowed-to-tag|semanticdb-database-typecache-child-p|semanticdb-database-typecache-list-p|semanticdb-database-typecache-p\n|semanticdb-database-typecache|semanticdb-enable-gnu-global-databases|semanticdb-file-table-object|semanticdb-find-adebug-lost-includes\n|semanticdb-find-result-length|semanticdb-find-result-nth-in-buffer|semanticdb-find-result-nth|semanticdb-find-table-for-include\n|semanticdb-find-tags-by-class|semanticdb-find-tags-by-name-regexp|semanticdb-find-tags-by-name|semanticdb-find-tags-for-completion\n|semanticdb-find-test-translate-path|semanticdb-find-translate-path|semanticdb-minor-mode-p|semanticdb-project-database-file-child-p\n|semanticdb-project-database-file-list-p|semanticdb-project-database-file-p|semanticdb-project-database-file|semanticdb-strip-find-results\n|semanticdb-typecache-child-p|semanticdb-typecache-find|semanticdb-typecache-list-p|semanticdb-typecache-p|semanticdb-typecache\n|semanticdb-without-unloaded-file-searches|senator-copy-tag-to-register|senator-copy-tag|senator-go-to-up-reference|senator-kill-tag\n|senator-next-tag|senator-previous-tag|senator-transpose-tags-down|senator-transpose-tags-up|senator-yank-tag|send-invisible|send-process-next-char\n|send-region|send-string|sendmail-query-once|sendmail-query-user-about-smtp|sendmail-send-it|sendmail-sync-aliases|sendmail-user-agent-compose\n|sentence-at-point|seq--count-successive|seq--drop-list|seq--drop-while-list|seq--take-list|seq--take-while-list|seq-concatenate\n|seq-contains-p|seq-copy|seq-count|seq-do|seq-doseq|seq-drop-while|seq-drop|seq-each|seq-elt|seq-empty-p|seq-every-p|seq-filter|seq-length\n|seq-map|seq-reduce|seq-remove|seq-reverse|seq-some-p|seq-sort|seq-subseq|seq-take-while|seq-take|seq-uniq|serial-mode-line-config-menu-1\n|serial-mode-line-config-menu|serial-mode-line-speed-menu-1|serial-mode-line-speed-menu|serial-nice-speed-history|serial-port-is-file-p\n|serial-read-name|serial-read-speed|serial-speed|serial-supported-or-barf|serial-update-config-menu|serial-update-speed-menu|server--on-display-p\n|server-add-client|server-buffer-done|server-clients-with|server-create-tty-frame|server-create-window-system-frame|server-delete-client\n|server-done|server-edit|server-ensure-safe-dir|server-eval-and-print|server-eval-at|server-execute-continuation|server-execute\n|server-force-delete|server-force-stop|server-generate-key|server-get-auth-key|server-goto-line-column|server-goto-toplevel|server-handle-delete-frame\n|server-handle-suspend-tty|server-kill-buffer|server-kill-emacs-query-function|server-log|server-mode|server-process-filter|server-quote-arg\n|server-reply-print|server-return-error|server-running-p|server-save-buffers-kill-terminal|server-select-display|server-send-string\n|server-sentinel|server-start|server-switch-buffer|server-temp-file-p|server-unload-function|server-unquote-arg|server-unselect-display\n|server-visit-files|server-with-environment|ses\\+|ses--advice-copy-region-as-kill|ses--advice-yank|ses--cell|ses--clean-!|ses--clean-_\n|ses--letref|ses--local-printer|ses--locprn-compiled--cmacro|ses--locprn-compiled|ses--locprn-def--cmacro|ses--locprn-def|ses--locprn-local-printer-list--cmacro\n|ses--locprn-local-printer-list|ses--locprn-number--cmacro|ses--locprn-number|ses--locprn-p--cmacro|ses--locprn-p|ses--metaprogramming\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nses--time-check|ses-adjust-print-width|ses-append-row-jump-first-column|ses-aset-with-undo|ses-average|ses-begin-change|ses-calculate-cell\n|ses-call-printer|ses-cell--formula--cmacro|ses-cell--formula|ses-cell--printer--cmacro|ses-cell--printer|ses-cell--properties--cmacro\n|ses-cell--properties|ses-cell--references--cmacro|ses-cell--references|ses-cell--symbol--cmacro|ses-cell--symbol|ses-cell-formula\n|ses-cell-p|ses-cell-printer|ses-cell-property-pop|ses-cell-property|ses-cell-references|ses-cell-set-formula|ses-cell-symbol|ses-cell-value\n|ses-center-span|ses-center|ses-check-curcell|ses-cleanup|ses-clear-cell-backward|ses-clear-cell-forward|ses-clear-cell|ses-col-printer\n|ses-col-width|ses-column-letter|ses-column-printers|ses-column-widths|ses-command-hook|ses-copy-region-helper|ses-copy-region|ses-create-cell-symbol\n|ses-create-cell-variable-range|ses-create-cell-variable|ses-create-header-string|ses-dashfill-span|ses-dashfill|ses-decode-cell-symbol\n|ses-default-printer|ses-define-local-printer|ses-delete-blanks|ses-delete-column|ses-delete-line|ses-delete-row|ses-destroy-cell-variable-range\n|ses-dorange|ses-edit-cell|ses-end-of-line|ses-export-keymap|ses-export-tab|ses-export-tsf|ses-export-tsv|ses-file-format-extend-parameter-list\n|ses-formula-record|ses-formula-references|ses-forward-or-insert|ses-get-cell|ses-goto-data|ses-goto-print|ses-header-line-menu\n|ses-header-row|ses-in-print-area|ses-initialize-Dijkstra-attempt|ses-insert-column|ses-insert-range-click|ses-insert-range|ses-insert-row\n|ses-insert-ses-range-click|ses-insert-ses-range|ses-is-cell-sym-p|ses-jump-safe|ses-jump|ses-kill-override|ses-load|ses-local-printer-compile\n|ses-make-cell--cmacro|ses-make-cell|ses-make-local-printer-info|ses-mark-column|ses-mark-row|ses-menu|ses-mode-print-map|ses-mode\n|ses-print-cell-new-width|ses-print-cell|ses-printer-record|ses-printer-validate|ses-range|ses-read-cell-printer|ses-read-cell|ses-read-column-printer\n|ses-read-default-printer|ses-read-printer|ses-read-symbol|ses-recalculate-all|ses-recalculate-cell|ses-reconstruct-all|ses-refresh-local-printer\n|ses-relocate-all|ses-relocate-formula|ses-relocate-range|ses-relocate-symbol|ses-rename-cell|ses-renarrow-buffer|ses-repair-cell-reference-all\n|ses-replace-name-in-formula|ses-reprint-all|ses-reset-header-string|ses-safe-formula|ses-safe-printer|ses-select|ses-set-cell|ses-set-column-width\n|ses-set-curcell|ses-set-header-row|ses-set-localvars|ses-set-parameter|ses-set-with-undo|ses-setter-with-undo|ses-setup|ses-sort-column-click\n|ses-sort-column|ses-sym-rowcol|ses-tildefill-span|ses-truncate-cell|ses-unload-function|ses-unsafe|ses-unset-header-row|ses-update-cells\n|ses-vector-delete|ses-vector-insert|ses-warn-unsafe|ses-widen|ses-write-cells|ses-yank-cells|ses-yank-one|ses-yank-pop|ses-yank-resize\n|ses-yank-tsf|set-allout-regexp|set-auto-mode-0|set-auto-mode-1|set-background-color|set-border-color|set-buffer-file-coding-system\n|set-buffer-process-coding-system|set-cdabbrev-buffer|set-charset-plist|set-clipboard-coding-system|set-cmpl-prefix-entry-head\n|set-cmpl-prefix-entry-tail|set-coding-priority|set-comment-column|set-completion-last-use-time|set-completion-num-uses|set-completion-string\n|set-cursor-color|set-default-coding-systems|set-default-font|set-default-toplevel-value|set-difference|set-display-table-and-terminal-coding-system\n|set-downcase-syntax|set-exclusive-or|set-face-attribute-from-resource|set-face-attributes-from-resources|set-face-background-pixmap\n|set-face-bold-p|set-face-doc-string|set-face-documentation|set-face-inverse-video-p|set-face-italic-p|set-face-underline-p|set-file-name-coding-system\n|set-fill-column|set-fill-prefix|set-font-encoding|set-foreground-color|set-frame-font|set-frame-name|set-fringe-mode-1|set-fringe-mode\n|set-fringe-style|set-goal-column|set-hard-newline-properties|set-input-interrupt-mode|set-input-meta-mode|set-justification-center\n|set-justification-full|set-justification-left|set-justification-none|set-justification-right|set-justification|set-keyboard-coding-system-internal\n|set-language-environment-charset|set-language-environment-coding-systems|set-language-environment-input-method|set-language-environment-nonascii-translation\n|set-language-environment-unibyte|set-language-environment|set-language-info-alist|set-language-info-internal|set-language-info\n|set-locale-environment|set-mark-command|set-mode-local-parent|set-mouse-color|set-nested-alist|set-next-selection-coding-system\n|set-output-flow-control|set-page-delimiter|set-process-filter-multibyte|set-process-inherit-coding-system-flag|set-process-window-size\n|set-quit-char|set-rcirc-decode-coding-system|set-rcirc-encode-coding-system|set-rmail-inbox-list|set-safe-terminal-coding-system-internal\n|set-scroll-bar-mode|set-selection-coding-system|set-selective-display|set-slot-value|set-temporary-overlay-map|set-terminal-coding-system-internal\n|set-time-zone-rule|set-upcase-syntax|set-variable|set-viper-state-in-major-mode|set-window-buffer-start-and-point|set-window-dot\n|set-window-new-normal|set-window-new-pixel|set-window-new-total|set-window-redisplay-end-trigger|set-window-text-height|set-woman-file-regexp\n|setenv-internal|setq-mode-local|setup-chinese-environment-map|setup-cyrillic-environment-map|setup-default-fontset|setup-ethiopic-environment-internal\n|setup-european-environment-map|setup-indian-environment-map|setup-japanese-environment-internal|setup-korean-environment-internal\n|setup-specified-language-environment|seventh|sexp-at-point|sgml-at-indentation-p|sgml-attributes|sgml-auto-attributes|sgml-beginning-of-tag\n|sgml-calculate-indent|sgml-close-tag|sgml-comment-indent-new-line|sgml-comment-indent|sgml-delete-tag|sgml-electric-tag-pair-before-change-function\n|sgml-electric-tag-pair-flush-overlays|sgml-electric-tag-pair-mode|sgml-empty-tag-p|sgml-fill-nobreak|sgml-get-context|sgml-guess-indent\n|sgml-html-meta-auto-coding-function|sgml-indent-line|sgml-lexical-context|sgml-looking-back-at|sgml-make-syntax-table|sgml-make-tag--cmacro\n|sgml-make-tag|sgml-maybe-end-tag|sgml-maybe-name-self|sgml-mode-facemenu-add-face-function|sgml-mode-flyspell-verify|sgml-mode\n|sgml-name-8bit-mode|sgml-name-char|sgml-name-self|sgml-namify-char|sgml-parse-dtd|sgml-parse-tag-backward|sgml-parse-tag-name|sgml-point-entered\n|sgml-pretty-print|sgml-quote|sgml-show-context|sgml-skip-tag-backward|sgml-skip-tag-forward|sgml-slash-matching|sgml-slash|sgml-tag-end--cmacro\n|sgml-tag-end|sgml-tag-help|sgml-tag-name--cmacro|sgml-tag-name|sgml-tag-p--cmacro|sgml-tag-p|sgml-tag-start--cmacro|sgml-tag-start\n|sgml-tag-text-p|sgml-tag-type--cmacro|sgml-tag-type|sgml-tag|sgml-tags-invisible|sgml-unclosed-tag-p|sgml-validate|sgml-value|sgml-xml-auto-coding-function\n|sgml-xml-guess|sh--cmd-completion-table|sh--inside-noncommand-expression|sh--maybe-here-document|sh--vars-before-point|sh-add-completer\n|sh-add|sh-after-hack-local-variables|sh-append-backslash|sh-append|sh-assignment|sh-backslash-region|sh-basic-indent-line|sh-beginning-of-command\n|sh-blink|sh-calculate-indent|sh-canonicalize-shell|sh-case|sh-cd-here|sh-check-rule|sh-completion-at-point-function|sh-current-defun-name\n|sh-debug|sh-delete-backslash|sh-electric-here-document-mode|sh-end-of-command|sh-execute-region|sh-feature|sh-find-prev-matching\n|sh-find-prev-switch|sh-font-lock-backslash-quote|sh-font-lock-keywords-1|sh-font-lock-keywords-2|sh-font-lock-keywords|sh-font-lock-open-heredoc\n|sh-font-lock-paren|sh-font-lock-quoted-subshell|sh-font-lock-syntactic-face-function|sh-for|sh-function|sh-get-indent-info|sh-get-indent-var-for-line\n|sh-get-kw|sh-get-word|sh-goto-match-for-done|sh-goto-matching-case|sh-goto-matching-if|sh-guess-basic-offset|sh-handle-after-case-label\n|sh-handle-prev-case-alt-end|sh-handle-prev-case|sh-handle-prev-do|sh-handle-prev-done|sh-handle-prev-else|sh-handle-prev-esac\n|sh-handle-prev-fi|sh-handle-prev-if|sh-handle-prev-open|sh-handle-prev-rc-case|sh-handle-prev-then|sh-handle-this-close|sh-handle-this-do\n|sh-handle-this-done|sh-handle-this-else|sh-handle-this-esac|sh-handle-this-fi|sh-handle-this-rc-case|sh-handle-this-then|sh-help-string-for-variable\n|sh-if|sh-in-comment-or-string|sh-indent-line|sh-indexed-loop|sh-is-quoted-p|sh-learn-buffer-indent|sh-learn-line-indent|sh-load-style\n|sh-make-vars-local|sh-mark-init|sh-mark-line|sh-maybe-here-document|sh-mkword-regexpr|sh-mode-syntax-table|sh-mode|sh-modify|sh-must-support-indent\n|sh-name-style|sh-prev-line|sh-prev-stmt|sh-prev-thing|sh-quoted-p|sh-read-variable|sh-remember-variable|sh-repeat|sh-reset-indent-vars-to-global-values\n|sh-safe-forward-sexp|sh-save-styles-to-buffer|sh-select|sh-send-line-or-region-and-step|sh-send-text|sh-set-indent|sh-set-shell\n|sh-set-var-value|sh-shell-initialize-variables|sh-shell-process|sh-show-indent|sh-show-shell|sh-smie--continuation-start-indent\n|sh-smie--default-backward-token|sh-smie--default-forward-token|sh-smie--keyword-p|sh-smie--looking-back-at-continuation-p|sh-smie--newline-semi-p\n|sh-smie--rc-after-special-arg-p|sh-smie--rc-newline-semi-p|sh-smie--sh-keyword-in-p|sh-smie--sh-keyword-p|sh-smie-rc-backward-token\n|sh-smie-rc-forward-token|sh-smie-rc-rules|sh-smie-sh-backward-token|sh-smie-sh-forward-token|sh-smie-sh-rules|sh-syntax-propertize-function\n|sh-syntax-propertize-here-doc|sh-this-is-a-continuation|sh-tmp-file|sh-until|sh-var-value|sh-while-getopts|sh-while|sha1|shadow-add-to-todo\n|shadow-cancel|shadow-cluster-name|shadow-cluster-primary|shadow-cluster-regexp|shadow-contract-file-name|shadow-copy-file|shadow-copy-files\n|shadow-define-cluster|shadow-define-literal-group|shadow-define-regexp-group|shadow-expand-cluster-in-file-name|shadow-expand-file-name\n|shadow-file-match|shadow-find|shadow-get-cluster|shadow-get-user|shadow-initialize|shadow-insert-var|shadow-invalidate-hashtable\n|shadow-local-file|shadow-make-cluster|shadow-make-fullname|shadow-make-group|shadow-parse-fullname|shadow-parse-name|shadow-read-files\n|shadow-read-site|shadow-regexp-superquote|shadow-remove-from-todo|shadow-replace-name-component|shadow-same-site|shadow-save-buffers-kill-emacs\n|shadow-save-todo-file|shadow-set-cluster|shadow-shadows-of-1|shadow-shadows-of|shadow-shadows|shadow-site-cluster|shadow-site-match\n|shadow-site-primary|shadow-suffix|shadow-union|shadow-write-info-file|shadow-write-todo-file|shadowfile-unload-function|shared-initialize\n|shell--command-completion-data|shell--parse-pcomplete-arguments|shell--requote-argument|shell--unquote&requote-argument|shell--unquote-argument\n|shell-apply-ansi-color|shell-backward-command|shell-c-a-p-replace-by-expanded-directory|shell-cd|shell-command-completion-function\n|shell-command-completion|shell-command-on-region|shell-command-sentinel|shell-command|shell-completion-vars|shell-copy-environment-variable\n|shell-directory-tracker|shell-dirstack-message|shell-dirtrack-mode|shell-dirtrack-toggle|shell-dynamic-complete-command|shell-dynamic-complete-environment-variable\n|shell-dynamic-complete-filename|shell-environment-variable-completion|shell-extract-num|shell-filename-completion|shell-filter-ctrl-a-ctrl-b\n|shell-forward-command|shell-match-partial-variable|shell-mode|shell-prefixed-directory-name|shell-process-cd|shell-process-popd\n|shell-process-pushd|shell-quote-wildcard-pattern|shell-reapply-ansi-color|shell-replace-by-expanded-directory|shell-resync-dirs\n|shell-script-mode|shell-snarf-envar|shell-strip-ctrl-m|shell-unquote-argument|shell-write-history-on-exit|shell|shiftf|should-error\n|should-not|should|show-all|show-branches|show-buffer|show-children|show-entry|show-ifdef-block|show-ifdefs|show-paren--categorize-paren\n|show-paren--default|show-paren--locate-near-paren|show-paren--unescaped-p|show-paren-function|show-paren-mode|show-subtree|shr--extract-best-source\n|shr--get-media-pref|shr-add-font|shr-browse-image|shr-browse-url|shr-buffer-width|shr-char-breakable-p--inliner|shr-char-breakable-p\n|shr-char-kinsoku-bol-p--inliner|shr-char-kinsoku-bol-p|shr-char-kinsoku-eol-p--inliner|shr-char-kinsoku-eol-p|shr-char-nospace-p--inliner\n|shr-char-nospace-p|shr-color->hexadecimal|shr-color-check|shr-color-hsl-to-rgb-fractions|shr-color-hue-to-rgb|shr-color-relative-to-absolute\n|shr-color-set-minimum-interval|shr-color-visible|shr-colorize-region|shr-column-specs|shr-copy-url|shr-count|shr-descend|shr-dom-print\n|shr-dom-to-xml|shr-encode-url|shr-ensure-newline|shr-ensure-paragraph|shr-expand-newlines|shr-expand-url|shr-find-fill-point|shr-fold-text\n|shr-fontize-dom|shr-generic|shr-get-image-data|shr-heading|shr-image-displayer|shr-image-fetched|shr-image-from-data|shr-indent\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nshr-insert-image|shr-insert-table-ruler|shr-insert-table|shr-insert|shr-make-table-1|shr-make-table|shr-max-columns|shr-mouse-browse-url\n|shr-next-link|shr-parse-base|shr-parse-image-data|shr-parse-style|shr-previous-link|shr-previous-newline-padding-width|shr-pro-rate-columns\n|shr-put-image|shr-remove-trailing-whitespace|shr-render-buffer|shr-render-region|shr-render-td|shr-rescale-image|shr-save-contents\n|shr-show-alt-text|shr-store-contents|shr-table-widths|shr-tag-a|shr-tag-audio|shr-tag-b|shr-tag-base|shr-tag-blockquote|shr-tag-body\n|shr-tag-br|shr-tag-comment|shr-tag-dd|shr-tag-del|shr-tag-div|shr-tag-dl|shr-tag-dt|shr-tag-em|shr-tag-font|shr-tag-h1|shr-tag-h2|shr-tag-h3\n|shr-tag-h4|shr-tag-h5|shr-tag-h6|shr-tag-hr|shr-tag-i|shr-tag-img|shr-tag-label|shr-tag-li|shr-tag-object|shr-tag-ol|shr-tag-p|shr-tag-pre\n|shr-tag-s|shr-tag-script|shr-tag-span|shr-tag-strong|shr-tag-style|shr-tag-sub|shr-tag-sup|shr-tag-svg|shr-tag-table-1|shr-tag-table\n|shr-tag-title|shr-tag-u|shr-tag-ul|shr-tag-video|shr-urlify|shr-zoom-image|shrink-window-horizontally|shrink-window|shuffle-vector\n|sieve-manage|sieve-mode|sieve-upload-and-bury|sieve-upload-and-kill|sieve-upload|signum|simula-backward-up-level|simula-calculate-indent\n|simula-context|simula-electric-keyword|simula-electric-label|simula-expand-keyword|simula-expand-stdproc|simula-find-do-match\n|simula-find-if|simula-find-inspect|simula-forward-down-level|simula-forward-up-level|simula-goto-definition|simula-indent-command\n|simula-indent-exp|simula-indent-line|simula-inside-parens|simula-install-standard-abbrevs|simula-mode|simula-next-statement|simula-popup-menu\n|simula-previous-statement|simula-search-backward|simula-search-forward|simula-skip-comment-backward|simula-skip-comment-forward\n|simula-submit-bug-report|sixth|size-indication-mode|skeleton-insert|skeleton-internal-1|skeleton-internal-list|skeleton-pair-insert-maybe\n|skeleton-proxy-new|skeleton-read|skip-line-prefix|slitex-mode|slot-boundp|slot-exists-p|slot-makeunbound|slot-missing|slot-unbound\n|slot-value|smbclient-list-shares|smbclient-mode|smbclient|smerge--get-marker|smerge-apply-resolution-patch|smerge-auto-combine\n|smerge-auto-leave|smerge-batch-resolve|smerge-check|smerge-combine-with-next|smerge-conflict-overlay|smerge-context-menu|smerge-diff-base-mine\n|smerge-diff-base-other|smerge-diff-mine-other|smerge-diff|smerge-ediff|smerge-ensure-match|smerge-find-conflict|smerge-get-current\n|smerge-keep-all|smerge-keep-base|smerge-keep-current|smerge-keep-mine|smerge-keep-n|smerge-keep-other|smerge-kill-current|smerge-makeup-conflict\n|smerge-match-conflict|smerge-mode-menu|smerge-mode|smerge-next|smerge-popup-context-menu|smerge-prev|smerge-refine-chopup-region\n|smerge-refine-forward|smerge-refine-highlight-change|smerge-refine-subst|smerge-refine|smerge-remove-props|smerge-resolve--extract-comment\n|smerge-resolve--normalize|smerge-resolve-all|smerge-resolve|smerge-start-session|smerge-swap|smie--associative-p|smie--matching-block-data\n|smie--next-indent-change|smie--opener\\/closer-at-point|smie-auto-fill|smie-backward-sexp-command|smie-backward-sexp|smie-blink-matching-check\n|smie-blink-matching-open|smie-bnf--classify|smie-bnf--closer-alist|smie-bnf--set-class|smie-config--advice|smie-config--get-trace\n|smie-config--guess-1|smie-config--guess-value|smie-config--guess|smie-config--mode-hook|smie-config--setter|smie-debug--describe-cycle\n|smie-debug--prec2-cycle|smie-default-backward-token|smie-default-forward-token|smie-edebug|smie-forward-sexp-command|smie-forward-sexp\n|smie-indent--bolp-1|smie-indent--bolp|smie-indent--hanging-p|smie-indent--offset|smie-indent--parent|smie-indent--rule-1|smie-indent--rule\n|smie-indent--separator-outdent|smie-indent-after-keyword|smie-indent-backward-token|smie-indent-bob|smie-indent-calculate|smie-indent-close\n|smie-indent-comment-close|smie-indent-comment-continue|smie-indent-comment-inside|smie-indent-comment|smie-indent-exps|smie-indent-fixindent\n|smie-indent-forward-token|smie-indent-inside-string|smie-indent-keyword|smie-indent-line|smie-indent-virtual|smie-next-sexp|smie-op-left\n|smie-op-right|smie-set-prec2tab|smiley-buffer|smiley-region|smtpmail-command-or-throw|smtpmail-cred-cert|smtpmail-cred-key|smtpmail-cred-passwd\n|smtpmail-cred-port|smtpmail-cred-server|smtpmail-cred-user|smtpmail-deduce-address-list|smtpmail-do-bcc|smtpmail-find-credentials\n|smtpmail-fqdn|smtpmail-intersection|smtpmail-maybe-append-domain|smtpmail-ok-p|smtpmail-process-filter|smtpmail-query-smtp-server\n|smtpmail-read-response|smtpmail-response-code|smtpmail-response-text|smtpmail-send-command|smtpmail-send-data-1|smtpmail-send-data\n|smtpmail-send-it|smtpmail-send-queued-mail|smtpmail-try-auth-method|smtpmail-try-auth-methods|smtpmail-user-mail-address|smtpmail-via-smtp\n|snake-active-p|snake-display-options|snake-end-game|snake-final-x-velocity|snake-final-y-velocity|snake-init-buffer|snake-mode\n|snake-move-down|snake-move-left|snake-move-right|snake-move-up|snake-pause-game|snake-reset-game|snake-start-game|snake-update-game\n|snake-update-score|snake-update-velocity|snake|snarf-spooks|snmp-calculate-indent|snmp-common-mode|snmp-completing-read|snmp-indent-line\n|snmp-mode-imenu-create-index|snmp-mode|snmpv2-mode|soap-array-type-element-type--cmacro|soap-array-type-element-type|soap-array-type-name--cmacro\n|soap-array-type-name|soap-array-type-namespace-tag--cmacro|soap-array-type-namespace-tag|soap-array-type-p--cmacro|soap-array-type-p\n|soap-basic-type-kind--cmacro|soap-basic-type-kind|soap-basic-type-name--cmacro|soap-basic-type-name|soap-basic-type-namespace-tag--cmacro\n|soap-basic-type-namespace-tag|soap-basic-type-p--cmacro|soap-basic-type-p|soap-binding-name--cmacro|soap-binding-name|soap-binding-namespace-tag--cmacro\n|soap-binding-namespace-tag|soap-binding-operations--cmacro|soap-binding-operations|soap-binding-p--cmacro|soap-binding-p|soap-binding-port-type--cmacro\n|soap-binding-port-type|soap-bound-operation-operation--cmacro|soap-bound-operation-operation|soap-bound-operation-p--cmacro\n|soap-bound-operation-p|soap-bound-operation-soap-action--cmacro|soap-bound-operation-soap-action|soap-bound-operation-use--cmacro\n|soap-bound-operation-use|soap-create-envelope|soap-decode-any-type|soap-decode-array-type|soap-decode-array|soap-decode-basic-type\n|soap-decode-sequence-type|soap-decode-type|soap-default-soapenc-types|soap-default-xsd-types|soap-element-fq-name|soap-element-name--cmacro\n|soap-element-name|soap-element-namespace-tag--cmacro|soap-element-namespace-tag|soap-element-p--cmacro|soap-element-p|soap-encode-array-type\n|soap-encode-basic-type|soap-encode-body|soap-encode-sequence-type|soap-encode-simple-type|soap-encode-value|soap-extract-xmlns\n|soap-get-target-namespace|soap-invoke|soap-l2fq|soap-l2wk|soap-load-wsdl-from-url|soap-load-wsdl|soap-message-name--cmacro|soap-message-name\n|soap-message-namespace-tag--cmacro|soap-message-namespace-tag|soap-message-p--cmacro|soap-message-p|soap-message-parts--cmacro\n|soap-message-parts|soap-namespace-elements--cmacro|soap-namespace-elements|soap-namespace-get|soap-namespace-link-name--cmacro\n|soap-namespace-link-name|soap-namespace-link-namespace-tag--cmacro|soap-namespace-link-namespace-tag|soap-namespace-link-p--cmacro\n|soap-namespace-link-p|soap-namespace-link-target--cmacro|soap-namespace-link-target|soap-namespace-name--cmacro|soap-namespace-name\n|soap-namespace-p--cmacro|soap-namespace-p|soap-namespace-put-link|soap-namespace-put|soap-operation-faults--cmacro|soap-operation-faults\n|soap-operation-input--cmacro|soap-operation-input|soap-operation-name--cmacro|soap-operation-name|soap-operation-namespace-tag--cmacro\n|soap-operation-namespace-tag|soap-operation-output--cmacro|soap-operation-output|soap-operation-p--cmacro|soap-operation-p|soap-operation-parameter-order--cmacro\n|soap-operation-parameter-order|soap-parse-binding|soap-parse-complex-type-complex-content|soap-parse-complex-type-sequence|soap-parse-complex-type\n|soap-parse-envelope|soap-parse-message|soap-parse-operation|soap-parse-port-type|soap-parse-response|soap-parse-schema-element\n|soap-parse-schema|soap-parse-sequence|soap-parse-simple-type|soap-parse-wsdl|soap-port-binding--cmacro|soap-port-binding|soap-port-name--cmacro\n|soap-port-name|soap-port-namespace-tag--cmacro|soap-port-namespace-tag|soap-port-p--cmacro|soap-port-p|soap-port-service-url--cmacro\n|soap-port-service-url|soap-port-type-name--cmacro|soap-port-type-name|soap-port-type-namespace-tag--cmacro|soap-port-type-namespace-tag\n|soap-port-type-operations--cmacro|soap-port-type-operations|soap-port-type-p--cmacro|soap-port-type-p|soap-resolve-references-for-array-type\n|soap-resolve-references-for-binding|soap-resolve-references-for-element|soap-resolve-references-for-message|soap-resolve-references-for-operation\n|soap-resolve-references-for-port|soap-resolve-references-for-sequence-type|soap-resolve-references-for-simple-type|soap-sequence-element-multiple\\?--cmacro\n|soap-sequence-element-multiple\\?|soap-sequence-element-name--cmacro|soap-sequence-element-name|soap-sequence-element-nillable\\?--cmacro\n|soap-sequence-element-nillable\\?|soap-sequence-element-p--cmacro|soap-sequence-element-p|soap-sequence-element-type--cmacro\n|soap-sequence-element-type|soap-sequence-type-elements--cmacro|soap-sequence-type-elements|soap-sequence-type-name--cmacro|soap-sequence-type-name\n|soap-sequence-type-namespace-tag--cmacro|soap-sequence-type-namespace-tag|soap-sequence-type-p--cmacro|soap-sequence-type-p\n|soap-sequence-type-parent--cmacro|soap-sequence-type-parent|soap-simple-type-enumeration--cmacro|soap-simple-type-enumeration\n|soap-simple-type-kind--cmacro|soap-simple-type-kind|soap-simple-type-name--cmacro|soap-simple-type-name|soap-simple-type-namespace-tag--cmacro\n|soap-simple-type-namespace-tag|soap-simple-type-p--cmacro|soap-simple-type-p|soap-type-p|soap-warning|soap-with-local-xmlns|soap-wk2l\n|soap-wsdl-add-alias|soap-wsdl-add-namespace|soap-wsdl-alias-table--cmacro|soap-wsdl-alias-table|soap-wsdl-find-namespace|soap-wsdl-get\n|soap-wsdl-namespaces--cmacro|soap-wsdl-namespaces|soap-wsdl-origin--cmacro|soap-wsdl-origin|soap-wsdl-p--cmacro|soap-wsdl-p|soap-wsdl-ports--cmacro\n|soap-wsdl-ports|soap-wsdl-resolve-references|soap-xml-get-attribute-or-nil1|soap-xml-get-children1|socks-build-auth-list|socks-chap-auth\n|socks-cram-auth|socks-filter|socks-find-route|socks-find-services-entry|socks-gssapi-auth|socks-nslookup-host|socks-open-connection\n|socks-open-network-stream|socks-original-open-network-stream|socks-parse-services|socks-register-authentication-method|socks-send-command\n|socks-split-string|socks-unregister-authentication-method|socks-username\\/password-auth-filter|socks-username\\/password-auth\n|socks-wait-for-state-change|solicit-char-in-string|solitaire-build-mode-line|solitaire-center-point|solitaire-check|solitaire-current-line\n|solitaire-do-check|solitaire-down|solitaire-insert-board|solitaire-left|solitaire-mode|solitaire-move-down|solitaire-move-left\n|solitaire-move-right|solitaire-move-up|solitaire-move|solitaire-possible-move|solitaire-right|solitaire-solve|solitaire-undo|solitaire-up\n|solitaire|some-window|some|sort\\*|sort-build-lists|sort-charsets|sort-coding-systems|sort-fields-1|sort-pages-buffer|sort-pages-in-region\n|sort-regexp-fields-next-record|sort-reorder-buffer|sort-skip-fields|soundex|spaces-string|spam-initialize|spam-report-agentize\n|spam-report-deagentize|spam-report-process-queue|spam-report-url-ping-mm-url|spam-report-url-to-file|special-display-p|special-display-popup-frame\n|speedbar-add-expansion-list|speedbar-add-ignored-directory-regexp|speedbar-add-ignored-path-regexp|speedbar-add-indicator|speedbar-add-localized-speedbar-support\n|speedbar-add-mode-functions-list|speedbar-add-supported-extension|speedbar-backward-list|speedbar-buffer-buttons-engine|speedbar-buffer-buttons-temp\n|speedbar-buffer-buttons|speedbar-buffer-click|speedbar-buffer-kill-buffer|speedbar-buffer-revert-buffer|speedbar-buffers-item-info\n|speedbar-buffers-line-directory|speedbar-buffers-line-path|speedbar-buffers-tail-notes|speedbar-center-buffer-smartly|speedbar-change-expand-button-char\n|speedbar-change-initial-expansion-list|speedbar-check-obj-this-line|speedbar-check-objects|speedbar-check-read-only|speedbar-check-vc-this-line\n|speedbar-check-vc|speedbar-clear-current-file|speedbar-click|speedbar-contract-line-descendants|speedbar-contract-line|speedbar-create-directory\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nspeedbar-create-tag-hierarchy|speedbar-current-frame|speedbar-customize|speedbar-default-directory-list|speedbar-delete-overlay\n|speedbar-delete-subblock|speedbar-dir-follow|speedbar-directory-buttons-follow|speedbar-directory-buttons|speedbar-directory-line\n|speedbar-dired|speedbar-disable-update|speedbar-do-function-pointer|speedbar-edit-line|speedbar-enable-update|speedbar-expand-line-descendants\n|speedbar-expand-line|speedbar-extension-list-to-regex|speedbar-extract-one-symbol|speedbar-fetch-dynamic-etags|speedbar-fetch-dynamic-imenu\n|speedbar-fetch-dynamic-tags|speedbar-fetch-replacement-function|speedbar-file-lists|speedbar-files-item-info|speedbar-files-line-directory\n|speedbar-find-file-in-frame|speedbar-find-file|speedbar-find-selected-file|speedbar-flush-expand-line|speedbar-forward-list|speedbar-frame-mode\n|speedbar-frame-reposition-smartly|speedbar-frame-width|speedbar-generic-item-info|speedbar-generic-list-group-p|speedbar-generic-list-positioned-group-p\n|speedbar-generic-list-tag-p|speedbar-get-focus|speedbar-goto-this-file|speedbar-handle-delete-frame|speedbar-highlight-one-tag-line\n|speedbar-image-dump|speedbar-initial-expansion-list|speedbar-initial-keymap|speedbar-initial-menu|speedbar-initial-stealthy-functions\n|speedbar-insert-button|speedbar-insert-etags-list|speedbar-insert-files-at-point|speedbar-insert-generic-list|speedbar-insert-image-button-maybe\n|speedbar-insert-imenu-list|speedbar-insert-separator|speedbar-item-byte-compile|speedbar-item-copy|speedbar-item-delete|speedbar-item-info-file-helper\n|speedbar-item-info-tag-helper|speedbar-item-info|speedbar-item-load|speedbar-item-object-delete|speedbar-item-rename|speedbar-line-directory\n|speedbar-line-file|speedbar-line-path|speedbar-line-text|speedbar-line-token|speedbar-make-button|speedbar-make-overlay|speedbar-make-specialized-keymap\n|speedbar-make-tag-line|speedbar-maybe-add-localized-support|speedbar-maybee-jump-to-attached-frame|speedbar-message|speedbar-mode-line-update\n|speedbar-mode|speedbar-mouse-item-info|speedbar-navigate-list|speedbar-next|speedbar-overlay-put|speedbar-parse-c-or-c\\+\\+tag\n|speedbar-parse-tex-string|speedbar-path-line|speedbar-position-cursor-on-line|speedbar-prefix-group-tag-hierarchy|speedbar-prev\n|speedbar-recenter-to-top|speedbar-recenter|speedbar-reconfigure-keymaps|speedbar-refresh|speedbar-remove-localized-speedbar-support\n|speedbar-reset-scanners|speedbar-restricted-move|speedbar-restricted-next|speedbar-restricted-prev|speedbar-scroll-down|speedbar-scroll-up\n|speedbar-select-attached-frame|speedbar-set-mode-line-format|speedbar-set-timer|speedbar-show-info-under-mouse|speedbar-simple-group-tag-hierarchy\n|speedbar-sort-tag-hierarchy|speedbar-stealthy-updates|speedbar-tag-expand|speedbar-tag-file|speedbar-tag-find|speedbar-this-file-in-vc\n|speedbar-timer-fn|speedbar-toggle-etags|speedbar-toggle-images|speedbar-toggle-line-expansion|speedbar-toggle-show-all-files\n|speedbar-toggle-sorting|speedbar-toggle-updates|speedbar-track-mouse|speedbar-trim-words-tag-hierarchy|speedbar-try-completion\n|speedbar-unhighlight-one-tag-line|speedbar-up-directory|speedbar-update-contents|speedbar-update-current-file|speedbar-update-directory-contents\n|speedbar-update-localized-contents|speedbar-update-special-contents|speedbar-vc-check-dir-p|speedbar-with-attached-buffer|speedbar-with-writable\n|speedbar-y-or-n-p|speedbar|split-char|split-line|split-window-horizontally|split-window-internal|split-window-vertically|spook|sql--completion-table\n|sql--make-help-docstring|sql--oracle-show-reserved-words|sql-accumulate-and-indent|sql-add-product-keywords|sql-add-product|sql-beginning-of-statement\n|sql-buffer-live-p|sql-build-completions-1|sql-build-completions|sql-comint-db2|sql-comint-informix|sql-comint-ingres|sql-comint-interbase\n|sql-comint-linter|sql-comint-ms|sql-comint-mysql|sql-comint-oracle|sql-comint-postgres|sql-comint-solid|sql-comint-sqlite|sql-comint-sybase\n|sql-comint-vertica|sql-comint|sql-connect|sql-connection-menu-filter|sql-copy-column|sql-db2|sql-default-value|sql-del-product|sql-end-of-statement\n|sql-ends-with-prompt-re|sql-escape-newlines-filter|sql-execute-feature|sql-execute|sql-find-sqli-buffer|sql-font-lock-keywords-builder\n|sql-for-each-login|sql-get-login-ext|sql-get-login|sql-get-product-feature|sql-help-list-products|sql-help|sql-highlight-ansi-keywords\n|sql-highlight-db2-keywords|sql-highlight-informix-keywords|sql-highlight-ingres-keywords|sql-highlight-interbase-keywords|sql-highlight-linter-keywords\n|sql-highlight-ms-keywords|sql-highlight-mysql-keywords|sql-highlight-oracle-keywords|sql-highlight-postgres-keywords|sql-highlight-product\n|sql-highlight-solid-keywords|sql-highlight-sqlite-keywords|sql-highlight-sybase-keywords|sql-highlight-vertica-keywords|sql-informix\n|sql-ingres|sql-input-sender|sql-interactive-mode-menu|sql-interactive-mode|sql-interactive-remove-continuation-prompt|sql-interbase\n|sql-linter|sql-list-all|sql-list-table|sql-magic-go|sql-magic-semicolon|sql-make-alternate-buffer-name|sql-mode-menu|sql-mode|sql-ms\n|sql-mysql|sql-oracle-completion-object|sql-oracle-list-all|sql-oracle-list-table|sql-oracle-restore-settings|sql-oracle-save-settings\n|sql-oracle|sql-placeholders-filter|sql-postgres-completion-object|sql-postgres|sql-product-font-lock-syntax-alist|sql-product-font-lock\n|sql-product-interactive|sql-product-syntax-table|sql-read-connection|sql-read-product|sql-read-table-name|sql-redirect-one|sql-redirect-value\n|sql-redirect|sql-regexp-abbrev-list|sql-regexp-abbrev|sql-remove-tabs-filter|sql-rename-buffer|sql-save-connection|sql-send-buffer\n|sql-send-line-and-next|sql-send-magic-terminator|sql-send-paragraph|sql-send-region|sql-send-string|sql-set-product-feature|sql-set-product\n|sql-set-sqli-buffer-generally|sql-set-sqli-buffer|sql-show-sqli-buffer|sql-solid|sql-sqlite-completion-object|sql-sqlite|sql-starts-with-prompt-re\n|sql-statement-regexp|sql-stop|sql-str-literal|sql-sybase|sql-toggle-pop-to-buffer-after-send-region|sql-vertica|squeeze-bidi-context-1\n|squeeze-bidi-context|srecode-compile-templates|srecode-document-insert-comment|srecode-document-insert-function-comment|srecode-document-insert-group-comments\n|srecode-document-insert-variable-one-line-comment|srecode-get-maps|srecode-insert-getset|srecode-insert-prototype-expansion\n|srecode-insert|srecode-minor-mode|srecode-semantic-handle-:c|srecode-semantic-handle-:cpp|srecode-semantic-handle-:el-custom\n|srecode-semantic-handle-:el|srecode-semantic-handle-:java|srecode-semantic-handle-:srt|srecode-semantic-handle-:texi|srecode-semantic-handle-:texitag\n|srecode-template-mode|srecode-template-setup-parser|srt-mode|stable-sort|standard-class|standard-display-8bit|standard-display-ascii\n|standard-display-cyrillic-translit|standard-display-default|standard-display-european-internal|standard-display-european|standard-display-g1\n|standard-display-graphic|standard-display-underline|start-kbd-macro|start-of-paragraph-text|start-scheme|starttls-any-program-available\n|starttls-available-p|starttls-negotiate-gnutls|starttls-negotiate|starttls-open-stream-gnutls|starttls-open-stream|starttls-set-process-query-on-exit-flag\n|startup-echo-area-message|straight-use-package|store-kbd-macro-event|string-blank-p|string-collate-equalp|string-collate-lessp|string-empty-p|string-insert-rectangle\n|string-join|string-make-multibyte|string-make-unibyte|string-rectangle-line|string-rectangle|string-remove-prefix|string-remove-suffix\n|string-reverse|string-to-list|string-to-vector|string-trim-left|string-trim-right|string-trim|strokes-alphabetic-lessp|strokes-button-press-event-p\n|strokes-button-release-event-p|strokes-click-p|strokes-compose-complex-stroke|strokes-decode-buffer|strokes-define-stroke|strokes-describe-stroke\n|strokes-distance-squared|strokes-do-complex-stroke|strokes-do-stroke|strokes-eliminate-consecutive-redundancies|strokes-encode-buffer\n|strokes-event-closest-point-1|strokes-event-closest-point|strokes-execute-stroke|strokes-fill-current-buffer-with-whitespace\n|strokes-fill-stroke|strokes-get-grid-position|strokes-get-stroke-extent|strokes-global-set-stroke-string|strokes-global-set-stroke\n|strokes-help|strokes-lift-p|strokes-list-strokes|strokes-load-user-strokes|strokes-match-stroke|strokes-mode|strokes-mouse-event-p\n|strokes-prompt-user-save-strokes|strokes-rate-stroke|strokes-read-complex-stroke|strokes-read-stroke|strokes-remassoc|strokes-renormalize-to-grid\n|strokes-report-bug|strokes-square|strokes-toggle-strokes-buffer|strokes-unload-function|strokes-unset-last-stroke|strokes-update-window-configuration\n|strokes-window-configuration-changed-p|strokes-xpm-char-bit-p|strokes-xpm-char-on-p|strokes-xpm-decode-char|strokes-xpm-encode-length-as-string\n|strokes-xpm-for-compressed-string|strokes-xpm-for-stroke|strokes-xpm-to-compressed-string|studlify-buffer|studlify-region|studlify-word\n|sublis|subr-name|subregexp-context-p|subseq|subsetp|subst-char-in-string|subst-if-not|subst-if|subst|substitute-env-in-file-name|substitute-env-vars\n|substitute-if-not|substitute-if|substitute-key-definition-key|substitute|subtract-time|subword-mode|sunrise-sunset|superword-mode\n|suspicious-object|svref|switch-to-completions|switch-to-lisp|switch-to-prolog|switch-to-scheme|switch-to-tcl|symbol-at-point|symbol-before-point-for-complete\n|symbol-before-point|symbol-macrolet|symbol-under-or-before-point|symbol-under-point|syntax-ppss-after-change-function|syntax-ppss-context\n|syntax-ppss-debug|syntax-ppss-depth|syntax-ppss-stats|syntax-propertize--shift-groups|syntax-propertize-multiline|syntax-propertize-precompile-rules\n|syntax-propertize-rules|syntax-propertize-via-font-lock|syntax-propertize-wholelines|syntax-propertize|t-mouse-mode|tabify|table--at-cell-p\n|table--buffer-substring-and-trim|table--cancel-timer|table--cell-blank-str|table--cell-can-span-p|table--cell-can-split-horizontally-p\n|table--cell-can-split-vertically-p|table--cell-horizontal-char-p|table--cell-insert-char|table--cell-list-to-coord-list|table--cell-to-coord\n|table--char-in-str-at-column|table--copy-coordinate|table--create-growing-space-below|table--current-line|table--detect-cell-alignment\n|table--editable-cell-p|table--fill-region-strictly|table--fill-region|table--find-row-column|table--finish-delayed-tasks|table--generate-source-cell-contents\n|table--generate-source-cells-in-a-row|table--generate-source-epilogue|table--generate-source-prologue|table--generate-source-scan-lines\n|table--generate-source-scan-rows|table--get-cell-justify-property|table--get-cell-valign-property|table--get-coordinate|table--get-last-command\n|table--get-property|table--goto-coordinate|table--horizontal-cell-list|table--horizontally-shift-above-and-below|table--insert-rectangle\n|table--justify-cell-contents|table--line-column-position|table--log|table--make-cell-map|table--measure-max-width|table--min-coord-list\n|table--multiply-string|table--offset-coordinate|table--point-entered-cell-function|table--point-in-cell-p|table--point-left-cell-function\n|table--probe-cell-left-up|table--probe-cell-right-bottom|table--probe-cell|table--put-cell-content-property|table--put-cell-face-property\n|table--put-cell-indicator-property|table--put-cell-justify-property|table--put-cell-keymap-property|table--put-cell-line-property\n|table--put-cell-point-entered\\/left-property|table--put-cell-property|table--put-cell-rear-nonsticky|table--put-cell-valign-property\n|table--put-property|table--query-justification|table--read-from-minibuffer|table--region-in-cell-p|table--remove-blank-lines\n|table--remove-cell-properties|table--remove-eol-spaces|table--row-column-insertion-point-p|table--set-timer|table--spacify-frame\n|table--str-index-at-column|table--string-to-number-list|table--test-cell-list|table--transcoord-cache-to-table|table--transcoord-table-to-cache\n|table--uniform-list-p|table--untabify-line|table--untabify|table--update-cell-face|table--update-cell-heightened|table--update-cell-widened\n|table--update-cell|table--valign|table--vertical-cell-list|table--warn-incompatibility|table-backward-cell|table-capture|table-delete-column\n|table-delete-row|table-fixed-width-mode|table-forward-cell|table-function|table-generate-source|table-get-source-info|table-global-menu-map\n|table-goto-bottom-left-corner|table-goto-bottom-right-corner|table-goto-top-left-corner|table-goto-top-right-corner|table-heighten-cell\n|table-insert-column|table-insert-row-column|table-insert-row|table-insert-sequence|table-insert|table-justify-cell|table-justify-column\n|table-justify-row|table-justify|table-narrow-cell|table-put-source-info|table-query-dimension|table-recognize-cell|table-recognize-region\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ntable-recognize-table|table-recognize|table-release|table-shorten-cell|table-span-cell|table-split-cell-horizontally|table-split-cell-vertically\n|table-split-cell|table-unrecognize-cell|table-unrecognize-region|table-unrecognize-table|table-unrecognize|table-widen-cell|table-with-cache-buffer\n|tabulated-list--column-number|tabulated-list--sort-by-column-name|tabulated-list-col-sort|tabulated-list-delete-entry|tabulated-list-entry-size->\n|tabulated-list-get-entry|tabulated-list-get-id|tabulated-list-print-col|tabulated-list-print-entry|tabulated-list-print-fake-header\n|tabulated-list-put-tag|tabulated-list-revert|tabulated-list-set-col|tabulated-list-sort|tag-any-match-p|tag-exact-file-name-match-p\n|tag-exact-match-p|tag-file-name-match-p|tag-find-file-of-tag-noselect|tag-find-file-of-tag|tag-implicit-name-match-p|tag-partial-file-name-match-p\n|tag-re-match-p|tag-symbol-match-p|tag-word-match-p|tags-apropos|tags-complete-tags-table-file|tags-completion-at-point-function\n|tags-completion-table|tags-expand-table-name|tags-included-tables|tags-lazy-completion-table|tags-loop-continue|tags-loop-eval\n|tags-next-table|tags-query-replace|tags-recognize-empty-tags-table|tags-reset-tags-tables|tags-search|tags-table-check-computed-list\n|tags-table-extend-computed-list|tags-table-files|tags-table-including|tags-table-list-member|tags-table-mode|tags-verify-table\n|tags-with-face|tai-viet-composition-function|tailp|talk-add-display|talk-connect|talk-disconnect|talk-handle-delete-frame|talk-split-up-frame\n|talk-update-buffers|talk|tar--check-descriptor|tar--extract|tar-alter-one-field|tar-change-major-mode-hook|tar-chgrp-entry|tar-chmod-entry\n|tar-chown-entry|tar-clear-modification-flags|tar-clip-time-string|tar-copy|tar-current-descriptor|tar-data-swapped-p|tar-display-other-window\n|tar-expunge-internal|tar-expunge|tar-extract-other-window|tar-extract|tar-file-name-handler|tar-flag-deleted|tar-get-descriptor\n|tar-get-file-descriptor|tar-grind-file-mode|tar-header-block-check-checksum|tar-header-block-checksum|tar-header-block-summarize\n|tar-header-block-tokenize|tar-header-checksum--cmacro|tar-header-checksum|tar-header-data-end|tar-header-data-start--cmacro|tar-header-data-start\n|tar-header-date--cmacro|tar-header-date|tar-header-dmaj--cmacro|tar-header-dmaj|tar-header-dmin--cmacro|tar-header-dmin|tar-header-gid--cmacro\n|tar-header-gid|tar-header-gname--cmacro|tar-header-gname|tar-header-header-start--cmacro|tar-header-header-start|tar-header-link-name--cmacro\n|tar-header-link-name|tar-header-link-type--cmacro|tar-header-link-type|tar-header-magic--cmacro|tar-header-magic|tar-header-mode--cmacro\n|tar-header-mode|tar-header-name--cmacro|tar-header-name|tar-header-p--cmacro|tar-header-p|tar-header-size--cmacro|tar-header-size\n|tar-header-uid--cmacro|tar-header-uid|tar-header-uname--cmacro|tar-header-uname|tar-mode-kill-buffer-hook|tar-mode-revert|tar-mode\n|tar-mouse-extract|tar-next-line|tar-octal-time|tar-pad-to-blocksize|tar-parse-octal-integer-safe|tar-parse-octal-integer|tar-parse-octal-long-integer\n|tar-previous-line|tar-read-file-name|tar-rename-entry|tar-roundup-512|tar-subfile-mode|tar-subfile-save-buffer|tar-summarize-buffer\n|tar-swap-data|tar-unflag-backwards|tar-unflag|tar-untar-buffer|tar-view|tar-write-region-annotate|tcl-add-log-defun|tcl-auto-fill-mode\n|tcl-beginning-of-defun|tcl-calculate-indent|tcl-comment-indent|tcl-current-word|tcl-electric-brace|tcl-electric-char|tcl-electric-hash\n|tcl-end-of-defun|tcl-eval-defun|tcl-eval-region|tcl-figure-type|tcl-files-alist|tcl-filter|tcl-guess-application|tcl-hairy-scan-for-comment\n|tcl-hashify-buffer|tcl-help-on-word|tcl-help-snarf-commands|tcl-in-comment|tcl-indent-command|tcl-indent-exp|tcl-indent-for-comment\n|tcl-indent-line|tcl-load-file|tcl-mark-defun|tcl-mark|tcl-mode-menu|tcl-mode|tcl-outline-level|tcl-popup-menu|tcl-quote|tcl-real-command-p\n|tcl-real-comment-p|tcl-reread-help-files|tcl-restart-with-file|tcl-send-region|tcl-send-string|tcl-set-font-lock-keywords|tcl-set-proc-regexp\n|tcl-uncomment-region|tcl-word-no-props|tear-off-window|telnet-c-z|telnet-check-software-type-initialize|telnet-filter|telnet-initial-filter\n|telnet-interrupt-subjob|telnet-mode|telnet-send-input|telnet-simple-send|telnet|temp-buffer-resize-mode|temp-buffer-window-setup\n|temp-buffer-window-show|tempo-add-tag|tempo-backward-mark|tempo-build-collection|tempo-complete-tag|tempo-define-template|tempo-display-completions\n|tempo-expand-if-complete|tempo-find-match-string|tempo-forget-insertions|tempo-forward-mark|tempo-insert-mark|tempo-insert-named\n|tempo-insert-prompt-compat|tempo-insert-prompt|tempo-insert-template|tempo-insert|tempo-invalidate-collection|tempo-is-user-element\n|tempo-lookup-named|tempo-process-and-insert-string|tempo-save-named|tempo-template-dcl-f\\$context|tempo-template-dcl-f\\$csid\n|tempo-template-dcl-f\\$cvsi|tempo-template-dcl-f\\$cvtime|tempo-template-dcl-f\\$cvui|tempo-template-dcl-f\\$device|tempo-template-dcl-f\\$directory\n|tempo-template-dcl-f\\$edit|tempo-template-dcl-f\\$element|tempo-template-dcl-f\\$environment|tempo-template-dcl-f\\$extract\n|tempo-template-dcl-f\\$fao|tempo-template-dcl-f\\$file_attributes|tempo-template-dcl-f\\$getdvi|tempo-template-dcl-f\\$getjpi\n|tempo-template-dcl-f\\$getqui|tempo-template-dcl-f\\$getsyi|tempo-template-dcl-f\\$identifier|tempo-template-dcl-f\\$integer\n|tempo-template-dcl-f\\$length|tempo-template-dcl-f\\$locate|tempo-template-dcl-f\\$message|tempo-template-dcl-f\\$mode|tempo-template-dcl-f\\$parse\n|tempo-template-dcl-f\\$pid|tempo-template-dcl-f\\$privilege|tempo-template-dcl-f\\$process|tempo-template-dcl-f\\$search|tempo-template-dcl-f\\$setprv\n|tempo-template-dcl-f\\$string|tempo-template-dcl-f\\$time|tempo-template-dcl-f\\$trnlnm|tempo-template-dcl-f\\$type|tempo-template-dcl-f\\$user\n|tempo-template-dcl-f\\$verify|tempo-template-snmp-object-type|tempo-template-snmp-table-type|tempo-template-snmpv2-object-type\n|tempo-template-snmpv2-table-type|tempo-template-snmpv2-textual-convention|tempo-use-tag-list|tenth|term-adjust-current-row-cache\n|term-after-pmark-p|term-ansi-make-term|term-ansi-reset|term-args|term-arguments|term-backward-matching-input|term-bol|term-buffer-vertical-motion\n|term-char-mode|term-check-kill-echo-list|term-check-proc|term-check-size|term-check-source|term-command-hook|term-continue-subjob\n|term-copy-old-input|term-current-column|term-current-row|term-delchar-or-maybe-eof|term-delete-chars|term-delete-lines|term-delim-arg\n|term-directory|term-display-buffer-line|term-display-line|term-down|term-dynamic-complete-as-filename|term-dynamic-complete-filename\n|term-dynamic-complete|term-dynamic-list-completions|term-dynamic-list-filename-completions|term-dynamic-list-input-ring|term-dynamic-simple-complete\n|term-emulate-terminal|term-erase-in-display|term-erase-in-line|term-exec-1|term-exec|term-extract-string|term-forward-matching-input\n|term-get-old-input-default|term-get-source|term-goto-home|term-goto|term-handle-ansi-escape|term-handle-ansi-terminal-messages\n|term-handle-colors-array|term-handle-deferred-scroll|term-handle-exit|term-handle-scroll|term-handling-pager|term-horizontal-column\n|term-how-many-region|term-in-char-mode|term-in-line-mode|term-insert-char|term-insert-lines|term-insert-spaces|term-interrupt-subjob\n|term-kill-input|term-kill-output|term-kill-subjob|term-line-mode|term-magic-space|term-match-partial-filename|term-mode|term-mouse-paste\n|term-move-columns|term-next-input|term-next-matching-input-from-input|term-next-matching-input|term-next-prompt|term-pager-back-line\n|term-pager-back-page|term-pager-bob|term-pager-continue|term-pager-disable|term-pager-discard|term-pager-enable|term-pager-enabled\n|term-pager-eob|term-pager-help|term-pager-line|term-pager-menu|term-pager-page|term-pager-toggle|term-paste|term-previous-input-string\n|term-previous-input|term-previous-matching-input-from-input|term-previous-matching-input-string-position|term-previous-matching-input-string\n|term-previous-matching-input|term-previous-prompt|term-proc-query|term-process-pager|term-quit-subjob|term-read-input-ring|term-read-noecho\n|term-regexp-arg|term-replace-by-expanded-filename|term-replace-by-expanded-history-before-point|term-replace-by-expanded-history\n|term-reset-size|term-reset-terminal|term-search-arg|term-search-start|term-send-backspace|term-send-del|term-send-down|term-send-end\n|term-send-eof|term-send-home|term-send-input|term-send-insert|term-send-invisible|term-send-left|term-send-next|term-send-prior\n|term-send-raw-meta|term-send-raw-string|term-send-raw|term-send-region|term-send-right|term-send-string|term-send-up|term-sentinel\n|term-set-escape-char|term-set-scroll-region|term-show-maximum-output|term-show-output|term-signals-menu|term-simple-send|term-skip-prompt\n|term-source-default|term-start-line-column|term-start-output-log|term-stop-output-log|term-stop-subjob|term-terminal-menu|term-terminal-pos\n|term-unwrap-line|term-update-mode-line|term-using-alternate-sub-buffer|term-vertical-motion|term-window-width|term-within-quotes\n|term-word|term-write-input-ring|term|testcover-1value|testcover-after|testcover-end|testcover-enter|testcover-mark|testcover-read\n|testcover-reinstrument-compose|testcover-reinstrument-list|testcover-reinstrument|testcover-this-defun|testcover-unmark-all|tetris-active-p\n|tetris-default-update-speed-function|tetris-display-options|tetris-draw-border-p|tetris-draw-next-shape|tetris-draw-score|tetris-draw-shape\n|tetris-end-game|tetris-erase-shape|tetris-full-row|tetris-get-shape-cell|tetris-get-tick-period|tetris-init-buffer|tetris-mode\n|tetris-move-bottom|tetris-move-left|tetris-move-right|tetris-new-shape|tetris-pause-game|tetris-reset-game|tetris-rotate-next|tetris-rotate-prev\n|tetris-shape-done|tetris-shape-rotations|tetris-shape-width|tetris-shift-down|tetris-shift-row|tetris-start-game|tetris-test-shape\n|tetris-update-game|tetris-update-score|tetris|tex-alt-print|tex-append|tex-bibtex-file|tex-buffer|tex-categorize-whitespace|tex-close-latex-block\n|tex-cmd-doc-view|tex-command-active-p|tex-command-executable|tex-common-initialization|tex-compile-default|tex-compile|tex-count-words\n|tex-current-defun-name|tex-define-common-keys|tex-delete-last-temp-files|tex-display-shell|tex-env-mark|tex-executable-exists-p\n|tex-expand-files|tex-facemenu-add-face-function|tex-feed-input|tex-file|tex-font-lock-append-prop|tex-font-lock-match-suscript\n|tex-font-lock-suscript|tex-font-lock-syntactic-face-function|tex-font-lock-unfontify-region|tex-font-lock-verb|tex-format-cmd\n|tex-generate-zap-file-name|tex-goto-last-unclosed-latex-block|tex-guess-main-file|tex-guess-mode|tex-insert-braces|tex-insert-quote\n|tex-kill-job|tex-last-unended-begin|tex-last-unended-eparen|tex-latex-block|tex-main-file|tex-mode-flyspell-verify|tex-mode-internal\n|tex-mode|tex-next-unmatched-end|tex-next-unmatched-eparen|tex-old-error-file-name|tex-print|tex-recenter-output-buffer|tex-region-header\n|tex-region|tex-search-noncomment|tex-send-command|tex-send-tex-command|tex-set-buffer-directory|tex-shell-buf-no-error|tex-shell-buf\n|tex-shell-proc|tex-shell-running|tex-shell-sentinel|tex-shell|tex-show-print-queue|tex-start-shell|tex-start-tex|tex-string-prefix-p\n|tex-summarize-command|tex-suscript-height|tex-terminate-paragraph|tex-uptodate-p|tex-validate-buffer|tex-validate-region|tex-view\n|texi2info|texinfmt-version|texinfo-alias|texinfo-all-menus-update|texinfo-alphaenumerate-item|texinfo-alphaenumerate|texinfo-anchor\n|texinfo-append-refill|texinfo-capsenumerate-item|texinfo-capsenumerate|texinfo-check-for-node-name|texinfo-clean-up-node-line\n|texinfo-clear|texinfo-clone-environment|texinfo-copy-menu-title|texinfo-copy-menu|texinfo-copy-next-section-title|texinfo-copy-node-name\n|texinfo-copy-section-title|texinfo-copying|texinfo-current-defun-name|texinfo-define-common-keys|texinfo-define-info-enclosure\n|texinfo-delete-existing-pointers|texinfo-delete-from-print-queue|texinfo-delete-old-menu|texinfo-description|texinfo-discard-command-and-arg\n|texinfo-discard-command|texinfo-discard-line-with-args|texinfo-discard-line|texinfo-do-flushright|texinfo-do-itemize|texinfo-end-alphaenumerate\n|texinfo-end-capsenumerate|texinfo-end-defun|texinfo-end-direntry|texinfo-end-enumerate|texinfo-end-example|texinfo-end-flushleft\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ntexinfo-end-flushright|texinfo-end-ftable|texinfo-end-indextable|texinfo-end-itemize|texinfo-end-multitable|texinfo-end-table\n|texinfo-end-vtable|texinfo-enumerate-item|texinfo-enumerate|texinfo-every-node-update|texinfo-filter|texinfo-find-higher-level-node\n|texinfo-find-lower-level-node|texinfo-find-pointer|texinfo-footnotestyle|texinfo-format-\\.|texinfo-format-:|texinfo-format-French-OE-ligature\n|texinfo-format-French-oe-ligature|texinfo-format-German-sharp-S|texinfo-format-Latin-Scandinavian-AE|texinfo-format-Latin-Scandinavian-ae\n|texinfo-format-Polish-suppressed-L|texinfo-format-Polish-suppressed-l-lower-case|texinfo-format-Scandinavian-A-with-circle\n|texinfo-format-Scandinavian-O-with-slash|texinfo-format-Scandinavian-a-with-circle|texinfo-format-Scandinavian-o-with-slash-lower-case\n|texinfo-format-TeX|texinfo-format-begin-end|texinfo-format-begin|texinfo-format-breve-accent|texinfo-format-buffer-1|texinfo-format-buffer\n|texinfo-format-bullet|texinfo-format-cedilla-accent|texinfo-format-center|texinfo-format-chapter-1|texinfo-format-chapter|texinfo-format-cindex\n|texinfo-format-code|texinfo-format-convert|texinfo-format-copyright|texinfo-format-ctrl|texinfo-format-defcv|texinfo-format-deffn\n|texinfo-format-defindex|texinfo-format-defivar|texinfo-format-defmethod|texinfo-format-defn|texinfo-format-defop|texinfo-format-deftypefn\n|texinfo-format-deftypefun|texinfo-format-defun-1|texinfo-format-defun|texinfo-format-defunx|texinfo-format-dircategory|texinfo-format-direntry\n|texinfo-format-documentdescription|texinfo-format-dotless|texinfo-format-dots|texinfo-format-email|texinfo-format-emph|texinfo-format-end-node\n|texinfo-format-end|texinfo-format-enddots|texinfo-format-equiv|texinfo-format-error|texinfo-format-example|texinfo-format-exdent\n|texinfo-format-expand-region|texinfo-format-expansion|texinfo-format-findex|texinfo-format-flushleft|texinfo-format-flushright\n|texinfo-format-footnote|texinfo-format-hacek-accent|texinfo-format-html|texinfo-format-ifeq|texinfo-format-ifhtml|texinfo-format-ifnotinfo\n|texinfo-format-ifplaintext|texinfo-format-iftex|texinfo-format-ifxml|texinfo-format-ignore|texinfo-format-image|texinfo-format-inforef\n|texinfo-format-kbd|texinfo-format-key|texinfo-format-kindex|texinfo-format-long-Hungarian-umlaut|texinfo-format-menu|texinfo-format-minus\n|texinfo-format-node|texinfo-format-noop|texinfo-format-option|texinfo-format-overdot-accent|texinfo-format-paragraph-break|texinfo-format-parse-args\n|texinfo-format-parse-defun-args|texinfo-format-parse-line-args|texinfo-format-pindex|texinfo-format-point|texinfo-format-pounds\n|texinfo-format-print|texinfo-format-printindex|texinfo-format-pxref|texinfo-format-refill|texinfo-format-region|texinfo-format-result\n|texinfo-format-ring-accent|texinfo-format-scan|texinfo-format-section|texinfo-format-sectionpad|texinfo-format-separate-node\n|texinfo-format-setfilename|texinfo-format-soft-hyphen|texinfo-format-sp|texinfo-format-specialized-defun|texinfo-format-subsection\n|texinfo-format-subsubsection|texinfo-format-synindex|texinfo-format-tex|texinfo-format-tie-after-accent|texinfo-format-timestamp\n|texinfo-format-tindex|texinfo-format-titlepage|texinfo-format-titlespec|texinfo-format-today|texinfo-format-underbar-accent|texinfo-format-underdot-accent\n|texinfo-format-upside-down-exclamation-mark|texinfo-format-upside-down-question-mark|texinfo-format-uref|texinfo-format-var\n|texinfo-format-verb|texinfo-format-vindex|texinfo-format-xml|texinfo-format-xref|texinfo-ftable-item|texinfo-ftable|texinfo-hierarchic-level\n|texinfo-if-clear|texinfo-if-set|texinfo-incorporate-descriptions|texinfo-incorporate-menu-entry-names|texinfo-indent-menu-description\n|texinfo-index-defcv|texinfo-index-deffn|texinfo-index-defivar|texinfo-index-defmethod|texinfo-index-defop|texinfo-index-deftypefn\n|texinfo-index-defun|texinfo-index|texinfo-indextable-item|texinfo-indextable|texinfo-insert-@code|texinfo-insert-@dfn|texinfo-insert-@email\n|texinfo-insert-@emph|texinfo-insert-@end|texinfo-insert-@example|texinfo-insert-@file|texinfo-insert-@item|texinfo-insert-@kbd\n|texinfo-insert-@node|texinfo-insert-@noindent|texinfo-insert-@quotation|texinfo-insert-@samp|texinfo-insert-@strong|texinfo-insert-@table\n|texinfo-insert-@uref|texinfo-insert-@url|texinfo-insert-@var|texinfo-insert-block|texinfo-insert-braces|texinfo-insert-master-menu-list\n|texinfo-insert-menu|texinfo-insert-node-lines|texinfo-insert-pointer|texinfo-insert-quote|texinfo-insertcopying|texinfo-inside-env-p\n|texinfo-inside-macro-p|texinfo-item|texinfo-itemize-item|texinfo-itemize|texinfo-last-unended-begin|texinfo-locate-menu-p|texinfo-make-menu-list\n|texinfo-make-menu|texinfo-make-one-menu|texinfo-master-menu-list|texinfo-master-menu|texinfo-menu-copy-old-description|texinfo-menu-end\n|texinfo-menu-first-node|texinfo-menu-indent-description|texinfo-menu-locate-entry-p|texinfo-mode-flyspell-verify|texinfo-mode-menu\n|texinfo-mode|texinfo-multi-file-included-list|texinfo-multi-file-master-menu-list|texinfo-multi-file-update|texinfo-multi-files-insert-main-menu\n|texinfo-multiple-files-update|texinfo-multitable-extract-row|texinfo-multitable-item|texinfo-multitable-widths|texinfo-multitable\n|texinfo-next-unmatched-end|texinfo-noindent|texinfo-old-menu-p|texinfo-optional-braces-discard|texinfo-paragraphindent|texinfo-parse-arg-discard\n|texinfo-parse-expanded-arg|texinfo-parse-line-arg|texinfo-pointer-name|texinfo-pop-stack|texinfo-print-index|texinfo-push-stack\n|texinfo-quit-job|texinfo-raise-lower-sections|texinfo-sequential-node-update|texinfo-sequentially-find-pointer|texinfo-sequentially-insert-pointer\n|texinfo-sequentially-update-the-node|texinfo-set|texinfo-show-structure|texinfo-sort-region|texinfo-sort-startkeyfun|texinfo-specific-section-type\n|texinfo-start-menu-description|texinfo-table-item|texinfo-table|texinfo-tex-buffer|texinfo-tex-print|texinfo-tex-region|texinfo-tex-view\n|texinfo-texindex|texinfo-top-pointer-case|texinfo-unsupported|texinfo-update-menu-region-beginning|texinfo-update-menu-region-end\n|texinfo-update-node|texinfo-update-the-node|texinfo-value|texinfo-vtable-item|texinfo-vtable|text-clone--maintain|text-clone-create\n|text-mode-hook-identify|text-scale-adjust|text-scale-decrease|text-scale-increase|text-scale-mode|text-scale-set|thai-compose-buffer\n|thai-compose-region|thai-compose-string|thai-composition-function|the|thing-at-point--bounds-of-markedup-url|thing-at-point--bounds-of-well-formed-url\n|thing-at-point-bounds-of-list-at-point|thing-at-point-bounds-of-url-at-point|thing-at-point-looking-at|thing-at-point-newsgroup-p\n|thing-at-point-url-at-point|third|this-major-mode-requires-vi-state|this-single-command-keys|this-single-command-raw-keys|thread-first\n|thread-last|thumbs-backward-char|thumbs-backward-line|thumbs-call-convert|thumbs-call-setroot-command|thumbs-cleanup-thumbsdir\n|thumbs-current-image|thumbs-delete-images|thumbs-dired-setroot|thumbs-dired-show-marked|thumbs-dired-show|thumbs-dired|thumbs-display-thumbs-buffer\n|thumbs-do-thumbs-insertion|thumbs-emboss-image|thumbs-enlarge-image|thumbs-file-alist|thumbs-file-list|thumbs-file-size|thumbs-find-image-at-point-other-window\n|thumbs-find-image-at-point|thumbs-find-image|thumbs-find-thumb|thumbs-forward-char|thumbs-forward-line|thumbs-image-type|thumbs-insert-image\n|thumbs-insert-thumb|thumbs-kill-buffer|thumbs-make-thumb|thumbs-mark|thumbs-mode|thumbs-modify-image|thumbs-monochrome-image|thumbs-mouse-find-image\n|thumbs-negate-image|thumbs-new-image-size|thumbs-next-image|thumbs-previous-image|thumbs-redraw-buffer|thumbs-rename-images|thumbs-resize-image-1\n|thumbs-resize-image|thumbs-rotate-left|thumbs-rotate-right|thumbs-save-current-image|thumbs-set-image-at-point-to-root-window\n|thumbs-set-root|thumbs-show-from-dir|thumbs-show-image-num|thumbs-show-more-images|thumbs-show-name|thumbs-show-thumbs-list|thumbs-shrink-image\n|thumbs-temp-dir|thumbs-temp-file|thumbs-thumbname|thumbs-thumbsdir|thumbs-unmark|thumbs-view-image-mode|thumbs|tibetan-char-p|tibetan-compose-buffer\n|tibetan-compose-region|tibetan-compose-string|tibetan-decompose-buffer|tibetan-decompose-region|tibetan-decompose-string|tibetan-post-read-conversion\n|tibetan-pre-write-canonicalize-for-unicode|tibetan-pre-write-conversion|tibetan-tibetan-to-transcription|tibetan-transcription-to-tibetan\n|tildify--deprecated-ignore-evironments|tildify--find-env|tildify--foreach-region|tildify--pick-alist-entry|tildify-buffer|tildify-foreach-ignore-environments\n|tildify-region|tildify-tildify|time-date--day-in-year|time-since|time-stamp-conv-warn|time-stamp-do-number|time-stamp-fconcat|time-stamp-mail-host-name\n|time-stamp-once|time-stamp-string-preprocess|time-stamp-string|time-stamp-toggle-active|time-stamp|time-to-number-of-days|time-to-seconds\n|timeclock-ask-for-project|timeclock-ask-for-reason|timeclock-change|timeclock-completing-read|timeclock-current-debt|timeclock-currently-in-p\n|timeclock-day-alist|timeclock-day-base|timeclock-day-begin|timeclock-day-break|timeclock-day-debt|timeclock-day-end|timeclock-day-length\n|timeclock-day-list-begin|timeclock-day-list-break|timeclock-day-list-debt|timeclock-day-list-end|timeclock-day-list-length|timeclock-day-list-projects\n|timeclock-day-list-required|timeclock-day-list-span|timeclock-day-list-template|timeclock-day-list|timeclock-day-projects|timeclock-day-required\n|timeclock-day-span|timeclock-entry-begin|timeclock-entry-comment|timeclock-entry-end|timeclock-entry-length|timeclock-entry-list-begin\n|timeclock-entry-list-break|timeclock-entry-list-end|timeclock-entry-list-length|timeclock-entry-list-projects|timeclock-entry-list-span\n|timeclock-entry-project|timeclock-find-discrep|timeclock-generate-report|timeclock-in|timeclock-last-period|timeclock-log-data\n|timeclock-log|timeclock-make-hours-explicit|timeclock-mean|timeclock-mode-line-display|timeclock-modeline-display|timeclock-out\n|timeclock-project-alist|timeclock-query-out|timeclock-read-moment|timeclock-reread-log|timeclock-seconds-to-string|timeclock-seconds-to-time\n|timeclock-status-string|timeclock-time-to-date|timeclock-time-to-seconds|timeclock-update-mode-line|timeclock-update-modeline\n|timeclock-visit-timelog|timeclock-when-to-leave-string|timeclock-when-to-leave|timeclock-workday-elapsed-string|timeclock-workday-elapsed\n|timeclock-workday-remaining-string|timeclock-workday-remaining|timeout-event-p|timep|timer--activate|timer--args--cmacro|timer--args\n|timer--check|timer--function--cmacro|timer--function|timer--high-seconds--cmacro|timer--high-seconds|timer--idle-delay--cmacro\n|timer--idle-delay|timer--low-seconds--cmacro|timer--low-seconds|timer--psecs--cmacro|timer--psecs|timer--repeat-delay--cmacro\n|timer--repeat-delay|timer--time-less-p|timer--time-setter|timer--time|timer--triggered--cmacro|timer--triggered|timer--usecs--cmacro\n|timer--usecs|timer-activate-when-idle|timer-activate|timer-create--cmacro|timer-create|timer-duration|timer-event-handler|timer-inc-time\n|timer-next-integral-multiple-of-time|timer-relative-time|timer-set-function|timer-set-idle-time|timer-set-time-with-usecs|timer-set-time\n|timer-until|timerp|timezone-absolute-from-gregorian|timezone-day-number|timezone-fix-time|timezone-last-day-of-month|timezone-leap-year-p\n|timezone-make-arpa-date|timezone-make-date-arpa-standard|timezone-make-date-sortable|timezone-make-sortable-date|timezone-make-time-string\n|timezone-parse-date|timezone-parse-time|timezone-time-from-absolute|timezone-time-zone-from-absolute|timezone-zone-to-minute\n|titdic-convert|tls-certificate-information|tmm--completion-table|tmm-add-one-shortcut|tmm-add-prompt|tmm-add-shortcuts|tmm-completion-delete-prompt\n|tmm-define-keys|tmm-get-keybind|tmm-get-keymap|tmm-goto-completions|tmm-menubar-mouse|tmm-menubar|tmm-prompt|tmm-remove-inactive-mouse-face\n|tmm-shortcut|todo--user-error-if-marked-done-item|todo-absolute-file-name|todo-add-category|todo-add-file|todo-adjusted-category-label-length\n|todo-archive-done-item|todo-archive-mode|todo-backward-category|todo-backward-item|todo-categories-mode|todo-category-completions\n|todo-category-number|todo-category-select|todo-category-string-matcher-1|todo-category-string-matcher-2|todo-check-file|todo-check-filtered-items-file\n|todo-check-format|todo-choose-archive|todo-clear-matches|todo-comment-string-matcher|todo-convert-legacy-date-time|todo-convert-legacy-files\n|todo-current-category|todo-date-string-matcher|todo-delete-category|todo-delete-file|todo-delete-item|todo-desktop-save-buffer\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\ntodo-diary-expired-matcher|todo-diary-goto-entry|todo-diary-item-p|todo-diary-nonmarking-matcher|todo-display-categories|todo-display-sorted\n|todo-done-item-p|todo-done-item-section-p|todo-done-separator|todo-done-string-matcher|todo-edit-category-diary-inclusion|todo-edit-category-diary-nonmarking\n|todo-edit-file|todo-edit-item--diary-inclusion|todo-edit-item--header|todo-edit-item--next-key|todo-edit-item--text|todo-edit-item\n|todo-edit-mode|todo-edit-quit|todo-files|todo-filter-diary-items-multifile|todo-filter-diary-items|todo-filter-items-1|todo-filter-items-filename\n|todo-filter-items|todo-filter-regexp-items-multifile|todo-filter-regexp-items|todo-filter-top-priorities-multifile|todo-filter-top-priorities\n|todo-filtered-items-mode|todo-find-archive|todo-find-filtered-items-file|todo-find-item|todo-forward-category|todo-forward-item\n|todo-get-count|todo-get-overlay|todo-go-to-source-item|todo-indent|todo-insert-category-line|todo-insert-item--apply-args|todo-insert-item--argsleft\n|todo-insert-item--basic|todo-insert-item--keyof|todo-insert-item--next-param|todo-insert-item--this-key|todo-insert-item-from-calendar\n|todo-insert-item|todo-insert-sort-button|todo-insert-with-overlays|todo-item-done|todo-item-end|todo-item-start|todo-item-string\n|todo-item-undone|todo-jump-to-archive-category|todo-jump-to-category|todo-label-to-key|todo-longest-category-name-length|todo-lower-category\n|todo-lower-item-priority|todo-make-categories-list|todo-mark-category|todo-marked-item-p|todo-menu|todo-merge-category|todo-mode-external-set\n|todo-mode-line-control|todo-mode|todo-modes-set-1|todo-modes-set-2|todo-modes-set-3|todo-move-category|todo-move-item|todo-multiple-filter-files\n|todo-next-button|todo-next-item|todo-nondiary-marker-matcher|todo-padded-string|todo-prefix-overlays|todo-previous-button|todo-previous-item\n|todo-print-buffer-to-file|todo-print-buffer|todo-quit|todo-raise-category|todo-raise-item-priority|todo-read-category|todo-read-date\n|todo-read-dayname|todo-read-file-name|todo-read-time|todo-reevaluate-category-completions-files-defcustom|todo-reevaluate-default-file-defcustom\n|todo-reevaluate-filelist-defcustoms|todo-reevaluate-filter-files-defcustom|todo-remove-item|todo-rename-category|todo-rename-file\n|todo-repair-categories-sexp|todo-reset-and-enable-done-separator|todo-reset-comment-string|todo-reset-done-separator-string\n|todo-reset-done-separator|todo-reset-done-string|todo-reset-global-current-todo-file|todo-reset-highlight-item|todo-reset-nondiary-marker\n|todo-reset-prefix|todo-restore-desktop-buffer|todo-revert-buffer|todo-save-filtered-items-buffer|todo-save|todo-search|todo-set-categories\n|todo-set-category-number|todo-set-date-from-calendar|todo-set-item-priority|todo-set-show-current-file|todo-set-top-priorities-in-category\n|todo-set-top-priorities-in-file|todo-set-top-priorities|todo-short-file-name|todo-show-categories-table|todo-show-current-file\n|todo-show|todo-sort-categories-alphabetically-or-numerically|todo-sort-categories-by-archived|todo-sort-categories-by-diary\n|todo-sort-categories-by-done|todo-sort-categories-by-todo|todo-sort|todo-time-string-matcher|todo-toggle-item-header|todo-toggle-item-highlighting\n|todo-toggle-mark-item|todo-toggle-prefix-numbers|todo-toggle-view-done-items|todo-toggle-view-done-only|todo-total-item-counts\n|todo-unarchive-items|todo-unmark-category|todo-update-buffer-list|todo-update-categories-display|todo-update-categories-sexp\n|todo-update-count|todo-validate-name|todo-y-or-n-p|toggle-auto-composition|toggle-case-fold-search|toggle-debug-on-error|toggle-debug-on-quit\n|toggle-emacs-lock|toggle-frame-fullscreen|toggle-frame-maximized|toggle-horizontal-scroll-bar|toggle-indicate-empty-lines|toggle-input-method\n|toggle-menu-bar-mode-from-frame|toggle-read-only|toggle-rot13-mode|toggle-save-place-globally|toggle-save-place|toggle-scroll-bar\n|toggle-text-mode-auto-fill|toggle-tool-bar-mode-from-frame|toggle-truncate-lines|toggle-uniquify-buffer-names|toggle-use-system-font\n|toggle-viper-mode|toggle-word-wrap|tool-bar--image-expression|tool-bar-get-system-style|tool-bar-height|tool-bar-lines-needed\n|tool-bar-local-item|tool-bar-make-keymap-1|tool-bar-make-keymap|tool-bar-mode|tool-bar-pixel-width|tool-bar-setup|tooltip-cancel-delayed-tip\n|tooltip-delay|tooltip-event-buffer|tooltip-expr-to-print|tooltip-gud-toggle-dereference|tooltip-help-tips|tooltip-hide|tooltip-identifier-from-point\n|tooltip-mode|tooltip-process-prompt-regexp|tooltip-set-param|tooltip-show-help-non-mode|tooltip-show-help|tooltip-show|tooltip-start-delayed-tip\n|tooltip-strip-prompt|tooltip-timeout|tq-buffer|tq-filter|tq-process-buffer|tq-process|tq-queue-add|tq-queue-empty|tq-queue-head-closure\n|tq-queue-head-fn|tq-queue-head-question|tq-queue-head-regexp|tq-queue-pop|tq-queue|trace--display-buffer|trace--read-args|trace-entry-message\n|trace-exit-message|trace-function-background|trace-function-foreground|trace-function-internal|trace-function|trace-is-traced\n|trace-make-advice|trace-values|traceroute|tramp-accept-process-output|tramp-action-login|tramp-action-out-of-band|tramp-action-password\n|tramp-action-permission-denied|tramp-action-process-alive|tramp-action-succeed|tramp-action-terminal|tramp-action-yesno|tramp-action-yn\n|tramp-adb-file-name-handler|tramp-adb-file-name-p|tramp-adb-parse-device-names|tramp-autoload-file-name-handler|tramp-backtrace\n|tramp-buffer-name|tramp-bug|tramp-cache-print|tramp-call-process|tramp-check-cached-permissions|tramp-check-for-regexp|tramp-check-proper-method-and-host\n|tramp-cleanup-all-buffers|tramp-cleanup-all-connections|tramp-cleanup-connection|tramp-cleanup-this-connection|tramp-clear-passwd\n|tramp-compat-coding-system-change-eol-conversion|tramp-compat-condition-case-unless-debug|tramp-compat-copy-directory|tramp-compat-copy-file\n|tramp-compat-decimal-to-octal|tramp-compat-delete-directory|tramp-compat-delete-file|tramp-compat-file-attributes|tramp-compat-font-lock-add-keywords\n|tramp-compat-funcall|tramp-compat-load|tramp-compat-make-temp-file|tramp-compat-most-positive-fixnum|tramp-compat-number-sequence\n|tramp-compat-octal-to-decimal|tramp-compat-process-get|tramp-compat-process-put|tramp-compat-process-running-p|tramp-compat-replace-regexp-in-string\n|tramp-compat-set-process-query-on-exit-flag|tramp-compat-split-string|tramp-compat-temporary-file-directory|tramp-compat-with-temp-message\n|tramp-completion-dissect-file-name|tramp-completion-dissect-file-name1|tramp-completion-file-name-handler|tramp-completion-handle-file-name-all-completions\n|tramp-completion-handle-file-name-completion|tramp-completion-make-tramp-file-name|tramp-completion-mode-p|tramp-completion-run-real-handler\n|tramp-condition-case-unless-debug|tramp-connectable-p|tramp-connection-property-p|tramp-debug-buffer-name|tramp-debug-message\n|tramp-debug-outline-level|tramp-default-file-modes|tramp-delete-temp-file-function|tramp-dissect-file-name|tramp-drop-volume-letter\n|tramp-equal-remote|tramp-error-with-buffer|tramp-error|tramp-eshell-directory-change|tramp-exists-file-name-handler|tramp-file-mode-from-int\n|tramp-file-mode-permissions|tramp-file-name-domain|tramp-file-name-for-operation|tramp-file-name-handler|tramp-file-name-hop\n|tramp-file-name-host|tramp-file-name-localname|tramp-file-name-method|tramp-file-name-p|tramp-file-name-port|tramp-file-name-real-host\n|tramp-file-name-real-user|tramp-file-name-user|tramp-find-file-name-coding-system-alist|tramp-find-foreign-file-name-handler\n|tramp-find-host|tramp-find-method|tramp-find-user|tramp-flush-connection-property|tramp-flush-directory-property|tramp-flush-file-property\n|tramp-ftp-enable-ange-ftp|tramp-ftp-file-name-handler|tramp-ftp-file-name-p|tramp-get-buffer|tramp-get-completion-function|tramp-get-completion-methods\n|tramp-get-completion-user-host|tramp-get-connection-buffer|tramp-get-connection-name|tramp-get-connection-process|tramp-get-connection-property\n|tramp-get-debug-buffer|tramp-get-device|tramp-get-file-property|tramp-get-inode|tramp-get-local-gid|tramp-get-local-uid|tramp-get-method-parameter\n|tramp-get-remote-tmpdir|tramp-gvfs-file-name-handler|tramp-gvfs-file-name-p|tramp-gw-open-connection|tramp-handle-directory-file-name\n|tramp-handle-directory-files-and-attributes|tramp-handle-directory-files|tramp-handle-dired-uncache|tramp-handle-file-accessible-directory-p\n|tramp-handle-file-exists-p|tramp-handle-file-modes|tramp-handle-file-name-as-directory|tramp-handle-file-name-completion|tramp-handle-file-name-directory\n|tramp-handle-file-name-nondirectory|tramp-handle-file-newer-than-file-p|tramp-handle-file-notify-add-watch|tramp-handle-file-notify-rm-watch\n|tramp-handle-file-regular-p|tramp-handle-file-remote-p|tramp-handle-file-symlink-p|tramp-handle-find-backup-file-name|tramp-handle-insert-directory\n|tramp-handle-insert-file-contents|tramp-handle-load|tramp-handle-make-auto-save-file-name|tramp-handle-make-symbolic-link|tramp-handle-set-visited-file-modtime\n|tramp-handle-shell-command|tramp-handle-substitute-in-file-name|tramp-handle-unhandled-file-name-directory|tramp-handle-verify-visited-file-modtime\n|tramp-list-connections|tramp-local-host-p|tramp-make-tramp-file-name|tramp-make-tramp-temp-file|tramp-message|tramp-mode-string-to-int\n|tramp-parse-connection-properties|tramp-parse-file|tramp-parse-group|tramp-parse-hosts-group|tramp-parse-hosts|tramp-parse-netrc-group\n|tramp-parse-netrc|tramp-parse-passwd-group|tramp-parse-passwd|tramp-parse-putty-group|tramp-parse-putty|tramp-parse-rhosts-group\n|tramp-parse-rhosts|tramp-parse-sconfig-group|tramp-parse-sconfig|tramp-parse-shostkeys-sknownhosts|tramp-parse-shostkeys|tramp-parse-shosts-group\n|tramp-parse-shosts|tramp-parse-sknownhosts|tramp-process-actions|tramp-process-one-action|tramp-progress-reporter-update|tramp-read-passwd\n|tramp-register-autoload-file-name-handlers|tramp-register-file-name-handlers|tramp-replace-environment-variables|tramp-rfn-eshadow-setup-minibuffer\n|tramp-rfn-eshadow-update-overlay|tramp-run-real-handler|tramp-send-string|tramp-set-auto-save-file-modes|tramp-set-completion-function\n|tramp-set-connection-property|tramp-set-file-property|tramp-sh-file-name-handler|tramp-shell-quote-argument|tramp-smb-file-name-handler\n|tramp-smb-file-name-p|tramp-subst-strs-in-string|tramp-time-diff|tramp-tramp-file-p|tramp-unload-file-name-handlers|tramp-unload-tramp\n|tramp-user-error|tramp-uuencode-region|tramp-version|tramp-wait-for-regexp|transform-make-coding-system-args|translate-region-internal\n|transpose-chars|transpose-lines|transpose-paragraphs|transpose-sentences|transpose-sexps|transpose-subr-1|transpose-subr|transpose-words\n|tree-equal|tree-widget--locate-sub-directory|tree-widget-action|tree-widget-button-click|tree-widget-children-value-save|tree-widget-convert-widget\n|tree-widget-create-image|tree-widget-expander-p|tree-widget-find-image|tree-widget-help-echo|tree-widget-icon-action|tree-widget-icon-create\n|tree-widget-icon-help-echo|tree-widget-image-formats|tree-widget-image-properties|tree-widget-keep|tree-widget-leaf-node-icon-p\n|tree-widget-lookup-image|tree-widget-node|tree-widget-p|tree-widget-set-image-properties|tree-widget-set-parent-theme|tree-widget-set-theme\n|tree-widget-theme-name|tree-widget-themes-path|tree-widget-use-image-p|tree-widget-value-create|truncate\\*|truncated-partial-width-window-p\n|try-complete-file-name-partially|try-complete-file-name|try-complete-lisp-symbol-partially|try-complete-lisp-symbol|try-expand-all-abbrevs\n|try-expand-dabbrev-all-buffers|try-expand-dabbrev-from-kill|try-expand-dabbrev-visible|try-expand-dabbrev|try-expand-line-all-buffers\n|try-expand-line|try-expand-list-all-buffers|try-expand-list|try-expand-whole-kill|tty-color-by-index|tty-color-canonicalize|tty-color-desc\n|tty-color-gray-shades|tty-color-off-gray-diag|tty-color-standard-values|tty-color-values|tty-create-frame-with-faces|tty-display-color-cells\n|tty-display-color-p|tty-find-type|tty-handle-args|tty-handle-reverse-video|tty-modify-color-alist|tty-no-underline|tty-register-default-colors\n|tty-run-terminal-initialization|tty-set-up-initial-frame-faces|tty-suppress-bold-inverse-default-colors|tty-type|tumme|turkish-case-conversion-disable\n|turkish-case-conversion-enable|turn-off-auto-fill|turn-off-flyspell|turn-off-follow-mode|turn-off-hideshow|turn-off-iimage-mode\n|turn-off-xterm-mouse-tracking-on-terminal|turn-on-auto-fill|turn-on-auto-revert-mode|turn-on-auto-revert-tail-mode|turn-on-cwarn-mode-if-enabled\n|turn-on-cwarn-mode|turn-on-eldoc-mode|turn-on-flyspell|turn-on-follow-mode|turn-on-font-lock-if-desired|turn-on-font-lock|turn-on-gnus-dired-mode\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nturn-on-gnus-mailing-list-mode|turn-on-hi-lock-if-enabled|turn-on-iimage-mode|turn-on-org-cdlatex|turn-on-orgstruct\\+\\+|turn-on-orgstruct\n|turn-on-orgtbl|turn-on-prettify-symbols-mode|turn-on-reftex|turn-on-visual-line-mode|turn-on-xterm-mouse-tracking-on-terminal\n|type-break-alarm|type-break-cancel-function-timers|type-break-cancel-schedule|type-break-cancel-time-warning-schedule|type-break-catch-up-event\n|type-break-check-keystroke-warning|type-break-check-post-command-hook|type-break-check|type-break-choose-file|type-break-demo-boring\n|type-break-demo-hanoi|type-break-demo-life|type-break-do-query|type-break-file-keystroke-count|type-break-file-time|type-break-force-mode-line-update\n|type-break-format-time|type-break-get-previous-count|type-break-get-previous-time|type-break-guesstimate-keystroke-threshold\n|type-break-keystroke-reset|type-break-keystroke-warning|type-break-mode-line-countdown-or-break|type-break-mode-line-message-mode\n|type-break-mode|type-break-noninteractive-query|type-break-query-mode|type-break-query|type-break-run-at-time|type-break-run-tb-post-command-hook\n|type-break-schedule|type-break-statistics|type-break-time-difference|type-break-time-stamp|type-break-time-sum|type-break-time-warning-alarm\n|type-break-time-warning-schedule|type-break-time-warning|type-break|typecase|typep|uce-insert-ranting|uce-reply-to-uce|ucs-input-activate\n|ucs-insert|ucs-names|ucs-normalize-HFS-NFC-region|ucs-normalize-HFS-NFC-string|ucs-normalize-HFS-NFD-region|ucs-normalize-HFS-NFD-string\n|ucs-normalize-NFC-region|ucs-normalize-NFC-string|ucs-normalize-NFD-region|ucs-normalize-NFD-string|ucs-normalize-NFKC-region\n|ucs-normalize-NFKC-string|ucs-normalize-NFKD-region|ucs-normalize-NFKD-string|uncomment-region-default|uncomment-region|uncompface\n|underline-region|undigestify-rmail-message|undo-adjust-beg-end|undo-adjust-elt|undo-adjust-pos|undo-copy-list-1|undo-copy-list\n|undo-delta|undo-elt-crosses-region|undo-elt-in-region|undo-make-selective-list|undo-more|undo-only|undo-outer-limit-truncate|undo-start\n|undo|unencodable-char-position|unexpand-abbrev|unfocus-frame|unforward-rmail-message|unhighlight-regexp|unicode-property-table-internal\n|unify-8859-on-decoding-mode|unify-8859-on-encoding-mode|unify-charset|union|uniquify--create-file-buffer-advice|uniquify--rename-buffer-advice\n|uniquify-buffer-base-name|uniquify-buffer-file-name|uniquify-get-proposed-name|uniquify-item-base--cmacro|uniquify-item-base\n|uniquify-item-buffer--cmacro|uniquify-item-buffer|uniquify-item-dirname--cmacro|uniquify-item-dirname|uniquify-item-greaterp\n|uniquify-item-p--cmacro|uniquify-item-p|uniquify-item-proposed--cmacro|uniquify-item-proposed|uniquify-kill-buffer-function|uniquify-make-item--cmacro\n|uniquify-make-item|uniquify-maybe-rerationalize-w\\/o-cb|uniquify-rationalize-a-list|uniquify-rationalize-conflicting-sublist\n|uniquify-rationalize-file-buffer-names|uniquify-rationalize|uniquify-rename-buffer|uniquify-rerationalize-w\\/o-cb|uniquify-unload-function\n|universal-argument--mode|universal-argument-more|universal-coding-system-argument|unix-sync|unjustify-current-line|unjustify-region\n|unload--set-major-mode|unmorse-region|unmsys--file-name|unread-bib|unrecord-window-buffer|unrmail|unsafep-function|unsafep-let|unsafep-progn\n|unsafep-variable|untabify-backward|untabify|untrace-all|untrace-function|ununderline-region|up-ifdef|upcase-initials-region|update-glyphless-char-display\n|update-leim-list-file|url--allowed-chars|url-attributes--cmacro|url-attributes|url-auth-registered|url-auth-user-prompt|url-basepath\n|url-basic-auth|url-bit-for-url|url-build-query-string|url-cache-create-filename|url-cache-extract|url-cache-prune-cache|url-cid\n|url-completion-function|url-cookie-clean-up|url-cookie-create--cmacro|url-cookie-create|url-cookie-delete|url-cookie-domain--cmacro\n|url-cookie-domain|url-cookie-expired-p|url-cookie-expires--cmacro|url-cookie-expires|url-cookie-generate-header-lines|url-cookie-handle-set-cookie\n|url-cookie-host-can-set-p|url-cookie-list|url-cookie-localpart--cmacro|url-cookie-localpart|url-cookie-mode|url-cookie-name--cmacro\n|url-cookie-name|url-cookie-p--cmacro|url-cookie-p|url-cookie-parse-file|url-cookie-quit|url-cookie-retrieve|url-cookie-secure--cmacro\n|url-cookie-secure|url-cookie-setup-save-timer|url-cookie-store|url-cookie-value--cmacro|url-cookie-value|url-cookie-write-file\n|url-copy-file|url-data|url-dav-request|url-dav-supported-p|url-dav-vc-registered|url-debug|url-default-expander|url-default-find-proxy-for-url\n|url-device-type|url-digest-auth-create-key|url-digest-auth|url-display-percentage|url-do-auth-source-search|url-do-setup|url-domsuf-cookie-allowed-p\n|url-domsuf-parse-file|url-eat-trailing-space|url-encode-url|url-expand-file-name|url-expander-remove-relative-links|url-extract-mime-headers\n|url-file-directory|url-file-extension|url-file-handler|url-file-local-copy|url-file-nondirectory|url-file|url-filename--cmacro\n|url-filename|url-find-proxy-for-url|url-fullness--cmacro|url-fullness|url-gateway-nslookup-host|url-gc-dead-buffers|url-generate-unique-filename\n|url-generic-emulator-loader|url-generic-parse-url|url-get-authentication|url-get-normalized-date|url-get-url-at-point|url-handle-content-transfer-encoding\n|url-handler-mode|url-have-visited-url|url-hexify-string|url-history-parse-history|url-history-save-history|url-history-setup-save-timer\n|url-history-update-url|url-host--cmacro|url-host|url-http-activate-callback|url-http-async-sentinel|url-http-chunked-encoding-after-change-function\n|url-http-clean-headers|url-http-content-length-after-change-function|url-http-create-request|url-http-debug|url-http-end-of-document-sentinel\n|url-http-expand-file-name|url-http-file-attributes|url-http-file-exists-p|url-http-file-readable-p|url-http-find-free-connection\n|url-http-generic-filter|url-http-handle-authentication|url-http-handle-cookies|url-http-head-file-attributes|url-http-head|url-http-idle-sentinel\n|url-http-mark-connection-as-busy|url-http-mark-connection-as-free|url-http-options|url-http-parse-headers|url-http-parse-response\n|url-http-simple-after-change-function|url-http-symbol-value-in-buffer|url-http-user-agent-string|url-http-wait-for-headers-change-function\n|url-http|url-https-create-secure-wrapper|url-https-expand-file-name|url-https-file-attributes|url-https-file-exists-p|url-https-file-readable-p\n|url-https|url-identity-expander|url-info|url-insert-entities-in-string|url-insert-file-contents|url-irc|url-is-cached|url-lazy-message\n|url-ldap|url-mail|url-mailto|url-make-private-file|url-man|url-mark-buffer-as-dead|url-mime-charset-string|url-mm-callback|url-mm-url\n|url-news|url-normalize-url|url-ns-prefs|url-ns-user-pref|url-open-rlogin|url-open-stream|url-open-telnet|url-p--cmacro|url-p|url-parse-args\n|url-parse-make-urlobj--cmacro|url-parse-make-urlobj|url-parse-query-string|url-password--cmacro|url-password-for-url|url-password\n|url-path-and-query|url-percentage|url-port-if-non-default|url-port|url-portspec--cmacro|url-portspec|url-pretty-length|url-proxy\n|url-queue-buffer--cmacro|url-queue-buffer|url-queue-callback--cmacro|url-queue-callback-function|url-queue-callback|url-queue-cbargs--cmacro\n|url-queue-cbargs|url-queue-inhibit-cookiesp--cmacro|url-queue-inhibit-cookiesp|url-queue-kill-job|url-queue-p--cmacro|url-queue-p\n|url-queue-pre-triggered--cmacro|url-queue-pre-triggered|url-queue-prune-old-entries|url-queue-remove-jobs-from-host|url-queue-retrieve\n|url-queue-run-queue|url-queue-setup-runners|url-queue-silentp--cmacro|url-queue-silentp|url-queue-start-retrieve|url-queue-start-time--cmacro\n|url-queue-start-time|url-queue-url--cmacro|url-queue-url|url-recreate-url-attributes|url-recreate-url|url-register-auth-scheme\n|url-retrieve-internal|url-retrieve-synchronously|url-retrieve|url-rlogin|url-scheme-default-loader|url-scheme-get-property|url-scheme-register-proxy\n|url-set-mime-charset-string|url-setup-privacy-info|url-silent--cmacro|url-silent|url-snews|url-store-in-cache|url-strip-leading-spaces\n|url-target--cmacro|url-target|url-telnet|url-tn3270|url-tramp-file-handler|url-truncate-url-for-viewing|url-type--cmacro|url-type\n|url-unhex-string|url-unhex|url-use-cookies--cmacro|url-use-cookies|url-user--cmacro|url-user-for-url|url-user|url-view-url|url-wait-for-string\n|url-warn|use-cjk-char-width-table|use-completion-backward-under|use-completion-backward|use-completion-before-point|use-completion-before-separator\n|use-completion-minibuffer-separator|use-completion-under-or-before-point|use-completion-under-point|use-default-char-width-table\n|use-fancy-splash-screens-p|use-package|user-original-login-name|user-variable-p|utf-7-imap-post-read-conversion|utf-7-imap-pre-write-conversion\n|utf-7-post-read-conversion|utf-7-pre-write-conversion|utf7-decode|utf7-encode|uudecode-char-int|uudecode-decode-region-external\n|uudecode-decode-region-internal|uudecode-decode-region|uudecode-string-to-multibyte|values-list|variable-at-point|variable-binding-locus\n|variable-pitch-mode|vc--add-line|vc--process-sentinel|vc--read-lines|vc--remove-regexp|vc-after-save|vc-annotate|vc-backend-for-registration\n|vc-backend-subdirectory-name|vc-backend|vc-before-save|vc-branch-p|vc-branch-part|vc-buffer-context|vc-buffer-sync|vc-bzr-registered\n|vc-call-backend|vc-call|vc-check-headers|vc-check-master-templates|vc-checkin|vc-checkout-model|vc-checkout|vc-clear-context|vc-coding-system-for-diff\n|vc-comment-search-forward|vc-comment-search-reverse|vc-comment-to-change-log|vc-compatible-state|vc-compilation-mode|vc-context-matches-p\n|vc-create-repo|vc-create-tag|vc-cvs-after-dir-status|vc-cvs-annotate-command|vc-cvs-annotate-current-time|vc-cvs-annotate-extract-revision-at-line\n|vc-cvs-annotate-process-filter|vc-cvs-annotate-time|vc-cvs-append-to-ignore|vc-cvs-check-headers|vc-cvs-checkin|vc-cvs-checkout-model\n|vc-cvs-checkout|vc-cvs-command|vc-cvs-comment-history|vc-cvs-could-register|vc-cvs-create-tag|vc-cvs-delete-file|vc-cvs-diff|vc-cvs-dir-extra-headers\n|vc-cvs-dir-status-files|vc-cvs-dir-status-heuristic|vc-cvs-file-to-string|vc-cvs-find-admin-dir|vc-cvs-find-revision|vc-cvs-get-entries\n|vc-cvs-ignore|vc-cvs-make-version-backups-p|vc-cvs-merge-file|vc-cvs-merge-news|vc-cvs-merge|vc-cvs-mode-line-string|vc-cvs-modify-change-comment\n|vc-cvs-next-revision|vc-cvs-parse-entry|vc-cvs-parse-root|vc-cvs-parse-status|vc-cvs-parse-sticky-tag|vc-cvs-parse-uhp|vc-cvs-previous-revision\n|vc-cvs-print-log|vc-cvs-register|vc-cvs-registered|vc-cvs-repository-hostname|vc-cvs-responsible-p|vc-cvs-retrieve-tag|vc-cvs-revert\n|vc-cvs-revision-completion-table|vc-cvs-revision-granularity|vc-cvs-revision-table|vc-cvs-state-heuristic|vc-cvs-state|vc-cvs-stay-local-p\n|vc-cvs-update-changelog|vc-cvs-valid-revision-number-p|vc-cvs-valid-symbolic-tag-name-p|vc-cvs-working-revision|vc-deduce-backend\n|vc-deduce-fileset|vc-default-check-headers|vc-default-comment-history|vc-default-dir-status-files|vc-default-extra-menu|vc-default-find-file-hook\n|vc-default-find-revision|vc-default-ignore-completion-table|vc-default-ignore|vc-default-log-edit-mode|vc-default-log-view-mode\n|vc-default-make-version-backups-p|vc-default-mark-resolved|vc-default-mode-line-string|vc-default-receive-file|vc-default-registered\n|vc-default-rename-file|vc-default-responsible-p|vc-default-retrieve-tag|vc-default-revert|vc-default-revision-completion-table\n|vc-default-show-log-entry|vc-default-working-revision|vc-delete-automatic-version-backups|vc-delete-file|vc-delistify|vc-diff-build-argument-list-internal\n|vc-diff-finish|vc-diff-internal|vc-diff-switches-list|vc-diff|vc-dir-mode|vc-dir|vc-dired-deduce-fileset|vc-dispatcher-browsing\n|vc-do-async-command|vc-do-command|vc-ediff|vc-editable-p|vc-ensure-vc-buffer|vc-error-occurred|vc-exec-after|vc-expand-dirs|vc-file-clearprops\n|vc-file-getprop|vc-file-setprop|vc-file-tree-walk-internal|vc-file-tree-walk|vc-find-backend-function|vc-find-conflicted-file\n|vc-find-file-hook|vc-find-position-by-context|vc-find-revision|vc-find-root|vc-finish-logentry|vc-follow-link|vc-git-registered\n|vc-hg-registered|vc-ignore|vc-incoming-outgoing-internal|vc-insert-file|vc-insert-headers|vc-kill-buffer-hook|vc-log-edit|vc-log-incoming\n|vc-log-internal-common|vc-log-outgoing|vc-make-backend-sym|vc-make-version-backup|vc-mark-resolved|vc-maybe-resolve-conflicts\n|vc-menu-map-filter|vc-menu-map|vc-merge|vc-mode-line|vc-modify-change-comment|vc-mtn-registered|vc-next-action|vc-next-comment|vc-parse-buffer\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nvc-position-context|vc-possible-master|vc-previous-comment|vc-print-log-internal|vc-print-log-setup-buttons|vc-print-log|vc-print-root-log\n|vc-process-filter|vc-pull|vc-rcs-registered|vc-read-backend|vc-read-revision|vc-region-history|vc-register-with|vc-register|vc-registered\n|vc-rename-file|vc-resolve-conflicts|vc-responsible-backend|vc-restore-buffer-context|vc-resynch-buffer|vc-resynch-buffers-in-directory\n|vc-resynch-window|vc-retrieve-tag|vc-revert-buffer-internal|vc-revert-buffer|vc-revert-file|vc-revert|vc-revision-other-window\n|vc-rollback|vc-root-diff|vc-root-dir|vc-run-delayed|vc-sccs-registered|vc-sccs-search-project-dir|vc-set-async-update|vc-set-mode-line-busy-indicator\n|vc-setup-buffer|vc-src-registered|vc-start-logentry|vc-state-refresh|vc-state|vc-steal-lock|vc-string-prefix-p|vc-svn-registered\n|vc-switch-backend|vc-switches|vc-tag-precondition|vc-toggle-read-only|vc-transfer-file|vc-up-to-date-p|vc-update-change-log|vc-update\n|vc-user-login-name|vc-version-backup-file-name|vc-version-backup-file|vc-version-diff|vc-version-ediff|vc-workfile-version|vc-working-revision\n|vcursor-backward-char|vcursor-backward-word|vcursor-beginning-of-buffer|vcursor-beginning-of-line|vcursor-bind-keys|vcursor-check\n|vcursor-compare-windows|vcursor-copy-line|vcursor-copy-word|vcursor-copy|vcursor-cs-binding|vcursor-disable|vcursor-end-of-buffer\n|vcursor-end-of-line|vcursor-execute-command|vcursor-execute-key|vcursor-find-window|vcursor-forward-char|vcursor-forward-word\n|vcursor-get-char-count|vcursor-goto|vcursor-insert|vcursor-isearch-backward|vcursor-isearch-forward|vcursor-locate|vcursor-map\n|vcursor-move|vcursor-next-line|vcursor-other-window|vcursor-post-command|vcursor-previous-line|vcursor-relative-move|vcursor-scroll-down\n|vcursor-scroll-up|vcursor-swap-point|vcursor-toggle-copy|vcursor-toggle-vcursor-map|vcursor-use-vcursor-map|vcursor-window-funcall\n|vector-or-char-table-p|vendor-specific-keysyms|vera-add-syntax|vera-backward-same-indent|vera-backward-statement|vera-backward-syntactic-ws\n|vera-beginning-of-statement|vera-beginning-of-substatement|vera-comment-uncomment-region|vera-corresponding-begin|vera-corresponding-if\n|vera-customize|vera-electric-closing-brace|vera-electric-opening-brace|vera-electric-pound|vera-electric-return|vera-electric-slash\n|vera-electric-space|vera-electric-star|vera-electric-tab|vera-evaluate-offset|vera-expand-abbrev|vera-font-lock-match-item|vera-fontify-buffer\n|vera-forward-same-indent|vera-forward-statement|vera-forward-syntactic-ws|vera-get-offset|vera-guess-basic-syntax|vera-in-literal\n|vera-indent-block-closing|vera-indent-buffer|vera-indent-line|vera-indent-region|vera-langelem-col|vera-lineup-C-comments|vera-lineup-comment\n|vera-mode-menu|vera-mode|vera-point|vera-prepare-search|vera-re-search-backward|vera-re-search-forward|vera-skip-backward-literal\n|vera-skip-forward-literal|vera-submit-bug-report|vera-try-expand-abbrev|vera-version|verify-xscheme-buffer|verilog-add-list-unique\n|verilog-alw-get-inputs|verilog-alw-get-outputs-delayed|verilog-alw-get-outputs-immediate|verilog-alw-get-temps|verilog-alw-get-uses-delayed\n|verilog-alw-new|verilog-at-close-constraint-p|verilog-at-close-struct-p|verilog-at-constraint-p|verilog-at-struct-mv-p|verilog-at-struct-p\n|verilog-auto-arg-ports|verilog-auto-arg|verilog-auto-ascii-enum|verilog-auto-assign-modport|verilog-auto-inout-comp|verilog-auto-inout-in\n|verilog-auto-inout-modport|verilog-auto-inout-module|verilog-auto-inout-param|verilog-auto-inout|verilog-auto-input|verilog-auto-insert-last\n|verilog-auto-insert-lisp|verilog-auto-inst-first|verilog-auto-inst-param|verilog-auto-inst-port-list|verilog-auto-inst-port-map\n|verilog-auto-inst-port|verilog-auto-inst|verilog-auto-logic-setup|verilog-auto-logic|verilog-auto-output-every|verilog-auto-output\n|verilog-auto-re-search-do|verilog-auto-read-locals|verilog-auto-reeval-locals|verilog-auto-reg-input|verilog-auto-reg|verilog-auto-reset\n|verilog-auto-save-check|verilog-auto-save-compile|verilog-auto-sense-sigs|verilog-auto-sense|verilog-auto-star-safe|verilog-auto-star\n|verilog-auto-template-lint|verilog-auto-templated-rel|verilog-auto-tieoff|verilog-auto-undef|verilog-auto-unused|verilog-auto-wire\n|verilog-auto|verilog-back-to-start-translate-off|verilog-backward-case-item|verilog-backward-open-bracket|verilog-backward-open-paren\n|verilog-backward-sexp|verilog-backward-syntactic-ws-quick|verilog-backward-syntactic-ws|verilog-backward-token|verilog-backward-up-list\n|verilog-backward-ws&directives|verilog-batch-auto|verilog-batch-delete-auto|verilog-batch-delete-trailing-whitespace|verilog-batch-diff-auto\n|verilog-batch-error-wrapper|verilog-batch-execute-func|verilog-batch-indent|verilog-batch-inject-auto|verilog-beg-of-defun-quick\n|verilog-beg-of-defun|verilog-beg-of-statement-1|verilog-beg-of-statement|verilog-booleanp|verilog-build-defun-re|verilog-calc-1\n|verilog-calculate-indent-directive|verilog-calculate-indent|verilog-case-indent-level|verilog-clog2|verilog-colorize-include-files-buffer\n|verilog-comment-depth|verilog-comment-indent|verilog-comment-region|verilog-comp-defun|verilog-complete-word|verilog-completion-response\n|verilog-completion|verilog-continued-line-1|verilog-continued-line|verilog-current-flags|verilog-current-indent-level|verilog-customize\n|verilog-declaration-beg|verilog-declaration-end|verilog-decls-append|verilog-decls-get-assigns|verilog-decls-get-consts|verilog-decls-get-gparams\n|verilog-decls-get-inouts|verilog-decls-get-inputs|verilog-decls-get-interfaces|verilog-decls-get-iovars|verilog-decls-get-modports\n|verilog-decls-get-outputs|verilog-decls-get-ports|verilog-decls-get-signals|verilog-decls-get-vars|verilog-decls-new|verilog-decls-princ\n|verilog-define-abbrev|verilog-delete-auto-star-all|verilog-delete-auto-star-implicit|verilog-delete-auto|verilog-delete-autos-lined\n|verilog-delete-empty-auto-pair|verilog-delete-to-paren|verilog-delete-trailing-whitespace|verilog-diff-auto|verilog-diff-buffers-p\n|verilog-diff-file-with-buffer|verilog-diff-report|verilog-dir-file-exists-p|verilog-dir-files|verilog-do-indent|verilog-easy-menu-filter\n|verilog-end-of-defun|verilog-end-of-statement|verilog-end-translate-off|verilog-enum-ascii|verilog-error-regexp-add-emacs|verilog-expand-command\n|verilog-expand-dirnames|verilog-expand-vector-internal|verilog-expand-vector|verilog-faq|verilog-font-customize|verilog-font-lock-match-item\n|verilog-forward-close-paren|verilog-forward-or-insert-line|verilog-forward-sexp-cmt|verilog-forward-sexp-function|verilog-forward-sexp-ign-cmt\n|verilog-forward-sexp|verilog-forward-syntactic-ws|verilog-forward-ws&directives|verilog-func-completion|verilog-generate-numbers\n|verilog-get-completion-decl|verilog-get-default-symbol|verilog-get-end-of-defun|verilog-get-expr|verilog-get-lineup-indent-2\n|verilog-get-lineup-indent|verilog-getopt-file|verilog-getopt-flags|verilog-getopt|verilog-goto-defun-file|verilog-goto-defun|verilog-header\n|verilog-highlight-buffer|verilog-highlight-region|verilog-in-attribute-p|verilog-in-case-region-p|verilog-in-comment-or-string-p\n|verilog-in-comment-p|verilog-in-coverage-p|verilog-in-directive-p|verilog-in-escaped-name-p|verilog-in-fork-region-p|verilog-in-generate-region-p\n|verilog-in-parameter-p|verilog-in-paren-count|verilog-in-paren-quick|verilog-in-paren|verilog-in-parenthesis-p|verilog-in-slash-comment-p\n|verilog-in-star-comment-p|verilog-in-struct-nested-p|verilog-in-struct-p|verilog-indent-buffer|verilog-indent-comment|verilog-indent-declaration\n|verilog-indent-line-relative|verilog-indent-line|verilog-inject-arg|verilog-inject-auto|verilog-inject-inst|verilog-inject-sense\n|verilog-insert-1|verilog-insert-block|verilog-insert-date|verilog-insert-definition|verilog-insert-indent|verilog-insert-indices\n|verilog-insert-last-command-event|verilog-insert-one-definition|verilog-insert-year|verilog-insert|verilog-inside-comment-or-string-p\n|verilog-is-number|verilog-just-one-space|verilog-keyword-completion|verilog-kill-existing-comment|verilog-label-be|verilog-leap-to-case-head\n|verilog-leap-to-head|verilog-library-filenames|verilog-lint-off|verilog-linter-name|verilog-load-file-at-mouse|verilog-load-file-at-point\n|verilog-make-width-expression|verilog-mark-defun|verilog-match-translate-off|verilog-menu|verilog-mode|verilog-modi-cache-add-gparams\n|verilog-modi-cache-add-inouts|verilog-modi-cache-add-inputs|verilog-modi-cache-add-outputs|verilog-modi-cache-add-vars|verilog-modi-cache-add\n|verilog-modi-cache-results|verilog-modi-current-get|verilog-modi-current|verilog-modi-file-or-buffer|verilog-modi-filename|verilog-modi-get-decls\n|verilog-modi-get-point|verilog-modi-get-sub-decls|verilog-modi-get-type|verilog-modi-goto|verilog-modi-lookup|verilog-modi-modport-lookup-one\n|verilog-modi-modport-lookup|verilog-modi-name|verilog-modi-new|verilog-modify-compile-command|verilog-modport-clockings-add|verilog-modport-clockings\n|verilog-modport-decls-set|verilog-modport-decls|verilog-modport-name|verilog-modport-new|verilog-modport-princ|verilog-module-filenames\n|verilog-module-inside-filename-p|verilog-more-comment|verilog-one-line|verilog-parenthesis-depth|verilog-point-text|verilog-preprocess\n|verilog-preserve-dir-cache|verilog-preserve-modi-cache|verilog-pretty-declarations-auto|verilog-pretty-declarations|verilog-pretty-expr\n|verilog-re-search-backward-quick|verilog-re-search-backward-substr|verilog-re-search-backward|verilog-re-search-forward-quick\n|verilog-re-search-forward-substr|verilog-re-search-forward|verilog-read-always-signals-recurse|verilog-read-always-signals|verilog-read-arg-pins\n|verilog-read-auto-constants|verilog-read-auto-lisp-present|verilog-read-auto-lisp|verilog-read-auto-params|verilog-read-auto-template-hit\n|verilog-read-auto-template-middle|verilog-read-auto-template|verilog-read-decls|verilog-read-defines|verilog-read-includes|verilog-read-inst-backward-name\n|verilog-read-inst-module-matcher|verilog-read-inst-module|verilog-read-inst-name|verilog-read-inst-param-value|verilog-read-inst-pins\n|verilog-read-instants|verilog-read-module-name|verilog-read-signals|verilog-read-sub-decls-expr|verilog-read-sub-decls-gate|verilog-read-sub-decls-line\n|verilog-read-sub-decls-sig|verilog-read-sub-decls|verilog-regexp-opt|verilog-regexp-words|verilog-repair-close-comma|verilog-repair-open-comma\n|verilog-run-hooks|verilog-save-buffer-state|verilog-save-font-mods|verilog-save-no-change-functions|verilog-save-scan-cache|verilog-scan-and-debug\n|verilog-scan-cache-flush|verilog-scan-cache-ok-p|verilog-scan-debug|verilog-scan-region|verilog-scan|verilog-set-auto-endcomments\n|verilog-set-compile-command|verilog-set-define|verilog-show-completions|verilog-showscopes|verilog-sig-bits|verilog-sig-comment\n|verilog-sig-enum|verilog-sig-memory|verilog-sig-modport|verilog-sig-multidim-string|verilog-sig-multidim|verilog-sig-name|verilog-sig-new\n|verilog-sig-signed|verilog-sig-tieoff|verilog-sig-type-set|verilog-sig-type|verilog-sig-width|verilog-signals-combine-bus|verilog-signals-edit-wire-reg\n|verilog-signals-from-signame|verilog-signals-in|verilog-signals-matching-dir-re|verilog-signals-matching-enum|verilog-signals-matching-regexp\n|verilog-signals-memory|verilog-signals-not-in|verilog-signals-not-matching-regexp|verilog-signals-not-params|verilog-signals-princ\n|verilog-signals-sort-compare|verilog-signals-with|verilog-simplify-range-expression|verilog-sk-always|verilog-sk-assign|verilog-sk-begin\n|verilog-sk-case|verilog-sk-casex|verilog-sk-casez|verilog-sk-comment|verilog-sk-datadef|verilog-sk-def-reg|verilog-sk-define-signal\n|verilog-sk-else-if|verilog-sk-for|verilog-sk-fork|verilog-sk-function|verilog-sk-generate|verilog-sk-header-tmpl|verilog-sk-header\n|verilog-sk-if|verilog-sk-initial|verilog-sk-inout|verilog-sk-input|verilog-sk-module|verilog-sk-output|verilog-sk-ovm-class|verilog-sk-primitive\n|verilog-sk-prompt-clock|verilog-sk-prompt-condition|verilog-sk-prompt-inc|verilog-sk-prompt-init|verilog-sk-prompt-lsb|verilog-sk-prompt-msb\n|verilog-sk-prompt-name|verilog-sk-prompt-output|verilog-sk-prompt-reset|verilog-sk-prompt-state-selector|verilog-sk-prompt-width\n|verilog-sk-reg|verilog-sk-repeat|verilog-sk-specify|verilog-sk-state-machine|verilog-sk-task|verilog-sk-uvm-component|verilog-sk-uvm-object\n|verilog-sk-while|verilog-sk-wire|verilog-skip-backward-comment-or-string|verilog-skip-backward-comments|verilog-skip-forward-comment-or-string\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nverilog-skip-forward-comment-p|verilog-star-comment|verilog-start-translate-off|verilog-stmt-menu|verilog-string-diff|verilog-string-match-fold\n|verilog-string-remove-spaces|verilog-string-replace-matches|verilog-strip-comments|verilog-subdecls-get-inouts|verilog-subdecls-get-inputs\n|verilog-subdecls-get-interfaced|verilog-subdecls-get-interfaces|verilog-subdecls-get-outputs|verilog-subdecls-new|verilog-submit-bug-report\n|verilog-surelint-off|verilog-symbol-detick-denumber|verilog-symbol-detick-text|verilog-symbol-detick|verilog-syntax-ppss|verilog-typedef-name-p\n|verilog-uncomment-region|verilog-var-completion|verilog-verilint-off|verilog-version|verilog-wai|verilog-warn-error|verilog-warn\n|verilog-within-string|verilog-within-translate-off|version-list-<|version-list-<=|version-list-=|version-list-not-zero|version-to-list\n|version|version<|version<=|version=|vhdl-abbrev-list-init|vhdl-activate-customizations|vhdl-add-modified-file|vhdl-add-source-files-menu\n|vhdl-add-syntax|vhdl-adelete|vhdl-aget|vhdl-align-buffer|vhdl-align-declarations|vhdl-align-group|vhdl-align-inline-comment-buffer\n|vhdl-align-inline-comment-group|vhdl-align-inline-comment-region-1|vhdl-align-inline-comment-region|vhdl-align-list|vhdl-align-region-1\n|vhdl-align-region-2|vhdl-align-region-groups|vhdl-align-region|vhdl-align-same-indent|vhdl-aput-delete-if-nil|vhdl-aput|vhdl-auto-load-project\n|vhdl-back-to-indentation|vhdl-backward-same-indent|vhdl-backward-sexp|vhdl-backward-skip-label|vhdl-backward-syntactic-ws|vhdl-backward-to-block\n|vhdl-backward-up-list|vhdl-beautify-buffer|vhdl-beautify-region|vhdl-begin-p|vhdl-beginning-of-block|vhdl-beginning-of-defun|vhdl-beginning-of-libunit\n|vhdl-beginning-of-macro|vhdl-beginning-of-statement-1|vhdl-beginning-of-statement|vhdl-case-alternative-p|vhdl-case-keyword|vhdl-case-word\n|vhdl-character-to-event|vhdl-comment-append-inline|vhdl-comment-block|vhdl-comment-display-line|vhdl-comment-display|vhdl-comment-indent\n|vhdl-comment-insert-inline|vhdl-comment-insert|vhdl-comment-kill-inline-region|vhdl-comment-kill-region|vhdl-comment-uncomment-line\n|vhdl-comment-uncomment-region|vhdl-compile-directory|vhdl-compile-init|vhdl-compile-print-file-name|vhdl-compile|vhdl-compose-components-package\n|vhdl-compose-configuration-architecture|vhdl-compose-configuration|vhdl-compose-insert-generic|vhdl-compose-insert-port|vhdl-compose-insert-signal\n|vhdl-compose-new-component|vhdl-compose-place-component|vhdl-compose-wire-components|vhdl-corresponding-begin|vhdl-corresponding-defun\n|vhdl-corresponding-end|vhdl-corresponding-mid|vhdl-create-mode-menu|vhdl-current-line|vhdl-custom-set|vhdl-customize|vhdl-decision-query\n|vhdl-default-directory|vhdl-defun-p|vhdl-delete-indentation|vhdl-delete|vhdl-directory-files|vhdl-do-group|vhdl-do-list|vhdl-do-same-indent\n|vhdl-doc-mode|vhdl-doc-variable|vhdl-duplicate-project|vhdl-electric-close-bracket|vhdl-electric-comma|vhdl-electric-dash|vhdl-electric-equal\n|vhdl-electric-mode|vhdl-electric-open-bracket|vhdl-electric-period|vhdl-electric-quote|vhdl-electric-return|vhdl-electric-semicolon\n|vhdl-electric-space|vhdl-electric-tab|vhdl-end-of-block|vhdl-end-of-defun|vhdl-end-of-leader|vhdl-end-of-statement|vhdl-end-p|vhdl-end-translate-off\n|vhdl-error-regexp-add-emacs|vhdl-expand-abbrev|vhdl-expand-paren|vhdl-export-project|vhdl-fill-group|vhdl-fill-list|vhdl-fill-region\n|vhdl-fill-same-indent|vhdl-first-word|vhdl-fix-case-buffer|vhdl-fix-case-region-1|vhdl-fix-case-region|vhdl-fix-case-word|vhdl-fix-clause-buffer\n|vhdl-fix-clause|vhdl-fix-statement-buffer|vhdl-fix-statement-region|vhdl-fixup-whitespace-buffer|vhdl-fixup-whitespace-region\n|vhdl-font-lock-init|vhdl-font-lock-match-item|vhdl-fontify-buffer|vhdl-forward-comment|vhdl-forward-same-indent|vhdl-forward-sexp\n|vhdl-forward-skip-label|vhdl-forward-syntactic-ws|vhdl-function-name|vhdl-generate-makefile-1|vhdl-generate-makefile|vhdl-get-block-state\n|vhdl-get-compile-options|vhdl-get-components-package-name|vhdl-get-end-of-unit|vhdl-get-hierarchy|vhdl-get-instantiations|vhdl-get-library-unit\n|vhdl-get-make-options|vhdl-get-offset|vhdl-get-packages|vhdl-get-source-files|vhdl-get-subdirs|vhdl-get-syntactic-context|vhdl-get-visible-signals\n|vhdl-goto-marker|vhdl-has-syntax|vhdl-he-list-beg|vhdl-hideshow-init|vhdl-hooked-abbrev|vhdl-hs-forward-sexp-func|vhdl-hs-minor-mode\n|vhdl-import-project|vhdl-in-argument-list-p|vhdl-in-comment-p|vhdl-in-extended-identifier-p|vhdl-in-literal|vhdl-in-quote-p|vhdl-in-string-p\n|vhdl-indent-buffer|vhdl-indent-group|vhdl-indent-line|vhdl-indent-region|vhdl-indent-sexp|vhdl-index-menu-init|vhdl-insert-file-contents\n|vhdl-insert-keyword|vhdl-insert-string-or-file|vhdl-keep-region-active|vhdl-last-word|vhdl-libunit-p|vhdl-line-copy|vhdl-line-expand\n|vhdl-line-kill-entire|vhdl-line-kill|vhdl-line-open|vhdl-line-transpose-next|vhdl-line-transpose-previous|vhdl-line-yank|vhdl-lineup-arglist-intro\n|vhdl-lineup-arglist|vhdl-lineup-comment|vhdl-lineup-statement-cont|vhdl-load-cache|vhdl-make|vhdl-makefile-name|vhdl-mark-defun\n|vhdl-match-string-downcase|vhdl-match-translate-off|vhdl-max-marker|vhdl-menu-split|vhdl-minibuffer-tab|vhdl-mode-abbrev-table-init\n|vhdl-mode-map-init|vhdl-mode|vhdl-model-defun|vhdl-model-example-model|vhdl-model-insert|vhdl-model-map-init|vhdl-parse-group-comment\n|vhdl-parse-string|vhdl-paste-group-comment|vhdl-point|vhdl-port-copy|vhdl-port-flatten|vhdl-port-paste-component|vhdl-port-paste-constants\n|vhdl-port-paste-context-clause|vhdl-port-paste-declaration|vhdl-port-paste-entity|vhdl-port-paste-generic-map|vhdl-port-paste-generic\n|vhdl-port-paste-initializations|vhdl-port-paste-instance|vhdl-port-paste-port-map|vhdl-port-paste-port|vhdl-port-paste-signals\n|vhdl-port-paste-testbench|vhdl-port-reverse-direction|vhdl-prepare-search-1|vhdl-prepare-search-2|vhdl-print-warnings|vhdl-process-command-line-option\n|vhdl-project-p|vhdl-ps-print-init|vhdl-ps-print-settings|vhdl-re-search-backward|vhdl-re-search-forward|vhdl-read-offset|vhdl-regress-line\n|vhdl-remove-trailing-spaces-region|vhdl-remove-trailing-spaces|vhdl-replace-string|vhdl-require-hierarchy-info|vhdl-resolve-env-variable\n|vhdl-resolve-paths|vhdl-run-when-idle|vhdl-safe|vhdl-save-cache|vhdl-save-caches|vhdl-scan-context-clause|vhdl-scan-directory-contents\n|vhdl-scan-project-contents|vhdl-sequential-statement-p|vhdl-set-compiler|vhdl-set-default-project|vhdl-set-offset|vhdl-set-project\n|vhdl-set-style|vhdl-show-messages|vhdl-show-syntactic-information|vhdl-skip-case-alternative|vhdl-sort-alist|vhdl-speedbar-check-unit\n|vhdl-speedbar-configuration|vhdl-speedbar-contract-all|vhdl-speedbar-contract-level|vhdl-speedbar-dired|vhdl-speedbar-display-directory\n|vhdl-speedbar-display-projects|vhdl-speedbar-expand-all|vhdl-speedbar-expand-architecture|vhdl-speedbar-expand-config|vhdl-speedbar-expand-dirs\n|vhdl-speedbar-expand-entity|vhdl-speedbar-expand-package|vhdl-speedbar-expand-project|vhdl-speedbar-expand-units|vhdl-speedbar-find-file\n|vhdl-speedbar-generate-makefile|vhdl-speedbar-goto-this-unit|vhdl-speedbar-higher-text|vhdl-speedbar-initialize|vhdl-speedbar-insert-dir-hierarchy\n|vhdl-speedbar-insert-dirs|vhdl-speedbar-insert-hierarchy|vhdl-speedbar-insert-project-hierarchy|vhdl-speedbar-insert-projects\n|vhdl-speedbar-insert-subpackages|vhdl-speedbar-item-info|vhdl-speedbar-line-key|vhdl-speedbar-line-project|vhdl-speedbar-line-text\n|vhdl-speedbar-make-design|vhdl-speedbar-make-inst-line|vhdl-speedbar-make-pack-line|vhdl-speedbar-make-subpack-line|vhdl-speedbar-make-subprogram-line\n|vhdl-speedbar-make-title-line|vhdl-speedbar-place-component|vhdl-speedbar-port-copy|vhdl-speedbar-refresh|vhdl-speedbar-rescan-hierarchy\n|vhdl-speedbar-select-mra|vhdl-speedbar-set-depth|vhdl-speedbar-update-current-project|vhdl-speedbar-update-current-unit|vhdl-speedbar-update-units\n|vhdl-speedbar|vhdl-standard-p|vhdl-start-translate-off|vhdl-statement-p|vhdl-statistics-buffer|vhdl-stutter-mode|vhdl-submit-bug-report\n|vhdl-subprog-copy|vhdl-subprog-flatten|vhdl-subprog-paste-body|vhdl-subprog-paste-call|vhdl-subprog-paste-declaration|vhdl-subprog-paste-specification\n|vhdl-template-alias-hook|vhdl-template-alias|vhdl-template-and-hook|vhdl-template-architecture-hook|vhdl-template-architecture\n|vhdl-template-argument-list|vhdl-template-array|vhdl-template-assert-hook|vhdl-template-assert|vhdl-template-attribute-decl|vhdl-template-attribute-hook\n|vhdl-template-attribute-spec|vhdl-template-attribute|vhdl-template-bare-loop-hook|vhdl-template-bare-loop|vhdl-template-begin-end\n|vhdl-template-block-configuration|vhdl-template-block-hook|vhdl-template-block|vhdl-template-break-hook|vhdl-template-break|vhdl-template-case-hook\n|vhdl-template-case-is|vhdl-template-case-use|vhdl-template-case|vhdl-template-clocked-wait|vhdl-template-component-conf|vhdl-template-component-decl\n|vhdl-template-component-hook|vhdl-template-component-inst|vhdl-template-component|vhdl-template-conditional-signal-asst-hook\n|vhdl-template-conditional-signal-asst|vhdl-template-configuration-decl|vhdl-template-configuration-hook|vhdl-template-configuration-spec\n|vhdl-template-configuration|vhdl-template-constant-hook|vhdl-template-constant|vhdl-template-construct-alist-init|vhdl-template-default-hook\n|vhdl-template-default-indent-hook|vhdl-template-default-indent|vhdl-template-default|vhdl-template-directive-synthesis-off|vhdl-template-directive-synthesis-on\n|vhdl-template-directive-translate-off|vhdl-template-directive-translate-on|vhdl-template-directive|vhdl-template-disconnect-hook\n|vhdl-template-disconnect|vhdl-template-display-comment-hook|vhdl-template-else-hook|vhdl-template-else|vhdl-template-elsif-hook\n|vhdl-template-elsif|vhdl-template-entity-hook|vhdl-template-entity|vhdl-template-exit-hook|vhdl-template-exit|vhdl-template-field\n|vhdl-template-file-hook|vhdl-template-file|vhdl-template-footer|vhdl-template-for-generate|vhdl-template-for-hook|vhdl-template-for-loop\n|vhdl-template-for|vhdl-template-function-body|vhdl-template-function-decl|vhdl-template-function-hook|vhdl-template-function\n|vhdl-template-generate-body|vhdl-template-generate|vhdl-template-generic-hook|vhdl-template-generic-list|vhdl-template-generic\n|vhdl-template-group-decl|vhdl-template-group-hook|vhdl-template-group-template|vhdl-template-group|vhdl-template-header|vhdl-template-if-generate\n|vhdl-template-if-hook|vhdl-template-if-then-use|vhdl-template-if-then|vhdl-template-if-use|vhdl-template-if|vhdl-template-insert-construct\n|vhdl-template-insert-date|vhdl-template-insert-directive|vhdl-template-insert-fun|vhdl-template-insert-package|vhdl-template-instance-hook\n|vhdl-template-instance|vhdl-template-library-hook|vhdl-template-library|vhdl-template-limit-hook|vhdl-template-limit|vhdl-template-loop\n|vhdl-template-map-hook|vhdl-template-map-init|vhdl-template-map|vhdl-template-modify-noerror|vhdl-template-modify|vhdl-template-nand-hook\n|vhdl-template-nature-hook|vhdl-template-nature|vhdl-template-next-hook|vhdl-template-next|vhdl-template-nor-hook|vhdl-template-not-hook\n|vhdl-template-or-hook|vhdl-template-others-hook|vhdl-template-others|vhdl-template-package-alist-init|vhdl-template-package-body\n|vhdl-template-package-decl|vhdl-template-package-electrical-systems|vhdl-template-package-energy-systems|vhdl-template-package-fluidic-systems\n|vhdl-template-package-fundamental-constants|vhdl-template-package-hook|vhdl-template-package-material-constants|vhdl-template-package-math-complex\n|vhdl-template-package-math-real|vhdl-template-package-mechanical-systems|vhdl-template-package-numeric-bit|vhdl-template-package-numeric-std\n|vhdl-template-package-radiant-systems|vhdl-template-package-std-logic-1164|vhdl-template-package-std-logic-arith|vhdl-template-package-std-logic-misc\n|vhdl-template-package-std-logic-signed|vhdl-template-package-std-logic-textio|vhdl-template-package-std-logic-unsigned|vhdl-template-package-textio\n|vhdl-template-package-thermal-systems|vhdl-template-package|vhdl-template-paired-parens|vhdl-template-port-hook|vhdl-template-port-list\n|vhdl-template-port|vhdl-template-procedural-hook|vhdl-template-procedural|vhdl-template-procedure-body|vhdl-template-procedure-decl\n|vhdl-template-procedure-hook|vhdl-template-procedure|vhdl-template-process-comb|vhdl-template-process-hook|vhdl-template-process-seq\n|vhdl-template-process|vhdl-template-quantity-branch|vhdl-template-quantity-free|vhdl-template-quantity-hook|vhdl-template-quantity-source\n|vhdl-template-quantity|vhdl-template-record|vhdl-template-replace-header-keywords|vhdl-template-report-hook|vhdl-template-report\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nvhdl-template-return-hook|vhdl-template-return|vhdl-template-search-prompt|vhdl-template-selected-signal-asst-hook|vhdl-template-selected-signal-asst\n|vhdl-template-seq-process|vhdl-template-signal-hook|vhdl-template-signal|vhdl-template-standard-package|vhdl-template-subnature-hook\n|vhdl-template-subnature|vhdl-template-subprogram-body|vhdl-template-subprogram-decl|vhdl-template-subtype-hook|vhdl-template-subtype\n|vhdl-template-terminal-hook|vhdl-template-terminal|vhdl-template-type-hook|vhdl-template-type|vhdl-template-undo|vhdl-template-use-hook\n|vhdl-template-use|vhdl-template-variable-hook|vhdl-template-variable|vhdl-template-wait-hook|vhdl-template-wait|vhdl-template-when-hook\n|vhdl-template-when|vhdl-template-while-loop-hook|vhdl-template-while-loop|vhdl-template-with-hook|vhdl-template-with|vhdl-template-xnor-hook\n|vhdl-template-xor-hook|vhdl-toggle-project|vhdl-try-expand-abbrev|vhdl-uniquify|vhdl-upcase-list|vhdl-update-file-contents|vhdl-update-hierarchy\n|vhdl-update-mode-menu|vhdl-update-progress-info|vhdl-update-sensitivity-list-buffer|vhdl-update-sensitivity-list-process|vhdl-update-sensitivity-list\n|vhdl-use-direct-instantiation|vhdl-version|vhdl-visit-file|vhdl-warning-when-idle|vhdl-warning|vhdl-widget-directory-validate\n|vhdl-win-bsws|vhdl-win-fsws|vhdl-win-il|vhdl-within-translate-off|vhdl-words-init|vhdl-work-library|vhdl-write-file-hooks-init\n|viet-decode-viqr-buffer|viet-decode-viqr-region|viet-encode-viqr-buffer|viet-encode-viqr-region|viet-encode-viscii-char|view--disable\n|view--enable|view-buffer-other-frame|view-buffer-other-window|view-buffer|view-echo-area-messages|view-emacs-FAQ|view-emacs-debugging\n|view-emacs-news|view-emacs-problems|view-emacs-todo|view-end-message|view-external-packages|view-file-other-frame|view-file-other-window\n|view-file|view-hello-file|view-help-file|view-lossage|view-mode-disable|view-mode-enable|view-mode-enter|view-mode-exit|view-mode\n|view-order-manuals|view-page-size-default|view-really-at-end|view-recenter|view-return-to-alist-update|view-scroll-lines|view-search-no-match-lines\n|view-search|view-set-half-page-size-default|view-todo|view-window-size|viper--lookup-key|viper--tty-ESC-filter|viper-Append|viper-ESC-event-p\n|viper-ESC-keyseq-timeout|viper-ESC|viper-Insert|viper-Open-line|viper-P-val|viper-Put-back|viper-R-state-post-command-sentinel\n|viper-Region|viper-abbreviate-file-name|viper-abbreviate-string|viper-activate-input-method-action|viper-activate-input-method\n|viper-add-keymap|viper-add-local-keys|viper-add-newline-at-eob-if-necessary|viper-adjust-keys-for|viper-adjust-undo|viper-adjust-window\n|viper-after-change-sentinel|viper-after-change-undo-hook|viper-alist-to-list|viper-alternate-Meta-key|viper-append-filter-alist\n|viper-append-to-register|viper-append|viper-apply-major-mode-modifiers|viper-array-to-string|viper-ask-level|viper-autoindent\n|viper-backward-Word|viper-backward-char-carefully|viper-backward-char|viper-backward-indent|viper-backward-paragraph|viper-backward-sentence\n|viper-backward-word-kernel|viper-backward-word|viper-before-change-sentinel|viper-beginning-of-field|viper-beginning-of-line\n|viper-bind-mouse-insert-key|viper-bind-mouse-search-key|viper-bol-and-skip-white|viper-brac-function|viper-buffer-live-p|viper-buffer-search-enable\n|viper-can-release-key|viper-catch-tty-ESC|viper-change-cursor-color|viper-change-state-to-emacs|viper-change-state-to-insert\n|viper-change-state-to-replace|viper-change-state-to-vi|viper-change-state|viper-change-subr|viper-change-to-eol|viper-change|viper-char-array-p\n|viper-char-array-to-macro|viper-char-at-pos|viper-char-equal|viper-char-symbol-sequence-p|viper-characterp|viper-charlist-to-string\n|viper-charpair-command-p|viper-chars-in-region|viper-check-minibuffer-overlay|viper-check-version|viper-cleanup-ring|viper-color-defined-p\n|viper-color-display-p|viper-comint-mode-hook|viper-command-argument|viper-common-seq-prefix|viper-complete-filename-or-exit|viper-copy-event\n|viper-copy-region-as-kill|viper-current-ring-item|viper-cycle-through-mark-ring|viper-deactivate-input-method-action|viper-deactivate-input-method\n|viper-deactivate-mark|viper-debug-keymaps|viper-default-ex-addresses|viper-deflocalvar|viper-del-backward-char-in-insert|viper-del-backward-char-in-replace\n|viper-del-forward-char-in-insert|viper-delete-backward-char|viper-delete-backward-word|viper-delete-char|viper-delocalize-var\n|viper-describe-arg|viper-describe-kbd-macros|viper-describe-one-macro-elt|viper-describe-one-macro|viper-device-type|viper-digit-argument\n|viper-digit-command-p|viper-display-current-destructive-command|viper-display-macro|viper-display-vector-completions|viper-do-sequence-completion\n|viper-dotable-command-p|viper-downgrade-to-insert|viper-end-mapping-kbd-macro|viper-end-of-Word|viper-end-of-word-kernel|viper-end-of-word-p\n|viper-end-of-word|viper-end-with-a-newline-p|viper-enlarge-region|viper-erase-line|viper-escape-to-emacs|viper-escape-to-state\n|viper-escape-to-vi|viper-event-click-count|viper-event-key|viper-event-vector-p|viper-eventify-list-xemacs|viper-events-to-macro\n|viper-ex-read-file-name|viper-ex|viper-exchange-point-and-mark|viper-exec-Change|viper-exec-Delete|viper-exec-Yank|viper-exec-bang\n|viper-exec-buffer-search|viper-exec-change|viper-exec-delete|viper-exec-dummy|viper-exec-equals|viper-exec-form-in-emacs|viper-exec-form-in-vi\n|viper-exec-key-in-emacs|viper-exec-mapped-kbd-macro|viper-exec-shift|viper-exec-yank|viper-execute-com|viper-exit-insert-state\n|viper-exit-minibuffer|viper-extract-matching-alist-members|viper-fast-keysequence-p|viper-file-add-suffix|viper-file-checked-in-p\n|viper-filter-alist|viper-filter-list|viper-find-best-matching-macro|viper-find-char-backward|viper-find-char-forward|viper-find-char\n|viper-finish-R-mode|viper-finish-change|viper-fixup-macro|viper-flash-search-pattern|viper-forward-Word|viper-forward-char-carefully\n|viper-forward-char|viper-forward-indent|viper-forward-paragraph|viper-forward-sentence|viper-forward-word-kernel|viper-forward-word\n|viper-frame-value|viper-get-cursor-color|viper-get-ex-address-subr|viper-get-ex-address|viper-get-ex-buffer|viper-get-ex-com-subr\n|viper-get-ex-count|viper-get-ex-file|viper-get-ex-opt-gc|viper-get-ex-pat|viper-get-ex-token|viper-get-face|viper-get-filenames-from-buffer\n|viper-get-saved-cursor-color-in-emacs-mode|viper-get-saved-cursor-color-in-insert-mode|viper-get-saved-cursor-color-in-replace-mode\n|viper-get-visible-buffer-window|viper-getCom|viper-getcom|viper-glob-mswindows-files|viper-glob-unix-files|viper-global-execute\n|viper-go-away|viper-goto-char-backward|viper-goto-char-forward|viper-goto-col|viper-goto-eol|viper-goto-line|viper-goto-mark-and-skip-white\n|viper-goto-mark-subr|viper-goto-mark|viper-handle-!|viper-harness-minor-mode|viper-has-face-support-p|viper-hash-command-p|viper-heading-end\n|viper-hide-replace-overlay|viper-hide-search-overlay|viper-iconify|viper-if-string|viper-indent-line|viper-info-on-file|viper-insert-isearch-string\n|viper-insert-next-from-insertion-ring|viper-insert-prev-from-insertion-ring|viper-insert-state-post-command-sentinel|viper-insert-state-pre-command-sentinel\n|viper-insert-tab|viper-insert|viper-int-to-char|viper-intercept-ESC-key|viper-is-in-minibuffer|viper-isearch-backward|viper-isearch-forward\n|viper-join-lines|viper-kbd-buf-alist|viper-kbd-buf-definition|viper-kbd-buf-pair|viper-kbd-global-definition|viper-kbd-global-pair\n|viper-kbd-mode-alist|viper-kbd-mode-definition|viper-kbd-mode-pair|viper-ket-function|viper-key-press-events-to-chars|viper-key-to-character\n|viper-key-to-emacs-key|viper-keyseq-is-a-possible-macro|viper-kill-buffer|viper-kill-line|viper-last-command-char|viper-leave-region-active\n|viper-line-pos|viper-line-to-bottom|viper-line-to-middle|viper-line-to-top|viper-line|viper-list-to-alist|viper-load-custom-file\n|viper-looking-at-alpha|viper-looking-at-alphasep|viper-looking-at-separator|viper-looking-back|viper-loop|viper-macro-to-events\n|viper-major-mode-change-sentinel|viper-make-overlay|viper-mark-beginning-of-buffer|viper-mark-end-of-buffer|viper-mark-marker\n|viper-mark-point|viper-maybe-checkout|viper-memq-char|viper-message-conditions|viper-minibuffer-post-command-hook|viper-minibuffer-real-start\n|viper-minibuffer-setup-sentinel|viper-minibuffer-standard-hook|viper-minibuffer-trim-tail|viper-mode|viper-modify-keymap|viper-modify-major-mode\n|viper-mouse-catch-frame-switch|viper-mouse-click-frame|viper-mouse-click-get-word|viper-mouse-click-insert-word|viper-mouse-click-posn\n|viper-mouse-click-search-word|viper-mouse-click-window-buffer-name|viper-mouse-click-window-buffer|viper-mouse-click-window\n|viper-mouse-event-p|viper-move-marker-locally|viper-move-overlay|viper-move-replace-overlay|viper-movement-command-p|viper-multiclick-p\n|viper-next-destructive-command|viper-next-heading|viper-next-line-at-bol|viper-next-line-carefully|viper-next-line|viper-nil|viper-non-hook-settings\n|viper-normalize-minor-mode-map-alist|viper-open-line-at-point|viper-open-line|viper-over-whitespace-line|viper-overlay-end|viper-overlay-get\n|viper-overlay-live-p|viper-overlay-p|viper-overlay-put|viper-overlay-start|viper-overwrite|viper-p-val|viper-paren-match|viper-parse-mouse-key\n|viper-pos-within-region|viper-post-command-sentinel|viper-pre-command-sentinel|viper-prefix-arg-com|viper-prefix-arg-value|viper-prefix-command-p\n|viper-prefix-subseq-p|viper-preserve-cursor-color|viper-prev-destructive-command|viper-prev-heading|viper-previous-line-at-bol\n|viper-previous-line|viper-push-onto-ring|viper-put-back|viper-put-on-search-overlay|viper-put-string-on-kill-ring|viper-query-replace\n|viper-quote-region|viper-read-char-exclusive|viper-read-event-convert-to-char|viper-read-event|viper-read-fast-keysequence|viper-read-key-sequence\n|viper-read-key|viper-read-string-with-history|viper-record-kbd-macro|viper-refresh-mode-line|viper-region|viper-register-macro\n|viper-register-to-point|viper-regsuffix-command-p|viper-remember-current-frame|viper-remove-hooks|viper-repeat-find-opposite\n|viper-repeat-find|viper-repeat-from-history|viper-repeat-insert-command|viper-repeat|viper-replace-char-subr|viper-replace-char\n|viper-replace-end|viper-replace-mode-spy-after|viper-replace-mode-spy-before|viper-replace-start|viper-replace-state-carriage-return\n|viper-replace-state-exit-cmd|viper-replace-state-post-command-sentinel|viper-replace-state-pre-command-sentinel|viper-reset-mouse-insert-key\n|viper-reset-mouse-search-key|viper-restore-cursor-color|viper-restore-cursor-type|viper-ring-insert|viper-ring-pop|viper-ring-rotate1\n|viper-same-line|viper-save-cursor-color|viper-save-kill-buffer|viper-save-last-insertion|viper-save-setting|viper-save-string-in-file\n|viper-scroll-down-one|viper-scroll-down|viper-scroll-screen-back|viper-scroll-screen|viper-scroll-up-one|viper-scroll-up|viper-search-Next\n|viper-search-backward|viper-search-forward|viper-search-next|viper-search|viper-separator-skipback-special|viper-seq-last-elt\n|viper-set-complex-command-for-undo|viper-set-cursor-color-according-to-state|viper-set-destructive-command|viper-set-emacs-state-searchstyle-macros\n|viper-set-expert-level|viper-set-hooks|viper-set-input-method|viper-set-insert-cursor-type|viper-set-iso-accents-mode|viper-set-mark-if-necessary\n|viper-set-minibuffer-overlay|viper-set-minibuffer-style|viper-set-mode-vars-for|viper-set-parsing-style-toggling-macro|viper-set-register-macro\n|viper-set-replace-overlay-glyphs|viper-set-replace-overlay|viper-set-searchstyle-toggling-macros|viper-set-syntax-preference\n|viper-set-unread-command-events|viper-setup-ESC-to-escape|viper-setup-master-buffer|viper-sit-for-short|viper-skip-all-separators-backward\n|viper-skip-all-separators-forward|viper-skip-alpha-backward|viper-skip-alpha-forward|viper-skip-nonalphasep-backward|viper-skip-nonalphasep-forward\n|viper-skip-nonseparators|viper-skip-separators|viper-skip-syntax|viper-special-prefix-com|viper-special-read-and-insert-char\n|viper-special-ring-rotate1|viper-standard-value|viper-start-R-mode|viper-start-replace|viper-string-to-list|viper-submit-report\n|viper-subseq|viper-substitute-line|viper-substitute|viper-surrounding-word|viper-switch-to-buffer-other-window|viper-switch-to-buffer\n|viper-test-com-defun|viper-this-buffer-macros|viper-tmp-insert-at-eob|viper-toggle-case|viper-toggle-key-action|viper-toggle-parse-sexp-ignore-comments\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nviper-toggle-search-style|viper-translate-all-ESC-keysequences|viper-trim-replace-chars-to-delete-if-necessary|viper-unbind-mouse-insert-key\n|viper-unbind-mouse-search-key|viper-uncatch-tty-ESC|viper-undisplayed-files|viper-undo-more|viper-undo-sentinel|viper-undo|viper-unrecord-kbd-macro\n|viper-update-syntax-classes|viper-valid-marker|viper-valid-register|viper-version|viper-vi-command-p|viper-wildcard-to-regexp\n|viper-window-bottom|viper-window-display-p|viper-window-middle|viper-window-top|viper-yank-defun|viper-yank-last-insertion|viper-yank-line\n|viper-yank|viper-zap-local-keys|viper=|viqr-post-read-conversion|viqr-pre-write-conversion|visible-mode|visit-tags-table-buffer\n|visit-tags-table|visual-line-mode-set-explicitly|visual-line-mode|vt-keypad-off|vt-keypad-on|vt-narrow|vt-numlock|vt-toggle-screen\n|vt-wide|walk-window-subtree|walk-window-tree-1|walk-window-tree|warn-maybe-out-of-memory|warning-numeric-level|warning-suppress-p\n|wdired-abort-changes|wdired-capitalize-word|wdired-change-to-dired-mode|wdired-change-to-wdired-mode|wdired-check-kill-buffer\n|wdired-customize|wdired-do-perm-changes|wdired-do-renames|wdired-do-symlink-changes|wdired-downcase-word|wdired-exit|wdired-finish-edit\n|wdired-flag-for-deletion|wdired-get-filename|wdired-get-previous-link|wdired-isearch-filter-read-only|wdired-mode|wdired-mouse-toggle-bit\n|wdired-next-line|wdired-normalize-filename|wdired-perm-allowed-in-pos|wdired-perms-to-number|wdired-preprocess-files|wdired-preprocess-perms\n|wdired-preprocess-symlinks|wdired-previous-line|wdired-revert|wdired-search-and-rename|wdired-set-bit|wdired-toggle-bit|wdired-upcase-word\n|wdired-xcase-word|webjump-builtin-check-args|webjump-builtin|webjump-choose-mirror|webjump-do-simple-query|webjump-mirror-default\n|webjump-null-or-blank-string-p|webjump-read-choice|webjump-read-number|webjump-read-string|webjump-read-url-choice|webjump-to-iwin\n|webjump-to-risks|webjump-url-encode|webjump-url-fix-trailing-slash|webjump-url-fix|webjump|what-cursor-position|what-domain|what-line\n|what-page|when-let|where-is|which-func-ff-hook|which-func-mode|which-func-update-1|which-func-update-ediff-windows|which-func-update\n|which-function-mode|which-function|whitespace-action-when-on|whitespace-buffer-changed|whitespace-char-valid-p|whitespace-cleanup-region\n|whitespace-cleanup|whitespace-color-off|whitespace-color-on|whitespace-display-char-off|whitespace-display-char-on|whitespace-display-vector-p\n|whitespace-display-window|whitespace-empty-at-bob-regexp|whitespace-empty-at-eob-regexp|whitespace-ensure-local-variables|whitespace-help-off\n|whitespace-help-on|whitespace-help-scroll|whitespace-indentation-regexp|whitespace-insert-option-mark|whitespace-insert-value\n|whitespace-interactive-char|whitespace-kill-buffer|whitespace-looking-back|whitespace-mark-x|whitespace-mode|whitespace-newline-mode\n|whitespace-point--flush-used|whitespace-point--used|whitespace-post-command-hook|whitespace-regexp|whitespace-replace-action\n|whitespace-report-region|whitespace-report|whitespace-space-after-tab-regexp|whitespace-style-face-p|whitespace-style-mark-p\n|whitespace-toggle-list|whitespace-toggle-options|whitespace-trailing-regexp|whitespace-turn-off|whitespace-turn-on-if-enabled\n|whitespace-turn-on|whitespace-unload-function|whitespace-warn-read-only|whitespace-write-file-hook|whois-get-tld|whois-reverse-lookup\n|whois|widget-add-change|widget-add-documentation-string-button|widget-after-change|widget-alist-convert-option|widget-alist-convert-widget\n|widget-apply-action|widget-apply|widget-at|widget-backward|widget-before-change|widget-beginning-of-line|widget-boolean-prompt-value\n|widget-browse-at|widget-browse-other-window|widget-browse|widget-button-click|widget-button-press|widget-button-release-event-p\n|widget-checkbox-action|widget-checklist-add-item|widget-checklist-match-find|widget-checklist-match-inline|widget-checklist-match-up\n|widget-checklist-match|widget-checklist-validate|widget-checklist-value-create|widget-checklist-value-get|widget-child-validate\n|widget-child-value-get|widget-child-value-inline|widget-children-validate|widget-children-value-delete|widget-choice-action|widget-choice-default-get\n|widget-choice-match-inline|widget-choice-match|widget-choice-mouse-down-action|widget-choice-prompt-value|widget-choice-validate\n|widget-choice-value-create|widget-choose|widget-clear-undo|widget-coding-system-action|widget-coding-system-prompt-value|widget-color--choose-action\n|widget-color-action|widget-color-notify|widget-color-sample-face-get|widget-color-value-create|widget-complete|widget-completions-at-point\n|widget-cons-match|widget-const-prompt-value|widget-convert-button|widget-convert-text|widget-convert|widget-copy|widget-create-child-and-convert\n|widget-create-child-value|widget-create-child|widget-create|widget-default-action|widget-default-active|widget-default-button-face-get\n|widget-default-completions|widget-default-create|widget-default-deactivate|widget-default-default-get|widget-default-delete|widget-default-format-handler\n|widget-default-get|widget-default-menu-tag-get|widget-default-mouse-face-get|widget-default-notify|widget-default-prompt-value\n|widget-default-sample-face-get|widget-default-value-inline|widget-default-value-set|widget-delete-button-action|widget-delete\n|widget-docstring|widget-documentation-link-action|widget-documentation-link-add|widget-documentation-string-action|widget-documentation-string-indent-to\n|widget-documentation-string-value-create|widget-echo-help|widget-editable-list-delete-at|widget-editable-list-entry-create|widget-editable-list-format-handler\n|widget-editable-list-insert-before|widget-editable-list-match-inline|widget-editable-list-match|widget-editable-list-value-create\n|widget-editable-list-value-get|widget-emacs-commentary-link-action|widget-emacs-library-link-action|widget-end-of-line|widget-event-point\n|widget-face-notify|widget-face-sample-face-get|widget-field-action|widget-field-activate|widget-field-at|widget-field-buffer|widget-field-end\n|widget-field-find|widget-field-match|widget-field-prompt-internal|widget-field-prompt-value|widget-field-start|widget-field-text-end\n|widget-field-validate|widget-field-value-create|widget-field-value-delete|widget-field-value-get|widget-field-value-set|widget-file-link-action\n|widget-file-prompt-value|widget-forward|widget-function-link-action|widget-get-indirect|widget-get-sibling|widget-get|widget-group-default-get\n|widget-group-match-inline|widget-group-match|widget-group-value-create|widget-image-find|widget-image-insert|widget-info-link-action\n|widget-insert-button-action|widget-insert|widget-item-action|widget-item-match-inline|widget-item-match|widget-item-value-create\n|widget-key-sequence-read-event|widget-key-sequence-validate|widget-key-sequence-value-to-external|widget-key-sequence-value-to-internal\n|widget-kill-line|widget-leave-text|widget-magic-mouse-down-action|widget-map-buttons|widget-match-inline|widget-member|widget-minor-mode\n|widget-mouse-help|widget-move-and-invoke|widget-move|widget-narrow-to-field|widget-overlay-inactive|widget-parent-action|widget-plist-convert-option\n|widget-plist-convert-widget|widget-plist-member|widget-princ-to-string|widget-prompt-value|widget-push-button-value-create|widget-put\n|widget-radio-action|widget-radio-add-item|widget-radio-button-notify|widget-radio-chosen|widget-radio-validate|widget-radio-value-create\n|widget-radio-value-get|widget-radio-value-inline|widget-radio-value-set|widget-regexp-match|widget-regexp-validate|widget-restricted-sexp-match\n|widget-setup|widget-sexp-prompt-value|widget-sexp-validate|widget-sexp-value-to-internal|widget-specify-active|widget-specify-button\n|widget-specify-doc|widget-specify-field|widget-specify-inactive|widget-specify-insert|widget-specify-sample|widget-specify-secret\n|widget-sublist|widget-symbol-prompt-internal|widget-tabable-at|widget-toggle-action|widget-toggle-value-create|widget-type-default-get\n|widget-type-match|widget-type-value-create|widget-type|widget-types-convert-widget|widget-types-copy|widget-url-link-action|widget-value-convert-widget\n|widget-value-set|widget-value-value-get|widget-value|widget-variable-link-action|widget-vector-match|widget-visibility-value-create\n|widgetp|wildcard-to-regexp|windmove-constrain-around-range|windmove-constrain-loc-for-movement|windmove-constrain-to-range|windmove-coord-add\n|windmove-default-keybindings|windmove-do-window-select|windmove-down|windmove-find-other-window|windmove-frame-edges|windmove-left\n|windmove-other-window-loc|windmove-reference-loc|windmove-right|windmove-up|windmove-wrap-loc-for-movement|window--atom-check-1\n|window--atom-check|window--check|window--delete|window--display-buffer|window--dump-frame|window--dump-window|window--even-window-heights\n|window--frame-usable-p|window--in-direction-2|window--in-subtree-p|window--major-non-side-window|window--major-side-window|window--max-delta-1\n|window--maybe-raise-frame|window--min-delta-1|window--min-size-1|window--min-size-ignore-p|window--pixel-to-total-1|window--pixel-to-total\n|window--preservable-size|window--preserve-size|window--resizable-p|window--resizable|window--resize-apply-p|window--resize-child-windows-normal\n|window--resize-child-windows-skip-p|window--resize-child-windows|window--resize-mini-window|window--resize-reset-1|window--resize-reset\n|window--resize-root-window-vertically|window--resize-root-window|window--resize-siblings|window--resize-this-window|window--sanitize-margin\n|window--sanitize-window-sizes|window--side-check|window--side-window-p|window--size-fixed-1|window--size-ignore-p|window--size-to-pixel\n|window--state-get-1|window--state-put-1|window--state-put-2|window--subtree|window--try-to-split-window|window-at-side-list|window-at-side-p\n|window-atom-root|window-buffer-height|window-child-count|window-combination-p|window-combinations|window-configuration-to-register\n|window-deletable-p|window-dot|window-fixed-size-p|window-height|window-last-child|window-left|window-list-1|window-make-atom|window-max-delta\n|window-min-delta|window-min-pixel-height|window-min-pixel-size|window-min-pixel-width|window-new-normal|window-new-pixel|window-new-total\n|window-normal-size|window-normalize-buffer-to-switch-to|window-normalize-buffer|window-normalize-frame|window-normalize-window\n|window-old-point|window-preserve-size|window-preserved-size|window-redisplay-end-trigger|window-resizable-p|window-resize-apply-total\n|window-resize-apply|window-resize-no-error|window-right|window-safe-min-pixel-height|window-safe-min-pixel-size|window-safe-min-pixel-width\n|window-safe-min-size|window-safely-shrinkable-p|window-screen-lines|window-scroll-bar-height|window-sizable-p|window-sizable|window-size-fixed-p\n|window-size|window-splittable-p|window-system-for-display|window-text-height|window-text-width|window-use-time|window-width|window-with-parameter\n|winner-active-region|winner-change-fun|winner-conf|winner-configuration|winner-edges|winner-equal|winner-get-point|winner-insert-if-new\n|winner-make-point-alist|winner-mode|winner-redo|winner-remember|winner-ring|winner-save-conditionally|winner-save-old-configurations\n|winner-save-unconditionally|winner-set-conf|winner-set|winner-sorted-window-list|winner-undo-this|winner-undo|winner-win-data|winner-window-list\n|wisent-grammar-mode|wisent-java-default-setup|wisent-javascript-setup-parser|wisent-python-default-setup|with-auto-compression-mode\n|with-buffer-modified-unmodified|with-category-table|with-decoded-time-value|with-displayed-buffer-window|with-electric-help|with-file-modes\n|with-isearch-suspended|with-js|with-mh-folder-updating|with-mode-local-symbol|with-mode-local|with-parsed-tramp-file-name|with-rcirc-process-buffer\n|with-rcirc-server-buffer|with-selected-frame|with-silent-modifications|with-slots|with-timeout-suspend|with-timeout-unsuspend\n|with-tramp-connection-property|with-tramp-file-property|with-tramp-progress-reporter|with-vc-properties|with-wrapper-hook|woman-Cyg-to-Win\n|woman-bookmark-jump|woman-bookmark-make-record|woman-break-table|woman-cached-data|woman-canonicalize-dir|woman-change-fonts|woman-decode-buffer\n|woman-decode-region|woman-default-faces|woman-delete-following-space|woman-delete-line|woman-delete-match|woman-delete-whole-line\n|woman-directory-files|woman-dired-define-key-maybe|woman-dired-define-key|woman-dired-define-keys|woman-dired-find-file|woman-display-extended-fonts\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"},{match:"(?x)(?<=[()]|^)(?:\nwoman-expand-directory-path|woman-expand-locale|woman-file-accessible-directory-p|woman-file-name-all-completions|woman-file-name\n|woman-file-readable-p|woman-find-file|woman-find-next-control-line-carefully|woman-find-next-control-line|woman-follow-word|woman-follow\n|woman-forward-arg|woman-get-next-char|woman-get-numeric-arg|woman-get-tab-stop|woman-horizontal-escapes|woman-horizontal-line\n|woman-if-body|woman-if-ignore|woman-imenu|woman-insert-file-contents|woman-interparagraph-space|woman-interpolate-macro|woman-leave-blank-lines\n|woman-make-bufname|woman-man-buffer|woman-manpath-add-locales|woman-mark-horizontal-position|woman-match-name|woman-menu|woman-mini-help\n|woman-mode|woman-monochrome-faces|woman-negative-vertical-space|woman-non-underline-faces|woman-not-member|woman-parse-colon-path\n|woman-parse-man\\.conf|woman-parse-numeric-arg|woman-parse-numeric-value|woman-pop|woman-pre-process-region|woman-process-buffer\n|woman-push|woman-read-directory-cache|woman-really-find-file|woman-reformat-last-file|woman-replace-match|woman-reset-emulation\n|woman-reset-nospace|woman-select-symbol-fonts|woman-select|woman-set-arg|woman-set-buffer-display-table|woman-set-face|woman-set-interparagraph-distance\n|woman-special-characters|woman-strings|woman-tab-to-tab-stop|woman-tar-extract-file|woman-toggle-fill-frame|woman-toggle-use-extended-font\n|woman-toggle-use-symbol-font|woman-topic-all-completions-1|woman-topic-all-completions-merge|woman-topic-all-completions|woman-translate\n|woman-unescape|woman-unquote-args|woman-unquote|woman-write-directory-cache|woman|woman0-de|woman0-el|woman0-if|woman0-ig|woman0-macro\n|woman0-process-escapes|woman0-rename|woman0-rn|woman0-roff-buffer|woman0-so|woman1-B-or-I|woman1-B|woman1-BI|woman1-BR|woman1-I|woman1-IB\n|woman1-IR|woman1-IX|woman1-RB|woman1-RI|woman1-SB|woman1-SM|woman1-TP|woman1-TX|woman1-alt-fonts|woman1-bd|woman1-cs|woman1-hc|woman1-hw\n|woman1-hy|woman1-ne|woman1-nh|woman1-ps|woman1-roff-buffer|woman1-ss|woman1-ul|woman1-vs|woman2-DT|woman2-HP|woman2-IP|woman2-LP|woman2-P\n|woman2-PD|woman2-PP|woman2-RE|woman2-RS|woman2-SH|woman2-SS|woman2-TE|woman2-TH|woman2-TP|woman2-TS|woman2-ad|woman2-br|woman2-fc|woman2-fi\n|woman2-format-paragraphs|woman2-get-prevailing-indent|woman2-in|woman2-ll|woman2-na|woman2-nf|woman2-nr|woman2-ns|woman2-process-escapes-to-eol\n|woman2-process-escapes|woman2-roff-buffer|woman2-rs|woman2-sp|woman2-ta|woman2-tagged-paragraph|woman2-ti|woman2-tr|word-at-point\n|x-apply-session-resources|x-backspace-delete-keys-p|x-change-window-property|x-clipboard-yank|x-complement-fontset-spec|x-compose-font-name\n|x-create-frame-with-faces|x-create-frame|x-cut-buffer-or-selection-value|x-decompose-font-name|x-delete-window-property|x-disown-selection-internal\n|x-display-backing-store|x-display-color-cells|x-display-grayscale-p|x-display-mm-height|x-display-mm-width|x-display-monitor-attributes-list\n|x-display-pixel-height|x-display-pixel-width|x-display-planes|x-display-save-under|x-display-screens|x-display-visual-class|x-dnd-choose-type\n|x-dnd-current-type|x-dnd-default-test-function|x-dnd-drop-data|x-dnd-forget-drop|x-dnd-get-drop-width-height|x-dnd-get-drop-x-y\n|x-dnd-get-motif-value|x-dnd-get-state-cons-for-frame|x-dnd-get-state-for-frame|x-dnd-handle-drag-n-drop-event|x-dnd-handle-file-name\n|x-dnd-handle-motif|x-dnd-handle-moz-url|x-dnd-handle-old-kde|x-dnd-handle-uri-list|x-dnd-handle-xdnd|x-dnd-init-frame|x-dnd-init-motif-for-frame\n|x-dnd-init-xdnd-for-frame|x-dnd-insert-ctext|x-dnd-insert-utf16-text|x-dnd-insert-utf8-text|x-dnd-maybe-call-test-function|x-dnd-more-than-3-from-flags\n|x-dnd-motif-value-to-list|x-dnd-save-state|x-dnd-version-from-flags|x-file-dialog|x-focus-frame|x-frame-geometry|x-get-atom-name\n|x-get-clipboard|x-get-selection-internal|x-get-selection-value|x-gtk-map-stock|x-handle-args|x-handle-display|x-handle-geometry\n|x-handle-iconic|x-handle-initial-switch|x-handle-name-switch|x-handle-named-frame-geometry|x-handle-no-bitmap-icon|x-handle-numeric-switch\n|x-handle-parent-id|x-handle-reverse-video|x-handle-smid|x-handle-switch|x-handle-xrm-switch|x-hide-tip|x-initialize-window-system\n|x-menu-bar-open-internal|x-menu-bar-open|x-must-resolve-font-name|x-own-selection-internal|x-register-dnd-atom|x-resolve-font-name\n|x-select-font|x-select-text|x-selection-exists-p|x-selection-owner-p|x-selection-value|x-selection|x-send-client-message|x-server-max-request-size\n|x-show-tip|x-synchronize|x-uses-old-gtk-dialog|x-win-suspend-error|x-window-property|x-wm-set-size-hint|xdb|xml--entity-replacement-text\n|xml--parse-buffer|xml-debug-print-internal|xml-debug-print|xml-escape-string|xml-find-file-coding-system|xml-get-attribute-or-nil\n|xml-get-attribute|xml-get-children|xml-maybe-do-ns|xml-mode|xml-node-attributes|xml-node-children|xml-node-name|xml-parse-attlist\n|xml-parse-dtd|xml-parse-elem-type|xml-parse-file|xml-parse-region|xml-parse-string|xml-parse-tag-1|xml-parse-tag|xml-print|xml-skip-dtd\n|xml-substitute-numeric-entities|xml-substitute-special|xmltok-get-declared-encoding-position|xor|xref--alistify|xref--analyze\n|xref--display-position|xref--find-definitions|xref--goto-location|xref--insert-propertized|xref--insert-xrefs|xref--location-at-point\n|xref--next-line|xref--pop-to-location|xref--read-identifier|xref--search-property|xref--show-location|xref--show-xref-buffer|xref--show-xrefs\n|xref--xref-buffer-mode|xref--xref-child-p|xref--xref-description|xref--xref-list-p|xref--xref-location|xref--xref-p|xref--xref\n|xref-bogus-location-child-p|xref-bogus-location-list-p|xref-bogus-location-message|xref-bogus-location-p|xref-bogus-location\n|xref-buffer-location-child-p|xref-buffer-location-list-p|xref-buffer-location-p|xref-buffer-location|xref-clear-marker-stack\n|xref-default-identifier-at-point|xref-elisp-location-child-p|xref-elisp-location-list-p|xref-elisp-location-p|xref-elisp-location\n|xref-file-location-child-p|xref-file-location-list-p|xref-file-location-p|xref-file-location|xref-find-apropos|xref-find-definitions-other-frame\n|xref-find-definitions-other-window|xref-find-definitions|xref-find-references|xref-goto-xref|xref-location-child-p|xref-location-group\n|xref-location-list-p|xref-location-marker|xref-location-p|xref-location|xref-make-bogus-location|xref-make-buffer-location|xref-make-elisp-location\n|xref-make-file-location|xref-make|xref-next-line|xref-pop-marker-stack|xref-prev-line|xref-push-marker-stack|xscheme-cd|xscheme-coerce-prompt\n|xscheme-debugger-mode-p|xscheme-default-command-line|xscheme-delete-output|xscheme-display-process-buffer|xscheme-enable-control-g\n|xscheme-enter-debugger-mode|xscheme-enter-input-wait|xscheme-enter-interaction-mode|xscheme-eval|xscheme-evaluation-commands\n|xscheme-exit-input-wait|xscheme-finish-gc|xscheme-goto-output-point|xscheme-guarantee-newlines|xscheme-insert-expression|xscheme-interrupt-commands\n|xscheme-message|xscheme-mode-line-initialize|xscheme-output-goto|xscheme-parse-command-line|xscheme-process-buffer-current-p\n|xscheme-process-buffer-window|xscheme-process-buffer|xscheme-process-filter-initialize|xscheme-process-filter-output|xscheme-process-filter\n|xscheme-process-filter:simple-action|xscheme-process-filter:string-action-noexcursion|xscheme-process-filter:string-action\n|xscheme-process-running-p|xscheme-process-sentinel|xscheme-prompt-for-confirmation|xscheme-prompt-for-expression-exit|xscheme-prompt-for-expression\n|xscheme-read-command-line|xscheme-region-expression-p|xscheme-rotate-yank-pointer|xscheme-select-process-buffer|xscheme-send-breakpoint-interrupt\n|xscheme-send-buffer|xscheme-send-char|xscheme-send-control-g-interrupt|xscheme-send-control-u-interrupt|xscheme-send-control-x-interrupt\n|xscheme-send-current-line|xscheme-send-definition|xscheme-send-interrupt|xscheme-send-next-expression|xscheme-send-previous-expression\n|xscheme-send-proceed|xscheme-send-region|xscheme-send-string-1|xscheme-send-string-2|xscheme-send-string|xscheme-set-prompt-variable\n|xscheme-set-prompt|xscheme-set-runlight|xscheme-start-gc|xscheme-start-process|xscheme-start|xscheme-unsolicited-read-char|xscheme-wait-for-process\n|xscheme-write-message-1|xscheme-write-value|xscheme-yank-pop|xscheme-yank-previous-send|xscheme-yank-push|xscheme-yank|xselect--encode-string\n|xselect--int-to-cons|xselect--selection-bounds|xselect-convert-to-atom|xselect-convert-to-charpos|xselect-convert-to-class|xselect-convert-to-colno\n|xselect-convert-to-delete|xselect-convert-to-filename|xselect-convert-to-host|xselect-convert-to-identity|xselect-convert-to-integer\n|xselect-convert-to-length|xselect-convert-to-lineno|xselect-convert-to-name|xselect-convert-to-os|xselect-convert-to-save-targets\n|xselect-convert-to-string|xselect-convert-to-targets|xselect-convert-to-user|xterm-mouse--read-event-sequence-1000|xterm-mouse--read-event-sequence-1006\n|xterm-mouse--set-click-count|xterm-mouse-event|xterm-mouse-mode|xterm-mouse-position-function|xterm-mouse-translate-1|xterm-mouse-translate-extended\n|xterm-mouse-translate|xterm-mouse-truncate-wrap|xw-color-defined-p|xw-color-values|xw-defined-colors|xw-display-color-p|yank-handle-category-property\n|yank-handle-font-lock-face-property|yank-menu|yank-rectangle|yenc-decode-region|yenc-extract-filename|zap-to-char|zeroconf-get-domain\n|zeroconf-get-host-domain|zeroconf-get-host|zeroconf-get-interface-name|zeroconf-get-interface-number|zeroconf-get-service|zeroconf-init\n|zeroconf-list-service-names|zeroconf-list-service-types|zeroconf-list-services|zeroconf-publish-service|zeroconf-register-service-browser\n|zeroconf-register-service-resolver|zeroconf-register-service-type-browser|zeroconf-resolve-service|zeroconf-service-add-hook\n|zeroconf-service-address|zeroconf-service-aprotocol|zeroconf-service-browser-handler|zeroconf-service-domain|zeroconf-service-flags\n|zeroconf-service-host|zeroconf-service-interface|zeroconf-service-name|zeroconf-service-port|zeroconf-service-protocol|zeroconf-service-remove-hook\n|zeroconf-service-resolver-handler|zeroconf-service-txt|zeroconf-service-type-browser-handler|zeroconf-service-type|zerop--anon-cmacro\n|zone-call|zone-cpos|zone-exploding-remove|zone-fall-through-ws|zone-fill-out-screen|zone-fret|zone-hiding-mode-line|zone-leave-me-alone\n|zone-line-specs|zone-mode|zone-orig|zone-park\\/sit-for|zone-pgm-2nd-putz-with-case|zone-pgm-dissolve|zone-pgm-drip-fretfully|zone-pgm-drip\n|zone-pgm-explode|zone-pgm-five-oclock-swan-dive|zone-pgm-jitter|zone-pgm-martini-swan-dive|zone-pgm-paragraph-spaz|zone-pgm-putz-with-case\n|zone-pgm-random-life|zone-pgm-rat-race|zone-pgm-rotate-LR-lockstep|zone-pgm-rotate-LR-variable|zone-pgm-rotate-RL-lockstep|zone-pgm-rotate-RL-variable\n|zone-pgm-rotate|zone-pgm-stress-destress|zone-pgm-stress|zone-pgm-whack-chars|zone-remove-text|zone-replace-char|zone-shift-down\n|zone-shift-left|zone-shift-right|zone-shift-up|zone-when-idle|zone|zrgrep\n)(?=[\\s()]|$)",name:"support.function.emacs.lisp"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.emacs.lisp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.emacs.lisp"}},name:"string.quoted.double.emacs.lisp",patterns:[{include:"#string-innards"}]},"string-innards":{patterns:[{include:"#eldoc"},{match:"(\\\\)$\\n?",name:"constant.escape.character.newline.emacs.lisp"},{captures:{1:{name:"punctuation.escape.backslash.emacs.lisp"}},match:"(\\\\).",name:"constant.escape.character.emacs.lisp"}]},symbols:{patterns:[{captures:{0:{name:"punctuation.definition.symbol.emacs.lisp"}},match:"(?<=[\\s()\\[]|^)##",name:"constant.other.interned.blank.symbol.emacs.lisp"},{captures:{1:{name:"punctuation.definition.symbol.emacs.lisp"},2:{patterns:[{include:"$self"}]}},match:"(?<=[\\s()\\[]|^)(#)((?:[-'+=*/\\w~!@$%^&:<>{}?]|\\\\.)+)",name:"constant.other.symbol.emacs.lisp"},{captures:{1:{name:"punctuation.definition.spliced.symbol.emacs.lisp"}},match:"(,@)([-+=*/\\w~!@$%^&:<>{}?]+)",name:"constant.other.spliced.symbol.emacs.lisp"},{captures:{1:{name:"punctuation.definition.inserted.symbol.emacs.lisp"}},match:"(,)([-+=*/\\w~!@$%^&:<>{}?]+)",name:"constant.other.inserted.symbol.emacs.lisp"}]},vectors:{patterns:[{match:"\\[",name:"punctuation.section.vector.begin.emacs.lisp"},{match:"\\]",name:"punctuation.section.vector.end.emacs.lisp"}]}},o="source.emacs.lisp",s={displayName:e,fileTypes:t,firstLineMatch:r,name:a,patterns:i,repository:n,scopeName:o};export{s as default,e as displayName,t as fileTypes,r as firstLineMatch,a as name,i as patterns,n as repository,o as scopeName}; diff --git a/lib/dist/grammar/erb.mjs b/lib/dist/grammar/erb.mjs new file mode 100644 index 0000000..d637e5d --- /dev/null +++ b/lib/dist/grammar/erb.mjs @@ -0,0 +1 @@ +var e="ERB",n=["erb","rhtml","html.erb"],t={"text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)":{patterns:[{begin:"(^\\s*)(?=<%+#(?![^%]*%>))",beginCaptures:{0:{name:"punctuation.whitespace.comment.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.comment.trailing.erb"}},patterns:[{include:"#comment"}]},{begin:"(^\\s*)(?=<%(?![^%]*%>))",beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.erb"}},patterns:[{include:"#tags"}]},{include:"#comment"},{include:"#tags"}]}},a="erb",m=[{include:"text.html.basic"}],i={comment:{patterns:[{begin:"<%+#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.erb"}},end:"%>",endCaptures:{0:{name:"punctuation.definition.comment.end.erb"}},name:"comment.block.erb"}]},tags:{patterns:[{begin:"<%+(?!>)[-=]?(?![^%]*%>)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{0:{name:"punctuation.section.embedded.end.erb"},1:{name:"source.ruby"}},name:"meta.embedded.block.erb",patterns:[{captures:{1:{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]},{begin:"<%+(?!>)[-=]?",beginCaptures:{0:{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{0:{name:"punctuation.section.embedded.end.erb"},1:{name:"source.ruby"}},name:"meta.embedded.line.erb",patterns:[{captures:{1:{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]}]}},r="text.html.erb",b={displayName:"ERB",fileTypes:n,injections:t,name:"erb",patterns:m,repository:i,scopeName:r};export{b as default,e as displayName,n as fileTypes,t as injections,a as name,m as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/erlang.mjs b/lib/dist/grammar/erlang.mjs new file mode 100644 index 0000000..c69569f --- /dev/null +++ b/lib/dist/grammar/erlang.mjs @@ -0,0 +1 @@ +var e="Erlang",n=["erl","escript","hrl","xrl","yrl"],a="erlang",t=[{include:"#module-directive"},{include:"#import-export-directive"},{include:"#behaviour-directive"},{include:"#record-directive"},{include:"#define-directive"},{include:"#macro-directive"},{include:"#directive"},{include:"#function"},{include:"#everything-else"}],i={atom:{patterns:[{begin:"(')",beginCaptures:{1:{name:"punctuation.definition.symbol.begin.erlang"}},end:"(')",endCaptures:{1:{name:"punctuation.definition.symbol.end.erlang"}},name:"constant.other.symbol.quoted.single.erlang",patterns:[{captures:{1:{name:"punctuation.definition.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"}},match:"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",name:"constant.other.symbol.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.atom.erlang"}]},{match:"[a-z][a-zA-Z\\d@_]*+",name:"constant.other.symbol.unquoted.erlang"}]},"behaviour-directive":{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.behaviour.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.behaviour.definition.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.behaviour.erlang"},binary:{begin:"(<<)",beginCaptures:{1:{name:"punctuation.definition.binary.begin.erlang"}},end:"(>>)",endCaptures:{1:{name:"punctuation.definition.binary.end.erlang"}},name:"meta.structure.binary.erlang",patterns:[{captures:{1:{name:"punctuation.separator.binary.erlang"},2:{name:"punctuation.separator.value-size.erlang"}},match:"(,)|(:)"},{include:"#internal-type-specifiers"},{include:"#everything-else"}]},character:{patterns:[{captures:{1:{name:"punctuation.definition.character.erlang"},2:{name:"constant.character.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"},5:{name:"punctuation.definition.escape.erlang"}},match:"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))",name:"constant.character.erlang"},{match:"\\$\\\\\\^?.?",name:"invalid.illegal.character.erlang"},{captures:{1:{name:"punctuation.definition.character.erlang"}},match:"(\\$)[ \\S]",name:"constant.character.erlang"},{match:"\\$.?",name:"invalid.illegal.character.erlang"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.erlang"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{0:{name:"punctuation.definition.comment.erlang"}},end:"\\n",name:"comment.line.percentage.erlang"}]},"define-directive":{patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.define.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.definition.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{include:"#everything-else"}]},{begin:"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.define.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.definition.erlang"},5:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))\\s*(,)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.separator.parameters.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:"\\|\\||\\||:|;|,|\\.|->",name:"punctuation.separator.define.erlang"},{include:"#everything-else"}]}]},directive:{patterns:[{begin:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\)?)\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.erlang",patterns:[{include:"#everything-else"}]},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.erlang"},3:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",name:"meta.directive.erlang"}]},docstring:{begin:'(?)|(;)|(,)"},"internal-function-list":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.function.erlang",patterns:[{begin:"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)",beginCaptures:{1:{name:"entity.name.function.erlang"},2:{name:"punctuation.separator.function-arity.erlang"}},end:"(,)|(?=\\])",endCaptures:{1:{name:"punctuation.separator.list.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-function-parts":{patterns:[{begin:"(?=\\()",end:"(->)",endCaptures:{1:{name:"punctuation.separator.clause-head-body.erlang"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:",|;",name:"punctuation.separator.guards.erlang"},{include:"#everything-else"}]},{match:",",name:"punctuation.separator.expressions.erlang"},{include:"#everything-else"}]},"internal-record-body":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.definition.class.record.begin.erlang"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.class.record.end.erlang"}},name:"meta.structure.record.erlang",patterns:[{begin:"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))",beginCaptures:{2:{name:"variable.other.field.erlang"},3:{name:"variable.language.omitted.field.erlang"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.class.record.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-string-body":{patterns:[{captures:{1:{name:"punctuation.definition.escape.erlang"},3:{name:"punctuation.definition.escape.erlang"}},comment:"escape sequence",match:"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",name:"constant.character.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.string.erlang"},{captures:{1:{name:"punctuation.definition.placeholder.erlang"},6:{name:"punctuation.separator.placeholder-parts.erlang"},10:{name:"punctuation.separator.placeholder-parts.erlang"}},comment:"io:fwrite format control sequence",match:"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*))?((\\.)((\\*)|.))?)?[tlkK]*[~cfegswpWPBX#bx\\+ni]",name:"constant.character.format.placeholder.other.erlang"},{captures:{1:{name:"punctuation.definition.placeholder.erlang"}},comment:"io:fread format control sequence",match:"(~)(\\*)?(\\d++)?(t)?[~du\\-#fsacl]",name:"constant.character.format.placeholder.other.erlang"},{match:'~[^"]?',name:"invalid.illegal.string.erlang"}]},"internal-type-specifiers":{begin:"(/)",beginCaptures:{1:{name:"punctuation.separator.value-type.erlang"}},end:"(?=,|:|>>)",patterns:[{captures:{1:{name:"storage.type.erlang"},2:{name:"storage.modifier.signedness.erlang"},3:{name:"storage.modifier.endianness.erlang"},4:{name:"storage.modifier.unit.erlang"},5:{name:"punctuation.separator.unit-specifiers.erlang"},6:{name:"constant.numeric.integer.decimal.erlang"},7:{name:"punctuation.separator.type-specifiers.erlang"}},match:"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)"}]},keyword:{match:"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b",name:"keyword.control.erlang"},"language-constant":{match:"\\b(false|true|undefined)\\b",name:"constant.language"},list:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.erlang",patterns:[{match:"\\||\\|\\||,",name:"punctuation.separator.list.erlang"},{include:"#everything-else"}]},"macro-directive":{patterns:[{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.ifdef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifdef.erlang"},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.ifndef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifndef.erlang"},{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.undef.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.function.macro.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.undef.erlang"}]},"macro-usage":{captures:{1:{name:"keyword.operator.macro.erlang"},2:{name:"entity.name.function.macro.erlang"}},match:"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",name:"meta.macro-usage.erlang"},"module-directive":{captures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.module.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.module.definition.erlang"},5:{name:"punctuation.definition.parameters.end.erlang"},6:{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.module.erlang"},number:{begin:"(?=\\d)",end:"(?!\\d)",patterns:[{captures:{1:{name:"punctuation.separator.integer-float.erlang"},2:{name:"punctuation.separator.float-exponent.erlang"}},match:"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",name:"constant.numeric.float.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"2(#)([0-1]++_)*[0-1]++",name:"constant.numeric.integer.binary.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"3(#)([0-2]++_)*[0-2]++",name:"constant.numeric.integer.base-3.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"4(#)([0-3]++_)*[0-3]++",name:"constant.numeric.integer.base-4.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"5(#)([0-4]++_)*[0-4]++",name:"constant.numeric.integer.base-5.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"6(#)([0-5]++_)*[0-5]++",name:"constant.numeric.integer.base-6.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"7(#)([0-6]++_)*[0-6]++",name:"constant.numeric.integer.base-7.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"8(#)([0-7]++_)*[0-7]++",name:"constant.numeric.integer.octal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"9(#)([0-8]++_)*[0-8]++",name:"constant.numeric.integer.base-9.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"10(#)(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"11(#)([\\daA]++_)*[\\daA]++",name:"constant.numeric.integer.base-11.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++",name:"constant.numeric.integer.base-12.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++",name:"constant.numeric.integer.base-13.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++",name:"constant.numeric.integer.base-14.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++",name:"constant.numeric.integer.base-15.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++",name:"constant.numeric.integer.hexadecimal.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++",name:"constant.numeric.integer.base-17.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++",name:"constant.numeric.integer.base-18.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++",name:"constant.numeric.integer.base-19.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++",name:"constant.numeric.integer.base-20.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++",name:"constant.numeric.integer.base-21.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++",name:"constant.numeric.integer.base-22.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++",name:"constant.numeric.integer.base-23.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++",name:"constant.numeric.integer.base-24.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++",name:"constant.numeric.integer.base-25.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++",name:"constant.numeric.integer.base-26.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++",name:"constant.numeric.integer.base-27.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++",name:"constant.numeric.integer.base-28.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++",name:"constant.numeric.integer.base-29.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++",name:"constant.numeric.integer.base-30.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++",name:"constant.numeric.integer.base-31.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++",name:"constant.numeric.integer.base-32.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++",name:"constant.numeric.integer.base-33.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++",name:"constant.numeric.integer.base-34.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++",name:"constant.numeric.integer.base-35.erlang"},{captures:{1:{name:"punctuation.separator.base-integer.erlang"}},match:"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"constant.numeric.integer.base-36.erlang"},{match:"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"invalid.illegal.integer.erlang"},{match:"(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"}]},"parenthesized-expression":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.erlang"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.erlang"}},name:"meta.expression.parenthesized",patterns:[{include:"#everything-else"}]},"record-directive":{begin:"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",beginCaptures:{1:{name:"punctuation.section.directive.begin.erlang"},2:{name:"keyword.control.directive.import.erlang"},3:{name:"punctuation.definition.parameters.begin.erlang"},4:{name:"entity.name.type.class.record.definition.erlang"},5:{name:"punctuation.separator.parameters.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{1:{name:"punctuation.definition.parameters.end.erlang"},2:{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.record.erlang",patterns:[{include:"#internal-record-body"},{include:"#comment"}]},"record-usage":{patterns:[{captures:{1:{name:"keyword.operator.record.erlang"},2:{name:"entity.name.type.class.record.erlang"},3:{name:"punctuation.separator.record-field.erlang"},4:{name:"variable.other.field.erlang"}},match:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",name:"meta.record-usage.erlang"},{begin:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",beginCaptures:{1:{name:"keyword.operator.record.erlang"},2:{name:"entity.name.type.class.record.erlang"}},end:"(?<=\\})",name:"meta.record-usage.erlang",patterns:[{include:"#internal-record-body"}]}]},"sigil-docstring":{begin:'(~[bBsS]?)((["]{3,})\\s*)(\\S.*)?$',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"meta.string.quoted.triple.begin.erlang"},3:{name:"punctuation.definition.string.begin.erlang"},4:{name:"invalid.illegal.string.erlang"}},comment:"Only whitespace characters are allowed after the beggining and before the closing sequences and those cannot be in the same line",end:'^(\\s*(\\3))(?!")',endCaptures:{1:{name:"meta.string.quoted.triple.end.erlang"},2:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.tripple.sigil.erlang"},"sigil-string":{patterns:[{include:"#sigil-string-parenthesis"},{include:"#sigil-string-parenthesis-verbatim"},{include:"#sigil-string-curly-brackets"},{include:"#sigil-string-curly-brackets-verbatim"},{include:"#sigil-string-square-brackets"},{include:"#sigil-string-square-brackets-verbatim"},{include:"#sigil-string-less-greater"},{include:"#sigil-string-less-greater-verbatim"},{include:"#sigil-string-single-character"},{include:"#sigil-string-single-character-verbatim"},{include:"#sigil-string-single-quote"},{include:"#sigil-string-single-quote-verbatim"},{include:"#sigil-string-double-quote"},{include:"#sigil-string-double-quote-verbatim"}]},"sigil-string-curly-brackets":{begin:"(~[bs]?)([{])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([}])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.curly-brackets.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-curly-brackets-verbatim":{begin:"(~[BS])([{])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([}])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.curly-brackets.sigil.erlang"},"sigil-string-double-quote":{begin:'(~[bs]?)(")',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-double-quote-verbatim":{begin:'(~[BS])(")',beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.sigil.erlang"},"sigil-string-less-greater":{begin:"(~[bs]?)(<)",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.less-greater.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-less-greater-verbatim":{begin:"(~[BS])(<)",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.less-greater.sigil.erlang"},"sigil-string-parenthesis":{begin:"(~[bs]?)([(])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([)])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.parenthesis.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-parenthesis-verbatim":{begin:"(~[BS])([(])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([)])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.parenthesis.sigil.erlang"},"sigil-string-single-character":{begin:"(~[bs]?)([/\\|`#])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.other.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-single-character-verbatim":{begin:"(~[BS])([/\\|`#])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.other.sigil.erlang"},"sigil-string-single-quote":{begin:"(~[bs]?)(')",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.single.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-single-quote-verbatim":{begin:"(~[BS])(')",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.single.sigil.erlang"},"sigil-string-square-brackets":{begin:"(~[bs]?)([\\[])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([\\]])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.square-brackets.sigil.erlang",patterns:[{include:"#internal-string-body"}]},"sigil-string-square-brackets-verbatim":{begin:"(~[BS])([\\[])",beginCaptures:{1:{name:"storage.type.string.erlang"},2:{name:"punctuation.definition.string.begin.erlang"}},end:"([\\]])",endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.square-brackets.sigil.erlang"},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.erlang"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.erlang",patterns:[{include:"#internal-string-body"}]},"symbolic-operator":{match:"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=",name:"keyword.operator.symbolic.erlang"},"textual-operator":{match:"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",name:"keyword.operator.textual.erlang"},tuple:{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.definition.tuple.begin.erlang"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.tuple.end.erlang"}},name:"meta.structure.tuple.erlang",patterns:[{match:",",name:"punctuation.separator.tuple.erlang"},{include:"#everything-else"}]},variable:{captures:{1:{name:"variable.other.erlang"},2:{name:"variable.language.omitted.erlang"}},match:"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"}},r="source.erlang",s={displayName:e,fileTypes:n,name:a,patterns:t,repository:i,scopeName:r};export{s as default,e as displayName,n as fileTypes,a as name,t as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/fennel.mjs b/lib/dist/grammar/fennel.mjs new file mode 100644 index 0000000..54b905d --- /dev/null +++ b/lib/dist/grammar/fennel.mjs @@ -0,0 +1 @@ +var e="Fennel",n="fennel",t=[{include:"#expression"}],a={comment:{patterns:[{begin:";",end:"$",name:"comment.line.semicolon.fennel"}]},constants:{patterns:[{match:"nil",name:"constant.language.nil.fennel"},{match:"false|true",name:"constant.language.boolean.fennel"},{match:"(-?\\d+\\.\\d+([eE][+-]?\\d+)?)",name:"constant.numeric.double.fennel"},{match:"(-?\\d+)",name:"constant.numeric.integer.fennel"}]},expression:{patterns:[{include:"#comment"},{include:"#constants"},{include:"#sexp"},{include:"#table"},{include:"#vector"},{include:"#keywords"},{include:"#special"},{include:"#lua"},{include:"#strings"},{include:"#methods"},{include:"#symbols"}]},keywords:{match:":[^ ]+",name:"constant.keyword.fennel"},lua:{patterns:[{match:"\\b(assert|collectgarbage|dofile|error|getmetatable|ipairs|load|loadfile|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setmetatable|tonumber|tostring|type|xpcall)\\b",name:"support.function.fennel"},{match:"\\b(coroutine|coroutine.create|coroutine.isyieldable|coroutine.resume|coroutine.running|coroutine.status|coroutine.wrap|coroutine.yield|debug|debug.debug|debug.gethook|debug.getinfo|debug.getlocal|debug.getmetatable|debug.getregistry|debug.getupvalue|debug.getuservalue|debug.sethook|debug.setlocal|debug.setmetatable|debug.setupvalue|debug.setuservalue|debug.traceback|debug.upvalueid|debug.upvaluejoin|io|io.close|io.flush|io.input|io.lines|io.open|io.output|io.popen|io.read|io.stderr|io.stdin|io.stdout|io.tmpfile|io.type|io.write|math|math.abs|math.acos|math.asin|math.atan|math.ceil|math.cos|math.deg|math.exp|math.floor|math.fmod|math.huge|math.log|math.max|math.maxinteger|math.min|math.mininteger|math.modf|math.pi|math.rad|math.random|math.randomseed|math.sin|math.sqrt|math.tan|math.tointeger|math.type|math.ult|os|os.clock|os.date|os.difftime|os.execute|os.exit|os.getenv|os.remove|os.rename|os.setlocale|os.time|os.tmpname|package|package.config|package.cpath|package.loaded|package.loadlib|package.path|package.preload|package.searchers|package.searchpath|string|string.byte|string.char|string.dump|string.find|string.format|string.gmatch|string.gsub|string.len|string.lower|string.match|string.pack|string.packsize|string.rep|string.reverse|string.sub|string.unpack|string.upper|table|table.concat|table.insert|table.move|table.pack|table.remove|table.sort|table.unpack|utf8|utf8.char|utf8.charpattern|utf8.codepoint|utf8.codes|utf8.len|utf8.offset)\\b",name:"support.function.library.fennel"},{match:"\\b(_G|_VERSION)\\b",name:"constant.language.fennel"}]},methods:{patterns:[{match:"\\w+\\:\\w+",name:"entity.name.function.method.fennel"}]},sexp:{begin:"\\(",beginCaptures:{0:{name:"punctuation.paren.open.fennel"}},end:"\\)",endCaptures:{0:{name:"punctuation.paren.close.fennel"}},name:"sexp.fennel",patterns:[{include:"#expression"}]},special:{patterns:[{match:"\\#|\\%|\\+|\\*|[?][.]|(\\.)?\\.|(\\/)?\\/|:|<=?|=|>=?|\\^",name:"keyword.special.fennel"},{match:"(\\-\\>(\\>)?)",name:"keyword.special.fennel"},{match:"\\-\\?\\>(\\>)?",name:"keyword.special.fennel"},{match:"-",name:"keyword.special.fennel"},{match:"not=",name:"keyword.special.fennel"},{match:"set-forcibly!",name:"keyword.special.fennel"},{match:"\\b(and|band|bnot|bor|bxor|collect|comment|do|doc|doto|each|eval-compiler|for|global|hashfn|icollect|if|import-macros|include|lambda|length|let|local|lshift|lua|macro|macrodebug|macros|match|not=?|or|partial|pick-args|pick-values|quote|require-macros|rshift|set|tset|values|var|when|while|with-open)\\b",name:"keyword.special.fennel"},{match:"\\b(fn)\\b",name:"keyword.control.fennel"},{match:"~=",name:"keyword.special.fennel"},{match:"λ",name:"keyword.special.fennel"}]},strings:{begin:'"',end:'"',name:"string.quoted.double.fennel",patterns:[{match:"\\\\.",name:"constant.character.escape.fennel"}]},symbols:{patterns:[{match:"\\w+(?:\\.\\w+)+",name:"entity.name.function.symbol.fennel"},{match:"\\w+",name:"variable.other.fennel"}]},table:{begin:"\\{",beginCaptures:{0:{name:"punctuation.table.bracket.open.fennel"}},end:"\\}",endCaptures:{0:{name:"punctuation.table.bracket.close.fennel"}},name:"table.fennel",patterns:[{include:"#expression"}]},vector:{begin:"\\[",beginCaptures:{0:{name:"punctuation.vector.bracket.open.fennel"}},end:"\\]",endCaptures:{0:{name:"punctuation.vector.bracket.close.fennel"}},name:"meta.vector.fennel",patterns:[{include:"#expression"}]}},o="source.fnl",l={displayName:e,name:n,patterns:t,repository:a,scopeName:o};export{l as default,e as displayName,n as name,t as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/fish.mjs b/lib/dist/grammar/fish.mjs new file mode 100644 index 0000000..5ffab44 --- /dev/null +++ b/lib/dist/grammar/fish.mjs @@ -0,0 +1 @@ +var e="Fish",t=["fish"],i="^#!.*\\bfish\\b",a="^\\s*(function|while|if|switch|for|begin)\\s.*$",o="^\\s*end\\s*$",s="fish",n=[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.fish"}},comment:"Double quoted string",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.double.fish",patterns:[{include:"#variable"},{comment:"https://fishshell.com/docs/current/#quotes",match:'\\\\(\\"|\\$|$|\\\\)',name:"constant.character.escape.fish"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fish"}},comment:"Single quoted string",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.single.fish",patterns:[{comment:"https://fishshell.com/docs/current/#quotes",match:"\\\\('|`|\\\\)",name:"constant.character.escape.fish"}]},{captures:{1:{name:"punctuation.definition.comment.fish"}},comment:"line comment",match:"(?|\\^|>>|\\^\\^)(&[012\\-])?|\n[012](<|>|>>)(&[012\\-])?\n)",name:"keyword.operator.redirect.fish"},{match:"&",name:"keyword.operator.background.fish"},{match:"\\*\\*|\\*|\\?",name:"keyword.operator.glob.fish"},{captures:{1:{name:"source.option.fish"}},comment:"command short/long options",match:"\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b"},{include:"#variable"},{include:"#escape"}],c={escape:{patterns:[{comment:"single character character escape sequences",match:"\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;\"']",name:"constant.character.escape.single.fish"},{comment:"escapes the ascii character with the specified value (hexadecimal)",match:"\\\\x[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-ascii.fish"},{comment:"escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.",match:"\\\\X[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-byte.fish"},{comment:"escapes the ascii character with the specified value (octal)",match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.fish"},{comment:"escapes the 16-bit unicode character with the specified value (hexadecimal)",match:"\\\\u[0-9a-fA-F]{1,4}",name:"constant.character.escape.unicode-16-bit.fish"},{comment:"escapes the 32-bit unicode character with the specified value (hexadecimal)",match:"\\\\U[0-9a-fA-F]{1,8}",name:"constant.character.escape.unicode-32-bit.fish"},{comment:"escapes the control sequence generated by pressing the control key and the specified letter",match:"\\\\c[a-zA-Z]",name:"constant.character.escape.control.fish"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.fish"}},comment:"Built-in variables visible by pressing $ TAB TAB in a new shell",match:"(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b",name:"variable.language.fish"},{captures:{1:{name:"punctuation.definition.variable.fish"}},match:"(\\$)[a-zA-Z_][a-zA-Z0-9_]*",name:"variable.other.normal.fish"}]}},r="source.fish",h={displayName:e,fileTypes:t,firstLineMatch:i,foldingStartMarker:a,foldingStopMarker:o,name:s,patterns:n,repository:c,scopeName:r};export{h as default,e as displayName,t as fileTypes,i as firstLineMatch,a as foldingStartMarker,o as foldingStopMarker,s as name,n as patterns,c as repository,r as scopeName}; diff --git a/lib/dist/grammar/fluent.mjs b/lib/dist/grammar/fluent.mjs new file mode 100644 index 0000000..f34203b --- /dev/null +++ b/lib/dist/grammar/fluent.mjs @@ -0,0 +1 @@ +var e="Fluent",n="fluent",a=[{include:"#comment"},{include:"#message"},{include:"#wrong-line"}],t={attributes:{begin:"\\s*(\\.[a-zA-Z][a-zA-Z0-9_-]*\\s*=\\s*)",beginCaptures:{1:{name:"support.class.attribute-begin.fluent"}},end:"^(?=\\s*[^\\.])",patterns:[{include:"#placeable"}]},comment:{match:"^##?#?\\s.*$",name:"comment.fluent"},"function-comma":{match:",",name:"support.function.function-comma.fluent"},"function-named-argument":{begin:'([a-zA-Z0-9]+:)\\s*(["a-zA-Z0-9]+)',beginCaptures:{1:{name:"support.function.named-argument.name.fluent"},2:{name:"variable.other.named-argument.value.fluent"}},end:"(?=\\)|,|\\s)",name:"variable.other.named-argument.fluent"},"function-positional-argument":{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.function.positional-argument.fluent"},"invalid-placeable-string-missing-end-quote":{match:'"[^"]+$',name:"invalid.illegal.wrong-placeable-missing-end-quote.fluent"},"invalid-placeable-wrong-placeable-missing-end":{match:"([^}A-Z]*$|[^-][^>]$)\\b",name:"invalid.illegal.wrong-placeable-missing-end.fluent"},message:{begin:"^(-?[a-zA-Z][a-zA-Z0-9_-]*\\s*=\\s*)",beginCaptures:{1:{name:"support.class.message-identifier.fluent"}},contentName:"string.fluent",end:"^(?=\\S)",patterns:[{include:"#attributes"},{include:"#placeable"}]},placeable:{begin:"({)",beginCaptures:{1:{name:"keyword.placeable.begin.fluent"}},contentName:"variable.other.placeable.content.fluent",end:"(})",endCaptures:{1:{name:"keyword.placeable.end.fluent"}},patterns:[{include:"#placeable-string"},{include:"#placeable-function"},{include:"#placeable-reference-or-number"},{include:"#selector"},{include:"#invalid-placeable-wrong-placeable-missing-end"},{include:"#invalid-placeable-string-missing-end-quote"},{include:"#invalid-placeable-wrong-function-name"}]},"placeable-function":{begin:"([A-Z][A-Z0-9_-]*\\()",beginCaptures:{1:{name:"support.function.placeable-function.call.begin.fluent"}},contentName:"string.placeable-function.fluent",end:"(\\))",endCaptures:{1:{name:"support.function.placeable-function.call.end.fluent"}},patterns:[{include:"#function-comma"},{include:"#function-positional-argument"},{include:"#function-named-argument"}]},"placeable-reference-or-number":{match:"((-|\\$)[a-zA-Z0-9_-]+|[a-zA-Z][a-zA-Z0-9_-]*|[0-9]+)",name:"variable.other.placeable.reference-or-number.fluent"},"placeable-string":{begin:'(")(?=[^\\n]*")',beginCaptures:{1:{name:"variable.other.placeable-string-begin.fluent"}},contentName:"string.placeable-string-content.fluent",end:'(")',endCaptures:{1:{name:"variable.other.placeable-string-end.fluent"}}},selector:{begin:"(->)",beginCaptures:{1:{name:"support.function.selector.begin.fluent"}},contentName:"string.selector.content.fluent",end:"^(?=\\s*})",patterns:[{include:"#selector-item"}]},"selector-item":{begin:"(\\s*\\*?\\[)([a-zA-Z0-9_-]+)(\\]\\s*)",beginCaptures:{1:{name:"support.function.selector-item.begin.fluent"},2:{name:"variable.other.selector-item.begin.fluent"},3:{name:"support.function.selector-item.begin.fluent"}},contentName:"string.selector-item.content.fluent",end:"^(?=(\\s*})|(\\s*\\[)|(\\s*\\*))",patterns:[{include:"#placeable"}]},"wrong-line":{match:".*",name:"invalid.illegal.wrong-line.fluent"}},l="source.ftl",i={displayName:e,name:n,patterns:a,repository:t,scopeName:l};export{i as default,e as displayName,n as name,a as patterns,t as repository,l as scopeName}; diff --git a/lib/dist/grammar/fortran-fixed-form.mjs b/lib/dist/grammar/fortran-fixed-form.mjs new file mode 100644 index 0000000..16513c6 --- /dev/null +++ b/lib/dist/grammar/fortran-fixed-form.mjs @@ -0,0 +1 @@ +var e="Fortran (Fixed Form)",n=["f","F","f77","F77","for","FOR"],r={"source.fortran.fixed - ( string | comment )":{patterns:[{include:"#line-header"},{include:"#line-end-comment"}]}},o="fortran-fixed-form",t=[{include:"#comments"},{include:"#line-header"},{include:"source.fortran.free"}],a={comments:{patterns:[{begin:"^[cC\\*]",end:"\\n",name:"comment.line.fortran"},{begin:"^ *!",end:"\\n",name:"comment.line.fortran"}]},"line-end-comment":{begin:"(?<=^.{72})(?!\\n)",end:"(?=\\n)",name:"comment.line-end.fortran"},"line-header":{captures:{1:{name:"constant.numeric.fortran"},2:{name:"keyword.line-continuation-operator.fortran"},3:{name:"source.fortran.free"},4:{name:"invalid.error.fortran"}},match:"^(?!\\s*[!#])(?:([ \\d]{5} )|( {5}.)|(\\t)|(.{1,5}))"}},i="source.fortran.fixed",m={displayName:e,fileTypes:n,injections:r,name:o,patterns:t,repository:a,scopeName:i};export{m as default,e as displayName,n as fileTypes,r as injections,o as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/fortran-free-form.mjs b/lib/dist/grammar/fortran-free-form.mjs new file mode 100644 index 0000000..77b5adf --- /dev/null +++ b/lib/dist/grammar/fortran-free-form.mjs @@ -0,0 +1 @@ +var e="Fortran (Free Form)",n=["f90","F90","f95","F95","f03","F03","f08","F08","f18","F18","fpp","FPP",".pf",".PF"],t="(?i)-[*]- mode: fortran free -[*]-",r={"source.fortran.free - ( string | comment | meta.preprocessor )":{patterns:[{include:"#line-continuation-operator"},{include:"#preprocessor"}]},"string.quoted.double.fortran":{patterns:[{include:"#string-line-continuation-operator"}]},"string.quoted.single.fortran":{patterns:[{include:"#string-line-continuation-operator"}]}},a="fortran-free-form",o=[{include:"#preprocessor"},{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#include-statement"},{include:"#import-statement"},{include:"#block-data-definition"},{include:"#function-definition"},{include:"#module-definition"},{include:"#program-definition"},{include:"#submodule-definition"},{include:"#subroutine-definition"},{include:"#procedure-definition"},{include:"#derived-type-definition"},{include:"#enum-block-construct"},{include:"#interface-block-constructs"},{include:"#procedure-specification-statement"},{include:"#type-specification-statements"},{include:"#specification-statements"},{include:"#control-constructs"},{include:"#control-statements"},{include:"#execution-statements"},{include:"#intrinsic-functions"},{include:"#variable"}],i={"IO-item-list":{begin:"(?i)(?=\\s*[a-z0-9\"'])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[\\);!\\n])",patterns:[{include:"#constants"},{include:"#operators"},{include:"#intrinsic-functions"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#brackets"},{include:"#assignment-keyword"},{include:"#operator-keyword"},{include:"#variable"}]},"IO-keywords":{begin:"(?i)\\G\\s*\\b(?:(read)|(write))\\s*(\\()",beginCaptures:{1:{name:"keyword.control.generic-spec.read.fortran"},2:{name:"keyword.control.generic-spec.write.fortran"},3:{name:"punctuation.parentheses.left.fortran"}},comment:"IO generic specification.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{captures:{1:{name:"keyword.control.generic-spec.formatted.fortran"},2:{name:"keyword.control.generic-spec.unformatted.fortran"}},match:"(?i)\\G\\s*\\b(?:(formatted)|(unformatted))\\b"},{include:"#invalid-word"}]},"IO-statements":{patterns:[{begin:"(?ix)\\b(?:(backspace)|(close)|(endfile)|(format)|(inquire)|(open)|(read)|(rewind)|(write))\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.backspace.fortran"},2:{name:"keyword.control.close.fortran"},3:{name:"keyword.control.endfile.fortran"},4:{name:"keyword.control.format.fortran"},5:{name:"keyword.control.inquire.fortran"},6:{name:"keyword.control.open.fortran"},7:{name:"keyword.control.read.fortran"},8:{name:"keyword.control.rewind.fortran"},9:{name:"keyword.control.write.fortran"},10:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},name:"meta.statement.IO.fortran",patterns:[{include:"#parentheses-dummy-variables"},{include:"#IO-item-list"}]},{captures:{1:{name:"keyword.control.backspace.fortran"},2:{name:"keyword.control.endfile.fortran"},3:{name:"keyword.control.format.fortran"},4:{name:"keyword.control.print.fortran"},5:{name:"keyword.control.read.fortran"},6:{name:"keyword.control.rewind.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\b(?:(backspace)|(endfile)|(format)|(print)|(read)|(rewind))\\b"},{begin:"(?i)\\b(?:(flush)|(wait))\\s*(?=\\()",beginCaptures:{1:{name:"keyword.control.flush.fortran"},2:{name:"keyword.control.wait.fortran"},3:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2003 standard.",end:"(?)(\\=)(?!\\=|\\>)",name:"keyword.operator.assignment.fortran"},"associate-construct":{begin:"(?i)\\b(associate)\\b(?=\\s*\\()",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2003 standard.",contentName:"meta.block.associate.fortran",end:"(?i)\\b(end\\s*associate)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"asynchronous-attribute":{captures:{1:{name:"storage.modifier.asynchronous.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\G\\s*\\b(asynchronous)\\b"},"attribute-specification-statement":{begin:"(?ix)(?=\\b(?:allocatable|asynchronous|contiguous |external|intrinsic|optional|parameter|pointer|private|protected|public|save|target|value|volatile)\\b |(bind|dimension|intent)\\s*\\( |(codimension)\\s*\\[)",end:"(?=[;!\\n])",name:"meta.statement.attribute-specification.fortran",patterns:[{include:"#access-attribute"},{include:"#allocatable-attribute"},{include:"#asynchronous-attribute"},{include:"#codimension-attribute"},{include:"#contiguous-attribute"},{include:"#dimension-attribute"},{include:"#external-attribute"},{include:"#intent-attribute"},{include:"#intrinsic-attribute"},{include:"#language-binding-attribute"},{include:"#optional-attribute"},{include:"#parameter-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#target-attribute"},{include:"#value-attribute"},{include:"#volatile-attribute"},{begin:"(?=\\s*::)",comment:"Attribute list.",contentName:"meta.attribute-list.normal.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{include:"#invalid-word"}]},{include:"#name-list"}]},"block-construct":{begin:"(?i)\\b(block)\\b(?!\\s*\\bdata\\b)",beginCaptures:{1:{name:"keyword.control.associate.fortran"}},comment:"Introduced in the Fortran 2008 standard.",contentName:"meta.block.block.fortran",end:"(?i)\\b(end\\s*block)\\b",endCaptures:{1:{name:"keyword.control.endassociate.fortran"}},patterns:[{include:"$base"}]},"block-data-definition":{begin:"(?i)\\b(block\\s*data)\\b(?:\\s+([a-z]\\w*)\\b)?",beginCaptures:{1:{name:"keyword.control.block-data.fortran"},2:{name:"entity.name.block-data.fortran"}},end:"(?ix)\\b(?:(end\\s*block\\s*data)(?:\\s+(\\2))?|(end))\\b (?:\\s*(\\S((?!\\n).)*))?",endCaptures:{1:{name:"keyword.control.end-block-data.fortran"},2:{name:"entity.name.block-data.fortran"},3:{name:"keyword.control.end-block-data.fortran"},4:{name:"invalid.error.block-data-definition.fortran"}},name:"meta.block-data.fortran",patterns:[{include:"$base"}]},brackets:{begin:"\\s*(\\[)",beginCaptures:{1:{name:"punctuation.bracket.left.fortran"}},end:"(\\])",endCaptures:{1:{name:"punctuation.bracket.left.fortran"}},patterns:[{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#array-constructor"},{include:"#parentheses"},{include:"#intrinsic-functions"},{include:"#variable"}]},"call-statement":{patterns:[{begin:"(?i)\\s*\\b(call)\\b",beginCaptures:{1:{name:"keyword.control.call.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.call.fortran",patterns:[{begin:"(?ix)\\G\\s*([a-z]\\w*)(%)([a-z]\\w*)\\b\\s*(?=\\()",beginCaptures:{1:{name:"variable.other.fortran"},2:{name:"keyword.accessor.fortran"},3:{name:"entity.name.function.subroutine.fortran"}},comment:"type-bound subroutines",end:"(?\\=|\\>|\\<|\\<\\=|\\-|\\+|\\/|\\/\\/|\\*\\*|\\*) |(\\S.*) )\\s*(\\))",beginCaptures:{1:{name:"keyword.other.operator.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"keyword.operator.fortran"},4:{name:"invalid.error.generic-interface-block-op.fortran"},5:{name:"punctuation.parentheses.right.fortran"}},comment:"Operator generic interface.",end:"(?ix)\\b(end\\s*interface)\\b (?:\\s*\\b(\\1)\\b\\s*(\\()\\s*(?:(\\3)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.operator.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.operator.fortran"},5:{name:"invalid.error.generic-interface-block-op-end.fortran"},6:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?ix)\\G\\s*\\b(?:(read)|(write))\\s* (\\()\\s*(?:(formatted)|(unformatted)|(\\S.*))\\s*(\\))",beginCaptures:{1:{name:"keyword.other.read.fortran"},2:{name:"keyword.other.write.fortran"},3:{name:"punctuation.parentheses.left.fortran"},4:{name:"keyword.other.formatted.fortran"},5:{name:"keyword.other.unformatted.fortran"},6:{name:"invalid.error.generic-interface-block.fortran"},7:{name:"punctuation.parentheses.right.fortran"}},comment:"Read/Write generic interface.",end:"(?ix)\\b(end\\s*interface)\\b(?:\\s*\\b(?:(\\2)|(\\3))\\b\\s* (\\()\\s*(?:(\\4)|(\\5)|(\\S.*))\\s*(\\)))?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"keyword.other.read.fortran"},3:{name:"keyword.other.write.fortran"},4:{name:"punctuation.parentheses.left.fortran"},5:{name:"keyword.other.formatted.fortran"},6:{name:"keyword.other.unformatted.fortran"},7:{name:"invalid.error.generic-interface-block-end.fortran"},8:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]},{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.fortran"}},comment:"Generic interface.",end:"(?i)\\b(end\\s*interface)\\b(?:\\s*\\b(\\1)\\b)?",endCaptures:{1:{name:"keyword.control.endinterface.fortran"},2:{name:"entity.name.function.fortran"}},patterns:[{include:"#interface-procedure-statement"},{include:"$base"}]}]},"goto-statement":{begin:"(?i)\\s*\\b(go\\s*to)\\b",beginCaptures:{1:{name:"keyword.control.goto.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.goto.fortran",patterns:[{include:"$base"}]},"if-construct":{patterns:[{begin:"(?i)\\b(if)\\b",beginCaptures:{1:{name:"keyword.control.if.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#logical-control-expression"},{begin:"(?i)\\s*\\b(then)\\b",beginCaptures:{1:{name:"keyword.control.then.fortran"}},contentName:"meta.block.if.fortran",end:"(?i)\\b(end\\s*if)\\b",endCaptures:{1:{name:"keyword.control.endif.fortran"}},patterns:[{begin:"(?i)\\b(else\\s*if)\\b",beginCaptures:{1:{name:"keyword.control.elseif.fortran"}},comment:"else if statement",end:"(?=[;!\\n])",patterns:[{include:"#parentheses"},{captures:{1:{name:"keyword.control.then.fortran"},2:{name:"meta.label.elseif.fortran"}},comment:"capture the label if present",match:"(?i)\\b(then)\\b(\\s*[a-z]\\w*)?"},{include:"#invalid-word"}]},{begin:"(?i)\\b(else)\\b",beginCaptures:{1:{name:"keyword.control.else.fortran"}},comment:"else block",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{begin:"(?!(\\s*(;|!|\\n)))",comment:"rest of else line",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"meta.label.else.fortran"},2:{name:"invalid.error.label.else.fortran"}},comment:"capture the label if present",match:"\\s*([a-z]\\w*)?\\s*\\b(\\w*)\\b"},{include:"#invalid-word"}]},{begin:"(?i)(?!\\b(end\\s*if)\\b)",end:"(?i)(?=\\b(end\\s*if)\\b)",patterns:[{include:"$base"}]}]},{include:"$base"}]},{begin:"(?i)(?=\\s*[a-z])",end:"(?=[;!\\n])",name:"meta.statement.control.if.fortran",patterns:[{include:"$base"}]}]}]},"image-control-statement":{patterns:[{include:"#sync-all-statement"},{include:"#sync-statement"},{include:"#event-statement"},{include:"#form-team-statement"},{include:"#fail-image-statement"}]},"implicit-statement":{begin:"(?i)\\b(implicit)\\b",beginCaptures:{1:{name:"keyword.other.implicit.fortran"}},end:"(?=[;!\\n])",name:"meta.statement.implicit.fortran",patterns:[{captures:{1:{name:"keyword.other.none.fortran"}},match:"(?i)\\s*\\b(none)\\b"},{include:"$base"}]},"import-statement":{begin:"(?i)\\b(import)\\b",beginCaptures:{1:{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.include.fortran",patterns:[{begin:"(?i)\\G\\s*(?:(::)|(?=[a-z]))",beginCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#name-list"}]},{begin:"\\G\\s*(,)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.other.all.fortran"}},match:"(?i)\\G\\s*\\b(all)\\b"},{captures:{1:{name:"keyword.other.none.fortran"}},match:"(?i)\\G\\s*\\b(none)\\b"},{begin:"(?i)\\G\\s*\\b(only)\\s*(:)",beginCaptures:{1:{name:"keyword.other.only.fortran"},2:{name:"keyword.other.colon.fortran"}},end:"(?=[;!\\n])",patterns:[{include:"#name-list"}]},{include:"#invalid-word"}]}]},"include-statement":{begin:"(?i)\\b(include)\\b",beginCaptures:{1:{name:"keyword.control.include.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.include.fortran",patterns:[{include:"#string-constant"},{include:"#invalid-character"}]},"intent-attribute":{begin:"(?i)\\s*\\b(intent)\\s*(\\()",beginCaptures:{1:{name:"storage.modifier.intent.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(\\))|(?=[;!\\n])",endCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},patterns:[{captures:{1:{name:"storage.modifier.intent.in-out.fortran"},2:{name:"storage.modifier.intent.in.fortran"},3:{name:"storage.modifier.intent.out.fortran"}},match:"(?i)\\b(?:(in\\s*out)|(in)|(out))\\b"},{include:"#invalid-word"}]},"interface-block-constructs":{patterns:[{include:"#abstract-interface-block-construct"},{include:"#explicit-interface-block-construct"},{include:"#generic-interface-block-construct"}]},"interface-procedure-statement":{begin:"(?i)(?=[^'\";!\\n]*\\bprocedure\\b)",comment:"Introduced in the Fortran 1990 standard.",end:"(?=[;!\\n])",name:"meta.statement.procedure.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bprocedure\\b))",comment:"Attribute list.",end:"(?i)(?=\\bprocedure\\b)",name:"meta.attribute-list.interface.fortran",patterns:[{include:"#module-attribute"},{include:"#invalid-word"}]},{begin:"(?i)\\s*\\b(procedure)\\b",beginCaptures:{1:{name:"keyword.other.procedure.fortran"}},comment:"Procedure statement.",end:"(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.operator.double-colon.fortran"}},match:"\\G\\s*(::)"},{include:"#procedure-name-list"}]}]},"intrinsic-attribute":{captures:{1:{name:"storage.modifier.intrinsic.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(intrinsic)\\b"},"intrinsic-functions":{patterns:[{begin:"(?ix)\\b(acosh|asinh|atanh|bge|bgt|ble|blt|dshiftl|dshiftr| findloc|hypot|iall|iany|image_index|iparity|is_contiguous|lcobound| leadz|mask[lr]|merge_bits|norm2|num_images|parity|popcnt|poppar| shift[alr]|storage_size|this_image|trailz|ucobound)\\s*(?=\\()",beginCaptures:{1:{name:"support.function.intrinsic.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Intrinsic functions introduced in the Fortran 2008 standard.",end:"(?\\=|(?|\\<\\=|\\<)",name:"keyword.logical.fortran.modern"}]},"logical-type":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{begin:"(?i)\\b(logical)\\s*(?=\\()",beginCaptures:{1:{name:"storage.type.logical.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(?)",name:"keyword.other.point.fortran"},preprocessor:{begin:"^\\s*(#:?)",beginCaptures:{1:{name:"keyword.control.preprocessor.indicator.fortran"}},end:"\\n",name:"meta.preprocessor",patterns:[{include:"#preprocessor-if-construct"},{include:"#preprocessor-statements"}]},"preprocessor-arithmetic-operators":{captures:{1:{name:"keyword.operator.subtraction.fortran"},2:{name:"keyword.operator.addition.fortran"},3:{name:"keyword.operator.division.fortran"},4:{name:"keyword.operator.multiplication.fortran"}},comment:"division regex is different than in main fortran",match:"(\\-)|(\\+)|(\\/)|(\\*)"},"preprocessor-assignment-operator":{comment:"assignments with = are not allowed",match:"(?",endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.other.lt-gt.include.preprocessor.fortran"},{include:"#line-continuation-operator"}]},"preprocessor-line-continuation-operator":{begin:"\\s*(\\\\)",beginCaptures:{1:{name:"constant.character.escape.line-continuation.preprocessor.fortran"}},end:"(?i)^"},"preprocessor-logical-operators":{captures:{1:{name:"keyword.operator.logical.preprocessor.and.fortran"},2:{name:"keyword.operator.logical.preprocessor.equals.fortran"},3:{name:"keyword.operator.logical.preprocessor.not_equals.fortran"},4:{name:"keyword.operator.logical.preprocessor.or.fortran"},5:{name:"keyword.operator.logical.preprocessor.less_eq.fortran"},6:{name:"keyword.operator.logical.preprocessor.more_eq.fortran"},7:{name:"keyword.operator.logical.preprocessor.less.fortran"},8:{name:"keyword.operator.logical.preprocessor.more.fortran"},9:{name:"keyword.operator.logical.preprocessor.complementary.fortran"},10:{name:"keyword.operator.logical.preprocessor.xor.fortran"},11:{name:"keyword.operator.logical.preprocessor.bitand.fortran"},12:{name:"keyword.operator.logical.preprocessor.not.fortran"},13:{name:"keyword.operator.logical.preprocessor.bitor.fortran"}},comment:"and:&&, bitand:&, or:||, bitor:|, not eq:!=, not:!, xor:^, compl:~",match:"(&&)|(==)|(\\!=)|(\\|\\|)|(\\<\\=)|(\\>=)|(\\<)|(\\>)|(~)|(\\^)|(&)|(\\!)|(\\|)",name:"keyword.operator.logical.preprocessor.fortran"},"preprocessor-operators":{patterns:[{include:"#preprocessor-line-continuation-operator"},{include:"#preprocessor-logical-operators"},{include:"#preprocessor-arithmetic-operators"}]},"preprocessor-pragma-statement":{begin:"(?i)\\G\\s*\\b(pragma)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.pragma.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.pragma.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-string-constant"}]},"preprocessor-statements":{patterns:[{include:"#preprocessor-define-statement"},{include:"#preprocessor-error-statement"},{include:"#preprocessor-include-statement"},{include:"#preprocessor-preprocessor-pragma-statement"},{include:"#preprocessor-undefine-statement"}]},"preprocessor-string-constant":{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Double quote string",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.double.include.preprocessor.fortran"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.preprocessor.fortran"}},comment:"Single quote string",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.preprocessor.fortran"}},name:"string.quoted.single.include.preprocessor.fortran"}]},"preprocessor-undefine-statement":{begin:"(?i)\\G\\s*\\b(undef)\\b",beginCaptures:{1:{name:"keyword.control.preprocessor.undef.fortran"}},end:"(?=\\n)",name:"meta.preprocessor.undef.fortran",patterns:[{include:"#preprocessor-comments"},{include:"#preprocessor-line-continuation-operator"}]},"private-attribute":{captures:{1:{name:"storage.modifier.private.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(private)\\b"},"procedure-call-dummy-variable":{match:"(?i)\\s*([a-z]\\w*)(?=\\s*\\=)(?!\\s*\\=\\=)",name:"variable.parameter.dummy-variable.fortran.modern"},"procedure-definition":{begin:"(?i)(?=[^'\";!\\n]*\\bmodule\\s+procedure\\b)",comment:"Procedure program unit. Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.procedure.fortran",patterns:[{begin:"(?i)\\s*\\b(module\\s+procedure)\\b",beginCaptures:{1:{name:"keyword.other.procedure.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure body.",end:"(?ix)\\s*\\b(?:(end\\s*procedure)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endprocedure.fortran"},2:{name:"entity.name.function.procedure.fortran"},3:{name:"keyword.other.endprocedure.fortran"},4:{name:"invalid.error.procedure-definition.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in procedure construct - should be empty.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#invalid-character"}]},{begin:"(?i)(?!\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\s*(?:contains\\b|end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.specification.procedure.fortran",patterns:[{include:"$self"}]},{begin:"(?i)\\s*(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*procedure\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$self"}]}]}]}]},"procedure-name":{captures:{1:{name:"entity.name.function.procedure.fortran"}},comment:"Procedure name.",match:"(?i)\\s*\\b([a-z]\\w*)\\b"},"procedure-name-list":{begin:"(?i)(?=\\s*[a-z])",comment:"Name list.",contentName:"meta.name-list.fortran",end:"(?=[;!\\n])",patterns:[{begin:"(?!\\s*\\n)",end:"(,)|(?=[!;\\n])",endCaptures:{1:{name:"punctuation.comma.fortran"}},patterns:[{include:"#procedure-name"},{include:"#pointer-operators"}]}]},"procedure-specification-statement":{begin:"(?i)(?=\\b(?:procedure)\\b)",comment:"Introduced in the Fortran 2003 standard.",end:"(?=[;!\\n])",name:"meta.specification.procedure.fortran",patterns:[{include:"#procedure-type"},{begin:"(?=\\s*(,|::|\\())",comment:"Attribute list.",contentName:"meta.attribute-list.procedure.fortran",end:"(::)|(?=[;!\\n])",endCaptures:{1:{name:"keyword.operator.double-colon.fortran"}},patterns:[{begin:"(,)|^|(?<=&)",beginCaptures:{1:{name:"punctuation.comma.fortran"}},end:"(?=::|[,&;!\\n])",patterns:[{include:"#access-attribute"},{include:"#intent-attribute"},{include:"#optional-attribute"},{include:"#pointer-attribute"},{include:"#protected-attribute"},{include:"#save-attribute"},{include:"#invalid-word"}]}]},{include:"#procedure-name-list"}]},"procedure-type":{comment:"Introduced in the Fortran ???? standard.",patterns:[{begin:"(?i)\\b(procedure)\\s*(\\()",beginCaptures:{1:{name:"storage.type.procedure.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},contentName:"meta.type-spec.fortran",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#types"},{include:"#procedure-name"}]},{captures:{1:{name:"storage.type.procedure.fortran"}},match:"(?i)\\b(procedure)\\b"}]},"program-definition":{begin:"(?i)(?=\\b(program)\\b)",comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.program.fortran",patterns:[{captures:{1:{name:"keyword.control.program.fortran"}},match:"(?i)\\G\\s*\\b(program)\\b"},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.program.fortran"}},comment:"Program body.",end:"(?ix)\\b(?:(end\\s*program)(?:\\s+([a-z_]\\w*))?|(end))\\b\\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.control.endprogram.fortran"},2:{name:"entity.name.program.fortran"},3:{name:"keyword.control.endprogram.fortran"},4:{name:"invalid.error.program-definition.fortran"}},patterns:[{begin:"\\G",comment:"Program specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.specification.program.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Program contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*program\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"protected-attribute":{captures:{1:{name:"storage.modifier.protected.fortran"}},comment:"Introduced in the Fortran 2003 standard.",match:"(?i)\\s*\\b(protected)\\b"},"public-attribute":{captures:{1:{name:"storage.modifier.public.fortran"}},comment:"Introduced in the Fortran 1990 standard.",match:"(?i)\\s*\\b(public)\\b"},"pure-attribute":{captures:{1:{name:"storage.modifier.impure.fortran"},2:{name:"storage.modifier.pure.fortran"}},comment:"Introduced in the Fortran 1995 standard.",match:"(?i)\\s*\\b(?:(impure)|(pure))\\b"},"recursive-attribute":{captures:{1:{name:"storage.modifier.non_recursive.fortran"},2:{name:"storage.modifier.recursive.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(?:(non_recursive)|(recursive))\\b"},"result-statement":{begin:"(?i)\\s*\\b(result)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.result.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 1990 standard.",end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.right.fortran"}},patterns:[{include:"#dummy-variable"}]},"return-statement":{begin:"(?i)\\s*\\b(return)\\b",beginCaptures:{1:{name:"keyword.control.return.fortran"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.return.fortran",patterns:[{include:"#invalid-character"}]},"save-attribute":{captures:{1:{name:"storage.modifier.save.fortran"}},comment:"Introduced in the Fortran 1977 standard.",match:"(?i)\\s*\\b(save)\\b"},"select-case-construct":{begin:"(?i)\\b(select\\s*case)\\b",beginCaptures:{1:{name:"keyword.control.selectcase.fortran"}},comment:"Select case construct. Introduced in the Fortran 1990 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.case.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(case)\\b",beginCaptures:{1:{name:"keyword.control.case.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-rank-construct":{begin:"(?i)\\b(select\\s*rank)\\b",beginCaptures:{1:{name:"keyword.control.selectrank.fortran"}},comment:"Select rank construct. Introduced in the Fortran 2008 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.rank.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(rank)\\b",beginCaptures:{1:{name:"keyword.control.rank.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"select-type-construct":{begin:"(?i)\\b(select\\s*type)\\b",beginCaptures:{1:{name:"keyword.control.selecttype.fortran"}},comment:"Select type construct. Introduced in the Fortran 2003 standard.",end:"(?i)\\b(end\\s*select)\\b",endCaptures:{1:{name:"keyword.control.endselect.fortran"}},name:"meta.block.select.type.fortran",patterns:[{include:"#parentheses"},{begin:"(?i)\\b(?:(class)|(type))\\b",beginCaptures:{1:{name:"keyword.control.class.fortran"},2:{name:"keyword.control.type.fortran"}},end:"(?i)(?=[;!\\n])",patterns:[{captures:{1:{name:"keyword.control.default.fortran"}},match:"(?i)\\G\\s*\\b(default)\\b"},{captures:{1:{name:"keyword.control.is.fortran"}},match:"(?i)\\G\\s*\\b(is)\\b"},{include:"#parentheses"},{include:"#invalid-word"}]},{include:"$base"}]},"sequence-attribute":{captures:{1:{name:"storage.modifier.sequence.fortran"}},comment:"Introduced in the Fortran 20?? standard.",match:"(?i)\\s*\\b(sequence)\\b"},"specification-statements":{patterns:[{include:"#attribute-specification-statement"},{include:"#common-statement"},{include:"#data-statement"},{include:"#equivalence-statement"},{include:"#implicit-statement"},{include:"#namelist-statement"},{include:"#use-statement"}]},"stop-statement":{begin:"(?i)\\s*\\b(stop)\\b(?:\\s*\\b([a-z]\\w*)\\b)?",beginCaptures:{1:{name:"keyword.control.stop.fortran"},2:{name:"meta.label.stop.stop"}},comment:"Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.statement.control.stop.fortran",patterns:[{include:"#constants"},{include:"#string-operators"},{include:"#invalid-character"}]},"string-constant":{comment:"Introduced in the Fortran 1977 standard.",patterns:[{applyEndPatternLast:1,begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.single.fortran",patterns:[{match:"''",name:"constant.character.escape.apostrophe.fortran"}]},{applyEndPatternLast:1,begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.fortran"}},comment:"String",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.fortran"}},name:"string.quoted.double.fortran",patterns:[{match:'""',name:"constant.character.escape.quote.fortran"}]}]},"string-line-continuation-operator":{begin:"(&)(?=\\s*\\n)",beginCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},comment:"Operator that allows a line to be continued on the next line.",end:"(?i)^(?:(?=\\s*[^\\s!&])|\\s*(&))",endCaptures:{1:{name:"keyword.operator.line-continuation.fortran"}},patterns:[{include:"#comments"},{match:"\\S.*",name:"invalid.error.string-line-cont.fortran"}]},"string-operators":{comment:"Introduced in the Fortran 19?? standard.",match:"(\\/\\/)",name:"keyword.other.concatination.fortran"},"submodule-definition":{begin:"(?i)(?=\\b(submodule)\\s*\\()",comment:"Introduced in the Fortran 2008 standard.",end:"(?=[;!\\n])",name:"meta.submodule.fortran",patterns:[{begin:"(?i)\\G\\s*\\b(submodule)\\s*(\\()\\s*(\\w+)",beginCaptures:{1:{name:"keyword.other.submodule.fortran"},2:{name:"punctuation.parentheses.left.fortran"},3:{name:"entity.name.class.submodule.fortran"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parentheses.left.fortran"}},patterns:[]},{applyEndPatternLast:1,begin:"(?i)\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.module.submodule.fortran"}},comment:"Submodule body.",end:"(?ix)\\s*\\b(?:(end\\s*submodule)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endsubmodule.fortran"},2:{name:"entity.name.module.submodule.fortran"},3:{name:"keyword.other.endsubmodule.fortran"},4:{name:"invalid.error.submodule.fortran"}},patterns:[{begin:"\\G",comment:"Submodule specification block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.specification.submodule.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Submodule contains block.",end:"(?i)(?=\\s*(?:end\\s*[;!\\n]|end\\s*submodule\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]},"subroutine-definition":{begin:"(?i)(?=([^:'\";!\\n](?!\\bend))*\\bsubroutine\\b)",comment:"Subroutine program unit. Introduced in the Fortran 1977 standard.",end:"(?=[;!\\n])",name:"meta.subroutine.fortran",patterns:[{begin:"(?i)(?=\\G\\s*(?!\\bsubroutine\\b))",comment:"Attribute list.",end:"(?i)(?=\\bsubroutine\\b)",name:"meta.attribute-list.subroutine.fortran",patterns:[{include:"#elemental-attribute"},{include:"#module-attribute"},{include:"#pure-attribute"},{include:"#recursive-attribute"},{include:"#invalid-word"}]},{begin:"(?i)\\s*\\b(subroutine)\\b",beginCaptures:{1:{name:"keyword.other.subroutine.fortran"}},end:"(?=[;!\\n])",patterns:[{begin:"(?i)\\G\\s*\\b([a-z]\\w*)\\b",beginCaptures:{1:{name:"entity.name.function.subroutine.fortran"}},comment:"Subroutine body.",end:"(?ix)\\b(?:(end\\s*subroutine)(?:\\s+([a-z_]\\w*))?|(end))\\b \\s*([^;!\\n]+)?(?=[;!\\n])",endCaptures:{1:{name:"keyword.other.endsubroutine.fortran"},2:{name:"entity.name.function.subroutine.fortran"},3:{name:"keyword.other.endsubroutine.fortran"},4:{name:"invalid.error.subroutine.fortran"}},patterns:[{begin:"\\G(?!\\s*[;!\\n])",comment:"Rest of the first line in subroutine construct.",end:"(?=[;!\\n])",name:"meta.first-line.fortran",patterns:[{include:"#dummy-variable-list"},{include:"#language-binding-attribute"}]},{begin:"(?i)(?!\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",comment:"Specification and execution block.",end:"(?i)(?=\\b(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.specification.subroutine.fortran",patterns:[{begin:"(?i)\\b(contains)\\b",beginCaptures:{1:{name:"keyword.control.contains.fortran"}},comment:"Contains block.",end:"(?i)(?=(?:end\\s*[;!\\n]|end\\s*subroutine\\b))",name:"meta.block.contains.fortran",patterns:[{include:"$base"}]},{include:"$base"}]}]}]}]},"sync-all-statement":{begin:"(?i)\\b(sync all|sync memory)(\\s*(?=\\())?",beginCaptures:{1:{name:"keyword.control.sync-all-memory.fortran"},2:{name:"punctuation.parentheses.left.fortran"}},comment:"Introduced in the Fortran 2018 standard.",end:"(?\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(<)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"keyword.fsharp"},4:{name:"support.function.attribute.fsharp"},5:{name:"keyword.symbol.fsharp"}},end:"\\s*(with)\\b|=|$",endCaptures:{1:{name:"keyword.fsharp"}},name:"abstract.definition.fsharp",patterns:[{include:"#comments"},{include:"#common_declaration"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.type.fsharp"}},match:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}"},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:"(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)"},{include:"#keywords"}]},anonymous_functions:{patterns:[{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"keyword.fsharp"}},end:"(->)",endCaptures:{1:{name:"keyword.symbol.arrow.fsharp"}},name:"function.anonymous",patterns:[{include:"#comments"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"\\s*(?=(->))",endCaptures:{1:{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},anonymous_record_declaration:{begin:"(\\{\\|)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\|\\})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.symbol.fsharp"}},match:"[[:alpha:]0-9'`^_ ]+(:)"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^_ ]+)"},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},attributes:{patterns:[{begin:"\\[\\<",end:"\\>\\]|\\]",name:"support.function.attribute.fsharp",patterns:[{include:"$self"}]}]},cexprs:{patterns:[{captures:{0:{name:"keyword.fsharp"}},match:"\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)",name:"cexpr.fsharp"}]},chars:{patterns:[{captures:{1:{name:"string.quoted.single.fsharp"}},match:"('\\\\?.')",name:"char.fsharp"}]},comments:{patterns:[{beginCaptures:{1:{name:"comment.block.fsharp"}},match:"(\\(\\*{3}.*\\*{3}\\))",name:"comment.literate.command.fsharp"},{begin:"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$",beginCaptures:{1:{name:"comment.block.fsharp"}},endCaptures:{1:{name:"comment.block.fsharp"}},name:"comment.block.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:"^(?!\\s*(\\*)+\\)\\s*$)"},{begin:"(\\(\\*(?!\\)))",beginCaptures:{1:{name:"comment.block.fsharp"}},end:"(\\*+\\))",endCaptures:{1:{name:"comment.block.fsharp"}},name:"comment.block.fsharp",patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",match:"//",name:"fast-capture.comment.line.double-slash.fsharp"},{comments:"Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",match:"\\(\\*\\)",name:"fast-capture.comment.line.mul-operator.fsharp"},{include:"#comments"}]},{captures:{1:{name:"comment.block.fsharp"}},match:"((??@^|/])///(?!/)",name:"comment.line.markdown.fsharp",patterns:[{include:"text.html.markdown"}],while:"(??@^|/])///(?!/)"},{match:"(??@^|/])//(.*$)",name:"comment.line.double-slash.fsharp"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{begin:"(:)\\s*(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",endCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"},3:{name:"keyword.fsharp"}},end:"(?=:)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{captures:{1:{name:"entity.name.type.fsharp"}},comment:"Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",match:"([[:alpha:]0-9'^._]+)"},{match:"(\\(|\\))",name:"keyword.symbol.fsharp"}]},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},match:"(:)\\s*([?[:alpha:]0-9'`^._ ]+)"},{captures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"entity.name.type.fsharp"}},match:"(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*"},{begin:"(\\*)\\s*(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))*)",endCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"entity.name.type.fsharp"}},end:"(?==)|(?=\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(<+(?![[:space:]]*\\)))",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:"((?|\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},endComment:"The group (? when using SRTP synthax",patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:"({)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(})",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},common_declaration:{patterns:[{begin:"\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)",beginCaptures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"entity.name.type.fsharp"},3:{name:"keyword.symbol.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^._ ]+)"},{include:"#keywords"}]},{captures:{1:{name:"keyword.symbol.arrow.fsharp"},2:{name:"entity.name.type.fsharp"}},match:"\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)"},{include:"#anonymous_record_declaration"},{begin:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"keyword.symbol.fsharp"},5:{name:"entity.name.type.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`^._ ]+)"},{include:"#keywords"}]}]},compiler_directives:{patterns:[{captures:{},match:"\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)",name:"keyword.control.directive.fsharp"}]},constants:{patterns:[{match:"\\(\\)",name:"keyword.symbol.fsharp"},{match:"\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))",name:"constant.numeric.float.fsharp"},{match:"\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))",name:"constant.numeric.integer.nativeint.fsharp"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.fsharp"},{match:"\\b(null|void)\\b",name:"constant.other.fsharp"}]},definition:{patterns:[{begin:"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|member inline|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},4:{name:"storage.modifier.fsharp"},5:{name:"variable.fsharp"}},end:"\\s*((with\\b)|(=|\\n+=|(?<=\\=)))",endCaptures:{2:{name:"keyword.fsharp"},3:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"}},end:"\\s*(=)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{4:{name:"variable.fsharp"}},end:"\\s*(=|\\n+=|(?<=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"support.function.attribute.fsharp"},4:{name:"storage.modifier.fsharp"},5:{name:"variable.fsharp"}},end:"\\n$",name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]},{begin:"\\b(new)\\b\\s+(\\()",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"binding.fsharp",patterns:[{include:"#common_binding_definition"}]}]},double_tick:{patterns:[{captures:{1:{name:"string.quoted.single.fsharp"},2:{name:"variable.other.binding.fsharp"},3:{name:"string.quoted.single.fsharp"}},match:"(``)([^`]*)(``)",name:"variable.other.binding.fsharp"}]},du_declaration:{patterns:[{begin:"\\b(of)\\b",beginCaptures:{1:{name:"keyword.fsharp"}},end:"$|(\\|)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"du_declaration.fsharp",patterns:[{include:"#comments"},{captures:{1:{name:"variable.parameter.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"entity.name.type.fsharp"}},match:"([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)"},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},generic_declaration:{patterns:[{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{match:"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",name:"keyword.fsharp"},{match:":",name:"keyword.symbol.fsharp"},{include:"#constants"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{begin:"(<)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(>)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)[[:alpha:]0-9'._]+)"},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{include:"#tuple_signature"}]},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words are allowed",match:"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)"},{captures:{1:{name:"keyword.symbol.fsharp"}},comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",match:"(\\|)"},{include:"#keywords"}]},keywords:{patterns:[{match:"\\b(private|public|internal)\\b",name:"storage.modifier"},{match:"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b",name:"keyword.fsharp"},{match:"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b",name:"keyword.control"},{match:"(\\->|\\<\\-)",name:"keyword.symbol.arrow.fsharp"},{match:"(&&&|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|&|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)",name:"keyword.symbol.fsharp"}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{1:{name:"keyword.symbol.fsharp"},2:{name:"keyword.symbol.fsharp"},3:{name:"keyword.fsharp"}},comments:"SRTP syntax support",end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{include:"#variables"},{include:"#keywords"}]},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{match:"(\\(|\\))",name:"keyword.symbol.fsharp"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.type.fsharp"}},match:"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}"},{include:"#keywords"}]},modules:{patterns:[{begin:"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"keyword.fsharp"},3:{name:"storage.modifier.fsharp"},4:{name:"entity.name.section.fsharp"}},end:"(\\s?=|\\s|$)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},name:"entity.name.section.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"}]},{begin:"\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"entity.name.section.fsharp"}},end:"(\\s|$)",name:"namespace.open.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"},{include:"#comments"}]},{begin:"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",beginCaptures:{1:{name:"keyword.fsharp"},2:{name:"entity.name.type.namespace.fsharp"},3:{name:"keyword.symbol.fsharp"},4:{name:"entity.name.section.fsharp"}},end:"(\\s|$)",name:"namespace.alias.fsharp",patterns:[{captures:{1:{name:"punctuation.separator.namespace-reference.fsharp"},2:{name:"entity.name.section.fsharp"}},match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",name:"entity.name.section.fsharp"}]}]},record_declaration:{patterns:[{begin:"(\\{)",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(?<=\\})",patterns:[{include:"#comments"},{begin:"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?)",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)"},{match:"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b",name:"keyword.fsharp"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"keyword.fsharp"}},match:"(static member|member|new)"},{include:"#common_binding_definition"}]},{captures:{1:{name:"entity.name.type.fsharp"}},comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",match:"([\\w0-9'`^._]+)"},{include:"#keywords"}]},{captures:{1:{name:"storage.modifier.fsharp"}},match:"\\s*(private|internal|public)"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},string_formatter:{patterns:[{captures:{1:{name:"keyword.format.specifier.fsharp"}},match:"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))",name:"entity.name.type.format.specifier.fsharp"}]},strings:{patterns:[{begin:'(?=[^\\\\])(@")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(")(?!")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.literal.fsharp",patterns:[{match:'"(")',name:"constant.character.string.escape.fsharp"}]},{begin:'(?=[^\\\\])(""")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.triple.fsharp",patterns:[{include:"#string_formatter"}]},{begin:'(?=[^\\\\])(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.fsharp"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.fsharp"}},name:"string.quoted.double.fsharp",patterns:[{match:"\\\\$[ \\t]*",name:"punctuation.separator.string.ignore-eol.fsharp"},{match:"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))",name:"constant.character.string.escape.fsharp"},{match:"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])",name:"invalid.illegal.character.string.fsharp"},{include:"#string_formatter"}]}]},strp_inlined:{patterns:[{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{captures:{1:{name:"entity.name.type.fsharp"}},match:"(\\^[[:alpha:]0-9'._]+)"},{match:"\\b(and|when|or)\\b",name:"keyword.fsharp"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{captures:{1:{name:"keyword.fsharp"},2:{name:"variable.fsharp"},3:{name:"keyword.symbol.fsharp"}},match:"(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)"},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#keywords"},{include:"#text"},{include:"#definition"},{include:"#attributes"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]},text:{patterns:[{match:"\\\\",name:"text.fsharp"}]},tuple_signature:{patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{begin:"(\\()",beginCaptures:{1:{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{1:{name:"keyword.symbol.fsharp"}},patterns:[{captures:{1:{name:"entity.name.type.fsharp"}},match:"(([?[:alpha:]0-9'`^._ ]+))+"},{include:"#tuple_signature"}]},{include:"#keywords"}]},variables:{patterns:[{match:"\\(\\)",name:"keyword.symbol.fsharp"},{captures:{1:{name:"keyword.symbol.fsharp"},2:{name:"variable.parameter.fsharp"}},match:"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)"}]}},r="source.fsharp",s={displayName:"F#",name:a,patterns:n,repository:t,scopeName:r};export{s as default,e as displayName,a as name,n as patterns,t as repository,r as scopeName}; diff --git a/lib/dist/grammar/gdresource.mjs b/lib/dist/grammar/gdresource.mjs new file mode 100644 index 0000000..79f5b94 --- /dev/null +++ b/lib/dist/grammar/gdresource.mjs @@ -0,0 +1 @@ +var e="GDResource",a="gdresource",r=[{include:"#embedded_shader"},{include:"#embedded_gdscript"},{include:"#comment"},{include:"#heading"},{include:"#key_value"}],n={comment:{captures:{1:{name:"punctuation.definition.comment.gdresource"}},match:"(;).*$\\n?",name:"comment.line.gdresource"},data:{patterns:[{include:"#comment"},{begin:"(?|\\+=|-=|\\*=|\\^=|/=|%=|&=|~=|\\|=|\\*\\*|\\*|/|%|\\+|-",name:"keyword.operator.arithmetic.gdscript"},assignment_operator:{match:"=",name:"keyword.operator.assignment.gdscript"},base_expression:{patterns:[{include:"#builtin_get_node_shorthand"},{include:"#nodepath_object"},{include:"#nodepath_function"},{include:"#strings"},{include:"#builtin_classes"},{include:"#const_vars"},{include:"#keywords"},{include:"#operators"},{include:"#lambda_declaration"},{include:"#class_declaration"},{include:"#variable_declaration"},{include:"#signal_declaration_bare"},{include:"#signal_declaration"},{include:"#function_declaration"},{include:"#statement_keyword"},{include:"#assignment_operator"},{include:"#in_keyword"},{include:"#control_flow"},{include:"#match_keyword"},{include:"#curly_braces"},{include:"#square_braces"},{include:"#round_braces"},{include:"#function_call"},{include:"#comment"},{include:"#self"},{include:"#func"},{include:"#letter"},{include:"#numbers"},{include:"#pascal_case_class"},{include:"#line_continuation"}]},bitwise_operator:{match:"&|\\||<<=|>>=|<<|>>|\\^|~",name:"keyword.operator.bitwise.gdscript"},boolean_operator:{match:"(&&|\\|\\|)",name:"keyword.operator.boolean.gdscript"},builtin_classes:{match:"(?=|==|<|>|!=|!",name:"keyword.operator.comparison.gdscript"},const_vars:{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.gdscript"},control_flow:{match:"\\b(?:if|elif|else|while|break|continue|pass|return|when|yield|await)\\b",name:"keyword.control.gdscript"},curly_braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.gdscript"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},expression:{patterns:[{include:"#base_expression"},{include:"#getter_setter_godot4"},{include:"#assignment_operator"},{include:"#annotations"},{include:"#class_name"},{include:"#builtin_classes"},{include:"#class_new"},{include:"#class_is"},{include:"#class_enum"},{include:"#any_method"},{include:"#any_variable"},{include:"#any_property"}]},extends_statement:{captures:{1:{name:"keyword.language.gdscript"},2:{name:"entity.other.inherited-class.gdscript"}},match:"(extends)\\s+([a-zA-Z_]\\w*\\.[a-zA-Z_]\\w*)?"},func:{match:"\\bfunc\\b",name:"keyword.language.gdscript"},function_arguments:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.gdscript"},{captures:{1:{name:"variable.parameter.function-call.gdscript"},2:{name:"keyword.operator.assignment.gdscript"}},match:"\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"},{include:"#base_expression"},{captures:{1:{name:"punctuation.definition.arguments.end.gdscript"},2:{name:"punctuation.definition.arguments.begin.gdscript"}},match:"\\s*(\\))\\s*(\\()"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},function_call:{begin:"(?=\\b[a-zA-Z_]\\w*\\b\\()",comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.gdscript"}},name:"meta.function-call.gdscript",patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_declaration:{begin:"(?x) \\s*\n(func) \\s+\n([a-zA-Z_]\\w*) \\s*\n(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:"(:|(?=[#'\"\\n]))",end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"}]},function_name:{patterns:[{include:"#builtin_classes"},{match:"\\b(preload)\\b",name:"keyword.language.gdscript"},{comment:"Some color schemas support meta.function-call.generic scope",match:"\\b([a-zA-Z_]\\w*)\\b",name:"entity.name.function.gdscript"}]},getter_setter_godot4:{patterns:[{captures:{1:{name:"entity.name.function.gdscript"}},match:"\\b(get):"},{begin:"(?x) \\s+\n(set) \\s*\n(?=\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"}},end:"(:|(?=[#'\"\\n]))",name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]}]},in_keyword:{patterns:[{begin:"\\b(for)\\b",captures:{1:{name:"keyword.control.gdscript"}},end:":",patterns:[{match:"\\bin\\b",name:"keyword.control.gdscript"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},{match:"\\bin\\b",name:"keyword.operator.wordlike.gdscript"}]},keywords:{match:"\\b(?:class|class_name|is|onready|tool|static|export|as|void|enum|assert|breakpoint|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b",name:"keyword.language.gdscript"},lambda_declaration:{begin:"(func)\\s?(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:"(:|(?=[#'\"\\n]))",end2:"(\\s*(\\-\\>)\\s*(void\\w*)|([a-zA-Z_]\\w*)\\s*\\:)",endCaptures2:{1:{name:"punctuation.separator.annotation.result.gdscript"},2:{name:"keyword.language.void.gdscript"},3:{name:"entity.name.type.class.gdscript markup.italic"}},name:"meta.function.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"},{include:"#base_expression"},{include:"#any_variable"},{include:"#any_property"}]},letter:{match:"\\b(?:true|false|null)\\b",name:"constant.language.gdscript"},line_continuation:{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.gdscript"},2:{name:"invalid.illegal.line.continuation.gdscript"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.gdscript"}},end:"(?x)\n(?=^\\s*$)\n|\n(?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n|\n(\\G $) (?# '\\G' is necessary for ST)\n)\n",patterns:[{include:"#base_expression"}]}]},loose_default:{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.gdscript"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},match_keyword:{captures:{1:{name:"keyword.control.gdscript"}},match:"^\n\\s*(match)"},nodepath_function:{begin:"(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.gdscript"},2:{name:"punctuation.definition.parameters.begin.gdscript"}},contentName:"meta.function.parameters.gdscript",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.gdscript",patterns:[{begin:"(\"|')",end:"\\1",name:"string.quoted.gdscript meta.literal.nodepath.gdscript constant.character.escape",patterns:[{match:"%",name:"keyword.control.flow"}]},{include:"#base_expression"}]},nodepath_object:{begin:"(NodePath)\\s*(?:\\()",beginCaptures:{1:{name:"support.class.library.gdscript"}},end:"(?:\\))",name:"meta.literal.nodepath.gdscript",patterns:[{begin:"(\"|')",end:"\\1",name:"string.quoted.gdscript constant.character.escape.gdscript",patterns:[{match:"%",name:"keyword.control.flow.gdscript"}]}]},numbers:{patterns:[{match:"0b[01_]+",name:"constant.numeric.integer.binary.gdscript"},{match:"0x[0-9A-Fa-f_]+",name:"constant.numeric.integer.hexadecimal.gdscript"},{match:"[-]?([0-9][0-9_]+\\.[0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?(\\.[0-9][0-9_]*(e[\\-\\+]?[0-9_]+)?)",name:"constant.numeric.float.gdscript"},{match:"[-]?([0-9][0-9_]*e[\\-\\+]?\\[0-9_])",name:"constant.numeric.float.gdscript"},{match:"[-]?[0-9][0-9_]*",name:"constant.numeric.integer.gdscript"}]},operators:{patterns:[{include:"#wordlike_operator"},{include:"#boolean_operator"},{include:"#arithmetic_operator"},{include:"#bitwise_operator"},{include:"#compare_operator"}]},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.gdscript"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.gdscript"}},name:"meta.function.parameters.gdscript",patterns:[{include:"#annotated_parameter"},{captures:{1:{name:"variable.parameter.function.language.gdscript"},2:{name:"punctuation.separator.parameters.gdscript"}},match:"(?x)\n([a-zA-Z_]\\w*)\n\\s* (?: (,) | (?=[)#\\n=]))\n"},{include:"#comment"},{include:"#loose_default"}]},pascal_case_class:{match:"\\b([A-Z]+[a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b",name:"entity.name.type.class.gdscript"},round_braces:{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.gdscript"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},self:{match:"\\bself\\b",name:"variable.language.gdscript"},signal_declaration:{begin:"(?x) \\s*\n(signal) \\s+\n([a-zA-Z_]\\w*) \\s*\n(?=\\()",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},end:"((?=[#'\"\\n]))",name:"meta.signal.gdscript",patterns:[{include:"#parameters"},{include:"#line_continuation"}]},signal_declaration_bare:{captures:{1:{name:"keyword.language.gdscript storage.type.function.gdscript"},2:{name:"entity.name.function.gdscript"}},match:"(?x) \\s*\n(signal) \\s+\n([a-zA-Z_]\\w*)(?=[\\n\\s])",name:"meta.signal.gdscript"},square_braces:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.gdscript"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.gdscript"}},patterns:[{include:"#base_expression"},{include:"#any_variable"}]},statement:{patterns:[{include:"#extends_statement"}]},statement_keyword:{patterns:[{match:"(?x)\n\\b(?=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n})\n)\n",name:"meta.format.brace.gdscript"},{captures:{1:{name:"constant.character.format.placeholder.other.gdscript"},3:{name:"storage.type.format.gdscript"},4:{name:"storage.type.format.gdscript"}},match:"(?x)\n(\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n(:)\n[^'\"{}\\n]* (?:\n\\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n)*\n}\n)\n",name:"meta.format.brace.gdscript"}]},string_percent_placeholders:{captures:{1:{name:"constant.character.format.placeholder.other.gdscript"}},match:"(?x)\n(\n% (\\([\\w\\s]*\\))?\n[-+#0 ]*\n(\\d+|\\*)? (\\.(\\d+|\\*))?\n([hlL])?\n[diouxXeEfFgGcrsab%]\n)\n",name:"meta.format.percent.gdscript"},strings:{begin:"(r)?(\"\"\"|'''|\"|')",beginCaptures:{1:{name:"constant.character.escape.gdscript"}},end:"\\2",name:"string.quoted.gdscript",patterns:[{match:"\\\\.",name:"constant.character.escape.gdscript"},{include:"#string_percent_placeholders"},{include:"#string_bracket_placeholders"}]},variable_declaration:{begin:"\\b(?:(var)|(const))\\b",beginCaptures:{1:{name:"keyword.language.gdscript storage.type.var.gdscript"},2:{name:"keyword.language.gdscript storage.type.const.gdscript"}},end:"$|;",name:"meta.variable.declaration.gdscript",patterns:[{captures:{1:{name:"punctuation.separator.annotation.gdscript"},2:{name:"keyword.language.gdscript storage.type.const.gdscript"},3:{name:"entity.name.function.gdscript"}},match:"(:)?\\s*(set|get)\\s+=\\s+([a-zA-Z_]\\w*)"},{match:":=|=(?!=)",name:"keyword.operator.assignment.gdscript"},{captures:{1:{name:"punctuation.separator.annotation.gdscript"},2:{name:"entity.name.type.class.gdscript"}},match:"(:)\\s*([a-zA-Z_]\\w*)?"},{captures:{1:{name:"keyword.language.gdscript storage.type.const.gdscript"},2:{name:"entity.name.function.gdscript"},3:{name:"entity.name.function.gdscript"}},match:"(setget)\\s+([a-zA-Z_]\\w*)(?:[,]\\s*([a-zA-Z_]\\w*))?"},{include:"#expression"},{include:"#letter"},{include:"#any_variable"},{include:"#any_property"},{include:"#keywords"}]},wordlike_operator:{match:"\\b(and|or|not)\\b",name:"keyword.operator.wordlike.gdscript"}},s="source.gdscript",i={displayName:e,fileTypes:n,name:t,patterns:a,repository:r,scopeName:s};export{i as default,e as displayName,n as fileTypes,t as name,a as patterns,r as repository,s as scopeName}; diff --git a/lib/dist/grammar/gdshader.mjs b/lib/dist/grammar/gdshader.mjs new file mode 100644 index 0000000..a313c82 --- /dev/null +++ b/lib/dist/grammar/gdshader.mjs @@ -0,0 +1 @@ +var e="GDShader",a=["gdshader"],n="gdshader",t=[{include:"#any"}],i={any:{patterns:[{include:"#comment"},{include:"#enclosed"},{include:"#classifier"},{include:"#definition"},{include:"#keyword"},{include:"#element"},{include:"#separator"},{include:"#operator"}]},arraySize:{begin:"\\[",captures:{0:{name:"punctuation.bracket.gdshader"}},end:"\\]",name:"meta.array-size.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#element"},{include:"#separator"}]},classifier:{begin:"(?=\\b(?:shader_type|render_mode)\\b)",end:"(?<=;)",name:"meta.classifier.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#identifierClassification"},{include:"#separator"}]},classifierKeyword:{match:"\\b(?:shader_type|render_mode)\\b",name:"keyword.language.classifier.gdshader"},comment:{patterns:[{include:"#commentLine"},{include:"#commentBlock"}]},commentBlock:{begin:"/\\*",end:"\\*/",name:"comment.block.gdshader"},commentLine:{begin:"//",end:"$",name:"comment.line.double-slash.gdshader"},constantFloat:{match:"\\b(?:E|PI|TAU)\\b",name:"constant.language.float.gdshader"},constructor:{match:"\\b[a-zA-Z_]\\w*(?=\\s*\\[\\s*\\w*\\s*\\]\\s*[(])|\\b[A-Z]\\w*(?=\\s*[(])",name:"entity.name.type.constructor.gdshader"},controlKeyword:{match:"\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\b",name:"keyword.control.gdshader"},definition:{patterns:[{include:"#structDefinition"}]},element:{patterns:[{include:"#literalFloat"},{include:"#literalInt"},{include:"#literalBool"},{include:"#identifierType"},{include:"#constructor"},{include:"#processorFunction"},{include:"#identifierFunction"},{include:"#swizzling"},{include:"#identifierField"},{include:"#constantFloat"},{include:"#languageVariable"},{include:"#identifierVariable"}]},enclosed:{begin:"\\(",captures:{0:{name:"punctuation.parenthesis.gdshader"}},end:"\\)",name:"meta.parenthesis.gdshader",patterns:[{include:"#any"}]},fieldDefinition:{begin:"\\b[a-zA-Z_]\\w*\\b",beginCaptures:{0:{patterns:[{include:"#typeKeyword"},{match:".+",name:"entity.name.type.gdshader"}]}},end:"(?<=;)",name:"meta.definition.field.gdshader",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#arraySize"},{include:"#fieldName"},{include:"#any"}]},fieldName:{match:"\\b[a-zA-Z_]\\w*\\b",name:"entity.name.variable.field.gdshader"},hintKeyword:{match:"\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\b",name:"support.type.annotation.gdshader"},identifierClassification:{match:"\\b[a-z_]+\\b",name:"entity.other.inherited-class.gdshader"},identifierField:{captures:{1:{name:"punctuation.accessor.gdshader"},2:{name:"entity.name.variable.field.gdshader"}},match:"([.])\\s*([a-zA-Z_]\\w*)\\b(?!\\s*\\()"},identifierFunction:{match:"\\b[a-zA-Z_]\\w*(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])",name:"entity.name.function.gdshader"},identifierType:{match:"\\b[a-zA-Z_]\\w*(?=(?:\\s*\\[\\s*\\w*\\s*\\])?\\s+[a-zA-Z_]\\w*\\b)",name:"entity.name.type.gdshader"},identifierVariable:{match:"\\b[a-zA-Z_]\\w*\\b",name:"variable.name.gdshader"},keyword:{patterns:[{include:"#classifierKeyword"},{include:"#structKeyword"},{include:"#controlKeyword"},{include:"#modifierKeyword"},{include:"#precisionKeyword"},{include:"#typeKeyword"},{include:"#hintKeyword"}]},languageVariable:{match:"\\b(?:[A-Z][A-Z_0-9]*)\\b",name:"variable.language.gdshader"},literalBool:{match:"\\b(?:false|true)\\b",name:"constant.language.boolean.gdshader"},literalFloat:{match:"\\b(?:\\d+[eE][-+]?\\d+|(?:\\d*[.]\\d+|\\d+[.])(?:[eE][-+]?\\d+)?)[fF]?",name:"constant.numeric.float.gdshader"},literalInt:{match:"\\b(?:0[xX][0-9A-Fa-f]+|\\d+[uU]?)\\b",name:"constant.numeric.integer.gdshader"},modifierKeyword:{match:"\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\b",name:"storage.modifier.gdshader"},operator:{match:"\\<\\<\\=?|\\>\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]",name:"keyword.operator.gdshader"},precisionKeyword:{match:"\\b(?:low|medium|high)p\\b",name:"storage.type.built-in.primitive.precision.gdshader"},processorFunction:{match:"\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])",name:"support.function.gdshader"},separator:{patterns:[{match:"[.]",name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:"[;]",name:"punctuation.terminator.statement.gdshader"},{match:"[:]",name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{match:"[,]",name:"punctuation.separator.comma.gdshader"},structDefinition:{begin:"(?=\\b(?:struct)\\b)",end:"(?<=;)",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}]},structDefinitionBlock:{begin:"\\{",captures:{0:{name:"punctuation.definition.block.struct.gdshader"}},end:"\\}",name:"meta.definition.block.struct.gdshader",patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},structKeyword:{match:"\\b(?:struct)\\b",name:"keyword.other.struct.gdshader"},structName:{match:"\\b[a-zA-Z_]\\w*\\b",name:"entity.name.type.struct.gdshader"},swizzling:{captures:{1:{name:"punctuation.accessor.gdshader"},2:{name:"variable.other.property.gdshader"}},match:"([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b"},typeKeyword:{match:"\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b",name:"support.type.gdshader"}},r="source.gdshader",d={displayName:e,fileTypes:a,name:n,patterns:t,repository:i,scopeName:r};export{d as default,e as displayName,a as fileTypes,n as name,t as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/genie.mjs b/lib/dist/grammar/genie.mjs new file mode 100644 index 0000000..032070b --- /dev/null +++ b/lib/dist/grammar/genie.mjs @@ -0,0 +1 @@ +var e="Genie",a=["gs"],t="genie",n=[{include:"#code"}],i={code:{patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#keywords"},{include:"#types"},{include:"#functions"},{include:"#variables"}]},comments:{patterns:[{captures:{0:{name:"punctuation.definition.comment.vala"}},match:"/\\*\\*/",name:"comment.block.empty.vala"},{include:"text.html.javadoc"},{include:"#comments-inline"}]},"comments-inline":{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.vala"}},end:"\\*/",name:"comment.block.vala"},{captures:{1:{name:"comment.line.double-slash.vala"},2:{name:"punctuation.definition.comment.vala"}},match:"\\s*((//).*$\\n?)"}]},constants:{patterns:[{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",name:"constant.numeric.vala"},{match:"\\b([A-Z][A-Z0-9_]+)\\b",name:"variable.other.constant.vala"}]},functions:{patterns:[{match:"(\\w+)(?=\\s*(<[\\s\\w.]+>\\s*)?\\()",name:"entity.name.function.vala"}]},keywords:{patterns:[{match:"(?<=^|[^@\\w\\.])(as|do|if|in|is|of|or|to|and|def|for|get|isa|new|not|out|ref|set|try|var|case|dict|else|enum|init|list|lock|null|pass|prop|self|true|uses|void|weak|when|array|async|break|class|const|event|false|final|owned|print|super|raise|while|yield|assert|delete|downto|except|extern|inline|params|public|raises|return|sealed|sizeof|static|struct|typeof|default|dynamic|ensures|finally|private|unowned|virtual|abstract|continue|delegate|internal|override|readonly|requires|volatile|construct|errordomain|interface|namespace|protected|implements)\\b",name:"keyword.vala"},{match:"(?<=^|[^@\\w\\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b",name:"keyword.vala"},{match:"(#if|#elif|#else|#endif)",name:"keyword.vala"}]},strings:{patterns:[{begin:'"""',end:'"""',name:"string.quoted.triple.vala"},{begin:'@"',end:'"',name:"string.quoted.interpolated.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"},{match:"\\$\\w+",name:"constant.character.escape.vala"},{match:"\\$\\(([^)(]|\\(([^)(]|\\([^)]*\\))*\\))*\\)",name:"constant.character.escape.vala"}]},{begin:'"',end:'"',name:"string.quoted.double.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"}]},{begin:"'",end:"'",name:"string.quoted.single.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"}]},{match:"/((\\\\/)|([^/]))*/(?=\\s*[,;)\\.\\n])",name:"string.regexp.vala"}]},types:{patterns:[{match:"(?<=^|[^@\\w\\.])(bool|double|float|unichar|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b",name:"storage.type.primitive.vala"},{match:"\\b([A-Z]+\\w*)\\b",name:"entity.name.type.vala"}]},variables:{patterns:[{match:"\\b([_a-z]+\\w*)\\b",name:"variable.other.vala"}]}},s="source.genie",r={displayName:e,fileTypes:a,name:t,patterns:n,repository:i,scopeName:s};export{r as default,e as displayName,a as fileTypes,t as name,n as patterns,i as repository,s as scopeName}; diff --git a/lib/dist/grammar/gherkin.mjs b/lib/dist/grammar/gherkin.mjs new file mode 100644 index 0000000..25b3f84 --- /dev/null +++ b/lib/dist/grammar/gherkin.mjs @@ -0,0 +1 @@ +var a="Gherkin",e=["feature"],n="기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)",i="^\\s*\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)",t="^\\s*$",r="gherkin",o=[{include:"#feature_element_keyword"},{include:"#feature_keyword"},{include:"#step_keyword"},{include:"#strings_triple_quote"},{include:"#strings_single_quote"},{include:"#strings_double_quote"},{include:"#comments"},{include:"#tags"},{include:"#scenario_outline_variable"},{include:"#table"}],s={comments:{captures:{0:{name:"comment.line.number-sign"}},match:"^\\s*(#.*)"},feature_element_keyword:{captures:{1:{name:"keyword.language.gherkin.feature.scenario"},2:{name:"string.language.gherkin.scenario.title.title"}},match:"^\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)"},feature_keyword:{captures:{1:{name:"keyword.language.gherkin.feature"},2:{name:"string.language.gherkin.feature.title"}},match:"^\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\b"},scenario_outline_variable:{match:"<[a-zA-Z0-9 _-]*>",name:"variable.other"},step_keyword:{captures:{1:{name:"keyword.language.gherkin.feature.step"}},match:"^\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\* )"},strings_double_quote:{begin:"(? 50 lines as deprecated, > 72 as illegal",match:"\\G.{0,50}(.{0,22}(.*))$",name:"meta.scope.subject.git-commit"}]},{begin:"^(?=#)",comment:"Git supplied metadata in a number of lines starting with #",contentName:"comment.line.number-sign.git-commit",end:"^(?!#)",name:"meta.scope.metadata.git-commit",patterns:[{captures:{1:{name:"markup.changed.git-commit"}},match:"^#\\t((modified|renamed):.*)$"},{captures:{1:{name:"markup.inserted.git-commit"}},match:"^#\\t(new file:.*)$"},{captures:{1:{name:"markup.deleted.git-commit"}},match:"^#\\t(deleted.*)$"},{captures:{1:{name:"keyword.other.file-type.git-commit"},2:{name:"string.unquoted.filename.git-commit"}},comment:"Fallback for non-English git commit template",match:"^#\\t([^:]+): *(.*)$"}]}],i="text.git-commit",a={displayName:e,name:t,patterns:m,scopeName:i};export{a as default,e as displayName,t as name,m as patterns,i as scopeName}; diff --git a/lib/dist/grammar/git-rebase.mjs b/lib/dist/grammar/git-rebase.mjs new file mode 100644 index 0000000..3920eaa --- /dev/null +++ b/lib/dist/grammar/git-rebase.mjs @@ -0,0 +1 @@ +var e="Git Rebase Message",a="git-rebase",t=[{captures:{1:{name:"punctuation.definition.comment.git-rebase"}},match:"^\\s*(#).*$\\n?",name:"comment.line.number-sign.git-rebase"},{captures:{1:{name:"support.function.git-rebase"},2:{name:"constant.sha.git-rebase"},3:{name:"meta.commit-message.git-rebase"}},match:"^\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f|drop|d)\\s+([0-9a-f]+)\\s+(.*)$",name:"meta.commit-command.git-rebase"},{captures:{1:{name:"support.function.git-rebase"},2:{patterns:[{include:"source.shell"}]}},match:"^\\s*(exec|x)\\s+(.*)$",name:"meta.commit-command.git-rebase"},{captures:{1:{name:"support.function.git-rebase"}},match:"^\\s*(break|b)\\s*$",name:"meta.commit-command.git-rebase"}],s="text.git-rebase",m={displayName:e,name:a,patterns:t,scopeName:s};export{m as default,e as displayName,a as name,t as patterns,s as scopeName}; diff --git a/lib/dist/grammar/gleam.mjs b/lib/dist/grammar/gleam.mjs new file mode 100644 index 0000000..c612694 --- /dev/null +++ b/lib/dist/grammar/gleam.mjs @@ -0,0 +1 @@ +var e="Gleam",a="gleam",t=[{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#constant"},{include:"#entity"},{include:"#discards"}],n={binary_number:{match:"\\b0[bB](_?[01])+\\b",name:"constant.numeric.binary.gleam",patterns:[]},boolean:{match:"\\b(True|False)\\b",name:"constant.language.boolean.gleam",patterns:[]},comments:{patterns:[{match:"//.*",name:"comment.line.gleam"}]},constant:{patterns:[{include:"#binary_number"},{include:"#octal_number"},{include:"#hexadecimal_number"},{include:"#decimal_number"},{include:"#boolean"},{match:"[[:upper:]][[:word:]]*",name:"entity.name.type.gleam"}]},decimal_number:{match:"\\b[[:digit:]]+(_?[[:digit:]])*(\\.[[:digit:]]*)?(e-?[[:digit:]]*)?\\b",name:"constant.numeric.decimal.gleam",patterns:[]},discards:{match:"\\b_(?:[[:word:]]+)?\\b",name:"comment.unused.gleam"},entity:{patterns:[{begin:"\\b([[:lower:]][[:word:]]*)([[:space:]]*)?\\(",captures:{1:{name:"entity.name.function.gleam"}},end:"\\)",patterns:[{include:"$self"}]},{match:"\\b([[:lower:]][[:word:]]*):\\s",name:"variable.parameter.gleam"},{match:"\\b([[:lower:]][[:word:]]*):",name:"entity.name.namespace.gleam"}]},hexadecimal_number:{match:"\\b0[xX](_?[[:xdigit:]])+\\b",name:"constant.numeric.hexadecimal.gleam",patterns:[]},keywords:{patterns:[{match:"\\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic)\\b",name:"keyword.control.gleam"},{match:"(<\\-|\\->)",name:"keyword.operator.arrow.gleam"},{match:"\\|>",name:"keyword.operator.pipe.gleam"},{match:"\\.\\.",name:"keyword.operator.splat.gleam"},{match:"(<=\\.|>=\\.|==\\.|!=\\.|<\\.|>\\.)",name:"keyword.operator.comparison.float.gleam"},{match:"(<=|>=|==|!=|<|>)",name:"keyword.operator.comparison.int.gleam"},{match:"(&&|\\|\\|)",name:"keyword.operator.logical.gleam"},{match:"<>",name:"keyword.operator.string.gleam"},{match:"\\|",name:"keyword.operator.other.gleam"},{match:"(\\+\\.|\\-\\.|/\\.|\\*\\.|%\\.)",name:"keyword.operator.arithmetic.float.gleam"},{match:"(\\+|\\-|/|\\*|%)",name:"keyword.operator.arithmetic.int.gleam"},{match:"=",name:"keyword.operator.assignment.gleam"}]},octal_number:{match:"\\b0[oO](_?[0-7])+\\b",name:"constant.numeric.octal.gleam",patterns:[]},strings:{begin:'"',end:'"',name:"string.quoted.double.gleam",patterns:[{match:"\\\\.",name:"constant.character.escape.gleam"}]}},m="source.gleam",r={displayName:e,name:a,patterns:t,repository:n,scopeName:m};export{r as default,e as displayName,a as name,t as patterns,n as repository,m as scopeName}; diff --git a/lib/dist/grammar/glimmer-js.mjs b/lib/dist/grammar/glimmer-js.mjs new file mode 100644 index 0000000..1a159db --- /dev/null +++ b/lib/dist/grammar/glimmer-js.mjs @@ -0,0 +1 @@ +var e="Glimmer JS",n={"L:source.gjs -comment -(string -meta.embedded)":{patterns:[{include:"#main"}]}},t="glimmer-js",a=[{include:"#main"},{include:"source.js"}],i={"as-keyword":{match:"\\s\\b(as)\\b(?=\\s\\|)",name:"keyword.control",patterns:[]},"as-params":{begin:"(?)",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"}},name:"meta.tag.any.ember-handlebars",patterns:[{include:"#tag-like-content"}]},digit:{captures:{0:{name:"constant.numeric"},1:{name:"constant.numeric"},2:{name:"constant.numeric"}},match:"\\d*(\\.)?\\d+",patterns:[]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html.ember-handlebars"},3:{name:"punctuation.definition.entity.html.ember-handlebars"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.ember-handlebars"},{match:"&",name:"invalid.illegal.bad-ampersand.html.ember-handlebars"}]},"glimmer-argument":{captures:{1:{name:"entity.other.attribute-name.ember-handlebars.argument",patterns:[{match:"(@)",name:"markup.italic"}]},2:{name:"punctuation.separator.key-value.html.ember-handlebars"}},match:"\\s(@[a-zA-Z0-9:_.-]+)(=)?"},"glimmer-as-stuff":{patterns:[{include:"#as-keyword"},{include:"#as-params"}]},"glimmer-block":{begin:"({{~?)(#|/)(([@\\$a-zA-Z0-9_/.-]+))",captures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"},3:{name:"keyword.control",patterns:[{include:"#glimmer-component-path"},{match:"(\\/)+",name:"punctuation.definition.tag"},{match:"(\\.)+",name:"punctuation.definition.tag"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-as-stuff"},{include:"#glimmer-supexp-content"}]},"glimmer-bools":{captures:{0:{name:"keyword.operator"},1:{name:"keyword.operator"},2:{name:"string.regexp"},3:{name:"string.regexp"},4:{name:"keyword.operator"}},match:"({{~?)(true|false|null|undefined|\\d*(\\.)?\\d+)(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-comment-block":{begin:"{{!--",captures:{0:{name:"punctuation.definition.block.comment.glimmer"}},end:"--}}",name:"comment.block.glimmer",patterns:[{include:"#script"},{include:"#attention"}]},"glimmer-comment-inline":{begin:"{{!",captures:{0:{name:"punctuation.definition.block.comment.glimmer"}},end:"}}",name:"comment.inline.glimmer",patterns:[{include:"#script"},{include:"#attention"}]},"glimmer-component-path":{captures:{1:{name:"punctuation.definition.tag"}},match:"(::|_|\\$|\\.)"},"glimmer-control-expression":{begin:"({{~?)(([-a-zA-Z_0-9/]+)\\s)",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"keyword.control"}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-else-block":{captures:{0:{name:"punctuation.definition.tag"},1:{name:"punctuation.definition.tag"},2:{name:"keyword.control"},3:{name:"keyword.control",patterns:[{include:"#glimmer-subexp"},{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#boolean"},{include:"#digit"},{include:"#param"},{include:"#glimmer-parameter-name"},{include:"#glimmer-parameter-value"}]},4:{name:"punctuation.definition.tag"}},match:"({{~?)(else\\s[a-z]+\\s|else)([()@a-zA-Z0-9\\.\\s\\b]+)?(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-expression":{begin:"({{~?)(([()\\s@a-zA-Z0-9_.-]+))",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"support.function",patterns:[{match:"[(]+",name:"string.regexp"},{match:"[)]+",name:"string.regexp"},{match:"(\\.)+",name:"punctuation.definition.tag"},{include:"#glimmer-supexp-content"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-expression-property":{begin:"({{~?)((@|this.)([a-zA-Z0-9_.-]+))",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"support.function",patterns:[{match:"(@|this)",name:"variable.language"},{match:"(\\.)+",name:"punctuation.definition.tag"}]},4:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-parameter-name":{captures:{1:{name:"variable.parameter.name.ember-handlebars"},2:{name:"punctuation.definition.expression.ember-handlebars"}},match:"\\b([a-zA-Z0-9_-]+)(\\s?=)",patterns:[]},"glimmer-parameter-value":{captures:{1:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},match:"\\b([a-zA-Z0-9:_.-]+)\\b(?!=)",patterns:[]},"glimmer-special-block":{captures:{0:{name:"keyword.operator"},1:{name:"keyword.operator"},2:{name:"keyword.control"},3:{name:"keyword.operator"}},match:"({{~?)(yield|outlet)(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-subexp":{begin:"(\\()([@a-zA-Z0-9.-]+)",captures:{1:{name:"keyword.other"},2:{name:"keyword.control"}},end:"(\\))",name:"entity.subexpression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-supexp-content":{patterns:[{include:"#glimmer-subexp"},{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#boolean"},{include:"#digit"},{include:"#param"},{include:"#glimmer-parameter-name"},{include:"#glimmer-parameter-value"}]},"glimmer-unescaped-expression":{begin:"{{{",captures:{0:{name:"keyword.operator"}},end:"}}}",name:"entity.unescaped.expression.ember-handlebars",patterns:[{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#glimmer-subexp"},{include:"#param"}]},"html-attribute":{captures:{1:{name:"entity.other.attribute-name.ember-handlebars",patterns:[{match:"(\\.\\.\\.attributes)",name:"markup.bold"}]},2:{name:"punctuation.separator.key-value.html.ember-handlebars"}},match:"\\s([a-zA-Z0-9:_.-]+)(=)?"},"html-comment":{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html.ember-handlebars"}},end:"--\\s*>",name:"comment.block.html.ember-handlebars",patterns:[{include:"#attention"},{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html.ember-handlebars"}]},"html-tag":{begin:"(<\\/?)([a-z0-9-]+)(?!\\.|:)\\b",beginCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"entity.name.tag.html.ember-handlebars"}},end:"(\\/?)(>)",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"}},name:"meta.tag.any.ember-handlebars",patterns:[{include:"#tag-like-content"}]},main:{patterns:[{begin:"\\s*(<)(template)\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"},3:{name:"punctuation.definition.tag.html"}},end:"()",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"},3:{name:"punctuation.definition.tag.html"}},name:"meta.js.embeddedTemplateWithoutArgs",patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]},{begin:"(<)(template)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"}},end:"()",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"},3:{name:"punctuation.definition.tag.html"}},name:"meta.js.embeddedTemplateWithArgs",patterns:[{begin:"(?<=\\)",patterns:[{include:"#tag-like-content"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.html.embedded.block",end:"(?=)",patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]}]},{begin:"(?x)(\\b(?:\\w+\\.)*(?:hbs|html)\\s*)(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"},2:{name:"punctuation.definition.string.template.begin.js"}},contentName:"meta.embedded.block.html",end:"(`)",endCaptures:{0:{name:"string.js"},1:{name:"punctuation.definition.string.template.end.js"}},patterns:[{include:"source.ts#template-substitution-element"},{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]},{begin:"((createTemplate|hbs|html))(\\()",beginCaptures:{1:{name:"entity.name.function.ts"},2:{name:"meta.function-call.ts"},3:{name:"meta.brace.round.ts"}},contentName:"meta.embedded.block.html",end:"(\\))",endCaptures:{1:{name:"meta.brace.round.ts"}},patterns:[{begin:"((`|'|\"))",beginCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.begin.ts"}},end:"((`|'|\"))",endCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.end.ts"}},patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]}]},{begin:"((precompileTemplate)\\s*)(\\()",beginCaptures:{1:{name:"entity.name.function.ts"},2:{name:"meta.function-call.ts"},3:{name:"meta.brace.round.ts"}},end:"(\\))",endCaptures:{1:{name:"meta.brace.round.ts"}},patterns:[{begin:"((`|'|\"))",beginCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.begin.ts"}},contentName:"meta.embedded.block.html",end:"((`|'|\"))",endCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.end.ts"}},patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]},{include:"source.ts#object-literal"},{include:"source.ts"}]}]},param:{captures:{0:{name:"support.function",patterns:[{match:"(@|this)",name:"variable.language"},{match:"(\\.)+",name:"punctuation.definition.tag"}]},1:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},match:"(@|this.)([a-zA-Z0-9_.-]+)",patterns:[]},script:{begin:"(^[ \\t]+)?(?=<(?i:script)\\b(?!-))",beginCaptures:{1:{name:"punctuation.whitespace.embedded.leading.html"}},end:"(?!\\G)([ \\t]*$\\n?)?",endCaptures:{1:{name:"punctuation.whitespace.embedded.trailing.html"}},patterns:[{begin:"(<)((?i:script))\\b",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(/)((?i:script))(>)",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",end:"(?=/)",patterns:[{begin:"(>)",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.end.html"}},end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.js-ignored-vscode"}},patterns:[{begin:"\\G",end:"(?=]\n)\n)",end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"text.html.basic"}},patterns:[{begin:"(?!\\G)",end:"(?=)",beginCaptures:{0:{name:"meta.tag.metadata.style.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(?i)((<)/)(style)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.style.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.css-ignored-vscode"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",captures:{1:{name:"punctuation.definition.tag.end.html"}},end:"(>)",name:"meta.tag.metadata.style.start.html",patterns:[{include:"#glimmer-argument"},{include:"#html-attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"}},name:"meta.tag.any.ember-handlebars",patterns:[{include:"#tag-like-content"}]},digit:{captures:{0:{name:"constant.numeric"},1:{name:"constant.numeric"},2:{name:"constant.numeric"}},match:"\\d*(\\.)?\\d+",patterns:[]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html.ember-handlebars"},3:{name:"punctuation.definition.entity.html.ember-handlebars"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.ember-handlebars"},{match:"&",name:"invalid.illegal.bad-ampersand.html.ember-handlebars"}]},"glimmer-argument":{captures:{1:{name:"entity.other.attribute-name.ember-handlebars.argument",patterns:[{match:"(@)",name:"markup.italic"}]},2:{name:"punctuation.separator.key-value.html.ember-handlebars"}},match:"\\s(@[a-zA-Z0-9:_.-]+)(=)?"},"glimmer-as-stuff":{patterns:[{include:"#as-keyword"},{include:"#as-params"}]},"glimmer-block":{begin:"({{~?)(#|/)(([@\\$a-zA-Z0-9_/.-]+))",captures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"},3:{name:"keyword.control",patterns:[{include:"#glimmer-component-path"},{match:"(\\/)+",name:"punctuation.definition.tag"},{match:"(\\.)+",name:"punctuation.definition.tag"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-as-stuff"},{include:"#glimmer-supexp-content"}]},"glimmer-bools":{captures:{0:{name:"keyword.operator"},1:{name:"keyword.operator"},2:{name:"string.regexp"},3:{name:"string.regexp"},4:{name:"keyword.operator"}},match:"({{~?)(true|false|null|undefined|\\d*(\\.)?\\d+)(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-comment-block":{begin:"{{!--",captures:{0:{name:"punctuation.definition.block.comment.glimmer"}},end:"--}}",name:"comment.block.glimmer",patterns:[{include:"#script"},{include:"#attention"}]},"glimmer-comment-inline":{begin:"{{!",captures:{0:{name:"punctuation.definition.block.comment.glimmer"}},end:"}}",name:"comment.inline.glimmer",patterns:[{include:"#script"},{include:"#attention"}]},"glimmer-component-path":{captures:{1:{name:"punctuation.definition.tag"}},match:"(::|_|\\$|\\.)"},"glimmer-control-expression":{begin:"({{~?)(([-a-zA-Z_0-9/]+)\\s)",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"keyword.control"}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-else-block":{captures:{0:{name:"punctuation.definition.tag"},1:{name:"punctuation.definition.tag"},2:{name:"keyword.control"},3:{name:"keyword.control",patterns:[{include:"#glimmer-subexp"},{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#boolean"},{include:"#digit"},{include:"#param"},{include:"#glimmer-parameter-name"},{include:"#glimmer-parameter-value"}]},4:{name:"punctuation.definition.tag"}},match:"({{~?)(else\\s[a-z]+\\s|else)([()@a-zA-Z0-9\\.\\s\\b]+)?(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-expression":{begin:"({{~?)(([()\\s@a-zA-Z0-9_.-]+))",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"support.function",patterns:[{match:"[(]+",name:"string.regexp"},{match:"[)]+",name:"string.regexp"},{match:"(\\.)+",name:"punctuation.definition.tag"},{include:"#glimmer-supexp-content"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-expression-property":{begin:"({{~?)((@|this.)([a-zA-Z0-9_.-]+))",captures:{1:{name:"keyword.operator"},2:{name:"keyword.operator"},3:{name:"support.function",patterns:[{match:"(@|this)",name:"variable.language"},{match:"(\\.)+",name:"punctuation.definition.tag"}]},4:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},end:"(~?}})",name:"entity.expression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-parameter-name":{captures:{1:{name:"variable.parameter.name.ember-handlebars"},2:{name:"punctuation.definition.expression.ember-handlebars"}},match:"\\b([a-zA-Z0-9_-]+)(\\s?=)",patterns:[]},"glimmer-parameter-value":{captures:{1:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},match:"\\b([a-zA-Z0-9:_.-]+)\\b(?!=)",patterns:[]},"glimmer-special-block":{captures:{0:{name:"keyword.operator"},1:{name:"keyword.operator"},2:{name:"keyword.control"},3:{name:"keyword.operator"}},match:"({{~?)(yield|outlet)(~?}})",name:"entity.expression.ember-handlebars"},"glimmer-subexp":{begin:"(\\()([@a-zA-Z0-9.-]+)",captures:{1:{name:"keyword.other"},2:{name:"keyword.control"}},end:"(\\))",name:"entity.subexpression.ember-handlebars",patterns:[{include:"#glimmer-supexp-content"}]},"glimmer-supexp-content":{patterns:[{include:"#glimmer-subexp"},{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#boolean"},{include:"#digit"},{include:"#param"},{include:"#glimmer-parameter-name"},{include:"#glimmer-parameter-value"}]},"glimmer-unescaped-expression":{begin:"{{{",captures:{0:{name:"keyword.operator"}},end:"}}}",name:"entity.unescaped.expression.ember-handlebars",patterns:[{include:"#string-single-quoted-handlebars"},{include:"#string-double-quoted-handlebars"},{include:"#glimmer-subexp"},{include:"#param"}]},"html-attribute":{captures:{1:{name:"entity.other.attribute-name.ember-handlebars",patterns:[{match:"(\\.\\.\\.attributes)",name:"markup.bold"}]},2:{name:"punctuation.separator.key-value.html.ember-handlebars"}},match:"\\s([a-zA-Z0-9:_.-]+)(=)?"},"html-comment":{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html.ember-handlebars"}},end:"--\\s*>",name:"comment.block.html.ember-handlebars",patterns:[{include:"#attention"},{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html.ember-handlebars"}]},"html-tag":{begin:"(<\\/?)([a-z0-9-]+)(?!\\.|:)\\b",beginCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"entity.name.tag.html.ember-handlebars"}},end:"(\\/?)(>)",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"punctuation.definition.tag"}},name:"meta.tag.any.ember-handlebars",patterns:[{include:"#tag-like-content"}]},main:{patterns:[{begin:"\\s*(<)(template)\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"},3:{name:"punctuation.definition.tag.html"}},end:"()",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"},3:{name:"punctuation.definition.tag.html"}},name:"meta.js.embeddedTemplateWithoutArgs",patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]},{begin:"(<)(template)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"}},end:"()",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.other.html"},3:{name:"punctuation.definition.tag.html"}},name:"meta.js.embeddedTemplateWithArgs",patterns:[{begin:"(?<=\\)",patterns:[{include:"#tag-like-content"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.html.embedded.block",end:"(?=)",patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]}]},{begin:"(?x)(\\b(?:\\w+\\.)*(?:hbs|html)\\s*)(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"},2:{name:"punctuation.definition.string.template.begin.js"}},contentName:"meta.embedded.block.html",end:"(`)",endCaptures:{0:{name:"string.js"},1:{name:"punctuation.definition.string.template.end.js"}},patterns:[{include:"source.ts#template-substitution-element"},{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]},{begin:"((createTemplate|hbs|html))(\\()",beginCaptures:{1:{name:"entity.name.function.ts"},2:{name:"meta.function-call.ts"},3:{name:"meta.brace.round.ts"}},contentName:"meta.embedded.block.html",end:"(\\))",endCaptures:{1:{name:"meta.brace.round.ts"}},patterns:[{begin:"((`|'|\"))",beginCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.begin.ts"}},end:"((`|'|\"))",endCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.end.ts"}},patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]}]},{begin:"((precompileTemplate)\\s*)(\\()",beginCaptures:{1:{name:"entity.name.function.ts"},2:{name:"meta.function-call.ts"},3:{name:"meta.brace.round.ts"}},end:"(\\))",endCaptures:{1:{name:"meta.brace.round.ts"}},patterns:[{begin:"((`|'|\"))",beginCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.begin.ts"}},contentName:"meta.embedded.block.html",end:"((`|'|\"))",endCaptures:{1:{name:"string.template.ts"},2:{name:"punctuation.definition.string.template.end.ts"}},patterns:[{include:"#style"},{include:"#script"},{include:"#glimmer-else-block"},{include:"#glimmer-bools"},{include:"#glimmer-special-block"},{include:"#glimmer-unescaped-expression"},{include:"#glimmer-comment-block"},{include:"#glimmer-comment-inline"},{include:"#glimmer-expression-property"},{include:"#glimmer-control-expression"},{include:"#glimmer-expression"},{include:"#glimmer-block"},{include:"#html-tag"},{include:"#component-tag"},{include:"#html-comment"},{include:"#entities"}]},{include:"source.ts#object-literal"},{include:"source.ts"}]}]},param:{captures:{0:{name:"support.function",patterns:[{match:"(@|this)",name:"variable.language"},{match:"(\\.)+",name:"punctuation.definition.tag"}]},1:{name:"support.function",patterns:[{match:"(\\.)+",name:"punctuation.definition.tag"}]}},match:"(@|this.)([a-zA-Z0-9_.-]+)",patterns:[]},script:{begin:"(^[ \\t]+)?(?=<(?i:script)\\b(?!-))",beginCaptures:{1:{name:"punctuation.whitespace.embedded.leading.html"}},end:"(?!\\G)([ \\t]*$\\n?)?",endCaptures:{1:{name:"punctuation.whitespace.embedded.trailing.html"}},patterns:[{begin:"(<)((?i:script))\\b",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(/)((?i:script))(>)",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",end:"(?=/)",patterns:[{begin:"(>)",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.end.html"}},end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.js-ignored-vscode"}},patterns:[{begin:"\\G",end:"(?=]\n)\n)",end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"text.html.basic"}},patterns:[{begin:"(?!\\G)",end:"(?=)",beginCaptures:{0:{name:"meta.tag.metadata.style.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(?i)((<)/)(style)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.style.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.css-ignored-vscode"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",captures:{1:{name:"punctuation.definition.tag.end.html"}},end:"(>)",name:"meta.tag.metadata.style.start.html",patterns:[{include:"#glimmer-argument"},{include:"#html-attribute"}]},{begin:"(?!\\G)",end:"(?=>|&|\\||\\^)",name:"keyword.operator.bitwise.gnuplot"},{match:"(==|!=|<=|<|>=|>)",name:"keyword.operator.comparison.gnuplot"},{match:"(=)",name:"keyword.operator.assignment.gnuplot"},{match:"(\\+|-|~|!)",name:"keyword.operator.arithmetic.gnuplot"},{match:"(\\*\\*|\\+|-|\\*|/|%)",name:"keyword.operator.arithmetic.gnuplot"},{captures:{2:{name:"keyword.operator.word.gnuplot"}},match:"(\\.|\\b(eq|ne)\\b)",name:"keyword.operator.strings.gnuplot"}]},BuiltinVariable:{patterns:[{match:"\\b(?x:\nFIT_LIMIT |\nFIT_MAXITER |\nFIT_START_LAMBDA |\nFIT_LAMBDA_FACTOR |\nFIT_SKIP |\nFIT_INDEX\n)\\b",name:"invalid.deprecated.variable.gnuplot"},{match:"\\b(GPVAL_\\w*|MOUSE_\\w*)\\b",name:"support.constant.gnuplot"},{match:"\\b(ARG[0-9C]|GPFUN_\\w*|FIT_\\w*|STATS_\\w*|pi|NaN)\\b",name:"support.variable.gnuplot"}]},ColumnIndexLiteral:{match:"([$][0-9]+)\\b",name:"support.constant.columnindex.gnuplot"},Command:{patterns:[{begin:"\\b(?x:\nupdate\n)\\b",end:"(?=(;|#|\\\\(?!\\n)|(?|\\<\\=|\\>\\=|\\=\\=|\\!\\=|\\w(?:\\+|/|\\-|\\*|\\%)|\\w(?:\\+|/|\\-|\\*|\\%)\\=|\\|\\||\\&\\&)(?:\\s*)((?![\\[\\]]+)[[:alnum:]\\-\\_\\!\\.\\[\\]\\<\\>\\=\\*/\\+\\%\\:]+)(?:\\s*)(?=\\{))"},brackets:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.curly.go"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.go"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.square.go"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"$self"}]}]},built_in_functions:{comment:"Built-in functions",patterns:[{match:"\\b(append|cap|close|complex|copy|delete|imag|len|panic|print|println|real|recover|min|max|clear)\\b(?=\\()",name:"entity.name.function.support.builtin.go"},{begin:"(?:(\\bnew\\b)(\\())",beginCaptures:{1:{name:"entity.name.function.support.builtin.go"},2:{name:"punctuation.definition.begin.bracket.round.go"}},comment:"new keyword",end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#functions"},{include:"#struct_variables_types"},{include:"#type-declarations"},{include:"#generic_types"},{match:"(?:\\w+)",name:"entity.name.type.go"},{include:"$self"}]},{begin:"(?:(\\bmake\\b)(?:(\\()((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?:[\\[\\]\\*]+)?(?:(?!\\bmap\\b)(?:[\\w\\.]+))?(\\[(?:(?:[\\S]+)(?:(?:\\,\\s*(?:[\\S]+))*))?\\])?(?:\\,)?)?))",beginCaptures:{1:{name:"entity.name.function.support.builtin.go"},2:{name:"punctuation.definition.begin.bracket.round.go"},3:{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:"\\w+",name:"entity.name.type.go"}]}},comment:"make keyword",end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]}]},comments:{patterns:[{begin:"(\\/\\*)",beginCaptures:{1:{name:"punctuation.definition.comment.go"}},end:"(\\*\\/)",endCaptures:{1:{name:"punctuation.definition.comment.go"}},name:"comment.block.go"},{begin:"(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.go"}},end:"(?:\\n|$)",name:"comment.line.double-slash.go"}]},delimiters:{patterns:[{match:"\\,",name:"punctuation.other.comma.go"},{match:"\\.(?!\\.\\.)",name:"punctuation.other.period.go"},{match:":(?!=)",name:"punctuation.other.colon.go"}]},double_parentheses_types:{captures:{1:{patterns:[{include:"#type-declarations-without-brackets"},{match:"\\(",name:"punctuation.definition.begin.bracket.round.go"},{match:"\\)",name:"punctuation.definition.end.bracket.round.go"},{match:"\\[",name:"punctuation.definition.begin.bracket.square.go"},{match:"\\]",name:"punctuation.definition.end.bracket.square.go"},{match:"\\w+",name:"entity.name.type.go"}]}},comment:"double parentheses types",match:"(?:(?\\-]+(?:\\s*)(?:\\/(?:\\/|\\*).*)?)$)"},{include:"$self"}]},function_param_types:{comment:"function parameter variables and types",patterns:[{include:"#struct_variables_types"},{include:"#interface_variables_types"},{include:"#type-declarations-without-brackets"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.parameter.go"}]}},comment:"struct/interface type declaration",match:"((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.parameter.go"}]}},comment:"multiple parameters one type -with multilines",match:"(?:(?:(?<=\\()|^\\s*)((?:(?:\\b\\w+\\,\\s*)+)(?:/(?:/|\\*).*)?)$)"},{captures:{1:{patterns:[{include:"#delimiters"},{match:"\\w+",name:"variable.parameter.go"}]},2:{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},comment:"multiple params and types | multiple params one type | one param one type",match:"(?:((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)(?:\\s+)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:(?:(?:[\\w\\[\\]\\.\\*]+)?(?:(?:\\bfunc\\b\\((?:[^\\)]+)?\\))(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s*))+(?:(?:(?:[\\w\\*\\.\\[\\]]+)|(?:\\((?:[^\\)]+)?\\))))?)|(?:(?:[\\[\\]\\*]+)?[\\w\\*\\.]+(?:\\[(?:[^\\]]+)\\])?(?:[\\w\\.\\*]+)?)+)))"},{include:"#parameter-variable-types"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},comment:"other types",match:"([\\w\\.]+)"},{include:"$self"}]},functions:{begin:"(?:(\\bfunc\\b)(?=\\())",beginCaptures:{1:{name:"keyword.function.go"}},comment:"Functions",end:"(?:(?<=\\))(\\s*(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?((?:(?:\\s*(?:(?:[\\[\\]\\*]+)?[\\w\\.\\*]+)?(?:(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])|(?:\\((?:[^\\)]+)?\\)))?(?:[\\w\\.\\*]+)?)(?:\\s*)(?=\\{))|(?:\\s*(?:(?:(?:[\\[\\]\\*]+)?(?!\\bfunc\\b)(?:[\\w\\.\\*]+)(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\])?(?:[\\w\\.\\*]+)?)|(?:\\((?:[^\\)]+)?\\)))))?)",endCaptures:{1:{patterns:[{include:"#type-declarations"}]},2:{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},patterns:[{include:"#parameter-variable-types"}]},functions_inline:{captures:{1:{name:"keyword.function.go"},2:{patterns:[{include:"#type-declarations-without-brackets"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.go"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{match:"\\[",name:"punctuation.definition.begin.bracket.square.go"},{match:"\\]",name:"punctuation.definition.end.bracket.square.go"},{match:"\\{",name:"punctuation.definition.begin.bracket.curly.go"},{match:"\\}",name:"punctuation.definition.end.bracket.curly.go"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},comment:"functions in-line with multi return types",match:"(?:(\\bfunc\\b)((?:\\((?:[^/]*?)\\))(?:\\s+)(?:\\((?:[^/]*?)\\)))(?:\\s+)(?=\\{))"},generic_param_types:{comment:"generic parameter variables and types",patterns:[{include:"#struct_variables_types"},{include:"#interface_variables_types"},{include:"#type-declarations-without-brackets"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.parameter.go"}]}},comment:"struct/interface type declaration",match:"((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)\\s+(?=(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:[\\[\\]\\*]+)?\\b(?:struct|interface)\\b\\s*\\{)"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.parameter.go"}]}},comment:"multiple parameters one type -with multilines",match:"(?:(?:(?<=\\()|^\\s*)((?:(?:\\b\\w+\\,\\s*)+)(?:/(?:/|\\*).*)?)$)"},{captures:{1:{patterns:[{include:"#delimiters"},{match:"\\w+",name:"variable.parameter.go"}]},2:{patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:"(?:\\w+)",name:"entity.name.type.go"}]},3:{patterns:[{include:"#type-declarations"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},comment:"multiple params and types | multiple types one param",match:"(?:((?:(?:\\b\\w+\\,\\s*)+)?\\b\\w+)(?:\\s+)((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:(?:(?:[\\w\\[\\]\\.\\*]+)?(?:(?:\\bfunc\\b\\((?:[^\\)]+)?\\))(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s*))+(?:(?:(?:[\\w\\*\\.]+)|(?:\\((?:[^\\)]+)?\\))))?)|(?:(?:(?:[\\w\\*\\.\\~]+)|(?:\\[(?:(?:[\\w\\.\\*]+)?(?:\\[(?:[^\\]]+)?\\])?(?:\\,\\s+)?)+\\]))(?:[\\w\\.\\*]+)?)+)))"},{include:"#parameter-variable-types"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},comment:"other types",match:"(?:\\b([\\w\\.]+))"},{include:"$self"}]},generic_types:{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"}]},2:{patterns:[{include:"#parameter-variable-types"}]}},comment:"Generic support for all types",match:"(?:([\\w\\.\\*]+)(\\[(?:[^\\]]+)?\\]))"},"group-functions":{comment:"all statements related to functions",patterns:[{include:"#function_declaration"},{include:"#functions_inline"},{include:"#functions"},{include:"#built_in_functions"},{include:"#support_functions"}]},"group-types":{comment:"all statements related to types",patterns:[{include:"#other_struct_interface_expressions"},{include:"#type_assertion_inline"},{include:"#struct_variables_types"},{include:"#interface_variables_types"},{include:"#single_type"},{include:"#multi_types"},{include:"#struct_interface_declaration"},{include:"#double_parentheses_types"},{include:"#switch_types"},{include:"#type-declarations"}]},"group-variables":{comment:"all statements related to variables",patterns:[{include:"#var_const_assignment"},{include:"#variable_assignment"},{include:"#label_loop_variables"},{include:"#slice_index_variables"},{include:"#property_variables"},{include:"#switch_select_case_variables"},{include:"#other_variables"}]},import:{comment:"import",patterns:[{begin:"\\b(import)\\s+",beginCaptures:{1:{name:"keyword.control.import.go"}},comment:"import",end:"(?!\\G)",patterns:[{include:"#imports"}]}]},imports:{comment:"import package(s)",patterns:[{captures:{1:{patterns:[{include:"#delimiters"},{match:"(?:\\w+)",name:"variable.other.import.go"}]},2:{name:"string.quoted.double.go"},3:{name:"punctuation.definition.string.begin.go"},4:{name:"entity.name.import.go"},5:{name:"punctuation.definition.string.end.go"}},match:'(\\s*[\\w\\.]+)?\\s*((")([^"]*)("))'},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.imports.begin.bracket.round.go"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.imports.end.bracket.round.go"}},patterns:[{include:"#comments"},{include:"#imports"}]},{include:"$self"}]},interface_variables_types:{begin:"(\\binterface\\b)\\s*(\\{)",beginCaptures:{1:{name:"keyword.interface.go"},2:{name:"punctuation.definition.begin.bracket.curly.go"}},comment:"interface variable types",end:"\\}",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#interface_variables_types_field"},{include:"$self"}]},interface_variables_types_field:{comment:"interface variable type fields",patterns:[{include:"#support_functions"},{include:"#type-declarations-without-brackets"},{begin:"(?:([\\w\\.\\*]+)?(\\[))",beginCaptures:{1:{patterns:[{include:"#type-declarations"},{match:"(?:\\w+)",name:"entity.name.type.go"}]},2:{name:"punctuation.definition.begin.bracket.square.go"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#generic_param_types"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.go"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"}]},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"}]}},comment:"other types",match:"([\\w\\.]+)"}]},keywords:{patterns:[{comment:"Flow control keywords",match:"\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\b",name:"keyword.control.go"},{match:"\\bchan\\b",name:"keyword.channel.go"},{match:"\\bconst\\b",name:"keyword.const.go"},{match:"\\bvar\\b",name:"keyword.var.go"},{match:"\\bfunc\\b",name:"keyword.function.go"},{match:"\\binterface\\b",name:"keyword.interface.go"},{match:"\\bmap\\b",name:"keyword.map.go"},{match:"\\bstruct\\b",name:"keyword.struct.go"},{match:"\\bimport\\b",name:"keyword.control.import.go"},{match:"\\btype\\b",name:"keyword.type.go"}]},label_loop_variables:{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.other.label.go"}]}},comment:"labeled loop variable name",match:"((?:^\\s*\\w+:\\s*$)|(?:^\\s*(?:\\bbreak\\b|\\bgoto\\b|\\bcontinue\\b)\\s+\\w+(?:\\s*/(?:/|\\*)\\s*.*)?$))"},language_constants:{captures:{1:{name:"constant.language.boolean.go"},2:{name:"constant.language.null.go"},3:{name:"constant.language.iota.go"}},comment:"Language constants",match:"\\b(?:(true|false)|(nil)|(iota))\\b"},map_types:{begin:"(?:(\\bmap\\b)(\\[))",beginCaptures:{1:{name:"keyword.map.go"},2:{name:"punctuation.definition.begin.bracket.square.go"}},comment:"map types",end:"(?:(\\])((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?!(?:[\\[\\]\\*]+)?\\b(?:func|struct|map)\\b)(?:[\\*\\[\\]]+)?(?:[\\w\\.]+)(?:\\[(?:(?:[\\w\\.\\*\\[\\]\\{\\}]+)(?:(?:\\,\\s*(?:[\\w\\.\\*\\[\\]\\{\\}]+))*))?\\])?)?)",endCaptures:{1:{name:"punctuation.definition.end.bracket.square.go"},2:{patterns:[{include:"#type-declarations-without-brackets"},{match:"\\[",name:"punctuation.definition.begin.bracket.square.go"},{match:"\\]",name:"punctuation.definition.end.bracket.square.go"},{match:"\\w+",name:"entity.name.type.go"}]}},patterns:[{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{include:"#functions"},{match:"\\[",name:"punctuation.definition.begin.bracket.square.go"},{match:"\\]",name:"punctuation.definition.end.bracket.square.go"},{match:"\\{",name:"punctuation.definition.begin.bracket.curly.go"},{match:"\\}",name:"punctuation.definition.end.bracket.curly.go"},{match:"\\(",name:"punctuation.definition.begin.bracket.round.go"},{match:"\\)",name:"punctuation.definition.end.bracket.round.go"},{match:"\\w+",name:"entity.name.type.go"}]},multi_types:{begin:"(\\btype\\b)\\s*(\\()",beginCaptures:{1:{name:"keyword.type.go"},2:{name:"punctuation.definition.begin.bracket.round.go"}},comment:"multi type declaration",end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#struct_variables_types"},{include:"#interface_variables_types"},{include:"#type-declarations-without-brackets"},{include:"#parameter-variable-types"},{match:"(?:\\w+)",name:"entity.name.type.go"}]},numeric_literals:{captures:{0:{patterns:[{begin:"(?=.)",end:"(?:\\n|$)",patterns:[{captures:{1:{name:"constant.numeric.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},2:{name:"punctuation.separator.constant.numeric.go"},3:{name:"constant.numeric.decimal.point.go"},4:{name:"constant.numeric.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},5:{name:"punctuation.separator.constant.numeric.go"},6:{name:"keyword.other.unit.exponent.decimal.go"},7:{name:"keyword.operator.plus.exponent.decimal.go"},8:{name:"keyword.operator.minus.exponent.decimal.go"},9:{name:"constant.numeric.exponent.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},10:{name:"keyword.other.unit.imaginary.go"},11:{name:"constant.numeric.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},12:{name:"punctuation.separator.constant.numeric.go"},13:{name:"keyword.other.unit.exponent.decimal.go"},14:{name:"keyword.operator.plus.exponent.decimal.go"},15:{name:"keyword.operator.minus.exponent.decimal.go"},16:{name:"constant.numeric.exponent.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},17:{name:"keyword.other.unit.imaginary.go"},18:{name:"constant.numeric.decimal.point.go"},19:{name:"constant.numeric.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},20:{name:"punctuation.separator.constant.numeric.go"},21:{name:"keyword.other.unit.exponent.decimal.go"},22:{name:"keyword.operator.plus.exponent.decimal.go"},23:{name:"keyword.operator.minus.exponent.decimal.go"},24:{name:"constant.numeric.exponent.decimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},25:{name:"keyword.other.unit.imaginary.go"},26:{name:"keyword.other.unit.hexadecimal.go"},27:{name:"constant.numeric.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},28:{name:"punctuation.separator.constant.numeric.go"},29:{name:"constant.numeric.hexadecimal.go"},30:{name:"constant.numeric.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},31:{name:"punctuation.separator.constant.numeric.go"},32:{name:"keyword.other.unit.exponent.hexadecimal.go"},33:{name:"keyword.operator.plus.exponent.hexadecimal.go"},34:{name:"keyword.operator.minus.exponent.hexadecimal.go"},35:{name:"constant.numeric.exponent.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},36:{name:"keyword.other.unit.imaginary.go"},37:{name:"keyword.other.unit.hexadecimal.go"},38:{name:"constant.numeric.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},39:{name:"punctuation.separator.constant.numeric.go"},40:{name:"keyword.other.unit.exponent.hexadecimal.go"},41:{name:"keyword.operator.plus.exponent.hexadecimal.go"},42:{name:"keyword.operator.minus.exponent.hexadecimal.go"},43:{name:"constant.numeric.exponent.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},44:{name:"keyword.other.unit.imaginary.go"},45:{name:"keyword.other.unit.hexadecimal.go"},46:{name:"constant.numeric.hexadecimal.go"},47:{name:"constant.numeric.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},48:{name:"punctuation.separator.constant.numeric.go"},49:{name:"keyword.other.unit.exponent.hexadecimal.go"},50:{name:"keyword.operator.plus.exponent.hexadecimal.go"},51:{name:"keyword.operator.minus.exponent.hexadecimal.go"},52:{name:"constant.numeric.exponent.hexadecimal.go",patterns:[{match:"(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.go"}]},53:{name:"keyword.other.unit.imaginary.go"}},match:"(?:(?:(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?=|<(?!<)|>(?!>))",name:"keyword.operator.comparison.go"},{match:"(&&|\\|\\||!)",name:"keyword.operator.logical.go"},{match:"(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)",name:"keyword.operator.assignment.go"},{match:"(\\+|\\-|\\*|/|%)",name:"keyword.operator.arithmetic.go"},{match:"(&(?!\\^)|\\||\\^|&\\^|<<|>>|\\~)",name:"keyword.operator.arithmetic.bitwise.go"},{match:"\\.\\.\\.",name:"keyword.operator.ellipsis.go"}]},other_struct_interface_expressions:{comment:"struct and interface expression in-line (before curly bracket)",patterns:[{comment:"after control variables must be added exactly here, do not move it! (changing may not affect tests, so be careful!)",include:"#after_control_variables"},{captures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"}]},2:{patterns:[{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.square.go"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.go"}},patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"},{include:"$self"}]}]}},match:"(\\b[\\w\\.]+)(\\[(?:[^\\]]+)?\\])?(?=\\{)(?\\|\\&]+\\:)|(?:\\:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+))(?:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+)?(?:\\:\\b[\\w\\.\\*\\+/\\-\\%\\<\\>\\|\\&]+)?)(?=\\])"},statements:{patterns:[{include:"#package_name"},{include:"#import"},{include:"#syntax_errors"},{include:"#group-functions"},{include:"#group-types"},{include:"#group-variables"},{include:"#field_hover"}]},storage_types:{patterns:[{match:"\\bbool\\b",name:"storage.type.boolean.go"},{match:"\\bbyte\\b",name:"storage.type.byte.go"},{match:"\\berror\\b",name:"storage.type.error.go"},{match:"\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\b",name:"storage.type.numeric.go"},{match:"\\brune\\b",name:"storage.type.rune.go"},{match:"\\bstring\\b",name:"storage.type.string.go"},{match:"\\buintptr\\b",name:"storage.type.uintptr.go"},{match:"\\bany\\b",name:"entity.name.type.any.go"}]},string_escaped_char:{patterns:[{match:"\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})",name:"constant.character.escape.go"},{match:"\\\\[^0-7xuUabfnrtv\\'\"]",name:"invalid.illegal.unknown-escape.go"}]},string_literals:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.go"}},comment:"Interpreted string literals",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.go"}},name:"string.quoted.double.go",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]}]},string_placeholder:{patterns:[{match:"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]",name:"constant.other.placeholder.go"}]},struct_interface_declaration:{captures:{1:{name:"keyword.type.go"},2:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"}]}},comment:"struct, interface type declarations (related to: struct_variables_types, interface_variables_types)",match:"(?:(?:^\\s*)(\\btype\\b)(?:\\s*)([\\w\\.]+))"},struct_variable_types_fields_multi:{comment:"struct variable and type fields with multi lines",patterns:[{begin:"(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bstruct\\b)(?:\\s*)(\\{))",beginCaptures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.other.property.go"}]},2:{name:"keyword.struct.go"},3:{name:"punctuation.definition.begin.bracket.curly.go"}},comment:"struct in struct types",end:"\\}",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#struct_variables_types_fields"},{include:"$self"}]},{begin:"(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\binterface\\b)(?:\\s*)(\\{))",beginCaptures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.other.property.go"}]},2:{name:"keyword.interface.go"},3:{name:"punctuation.definition.begin.bracket.curly.go"}},comment:"interface in struct types",end:"\\}",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"#interface_variables_types_field"},{include:"$self"}]},{begin:"(?:((?:\\w+(?:\\,\\s*\\w+)*)(?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?:\\s+)(?:[\\[\\]\\*]+)?)(\\bfunc\\b)(?:\\s*)(\\())",beginCaptures:{1:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"variable.other.property.go"}]},2:{name:"keyword.function.go"},3:{name:"punctuation.definition.begin.bracket.round.go"}},comment:"function in struct types",end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"#function_param_types"},{include:"$self"}]},{begin:"(?:((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?(?\\|\\&]+))(\\.\\(\\btype\\b\\)\\s*)(\\{)",beginCaptures:{1:{patterns:[{include:"#operators"},{match:"\\w+",name:"variable.other.assignment.go"}]},2:{patterns:[{include:"#support_functions"},{include:"#type-declarations"},{match:"\\w+",name:"variable.other.go"}]},3:{patterns:[{include:"#delimiters"},{include:"#brackets"},{match:"\\btype\\b",name:"keyword.type.go"}]},4:{name:"punctuation.definition.begin.bracket.curly.go"}},comment:"switch type assertions, only highlights types after case keyword",end:"(?:\\})",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{captures:{1:{name:"keyword.control.go"},2:{patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"}]},3:{name:"punctuation.other.colon.go"},4:{patterns:[{include:"#comments"}]}},comment:"types after case keyword with single line",match:"(?:^\\s*(\\bcase\\b))(?:\\s+)([\\w\\.\\,\\*\\=\\<\\>\\!\\s]+)(:)(\\s*/(?:/|\\*)\\s*.*)?$"},{begin:"\\bcase\\b",beginCaptures:{0:{name:"keyword.control.go"}},comment:"types after case keyword with multi lines",end:"\\:",endCaptures:{0:{name:"punctuation.other.colon.go"}},patterns:[{include:"#type-declarations"},{match:"\\w+",name:"entity.name.type.go"}]},{include:"$self"}]},syntax_errors:{patterns:[{captures:{1:{name:"invalid.illegal.slice.go"}},comment:"Syntax error using slices",match:"\\[\\](\\s+)"},{comment:"Syntax error numeric literals",match:"\\b0[0-7]*[89]\\d*\\b",name:"invalid.illegal.numeric.go"}]},terminators:{comment:"Terminators",match:";",name:"punctuation.terminator.go"},"type-declarations":{comment:"includes all type declarations",patterns:[{include:"#language_constants"},{include:"#comments"},{include:"#map_types"},{include:"#brackets"},{include:"#delimiters"},{include:"#keywords"},{include:"#operators"},{include:"#runes"},{include:"#storage_types"},{include:"#raw_string_literals"},{include:"#string_literals"},{include:"#numeric_literals"},{include:"#terminators"}]},"type-declarations-without-brackets":{comment:"includes all type declarations without brackets (in some cases, brackets need to be captured manually)",patterns:[{include:"#language_constants"},{include:"#comments"},{include:"#map_types"},{include:"#delimiters"},{include:"#keywords"},{include:"#operators"},{include:"#runes"},{include:"#storage_types"},{include:"#raw_string_literals"},{include:"#string_literals"},{include:"#numeric_literals"},{include:"#terminators"}]},type_assertion_inline:{captures:{1:{name:"keyword.type.go"},2:{patterns:[{include:"#type-declarations"},{match:"(?:\\w+)",name:"entity.name.type.go"}]}},comment:"struct/interface types in-line (type assertion) | switch type keyword",match:"(?:(?<=\\.\\()(?:(\\btype\\b)|((?:(?:\\s*(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+)?[\\w\\.\\[\\]\\*]+))(?=\\)))"},var_const_assignment:{comment:"variable assignment with var and const keyword",patterns:[{captures:{1:{patterns:[{include:"#delimiters"},{match:"\\w+",name:"variable.other.assignment.go"}]},2:{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:"\\(",name:"punctuation.definition.begin.bracket.round.go"},{match:"\\)",name:"punctuation.definition.end.bracket.round.go"},{match:"\\[",name:"punctuation.definition.begin.bracket.square.go"},{match:"\\]",name:"punctuation.definition.end.bracket.square.go"},{match:"\\w+",name:"entity.name.type.go"}]}},comment:"var and const with single type assignment",match:"(?:(?<=\\bvar\\b|\\bconst\\b)(?:\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"},{begin:"(?:(?<=\\bvar\\b|\\bconst\\b)(?:\\s*)(\\())",beginCaptures:{1:{name:"punctuation.definition.begin.bracket.round.go"}},comment:"var and const with multi type assignment",end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{captures:{1:{patterns:[{include:"#delimiters"},{match:"\\w+",name:"variable.other.assignment.go"}]},2:{patterns:[{include:"#type-declarations-without-brackets"},{include:"#generic_types"},{match:"\\(",name:"punctuation.definition.begin.bracket.round.go"},{match:"\\)",name:"punctuation.definition.end.bracket.round.go"},{match:"\\[",name:"punctuation.definition.begin.bracket.square.go"},{match:"\\]",name:"punctuation.definition.end.bracket.square.go"},{match:"\\w+",name:"entity.name.type.go"}]}},match:"(?:(?:^\\s*)(\\b[\\w\\.]+(?:\\,\\s*[\\w\\.]+)*)(?:\\s*)((?:(?:(?:[\\*\\[\\]]+)?(?:\\<\\-\\s*)?\\bchan\\b(?:\\s*\\<\\-)?\\s*)+(?:\\([^\\)]+\\))?)?(?!(?:[\\[\\]\\*]+)?\\b(?:struct|func|map)\\b)(?:[\\w\\.\\[\\]\\*]+(?:\\,\\s*[\\w\\.\\[\\]\\*]+)*)?(?:\\s*)(?:\\=)?)?)"},{include:"$self"}]}]},variable_assignment:{comment:"variable assignment",patterns:[{captures:{0:{patterns:[{include:"#delimiters"},{match:"\\d\\w*",name:"invalid.illegal.identifier.go"},{match:"\\w+",name:"variable.other.assignment.go"}]}},comment:"variable assignment with :=",match:"\\b\\w+(?:\\,\\s*\\w+)*(?=\\s*:=)"},{captures:{0:{patterns:[{include:"#delimiters"},{include:"#operators"},{match:"\\d\\w*",name:"invalid.illegal.identifier.go"},{match:"\\w+",name:"variable.other.assignment.go"}]}},comment:"variable assignment with =",match:"\\b[\\w\\.\\*]+(?:\\,\\s*[\\w\\.\\*]+)*(?=\\s*=(?!=))"}]}},i="source.go",r={displayName:"Go",name:"go",patterns:n,repository:a,scopeName:i};export{r as default,e as displayName,t as name,n as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/graphql.mjs b/lib/dist/grammar/graphql.mjs new file mode 100644 index 0000000..38b29df --- /dev/null +++ b/lib/dist/grammar/graphql.mjs @@ -0,0 +1 @@ +var e="GraphQL",a=["graphql","graphqls","gql","graphcool"],n="graphql",l=[{include:"#graphql"}],i={graphql:{patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-fragment-definition"},{include:"#graphql-directive-definition"},{include:"#graphql-type-interface"},{include:"#graphql-enum"},{include:"#graphql-scalar"},{include:"#graphql-union"},{include:"#graphql-schema"},{include:"#graphql-operation-def"},{include:"#literal-quasi-embedded"}]},"graphql-ampersand":{captures:{1:{name:"keyword.operator.logical.graphql"}},match:"\\s*(&)"},"graphql-arguments":{begin:"\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.directive.graphql"}},end:"\\s*(\\))",endCaptures:{1:{name:"meta.brace.round.directive.graphql"}},name:"meta.arguments.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{begin:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(:))",beginCaptures:{1:{name:"variable.parameter.graphql"},2:{name:"punctuation.colon.graphql"}},end:"(?=\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\s*(:))|\\)))|\\s*(,)",endCaptures:{3:{name:"punctuation.comma.graphql"}},patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-value"},{include:"#graphql-skip-newlines"}]},{include:"#literal-quasi-embedded"}]},"graphql-boolean-value":{captures:{1:{name:"constant.language.boolean.graphql"}},match:"\\s*\\b(true|false)\\b"},"graphql-colon":{captures:{1:{name:"punctuation.colon.graphql"}},match:"\\s*(:)"},"graphql-comma":{captures:{1:{name:"punctuation.comma.graphql"}},match:"\\s*(,)"},"graphql-comment":{patterns:[{captures:{1:{name:"punctuation.whitespace.comment.leading.graphql"}},comment:"need to prefix comment space with a scope else Atom's reflow cmd doesn't work",match:"(\\s*)(#).*",name:"comment.line.graphql.js"},{begin:'(""")',beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.graphql"}},end:'(""")',name:"comment.line.graphql.js"},{begin:'(")',beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.graphql"}},end:'(")',name:"comment.line.graphql.js"}]},"graphql-description-docstring":{begin:'"""',end:'"""',name:"comment.block.graphql"},"graphql-description-singleline":{match:'#(?=([^"]*"[^"]*")*[^"]*$).*$',name:"comment.line.number-sign.graphql"},"graphql-directive":{applyEndPatternLast:1,begin:"\\s*((@)\\s*([_A-Za-z][_0-9A-Za-z]*))",beginCaptures:{1:{name:"entity.name.function.directive.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-arguments"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-directive-definition":{applyEndPatternLast:1,begin:"\\s*(\\bdirective\\b)\\s*(@[_A-Za-z][_0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.directive.graphql"},2:{name:"entity.name.function.directive.graphql"},3:{name:"keyword.on.graphql"},4:{name:"support.type.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-variable-definitions"},{applyEndPatternLast:1,begin:"\\s*(\\bon\\b)\\s*([_A-Za-z]*)",beginCaptures:{1:{name:"keyword.on.graphql"},2:{name:"support.type.location.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"},{captures:{2:{name:"support.type.location.graphql"}},match:"\\s*(\\|)\\s*([_A-Za-z]*)"}]},{include:"#graphql-skip-newlines"},{include:"#graphql-comment"},{include:"#literal-quasi-embedded"}]},"graphql-enum":{begin:"\\s*+\\b(enum)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)",beginCaptures:{1:{name:"keyword.enum.graphql"},2:{name:"support.type.enum.graphql"}},end:"(?<=})",name:"meta.enum.graphql",patterns:[{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},name:"meta.type.object.graphql",patterns:[{include:"#graphql-object-type"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-enum-value"},{include:"#literal-quasi-embedded"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"}]},"graphql-enum-value":{match:"\\s*(?!=\\b(true|false|null)\\b)([_A-Za-z][_0-9A-Za-z]*)",name:"constant.character.enum.graphql"},"graphql-field":{patterns:[{captures:{1:{name:"string.unquoted.alias.graphql"},2:{name:"punctuation.colon.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(:)"},{captures:{1:{name:"variable.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},{include:"#graphql-arguments"},{include:"#graphql-directive"},{include:"#graphql-selection-set"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-float-value":{captures:{1:{name:"constant.numeric.float.graphql"}},match:"\\s*(-?(0|[1-9][0-9]*)(\\.[0-9]+)?((e|E)(\\+|-)?[0-9]+)?)"},"graphql-fragment-definition":{begin:"\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))",captures:{1:{name:"keyword.fragment.graphql"},2:{name:"entity.name.fragment.graphql"},3:{name:"keyword.on.graphql"},4:{name:"support.type.graphql"}},end:"(?<=})",name:"meta.fragment.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-fragment-spread":{applyEndPatternLast:1,begin:"\\s*(\\.\\.\\.)\\s*(?!\\bon\\b)([_A-Za-z][_0-9A-Za-z]*)",captures:{1:{name:"keyword.operator.spread.graphql"},2:{name:"variable.fragment.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#literal-quasi-embedded"},{include:"#graphql-skip-newlines"}]},"graphql-ignore-spaces":{match:"\\s*"},"graphql-inline-fragment":{applyEndPatternLast:1,begin:"\\s*(\\.\\.\\.)\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*))?",captures:{1:{name:"keyword.operator.spread.graphql"},2:{name:"keyword.on.graphql"},3:{name:"support.type.graphql"}},end:"(?=.)",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-selection-set"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"},{include:"#literal-quasi-embedded"}]},"graphql-input-types":{patterns:[{include:"#graphql-scalar-type"},{captures:{1:{name:"support.type.graphql"},2:{name:"keyword.operator.nulltype.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(!))?"},{begin:"\\s*(\\[)",captures:{1:{name:"meta.brace.square.graphql"},2:{name:"keyword.operator.nulltype.graphql"}},end:"\\s*(\\])(?:\\s*(!))?",name:"meta.type.list.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-input-types"},{include:"#graphql-comma"},{include:"#literal-quasi-embedded"}]}]},"graphql-list-value":{patterns:[{begin:"\\s*+(\\[)",beginCaptures:{1:{name:"meta.brace.square.graphql"}},end:"\\s*(\\])",endCaptures:{1:{name:"meta.brace.square.graphql"}},name:"meta.listvalues.graphql",patterns:[{include:"#graphql-value"}]}]},"graphql-name":{captures:{1:{name:"entity.name.function.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},"graphql-null-value":{captures:{1:{name:"constant.language.null.graphql"}},match:"\\s*\\b(null)\\b"},"graphql-object-field":{captures:{1:{name:"constant.object.key.graphql"},2:{name:"string.unquoted.graphql"},3:{name:"punctuation.graphql"}},match:"\\s*(([_A-Za-z][_0-9A-Za-z]*))\\s*(:)"},"graphql-object-value":{patterns:[{begin:"\\s*+({)",beginCaptures:{1:{name:"meta.brace.curly.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"meta.brace.curly.graphql"}},name:"meta.objectvalues.graphql",patterns:[{include:"#graphql-object-field"},{include:"#graphql-value"}]}]},"graphql-operation-def":{patterns:[{include:"#graphql-query-mutation"},{include:"#graphql-name"},{include:"#graphql-variable-definitions"},{include:"#graphql-directive"},{include:"#graphql-selection-set"}]},"graphql-query-mutation":{captures:{1:{name:"keyword.operation.graphql"}},match:"\\s*\\b(query|mutation)\\b"},"graphql-scalar":{captures:{1:{name:"keyword.scalar.graphql"},2:{name:"entity.scalar.graphql"}},match:"\\s*\\b(scalar)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)"},"graphql-scalar-type":{captures:{1:{name:"support.type.builtin.graphql"},2:{name:"keyword.operator.nulltype.graphql"}},match:"\\s*\\b(Int|Float|String|Boolean|ID)\\b(?:\\s*(!))?"},"graphql-schema":{begin:"\\s*\\b(schema)\\b",beginCaptures:{1:{name:"keyword.schema.graphql"}},end:"(?<=})",patterns:[{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},patterns:[{begin:"\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)",beginCaptures:{1:{name:"variable.arguments.graphql"}},end:"(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)",endCaptures:{5:{name:"punctuation.comma.graphql"}},patterns:[{captures:{1:{name:"support.type.graphql"}},match:"\\s*([_A-Za-z][_0-9A-Za-z]*)"},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-colon"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-skip-newlines"}]},{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-directive"},{include:"#graphql-skip-newlines"}]},"graphql-selection-set":{begin:"\\s*({)",beginCaptures:{1:{name:"punctuation.operation.graphql"}},end:"\\s*(})",endCaptures:{1:{name:"punctuation.operation.graphql"}},name:"meta.selectionset.graphql",patterns:[{include:"#graphql-comment"},{include:"#graphql-description-docstring"},{include:"#graphql-description-singleline"},{include:"#graphql-field"},{include:"#graphql-fragment-spread"},{include:"#graphql-inline-fragment"},{include:"#graphql-comma"},{include:"#native-interpolation"},{include:"#literal-quasi-embedded"}]},"graphql-skip-newlines":{match:"\\s*\n"},"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*+(?:(("))|(\n))',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:"(?=[\n,)])",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"}]}},r="source.graphql",t={displayName:e,fileTypes:a,name:n,patterns:l,repository:i,scopeName:r};export{t as default,e as displayName,a as fileTypes,n as name,l as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/groovy.mjs b/lib/dist/grammar/groovy.mjs new file mode 100644 index 0000000..8a813d1 --- /dev/null +++ b/lib/dist/grammar/groovy.mjs @@ -0,0 +1 @@ +var e="Groovy",n="groovy",t=[{captures:{1:{name:"punctuation.definition.comment.groovy"}},match:"^(#!).+$\\n",name:"comment.line.hashbang.groovy"},{captures:{1:{name:"keyword.other.package.groovy"},2:{name:"storage.modifier.package.groovy"},3:{name:"punctuation.terminator.groovy"}},match:"^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",name:"meta.package.groovy"},{begin:"(import static)\\b\\s*",beginCaptures:{1:{name:"keyword.other.import.static.groovy"}},captures:{1:{name:"keyword.other.import.groovy"},2:{name:"storage.modifier.import.groovy"},3:{name:"punctuation.terminator.groovy"}},contentName:"storage.modifier.import.groovy",end:"\\s*(?:$|(?=%>)(;))",endCaptures:{1:{name:"punctuation.terminator.groovy"}},name:"meta.import.groovy",patterns:[{match:"\\.",name:"punctuation.separator.groovy"},{match:"\\s",name:"invalid.illegal.character_not_allowed_here.groovy"}]},{begin:"(import)\\b\\s*",beginCaptures:{1:{name:"keyword.other.import.groovy"}},captures:{1:{name:"keyword.other.import.groovy"},2:{name:"storage.modifier.import.groovy"},3:{name:"punctuation.terminator.groovy"}},contentName:"storage.modifier.import.groovy",end:"\\s*(?:$|(?=%>)|(;))",endCaptures:{1:{name:"punctuation.terminator.groovy"}},name:"meta.import.groovy",patterns:[{match:"\\.",name:"punctuation.separator.groovy"},{match:"\\s",name:"invalid.illegal.character_not_allowed_here.groovy"}]},{captures:{1:{name:"keyword.other.import.groovy"},2:{name:"keyword.other.import.static.groovy"},3:{name:"storage.modifier.import.groovy"},4:{name:"punctuation.terminator.groovy"}},match:"^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",name:"meta.import.groovy"},{include:"#groovy"}],o={annotations:{patterns:[{begin:"(?)",end:"\\}",patterns:[{begin:"(?<=\\{)(?=[^\\}]*?->)",end:"->",endCaptures:{0:{name:"keyword.operator.groovy"}},patterns:[{begin:"(?!->)",end:"(?=->)",name:"meta.closure.parameters.groovy",patterns:[{begin:"(?!,|->)",end:"(?=,|->)",name:"meta.closure.parameter.groovy",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.groovy"}},end:"(?=,|->)",name:"meta.parameter.default.groovy",patterns:[{include:"#groovy-code"}]},{include:"#parameters"}]}]}]},{begin:"(?=[^}])",end:"(?=\\})",patterns:[{include:"#groovy-code"}]}]},"comment-block":{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.groovy"}},end:"\\*/",name:"comment.block.groovy"},comments:{patterns:[{captures:{0:{name:"punctuation.definition.comment.groovy"}},match:"/\\*\\*/",name:"comment.block.empty.groovy"},{include:"text.html.javadoc"},{include:"#comment-block"},{captures:{1:{name:"punctuation.definition.comment.groovy"}},match:"(//).*$\\n?",name:"comment.line.double-slash.groovy"}]},constants:{patterns:[{match:"\\b([A-Z][A-Z0-9_]+)\\b",name:"constant.other.groovy"},{match:"\\b(true|false|null)\\b",name:"constant.language.groovy"}]},constructors:{applyEndPatternLast:1,begin:"(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",end:"}",patterns:[{include:"#method-content"}]},"enum-values":{patterns:[{begin:"(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",beginCaptures:{1:{name:"constant.enum.name.groovy"}},end:",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",patterns:[{begin:"\\(",end:"\\)",name:"meta.enum.value.groovy",patterns:[{match:",",name:"punctuation.definition.seperator.parameter.groovy"},{include:"#groovy-code"}]}]}]},groovy:{patterns:[{include:"#comments"},{include:"#class"},{include:"#variables"},{include:"#methods"},{include:"#annotations"},{include:"#groovy-code"}]},"groovy-code":{patterns:[{include:"#groovy-code-minus-map-keys"},{include:"#map-keys"}]},"groovy-code-minus-map-keys":{comment:"In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that",patterns:[{include:"#comments"},{include:"#annotations"},{include:"#support-functions"},{include:"#keyword-language"},{include:"#values"},{include:"#anonymous-classes-and-new"},{include:"#keyword-operator"},{include:"#types"},{include:"#storage-modifiers"},{include:"#parens"},{include:"#closures"},{include:"#braces"}]},keyword:{patterns:[{include:"#keyword-operator"},{include:"#keyword-language"}]},"keyword-language":{patterns:[{match:"\\b(try|catch|finally|throw)\\b",name:"keyword.control.exception.groovy"},{match:"\\b((?",name:"keyword.operator.arrow.groovy"},{match:"<<",name:"keyword.operator.leftshift.groovy"},{match:"(?<=\\S)\\.(?=\\S)",name:"keyword.operator.navigation.groovy"},{match:"(?<=\\S)\\?\\.(?=\\S)",name:"keyword.operator.safe-navigation.groovy"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.groovy"}},end:"(?=$|\\)|}|])",name:"meta.evaluation.ternary.groovy",patterns:[{match:":",name:"keyword.operator.ternary.expression-seperator.groovy"},{include:"#groovy-code-minus-map-keys"}]},{match:"==~",name:"keyword.operator.match.groovy"},{match:"=~",name:"keyword.operator.find.groovy"},{match:"\\b(instanceof)\\b",name:"keyword.operator.instanceof.groovy"},{match:"(===|==|!=|<=|>=|<=>|<>|<|>|<<)",name:"keyword.operator.comparison.groovy"},{match:"=",name:"keyword.operator.assignment.groovy"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.groovy"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.groovy"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.groovy"}]},"language-variables":{patterns:[{match:"\\b(this|super)\\b",name:"variable.language.groovy"}]},"map-keys":{patterns:[{captures:{1:{name:"constant.other.key.groovy"},2:{name:"punctuation.definition.seperator.key-value.groovy"}},match:"(\\w+)\\s*(:)"}]},"method-call":{begin:"([\\w$]+)(\\()",beginCaptures:{1:{name:"meta.method.groovy"},2:{name:"punctuation.definition.method-parameters.begin.groovy"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.method-parameters.end.groovy"}},name:"meta.method-call.groovy",patterns:[{match:",",name:"punctuation.definition.seperator.parameter.groovy"},{include:"#groovy-code"}]},"method-content":{patterns:[{match:"\\s"},{include:"#annotations"},{begin:"(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",end:"(?=[\\w$]+\\s*\\()",name:"meta.method.return-type.java",patterns:[{include:"#storage-modifiers"},{include:"#types"}]},{begin:"([\\w$]+)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.java"}},end:"\\)",name:"meta.definition.method.signature.java",patterns:[{begin:"(?=[^)])",end:"(?=\\))",name:"meta.method.parameters.groovy",patterns:[{begin:"(?=[^,)])",end:"(?=,|\\))",name:"meta.method.parameter.groovy",patterns:[{match:",",name:"punctuation.definition.separator.groovy"},{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.groovy"}},end:"(?=,|\\))",name:"meta.parameter.default.groovy",patterns:[{include:"#groovy-code"}]},{include:"#parameters"}]}]}]},{begin:"(?=<)",end:"(?=\\s)",name:"meta.method.paramerised-type.groovy",patterns:[{begin:"<",end:">",name:"storage.type.parameters.groovy",patterns:[{include:"#types"},{match:",",name:"punctuation.definition.seperator.groovy"}]}]},{begin:"throws",beginCaptures:{0:{name:"storage.modifier.groovy"}},end:"(?={|;)|^(?=\\s*(?:[^{\\s]|$))",name:"meta.throwables.groovy",patterns:[{include:"#object-types"}]},{begin:"{",end:"(?=})",name:"meta.method.body.java",patterns:[{include:"#groovy-code"}]}]},methods:{applyEndPatternLast:1,begin:"(?x:(?<=;|^|{)(?=\\s*\n(?:\n(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\n|\n(?:def)\n|\n(?:\n(?:\n(?:void|boolean|byte|char|short|int|float|long|double)\n|\n(?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*)\n)\n[\\[\\]]*\n(?:<.*>)?\n)\n\n)\n\\s+\n([^=]+\\s+)?\\w+\\s*\\(\n))",end:"}|(?=[^{])",name:"meta.definition.method.groovy",patterns:[{include:"#method-content"}]},nest_curly:{begin:"\\{",captures:{0:{name:"punctuation.section.scope.groovy"}},end:"\\}",patterns:[{include:"#nest_curly"}]},numbers:{patterns:[{match:"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",name:"constant.numeric.groovy"}]},"object-types":{patterns:[{begin:"\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",end:">|[^\\w\\s,\\?<\\[\\]]",name:"storage.type.generic.groovy",patterns:[{include:"#object-types"},{begin:"<",comment:"This is just to support <>'s with no actual type prefix",end:">|[^\\w\\s,\\[\\]<]",name:"storage.type.generic.groovy"}]},{begin:"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",end:"(?=[^\\]\\s])",name:"storage.type.object.array.groovy",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#groovy"}]}]},{match:"\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",name:"storage.type.groovy"}]},"object-types-inherited":{patterns:[{begin:"\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",end:">|[^\\w\\s,\\?<\\[\\]]",name:"entity.other.inherited-class.groovy",patterns:[{include:"#object-types-inherited"},{begin:"<",comment:"This is just to support <>'s with no actual type prefix",end:">|[^\\w\\s,\\[\\]<]",name:"storage.type.generic.groovy"}]},{captures:{1:{name:"keyword.operator.dereference.groovy"}},match:"\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",name:"entity.other.inherited-class.groovy"}]},parameters:{patterns:[{include:"#annotations"},{include:"#storage-modifiers"},{include:"#types"},{match:"\\w+",name:"variable.parameter.method.groovy"}]},parens:{begin:"\\(",end:"\\)",patterns:[{include:"#groovy-code"}]},"primitive-arrays":{patterns:[{match:"\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",name:"storage.type.primitive.array.groovy"}]},"primitive-types":{patterns:[{match:"\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",name:"storage.type.primitive.groovy"}]},regexp:{patterns:[{begin:"/(?=[^/]+/([^>]|$))",beginCaptures:{0:{name:"punctuation.definition.string.regexp.begin.groovy"}},end:"/",endCaptures:{0:{name:"punctuation.definition.string.regexp.end.groovy"}},name:"string.regexp.groovy",patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"}]},{begin:'~"',beginCaptures:{0:{name:"punctuation.definition.string.regexp.begin.groovy"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.regexp.end.groovy"}},name:"string.regexp.compiled.groovy",patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"}]}]},"storage-modifiers":{patterns:[{match:"\\b(private|protected|public)\\b",name:"storage.modifier.access-control.groovy"},{match:"\\b(static)\\b",name:"storage.modifier.static.groovy"},{match:"\\b(final)\\b",name:"storage.modifier.final.groovy"},{match:"\\b(native|synchronized|abstract|threadsafe|transient)\\b",name:"storage.modifier.other.groovy"}]},"string-quoted-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.groovy"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.double.groovy",patterns:[{include:"#string-quoted-double-contents"}]},"string-quoted-double-contents":{patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"},{applyEndPatternLast:1,begin:"\\$\\w",end:"(?=\\W)",name:"variable.other.interpolated.groovy",patterns:[{match:"\\w",name:"variable.other.interpolated.groovy"},{match:"\\.",name:"keyword.other.dereference.groovy"}]},{begin:"\\$\\{",captures:{0:{name:"punctuation.section.embedded.groovy"}},end:"\\}",name:"source.groovy.embedded.source",patterns:[{include:"#nest_curly"}]}]},"string-quoted-double-multiline":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.groovy"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.double.multiline.groovy",patterns:[{include:"#string-quoted-double-contents"}]},"string-quoted-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.groovy"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.single.groovy",patterns:[{include:"#string-quoted-single-contents"}]},"string-quoted-single-contents":{patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"}]},"string-quoted-single-multiline":{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.groovy"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.single.multiline.groovy",patterns:[{include:"#string-quoted-single-contents"}]},strings:{patterns:[{include:"#string-quoted-double-multiline"},{include:"#string-quoted-single-multiline"},{include:"#string-quoted-double"},{include:"#string-quoted-single"},{include:"#regexp"}]},structures:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.structure.begin.groovy"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.structure.end.groovy"}},name:"meta.structure.groovy",patterns:[{include:"#groovy-code"},{match:",",name:"punctuation.definition.separator.groovy"}]},"support-functions":{patterns:[{match:"(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",name:"support.function.print.groovy"},{match:"(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\nNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\nArrayEquals)))\\b",name:"support.function.testing.groovy"}]},types:{patterns:[{match:"\\b(def)\\b",name:"storage.type.def.groovy"},{include:"#primitive-types"},{include:"#primitive-arrays"},{include:"#object-types"}]},values:{patterns:[{include:"#language-variables"},{include:"#strings"},{include:"#numbers"},{include:"#constants"},{include:"#types"},{include:"#structures"},{include:"#method-call"}]},variables:{applyEndPatternLast:1,patterns:[{begin:"(?x:(?=\n(?:\n(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\n|\n(?:def)\n|\n(?:void|boolean|byte|char|short|int|float|long|double)\n|\n(?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*)\n)\n\\s+\n[\\w\\d_<>\\[\\],\\s]+\n(?:=|$)\n\n))",end:";|$",name:"meta.definition.variable.groovy",patterns:[{match:"\\s"},{captures:{1:{name:"constant.variable.groovy"}},match:"([A-Z_0-9]+)\\s+(?=\\=)"},{captures:{1:{name:"meta.definition.variable.name.groovy"}},match:"(\\w[^\\s,]*)\\s+(?=\\=)"},{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.groovy"}},end:"$",patterns:[{include:"#groovy-code"}]},{captures:{1:{name:"meta.definition.variable.name.groovy"}},match:"(\\w[^\\s=]*)(?=\\s*($|;))"},{include:"#groovy-code"}]}]}},a="source.groovy",r={displayName:e,name:n,patterns:t,repository:o,scopeName:a};export{r as default,e as displayName,n as name,t as patterns,o as repository,a as scopeName}; diff --git a/lib/dist/grammar/hack.mjs b/lib/dist/grammar/hack.mjs new file mode 100644 index 0000000..436e55b --- /dev/null +++ b/lib/dist/grammar/hack.mjs @@ -0,0 +1 @@ +var e="Hack",t=["hh","php","hack"],n="(/\\*|\\{\\s*$|<<>)",endCaptures:{1:{name:"punctuation.definition.attributes.php"}},name:"meta.attributes.php",patterns:[{include:"#comments"},{match:"([A-Za-z_][A-Za-z0-9_]*)",name:"entity.other.attribute-name.php"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.php"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.php"}},patterns:[{include:"#language"}]}]}]},"class-builtin":{patterns:[{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?i)(\\\\)?\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection)|ursor(Exception)?|lient)|Timestamp|I(nt(32|64)|d)|D(B(Ref)?|ate)|Pool|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(tackable|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Yaf_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|llator)|a(chingIterator|llbackFilterIterator))|T(hread|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tlDateFormatter|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|ZipArchive|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(Zone)?|Interval|Period))|Un(derflowException|expectedValueException)|JsonSerializable|finfo|P(har(Data|FileInfo)?|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|Fil(terIterator|esystemIterator)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(MQP(C(hannel|onnection)|E(nvelope|xchange)|Queue)|ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\b",name:"support.class.builtin.php"}]},"class-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9]+\\\\)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{1:{name:"support.class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{begin:"(?=[\\\\a-zA-Z_])",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{1:{name:"support.class.php"}},patterns:[{include:"#namespace"}]}]},comments:{patterns:[{begin:"/\\*\\*(?:#@\\+)?\\s*$",captures:{0:{name:"punctuation.definition.comment.php"}},comment:"This now only highlights a docblock if the first line contains only /**\n- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n- Now matches /**#@+ too - used for docblock templates:\n http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate",end:"\\*/",name:"comment.block.documentation.phpdoc.php",patterns:[{include:"#php_doc"}]},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.php"}},end:"\\*/",name:"comment.block.php"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.double-slash.php"}]}]},constants:{patterns:[{begin:"(?xi)\n(?=\n(\n(\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n|\n([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n)\n[^a-z_0-9\\\\]\n)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{1:{name:"constant.other.php"}},patterns:[{include:"#namespace"}]},{begin:"(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])",end:"(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])",patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__)\\b",name:"constant.language.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b",name:"support.constant.core.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b",name:"support.constant.std.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b",name:"support.constant.ext.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b",name:"support.constant.parser-token.php"},{comment:"In PHP, any identifier which is not a variable is taken to be a constant.\nHowever, if there is no constant defined with the given name then a notice\nis generated and the constant is assumed to have the value of its name.",match:"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*",name:"constant.other.php"}]}]},"function-arguments":{patterns:[{include:"#comments"},{include:"#attributes"},{include:"#type-annotation"},{begin:"(?xi)((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name",beginCaptures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"}},end:"(?xi)\n\\s*(?=,|\\)|$)",patterns:[{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.assignment.php"}},end:"(?=,|\\))",patterns:[{include:"#language"}]}]}]},"function-call":{patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()",comment:"Functions in a user-defined namespace (overrides any built-ins)",end:"(?=\\s*\\()",patterns:[{include:"#user-function-call"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.php"},{begin:"(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()",beginCaptures:{1:{name:"punctuation.separator.inheritance.php"}},comment:"Root namespace function calls (built-in or user)",end:"(?=\\s*\\()",patterns:[{match:"(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()",name:"support.function.construct.php"},{include:"#support"},{include:"#user-function-call"}]}]},"function-return-type":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"punctuation.definition.type.php"}},end:"(?=[{;])",patterns:[{include:"#comments"},{include:"#type-annotation"},{include:"#class-name"}]}]},generics:{patterns:[{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.generics.php"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.generics.php"}},name:"meta.generics.php",patterns:[{include:"#comments"},{include:"#generics"},{match:"([-+])?([A-Za-z_][A-Za-z0-9_]*)(?:\\s+(as|super)\\s+([A-Za-z_][A-Za-z0-9_]*))?",name:"support.type.php"},{include:"#type-annotation"}]}]},heredoc:{patterns:[{begin:'<<<\\s*("?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$',beginCaptures:{2:{name:"keyword.operator.heredoc.php"}},end:"^(\\2)(?=;?$)",endCaptures:{1:{name:"keyword.operator.heredoc.php"}},name:"string.unquoted.heredoc.php",patterns:[{include:"#interpolation"}]},{begin:"<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$",beginCaptures:{2:{name:"keyword.operator.heredoc.php"}},end:"^(\\2)(?=;?$)",endCaptures:{1:{name:"keyword.operator.heredoc.php"}},name:"string.unquoted.heredoc.nowdoc.php"}]},implements:{patterns:[{begin:"(?i)(implements)\\s+",beginCaptures:{1:{name:"storage.modifier.implements.php"}},end:"(?i)(?=[;{])",patterns:[{include:"#comments"},{begin:"(?i)(?=[a-z0-9_\\\\]+)",contentName:"meta.other.inherited-class.php",end:"(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)",patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9]+\\\\)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_][a-z_0-9]*",name:"entity.other.inherited-class.php"}]}]}]},instantiation:{begin:"(?i)(new)\\s+",beginCaptures:{1:{name:"keyword.other.new.php"}},end:"(?i)(?=[^$a-z0-9_\\\\])",patterns:[{match:"(parent|static|self)(?=[^a-z0-9_])",name:"support.type.php"},{include:"#class-name"},{include:"#variable-name"}]},interface:{begin:"^(?i)\\s*(?:(public|internal)\\s+)?(interface)\\b",beginCaptures:{1:{name:"storage.modifier.php"},2:{name:"storage.type.interface.php"}},end:"(?=[;{])",name:"meta.interface.php",patterns:[{include:"#comments"},{captures:{1:{name:"storage.modifier.extends.php"}},match:"\\b(extends)\\b"},{include:"#generics"},{include:"#namespace"},{match:"(?i)[a-z0-9_]+",name:"entity.name.type.class.php"}]},interpolation:{comment:"http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing",patterns:[{comment:"Interpolating octal values e.g. \\01 or \\07.",match:"\\\\[0-7]{1,3}",name:"constant.numeric.octal.php"},{comment:"Interpolating hex values e.g. \\x1 or \\xFF.",match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.numeric.hex.php"},{comment:"Escaped characters in double-quoted strings e.g. \\n or \\t.",match:'\\\\[nrt\\\\\\$\\"]',name:"constant.character.escape.php"},{comment:"Interpolating expressions in double-quoted strings with {} e.g. {$x->y->z[0][1]}.",match:"(\\{\\$.*?\\})",name:"variable.other.php"},{comment:"Interpolating simple variables, e.g. $x, $x->y, $x[z] but not $x->y->z.",match:"(\\$[a-zA-Z_][a-zA-Z0-9_]*((->[a-zA-Z_][a-zA-Z0-9_]*)|(\\[[a-zA-Z0-9_]+\\]))?)",name:"variable.other.php"}]},"invoke-call":{captures:{1:{name:"punctuation.definition.variable.php"},2:{name:"variable.other.php"}},match:"(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},language:{patterns:[{include:"#comments"},{begin:"(?=^\\s*<<)",end:"(?<=>>)",patterns:[{include:"#attributes"}]},{include:"#xhp"},{include:"#interface"},{begin:"(?xi)\n^\\s*\n(?:(module)\\s*)?(type|newtype)\n\\s+\n([a-z0-9_]+)",beginCaptures:{1:{name:"storage.modifier.php"},2:{name:"storage.type.typedecl.php"},3:{name:"entity.name.type.typedecl.php"}},end:"(;)",endCaptures:{1:{name:"punctuation.termination.expression.php"}},name:"meta.typedecl.php",patterns:[{include:"#comments"},{include:"#generics"},{match:"(=)",name:"keyword.operator.assignment.php"},{include:"#type-annotation"}]},{begin:"(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+(class)\\s+([a-z0-9_]+)\\s*:?",beginCaptures:{1:{name:"storage.modifier.php"},2:{name:"storage.modifier.php"},3:{name:"storage.type.class.enum.php"},4:{name:"entity.name.type.class.enum.php"}},end:"(?=[{])",name:"meta.class.enum.php",patterns:[{match:"\\b(extends)\\b",name:"storage.modifier.extends.php"},{include:"#type-annotation"}]},{begin:"(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+([a-z0-9_]+)\\s*:?",beginCaptures:{1:{name:"storage.modifier.php"},2:{name:"storage.type.enum.php"},3:{name:"entity.name.type.enum.php"}},end:"\\{",name:"meta.enum.php",patterns:[{include:"#comments"},{include:"#type-annotation"}]},{begin:"(?i)^\\s*(?:(public|internal)\\s+)?(trait)\\s+([a-z0-9_]+)\\s*",beginCaptures:{1:{name:"storage.modifier.php"},2:{name:"storage.type.trait.php"},3:{name:"entity.name.type.class.php"}},end:"(?=[{])",name:"meta.trait.php",patterns:[{include:"#comments"},{include:"#generics"},{include:"#implements"}]},{begin:"^\\s*(new)\\s+(module)\\s+([A-Za-z0-9_\\.]+)\\b",beginCaptures:{1:{name:"storage.type.module.php"},2:{name:"storage.type.module.php"},3:{name:"entity.name.type.module.php"}},end:"(?=[{])",name:"meta.module.php",patterns:[{include:"#comments"}]},{begin:"^\\s*(module)\\s+([A-Za-z0-9_\\.]+)\\b",beginCaptures:{1:{name:"keyword.other.module.php"},2:{name:"entity.name.type.module.php"}},end:"$|(?=[\\s;])",name:"meta.use.module.php",patterns:[{include:"#comments"}]},{begin:"(?i)(?:^\\s*|\\s*)(namespace)\\b\\s+(?=([a-z0-9_\\\\]*\\s*($|[;{]|(\\/[\\/*])))|$)",beginCaptures:{1:{name:"keyword.other.namespace.php"}},contentName:"entity.name.type.namespace.php",end:"(?i)(?=\\s*$|[^a-z0-9_\\\\])",name:"meta.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},{begin:"(?i)\\s*\\b(use)\\s+",beginCaptures:{1:{name:"keyword.other.use.php"}},end:"(?=;|(?:^\\s*$))",name:"meta.use.php",patterns:[{include:"#comments"},{begin:"(?i)\\s*(?=[a-z_0-9\\\\])",end:"(?xi)\n(?:\n(?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))|\n(?=,|;|$)\n)",endCaptures:{1:{name:"keyword.other.use-as.php"},2:{name:"support.other.namespace.use-as.php"}},patterns:[{include:"#class-builtin"},{begin:"(?i)\\s*(?=[\\\\a-z_0-9])",end:"$|(?=[\\s,;])",name:"support.other.namespace.use.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}]},{match:"\\s*,\\s*"}]},{begin:"(?i)^\\s*((?:(?:final|abstract|public|internal)\\s+)*)(class)\\s+([a-z0-9_]+)\\s*",beginCaptures:{1:{patterns:[{match:"final|abstract|public|internal",name:"storage.modifier.php"}]},2:{name:"storage.type.class.php"},3:{name:"entity.name.type.class.php"}},end:"(?=[;{])",name:"meta.class.php",patterns:[{include:"#comments"},{include:"#generics"},{include:"#implements"},{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},contentName:"meta.other.inherited-class.php",end:"(?i)(?=[^a-z_0-9\\\\])",patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9]+\\\\)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_][a-z_0-9]*",name:"entity.other.inherited-class.php"}]}]},{captures:{1:{name:"keyword.control.php"}},match:"\\s*\\b(await|break|c(ase|ontinue)|concurrent|default|do|else|for(each)?|if|return|switch|use|while)\\b"},{begin:"(?i)\\b((?:require|include)(?:_once)?)\\b\\s*",beginCaptures:{1:{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$)",name:"meta.include.php",patterns:[{include:"#language"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.exception.catch.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{include:"#namespace"},{captures:{1:{name:"support.class.exception.php"},2:{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"support.class.exception.php"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},3:{name:"variable.other.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)*)\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\s*(?:(public|internal)\\s+)?(function)\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.php"},2:{name:"storage.type.function.php"}},end:"\\{|\\)",name:"meta.function.closure.php",patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.php"}},contentName:"meta.function.arguments.php",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.php"}},patterns:[{include:"#function-arguments"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.function.use.php"},2:{name:"punctuation.definition.parameters.begin.php"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.php"}},patterns:[{captures:{1:{name:"storage.modifier.reference.php"},2:{name:"variable.other.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",name:"meta.function.closure.use.php"}]}]},{begin:"(?x)\n\\s*((?:(?:final|abstract|public|private|protected|internal|static|async)\\s+)*)\n(function)\n(?:\\s+)\n(?:\n(__(?:call|construct|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic|dispose|disposeAsync)(?=[^a-zA-Z0-9_\\x7f-\\xff]))\n|\n([a-zA-Z0-9_]+)\n)",beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected|internal|static|async",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.magic.php"},4:{name:"entity.name.function.php"},5:{name:"meta.function.generics.php"}},end:"(?=[{;])",name:"meta.function.php",patterns:[{include:"#generics"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.php"}},contentName:"meta.function.arguments.php",end:"(?=\\))",patterns:[{include:"#function-arguments"}]},{begin:"(\\))",beginCaptures:{1:{name:"punctuation.definition.parameters.end.php"}},end:"(?=[{;])",patterns:[{include:"#function-return-type"}]}]},{include:"#invoke-call"},{begin:"(?xi)\n\\s*\n(?=\n[a-z_0-9$\\\\]+(::)\n(?:\n([a-z_][a-z_0-9]*)\\s*\\(\n|\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n|\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n)?\n)",end:"(?x)\n(::)\n(?:\n([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n|\n((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n|\n([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)?",endCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"meta.function-call.static.php"},3:{name:"variable.other.class.php"},4:{name:"punctuation.definition.variable.php"},5:{name:"constant.other.class.php"}},patterns:[{match:"(self|static|parent)\\b",name:"support.type.php"},{include:"#class-name"},{include:"#variable-name"}]},{include:"#variables"},{include:"#strings"},{captures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.php"},3:{name:"punctuation.definition.array.end.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.php"}},name:"meta.array.php",patterns:[{include:"#language"}]},{captures:{1:{name:"support.type.php"}},match:"(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset|arraykey|nonnull|dict|vec|keyset)\\s*\\)"},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object|arraykey|nonnull|dict|vec|keyset)\\b",name:"support.type.php"},{match:"(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|internal|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{include:"#heredoc"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{match:"==>",name:"keyword.operator.lambda.php"},{match:"\\|>",name:"keyword.operator.pipe.php"},{match:"(!==|!=|===|==)",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=",name:"keyword.operator.assignment.php"},{match:"(<=|>=|<|>)",name:"keyword.operator.comparison.php"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.php"},{match:"(\\-|\\+|\\*|/|%)",name:"keyword.operator.arithmetic.php"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.php"},{begin:"(?i)\\b(as|is)\\b\\s+(?=[\\\\$a-z_])",beginCaptures:{1:{name:"keyword.operator.type.php"}},end:"(?=[^\\\\$A-Za-z_0-9])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{match:"(?i)\\b(is|as)\\b",name:"keyword.operator.type.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{include:"#numbers"},{include:"#instantiation"},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"#language"}]},{include:"#literal-collections"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.scope.begin.php"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.php"}},patterns:[{include:"#language"}]},{include:"#constants"}]},"literal-collections":{patterns:[{begin:"(Vector|ImmVector|Set|ImmSet|Map|ImmMap|Pair)\\s*({)",beginCaptures:{1:{name:"support.class.php"},2:{name:"punctuation.section.array.begin.php"}},end:"(})",endCaptures:{1:{name:"punctuation.section.array.end.php"}},name:"meta.collection.literal.php",patterns:[{include:"#language"}]}]},namespace:{begin:"(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])",beginCaptures:{1:{name:"entity.name.type.namespace.php"},3:{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])",name:"support.other.namespace.php",patterns:[{match:"(?i)[a-z0-9_]+(?=\\\\)",name:"entity.name.type.namespace.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?i)(\\\\)"}]},numbers:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",name:"constant.numeric.php"},object:{patterns:[{begin:"(->)(\\$?\\{)",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"punctuation.definition.variable.php"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"meta.function-call.object.php"},3:{name:"variable.other.property.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?x)\n(->)\n(?:\n([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n|\n((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{include:"#instantiation"},{begin:"(?xi)\n\\s*\n(?=\n[a-z_0-9\\\\]+(::)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)",end:"(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?",endCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},php_doc:{patterns:[{comment:"PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character",match:"^(?!\\s*\\*).*$\\n?",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"},3:{name:"storage.modifier.php"},4:{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected|internal)|(.+))\\s*$"},{captures:{1:{name:"keyword.other.phpdoc.php"},2:{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{match:"\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b",name:"keyword.other.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"}},match:"\\{(@(link)).+?\\}",name:"meta.tag.inline.phpdoc.php"}]},"regex-double-quoted":{begin:'(?x)\n(?<=re)"/ (?=(\\\\.|[^"/])++/[imsxeADSUXu]*")',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'(/)([imsxeADSUXu]*)(")',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{comment:"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)",match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"(?x)\n(?<=re)'/ (?=(\\\\.|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"string.regexp.arbitrary-repetition.php"},{comment:"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)",match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{comment:"Escaped from the PHP string – there can also be 2 backslashes (since 1 will escape the first)",match:"\\\\{1,2}[\\\\']",name:"constant.character.escape.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"sql-string-double-quoted":{begin:'"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{comment:'Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = "SELECT (")";',match:"\\(",name:"punctuation.definition.parameters.begin.bracket.round.php"},{match:'#(\\\\"|[^"])*(?="|$\\n?)',name:"comment.line.number-sign.sql"},{match:'--(\\\\"|[^"])*(?="|$\\n?)',name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{comment:'Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = "SELECT * FROM bar WHERE foo = \'" . $variable . "\'"',match:"'(?=((\\\\')|[^'\"])*(\"|$))",name:"string.quoted.single.unclosed.sql"},{comment:'Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = "SELECT * FROM bar WHERE foo = \'" . $variable . "\'"',match:'`(?=((\\\\`)|[^`"])*("|$))',name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation"}]},{include:"#interpolation"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{comment:"Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = 'SELECT (')';",match:"\\(",name:"punctuation.definition.parameters.begin.bracket.round.php"},{match:"#(\\\\'|[^'])*(?='|$\\n?)",name:"comment.line.number-sign.sql"},{match:"--(\\\\'|[^'])*(?='|$\\n?)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{comment:'Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = "SELECT * FROM bar WHERE foo = \'" . $variable . "\'"',match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{comment:'Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = "SELECT * FROM bar WHERE foo = \'" . $variable . "\'"',match:'"(?=((\\\\")|[^"\'])*(\'|$))',name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},comment:"This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes",contentName:"meta.string-contents.quoted.double.php",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"meta.string-contents.quoted.single.php",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:"(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b",name:"support.function.apc.php"},{match:"(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b",name:"support.function.array.php"},{match:"(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|timeout|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b",name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b",name:"support.function.bz2.php"},{match:"(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b",name:"support.function.calendar.php"},{match:"(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b",name:"support.function.classobj.php"},{match:"(?i)\\b(com_(set|create_guid|i(senum|nvoke)|pr(int_typeinfo|op(set|put|get))|event_sink|load(_typelib)?|addref|release|get(_active_object)?|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b",name:"support.function.com.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:"(?i)\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo|multi_(select|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b",name:"support.function.curl.php"},{match:"(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_from_format)?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b",name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b",name:"support.function.dir.php"},{match:"(?i)\\bdotnet_load\\b",name:"support.function.dotnet.php"},{match:"(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b",name:"support.function.eio.php"},{match:"(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b",name:"support.function.enchant.php"},{match:"(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b",name:"support.function.ereg.php"},{match:"(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:"(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b",name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:"(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\\b",name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|fi(nal|le)|algos))?\\b",name:"support.function.hash.php"},{match:"(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b",name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:"(?i)\\b(i(ptc(parse|embed)|mage(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|l(ine|oadfont|ayereffect)|a(ntialias|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b",name:"support.function.image.php"},{match:"(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b",name:"support.function.info.php"},{match:"(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b",name:"support.function.interbase.php"},{match:"(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl_(is_failure|error_name|get_error_(code|message))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b",name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error)\\b",name:"support.function.json.php"},{match:"(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify|_(del|add|replace))|bind)\\b",name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:"(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b",name:"support.function.math.php"},{match:"(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b",name:"support.function.mbstring.php"},{match:"(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b",name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\bbson_(decode|encode)\\b",name:"support.function.mongo.php"},{match:"(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b",name:"support.function.mysql.php"},{match:"(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|metadata)|m(ore_results|ulti_query|aster_query)|bind_(param|result))\\b",name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|query_is_select|get_(stats|last_(used_connection|gtid))|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:"(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b",name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b",name:"support.function.nsapi.php"},{match:"(?i)\\b(deaggregate|aggregat(ion_info|e(_(info|properties(_by_(list|regexp))?|methods(_by_(list|regexp))?))?))\\b",name:"support.function.objaggregation.php"},{match:"(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b",name:"support.function.oci8.php"},{match:"(?i)\\bopenssl_(s(ign|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(cipher_methods|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\\b",name:"support.function.openssl.php"},{match:"(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b",name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:"(?i)\\bpcntl_(s(ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|exec|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\\b",name:"support.function.pcntl.php"},{match:"(?i)\\bpg_(se(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b",name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:"(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b",name:"support.function.php_ftp.php"},{match:"(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b",name:"support.function.php_imap.php"},{match:"(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b",name:"support.function.php_mssql.php"},{match:"(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b",name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:"(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b",name:"support.function.posix.php"},{match:"(?i)\\bset(threadtitle|proctitle)\\b",name:"support.function.proctitle.php"},{match:"(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b",name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport)\\b",name:"support.function.rrd.php"},{match:"(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b",name:"support.function.sem.php"},{match:"(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister(_shutdown)?|enerate_id)|get_cookie_params|module_name)\\b",name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:"(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b",name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:"(?i)\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|import_stream|write|l(isten|ast_error)|accept|re(cv(from)?|ad)|get(sockname|_option|peername)|bind)\\b",name:"support.function.sockets.php"},{match:"(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b",name:"support.function.sqlite.php"},{match:"(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b",name:"support.function.sqlsrv.php"},{match:"(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b",name:"support.function.stats.php"},{match:"(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b",name:"support.function.streamsfuncs.php"},{match:"(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b",name:"support.function.string.php"},{match:"(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b",name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:"(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b",name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:"(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b",name:"support.function.trader.php"},{match:"(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:"(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool|arraykey|nonnull|dict|vec|keyset))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b",name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b",name:"support.function.xhprof.php"},{match:"(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b",name:"support.function.xml.php"},{match:"(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b",name:"support.function.xmlrpc.php"},{match:"(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b",name:"support.function.xmlwriter.php"},{match:"(?i)\\bxslt_(set(opt|_(s(cheme_handler(s)?|ax_handler(s)?)|object|e(ncoding|rror_handler)|log|base))|create|process|err(no|or)|free|getopt|backend_(name|info|version))\\b",name:"support.function.xslt.php"},{match:"(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b",name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},"type-annotation":{name:"support.type.php",patterns:[{match:"\\b(?:bool|int|float|string|resource|mixed|arraykey|nonnull|dict|vec|keyset)\\b",name:"support.type.php"},{begin:"([A-Za-z_][A-Za-z0-9_]*)<",beginCaptures:{1:{name:"support.class.php"}},end:">",patterns:[{include:"#type-annotation"}]},{begin:"(shape\\()",end:"((,|\\.\\.\\.)?\\s*\\))",endCaptures:{1:{name:"keyword.operator.key.php"}},name:"storage.type.shape.php",patterns:[{include:"#type-annotation"},{include:"#strings"},{include:"#constants"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{include:"#class-name"},{include:"#comments"}]},"user-function-call":{begin:"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()",end:"(?i)[a-z_][a-z_0-9]*(?=\\s*\\()",endCaptures:{0:{name:"entity.name.function.php"}},name:"meta.function-call.php",patterns:[{include:"#namespace"}]},var_basic:{patterns:[{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(?x)\n(\\$+)\n[a-zA-Z_\\x{7f}-\\x{ff}]\n[a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\n\\b",name:"variable.other.php"}]},var_global:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.class.php"},5:{name:"variable.other.property.php"},6:{name:"punctuation.section.array.begin.php"},7:{name:"constant.numeric.index.php"},8:{name:"variable.other.index.php"},9:{name:"punctuation.definition.variable.php"},10:{name:"string.unquoted.index.php"},11:{name:"punctuation.section.array.end.php"}},comment:"Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar",match:"(?x)\n((\\$)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n(->)(\\g)\n|\n(\\[)\n(?:(\\d+)|((\\$)\\g)|(\\w+))\n(\\])\n)?"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"punctuation.definition.variable.php"}},comment:'Simple syntax with braces: "foo${bar}baz"',match:"(?x)\n((\\$\\{)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))"}]},variables:{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"(\\$\\{)(?=.*?\\})",beginCaptures:{1:{name:"punctuation.definition.variable.php"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]}]},xhp:{comment:"Avoid < operator expressions as best we can using Zertosh's regex",patterns:[{applyEndPatternLast:1,begin:"(?<=\\(|\\{|\\[|,|&&|\\|\\||\\?|:|=|=>|\\Wreturn|^return|^)\\s*(?=<[_\\p{L}])",contentName:"source.xhp",end:"(?=.)",patterns:[{include:"#xhp-tag-element-name"}]}]},"xhp-assignment":{patterns:[{comment:"look for attribute assignment",match:"=(?=\\s*(?:'|\"|{|/\\*|<|//|\\n))",name:"keyword.operator.assignment.xhp"}]},"xhp-attribute-name":{patterns:[{captures:{0:{name:"entity.other.attribute-name.xhp"}},comment:"look for attribute name",match:"(?|/>)"}]},"xhp-entities":{patterns:[{captures:{0:{name:"constant.character.entity.xhp"},1:{name:"punctuation.definition.entity.xhp"},2:{name:"entity.name.tag.html.xhp"},3:{name:"punctuation.definition.entity.xhp"}},comment:"Embeded HTML entities &blah",match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)"},{comment:"Entity with & and invalid name",match:"&\\S*;",name:"invalid.illegal.bad-ampersand.xhp"}]},"xhp-evaluated-code":{begin:"{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.xhp"}},contentName:"source.php.xhp",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.xhp"}},name:"meta.embedded.expression.php",patterns:[{include:"#language"}]},"xhp-html-comments":{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\\s*>",name:"comment.block.html",patterns:[{match:"--(?!-*\\s*>)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},"xhp-string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.xhp"}},end:'"(?\\s])(? are trapped in #xhp-tag-termination",end:"\\s*(?<=)|(/>)|((?<=",endCaptures:{1:{name:"entity.name.tag.close.xhp"},2:{name:"punctuation.definition.tag.xhp"},3:{name:"punctuation.definition.tag.xhp"},4:{name:"invalid.illegal.termination.xhp"}},patterns:[{include:"#xhp-tag-termination"},{include:"#xhp-html-comments"},{include:"#xhp-tag-attributes"}]}]},"xhp-tag-termination":{patterns:[{begin:"(?\x3c!--)(>)",beginCaptures:{0:{name:"punctuation.definition.tag.xhp"},1:{name:"XHPStartTagEnd"}},comment:"uses non consuming search for ",end:"(",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"}]}]},block_helper:{begin:"(\\{\\{)(~?\\#)([-a-zA-Z0-9_\\./>]+)\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*",beginCaptures:{1:{name:"support.constant.handlebars"},2:{name:"support.constant.handlebars keyword.control"},3:{name:"support.constant.handlebars keyword.control"},4:{name:"variable.parameter.handlebars"},5:{name:"support.constant.handlebars"},6:{name:"variable.parameter.handlebars"},7:{name:"support.constant.handlebars"}},end:"(~?\\}\\})",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.block.start.handlebars",patterns:[{include:"#string"},{include:"#handlebars_attribute"}]},comments:{patterns:[{begin:"\\{\\{!",end:"\\}\\}",name:"comment.block.handlebars",patterns:[{match:"@\\w*",name:"keyword.annotation.handlebars"},{include:"#comments"}]},{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"-{2,3}\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"}]}]},else_token:{begin:"(\\{\\{)(~?else)(@?\\s(if)\\s([-a-zA-Z0-9_\\.\\(\\s\\)/]+))?",beginCaptures:{1:{name:"support.constant.handlebars"},2:{name:"support.constant.handlebars keyword.control"},3:{name:"support.constant.handlebars"},4:{name:"variable.parameter.handlebars"}},end:"(~?\\}\\}\\}*)",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.inline.else.handlebars"},end_block:{begin:"(\\{\\{)(~?/)([a-zA-Z0-9/_\\.-]+)\\s*",beginCaptures:{1:{name:"support.constant.handlebars"},2:{name:"support.constant.handlebars keyword.control"},3:{name:"support.constant.handlebars keyword.control"}},end:"(~?\\}\\})",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.block.end.handlebars",patterns:[]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},"escaped-double-quote":{match:'\\\\"',name:"constant.character.escape.js"},"escaped-single-quote":{match:"\\\\'",name:"constant.character.escape.js"},extends:{patterns:[{begin:"(\\{\\{!<)\\s([-a-zA-Z0-9_\\./]+)",beginCaptures:{1:{name:"support.function.handlebars"},2:{name:"support.class.handlebars"}},end:"(\\}\\})",endCaptures:{1:{name:"support.function.handlebars"}},name:"meta.preprocessor.handlebars"}]},handlebars_attribute:{patterns:[{include:"#handlebars_attribute_name"},{include:"#handlebars_attribute_value"}]},handlebars_attribute_name:{begin:"\\b([-a-zA-Z0-9_\\.]+)\\b=",captures:{1:{name:"variable.parameter.handlebars"}},end:"(?='|\"|)",name:"entity.other.attribute-name.handlebars"},handlebars_attribute_value:{begin:"([-a-zA-Z0-9_\\./]+)\\b",captures:{1:{name:"variable.parameter.handlebars"}},end:"('|\"|)",name:"entity.other.attribute-value.handlebars",patterns:[{include:"#string"}]},html_tags:{patterns:[{begin:"(<)([a-zA-Z0-9:-]+)(?=[^>]*>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(>(<)/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"meta.scope.between-tag-pair.html"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag_generic_attribute"},{include:"#string"}]},{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{begin:"",name:"meta.tag.sgml.html",patterns:[{begin:"(DOCTYPE|doctype)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{begin:"(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.style.html"},3:{name:"punctuation.definition.tag.html"}},end:"()(?:\\s*\\n)?",name:"source.css.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"}},end:"(?=]*/>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(?<=)(?:\\s*\\n)?",endCaptures:{2:{name:"punctuation.definition.tag.html"}},name:"source.js.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"()",name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"()",name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"()",name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"()",name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{begin:"()",name:"meta.tag.tokenised.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"}]},inline_script:{begin:"(?:^\\s+)?(<)((?i:script))\\b(?:.*(type)=([\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\"']))(?![^>]*/>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"},3:{name:"entity.other.attribute-name.html"},4:{name:"string.quoted.double.html"}},end:"(?<=)(?:\\s*\\n)?",endCaptures:{2:{name:"punctuation.definition.tag.html"}},name:"source.handlebars.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(|!<)*)\\s*(@?[-a-zA-Z0-9$_\\./]+)*",beginCaptures:{1:{name:"support.constant.handlebars"},3:{name:"variable.parameter.handlebars"}},end:"(~?\\}\\}\\}*)",endCaptures:{1:{name:"support.constant.handlebars"}},name:"meta.function.inline.other.handlebars",patterns:[{include:"#string"},{include:"#handlebars_attribute"}]},string:{patterns:[{include:"#string-single-quoted"},{include:"#string-double-quoted"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.handlebars",patterns:[{include:"#escaped-double-quote"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#else_token"},{include:"#end_block"},{include:"#partial_and_var"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.handlebars",patterns:[{include:"#escaped-single-quote"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#else_token"},{include:"#end_block"},{include:"#partial_and_var"}]},"tag-stuff":{patterns:[{include:"#tag_id_attribute"},{include:"#tag_generic_attribute"},{include:"#string"},{include:"#block_comments"},{include:"#comments"},{include:"#block_helper"},{include:"#end_block"},{include:"#else_token"},{include:"#partial_and_var"}]},tag_generic_attribute:{begin:"\\b([a-zA-Z0-9_-]+)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.generic.html"},2:{name:"punctuation.separator.key-value.html"}},end:"(?<='|\"|)",name:"entity.other.attribute-name.html",patterns:[{include:"#string"}]},tag_id_attribute:{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:"(?<='|\"|)",name:"meta.attribute-with-value.id.html",patterns:[{include:"#string"}]},yfm:{patterns:[{begin:"(?\n\\(\n(?:\n[^\\(\\)]*\n| \\g\n)*\n\\)\n)\n)\n\n| ('?\n(?\n\\(\n(?:\n[^\\[\\]]*\n| \\g\n)*\n\\]\n)\n)\n)\n\n\\s*\n\n(?:(?|⇒)\n(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n"},cpp:{captures:{1:{name:"punctuation.definition.preprocessor.c"}},comment:'In addition to Haskell\'s "native" syntax, GHC permits the C preprocessor to be run on a source file.',match:"^(#).*$",name:"meta.preprocessor.c"},data_constructor:{match:"\\b(?|→)",endCaptures:{1:{name:"keyword.operator.period.haskell"},2:{name:"keyword.operator.arrow.haskell"}},patterns:[{include:"#comment_like"},{include:"#type_variable"},{include:"#type_signature"}]},fun_decl:{begin:"(?x)^(\\s*)\n(?\n(?:\n[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\#*\n| \\(\\s*\n(?!--+\\))\n[\\p{S}\\p{P}&&[^(),:;\\[\\]`{}_\"']]\n[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*\n\\s*\\)\n)\n(?:\\s*,\\s*\\g)?\n)\n\\s*(?[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.\\g)?)",name:"entity.name.namespace.haskell"},numeric_literals:{patterns:[{include:"#float_literals"},{include:"#integer_literals"}]},overloaded_label:{patterns:[{captures:{1:{name:"keyword.operator.prefix.hash.haskell"},2:{patterns:[{include:"#string_literal"}]}},match:'(?x)\n(?|→)\n|(-<|↢)\n|(-<<|⤛)\n|(>-|⤚)\n|(>>-|⤜)\n|(∀)\n)\n(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])"},{captures:{1:{name:"keyword.operator.postfix.hash.haskell"}},match:"(?x)\n(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^\\#,;\\[`{]])\n(\\#+)\n(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^),;\\]`}]])"},{captures:{1:{name:"keyword.operator.infix.tight.at.haskell"}},match:"(?x)\n(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\)\\}\\]])\n(@)\n(?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\(\\[\\{])"},{captures:{1:{name:"keyword.operator.prefix.tilde.haskell"},2:{name:"keyword.operator.prefix.bang.haskell"},3:{name:"keyword.operator.prefix.minus.haskell"},4:{name:"keyword.operator.prefix.dollar.haskell"},5:{name:"keyword.operator.prefix.double-dollar.haskell"}},match:"(?x)\n(?|⇒",name:"keyword.operator.big-arrow.haskell"},{include:"#string_literal"},{match:"'[^']'",name:"invalid"},{include:"#type_application"},{include:"#reserved_symbol"},{include:"#type_operator"},{include:"#type_constructor"},{begin:"(\\()(#)",beginCaptures:{1:{name:"punctuation.paren.haskell"},2:{name:"keyword.operator.hash.haskell"}},end:"(#)(\\))",endCaptures:{1:{name:"keyword.operator.hash.haskell"},2:{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:"(')?(\\()",beginCaptures:{1:{name:"keyword.operator.promotion.haskell"},2:{name:"punctuation.paren.haskell"}},end:"(\\))",endCaptures:{1:{name:"punctuation.paren.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{begin:"(')?(\\[)",beginCaptures:{1:{name:"keyword.operator.promotion.haskell"},2:{name:"punctuation.bracket.haskell"}},end:"(\\])",endCaptures:{1:{name:"punctuation.bracket.haskell"}},patterns:[{include:"#comma"},{include:"#type_signature"}]},{include:"#type_variable"}]},type_variable:{match:"\\b(?)",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.hx"}},end:"(\\))\\s*(->)",endCaptures:{1:{name:"punctuation.definition.parameters.end.hx"},2:{name:"storage.type.function.arrow.hx"}},name:"meta.method.arrow.hx",patterns:[{include:"#arrow-function-parameter"}]},"arrow-function-parameter":{begin:"(?<=\\(|,)",end:"(?=\\)|,)",patterns:[{include:"#parameter-name"},{include:"#arrow-function-parameter-type-hint"},{include:"#parameter-assign"},{include:"#punctuation-comma"},{include:"#global"}]},"arrow-function-parameter-type-hint":{begin:":",beginCaptures:{0:{name:"keyword.operator.type.annotation.hx"}},end:"(?=\\)|,|=)",patterns:[{include:"#type"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.begin.hx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"block-contents":{patterns:[{include:"#global"},{include:"#regex"},{include:"#array"},{include:"#constants"},{include:"#strings"},{include:"#metadata"},{include:"#method"},{include:"#variable"},{include:"#modifiers"},{include:"#new-expr"},{include:"#for-loop"},{include:"#keywords"},{include:"#arrow-function"},{include:"#method-call"},{include:"#enum-constructor-call"},{include:"#punctuation-braces"},{include:"#macro-reification"},{include:"#operators"},{include:"#operator-assignment"},{include:"#punctuation-terminator"},{include:"#punctuation-comma"},{include:"#punctuation-accessor"},{include:"#identifiers"}]},class:{begin:"(?=class)",end:"(?<=\\})|(;)",endCaptures:{1:{name:"punctuation.terminator.hx"}},name:"meta.class.hx",patterns:[{include:"#class-name"},{include:"#class-name-post"},{include:"#class-block"}]},"class-block":{begin:"(?<=\\{)",end:"(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#method"},{include:"#modifiers"},{include:"#variable"},{include:"#block"},{include:"#block-contents"}]},"class-name":{begin:"\\b(class)\\b",beginCaptures:{1:{name:"storage.type.class.hx"}},end:"([_A-Za-z]\\w*)",endCaptures:{1:{name:"entity.name.type.class.hx"}},name:"meta.class.identifier.hx",patterns:[{include:"#global"}]},"class-name-post":{begin:"(?<=\\w)",end:"([\\{;])",endCaptures:{1:{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#modifiers-inheritance"},{include:"#type"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.hx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.hx"}},name:"comment.block.documentation.hx",patterns:[{include:"#javadoc-tags"}]},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.hx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.hx"}},name:"comment.block.hx",patterns:[{include:"#javadoc-tags"}]},{captures:{1:{name:"punctuation.definition.comment.hx"}},match:"(//).*$\\n?",name:"comment.line.double-slash.hx"}]},"conditional-compilation":{patterns:[{captures:{0:{name:"punctuation.definition.tag"}},match:"((#(if|elseif))[\\s!]+([a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*)(?=\\s|/\\*|//))"},{begin:"((#(if|elseif))[\\s!]*)(?=\\()",beginCaptures:{0:{name:"punctuation.definition.tag"}},end:"(?<=\\)|\\n)",endCaptures:{0:{name:"punctuation.definition.tag"}},name:"punctuation.definition.tag",patterns:[{include:"#conditional-compilation-parens"}]},{match:"(#(end|else|error|line))",name:"punctuation.definition.tag"},{match:"(#([a-zA-Z0-9_]*))\\s",name:"punctuation.definition.tag"}]},"conditional-compilation-parens":{begin:"\\(",end:"\\)",patterns:[{include:"#conditional-compilation-parens"}]},"constant-name":{match:"\\b([_A-Z][_A-Z0-9]*)\\b",name:"variable.other.hx"},constants:{patterns:[{match:"\\b(true|false|null)\\b",name:"constant.language.hx"},{captures:{0:{name:"constant.numeric.hex.hx"},1:{name:"constant.numeric.suffix.hx"}},match:"\\b(?:0[xX][0-9a-fA-F][_0-9a-fA-F]*([iu][0-9][0-9_]*)?)\\b"},{captures:{0:{name:"constant.numeric.bin.hx"},1:{name:"constant.numeric.suffix.hx"}},match:"\\b(?:0[bB][01][_01]*([iu][0-9][0-9_]*)?)\\b"},{captures:{0:{name:"constant.numeric.decimal.hx"},1:{name:"meta.delimiter.decimal.period.hx"},2:{name:"constant.numeric.suffix.hx"},3:{name:"meta.delimiter.decimal.period.hx"},4:{name:"constant.numeric.suffix.hx"},5:{name:"meta.delimiter.decimal.period.hx"},6:{name:"constant.numeric.suffix.hx"},7:{name:"constant.numeric.suffix.hx"},8:{name:"meta.delimiter.decimal.period.hx"},9:{name:"constant.numeric.suffix.hx"},10:{name:"meta.delimiter.decimal.period.hx"},11:{name:"constant.numeric.suffix.hx"},12:{name:"meta.delimiter.decimal.period.hx"},13:{name:"constant.numeric.suffix.hx"},14:{name:"constant.numeric.suffix.hx"}},match:"(?x)\n(?",name:"keyword.operator.extractor.hx"},{include:"#operator-assignment"},{include:"#punctuation-comma"},{include:"#keywords"},{include:"#method-call"},{include:"#identifiers"}]},{match:"\\b(if|else|return|do|while|for|break|continue|switch|case|default)\\b",name:"keyword.control.flow-control.hx"},{match:"\\b(cast|untyped)\\b",name:"keyword.other.untyped.hx"},{match:"\\btrace\\b",name:"keyword.other.trace.hx"},{match:"\\$type\\b",name:"keyword.other.type.hx"},{match:"\\__(global|this)__\\b",name:"keyword.other.untyped-property.hx"},{match:"\\b(this|super)\\b",name:"variable.language.hx"},{match:"\\bnew\\b",name:"keyword.operator.new.hx"},{match:"\\b(abstract|class|enum|interface|typedef)\\b",name:"storage.type.hx"},{match:"->",name:"storage.type.function.arrow.hx"},{include:"#modifiers"},{include:"#modifiers-inheritance"}]},"keywords-accessor":{match:"\\b(default|get|set|dynamic|never|null)\\b",name:"storage.type.property.hx"},"macro-reification":{patterns:[{captures:{1:{name:"punctuation.definition.reification.hx"},2:{name:"keyword.reification.hx"}},match:"(\\$)([eabipv])\\{"},{captures:{2:{name:"punctuation.definition.reification.hx"},3:{name:"variable.reification.hx"}},match:"((\\$)([a-zA-Z]*))"}]},metadata:{patterns:[{begin:"(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b)\\s*(\\()",beginCaptures:{1:{name:"punctuation.metadata.hx"},2:{name:"storage.modifier.metadata.hx"},3:{name:"meta.brace.round.hx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{captures:{2:{name:"punctuation.metadata.hx"},3:{name:"storage.modifier.metadata.hx"}},match:"((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|bypassAccessor|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|cs.assemblyMeta|cs.assemblyStrict|cs.using|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|file|fileXml|final|fixed|flash.property|font|forward.new|forward.variance|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|genericClassPerMethod|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hlNative|hxGen|ifFeature|include|inheritDoc|inline|internal|isVar|java.native|javaCanonical|jsRequire|jvm.synthetic|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|markup|mergeBlock|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noClosure|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|nullSafety|objc|objcProtocol|op|optional|overload|persistent|phpClassConst|phpGlobal|phpMagic|phpNoConstructor|pos|private|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtimeValue|scalar|selfCall|semantics|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|transitive|unifyMinDynamic|unreflective|unsafe|using|void|volatile)\\b))"},{begin:"(@)(:?[a-zA-Z_]*)\\s*(\\()",beginCaptures:{1:{name:"punctuation.metadata.hx"},2:{name:"variable.metadata.hx"},3:{name:"meta.brace.round.hx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.hx"}},patterns:[{include:"#block-contents"}]},{captures:{1:{name:"punctuation.metadata.hx"},2:{name:"variable.metadata.hx"},3:{name:"variable.metadata.hx"},4:{name:"punctuation.accessor.hx"},5:{name:"variable.metadata.hx"}},match:"(@)(:?)([a-zA-Z_]*(\\.))*([a-zA-Z_]*)?"}]},method:{begin:"(?=\\bfunction\\b)",end:"(?<=[\\};])",name:"meta.method.hx",patterns:[{include:"#macro-reification"},{include:"#method-name"},{include:"#method-name-post"},{include:"#method-block"}]},"method-block":{begin:"(?<=\\{)",beginCaptures:{1:{name:"punctuation.definition.block.begin.hx"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.hx"}},name:"meta.method.block.hx",patterns:[{include:"#block"},{include:"#block-contents"}]},"method-call":{begin:"\\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z]\\w*))\\s*(\\()",beginCaptures:{1:{name:"keyword.other.untyped-function.hx"},2:{name:"entity.name.function.hx"},3:{name:"meta.brace.round.hx"}},end:"(\\))",endCaptures:{1:{name:"meta.brace.round.hx"}},patterns:[{include:"#block"},{include:"#block-contents"}]},"method-name":{begin:"\\b(function)\\b\\s*\\b(?:(new)|([_A-Za-z]\\w*))?\\b",beginCaptures:{1:{name:"storage.type.function.hx"},2:{name:"storage.type.hx"},3:{name:"entity.name.function.hx"}},end:"(?=$|\\()",patterns:[{include:"#macro-reification"},{include:"#type-parameters"}]},"method-name-post":{begin:"(?<=[\\w\\s>])",end:"(\\{)|(;)",endCaptures:{1:{name:"punctuation.definition.block.begin.hx"},2:{name:"punctuation.terminator.hx"}},patterns:[{include:"#parameters"},{include:"#method-return-type-hint"},{include:"#block"},{include:"#block-contents"}]},"method-return-type-hint":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.hx"}},end:"(?=\\{|;|[a-z0-9])",patterns:[{include:"#type"}]},modifiers:{patterns:[{match:"\\b(enum)\\b",name:"storage.type.class"},{match:"\\b(public|private|static|dynamic|inline|macro|extern|override|overload|abstract)\\b",name:"storage.modifier.hx"},{match:"\\b(final)\\b(?=\\s+(public|private|static|dynamic|inline|macro|extern|override|overload|abstract|function))",name:"storage.modifier.hx"}]},"modifiers-inheritance":{match:"\\b(implements|extends)\\b",name:"storage.modifier.hx"},"new-expr":{begin:"(?>>|<<|>>)",name:"keyword.operator.bitwise.hx"},{match:"(==|!=|<=|>=|<|>)",name:"keyword.operator.comparison.hx"},{match:"(!)",name:"keyword.operator.logical.hx"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.hx"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.hx"},{match:"\\.\\.\\.",name:"keyword.operator.intiterator.hx"},{match:"=>",name:"keyword.operator.arrow.hx"},{match:"\\?\\?",name:"keyword.operator.nullcoalescing.hx"},{match:"\\?\\.",name:"keyword.operator.safenavigation.hx"},{match:"\\bis\\b(?!\\()",name:"keyword.other.hx"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.hx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.hx"}},patterns:[{include:"#block-contents"}]}]},package:{begin:"package\\b",beginCaptures:{0:{name:"keyword.other.package.hx"}},end:"$|(;)",endCaptures:{1:{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{include:"#type-path-package-name"}]},parameter:{begin:"(?<=\\(|,)",end:"(?=\\)(?!\\s*->)|,)",patterns:[{include:"#parameter-name"},{include:"#parameter-type-hint"},{include:"#parameter-assign"},{include:"#punctuation-comma"},{include:"#global"}]},"parameter-assign":{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.hx"}},end:"(?=\\)|,)",patterns:[{include:"#block"},{include:"#block-contents"}]},"parameter-name":{begin:"(?<=\\(|,)",end:"([_a-zA-Z]\\w*)",endCaptures:{1:{name:"variable.parameter.hx"}},patterns:[{include:"#global"},{include:"#metadata"},{include:"#operator-optional"}]},"parameter-type-hint":{begin:":",beginCaptures:{0:{name:"keyword.operator.type.annotation.hx"}},end:"(?=\\)(?!\\s*->)|,|=)",patterns:[{include:"#type"}]},parameters:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.hx"}},end:"\\s*(\\)(?!\\s*->))",endCaptures:{1:{name:"punctuation.definition.parameters.end.hx"}},name:"meta.parameters.hx",patterns:[{include:"#parameter"}]},"punctuation-accessor":{match:"\\.",name:"punctuation.accessor.hx"},"punctuation-braces":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.hx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.hx"}},patterns:[{include:"#keywords"},{include:"#block"},{include:"#block-contents"},{include:"#type-check"}]},"punctuation-comma":{match:",",name:"punctuation.separator.comma.hx"},"punctuation-terminator":{match:";",name:"punctuation.terminator.hx"},regex:{begin:"(~/)",beginCaptures:{1:{name:"punctuation.definition.string.begin.hx"}},end:"(/)([gimsu]*)",endCaptures:{1:{name:"punctuation.definition.string.end.hx"},2:{name:"keyword.other.hx"}},name:"string.regexp.hx",patterns:[{include:"#regexp"}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x\\h\\h|u\\h\\h\\h\\h)",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"},{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"},2:{name:"punctuation.definition.group.assertion.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:"#regexp"}]},{begin:"\\((\\?:)?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.capture.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\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"string-escape-sequences":{patterns:[{match:"\\\\[0-3][0-9]{2}",name:"constant.character.escape.hx"},{match:"\\\\x[0-9A-Fa-f]{2}",name:"constant.character.escape.hx"},{match:"\\\\u[0-9]{4}",name:"constant.character.escape.hx"},{match:"\\\\u\\{[0-9A-Fa-f]{1,}\\}",name:"constant.character.escape.hx"},{match:"\\\\[nrt\"'\\\\]",name:"constant.character.escape.hx"},{match:"\\\\.",name:"invalid.escape.sequence.hx"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.hx"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.hx"}},name:"string.quoted.double.hx",patterns:[{include:"#string-escape-sequences"}]},{begin:"(')",beginCaptures:{0:{name:"string.quoted.single.hx"},1:{name:"punctuation.definition.string.begin.hx"}},end:"(')",endCaptures:{0:{name:"string.quoted.single.hx"},1:{name:"punctuation.definition.string.end.hx"}},patterns:[{begin:"\\$(?=\\$)",beginCaptures:{0:{name:"constant.character.escape.hx"}},end:"\\$",endCaptures:{0:{name:"constant.character.escape.hx"}},name:"string.quoted.single.hx"},{include:"#string-escape-sequences"},{begin:"(\\${)",beginCaptures:{0:{name:"punctuation.definition.block.begin.hx"}},end:"(})",endCaptures:{0:{name:"punctuation.definition.block.end.hx"}},patterns:[{include:"#block-contents"}]},{captures:{1:{name:"punctuation.definition.block.begin.hx"},2:{name:"variable.other.hx"}},match:"(\\$)([_a-zA-Z]\\w*)"},{match:"",name:"constant.character.escape.hx"},{match:".",name:"string.quoted.single.hx"}]}]},type:{patterns:[{include:"#global"},{include:"#macro-reification"},{include:"#type-name"},{include:"#type-parameters"},{match:"->",name:"keyword.operator.type.function.hx"},{match:"&",name:"keyword.operator.type.intersection.hx"},{match:"\\?(?=\\s*[_A-Z])",name:"keyword.operator.optional"},{match:"\\?(?!\\s*[_A-Z])",name:"punctuation.definition.tag"},{begin:"(\\{)",beginCaptures:{0:{name:"punctuation.definition.block.begin.hx"}},end:"(?<=\\})",patterns:[{include:"#typedef-block"}]},{include:"#function-type"}]},"type-check":{begin:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.hx"}},name:"meta.type-parameters.hx",patterns:[{include:"#type"},{include:"#type-parameter-constraint-old"},{include:"#type-parameter-constraint-new"},{include:"#global"},{include:"#regex"},{include:"#array"},{include:"#constants"},{include:"#strings"},{include:"#metadata"},{include:"#punctuation-comma"}]},"type-path":{patterns:[{include:"#global"},{include:"#punctuation-accessor"},{include:"#type-path-type-name"}]},"type-path-package-name":{match:"\\b([_A-Za-z]\\w*)\\b",name:"support.package.hx"},"type-path-type-name":{match:"\\b(_*[A-Z]\\w*)\\b",name:"entity.name.type.hx"},typedef:{begin:"(?=typedef)",end:"(?<=\\})|(;)",endCaptures:{1:{name:"punctuation.terminator.hx"}},name:"meta.typedef.hx",patterns:[{include:"#typedef-name"},{include:"#typedef-name-post"},{include:"#typedef-block"}]},"typedef-block":{begin:"(?<=\\{)",end:"(\\})",endCaptures:{1:{name:"punctuation.definition.block.end.hx"}},name:"meta.block.hx",patterns:[{include:"#global"},{include:"#metadata"},{include:"#method"},{include:"#variable"},{include:"#modifiers"},{include:"#punctuation-comma"},{include:"#operator-optional"},{include:"#typedef-extension"},{include:"#typedef-simple-field-type-hint"},{include:"#identifier-name"},{include:"#strings"}]},"typedef-extension":{begin:">",end:",|$",patterns:[{include:"#type"}]},"typedef-name":{begin:"\\b(typedef)\\b",beginCaptures:{1:{name:"storage.type.class.hx"}},end:"([_A-Za-z]\\w*)",endCaptures:{1:{name:"entity.name.type.class.hx"}},patterns:[{include:"#global"}]},"typedef-name-post":{begin:"(?<=\\w)",end:"(\\{)|(?=;)",endCaptures:{1:{name:"punctuation.definition.block.begin.hx"}},patterns:[{include:"#global"},{include:"#punctuation-brackets"},{include:"#punctuation-separator"},{include:"#operator-assignment"},{include:"#type"}]},"typedef-simple-field-type-hint":{begin:":",beginCaptures:{0:{name:"keyword.operator.type.annotation.hx"}},end:"(?=\\}|,|;)",patterns:[{include:"#type"}]},using:{begin:"using\\b",beginCaptures:{0:{name:"keyword.other.using.hx"}},end:"$|(;)",endCaptures:{1:{name:"punctuation.terminator.hx"}},patterns:[{include:"#type-path"},{include:"#type-path-package-name"}]},variable:{begin:"(?=\\b(var|final)\\b)",end:"(?=$)|(;)",endCaptures:{1:{name:"punctuation.terminator.hx"}},patterns:[{include:"#variable-name"},{include:"#variable-name-next"},{include:"#variable-assign"},{include:"#variable-name-post"}]},"variable-accessors":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.hx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.hx"}},name:"meta.parameters.hx",patterns:[{include:"#global"},{include:"#keywords-accessor"},{include:"#accessor-method"},{include:"#punctuation-comma"}]},"variable-assign":{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.hx"}},end:"(?=;|,)",patterns:[{include:"#block"},{include:"#block-contents"}]},"variable-name":{begin:"\\b(var|final)\\b",beginCaptures:{1:{name:"storage.type.variable.hx"}},end:"(?=$)|([_a-zA-Z]\\w*)",endCaptures:{1:{name:"variable.other.hx"}},patterns:[{include:"#operator-optional"}]},"variable-name-next":{begin:",",beginCaptures:{0:{name:"punctuation.separator.comma.hx"}},end:"([_a-zA-Z]\\w*)",endCaptures:{1:{name:"variable.other.hx"}},patterns:[{include:"#global"}]},"variable-name-post":{begin:"(?<=\\w)",end:"(?=;)|(?==)",patterns:[{include:"#variable-accessors"},{include:"#variable-type-hint"},{include:"#block-contents"}]},"variable-type-hint":{begin:":",beginCaptures:{0:{name:"keyword.operator.type.annotation.hx"}},end:"(?=$|;|,|=)",patterns:[{include:"#type"}]}},r="source.hx",c={displayName:e,fileTypes:n,name:a,patterns:t,repository:i,scopeName:r};export{c as default,e as displayName,n as fileTypes,a as name,t as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/hcl.mjs b/lib/dist/grammar/hcl.mjs new file mode 100644 index 0000000..a1a0605 --- /dev/null +++ b/lib/dist/grammar/hcl.mjs @@ -0,0 +1 @@ +var e="HashiCorp HCL",n=["hcl"],t="hcl",a=[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}],c={attribute_access:{begin:"\\.(?!\\*)",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Matches traversal attribute access such as .attr",end:"[[:alpha:]][\\w-]*|\\d*",endCaptures:{0:{patterns:[{comment:"Attribute name",match:"(?!null|false|true)[[:alpha:]][\\w-]*",name:"variable.other.member.hcl"},{comment:"Optional attribute index",match:"\\d+",name:"constant.numeric.integer.hcl"}]}}},attribute_definition:{captures:{1:{name:"punctuation.section.parens.begin.hcl"},2:{name:"variable.other.readwrite.hcl"},3:{name:"punctuation.section.parens.end.hcl"},4:{name:"keyword.operator.assignment.hcl"}},comment:'Identifier "=" with optional parens',match:"(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*",name:"variable.declaration.hcl"},attribute_splat:{begin:"\\.",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Legacy attribute-only splat",end:"\\*",endCaptures:{0:{name:"keyword.operator.splat.hcl"}}},block:{begin:"([\\w][\\-\\w]*)([^?\\r\\n]*)(\\{)",beginCaptures:{1:{patterns:[{comment:"Block type",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"entity.name.type.hcl"}]},2:{patterns:[{comment:"Block label (String Literal)",match:'\\"[^\\"\\r\\n]*\\"',name:"variable.other.enummember.hcl"},{comment:"Block label (Indentifier)",match:"[[:alpha:]][[:alnum:]_-]*",name:"variable.other.enummember.hcl"}]},3:{name:"punctuation.section.block.begin.hcl"}},comment:'This will match HCL blocks like `thing1 "one" "two" {` or `thing2 {`',end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.hcl"}},name:"meta.block.hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#expressions"},{include:"#block"}]},block_inline_comments:{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence",end:"\\*/",name:"comment.block.hcl"},brackets:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{comment:"Splat operator",match:"\\*",name:"keyword.operator.splat.hcl"},{include:"#comma"},{include:"#comments"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{include:"#expressions"},{include:"#local_identifiers"}]},char_escapes:{comment:"Character Escapes",match:'\\\\[nrt"\\\\]|\\\\u(\\h{8}|\\h{4})',name:"constant.character.escape.hcl"},comma:{comment:"Commas - used in certain expressions",match:"\\,",name:"punctuation.separator.hcl"},comments:{patterns:[{include:"#hash_line_comments"},{include:"#double_slash_line_comments"},{include:"#block_inline_comments"}]},double_slash_line_comments:{begin:"//",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.double-slash.hcl"},expressions:{patterns:[{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#brackets"},{include:"#objects"},{include:"#attribute_access"},{include:"#attribute_splat"},{include:"#functions"},{include:"#parens"}]},for_expression_body:{patterns:[{comment:"in keyword",match:"\\bin\\b",name:"keyword.operator.word.hcl"},{comment:"if keyword",match:"\\bif\\b",name:"keyword.control.conditional.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},functions:{begin:"([:\\-\\w]+)(\\()",beginCaptures:{1:{patterns:[{match:"\\b[[:alpha:]][\\w_-]*::([[:alpha:]][\\w_-]*::)?[[:alpha:]][\\w_-]*\\b",name:"support.function.namespaced.hcl"},{match:"\\b[[:alpha:]][\\w_-]*\\b",name:"support.function.builtin.hcl"}]},2:{name:"punctuation.section.parens.begin.hcl"}},comment:"Built-in function calls",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},name:"meta.function-call.hcl",patterns:[{include:"#comments"},{include:"#expressions"},{include:"#comma"}]},hash_line_comments:{begin:"#",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.number-sign.hcl"},hcl_type_keywords:{comment:"Type keywords known to HCL.",match:"\\b(any|string|number|bool|list|set|map|tuple|object)\\b",name:"storage.type.hcl"},heredoc:{begin:"(\\<\\<\\-?)\\s*(\\w+)\\s*$",beginCaptures:{1:{name:"keyword.operator.heredoc.hcl"},2:{name:"keyword.control.heredoc.hcl"}},comment:"String Heredoc",end:"^\\s*\\2\\s*$",endCaptures:{0:{name:"keyword.control.heredoc.hcl"}},name:"string.unquoted.heredoc.hcl",patterns:[{include:"#string_interpolation"}]},inline_for_expression:{captures:{1:{name:"keyword.control.hcl"},2:{patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]}},match:"(for)\\b(.*)\\n"},inline_if_expression:{begin:"(if)\\b",beginCaptures:{1:{name:"keyword.control.conditional.hcl"}},end:"\\n",patterns:[{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},language_constants:{comment:"Language Constants",match:"\\b(true|false|null)\\b",name:"constant.language.hcl"},literal_values:{patterns:[{include:"#numeric_literals"},{include:"#language_constants"},{include:"#string_literals"},{include:"#heredoc"},{include:"#hcl_type_keywords"}]},local_identifiers:{comment:"Local Identifiers",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"variable.other.readwrite.hcl"},numeric_literals:{patterns:[{captures:{1:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, no fraction, optional exponent",match:"\\b\\d+([Ee][+-]?)\\d+\\b",name:"constant.numeric.float.hcl"},{captures:{1:{name:"punctuation.separator.decimal.hcl"},2:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, fraction, optional exponent",match:"\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b",name:"constant.numeric.float.hcl"},{comment:"Integers",match:"\\b\\d+\\b",name:"constant.numeric.integer.hcl"}]},object_for_expression:{begin:"(\\{)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.braces.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]},object_key_values:{patterns:[{include:"#comments"},{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#heredoc"},{include:"#functions"}]},objects:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},name:"meta.braces.hcl",patterns:[{include:"#comments"},{include:"#objects"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{captures:{1:{name:"meta.mapping.key.hcl variable.other.readwrite.hcl"},2:{name:"keyword.operator.assignment.hcl"}},comment:"Literal, named object key",match:"\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=(?!=))\\s*"},{captures:{1:{name:"meta.mapping.key.hcl string.quoted.double.hcl"},2:{name:"punctuation.definition.string.begin.hcl"},3:{name:"punctuation.definition.string.end.hcl"},4:{name:"keyword.operator.hcl"}},comment:"String object key",match:'^\\s*((").*("))\\s*(\\=)\\s*'},{begin:"^\\s*\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Computed object key (any expression between parens)",end:"(\\))\\s*(=|:)\\s*",endCaptures:{1:{name:"punctuation.section.parens.end.hcl"},2:{name:"keyword.operator.hcl"}},name:"meta.mapping.key.hcl",patterns:[{include:"#attribute_access"},{include:"#attribute_splat"}]},{include:"#object_key_values"}]},operators:{patterns:[{match:"\\>\\=",name:"keyword.operator.hcl"},{match:"\\<\\=",name:"keyword.operator.hcl"},{match:"\\=\\=",name:"keyword.operator.hcl"},{match:"\\!\\=",name:"keyword.operator.hcl"},{match:"\\+",name:"keyword.operator.arithmetic.hcl"},{match:"\\-",name:"keyword.operator.arithmetic.hcl"},{match:"\\*",name:"keyword.operator.arithmetic.hcl"},{match:"\\/",name:"keyword.operator.arithmetic.hcl"},{match:"\\%",name:"keyword.operator.arithmetic.hcl"},{match:"\\&\\&",name:"keyword.operator.logical.hcl"},{match:"\\|\\|",name:"keyword.operator.logical.hcl"},{match:"\\!",name:"keyword.operator.logical.hcl"},{match:"\\>",name:"keyword.operator.hcl"},{match:"\\<",name:"keyword.operator.hcl"},{match:"\\?",name:"keyword.operator.hcl"},{match:"\\.\\.\\.",name:"keyword.operator.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{match:"\\=\\>",name:"keyword.operator.hcl"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Parens - matched *after* function syntax",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},patterns:[{include:"#comments"},{include:"#expressions"}]},string_interpolation:{begin:"(?]*)(?)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.unrecognized.html.derivative",patterns:[{include:"text.html.basic#attribute"}]}],i="text.html.derivative",m={displayName:t,injections:e,name:a,patterns:n,scopeName:i};export{m as default,t as displayName,e as injections,a as name,n as patterns,i as scopeName}; diff --git a/lib/dist/grammar/html.mjs b/lib/dist/grammar/html.mjs new file mode 100644 index 0000000..634d463 --- /dev/null +++ b/lib/dist/grammar/html.mjs @@ -0,0 +1 @@ +var t="HTML",e={"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"}]}},n="html",a=[{include:"#xml-processing"},{include:"#comment"},{include:"#doctype"},{include:"#cdata"},{include:"#tags-valid"},{include:"#tags-invalid"},{include:"#entities"}],i={attribute:{patterns:[{begin:"(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"HTML5 attributes, not event handlers",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"style(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"HTML5 style attribute",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.style.html",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.css",patterns:[{captures:{0:{name:"source.css"}},match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.css",end:'(")',endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.css"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.css",end:"(')",endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.css"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},{begin:"on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"HTML5 attributes, event handlers",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.event-handler.$1.html",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.js",patterns:[{captures:{0:{name:"source.js"},1:{patterns:[{include:"source.js"}]}},match:"(([^\\s\"'=<>`/]|/(?!>))+)",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.js",end:'(")',endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.js"}},name:"string.quoted.double.html",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:'([^\\n"/]|/(?![/*]))+'},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:'(?=")|\\n',name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:'(?=")|\\*/',endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"source.js",end:"(')",endCaptures:{0:{name:"punctuation.definition.string.end.html"},1:{name:"source.js"}},name:"string.quoted.single.html",patterns:[{captures:{0:{patterns:[{include:"source.js"}]}},match:"([^\\n'/]|/(?![/*]))+"},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.js"}},end:"(?=')|\\n",name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.js"}},end:"(?=')|\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},{begin:"(data-[a-z\\-]+)(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"HTML5 attributes, data-*",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.data-x.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"(align|bgcolor|border)(?![\\w:-])",beginCaptures:{0:{name:"invalid.deprecated.entity.other.attribute-name.html"}},comment:"HTML attributes, deprecated",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},"attribute-interior":{patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},cdata:{begin:"",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.cdata.html"},comment:{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\x3e",name:"comment.block.html",patterns:[{match:"\\G-?>",name:"invalid.illegal.characters-not-allowed-here.html"},{match:"\x3c!--(?!>)|",name:"invalid.illegal.characters-not-allowed-here.html"}]},"core-minus-invalid":{comment:"This should be the root pattern array includes minus #tags-invalid",patterns:[{include:"#xml-processing"},{include:"#comment"},{include:"#doctype"},{include:"#cdata"},{include:"#tags-valid"},{include:"#entities"}]},doctype:{begin:"",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.doctype.html",patterns:[{match:"\\G(?i:DOCTYPE)",name:"entity.name.tag.html"},{begin:'"',end:'"',name:"string.quoted.double.html"},{match:"[^\\s>]+",name:"entity.other.attribute-name.html"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},912:{name:"punctuation.definition.entity.html"}},comment:"Yes this is a bit ridiculous, there are quite a lot of these",match:"(?x)\n(&)\t(?=[a-zA-Z])\n(\n(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n| (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n| (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n| (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n| (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n| (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n| (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n| (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n| (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n| (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n| (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n| (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n| (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n| (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n| (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n| (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n| (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n| (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n| (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n| (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n| (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n| (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n| (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n| (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n| (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n| (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n)\n(;)\n",name:"constant.character.entity.named.$2.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.html"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.html"}]},math:{patterns:[{begin:"(?i)(<)(math)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.structure.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{0:{name:"meta.tag.structure.$2.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{0:{name:"meta.tag.structure.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.structure.math.$2.html"},{begin:"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.structure.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.inline.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.inline.math.$2.html"},{begin:"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.inline.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.object.math.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.object.math.$2.html"},{begin:"(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.object.math.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.invalid.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.other.invalid.html"},{begin:"(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.other.invalid.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},svg:{patterns:[{begin:"(?i)(<)(svg)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.structure.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{0:{name:"meta.tag.structure.$2.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",beginCaptures:{0:{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{0:{name:"meta.tag.metadata.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.metadata.svg.$2.html"},{begin:"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.metadata.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.structure.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.structure.svg.$2.html"},{begin:"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.structure.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.inline.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.inline.svg.$2.html"},{begin:"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.inline.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.object.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.object.svg.$2.html"},{begin:"(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.object.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#attribute"}]},5:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.svg.$2.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.other.svg.$2.html"},{begin:"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.other.svg.$2.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{0:{name:"meta.tag.other.invalid.void.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.other.invalid.html"},{begin:"(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{0:{name:"meta.tag.other.invalid.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.unrecognized-tag.html"},4:{patterns:[{include:"#attribute"}]},6:{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},"tags-invalid":{patterns:[{begin:"(]*))(?)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.html",patterns:[{include:"#attribute"}]}]},"tags-valid":{patterns:[{begin:"(^[ \\t]+)?(?=<(?i:style)\\b(?!-))",beginCaptures:{1:{name:"punctuation.whitespace.embedded.leading.html"}},end:"(?!\\G)([ \\t]*$\\n?)?",endCaptures:{1:{name:"punctuation.whitespace.embedded.trailing.html"}},patterns:[{begin:"(?i)(<)(style)(?=\\s|/?>)",beginCaptures:{0:{name:"meta.tag.metadata.style.start.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(?i)((<)/)(style)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.style.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.css-ignored-vscode"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",captures:{1:{name:"punctuation.definition.tag.end.html"}},end:"(>)",name:"meta.tag.metadata.style.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",end:"(?=/)",patterns:[{begin:"(>)",beginCaptures:{0:{name:"meta.tag.metadata.script.start.html"},1:{name:"punctuation.definition.tag.end.html"}},end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"source.js-ignored-vscode"}},patterns:[{begin:"\\G",end:"(?=\n| type(?=[\\s=])\n(?!\\s*=\\s*\n(\n''\n| \"\"\n| ('|\"|)\n(\ntext/\n(\njavascript(1\\.[0-5])?\n| x-javascript\n| jscript\n| livescript\n| (x-)?ecmascript\n| babel\n\n)\n| application/\n(\n(x-)?javascript\n| (x-)?ecmascript\n)\n| module\n)\n[\\s\"'>]\n)\n)\n)\n)",name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?ix:\n(?=\ntype\\s*=\\s*\n('|\"|)\ntext/\n(\nx-handlebars\n| (x-(handlebars-)?|ng-)?template\n| html\n)\n[\\s\"'>]\n)\n)",end:"((<))(?=/(?i:script))",endCaptures:{0:{name:"meta.tag.metadata.script.end.html"},1:{name:"punctuation.definition.tag.begin.html"},2:{name:"text.html.basic"}},patterns:[{begin:"\\G",end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(noscript|title)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(col|hr|input)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(area|br|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((basefont|isindex))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((frame))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((applet))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.deprecated.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.end.html",patterns:[{include:"#attribute"}]},{include:"#math"},{include:"#svg"},{begin:"(<)([a-zA-Z][.0-9_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}]*-[\\-.0-9_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}]*)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.start.html",patterns:[{include:"#attribute"}]},{begin:"()",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:">",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.end.html",patterns:[{include:"#attribute"}]}]},"xml-processing":{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(\\?>)",name:"meta.tag.metadata.processing.xml.html",patterns:[{include:"#attribute"}]}},r="text.html.basic",m={displayName:t,injections:e,name:n,patterns:a,repository:i,scopeName:r};export{m as default,t as displayName,e as injections,n as name,a as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/http.mjs b/lib/dist/grammar/http.mjs new file mode 100644 index 0000000..2b6124d --- /dev/null +++ b/lib/dist/grammar/http.mjs @@ -0,0 +1 @@ +var t="HTTP",e=["http","rest"],a="http",n=[{begin:"^\\s*(?=curl)",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.curl",patterns:[{include:"source.shell"}]},{begin:"\\s*(?=(\\[|{[^{]))",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.body.json",patterns:[{include:"source.json"}]},{begin:"^\\s*(?=<\\S)",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.body.xml",patterns:[{include:"text.xml"}]},{begin:"\\s*(?=(query|mutation))",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{0:{name:"comment.line.sharp.http"}},name:"http.request.body.graphql",patterns:[{include:"source.graphql"}]},{begin:"\\s*(?=(query|mutation))",end:"^\\{\\s*$",name:"http.request.body.graphql",patterns:[{include:"source.graphql"}]},{include:"#metadata"},{include:"#comments"},{captures:{1:{name:"keyword.other.http"},2:{name:"variable.other.http"},3:{name:"string.other.http"}},match:"^\\s*(@)([^\\s=]+)\\s*=\\s*(.*?)\\s*$",name:"http.filevariable"},{captures:{1:{name:"keyword.operator.http"},2:{name:"variable.other.http"},3:{name:"string.other.http"}},match:"^\\s*(\\?|&)([^=\\s]+)=(.*)$",name:"http.query"},{captures:{1:{name:"entity.name.tag.http"},2:{name:"keyword.other.http"},3:{name:"string.other.http"}},match:"^([\\w\\-]+)\\s*(\\:)\\s*([^/].*?)\\s*$",name:"http.headers"},{include:"#request-line"},{include:"#response-line"}],s={comments:{patterns:[{match:"^\\s*\\#{1,}.*$",name:"comment.line.sharp.http"},{match:"^\\s*\\/{2,}.*$",name:"comment.line.double-slash.http"}]},metadata:{patterns:[{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"entity.name.type.http"}},match:"^\\s*\\#{1,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",name:"comment.line.sharp.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"entity.name.type.http"}},match:"^\\s*\\/{2,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",name:"comment.line.double-slash.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"}},match:"^\\s*\\#{1,}\\s+((@)note)\\s*$",name:"comment.line.sharp.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"}},match:"^\\s*\\/{2,}\\s+((@)note)\\s*$",name:"comment.line.double-slash.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"variable.other.http"},4:{name:"string.other.http"}},match:"^\\s*\\#{1,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",name:"comment.line.sharp.http"},{captures:{1:{name:"entity.other.attribute-name"},2:{name:"punctuation.definition.block.tag.metadata"},3:{name:"variable.other.http"},4:{name:"string.other.http"}},match:"^\\s*\\/{2,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",name:"comment.line.double-slash.http"}]},protocol:{patterns:[{captures:{1:{name:"keyword.other.http"},2:{name:"constant.numeric.http"}},match:"(HTTP)/(\\d+.\\d+)",name:"http.version"}]},"request-line":{captures:{1:{name:"keyword.control.http"},2:{name:"const.language.http"},3:{patterns:[{include:"#protocol"}]}},match:"(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace|lock|unlock|propfind|proppatch|copy|move|mkcol|mkcalendar|acl|search)\\s+)?\\s*(.+?)(?:\\s+(HTTP\\/\\S+))?$",name:"http.requestline"},"response-line":{captures:{1:{patterns:[{include:"#protocol"}]},2:{name:"constant.numeric.http"},3:{name:"string.other.http"}},match:"(?i)^\\s*(HTTP\\/\\S+)\\s([1-5][0-9][0-9])\\s(.*)$",name:"http.responseLine"}},m="source.http",r={displayName:t,fileTypes:e,name:a,patterns:n,repository:s,scopeName:m};export{r as default,t as displayName,e as fileTypes,a as name,n as patterns,s as repository,m as scopeName}; diff --git a/lib/dist/grammar/hxml.mjs b/lib/dist/grammar/hxml.mjs new file mode 100644 index 0000000..b51f066 --- /dev/null +++ b/lib/dist/grammar/hxml.mjs @@ -0,0 +1 @@ +var e="HXML",n=["hxml"],a="--next",t="\\n\\n",r="hxml",s=[{captures:{1:{name:"punctuation.definition.comment.hxml"}},match:"(#).*$\\n?",name:"comment.line.number-sign.hxml"},{begin:"(?*]):[\\.:\\w_\\-=!@\\$%^&?\\/<>*]*",name:"variable.other.constant"},keywords:{patterns:[{match:"\\b(\\.|->|->>|and|match|let|await|annotate|as->|as-model|assert|assoc|break|chainc|comment|cond|continue|do|doc|#doc|([dgls])?for|set[vx]|defclass|defmain|defmacro|defmacro\\/g!|defmacro!|deftag|del|doto|eval-and-compile|eval-when-compile|first|gensym|get|global|if|if\\*|if-not|import|(de)?fn(\\/a)?|last|nonlocal|not(\\?|-in)?|or|print|(quasi)?quote|require|rest|return|cut|raise|try|unless|unpack-iterable|unpack-mapping|unquote|unquote-splice|when|while|with(\\/a)?|with-decorator|with-gensyms|xor|yield(-from)?|butlast|coll\\?|comp|complement|constantly|dec|disassemble|empty\\?|eval|every\\?|exec|float\\?|fraction|even\\?|identity|inc|instance\\?|integer\\?|interleave|interpose|iterable\\?|iterator\\?|juxt|keyword|keyword\\?|macroexpand(-1)?|mangle|merge-with|name|neg\\?|none\\?|nth|numeric\\?|odd\\?|partition|pos\\?|second|some|string\\?|symbol\\?|zero\\?|cycle|distinct|drop|drop-last|drop-while|filter|flatten|iterate|read|read-str|remove|repeat|repeatedly|take|take-nth|take-while|unmangle|False|None|True|as|in|is|py(s)?|lambda|nonlocal|not|pass|abs|all|any|ascii|bin|bool|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr(-register)?|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip|__import__|abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|cos|floor|round|sin|sqrt|tan|(?:real|imag)-part|numerator|denominatormodulo|exp|expt|remainder|quotient|lcm|call-with-(?:input|output)-file|(?:close|current)-(?:input|output)-port|with-(?:input|output)-from-file|open-(?:input|output)-file|char-(?:downcase|upcase|ready)|make-(?:polar|promise|rectangular|string|vector)|string(?:-(?:append|copy|length|ref))|vector(?:-length|-ref))[\\s\\)]",name:"keyword.control.hy"}]},operators:{patterns:[{match:"(?<=\\()\\s*(\\+=?|\\/+|\\*+|-=?|[!<>]?=|@|%|<<|>>|<|>|&|\\||\\^|~)",name:"keyword.control.hy"}]},strings:{begin:'(f?"|}(?=[^\n]*?[{"]))',end:'("|(?<=["}][^\n]*?){)',name:"string.quoted.double.hy",patterns:[{match:"\\\\.",name:"constant.character.escape.hy"}]},symbol:{match:"(?*#])[\\.a-zA-ZΑ-Ωα-ω_\\-=!@\\$%^*#][\\.:\\w_\\-=!@\\$%^&?/<>*#]*",name:"variable.other.hy"}},r="source.hy",o={displayName:"Hy",name:"hy",patterns:a,repository:n,scopeName:r};export{o as default,e as displayName,t as name,a as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/imba.mjs b/lib/dist/grammar/imba.mjs new file mode 100644 index 0000000..615eff1 --- /dev/null +++ b/lib/dist/grammar/imba.mjs @@ -0,0 +1 @@ +var e="Imba",n=["imba","imba2"],a="imba",t=[{include:"#root"},{captures:{1:{name:"punctuation.definition.comment.imba"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.imba"}],i={"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.imba"}},name:"meta.array.literal.imba",patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},block:{patterns:[{include:"#style-declaration"},{include:"#mixin-declaration"},{include:"#object-keys"},{include:"#generics-literal"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"},{include:"#invalid-indentation"}]},"boolean-literal":{patterns:[{match:"(?>>|>>|>|\\+|~",name:"punctuation.separator.combinator.css"},{match:"&",name:"keyword.other.parent-selector.css"}]},"css-commas":{match:",",name:"punctuation.separator.list.comma.css"},"css-comment":{patterns:[{match:"\\#(\\s.+)?(\\n|$)",name:"comment.line.imba"},{match:"(^\\t+)(\\#(\\s.+)?(\\n|$))",name:"comment.line.imba"}]},"css-escapes":{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)"}]},{include:"#css-pseudo-classes"},{include:"#css-pseudo-elements"},{include:"#css-mixin"}]},"css-size-keywords":{patterns:[{match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",name:"support.constant.size.property-value.css"}]},"curly-braces":{begin:"\\s*(\\{)",beginCaptures:{1:{name:"meta.brace.curly.imba"}},end:"\\}",endCaptures:{0:{name:"meta.brace.curly.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},decorator:{begin:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.imba"}},end:"(?=$)",name:"comment.line.triple-slash.directive.imba",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.imba"},2:{name:"entity.name.tag.directive.imba"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.imba"}},name:"meta.tag.imba",patterns:[{match:"path|types|no-default-lib|lib|name",name:"entity.other.attribute-name.directive.imba"},{match:"=",name:"keyword.operator.assignment.imba"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"(?x)\n((@)author)\n\\s+\n(\n[^@\\s<>*/]\n(?:[^@<>*/]|\\*[^/])*\n)\n(?:\n\\s*\n(<)\n([^>\\s]+)\n(>)\n)?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)\n\\s+ (as) \\s+\n((?:[^@\\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:"()|(?=\\*/)",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.imba"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)see)\n\\s+\n(?:\n\n(\n(?=https?://)\n(?:[^\\s*]|\\*[^/])+\n)\n|\n\n(\n(?!\n\nhttps?://\n|\n\n(?:\\[[^\\[\\]]*\\])?\n{@(?:link|linkcode|linkplain|tutorial)\\b\n)\n\n(?:[^@\\s*/]|\\*[^/])+\n)\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n(?:\n\\s* , \\s*\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)*\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n(\n(@)\n(?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)"},{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.imba"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n(?:\\[\\])?\n\\.\n[\\w$]+\n)*\n(?:\n\\s*\n(=)\n\\s*\n(\n\n(?>\n\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |\n'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |\n\\[ (?:(?:\\*(?!/))|[^*])*? \\] |\n(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*\n)*\n)\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",name:"variable.other.jsdoc"}]},{begin:"(?x)\n(\n(@)\n(?:define|enum|exception|export|extends|lends|implements|modifies\n|namespace|private|protected|returns?|suppress|this|throws|type\n|yields?)\n)\n\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n(\n(@)\n(?:alias|augments|callback|constructs|emits|event|fires|exports?\n|extends|external|function|func|host|lends|listens|interface|memberof!?\n|method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n(?:\n[^{}@\\s*] | \\*[^/]\n)+\n)"},{begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)"}]},expr:{patterns:[{include:"#style-declaration"},{include:"#object-keys"},{include:"#generics-literal"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"}]},expression:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"}]},{include:"#tag-literal"},{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#literal"},{include:"#support-objects"}]},"generics-literal":{begin:"(?<=[\\w\\]\\)])\\<",beginCaptures:{1:{name:"meta.generics.annotation.open.imba"}},end:"\\>",endCaptures:{0:{name:"meta.generics.annotation.close.imba"}},name:"meta.generics.annotation.imba",patterns:[{include:"#type-brackets"}]},"global-literal":{match:"(?\\=?|\\<\\=?)",name:"keyword.operator.imba"},{match:"(of|delete|\\!?isa|typeof|\\!?in|new|\\!?is|isnt)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.imba"}]},literal:{patterns:[{include:"#number-with-unit-literal"},{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#this-literal"},{include:"#global-literal"},{include:"#super-literal"},{include:"#type-literal"},{include:"#generics-literal"},{include:"#string"}]},"mixin-css-selector":{begin:"(\\%[\\w\\-]+)",beginCaptures:{1:{name:"entity.other.attribute-name.mixin.css"}},end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"mixin-css-selector-after":{begin:"(?<=%[\\w\\-]+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"mixin-declaration":{begin:"^(\\t*)(\\%[\\w\\-]+)",beginCaptures:{2:{name:"entity.other.attribute-name.mixin.css"}},end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#mixin-css-selector-after"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"nested-css-selector":{begin:"(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"nested-style-declaration":{begin:"^(\\t+)(?=[\\n^]*\\&)",end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#nested-css-selector"},{include:"#inline-styles"}]},"null-literal":{match:"(?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.imba"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.imba"},{match:"===|!==|==|!=|~=",name:"keyword.operator.comparison.imba"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.imba"},{captures:{1:{name:"keyword.operator.logical.imba"},2:{name:"keyword.operator.arithmetic.imba"}},match:"(\\!)\\s*(/)(?![/*])"},{match:"\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|\\@\\b(?=\\s|$)",name:"keyword.operator.logical.imba"},{match:"\\?(?=\\s|$)",name:"keyword.operator.bitwise.imba"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.ternary.imba"},{match:"\\=",name:"keyword.operator.assignment.imba"},{match:"--",name:"keyword.operator.decrement.imba"},{match:"\\+\\+",name:"keyword.operator.increment.imba"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.imba"}]},pairs:{patterns:[{include:"#curly-braces"},{include:"#square-braces"},{include:"#round-braces"}]},"plain-accessors":{patterns:[{captures:{1:{name:"punctuation.accessor.imba"},2:{name:"variable.other.property.imba"}},match:"(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"}]},"plain-identifiers":{patterns:[{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.imba"},{match:"[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?",name:"variable.other.class.imba"},{match:"\\$\\d+",name:"variable.special.imba"},{match:"\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.internal.imba"},{match:"\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.symbol.imba"},{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.readwrite.imba"},{match:"\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.instance.imba"},{match:"\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.private.imba"},{match:"\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"string.symbol.imba"}]},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.imba"},2:{name:"punctuation.accessor.optional.imba"}},match:"(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.imba"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.imba"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.imba"}},name:"string.quoted.double.imba",patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.imba"},2:{name:"invalid.illegal.newline.imba"}},name:"string.quoted.single.imba",patterns:[{include:"#string-character-escape"}]},"qstring-single-multi":{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.imba"}},name:"string.quoted.single.imba",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.imba"}},end:"(/)([gimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.imba"},2:{name:"keyword.other.imba"}},name:"string.regexp.imba",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",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"}]},root:{patterns:[{include:"#block"}]},"round-braces":{begin:"\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.imba"},2:{name:"comment.line.double-slash.imba"},3:{name:"punctuation.definition.comment.imba"},4:{name:"storage.type.internaldeclaration.imba"},5:{name:"punctuation.decorator.internaldeclaration.imba"}},contentName:"comment.line.double-slash.imba",end:"(?=^)"},"square-braces":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},string:{patterns:[{include:"#qstring-single-multi"},{include:"#qstring-double-multi"},{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.imba"},"style-declaration":{begin:"^(\\t*)(?:(global|local|export)\\s+)?(?:(scoped)\\s+)?(css)\\s",beginCaptures:{2:{name:"keyword.control.export.imba"},3:{name:"storage.modifier.imba"},4:{name:"storage.type.style.imba"}},end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#css-selector"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"style-expr":{patterns:[{captures:{1:{name:"constant.numeric.integer.decimal.css"},2:{name:"keyword.other.unit.css"}},match:"(\\b[0-9][0-9_]*)(\\w+|%)?"},{match:"--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"support.constant.property-value.var.css"},{match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",name:"support.constant.property-value.size.css"},{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"support.constant.property-value.css"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\)",name:"meta.function.css",patterns:[{include:"#style-expr"}]}]},"style-property":{patterns:[{begin:"(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",beginCaptures:{1:{name:"support.function.calc.css"},2:{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\s*[\\:\\=]",endCaptures:{0:{name:"punctuation.separator.key-value.css"}},name:"meta.property-name.css",patterns:[{match:"(?:--|\\$)[\\w\\-\\$]+",name:"support.type.property-name.variable.css"},{match:"\\@[\\!\\<\\>]?[0-9]+",name:"support.type.property-name.modifier.breakpoint.css"},{match:"\\^?\\@+[\\w\\-\\$]+",name:"support.type.property-name.modifier.css"},{match:"\\^?\\.+[\\w\\-\\$]+",name:"support.type.property-name.modifier.flag.css"},{match:"\\^?\\%+[\\w\\-\\$]+",name:"support.type.property-name.modifier.state.css"},{match:"\\.\\.[\\w\\-\\$]+|\\^+[\\.\\@\\%][\\w\\-\\$]+",name:"support.type.property-name.modifier.up.css"},{match:"\\.[\\w\\-\\$]+",name:"support.type.property-name.modifier.is.css"},{match:"[\\w\\-\\$]+",name:"support.type.property-name.css"}]}]},"super-literal":{match:"(?\\=])"},"tag-attr-value":{begin:"(\\=)",beginCaptures:{0:{name:"keyword.operator.tag.assignment"}},contentName:"meta.tag.attribute-value.imba",end:"(?=>|\\s)",patterns:[{include:"#expr"}]},"tag-classname":{begin:"\\.",contentName:"entity.other.attribute-name.class.css",end:"(?=[\\.\\[\\>\\s\\(\\=])",patterns:[{include:"#tag-interpolated-content"}]},"tag-content":{patterns:[{include:"#tag-name"},{include:"#tag-expr-name"},{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-brackets"},{include:"#tag-event-handler"},{include:"#tag-mixin-name"},{include:"#tag-classname"},{include:"#tag-ref"},{include:"#tag-attr-value"},{include:"#tag-attr-name"},{include:"#comment"}]},"tag-event-handler":{begin:"(\\@[\\w$_]+(?:\\-[\\w$_]+)*)",beginCaptures:{0:{name:"entity.other.event-name.imba"}},contentName:"entity.other.tag.event",end:"(?=[\\[\\>\\s\\=])",patterns:[{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{begin:"\\.",beginCaptures:{0:{name:"punctuation.section.tag"}},end:"(?=[\\.\\[\\>\\s\\=]|$)",name:"entity.other.event-modifier.imba",patterns:[{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-content"}]}]},"tag-expr-name":{begin:"(?<=<)(?=[\\w\\{])",contentName:"entity.name.tag.imba",end:"(?=[\\%\\$\\#\\.\\[\\>\\s\\(])",patterns:[{include:"#tag-interpolated-content"}]},"tag-interpolated-brackets":{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\]",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#inline-css-selector"},{include:"#inline-styles"}]},"tag-interpolated-content":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\}",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#expression"}]},"tag-interpolated-parens":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\)",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#expression"}]},"tag-literal":{patterns:[{begin:"(<)(?=[\\%\\~\\w\\{\\[\\.\\#\\$\\@\\(])",beginCaptures:{1:{name:"punctuation.section.tag.open.imba"}},contentName:"meta.tag.attributes.imba",end:"(>)",endCaptures:{1:{name:"punctuation.section.tag.close.imba"}},name:"meta.tag.imba",patterns:[{include:"#tag-content"}]}]},"tag-mixin-name":{match:"(\\%[\\w\\-]+)",name:"entity.other.tag-mixin.imba"},"tag-name":{patterns:[{match:"(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])",name:"entity.name.tag.special.imba"}]},"tag-ref":{match:"(\\$[\\w\\-]+)",name:"entity.other.tag-ref.imba"},template:{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)",end:"(?=`)",name:"string.template.imba",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))",end:"(?=({{typeArguments}}\\s*)?`)",patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)",name:"entity.name.function.tagged-template.imba"}]}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.imba"}},end:"(?=`)",name:"string.template.imba",patterns:[{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.imba"},2:{name:"punctuation.definition.string.template.begin.imba"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.template.end.imba"}},name:"string.template.imba",patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-substitution-element":{begin:"(?",patterns:[{include:"#type-brackets"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-brackets"}]}]},"type-literal":{begin:"(\\\\)",beginCaptures:{1:{name:"meta.type.annotation.open.imba"}},end:"(?=[\\s\\]\\)\\,\\.\\=\\}]|$)",name:"meta.type.annotation.imba",patterns:[{include:"#type-brackets"}]},"undefined-literal":{match:"(?",endCaptures:{0:{name:"punctuation.bracket.angle.java"}},patterns:[{match:"\\b(extends|super)\\b",name:"storage.modifier.$1.java"},{captures:{1:{name:"storage.type.java"}},match:"(?>>?|~|\\^)",name:"keyword.operator.bitwise.java"},{match:"((&|\\^|\\||<<|>>>?)=)",name:"keyword.operator.assignment.bitwise.java"},{match:"(===?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.java"},{match:"([+*/%-]=)",name:"keyword.operator.assignment.arithmetic.java"},{match:"(=)",name:"keyword.operator.assignment.java"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.java"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.java"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.java"},{match:"(\\||&)",name:"keyword.operator.bitwise.java"},{match:"\\b(const|goto)\\b",name:"keyword.reserved.java"}]},"lambda-expression":{patterns:[{match:"->",name:"storage.type.function.arrow.java"}]},"member-variables":{begin:"(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)",end:"(?=\\=|;)",patterns:[{include:"#storage-modifiers"},{include:"#variables"},{include:"#primitive-arrays"},{include:"#object-types"}]},"method-call":{begin:"(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()",beginCaptures:{1:{name:"punctuation.separator.period.java"},2:{name:"entity.name.function.java"},3:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.method-call.java",patterns:[{include:"#code"}]},methods:{begin:"(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()",end:"(})|(?=;)",endCaptures:{1:{name:"punctuation.section.method.end.bracket.curly.java"}},name:"meta.method.java",patterns:[{include:"#storage-modifiers"},{begin:"(\\w+)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.java"},2:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.method.identifier.java",patterns:[{include:"#parameters"},{include:"#parens"},{include:"#comments"}]},{include:"#generics"},{begin:"(?=\\w.*\\s+\\w+\\s*\\()",end:"(?=\\s+\\w+\\s*\\()",name:"meta.method.return-type.java",patterns:[{include:"#all-types"},{include:"#parens"},{include:"#comments"}]},{include:"#throws"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.method.begin.bracket.curly.java"}},contentName:"meta.method.body.java",end:"(?=})",patterns:[{include:"#code"}]},{include:"#comments"}]},module:{begin:"((open)\\s)?(module)\\s+(\\w+)",beginCaptures:{1:{name:"storage.modifier.java"},3:{name:"storage.modifier.java"},4:{name:"entity.name.type.module.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.module.end.bracket.curly.java"}},name:"meta.module.java",patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.module.begin.bracket.curly.java"}},contentName:"meta.module.body.java",end:"(?=})",patterns:[{include:"#comments"},{include:"#comments-javadoc"},{match:"\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",name:"keyword.module.java"}]}]},numbers:{patterns:[{match:"(?x)\n\\b(?)?(\\()",beginCaptures:{1:{name:"storage.modifier.java"},2:{name:"entity.name.type.record.java"},3:{patterns:[{include:"#generics"}]},4:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.record.identifier.java",patterns:[{include:"#code"}]},{begin:"(implements)\\s",beginCaptures:{1:{name:"storage.modifier.implements.java"}},end:"(?=\\s*\\{)",name:"meta.definition.class.implemented.interfaces.java",patterns:[{include:"#object-types-inherited"},{include:"#comments"}]},{include:"#record-body"}]},"record-body":{begin:"{",beginCaptures:{0:{name:"punctuation.section.class.begin.bracket.curly.java"}},end:"(?=})",name:"meta.record.body.java",patterns:[{include:"#record-constructor"},{include:"#class-body"}]},"record-constructor":{begin:"(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))",end:"(})|(?=;)",endCaptures:{1:{name:"punctuation.section.method.end.bracket.curly.java"}},name:"meta.method.java",patterns:[{include:"#storage-modifiers"},{begin:"(\\w+)",beginCaptures:{1:{name:"entity.name.function.java"}},end:"(?=\\s*{)",name:"meta.method.identifier.java",patterns:[{include:"#comments"}]},{include:"#comments"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.method.begin.bracket.curly.java"}},contentName:"meta.method.body.java",end:"(?=})",patterns:[{include:"#code"}]}]},"static-initializer":{patterns:[{include:"#anonymous-block-and-instance-initializer"},{match:"static",name:"storage.modifier.java"}]},"storage-modifiers":{match:"\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b",name:"storage.modifier.java"},strings:{patterns:[{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.java"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.java"}},name:"string.quoted.triple.java",patterns:[{match:'(\\\\""")(?!")|(\\\\.)',name:"constant.character.escape.java"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.java"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.java"}},name:"string.quoted.double.java",patterns:[{match:"\\\\.",name:"constant.character.escape.java"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.java"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.java"}},name:"string.quoted.single.java",patterns:[{match:"\\\\.",name:"constant.character.escape.java"}]}]},throws:{begin:"throws",beginCaptures:{0:{name:"storage.modifier.java"}},end:"(?={|;)",name:"meta.throwables.java",patterns:[{match:",",name:"punctuation.separator.delimiter.java"},{match:"[a-zA-Z$_][\\.a-zA-Z0-9$_]*",name:"storage.type.java"},{include:"#comments"}]},"try-catch-finally":{patterns:[{begin:"\\btry\\b",beginCaptures:{0:{name:"keyword.control.try.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.try.end.bracket.curly.java"}},name:"meta.try.java",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.try.resources.begin.bracket.round.java"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.try.resources.end.bracket.round.java"}},name:"meta.try.resources.java",patterns:[{include:"#code"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.try.begin.bracket.curly.java"}},contentName:"meta.try.body.java",end:"(?=})",patterns:[{include:"#code"}]}]},{begin:"\\b(catch)\\b",beginCaptures:{1:{name:"keyword.control.catch.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.catch.end.bracket.curly.java"}},name:"meta.catch.java",patterns:[{include:"#comments"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.java"}},contentName:"meta.catch.parameters.java",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.java"}},patterns:[{include:"#comments"},{include:"#storage-modifiers"},{begin:"[a-zA-Z$_][\\.a-zA-Z0-9$_]*",beginCaptures:{0:{name:"storage.type.java"}},end:"(\\|)|(?=\\))",endCaptures:{1:{name:"punctuation.catch.separator.java"}},patterns:[{include:"#comments"},{captures:{0:{name:"variable.parameter.java"}},match:"\\w+"}]}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.catch.begin.bracket.curly.java"}},contentName:"meta.catch.body.java",end:"(?=})",patterns:[{include:"#code"}]}]},{begin:"\\bfinally\\b",beginCaptures:{0:{name:"keyword.control.finally.java"}},end:"}",endCaptures:{0:{name:"punctuation.section.finally.end.bracket.curly.java"}},name:"meta.finally.java",patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.finally.begin.bracket.curly.java"}},contentName:"meta.finally.body.java",end:"(?=})",patterns:[{include:"#code"}]}]}]},variables:{begin:"(?x)\n(?=\n\\b\n(\n(void|boolean|byte|char|short|int|float|long|double)\n|\n(?>(\\w+\\.)*[A-Z_]+\\w*)\n)\n\\b\n\\s*\n(\n<[\\w<>,\\.?\\s\\[\\]]*>\n)?\n\\s*\n(\n(\\[\\])*\n)?\n\\s+\n[A-Za-z_$][\\w$]*\n([\\w\\[\\],$][\\w\\[\\],\\s]*)?\n\\s*(=|:|;)\n)",end:"(?=\\=|:|;)",name:"meta.definition.variable.java",patterns:[{captures:{1:{name:"variable.other.definition.java"}},match:"([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))"},{include:"#all-types"},{include:"#code"}]},"variables-local":{begin:"(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))",end:"(?=\\=|:|;)",name:"meta.definition.variable.local.java",patterns:[{match:"\\bvar\\b",name:"storage.type.local.java"},{captures:{1:{name:"variable.other.definition.java"}},match:"([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))"},{include:"#code"}]}},i="source.java",r={displayName:e,name:a,patterns:n,repository:t,scopeName:i};export{r as default,e as displayName,a as name,n as patterns,t as repository,i as scopeName}; diff --git a/lib/dist/grammar/javascript.mjs b/lib/dist/grammar/javascript.mjs new file mode 100644 index 0000000..4024f6c --- /dev/null +++ b/lib/dist/grammar/javascript.mjs @@ -0,0 +1 @@ +var e="JavaScript",n="javascript",a=[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],t={"access-modifier":{match:"(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js"}},name:"meta.objectliteral.js",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js"}},name:"meta.array.literal.js",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.js"},2:{name:"variable.parameter.js"}},match:"(?:(?)",name:"meta.arrow.js"},{begin:"(?x) (?:\n(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n)\n)",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.js",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"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.js",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"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.js",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:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js"}},end:"(?=$)",name:"comment.line.triple-slash.directive.js",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js"},2:{name:"entity.name.tag.directive.js"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js"}},name:"meta.tag.js",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.js"},{match:"=",name:"keyword.operator.assignment.js"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"(?x)\n((@)author)\n\\s+\n(\n[^@\\s<>*/]\n(?:[^@<>*/]|\\*[^/])*\n)\n(?:\n\\s*\n(<)\n([^>\\s]+)\n(>)\n)?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)\n\\s+ (as) \\s+\n((?:[^@\\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:"()|(?=\\*/)",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"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)see)\n\\s+\n(?:\n\n(\n(?=https?://)\n(?:[^\\s*]|\\*[^/])+\n)\n|\n\n(\n(?!\n\nhttps?://\n|\n\n(?:\\[[^\\[\\]]*\\])?\n{@(?:link|linkcode|linkplain|tutorial)\\b\n)\n\n(?:[^@\\s*/]|\\*[^/])+\n)\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n(?:\n\\s* , \\s*\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)*\n)"},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n(\n(@)\n(?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)"},{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"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n(?:\\[\\])?\n\\.\n[\\w$]+\n)*\n(?:\n\\s*\n(=)\n\\s*\n(\n\n(?>\n\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |\n'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |\n\\[ (?:(?:\\*(?!/))|[^*])*? \\] |\n(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*\n)*\n)\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",name:"variable.other.jsdoc"}]},{begin:"(?x)\n(\n(@)\n(?:define|enum|exception|export|extends|lends|implements|modifies\n|namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n|yields?)\n)\n\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n(\n(@)\n(?:alias|augments|callback|constructs|emits|event|fires|exports?\n|extends|external|function|func|host|lends|listens|interface|memberof!?\n|method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n(?:\n[^{}@\\s*] | \\*[^/]\n)+\n)"},{begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.js"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.js"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.js"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.js"},{captures:{1:{name:"keyword.operator.logical.js"},2:{name:"keyword.operator.assignment.compound.js"},3:{name:"keyword.operator.arithmetic.js"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.js"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.js"},{match:"\\=",name:"keyword.operator.assignment.js"},{match:"--",name:"keyword.operator.decrement.js"},{match:"\\+\\+",name:"keyword.operator.increment.js"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.js"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js"},2:{name:"keyword.operator.arithmetic.js"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.js"},2:{name:"keyword.operator.arithmetic.js"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?x)(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.js variable.object.property.js"},{match:"\\?",name:"keyword.operator.optional.js"},{match:"\\!",name:"keyword.operator.definiteassignment.js"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.js",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.js punctuation.accessor.optional.js"},{match:"\\!",name:"meta.function-call.js keyword.operator.definiteassignment.js"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.js"}]},"function-declaration":{begin:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n))"},{captures:{1:{name:"punctuation.accessor.js"},2:{name:"punctuation.accessor.optional.js"},3:{name:"variable.other.constant.property.js"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.js"},2:{name:"punctuation.accessor.optional.js"},3:{name:"variable.other.property.js"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.js"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.js"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js"},2:{name:"punctuation.definition.tag.begin.js"},3:{name:"entity.name.tag.namespace.js"},4:{name:"punctuation.separator.namespace.js"},5:{name:"entity.name.tag.js"},6:{name:"support.class.component.js"},7:{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.js",patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:"(?=|/\\*|//)"},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.js",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-tag-in-expression":{begin:"(?x)\n(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n(?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,))\n(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"},6:{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",end:"()",endCaptures:{1:{name:"punctuation.definition.tag.begin.js"},2:{name:"entity.name.tag.namespace.js"},3:{name:"punctuation.separator.namespace.js"},4:{name:"entity.name.tag.js"},5:{name:"support.class.component.js"},6:{name:"punctuation.definition.tag.end.js"}},name:"meta.tag.without-attributes.js",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.js"},2:{name:"punctuation.separator.label.js"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.js"},2:{name:"punctuation.separator.label.js"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js"},2:{name:"storage.modifier.js"},3:{name:"storage.modifier.js"},4:{name:"storage.modifier.async.js"},5:{name:"keyword.operator.new.js"},6:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js"},2:{name:"storage.modifier.js"},3:{name:"storage.modifier.js"},4:{name:"storage.modifier.async.js"},5:{name:"storage.type.property.js"},6:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"storage.type.property.js"},3:{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js"},2:{name:"storage.type.property.js"},3:{name:"keyword.generator.asterisk.js"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.js meta.object-literal.key.js",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?x)(?=(\\b(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",name:"meta.object.member.js"},{captures:{0:{name:"meta.object-literal.key.js"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js"}},end:"(?=,|\\})",name:"meta.object.member.js",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.js"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js"},{captures:{1:{name:"keyword.control.as.js"},2:{name:"storage.modifier.js"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},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"},2:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js"}},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"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},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"},2:{name:"punctuation.definition.binding-pattern.array.js"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js"}},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"}},match:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?])",name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js"}},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"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"}},contentName:"meta.arrow.js meta.return.type.arrow.js",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.js"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.js"},2:{name:"keyword.other.js"}},name:"string.regexp.js",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",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"}},end:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n|\n(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.js"},2:{name:"support.type.object.module.js"},3:{name:"punctuation.accessor.js"},4:{name:"punctuation.accessor.optional.js"},5:{name:"support.type.object.module.js"}},match:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.js"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js"},2:{name:"string.template.js punctuation.definition.string.template.begin.js"}},contentName:"string.template.js",end:"`",endCaptures:{0:{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},contentName:"meta.embedded.line.js",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},name:"meta.template.expression.js",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.js"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?)\n))\n)\n)\n)",end:"(?<=\\))",name:"meta.type.function.js",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.js"}},end:"(?)(?:\\?]|//|$)",name:"meta.type.function.return.js",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.js",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"},2:{name:"entity.name.type.js"},3:{name:"keyword.operator.expression.extends.js"}},match:"(?)",endCaptures:{1:{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js"},2:{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},contentName:"meta.type.parameters.js",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.js"},2:{name:"punctuation.accessor.js"},3:{name:"punctuation.accessor.optional.js"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.js"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js"}},name:"meta.object.type.js",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"}},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"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js"}},name:"meta.type.parameters.js",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.js"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js"}},name:"meta.type.paren.cover.js",patterns:[{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"entity.name.function.js variable.language.this.js"},4:{name:"entity.name.function.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.js"},2:{name:"keyword.operator.rest.js"},3:{name:"variable.parameter.js variable.language.this.js"},4:{name:"variable.parameter.js"},5:{name:"keyword.operator.optional.js"}},match:"(?x)(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.js variable.other.constant.js entity.name.function.js"}},end:"(?=$|^|[;,=}]|((?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.js entity.name.function.js"},2:{name:"keyword.operator.definiteassignment.js"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js"}},end:"(?=$|^|[,);}\\]]|((?|<|>|!=)",name:"keyword.operator.comparison.jinja"},{match:"=",name:"keyword.operator.assignment.jinja"},{begin:'"',beginCaptures:[{name:"punctuation.definition.string.begin.jinja"}],end:'"',endCaptures:[{name:"punctuation.definition.string.end.jinja"}],name:"string.quoted.double.jinja",patterns:[{include:"#string"}]},{begin:"'",beginCaptures:[{name:"punctuation.definition.string.begin.jinja"}],end:"'",endCaptures:[{name:"punctuation.definition.string.end.jinja"}],name:"string.quoted.single.jinja",patterns:[{include:"#string"}]},{begin:"@/",beginCaptures:[{name:"punctuation.definition.regexp.begin.jinja"}],end:"/",endCaptures:[{name:"punctuation.definition.regexp.end.jinja"}],name:"string.regexp.jinja",patterns:[{include:"#simple_escapes"}]}]},simple_escapes:{captures:{1:{name:"constant.character.escape.newline.jinja"},2:{name:"constant.character.escape.backlash.jinja"},3:{name:"constant.character.escape.double-quote.jinja"},4:{name:"constant.character.escape.single-quote.jinja"},5:{name:"constant.character.escape.bell.jinja"},6:{name:"constant.character.escape.backspace.jinja"},7:{name:"constant.character.escape.formfeed.jinja"},8:{name:"constant.character.escape.linefeed.jinja"},9:{name:"constant.character.escape.return.jinja"},10:{name:"constant.character.escape.tab.jinja"},11:{name:"constant.character.escape.vertical-tab.jinja"}},match:"(\\\\\\n)|(\\\\\\\\)|(\\\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)"},string:{patterns:[{include:"#simple_escapes"},{include:"#escaped_char"},{include:"#escaped_unicode_char"}]}},c="source.jinja",s={displayName:e,foldingStartMarker:a,foldingStopMarker:n,name:t,patterns:i,repository:r,scopeName:c};export{s as default,e as displayName,a as foldingStartMarker,n as foldingStopMarker,t as name,i as patterns,r as repository,c as scopeName}; diff --git a/lib/dist/grammar/jison.mjs b/lib/dist/grammar/jison.mjs new file mode 100644 index 0000000..0f2ef9e --- /dev/null +++ b/lib/dist/grammar/jison.mjs @@ -0,0 +1 @@ +var e="Jison",n=["jison"],t={"L:(meta.action.jison - (comment | string)), source.js.embedded.jison - (comment | string), source.js.embedded.source - (comment | string.quoted.double | string.quoted.single)":{patterns:[{match:"\\${2}",name:"variable.language.semantic-value.jison"},{match:"@\\$",name:"variable.language.result-location.jison"},{match:"##\\$|\\byysp\\b",name:"variable.language.stack-index-0.jison"},{match:"#\\S+#",name:"support.variable.token-reference.jison"},{match:"#\\$",name:"variable.language.result-id.jison"},{match:"\\$(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.token-value.jison"},{match:"@(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.token-location.jison"},{match:"##(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.stack-index.jison"},{match:"#(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)",name:"support.variable.token-id.jison"},{match:"\\byy(?:l(?:eng|ineno|oc|stack)|rulelength|s(?:tate|s?tack)|text|vstack)\\b",name:"variable.language.jison"},{match:"\\byy(?:clearin|erro[kr])\\b",name:"keyword.other.jison"}]}},i="jison",a=[{begin:"%%",beginCaptures:{0:{name:"meta.separator.section.jison"}},end:"\\z",patterns:[{begin:"%%",beginCaptures:{0:{name:"meta.separator.section.jison"}},end:"\\z",patterns:[{begin:"\\G",contentName:"source.js.embedded.jison",end:"\\z",name:"meta.section.epilogue.jison",patterns:[{include:"#epilogue_section"}]}]},{begin:"\\G",end:"(?=%%)",name:"meta.section.rules.jison",patterns:[{include:"#rules_section"}]}]},{begin:"^",end:"(?=%%)",name:"meta.section.declarations.jison",patterns:[{include:"#declarations_section"}]}],s={actions:{patterns:[{begin:"\\{\\{",beginCaptures:{0:{name:"punctuation.definition.action.begin.jison"}},contentName:"source.js.embedded.jison",end:"\\}\\}",endCaptures:{0:{name:"punctuation.definition.action.end.jison"}},name:"meta.action.jison",patterns:[{include:"source.js"}]},{begin:"(?=%\\{)",end:"(?<=%\\})",name:"meta.action.jison",patterns:[{include:"#user_code_blocks"}]}]},comments:{patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.jison"}},end:"$",name:"comment.line.double-slash.jison"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.jison"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.jison"}},name:"comment.block.jison"}]},declarations_section:{patterns:[{include:"#comments"},{begin:"^\\s*(%lex)\\s*$",beginCaptures:{1:{name:"entity.name.tag.lexer.begin.jison"}},end:"^\\s*(/lex)\\b",endCaptures:{1:{name:"entity.name.tag.lexer.end.jison"}},patterns:[{begin:"%%",beginCaptures:{0:{name:"meta.separator.section.jisonlex"}},end:"(?=/lex)",patterns:[{begin:"^%%",beginCaptures:{0:{name:"meta.separator.section.jisonlex"}},end:"(?=/lex)",patterns:[{begin:"\\G",contentName:"source.js.embedded.jisonlex",end:"(?=/lex)",name:"meta.section.user-code.jisonlex",patterns:[{include:"source.jisonlex#user_code_section"}]}]},{begin:"\\G",end:"^(?=%%|/lex)",name:"meta.section.rules.jisonlex",patterns:[{include:"source.jisonlex#rules_section"}]}]},{begin:"^",end:"(?=%%|/lex)",name:"meta.section.definitions.jisonlex",patterns:[{include:"source.jisonlex#definitions_section"}]}]},{begin:"(?=%\\{)",end:"(?<=%\\})",name:"meta.section.prologue.jison",patterns:[{include:"#user_code_blocks"}]},{include:"#options_declarations"},{match:"%(ebnf|left|nonassoc|parse-param|right|start)\\b",name:"keyword.other.declaration.$1.jison"},{include:"#include_declarations"},{begin:"%(code)\\b",beginCaptures:{0:{name:"keyword.other.declaration.$1.jison"}},end:"$",name:"meta.code.jison",patterns:[{include:"#comments"},{include:"#rule_actions"},{match:"(init|required)",name:"keyword.other.code-qualifier.$1.jison"},{include:"#quoted_strings"},{match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"string.unquoted.jison"}]},{begin:"%(parser-type)\\b",beginCaptures:{0:{name:"keyword.other.declaration.$1.jison"}},end:"$",name:"meta.parser-type.jison",patterns:[{include:"#comments"},{include:"#quoted_strings"},{match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"string.unquoted.jison"}]},{begin:"%(token)\\b",beginCaptures:{0:{name:"keyword.other.declaration.$1.jison"}},end:"$|(%%|;)",endCaptures:{1:{name:"punctuation.terminator.declaration.token.jison"}},name:"meta.token.jison",patterns:[{include:"#comments"},{include:"#numbers"},{include:"#quoted_strings"},{match:"<[[:alpha:]_](?:[\\w-]*\\w)?>",name:"invalid.unimplemented.jison"},{match:"\\S+",name:"entity.other.token.jison"}]},{match:"%(debug|import)\\b",name:"keyword.other.declaration.$1.jison"},{match:"%prec\\b",name:"invalid.illegal.jison"},{match:"%[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"invalid.unimplemented.jison"},{include:"#numbers"},{include:"#quoted_strings"}]},epilogue_section:{patterns:[{include:"#user_code_include_declarations"},{include:"source.js"}]},include_declarations:{patterns:[{begin:"(%(include))\\s*",beginCaptures:{1:{name:"keyword.other.declaration.$2.jison"}},end:"(?<=['\"])|(?=\\s)",name:"meta.include.jison",patterns:[{include:"#include_paths"}]}]},include_paths:{patterns:[{include:"#quoted_strings"},{begin:"(?=\\S)",end:"(?=\\s)",name:"string.unquoted.jison",patterns:[{include:"source.js#string_escapes"}]}]},numbers:{patterns:[{captures:{1:{name:"storage.type.number.jison"},2:{name:"constant.numeric.integer.hexadecimal.jison"}},match:"(0[Xx])([0-9A-Fa-f]+)"},{match:"\\d+",name:"constant.numeric.integer.decimal.jison"}]},options_declarations:{patterns:[{begin:"%options\\b",beginCaptures:{0:{name:"keyword.other.options.jison"}},end:"^(?=\\S|\\s*$)",name:"meta.options.jison",patterns:[{include:"#comments"},{match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",name:"entity.name.constant.jison"},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.option.assignment.jison"}},end:"(?<=['\"])|(?=\\s)",patterns:[{include:"#comments"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.$1.jison"},{include:"#numbers"},{include:"#quoted_strings"},{match:"\\S+",name:"string.unquoted.jison"}]},{include:"#quoted_strings"}]}]},quoted_strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.jison",patterns:[{include:"source.js#string_escapes"}]},{begin:"'",end:"'",name:"string.quoted.single.jison",patterns:[{include:"source.js#string_escapes"}]}]},rule_actions:{patterns:[{include:"#actions"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.action.begin.jison"}},contentName:"source.js.embedded.jison",end:"\\}",endCaptures:{0:{name:"punctuation.definition.action.end.jison"}},name:"meta.action.jison",patterns:[{include:"source.js"}]},{include:"#include_declarations"},{begin:"->|→",beginCaptures:{0:{name:"punctuation.definition.action.arrow.jison"}},contentName:"source.js.embedded.jison",end:"$",name:"meta.action.jison",patterns:[{include:"source.js"}]}]},rules_section:{patterns:[{include:"#comments"},{include:"#actions"},{include:"#include_declarations"},{begin:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",beginCaptures:{0:{name:"entity.name.constant.rule-result.jison"}},end:";",endCaptures:{0:{name:"punctuation.terminator.rule.jison"}},name:"meta.rule.jison",patterns:[{include:"#comments"},{begin:":",beginCaptures:{0:{name:"keyword.operator.rule-components.assignment.jison"}},end:"(?=;)",name:"meta.rule-components.jison",patterns:[{include:"#comments"},{include:"#quoted_strings"},{captures:{1:{name:"punctuation.definition.named-reference.begin.jison"},2:{name:"entity.name.other.reference.jison"},3:{name:"punctuation.definition.named-reference.end.jison"}},match:"(\\[)([[:alpha:]_](?:[\\w-]*\\w)?)(\\])"},{begin:"(%(prec))\\s*",beginCaptures:{1:{name:"keyword.other.$2.jison"}},end:"(?<=['\"])|(?=\\s)",name:"meta.prec.jison",patterns:[{include:"#comments"},{include:"#quoted_strings"},{begin:"(?=\\S)",end:"(?=\\s)",name:"constant.other.token.jison"}]},{match:"\\|",name:"keyword.operator.rule-components.separator.jison"},{match:"\\b(?:EOF|error)\\b",name:"keyword.other.$0.jison"},{match:"(?:%(?:e(?:mpty|psilon))|\\b[Ɛɛεϵ])\\b",name:"keyword.other.empty.jison"},{include:"#rule_actions"}]}]}]},user_code_blocks:{patterns:[{begin:"%\\{",beginCaptures:{0:{name:"punctuation.definition.user-code-block.begin.jison"}},contentName:"source.js.embedded.jison",end:"%\\}",endCaptures:{0:{name:"punctuation.definition.user-code-block.end.jison"}},name:"meta.user-code-block.jison",patterns:[{include:"source.js"}]}]},user_code_include_declarations:{patterns:[{begin:"^(%(include))\\s*",beginCaptures:{1:{name:"keyword.other.declaration.$2.jison"}},end:"(?<=['\"])|(?=\\s)",name:"meta.include.jison",patterns:[{include:"#include_paths"}]}]}},o="source.jison",r={displayName:e,fileTypes:n,injections:t,name:i,patterns:a,repository:s,scopeName:o};export{r as default,e as displayName,n as fileTypes,t as injections,i as name,a as patterns,s as repository,o as scopeName}; diff --git a/lib/dist/grammar/json.mjs b/lib/dist/grammar/json.mjs new file mode 100644 index 0000000..ed3af15 --- /dev/null +++ b/lib/dist/grammar/json.mjs @@ -0,0 +1 @@ +var n="JSON",e="json",t=[{include:"#value"}],a={array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json"}},name:"meta.structure.array.json",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.documentation.json"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.json"},{captures:{1:{name:"punctuation.definition.comment.json"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json"},number:{match:"(?x)\n-?\n(?:\n0\n|\n[1-9]\n\\d*\n)\n(?:\n(?:\n\\.\n\\d+\n)?\n(?:\n[eE]\n[+-]?\n\\d+\n)?\n)?",name:"constant.numeric.json"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json"}},name:"meta.structure.dictionary.json",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json"}},name:"meta.structure.dictionary.value.json",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json"}},name:"string.json support.type.property-name.json",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json"}},name:"string.quoted.double.json",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:'(?x)\n\\\\\n(?:\n["\\\\/bfnrt]\n|\nu\n[0-9a-fA-F]{4})',name:"constant.character.escape.json"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},i="source.json",o={displayName:n,name:e,patterns:t,repository:a,scopeName:i};export{o as default,n as displayName,e as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/json5.mjs b/lib/dist/grammar/json5.mjs new file mode 100644 index 0000000..2dfa24a --- /dev/null +++ b/lib/dist/grammar/json5.mjs @@ -0,0 +1 @@ +var n="JSON5",e=["json5"],a="json5",t=[{include:"#comments"},{include:"#value"}],i={array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json5"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json5"}},name:"meta.structure.array.json5",patterns:[{include:"#comments"},{include:"#value"},{match:",",name:"punctuation.separator.array.json5"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json5"}]},comments:{patterns:[{match:"/{2}.*",name:"comment.single.json5"},{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.documentation.json5"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.json5"}]},constant:{match:"\\b(?:true|false|null|Infinity|NaN)\\b",name:"constant.language.json5"},infinity:{match:"(-)*\\b(?:Infinity|NaN)\\b",name:"constant.language.json5"},key:{name:"string.key.json5",patterns:[{include:"#stringSingle"},{include:"#stringDouble"},{match:"[a-zA-Z0-9_-]",name:"string.key.json5"}]},number:{patterns:[{comment:"handles hexadecimal numbers",match:"(0x)[0-9a-fA-f]*",name:"constant.hex.numeric.json5"},{comment:"handles integer and decimal numbers",match:"[+-.]?(?=[1-9]|0(?!\\d))\\d+(\\.\\d+)?([eE][+-]?\\d+)?",name:"constant.dec.numeric.json5"}]},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json5"}},comment:"a json5 object",end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json5"}},name:"meta.structure.dictionary.json5",patterns:[{include:"#comments"},{comment:"the json5 object key",include:"#key"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json5"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json5"}},name:"meta.structure.dictionary.value.json5",patterns:[{comment:"the json5 object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},stringDouble:{begin:'["]',beginCaptures:{0:{name:"punctuation.definition.string.begin.json5"}},end:'["]',endCaptures:{0:{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:'(?x:\n\\\\\n(?:\n["\\\\/bfnrt]\n|\nu\n[0-9a-fA-F]{4}\n)\n)',name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},stringSingle:{begin:"[']",beginCaptures:{0:{name:"punctuation.definition.string.begin.json5"}},end:"[']",endCaptures:{0:{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:'(?x:\n\\\\\n(?:\n["\\\\/bfnrt]\n|\nu\n[0-9a-fA-F]{4}\n)\n)',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"}]}},o="source.json5",s={displayName:n,fileTypes:e,name:a,patterns:t,repository:i,scopeName:o};export{s as default,n as displayName,e as fileTypes,a as name,t as patterns,i as repository,o as scopeName}; diff --git a/lib/dist/grammar/jsonc.mjs b/lib/dist/grammar/jsonc.mjs new file mode 100644 index 0000000..7908ade --- /dev/null +++ b/lib/dist/grammar/jsonc.mjs @@ -0,0 +1 @@ +var n="JSON with Comments",e="jsonc",t=[{include:"#value"}],a={array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json.comments"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json.comments"}},name:"meta.structure.array.json.comments",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.comments"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.comments"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.documentation.json.comments"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.json.comments"},{captures:{1:{name:"punctuation.definition.comment.json.comments"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.comments"},number:{match:"(?x)\n-?\n(?:\n0\n|\n[1-9]\n\\d*\n)\n(?:\n(?:\n\\.\n\\d+\n)?\n(?:\n[eE]\n[+-]?\n\\d+\n)?\n)?",name:"constant.numeric.json.comments"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json.comments"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json.comments"}},name:"meta.structure.dictionary.json.comments",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json.comments"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json.comments"}},name:"meta.structure.dictionary.value.json.comments",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json.comments"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json.comments"}},name:"string.json.comments support.type.property-name.json.comments",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json.comments"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json.comments"}},name:"string.quoted.double.json.comments",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:'(?x)\n\\\\\n(?:\n["\\\\/bfnrt]\n|\nu\n[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"}]}},o="source.json.comments",m={displayName:n,name:e,patterns:t,repository:a,scopeName:o};export{m as default,n as displayName,e as name,t as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/jsonl.mjs b/lib/dist/grammar/jsonl.mjs new file mode 100644 index 0000000..df3e647 --- /dev/null +++ b/lib/dist/grammar/jsonl.mjs @@ -0,0 +1 @@ +var n="JSON Lines",e="jsonl",t=[{include:"#value"}],a={array:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.json.lines"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.json.lines"}},name:"meta.structure.array.json.lines",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.lines"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.lines"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{0:{name:"punctuation.definition.comment.json.lines"}},end:"\\*/",name:"comment.block.documentation.json.lines"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.json.lines"}},end:"\\*/",name:"comment.block.json.lines"},{captures:{1:{name:"punctuation.definition.comment.json.lines"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.lines"},number:{match:"(?x)\n-?\n(?:\n0\n|\n[1-9]\n\\d*\n)\n(?:\n(?:\n\\.\n\\d+\n)?\n(?:\n[eE]\n[+-]?\n\\d+\n)?\n)?",name:"constant.numeric.json.lines"},object:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dictionary.begin.json.lines"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dictionary.end.json.lines"}},name:"meta.structure.dictionary.json.lines",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.dictionary.key-value.json.lines"}},end:"(,)|(?=\\})",endCaptures:{1:{name:"punctuation.separator.dictionary.pair.json.lines"}},name:"meta.structure.dictionary.value.json.lines",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.lines"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.lines"}]},objectkey:{begin:'"',beginCaptures:{0:{name:"punctuation.support.type.property-name.begin.json.lines"}},end:'"',endCaptures:{0:{name:"punctuation.support.type.property-name.end.json.lines"}},name:"string.json.lines support.type.property-name.json.lines",patterns:[{include:"#stringcontent"}]},string:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.json.lines"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.json.lines"}},name:"string.quoted.double.json.lines",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:'(?x)\n\\\\\n(?:\n["\\\\/bfnrt]\n|\nu\n[0-9a-fA-F]{4})',name:"constant.character.escape.json.lines"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json.lines"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}},i="source.json.lines",s={displayName:n,name:e,patterns:t,repository:a,scopeName:i};export{s as default,n as displayName,e as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/jsonnet.mjs b/lib/dist/grammar/jsonnet.mjs new file mode 100644 index 0000000..d48e0ff --- /dev/null +++ b/lib/dist/grammar/jsonnet.mjs @@ -0,0 +1 @@ +var n="Jsonnet",t="jsonnet",e=[{include:"#expression"},{include:"#keywords"}],a={"builtin-functions":{patterns:[{match:"\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](range|split|stringChars|substr|toString|uniq)\\b",name:"support.function.jsonnet"}]},comment:{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.jsonnet"},{match:"//.*$",name:"comment.line.jsonnet"},{match:"#.*$",name:"comment.block.jsonnet"}]},"double-quoted-strings":{begin:'"',end:'"',name:"string.quoted.double.jsonnet",patterns:[{match:'\\\\(["\\\\/bfnrt]|(u[0-9a-fA-F]{4}))',name:"constant.character.escape.jsonnet"},{match:'\\\\[^"\\\\/bfnrtu]',name:"invalid.illegal.jsonnet"}]},expression:{patterns:[{include:"#literals"},{include:"#comment"},{include:"#single-quoted-strings"},{include:"#double-quoted-strings"},{include:"#triple-quoted-strings"},{include:"#builtin-functions"},{include:"#functions"}]},functions:{patterns:[{begin:"\\b([a-zA-Z_][a-z0-9A-Z_]*)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.jsonnet"}},end:"\\)",name:"meta.function",patterns:[{include:"#expression"}]}]},keywords:{patterns:[{match:"[!:~\\+\\-&\\|\\^=<>\\*\\/%]",name:"keyword.operator.jsonnet"},{match:"\\$",name:"keyword.other.jsonnet"},{match:"\\b(self|super|import|importstr|local|tailstrict)\\b",name:"keyword.other.jsonnet"},{match:"\\b(if|then|else|for|in|error|assert)\\b",name:"keyword.control.jsonnet"},{match:"\\b(function)\\b",name:"storage.type.jsonnet"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(:::|\\+:::)",name:"variable.parameter.jsonnet"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(::|\\+::)",name:"entity.name.type"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(:|\\+:)",name:"variable.parameter.jsonnet"}]},literals:{patterns:[{match:"\\b(true|false|null)\\b",name:"constant.language.jsonnet"},{match:"\\b(\\d+([Ee][+-]?\\d+)?)\\b",name:"constant.numeric.jsonnet"},{match:"\\b\\d+[.]\\d*([Ee][+-]?\\d+)?\\b",name:"constant.numeric.jsonnet"},{match:"\\b[.]\\d+([Ee][+-]?\\d+)?\\b",name:"constant.numeric.jsonnet"}]},"single-quoted-strings":{begin:"'",end:"'",name:"string.quoted.double.jsonnet",patterns:[{match:"\\\\(['\\\\/bfnrt]|(u[0-9a-fA-F]{4}))",name:"constant.character.escape.jsonnet"},{match:"\\\\[^'\\\\/bfnrtu]",name:"invalid.illegal.jsonnet"}]},"triple-quoted-strings":{patterns:[{begin:"\\|\\|\\|",end:"\\|\\|\\|",name:"string.quoted.triple.jsonnet"}]}},s="source.jsonnet",o={displayName:n,name:t,patterns:e,repository:a,scopeName:s};export{o as default,n as displayName,t as name,e as patterns,a as repository,s as scopeName}; diff --git a/lib/dist/grammar/jssm.mjs b/lib/dist/grammar/jssm.mjs new file mode 100644 index 0000000..0e1d84e --- /dev/null +++ b/lib/dist/grammar/jssm.mjs @@ -0,0 +1 @@ +var n="JSSM",t=["jssm","jssm_state"],o="jssm",m=[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.mn"}},comment:"block comment",end:"\\*/",name:"comment.block.jssm"},{begin:"//",comment:"block comment",end:"$",name:"comment.line.jssm"},{begin:"\\${",captures:{0:{name:"entity.name.function"}},comment:"js outcalls",end:"}",name:"keyword.other"},{comment:"semver",match:"([0-9]*)(\\.)([0-9]*)(\\.)([0-9]*)",name:"constant.numeric"},{comment:"jssm language tokens",match:"graph_layout(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"machine_name(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"machine_version(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"jssm_version(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"transitions",match:"<->",name:"keyword.control.transition.jssmArrow.legal_legal"},{comment:"transitions",match:"<-",name:"keyword.control.transition.jssmArrow.legal_none"},{comment:"transitions",match:"->",name:"keyword.control.transition.jssmArrow.none_legal"},{comment:"transitions",match:"<=>",name:"keyword.control.transition.jssmArrow.main_main"},{comment:"transitions",match:"=>",name:"keyword.control.transition.jssmArrow.none_main"},{comment:"transitions",match:"<=",name:"keyword.control.transition.jssmArrow.main_none"},{comment:"transitions",match:"<~>",name:"keyword.control.transition.jssmArrow.forced_forced"},{comment:"transitions",match:"~>",name:"keyword.control.transition.jssmArrow.none_forced"},{comment:"transitions",match:"<~",name:"keyword.control.transition.jssmArrow.forced_none"},{comment:"transitions",match:"<-=>",name:"keyword.control.transition.jssmArrow.legal_main"},{comment:"transitions",match:"<=->",name:"keyword.control.transition.jssmArrow.main_legal"},{comment:"transitions",match:"<-~>",name:"keyword.control.transition.jssmArrow.legal_forced"},{comment:"transitions",match:"<~->",name:"keyword.control.transition.jssmArrow.forced_legal"},{comment:"transitions",match:"<=~>",name:"keyword.control.transition.jssmArrow.main_forced"},{comment:"transitions",match:"<~=>",name:"keyword.control.transition.jssmArrow.forced_main"},{comment:"edge probability annotation",match:"([0-9]+)%",name:"constant.numeric.jssmProbability"},{comment:"action annotation",match:"\\'[^']*\\'",name:"constant.character.jssmAction"},{comment:"jssm label annotation",match:'\\"[^"]*\\"',name:"entity.name.tag.jssmLabel.doublequoted"},{comment:"jssm label annotation",match:"([a-zA-Z0-9_.+&()#@!?,])",name:"entity.name.tag.jssmLabel.atom"}],a="source.jssm",e={displayName:n,fileTypes:t,name:o,patterns:m,scopeName:a};export{e as default,n as displayName,t as fileTypes,o as name,m as patterns,a as scopeName}; diff --git a/lib/dist/grammar/jsx.mjs b/lib/dist/grammar/jsx.mjs new file mode 100644 index 0000000..cdc5477 --- /dev/null +++ b/lib/dist/grammar/jsx.mjs @@ -0,0 +1 @@ +var e="JSX",n="jsx",a=[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],s={"access-modifier":{match:"(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.objectliteral.js.jsx",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.js.jsx"}},name:"meta.array.literal.js.jsx",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"variable.parameter.js.jsx"}},match:"(?:(?)",name:"meta.arrow.js.jsx"},{begin:"(?x) (?:\n(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n)\n)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.js.jsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.js.jsx"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.js.jsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.js.jsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.js.jsx"}},end:"(?=$)",name:"comment.line.triple-slash.directive.js.jsx",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.js.jsx"},2:{name:"entity.name.tag.directive.js.jsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.js.jsx"}},name:"meta.tag.js.jsx",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.js.jsx"},{match:"=",name:"keyword.operator.assignment.js.jsx"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"(?x)\n((@)author)\n\\s+\n(\n[^@\\s<>*/]\n(?:[^@<>*/]|\\*[^/])*\n)\n(?:\n\\s*\n(<)\n([^>\\s]+)\n(>)\n)?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)\n\\s+ (as) \\s+\n((?:[^@\\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:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.js.jsx"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)see)\n\\s+\n(?:\n\n(\n(?=https?://)\n(?:[^\\s*]|\\*[^/])+\n)\n|\n\n(\n(?!\n\nhttps?://\n|\n\n(?:\\[[^\\[\\]]*\\])?\n{@(?:link|linkcode|linkplain|tutorial)\\b\n)\n\n(?:[^@\\s*/]|\\*[^/])+\n)\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n(?:\n\\s* , \\s*\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)*\n)"},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n(\n(@)\n(?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)"},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.js.jsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n(?:\\[\\])?\n\\.\n[\\w$]+\n)*\n(?:\n\\s*\n(=)\n\\s*\n(\n\n(?>\n\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |\n'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |\n\\[ (?:(?:\\*(?!/))|[^*])*? \\] |\n(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*\n)*\n)\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",name:"variable.other.jsdoc"}]},{begin:"(?x)\n(\n(@)\n(?:define|enum|exception|export|extends|lends|implements|modifies\n|namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n|yields?)\n)\n\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n(\n(@)\n(?:alias|augments|callback|constructs|emits|event|fires|exports?\n|extends|external|function|func|host|lends|listens|interface|memberof!?\n|method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n(?:\n[^{}@\\s*] | \\*[^/]\n)+\n)"},{begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.js.jsx"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.js.jsx"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.js.jsx"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.js.jsx"},{captures:{1:{name:"keyword.operator.logical.js.jsx"},2:{name:"keyword.operator.assignment.compound.js.jsx"},3:{name:"keyword.operator.arithmetic.js.jsx"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.js.jsx"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.js.jsx"},{match:"\\=",name:"keyword.operator.assignment.js.jsx"},{match:"--",name:"keyword.operator.decrement.js.jsx"},{match:"\\+\\+",name:"keyword.operator.increment.js.jsx"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.js.jsx"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.js.jsx"},2:{name:"keyword.operator.arithmetic.js.jsx"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?x)(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.js.jsx variable.object.property.js.jsx"},{match:"\\?",name:"keyword.operator.optional.js.jsx"},{match:"\\!",name:"keyword.operator.definiteassignment.js.jsx"}]},"for-loop":{begin:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",name:"meta.function-call.js.jsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.js.jsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx"},{match:"\\!",name:"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.js.jsx"}]},"function-declaration":{begin:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n))"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.constant.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.js.jsx"},2:{name:"punctuation.accessor.optional.js.jsx"},3:{name:"variable.other.property.js.jsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.js.jsx"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.js.jsx"}]},"if-statement":{patterns:[{begin:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?))",end:"(/>)|(?:())",endCaptures:{1:{name:"punctuation.definition.tag.end.js.jsx"},2:{name:"punctuation.definition.tag.begin.js.jsx"},3:{name:"entity.name.tag.namespace.js.jsx"},4:{name:"punctuation.separator.namespace.js.jsx"},5:{name:"entity.name.tag.js.jsx"},6:{name:"support.class.component.js.jsx"},7:{name:"punctuation.definition.tag.end.js.jsx"}},name:"meta.tag.js.jsx",patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",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:"(?=|/\\*|//)"},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.js.jsx",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.js.jsx"},"jsx-tag-in-expression":{begin:"(?x)\n(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n(?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,))\n(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",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:"()",endCaptures:{1:{name:"punctuation.definition.tag.begin.js.jsx"},2:{name:"entity.name.tag.namespace.js.jsx"},3:{name:"punctuation.separator.namespace.js.jsx"},4:{name:"entity.name.tag.js.jsx"},5:{name:"support.class.component.js.jsx"},6:{name:"punctuation.definition.tag.end.js.jsx"}},name:"meta.tag.without-attributes.js.jsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.js.jsx"},2:{name:"punctuation.separator.label.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.js.jsx"},2:{name:"punctuation.separator.label.js.jsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"keyword.operator.new.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.js.jsx"},2:{name:"storage.modifier.js.jsx"},3:{name:"storage.modifier.js.jsx"},4:{name:"storage.modifier.async.js.jsx"},5:{name:"storage.type.property.js.jsx"},6:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.js.jsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"storage.type.property.js.jsx"},3:{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?x)(?=(\\b(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",name:"meta.object.member.js.jsx"},{captures:{0:{name:"meta.object-literal.key.js.jsx"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.js.jsx"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=,|\\})",name:"meta.object.member.js.jsx",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.js.jsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.js.jsx"},{captures:{1:{name:"keyword.control.as.js.jsx"},2:{name:"storage.modifier.js.jsx"}},match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"},2:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.js.jsx"},2:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.js.jsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.js.jsx"}},match:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?])",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},contentName:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?|&&|\\|\\||\\*\\/)\\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:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",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:"(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n|\n(?:(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:"(?\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.js.jsx"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},contentName:"meta.embedded.line.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},name:"meta.template.expression.js.jsx",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.js.jsx"},2:{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},contentName:"string.template.js.jsx",end:"`",endCaptures:{0:{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js.jsx"}},contentName:"meta.embedded.line.js.jsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js.jsx"}},name:"meta.template.expression.js.jsx",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.js.jsx",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.js.jsx"}},name:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.js.jsx"}},match:"(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?)\n))\n)\n)\n)",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:"(?)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.js.jsx"},2:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},contentName:"meta.type.parameters.js.jsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.js.jsx"},2:{name:"punctuation.accessor.js.jsx"},3:{name:"punctuation.accessor.optional.js.jsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.js.jsx"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.js.jsx"}},name:"meta.object.type.js.jsx",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.js.jsx"}},end:"(?=\\S)"},{match:"(?)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.js.jsx"}},name:"meta.type.parameters.js.jsx",patterns:[{include:"#comment"},{match:"(?)",name:"keyword.operator.assignment.js.jsx"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.js.jsx"}},name:"meta.type.paren.cover.js.jsx",patterns:[{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},4:{name:"entity.name.function.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.js.jsx"},2:{name:"keyword.operator.rest.js.jsx"},3:{name:"variable.parameter.js.jsx variable.language.this.js.jsx"},4:{name:"variable.parameter.js.jsx"},5:{name:"keyword.operator.optional.js.jsx"}},match:"(?x)(?:(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},end:"(?=$|^|[;,=}]|((?)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.js.jsx entity.name.function.js.jsx"},2:{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.js.jsx"}},end:"(?=$|^|[,);}\\]]|((?]))"},{captures:{1:{name:"keyword.other.julia"},2:{name:"keyword.operator.dots.julia"},3:{name:"entity.name.function.julia"},4:{name:"support.type.julia"}},comment:"similar regex to previous, but with keyword not 1-line syntax",match:"\\b(function|macro)(?:\\s+(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(\\.))?((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()"}]},keyword:{patterns:[{match:"\\b(?|--\x3e|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)",name:"keyword.operator.arrow.julia"},{match:"(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",name:"keyword.operator.update.julia"},{match:"(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",name:"keyword.operator.shift.julia"},{captures:{1:{name:"keyword.operator.relation.types.julia"},2:{name:"support.type.julia"},3:{name:"keyword.operator.transpose.julia"}},match:'(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:".+?(?)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))",name:"keyword.operator.relation.julia"},{match:"(?<=\\s)(?:\\?)(?=\\s)",name:"keyword.operator.ternary.julia"},{match:"(?<=\\s)(?:\\:)(?=\\s)",name:"keyword.operator.ternary.julia"},{match:"(?:\\|\\||&&|(?)",name:"keyword.operator.applies.julia"},{match:"(?:\\||\\.\\||\\&|\\.\\&|~|¬|\\.~|⊻|\\.⊻)",name:"keyword.operator.bitwise.julia"},{match:"\\.?(?:\\+\\+|\\-\\-|\\+|\\-|−|¦|\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|↑|↓|√|∛|∜|⋆|±|∓)",name:"keyword.operator.arithmetic.julia"},{match:"(?:∘)",name:"keyword.operator.compose.julia"},{match:"(?:::|(?<=\\s)isa(?=\\s))",name:"keyword.operator.isa.julia"},{match:"(?:(?<=\\s)in(?=\\s))",name:"keyword.operator.relation.in.julia"},{match:"(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+|…|⁝|⋮|⋱|⋰|⋯)",name:"keyword.operator.dots.julia"},{match:"(?:\\$)(?=.+)",name:"keyword.operator.interpolation.julia"},{captures:{2:{name:"keyword.operator.transposed-variable.julia"}},match:"((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')"},{captures:{1:{name:"bracket.end.julia"},2:{name:"keyword.operator.transposed-matrix.julia"}},match:"(\\])((?:'|(?:\\.'))*\\.?')"},{captures:{1:{name:"bracket.end.julia"},2:{name:"keyword.operator.transposed-parens.julia"}},match:"(\\))((?:'|(?:\\.'))*\\.?')"}]},parentheses:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.bracket.julia"}},end:"(\\))((?:\\.)?'*)",endCaptures:{1:{name:"meta.bracket.julia"},2:{name:"keyword.operator.transpose.julia"}},patterns:[{include:"#self_no_for_block"}]}]},punctuation:{patterns:[{match:",",name:"punctuation.separator.comma.julia"},{match:";",name:"punctuation.separator.semicolon.julia"}]},self_no_for_block:{comment:"Same as $self, but does not contain #for_block. 'outer' is not valid in some contexts (e.g. generators, comprehensions, indexing), so use this when matching those in begin/end patterns. Keep this up-to-date with $self!",patterns:[{include:"#operator"},{include:"#array"},{include:"#string"},{include:"#parentheses"},{include:"#bracket"},{include:"#function_decl"},{include:"#function_call"},{include:"#keyword"},{include:"#number"},{include:"#comment"},{include:"#type_decl"},{include:"#symbol"},{include:"#punctuation"}]},string:{patterns:[{begin:'(?:(@doc)\\s((?:doc)?""")|(doc"""))',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},end:'(""") ?(->)?',endCaptures:{1:{name:"punctuation.definition.string.end.julia"},2:{name:"keyword.operator.arrow.julia"}},name:"string.docstring.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(i?cxx)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.cpp",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.cxx.julia",patterns:[{include:"source.cpp#root_context"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(py)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.python",end:'([\\s\\w]*)(""")',endCaptures:{2:{name:"punctuation.definition.string.end.julia"}},name:"embed.python.julia",patterns:[{include:"source.python"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(js)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.javascript",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.js.julia",patterns:[{include:"source.js"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(R)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.r",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.R.julia",patterns:[{include:"source.r"},{include:"#string_dollar_sign_interpolate"}]},{begin:'(raw)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.other.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'(raw)(")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.other.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'(sql)(""")',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},contentName:"meta.embedded.inline.sql",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"embed.sql.julia",patterns:[{include:"source.sql"},{include:"#string_dollar_sign_interpolate"}]},{begin:'var"""',end:'"""',name:"constant.other.symbol.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'var"',end:'"',name:"constant.other.symbol.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'^\\s?(doc)?(""")\\s?$',beginCaptures:{1:{name:"support.function.macro.julia"},2:{name:"punctuation.definition.string.begin.julia"}},comment:"This only matches docstrings that start and end with triple quotes on\ntheir own line in the void",end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.julia"}},name:"string.docstring.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.julia"}},end:"'(?!')",endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.single.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.multiline.begin.julia"}},comment:"multi-line string with triple double quotes",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.multiline.end.julia"}},name:"string.quoted.triple.double.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:'"(?!"")',beginCaptures:{0:{name:"punctuation.definition.string.begin.julia"}},comment:"String with single pair of double quotes. Regex matches isolated double quote",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.double.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:'r"""',beginCaptures:{0:{name:"punctuation.definition.string.regexp.begin.julia"}},end:'(""")([imsx]{0,4})?',endCaptures:{1:{name:"punctuation.definition.string.regexp.end.julia"},2:{comment:"I took this scope name from python regex grammar",name:"keyword.other.option-toggle.regexp.julia"}},name:"string.regexp.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'r"',beginCaptures:{0:{name:"punctuation.definition.string.regexp.begin.julia"}},end:'(")([imsx]{0,4})?',endCaptures:{1:{name:"punctuation.definition.string.regexp.end.julia"},2:{comment:"I took this scope name from python regex grammar",name:"keyword.other.option-toggle.regexp.julia"}},name:"string.regexp.julia",patterns:[{include:"#string_escaped_char"}]},{begin:'(?!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}-¡]|[^\\P{Mc}-¡]|[^\\P{Nd}-¡]|[^\\P{Pc}-¡]|[^\\P{Sk}-¡]|[^\\P{Me}-¡]|[^\\P{No}-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?",name:"meta.type.julia"}]}},i="source.julia",o={displayName:e,name:n,patterns:t,repository:a,scopeName:i};export{o as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/kotlin.mjs b/lib/dist/grammar/kotlin.mjs new file mode 100644 index 0000000..80a1e6b --- /dev/null +++ b/lib/dist/grammar/kotlin.mjs @@ -0,0 +1 @@ +var e="Kotlin",n=["kt","kts"],t="kotlin",a=[{include:"#import"},{include:"#package"},{include:"#code"}],i={"annotation-simple":{match:"(?<([^<>]|\\g)+>)?"},code:{patterns:[{include:"#comments"},{include:"#keywords"},{include:"#annotation-simple"},{include:"#annotation-site-list"},{include:"#annotation-site"},{include:"#class-declaration"},{include:"#object"},{include:"#type-alias"},{include:"#function"},{include:"#variable-declaration"},{include:"#type-constraint"},{include:"#type-annotation"},{include:"#function-call"},{include:"#method-reference"},{include:"#key"},{include:"#string"},{include:"#string-empty"},{include:"#string-multiline"},{include:"#character"},{include:"#lambda-arrow"},{include:"#operators"},{include:"#self-reference"},{include:"#decimal-literal"},{include:"#hex-literal"},{include:"#binary-literal"},{include:"#boolean-literal"},{include:"#null-literal"}]},"comment-block":{begin:"/\\*(?!\\*)",end:"\\*/",name:"comment.block.kotlin"},"comment-javadoc":{patterns:[{begin:"/\\*\\*",end:"\\*/",name:"comment.block.javadoc.kotlin",patterns:[{match:"@(return|constructor|receiver|sample|see|author|since|suppress)\\b",name:"keyword.other.documentation.javadoc.kotlin"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"variable.parameter.kotlin"}},match:"(@param|@property)\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"variable.parameter.kotlin"}},match:"(@param)\\[(\\S+)\\]"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"entity.name.type.class.kotlin"}},match:"(@(?:exception|throws))\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.javadoc.kotlin"},2:{name:"entity.name.type.class.kotlin"},3:{name:"variable.parameter.kotlin"}},match:"{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*}"}]}]},"comment-line":{begin:"//",end:"$",name:"comment.line.double-slash.kotlin"},comments:{patterns:[{include:"#comment-line"},{include:"#comment-block"},{include:"#comment-javadoc"}]},"control-keywords":{match:"\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\b",name:"keyword.control.kotlin"},"decimal-literal":{match:"\\b\\d[\\d_]*(\\.[\\d_]+)?((e|E)\\d+)?(u|U)?(L|F|f)?\\b",name:"constant.numeric.decimal.kotlin"},function:{captures:{1:{name:"keyword.hard.fun.kotlin"},2:{patterns:[{include:"#type-parameter"}]},4:{name:"entity.name.type.class.extension.kotlin"},5:{name:"entity.name.function.declaration.kotlin"}},match:"\\b(fun)\\b\\s*(?<([^<>]|\\g)+>)?\\s*(?:(?:(\\w+)\\.)?(\\b\\w+\\b|`[^`]+`))?"},"function-call":{captures:{1:{name:"entity.name.function.call.kotlin"},2:{patterns:[{include:"#type-parameter"}]}},match:"\\??\\.?(\\b\\w+\\b|`[^`]+`)\\s*(?<([^<>]|\\g)+>)?\\s*(?=[({])"},"hard-keywords":{match:"\\b(as|typeof|is|in)\\b",name:"keyword.hard.kotlin"},"hex-literal":{match:"0(x|X)[A-Fa-f0-9][A-Fa-f0-9_]*(u|U)?",name:"constant.numeric.hex.kotlin"},import:{begin:"\\b(import)\\b\\s*",beginCaptures:{1:{name:"keyword.soft.kotlin"}},contentName:"entity.name.package.kotlin",end:";|$",name:"meta.import.kotlin",patterns:[{include:"#comments"},{include:"#hard-keywords"},{match:"\\*",name:"variable.language.wildcard.kotlin"}]},key:{captures:{1:{name:"variable.parameter.kotlin"},2:{name:"keyword.operator.assignment.kotlin"}},match:"\\b(\\w=)\\s*(=)"},keywords:{patterns:[{include:"#prefix-modifiers"},{include:"#postfix-modifiers"},{include:"#soft-keywords"},{include:"#hard-keywords"},{include:"#control-keywords"}]},"lambda-arrow":{match:"->",name:"storage.type.function.arrow.kotlin"},"method-reference":{captures:{1:{name:"entity.name.function.reference.kotlin"}},match:"\\??::(\\b\\w+\\b|`[^`]+`)"},"null-literal":{match:"\\bnull\\b",name:"constant.language.null.kotlin"},object:{captures:{1:{name:"keyword.hard.object.kotlin"},2:{name:"entity.name.type.object.kotlin"}},match:"\\b(object)(?:\\s+(\\b\\w+\\b|`[^`]+`))?"},operators:{patterns:[{match:"(===?|\\!==?|<=|>=|<|>)",name:"keyword.operator.comparison.kotlin"},{match:"([+*/%-]=)",name:"keyword.operator.assignment.arithmetic.kotlin"},{match:"(=)",name:"keyword.operator.assignment.kotlin"},{match:"([+*/%-])",name:"keyword.operator.arithmetic.kotlin"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.kotlin"},{match:"(--|\\+\\+)",name:"keyword.operator.increment-decrement.kotlin"},{match:"(\\.\\.)",name:"keyword.operator.range.kotlin"}]},package:{begin:"\\b(package)\\b\\s*",beginCaptures:{1:{name:"keyword.hard.package.kotlin"}},contentName:"entity.name.package.kotlin",end:";|$",name:"meta.package.kotlin",patterns:[{include:"#comments"}]},"postfix-modifiers":{match:"\\b(where|by|get|set)\\b",name:"storage.modifier.other.kotlin"},"prefix-modifiers":{match:"\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\b",name:"storage.modifier.other.kotlin"},"self-reference":{match:"\\b(this|super)(@\\w+)?\\b",name:"variable.language.this.kotlin"},"soft-keywords":{match:"\\b(init|catch|finally|field)\\b",name:"keyword.soft.kotlin"},string:{begin:'(?<([^<>]|\\g)+>)?"},"type-annotation":{captures:{0:{patterns:[{include:"#type-parameter"}]}},match:"(?|(?[<(]([^<>()\"']|\\g)+[)>]))+"},"type-parameter":{patterns:[{match:"\\b\\w+\\b",name:"entity.name.type.kotlin"},{match:"\\b(in|out)\\b",name:"storage.modifier.kotlin"}]},"unescaped-annotation":{match:"\\b[\\w\\.]+\\b",name:"entity.name.type.annotation.kotlin"},"variable-declaration":{captures:{1:{name:"keyword.hard.kotlin"},2:{patterns:[{include:"#type-parameter"}]}},match:"\\b(val|var)\\b\\s*(?<([^<>]|\\g)+>)?"}},o="source.kotlin",r={displayName:e,fileTypes:n,name:t,patterns:a,repository:i,scopeName:o};export{r as default,e as displayName,n as fileTypes,t as name,a as patterns,i as repository,o as scopeName}; diff --git a/lib/dist/grammar/kusto.mjs b/lib/dist/grammar/kusto.mjs new file mode 100644 index 0000000..f2c2ed5 --- /dev/null +++ b/lib/dist/grammar/kusto.mjs @@ -0,0 +1 @@ +var e="Kusto",t=["csl","kusto","kql"],a="kusto",r=[{comment:"Tabular operators: common helper operators",match:"\\b(by|from|of|to|step|with)\\b",name:"keyword.other.operator.kusto"},{comment:"Query statements: https://docs.microsoft.com/en-us/azure/kusto/query/statements",match:"\\b(let|set|alias|declare|pattern|query_parameters|restrict|access|set)\\b",name:"keyword.control.kusto"},{comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators",match:"\\b(and|or|has_all|has_any|matches|regex)\\b",name:"keyword.other.operator.kusto"},{captures:{1:{name:"support.function.kusto"},2:{patterns:[{include:"#Strings"}]}},comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/clusterfunction",match:"\\b(cluster|database)(?:\\s*\\(\\s*(.+?)\\s*\\))?(?!\\w)",name:"meta.special.database.kusto"},{comment:"Special functions: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tablefunction",match:"\\b(external_table|materialized_view|materialize|table|toscalar)\\b",name:"support.function.kusto"},{comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/betweenoperator",match:"(?]*>)?((?:\\[[^\\]]*\\])*)(\\{)",captures:{1:{name:"keyword.control.cite.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{patterns:[{include:"#autocites-arg"}]},4:{patterns:[{include:"#optional-arg-angle-no-highlight"}]},5:{patterns:[{include:"#optional-arg-bracket-no-highlight"}]},6:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.citation.latex",patterns:[{captures:{1:{name:"comment.line.percentage.tex"},2:{name:"punctuation.definition.comment.tex"}},match:"((%).*)$"},{match:"[\\p{Alphabetic}\\p{Number}:.-]+",name:"constant.other.reference.citation.latex"}]},{begin:"((\\\\)bibentry)(\\{)",captures:{1:{name:"keyword.control.cite.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.citation.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}:.]+",name:"constant.other.reference.citation.latex"}]},{begin:"((\\\\)(?:\\w*[rR]ef\\*?))(?:\\[[^\\]]*\\])?(\\{)",beginCaptures:{1:{name:"keyword.control.ref.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.reference.label.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",name:"constant.other.reference.label.latex"}]},{include:"#definition-label"},{begin:"((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)",beginCaptures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"support.function.verb.latex"},4:{name:"punctuation.definition.verb.latex"},5:{name:"punctuation.definition.begin.latex"}},contentName:"markup.raw.verb.latex",end:"(\\})",endCaptures:{1:{name:"punctuation.definition.end.latex"}},name:"meta.function.verb.latex",patterns:[{include:"$self"}]},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"punctuation.definition.verb.latex"},4:{name:"markup.raw.verb.latex"},5:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg-bracket"}]},4:{name:"punctuation.definition.arguments.begin.latex"},5:{name:"punctuation.definition.arguments.end.latex"},6:{name:"punctuation.definition.verb.latex"},7:{name:"markup.raw.verb.latex"},8:{name:"punctuation.definition.verb.latex"},9:{name:"punctuation.definition.verb.latex"},10:{name:"markup.raw.verb.latex"},11:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg-bracket"}]},4:{name:"punctuation.definition.verb.latex"},5:{name:"markup.raw.verb.latex"},6:{name:"punctuation.definition.verb.latex"},7:{name:"punctuation.definition.verb.latex"},8:{name:"markup.raw.verb.latex"},9:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg-bracket"}]},4:{name:"punctuation.definition.verb.latex"},5:{name:"source.python",patterns:[{include:"source.python"}]},6:{name:"punctuation.definition.verb.latex"},7:{name:"punctuation.definition.verb.latex"},8:{name:"source.python",patterns:[{include:"source.python"}]},9:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{patterns:[{include:"#optional-arg-bracket"}]},4:{name:"punctuation.definition.verb.latex"},5:{name:"source.julia",patterns:[{include:"source.julia"}]},6:{name:"punctuation.definition.verb.latex"},7:{name:"punctuation.definition.verb.latex"},8:{name:"source.julia",patterns:[{include:"source.julia"}]},9:{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{begin:"((\\\\)(?:directlua|luadirect))(\\{)",beginCaptures:{1:{name:"support.function.verb.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"punctuation.definition.arguments.begin.latex"}},contentName:"source.lua",end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},patterns:[{include:"source.lua"}]},{match:"\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)",name:"keyword.control.layout.latex"},{begin:"\\\\\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.latex"}},end:"\\\\\\)",endCaptures:{0:{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{include:"text.tex#math"},{include:"$self"}]},{begin:"\\$\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.latex"}},end:"\\$\\$",endCaptures:{0:{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.latex"},{include:"text.tex#math"},{include:"$self"}]},{begin:"\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.tex"}},end:"\\$",endCaptures:{0:{name:"punctuation.definition.string.end.tex"}},name:"meta.math.block.tex support.class.math.block.tex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.latex"},{include:"text.tex#math"},{include:"$self"}]},{begin:"\\\\\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.latex"}},end:"\\\\\\]",endCaptures:{0:{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{include:"text.tex#math"},{include:"$self"}]},{captures:{1:{name:"punctuation.definition.constant.latex"}},match:"(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b",name:"constant.character.latex"},{captures:{1:{name:"punctuation.definition.variable.latex"}},match:"(\\\\)(?:[cgl]_+[_\\p{Alphabetic}@]+_[a-z]+|[qs]_[_\\p{Alphabetic}@]+[\\p{Alphabetic}@])",name:"variable.other.latex3.latex"},{captures:{1:{name:"punctuation.definition.column-specials.begin.latex"},2:{name:"punctuation.definition.column-specials.end.latex"}},match:"(?:<|>)(\\{)\\$(\\})",name:"meta.column-specials.latex"},{include:"text.tex"}],a={"autocites-arg":{patterns:[{captures:{1:{patterns:[{include:"#optional-arg-parenthesis-no-highlight"}]},2:{patterns:[{include:"#optional-arg-bracket-no-highlight"}]},3:{name:"punctuation.definition.arguments.begin.latex"},4:{name:"constant.other.reference.citation.latex"},5:{name:"punctuation.definition.arguments.end.latex"},6:{patterns:[{include:"#autocites-arg"}]}},match:"((?:\\([^\\)]*\\)){0,2})((?:\\[[^\\]]*\\]){0,2})(\\{)([\\p{Alphabetic}\\p{Number}_:.-]+)(\\})(.*)"}]},"begin-env-tokenizer":{captures:{1:{name:"support.function.be.latex"},2:{name:"punctuation.definition.function.latex"},3:{name:"punctuation.definition.arguments.begin.latex"},4:{name:"variable.parameter.function.latex"},5:{name:"punctuation.definition.arguments.end.latex"},6:{name:"punctuation.definition.arguments.optional.begin.latex"},7:{patterns:[{include:"$self"}]},8:{name:"punctuation.definition.arguments.optional.end.latex"},9:{name:"punctuation.definition.arguments.begin.latex"},10:{name:"variable.parameter.function.latex"},11:{name:"punctuation.definition.arguments.end.latex"}},match:"\\s*((\\\\)(?:begin|end))(\\{)([a-zA-Z]*\\*?)(\\})(?:(\\[)([^\\]]*)(\\])){,2}(?:(\\{)([^{}]*)(\\}))?"},"definition-label":{begin:"((\\\\)z?label)((?:\\[[^\\[]*?\\])*)(\\{)",beginCaptures:{1:{name:"keyword.control.label.latex"},2:{name:"punctuation.definition.keyword.latex"},3:{patterns:[{include:"#optional-arg-bracket"}]},4:{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.latex"}},name:"meta.definition.label.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",name:"variable.parameter.definition.label.latex"}]},"multiline-optional-arg":{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.arguments.optional.begin.latex"}},contentName:"variable.parameter.function.latex",end:"\\]",endCaptures:{0:{name:"punctuation.definition.arguments.optional.end.latex"}},name:"meta.parameter.optional.latex",patterns:[{include:"$self"}]},"multiline-optional-arg-no-highlight":{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.arguments.optional.begin.latex"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.arguments.optional.end.latex"}},name:"meta.parameter.optional.latex",patterns:[{include:"$self"}]},"optional-arg-angle-no-highlight":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(<)[^<]*?(>)",name:"meta.parameter.optional.latex"}]},"optional-arg-bracket":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"variable.parameter.function.latex"},3:{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(\\[)([^\\[]*?)(\\])",name:"meta.parameter.optional.latex"}]},"optional-arg-bracket-no-highlight":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(\\[)[^\\[]*?(\\])",name:"meta.parameter.optional.latex"}]},"optional-arg-parenthesis":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"variable.parameter.function.latex"},3:{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(\\()([^\\(]*?)(\\))",name:"meta.parameter.optional.latex"}]},"optional-arg-parenthesis-no-highlight":{patterns:[{captures:{1:{name:"punctuation.definition.arguments.optional.begin.latex"},2:{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(\\()[^\\(]*?(\\))",name:"meta.parameter.optional.latex"}]}},i="text.tex.latex",o={displayName:e,name:n,patterns:t,repository:a,scopeName:i};export{o as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/lean.mjs b/lib/dist/grammar/lean.mjs new file mode 100644 index 0000000..4b0bbb5 --- /dev/null +++ b/lib/dist/grammar/lean.mjs @@ -0,0 +1 @@ +var e="Lean 4",n=[],a="lean",t=[{include:"#comments"},{match:"\\b(Prop|Type|Sort)\\b",name:"storage.type.lean4"},{match:"\\battribute\\b\\s*\\[[^\\]]*\\]",name:"storage.modifier.lean4"},{match:"@\\[[^\\]]*\\]",name:"storage.modifier.lean4"},{match:"\\b(?])",name:"meta.definitioncommand.lean4",patterns:[{include:"#comments"},{include:"#definitionName"},{match:","}]},{match:"\\b(?)=?))\\s*"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#less-logical-comparisons"}]},{match:"\\btrue|false\\b",name:"constant.language.less"},{match:",",name:"punctuation.separator.less"},{include:"#property-values"},{include:"#selectors"},{include:"#unquoted-string"}]},"less-math":{patterns:[{match:"[-\\+\\*\\/]",name:"keyword.operator.arithmetic.less"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{include:"#less-math"}]},{include:"#numeric-values"},{include:"#less-variables"}]},"less-math-functions":{patterns:[{begin:"\\b(ceil|floor|percentage|round|sqrt|abs|a?(sin|cos|tan))(?=\\()",beginCaptures:{1:{name:"support.function.math.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"}]}]},{captures:{2:{name:"support.function.math.less"},3:{name:"punctuation.definition.group.begin.less"},4:{name:"punctuation.definition.group.end.less"}},match:"((pi)(\\()(\\)))",name:"meta.function-call.less"},{begin:"\\b(pow|m(od|in|ax))(?=\\()",beginCaptures:{1:{name:"support.function.math.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#numeric-values"},{include:"#comma-delimiter"}]}]}]},"less-misc-functions":{patterns:[{begin:"\\b(color)(?=\\()",beginCaptures:{1:{name:"support.function.color.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"}]}]},{begin:"\\b(image-(size|width|height))(?=\\()",beginCaptures:{1:{name:"support.function.image.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"\\b(convert|unit)(?=\\()",beginCaptures:{1:{name:"support.function.convert.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#dimensions"},{include:"#numeric-values"},{include:"#literal-string"},{include:"#comma-delimiter"},{match:"((c|m)?m|in|p(t|c|x)|m?s|g?rad|deg|turn|%|r?em|ex|ch)",name:"keyword.other.unit.less"}]}]},{begin:"\\b(data-uri)(?=\\()",beginCaptures:{1:{name:"support.function.data-uri.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#literal-string"},{captures:{1:{name:"punctuation.separator.less"}},match:"\\s*(?:(,))"}]}]},{captures:{2:{name:"punctuation.definition.group.begin.less"},3:{name:"punctuation.definition.group.end.less"}},match:"\\b(default(\\()(\\)))\\b",name:"support.function.default.less"},{begin:"\\b(get-unit)(?=\\()",beginCaptures:{1:{name:"support.function.get-unit.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#dimensions"}]}]},{begin:"\\b(svg-gradient)(?=\\()",beginCaptures:{1:{name:"support.function.svg-gradient.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#angle-type"},{include:"#comma-delimiter"},{include:"#color-values"},{include:"#percentage-type"},{include:"#length-type"},{match:"\\bto\\b",name:"keyword.other.less"},{match:"\\b(top|right|bottom|left|center)\\b",name:"support.constant.property-value.less"},{match:"\\b(at|circle|ellipse)\\b",name:"keyword.other.less"}]}]}]},"less-mixin-guards":{patterns:[{begin:"\\s*(and|not|or)?\\s*(?=\\()",beginCaptures:{1:{name:"keyword.operator.logical.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{include:"#less-variable-comparison"},{captures:{1:{name:"meta.group.less"},2:{name:"punctuation.definition.group.begin.less"},3:{name:"punctuation.definition.group.end.less"}},match:"default((\\()(\\)))",name:"support.function.default.less"},{include:"#property-values"},{include:"#less-logical-comparisons"},{include:"$self"}]}]}]},"less-namespace-accessors":{patterns:[{begin:"(?=\\s*when\\b)",end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.block.end.less"}},name:"meta.conditional.guarded-namespace.less",patterns:[{captures:{1:{name:"keyword.control.conditional.less"},2:{name:"punctuation.definition.keyword.less"}},match:"\\s*(when)(?=.*?)"},{include:"#less-mixin-guards"},{include:"#comma-delimiter"},{begin:"\\s*(\\{)",beginCaptures:{1:{name:"punctuation.section.property-list.begin.less"}},end:"(?=\\})",name:"meta.block.less",patterns:[{include:"#rule-list-body"}]},{include:"#selectors"}]},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.group.begin.less"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.end.less"},2:{name:"punctuation.terminator.rule.less"}},name:"meta.group.less",patterns:[{include:"#less-variable-assignment"},{include:"#comma-delimiter"},{captures:{1:{name:"punctuation.terminator.rule.less"}},match:"\\s*(;)|(?=[})])"},{include:"#property-values"},{include:"#rule-list-body"}]}]},"less-number-units":{patterns:[{match:"\\b((c|m)?m|in|p(t|c)|m?s|g?rad|deg|turn)\\b",name:"keyword.other.unit.less"},{match:"\\b(r?em|ex|ch|vw|vh|vmin|vmax|cm|mm|q|in|pt|pc|px|fr|s|ms|Hz|kHz|dpi|dpcm|dppx|deg|grad|rad|turn)\\b"}]},"less-string-functions":{patterns:[{begin:"\\b(e(scape)?)(?=\\()\\b",beginCaptures:{1:{name:"support.function.escape.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#unquoted-string"}]}]},{begin:"\\s*(%)(?=\\()\\s*",beginCaptures:{1:{name:"support.function.format.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#property-values"}]}]},{begin:"\\b(replace)(?=\\()\\b",beginCaptures:{1:{name:"support.function.replace.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#comma-delimiter"},{include:"#literal-string"},{include:"#property-values"}]}]}]},"less-strings":{patterns:[{begin:"(~)('|\")",beginCaptures:{1:{name:"constant.character.escape.less"},2:{name:"punctuation.definition.string.begin.less"}},contentName:"markup.raw.inline.less",end:"('|\")|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.other.less",patterns:[{include:"#string-content"}]}]},"less-type-functions":{patterns:[{begin:"\\b(is(number|string|color|keyword|url|pixel|em|percentage|ruleset))(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"}]}]},{begin:"\\b(isunit)(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#property-values"},{include:"#comma-delimiter"},{match:"(?x)\\b((?i:em|ex|ch|rem)|(?i:vw|vh|vmin|vmax)|(?i:cm|mm|q|in|pt|pc|px|fr)|(?i:deg|grad|rad|turn)|(?i:s|ms)|(?i:Hz|kHz)|(?i:dpi|dpcm|dppx))\\b",name:"keyword.other.unit.less"}]}]},{begin:"\\b(isdefined)(?=\\()",beginCaptures:{1:{name:"support.function.type.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"}]}]}]},"less-variable-assignment":{patterns:[{begin:"(@)(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",beginCaptures:{0:{name:"variable.other.readwrite.less"},1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},end:"\\s*(;|(\\.{3})|(?=\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.less"},2:{name:"keyword.operator.spread.less"}},name:"meta.property-value.less",patterns:[{captures:{1:{name:"punctuation.separator.key-value.less"},4:{name:"meta.property-value.less"}},match:"(((\\+_?)?):)([\\s\\t]*)"},{include:"#property-values"},{include:"#comma-delimiter"},{include:"#property-list"},{include:"#unquoted-string"}]}]},"less-variable-comparison":{patterns:[{begin:"(@{1,2})([-]?([_a-z]|[^\\x{00}-\\x{7F}]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",beginCaptures:{0:{name:"variable.other.readwrite.less"},1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},end:"\\s*(?=\\))",endCaptures:{1:{name:"punctuation.terminator.rule.less"}},patterns:[{captures:{1:{name:"keyword.operator.logical.less"}},match:"\\s*(=|((<|>)=?))\\s*"},{match:"\\btrue\\b",name:"constant.language.less"},{include:"#property-values"},{include:"#selectors"},{include:"#unquoted-string"},{match:",",name:"punctuation.separator.less"}]}]},"less-variable-interpolation":{captures:{1:{name:"punctuation.definition.variable.less"},2:{name:"punctuation.definition.expression.less"},3:{name:"support.other.variable.less"},4:{name:"punctuation.definition.expression.less"}},match:"(@)(\\{)([-\\w]+)(\\})",name:"variable.other.readwrite.less"},"less-variables":{captures:{1:{name:"punctuation.definition.variable.less"},2:{name:"support.other.variable.less"}},match:"\\s*(@@?)([-\\w]+)",name:"variable.other.readwrite.less"},"literal-string":{patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.less"}},end:"(')|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.single.less",patterns:[{include:"#string-content"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.less"}},end:'(")|(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.less"},2:{name:"invalid.illegal.newline.less"}},name:"string.quoted.double.less",patterns:[{include:"#string-content"}]},{include:"#less-strings"}]},"local-function":{begin:"\\b(local)(?=\\()",beginCaptures:{0:{name:"support.function.font-face.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#unquoted-string"}]}]},"media-query":{begin:"\\s*(only|not)?\\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?",beginCaptures:{1:{name:"keyword.operator.logic.media.less"},2:{name:"support.constant.media.less"}},end:"\\s*(?:(,)|(?=[{;]))",endCaptures:{1:{name:"punctuation.definition.arbitrary-repetition.less"}},patterns:[{include:"#less-variables"},{include:"#custom-property-name"},{begin:"\\s*(and)?\\s*(\\()\\s*",beginCaptures:{1:{name:"keyword.operator.logic.media.less"},2:{name:"punctuation.definition.group.begin.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.group.less",patterns:[{begin:"((-webkit-|-o-)?((min|max)-)?(-moz-)?(((device-)?(height|width|aspect-ratio|pixel-ratio))|(color(-index)?)|monochrome|resolution))|grid|scan|orientation\\s*(?=[:)])",beginCaptures:{0:{name:"support.type.property-name.media.less"},2:{name:"support.type.vendor-prefix.less"},5:{name:"support.type.vendor-prefix.less"}},end:"(((\\+_?)?):)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.key-value.less"}}},{match:"\\b(portrait|landscape|progressive|interlace)",name:"support.constant.property-value.less"},{captures:{1:{name:"constant.numeric.less"},2:{name:"keyword.operator.arithmetic.less"},3:{name:"constant.numeric.less"}},match:"\\s*(\\d+)(/)(\\d+)"},{include:"#less-math"}]}]},"media-query-list":{begin:"\\s*(?=[^{;])",end:"\\s*(?=[{;])",patterns:[{include:"#media-query"}]},"minmax-function":{begin:"\\b(minmax)(?=\\()",beginCaptures:{1:{name:"support.function.grid.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#less-variables"},{include:"#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+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))",name:"constant.numeric.less"},"numeric-values":{patterns:[{include:"#dimensions"},{include:"#percentage-type"},{include:"#number-type"}]},"percentage-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(%)",name:"constant.numeric.less"},"property-list":{patterns:[{begin:"(?=(?=[^;]*)\\{)",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.less"}},patterns:[{include:"#rule-list"}]}]},"property-value-constants":{patterns:[{comment:"align-content, align-items, align-self, justify-content, justify-items, justify-self",match:"(?x)\\b(?:\nflex-start|flex-end|start|end|space-between|space-around|space-evenly\n|stretch|baseline|safe|unsafe|legacy|anchor-center|first|last|self-start|self-end\n)\\b",name:"support.constant.property-value.less"},{comment:"alignment-baseline",match:"(?x)\\b(?:\ntext-before-edge|before-edge|middle|central|text-after-edge\n|after-edge|ideographic|alphabetic|hanging|mathematical|top|center|bottom\n)\\b",name:"support.constant.property-value.less"},{comment:"all/global values",match:"\\b(?:initial|inherit|unset|revert-layer|revert)\\b",name:"support.constant.property-value.less"},{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:"(?x)\\b(\nabsolute|active|add\n|all(-(petite|small)-caps|-scroll)?\n|alpha(betic)?\n|alternate(-reverse)?\n|always|annotation|antialiased|at\n|auto(hiding-scrollbar)?\n|avoid(-column|-page|-region)?\n|background(-color|-image|-position|-size)?\n|backwards|balance|baseline|below|bevel|bicubic|bidi-override|blink\n|block(-(line-height|start|end))?\n|blur\n|bold(er)?\n|border-top-left-radius\n|border-top-right-radius\n|border-bottom-left-radius\n|border-bottom-right-radius\n|border-end-end-radius\n|border-end-start-radius\n|border-start-end-radius\n|border-start-start-radius\n|border-block-start-color\n|border-block-start-style\n|border-block-start-width\n|border-block-start\n|border-block-end-color\n|border-block-end-style\n|border-block-end-width\n|border-block-end\n|border-block-color\n|border-block-style\n|border-block-width\n|border-block\n|border-inline-start-color\n|border-inline-start-style\n|border-inline-start-width\n|border-inline-start\n|border-inline-end-color\n|border-inline-end-style\n|border-inline-end-width\n|border-inline-end\n|border-inline-color\n|border-inline-style\n|border-inline-width\n|border-inline\n|border-top-color\n|border-top-style\n|border-top-width\n|border-top\n|border-right-color\n|border-right-style\n|border-right-width\n|border-right\n|border-bottom-color\n|border-bottom-style\n|border-bottom-width\n|border-bottom\n|border-left-color\n|border-left-style\n|border-left-width\n|border-left\n|border-image-outset\n|border-image-repeat\n|border-image-slice\n|border-image-source\n|border-image-width\n|border-image\n|border-color\n|border-style\n|border-width\n|border-radius\n|border-collapse\n|border-spacing\n|border\n|both\n|bottom\n|box(-shadow)?\n|break-(all|word|spaces)\n|brightness\n|butt(on)?\n|capitalize\n|cent(er|ral)\n|char(acter-variant)?\n|cjk-ideographic|clip|clone|close-quote\n|closest-(corner|side)\n|col-resize|collapse\n|color(-stop|-burn|-dodge)?\n|column((-count|-gap|-reverse|-rule(-color|-width)?|-width)|s)?\n|common-ligatures|condensed|consider-shifts|contain\n|content(-box|s)?\n|contextual|contrast|cover\n|crisp(-e|E)dges\n|crop\n|cross(hair)?\n|da(rken|shed)\n|default|dense|diagonal-fractions|difference|disabled\n|discard|discretionary-ligatures|disregard-shifts\n|distribute(-all-lines|-letter|-space)?\n|dotted|double|drop-shadow\n|(nwse|nesw|ns|ew|sw|se|nw|ne|w|s|e|n)-resize\n|ease(-in-out|-in|-out)?\n|element|ellipsis|embed|end|EndColorStr|evenodd\n|exclu(de(-ruby)?|sion)\n|expanded\n|(extra|semi|ultra)-(condensed|expanded)\n|farthest-(corner|side)?\n|fill(-box|-opacity)?\n|filter\n|fit-content\n|fixed\n|flat\n|flex((-basis|-end|-grow|-shrink|-start)|box)?\n|flip|flood-color\n|font(-size(-adjust)?|-stretch|-weight)?\n|forwards\n|from(-image)?\n|full-width|gap|geometricPrecision|glyphs|gradient|grayscale\n|grid((-column|-row)?-gap|-height)?\n|groove|hand|hanging|hard-light|height|help|hidden|hide\n|historical-(forms|ligatures)\n|horizontal(-tb)?\n|hue\n|ideograph(-alpha|-numeric|-parenthesis|-space|ic)\n|inactive|include-ruby|infinite|inherit|initial\n|inline(-(block|box|flex(box)?|line-height|table|start|end))?\n|inset|inside\n|inter(-ideograph|-word|sect)\n|invert|isolat(e|ion)|italic\n|jis(04|78|83|90)\n|justify(-all)?\n|keep-all\n|large[r]?\n|last|layout|left|letter-spacing\n|light(e[nr]|ing-color)\n|line(-edge|-height|-through)?\n|linear(-gradient|RGB)?\n|lining-nums|list-item|local|loose|lowercase|lr-tb|ltr\n|lumin(osity|ance)|manual\n|manipulation\n|margin(-bottom|-box|-left|-right|-top)?\n|marker(-offset|s)?\n|match-parent\n|mathematical\n|max-(content|height|lines|size|width)\n|medium|middle\n|min-(content|height|width)\n|miter|mixed|move|multiply|newspaper\n|no-(change|clip|(close|open)-quote|(common|discretionary|historical)-ligatures|contextual|drop|repeat)\n|none|nonzero|normal|not-allowed|nowrap|oblique\n|offset(-after|-before|-end|-start)?\n|oldstyle-nums|opacity|open-quote\n|optimize(Legibility|Precision|Quality|Speed)\n|order|ordinal|ornaments\n|outline(-color|-offset|-width)?\n|outset|outside|over(line|-edge|lay)\n|padding(-bottom|-box|-left|-right|-top|-box)?\n|page|paint(ed)?|paused\n|pan-(x|left|right|y|up|down)\n|perspective-origin\n|petite-caps|pixelated|pointer\n|pinch-zoom\n|pretty\n|pre(-line|-wrap)?\n|preserve(-3d|-breaks|-spaces)?\n|progid:DXImageTransform.Microsoft.(Alpha|Blur|dropshadow|gradient|Shadow)\n|progress\n|proportional-(nums|width)\n|radial-gradient|recto|region|relative\n|repeat(-[xy])?\n|repeating-(linear|radial)-gradient\n|replaced|reset-size|reverse|revert(-layer)?|ridge|right\n|round\n|row(-gap|-resize|-reverse)?\n|rtl|ruby|running|saturat(e|ion)|screen\n|scroll(-position|bar)?\n|separate|sepia\n|scale-down\n|shape-(image-threshold|margin|outside)\n|show\n|sideways(-lr|-rl)?\n|simplified\n|size\n|slashed-zero|slice\n|small(-caps|er)?\n|smooth|snap|solid|soft-light\n|space(-around|-between)?\n|span|sRGB\n|stable\n|stack(ed-fractions)?\n|start(ColorStr)?\n|static\n|step-(end|start)\n|sticky\n|stop-(color|opacity)\n|stretch|strict\n|stroke(-box|-dash(array|offset)|-miterlimit|-opacity|-width)?\n|style(set)?\n|stylistic\n|sub(grid|pixel-antialiased|tract)?\n|super|swash\n|table(-caption|-cell|(-column|-footer|-header|-row)-group|-column|-row)?\n|tabular-nums|tb-rl\n|text((-bottom|-(decoration|emphasis)-color|-indent|-(over|under)-edge|-shadow|-size(-adjust)?|-top)|field)?\n|thi(ck|n)\n|titling-ca(ps|se)\n|to[p]?\n|touch|traditional\n|transform(-origin)?\n|under(-edge|line)?\n|unicase|unset|uppercase|upright\n|use-(glyph-orientation|script)\n|verso\n|vertical(-align|-ideographic|-lr|-rl|-text)?\n|view-box\n|viewport-fill(-opacity)?\n|visibility\n|visible(Fill|Painted|Stroke)?\n|wait|wavy|weight|whitespace|(device-)?width|word-spacing\n|wrap(-reverse)?\n|x{1,2}-(large|small)\n|z-index|zero\n|zoom(-in|-out)?\n|((?xi:arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|decimal-leading-zero|decimal|devanagari|disclosure-closed|disclosure-open|disc|ethiopic-numeric|georgian|gujarati|gurmukhi|hebrew|hiragana-iroha|hiragana|japanese-formal|japanese-informal|kannada|katakana-iroha|katakana|khmer|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian|upper-latin|upper-roman)))\\b",name:"support.constant.property-value.less"},{match:"\\b(?i:sans-serif|serif|monospace|fantasy|cursive)\\b(?=\\s*[;,\\n}])",name:"support.constant.font-name.less"}]},"property-values":{patterns:[{include:"#comment-block"},{include:"#vendor-prefix"},{include:"#builtin-functions"},{include:"#color-functions"},{include:"#less-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-classes":{patterns:[{begin:"(:)(dir|lang)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#unquoted-string"}]}]},{begin:"(:)(not)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{begin:"(:)(nth(-last)?-(child|of-type))(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"meta.function-call.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.group.less",patterns:[{match:"\\b(even|odd)\\b",name:"keyword.other.pseudo-class.less"},{captures:{1:{name:"keyword.other.unit.less"}},match:"(?:[-+]?(?:\\d+)?(n)(\\s*[-+]\\s*\\d+)?|[-+]?\\s*\\d+)",name:"constant.numeric.less"},{include:"#less-math"},{include:"#less-strings"},{include:"#less-variable-interpolation"}]}]},{begin:"(:)(host-context)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"entity.other.attribute-name.pseudo-class.less"}},match:"(:)(active|any|checked|default|disabled|empty|enabled|first(-(child|of-type))?|fullscreen|focus|host|hover|indeterminate|in-range|invalid|last-(child|of-type)|left|link|only-(child|of-type)|optional|out-of-range|read-(only|write)|required|right|root|scope|target|valid|visited)",name:"meta.function-call.less"}]},"pseudo-elements":{patterns:[{begin:"(::)(slotted)(?=\\()",captures:{1:{name:"punctuation.definition.entity.less"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"entity.other.attribute-name.pseudo-class.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",patterns:[{include:"#selectors"}]}]},{captures:{1:{name:"punctuation.definition.entity.less"},2:{name:"punctuation.definition.entity.less"},3:{name:"support.type.vendor-prefix.less"}},match:"(?:(:{1,2})(?:before|after|first-line|first-letter)|(::)(-(?:moz|ms|webkit)-)?(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)))\\b",name:"entity.other.attribute-name.pseudo-element.less"}]},"qualified-name":{captures:{1:{name:"entity.name.constant.less"},2:{name:"entity.name.namespace.wildcard.less"},3:{name:"punctuation.separator.namespace.less"}},match:"(?:(-?(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)|(\\*))?([|])(?!=)"},"regexp-function":{begin:"\\b(regexp)(?=\\()",end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.end.less"}},name:"support.function.regexp.less",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.begin.less"}},end:"(?=\\))",name:"meta.function-call.less",patterns:[{include:"#literal-string"}]}]},"relative-color":{patterns:[{match:"from",name:"keyword.other.less"},{match:"\\b[hslawbch]\\b",name:"keyword.other.less"}]},"resolution-type":{captures:{1:{name:"keyword.other.unit.less"}},match:"(?i:[-+]?(?:(?:\\d*\\.\\d+(?:[eE](?:[-+]?\\d+))*)|(?:[-+]?\\d+))(dpi|dpcm|dppx))\\b",name:"constant.numeric.less"},"rule-list":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.begin.less"}},end:"(?=\\s*\\})",name:"meta.property-list.less",patterns:[{captures:{1:{name:"punctuation.terminator.rule.less"}},match:"\\s*(;)|(?=[})])"},{include:"#rule-list-body"},{include:"#less-extend"}]}]},"rule-list-body":{patterns:[{include:"#comment-block"},{include:"#comment-line"},{include:"#at-rules"},{include:"#less-variable-assignment"},{include:"#less-variable-interpolation"},{begin:"(?=[-a-z])",end:"$|(?![-a-z])",patterns:[{include:"#vendor-prefix"},{include:"#custom-property-name"},{include:"#filter-function"},{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"}]},{match:"(?x)\\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 | 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) | contain(-intrinsic-((((block|inline)-)?size)|height|width))? | content | counter-(increment|reset) | cursor | (c|d|f)(x|y) | direction | display | divisor | dominant-baseline | dur | elevation | empty-cells | enable-background | end | fallback | fill(-(opacity|rule))? | filter | flex(-(align|basis|direction|flow|grow|item-align|line-pack|negative|order|pack|positive|preferred-size|shrink|wrap))? | float | flood-(color|opacity) | font-display | font-family | font-feature-settings | font-kerning | font-language-override | font-size(-adjust)? | font-smoothing | font-stretch | font-style | font-synthesis | font-variant(-(alternates|caps|east-asian|ligatures|numeric|position))? | font-weight | font | fr | ((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))? | 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:"(?x)\\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:"(?x)\\b( a | abbr | acronym | address | applet | area | article | aside | audio | b | base | basefont | bdi | bdo | big | blockquote | body | br | button | canvas | caption | circle | cite | clipPath | code | col | colgroup | content | data | dataList | dd | defs | del | details | dfn | dialog | dir | div | dl | dt | element | ellipse | em | embed | eventsource | fieldset | figcaption | figure | filter | footer | foreignObject | form | frame | frameset | g | glyph | glyphRef | h1 | h2 | h3 | h4 | h5 | h6 | head | header | hgroup | hr | html | i | iframe | image | img | input | ins | isindex | kbd | keygen | label | legend | li | line | linearGradient | link | main | map | mark | marker | mask | menu | meta | meter | nav | noframes | noscript | object | ol | optgroup | option | output | p | param | path | pattern | picture | polygon | polyline | pre | progress | q | radialGradient | rect | rp | ruby | rt | rtc | s | samp | script | section | select | shadow | small | source | span | stop | strike | strong | style | sub | summary | sup | svg | switch | symbol | table | tbody | td | template | textarea | textPath | tfoot | th | thead | time | title | tr | track | tref | tspan | tt | u | ul | use | var | video | wbr | xmp )\\b",name:"entity.name.tag.less"},{begin:"(\\.)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.class.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(#)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.id.less",patterns:[{include:"#less-variable-interpolation"}]},{begin:"(&)",beginCaptures:{1:{name:"punctuation.definition.entity.less"}},contentName:"entity.other.attribute-name.parent.less",end:"(?![-\\w]|[^\\x{00}-\\x{9f}]|\\\\([A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9])|(\\@(?=\\{)))",name:"entity.other.attribute-name.parent.less",patterns:[{include:"#less-variable-interpolation"},{include:"#selectors"}]},{include:"#pseudo-elements"},{include:"#pseudo-classes"},{include:"#less-extend"},{match:"(?!\\+_?:)(?:>{1,3}|[~+])(?![>~+;}])",name:"punctuation.separator.combinator.less"},{match:"((?:>{1,3}|[~+])){2,}",name:"invalid.illegal.combinator.less"},{match:"\\/deep\\/",name:"invalid.illegal.combinator.less"},{begin:"\\[",captures:{0:{name:"punctuation.definition.entity.less"}},end:"\\]",name:"meta.attribute-selector.less",patterns:[{include:"#less-variable-interpolation"},{include:"#qualified-name"},{match:"(-?(?:[[_a-zA-Z][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))(?:[[-\\w][^\\x{00}-\\x{7F}]]|(?:\\\\\\h{1,6}[\\s\\t\\n\\f]?|\\\\[^\\n\\f\\h]))*)",name:"entity.other.attribute-name.less"},{begin:"\\s*([~*|^$]?=)\\s*",captures:{1:{name:"keyword.operator.attribute-selector.less"}},end:"(?=(\\s|\\]))",patterns:[{include:"#less-variable-interpolation"},{match:"[^\\s\\]\\['\"]",name:"string.unquoted.less"},{include:"#literal-string"},{captures:{1:{name:"keyword.other.less"}},match:"(?:\\s+([iI]))?"},{match:"\\]",name:"punctuation.definition.entity.less"}]}]},{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"}]},"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"}]}]},"vendor-prefix":{match:"-(?:webkit|moz(-osx)?|ms|o)-",name:"support.type.vendor-prefix.less"},"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:"#length-type"},{include:"#percentage-type"},{include:"#less-variables"},{include:"#var-function"},{include:"#calc-function"},{include:"#arbitrary-repetition"}]}]}},a="source.css.less",s={displayName:e,name:n,patterns:t,repository:i,scopeName:a};export{s as default,e as displayName,n as name,t as patterns,i as repository,a as scopeName}; diff --git a/lib/dist/grammar/liquid.mjs b/lib/dist/grammar/liquid.mjs new file mode 100644 index 0000000..a8248b1 --- /dev/null +++ b/lib/dist/grammar/liquid.mjs @@ -0,0 +1 @@ +var e="Liquid",n=["liquid"],t="(?x)\n{%\n -?\n \\s*\n (capture|case|comment|for|form|if|javascript|paginate|schema|style)\n [^(%})]+\n%}\n",i="(?x)\n{%\n \\s*\n (endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)\n [^(%})]+\n%}\n",a={"L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted":{patterns:[{include:"#injection"}]}},d="liquid",l=[{include:"#core"}],u={attribute:{begin:"\\w+:",beginCaptures:{0:{name:"entity.other.attribute-name.liquid"}},end:"(?=,|%}|}}|\\|)",patterns:[{include:"#value_expression"}]},attribute_liquid:{begin:"\\w+:",beginCaptures:{0:{name:"entity.other.attribute-name.liquid"}},end:"(?=,|\\|)|$",patterns:[{include:"#value_expression"}]},comment_block:{begin:"{%-?\\s*comment\\s*-?%}",end:"{%-?\\s*endcomment\\s*-?%}",name:"comment.block.liquid",patterns:[{include:"#comment_block"},{match:"(.(?!{%-?\\s*(comment|endcomment)\\s*-?%}))*."}]},core:{patterns:[{include:"#raw_tag"},{include:"#comment_block"},{include:"#style_codefence"},{include:"#stylesheet_codefence"},{include:"#json_codefence"},{include:"#javascript_codefence"},{include:"#object"},{include:"#tag"},{include:"text.html.basic"}]},filter:{captures:{1:{name:"support.function.liquid"}},match:"\\|\\s*((?![\\.0-9])[a-zA-Z0-9_-]+\\:?)\\s*"},injection:{patterns:[{include:"#raw_tag"},{include:"#comment_block"},{include:"#object"},{include:"#tag_injection"}]},invalid_range:{match:"\\((.(?!\\.\\.))+\\)",name:"invalid.illegal.range.liquid"},javascript_codefence:{begin:"({%-?)\\s*(javascript)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.javascript.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.javascript.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.js",end:"({%-?)\\s*(endjavascript)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.javascript.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.javascript.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.javascript.liquid",patterns:[{include:"source.js"}]},json_codefence:{begin:"({%-?)\\s*(schema)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.schema.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.schema.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.json",end:"({%-?)\\s*(endschema)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.schema.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.schema.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.schema.liquid",patterns:[{include:"source.json"}]},language_constant:{match:"\\b(false|true|nil|blank)\\b|empty(?!\\?)",name:"constant.language.liquid"},number:{match:"((-|\\+)\\s*)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.liquid"},object:{begin:"(?|\\<|\\>\\=|\\<\\=|or|and|contains)(?:(?=\\s)|\\b)"},range:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.liquid"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.liquid"}},name:"meta.range.liquid",patterns:[{match:"\\.\\.",name:"punctuation.range.liquid"},{include:"#variable_lookup"},{include:"#number"}]},raw_tag:{begin:"{%-?\\s*(raw)\\s*-?%}",beginCaptures:{1:{name:"entity.name.tag.liquid"}},contentName:"string.unquoted.liquid",end:"{%-?\\s*(endraw)\\s*-?%}",endCaptures:{1:{name:"entity.name.tag.liquid"}},name:"meta.entity.tag.raw.liquid",patterns:[{match:"(.(?!{%-?\\s*endraw\\s*-?%}))*."}]},string:{patterns:[{include:"#string_single"},{include:"#string_double"}]},string_double:{begin:'"',end:'"',name:"string.quoted.double.liquid"},string_single:{begin:"'",end:"'",name:"string.quoted.single.liquid"},style_codefence:{begin:"({%-?)\\s*(style)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.style.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.css",end:"({%-?)\\s*(endstyle)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.style.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.style.liquid",patterns:[{include:"source.css"}]},stylesheet_codefence:{begin:"({%-?)\\s*(stylesheet)\\s*(-?%})",beginCaptures:{0:{name:"meta.tag.metadata.style.start.liquid"},1:{name:"punctuation.definition.tag.begin.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.begin.liquid"}},contentName:"meta.embedded.block.css",end:"({%-?)\\s*(endstylesheet)\\s*(-?%})",endCaptures:{0:{name:"meta.tag.metadata.style.end.liquid"},1:{name:"punctuation.definition.tag.end.liquid"},2:{name:"entity.name.tag.style.liquid"},3:{name:"punctuation.definition.tag.end.liquid"}},name:"meta.block.style.liquid",patterns:[{include:"source.css"}]},tag:{begin:"(?"},{match:"\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>",name:"storage.type.generic.lua"},{match:"\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\b",name:"keyword.control.lua"},{match:"\\b(local)\\b",name:"keyword.local.lua"},{match:"\\b(function)\\b(?![,:])",name:"keyword.control.lua"},{match:"(?=?|(?|\\<",name:"keyword.operator.lua"}]},{begin:"(?<=---)[ \\t]*@see",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{match:"\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)",name:"support.class.lua"},{match:"#",name:"keyword.operator.lua"}]},{begin:"(?<=---)[ \\t]*@diagnostic",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{begin:"([a-zA-Z_\\-0-9]+)[ \\t]*(:)?",beginCaptures:{1:{name:"keyword.other.unit"},2:{name:"keyword.operator.unit"}},end:"(?=\\n)",patterns:[{match:"\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)",name:"support.class.lua"},{match:",",name:"keyword.operator.lua"}]}]},{begin:"(?<=---)[ \\t]*@module",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{include:"#string"}]},{match:"(?<=---)[ \\t]*@(async|nodiscard)",name:"storage.type.annotation.lua"},{begin:"(?<=---)\\|\\s*[\\>\\+]?",beginCaptures:{0:{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{include:"#string"}]}]},"emmydoc.type":{patterns:[{begin:"\\bfun\\b",beginCaptures:{0:{name:"keyword.control.lua"}},end:"(?=[\\s#])",patterns:[{match:"[\\(\\),:\\?][ \\t]*",name:"keyword.operator.lua"},{match:"([a-zA-Z_][a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]*)(?",name:"storage.type.generic.lua"},{match:"\\basync\\b",name:"entity.name.tag.lua"},{match:"[\\{\\}\\:\\,\\?\\|\\`][ \\t]*",name:"keyword.operator.lua"},{begin:"(?=[a-zA-Z_\\.\\*\"'\\[])",end:"(?=[\\s\\)\\,\\?\\:\\}\\|#])",patterns:[{match:"([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?)",patterns:[{match:"[a-zA-Z_][a-zA-Z0-9_]*",name:"entity.name.type.luau"},{match:"=",name:"keyword.operator.assignment.luau"},{include:"#type_literal"}]},identifier:{patterns:[{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*(?:[({\"']|\\[\\[))",name:"entity.name.function.luau"},{match:"(?<=[^.]\\.|:)\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"variable.other.property.luau"},{match:"\\b([A-Z_][A-Z0-9_]*)\\b",name:"variable.other.constant.luau"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"variable.other.readwrite.luau"}]},interpolated_string_expression:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.interpolated-string-expression.begin.luau"}},contentName:"meta.embedded.line.luau",end:"\\}",endCaptures:{0:{name:"punctuation.definition.interpolated-string-expression.end.luau"}},name:"meta.template.expression.luau",patterns:[{include:"source.luau"}]},keyword:{patterns:[{match:"\\b(break|do|else|for|if|elseif|return|then|repeat|while|until|end|in|continue)\\b",name:"keyword.control.luau"},{match:"\\b(local)\\b",name:"storage.modifier.local.luau"},{match:"\\b(function)\\b(?![,:])",name:"keyword.control.luau"},{match:"(?=?",name:"keyword.operator.comparison.luau"},{match:"\\+=|-=|/=|//=|\\*=|%=|\\^=|\\.\\.=|=",name:"keyword.operator.assignment.luau"},{match:"\\+|-|%|\\*|\\/\\/|\\/|\\^",name:"keyword.operator.arithmetic.luau"},{match:"#|(?)|=|;|$|(?=\\breturn\\b)|(?=\\bend\\b)",patterns:[{include:"#comment"},{include:"#type_literal"}]},type_cast:{begin:"(::)",beginCaptures:{1:{name:"keyword.operator.typecast.luau"}},end:"(?=^|[;),}\\]:?\\-\\+\\>](?!\\s*[&\\|])|$|\\b(break|do|else|for|if|elseif|return|then|repeat|while|until|end|in|continue)\\b)",patterns:[{include:"#type_literal"}]},type_literal:{patterns:[{include:"#comment"},{include:"#string"},{match:"\\?|\\&|\\|",name:"keyword.operator.type.luau"},{match:"->",name:"keyword.operator.type.luau"},{match:"\\b(false)\\b",name:"constant.language.boolean.false.luau"},{match:"\\b(true)\\b",name:"constant.language.boolean.true.luau"},{match:"\\b(nil|string|number|boolean|thread|userdata|symbol|any)\\b",name:"support.type.primitive.luau"},{begin:"\\b(typeof)\\b(\\()",beginCaptures:{1:{name:"support.function.luau"},2:{name:"punctuation.arguments.begin.typeof.luau"}},end:"(\\))",endCaptures:{1:{name:"punctuation.arguments.end.typeof.luau"}},patterns:[{include:"source.luau"}]},{begin:"(<)",beginCaptures:{1:{name:"keyword.operator.type.luau"}},end:"(>)",endCaptures:{1:{name:"keyword.operator.type.luau"}},patterns:[{match:"=",name:"keyword.operator.assignment.luau"},{include:"#type_literal"}]},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"entity.name.type.luau"},{begin:"\\{",end:"\\}",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#type_literal"}]},{captures:{1:{name:"variable.property.luau"},2:{name:"keyword.operator.type.luau"}},match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(:)"},{include:"#type_literal"},{match:"[,;]",name:"punctuation.separator.fields.type.luau"}]},{begin:"\\(",end:"\\)",patterns:[{captures:{1:{name:"variable.parameter.luau"},2:{name:"keyword.operator.type.luau"}},match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(:)",name:"variable.parameter.luau"},{include:"#type_literal"}]}]}},u="source.luau",i={displayName:e,fileTypes:a,name:t,patterns:n,repository:r,scopeName:u};export{i as default,e as displayName,a as fileTypes,t as name,n as patterns,r as repository,u as scopeName}; diff --git a/lib/dist/grammar/make.mjs b/lib/dist/grammar/make.mjs new file mode 100644 index 0000000..34216a6 --- /dev/null +++ b/lib/dist/grammar/make.mjs @@ -0,0 +1 @@ +var e="Makefile",a="make",n=[{include:"#comment"},{include:"#variables"},{include:"#variable-assignment"},{include:"#directives"},{include:"#recipe"},{include:"#target"}],i={"another-variable-braces":{patterns:[{begin:"(?<={)(?!})",end:"(?=}|((?) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},bold:{begin:"(?x) (?(\\*\\*(?=\\w)|(?]*+>\n| (?`+)([^`]|(?!(?(?!`))`)*+\\k\n\n| \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\n| \\[\n(\n(?\n[^\\[\\]\\\\]\n| \\\\.\n| \\[ \\g*+ \\]\n)*+\n\\]\n(\n(\n[ ]?\n\\[[^\\]]*+\\]\n)\n| (\n\\(\n[ \\t]*+\n?\n[ \\t]*+\n(\n(?['\"])\n(.*?)\n\\k<title>\n)?\n\\)\n)\n)\n)\n| (?!(?<=\\S)\\k<open>).\n\n)++\n(?<=\\S)(?=__\\b|\\*\\*)\\k<open>\n)\n",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*(\x3c!--)",captures:{1:{name:"punctuation.definition.comment.html"},2:{name:"punctuation.definition.comment.html"}},end:"(--\x3e)",name:"comment.block.html"},{begin:"(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))",end:"(?i)(.*)((</)(script|style|pre)(>))",endCaptures:{1:{patterns:[{include:"text.html.derivative"}]},2:{name:"meta.tag.structure.$4.end.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(\\s*|$)",patterns:[{include:"text.html.derivative"}],while:"(?i)^(?!.*</(script|style|pre)>)"}]},{begin:"(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"},{begin:"(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)",patterns:[{include:"text.html.derivative"}],while:"^(?!\\s*$)"}]},"image-inline":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.image.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.image.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:"(?x)\n(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n\n(\\()\n\n[ \\t]*\n(\n(<)((?:\\\\[<>]|[^<>\\n])*)(>)\n| ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n)\n[ \\t]*\n(?:\n((\\().+?(\\)))\n| ((\").+?(\"))\n| ((').+?('))\n)?\n\\s*\n(\\))\n",name:"meta.image.inline.markdown"},"image-ref":{captures:{1:{name:"punctuation.definition.link.description.begin.markdown"},2:{name:"string.other.link.description.markdown"},4:{name:"punctuation.definition.link.description.end.markdown"},5:{name:"punctuation.definition.constant.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.markdown"}},match:"(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",name:"meta.image.reference.markdown"},inline:{patterns:[{include:"#ampersand"},{include:"#bracket"},{include:"#bold"},{include:"#italic"},{include:"#raw"},{include:"#strikethrough"},{include:"#escape"},{include:"#image-inline"},{include:"#image-ref"},{include:"#link-email"},{include:"#link-inet"},{include:"#link-inline"},{include:"#link-ref"},{include:"#link-ref-literal"},{include:"#link-ref-shortcut"}]},italic:{begin:"(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S)\n(?=\n(\n<[^>]*+>\n| (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\n| \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\n| \\[\n(\n(?<square>\n[^\\[\\]\\\\]\n| \\\\.\n| \\[ \\g<square>*+ \\]\n)*+\n\\]\n(\n(\n[ ]?\n\\[[^\\]]*+\\]\n)\n| (\n\\(\n[ \\t]*+\n<?(.*?)>?\n[ \\t]*+\n(\n(?<title>['\"])\n(.*?)\n\\k<title>\n)?\n\\)\n)\n)\n)\n| \\k<open>\\k<open>\n| (?!(?<=\\S)\\k<open>).\n\n)++\n(?<=\\S)(?=_\\b|\\*)\\k<open>\n)\n",captures:{1:{name:"punctuation.definition.italic.markdown"}},end:"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",name:"markup.italic.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},"link-def":{captures:{1:{name:"punctuation.definition.constant.markdown"},2:{name:"constant.other.reference.link.markdown"},3:{name:"punctuation.definition.constant.markdown"},4:{name:"punctuation.separator.key-value.markdown"},5:{name:"punctuation.definition.link.markdown"},6:{name:"markup.underline.link.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"string.other.link.description.title.markdown"},10:{name:"punctuation.definition.string.begin.markdown"},11:{name:"punctuation.definition.string.end.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"}},match:"(?x)\n\\s*\n(\\[)([^]]+?)(\\])(:)\n[ \\t]*\n(?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?))\n[ \\t]*\n(?:\n((\\().+?(\\)))\n| ((\").+?(\"))\n| ((').+?('))\n)?\n\\s*\n$\n",name:"meta.link.reference.def.markdown"},"link-email":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},4:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",name:"meta.link.email.lt-gt.markdown"},"link-inet":{captures:{1:{name:"punctuation.definition.link.markdown"},2:{name:"markup.underline.link.markdown"},3:{name:"punctuation.definition.link.markdown"}},match:"(<)((?:https?|ftp)://.*?)(>)",name:"meta.link.inet.markdown"},"link-inline":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.metadata.markdown"},7:{name:"punctuation.definition.link.markdown"},8:{name:"markup.underline.link.markdown"},9:{name:"punctuation.definition.link.markdown"},10:{name:"markup.underline.link.markdown"},12:{name:"string.other.link.description.title.markdown"},13:{name:"punctuation.definition.string.begin.markdown"},14:{name:"punctuation.definition.string.end.markdown"},15:{name:"string.other.link.description.title.markdown"},16:{name:"punctuation.definition.string.begin.markdown"},17:{name:"punctuation.definition.string.end.markdown"},18:{name:"string.other.link.description.title.markdown"},19:{name:"punctuation.definition.string.begin.markdown"},20:{name:"punctuation.definition.string.end.markdown"},21:{name:"punctuation.definition.metadata.markdown"}},match:"(?x)\n(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n\n(\\()\n\n[ \\t]*\n(\n(<)((?:\\\\[<>]|[^<>\\n])*)(>)\n| ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n)\n[ \\t]*\n\n(?:\n((\\()[^()]*(\\)))\n| ((\")[^\"]*(\"))\n| ((')[^']*('))\n)?\n\\s*\n(\\))\n",name:"meta.link.inline.markdown"},"link-ref":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"constant.other.reference.link.markdown"},7:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",name:"meta.link.reference.markdown"},"link-ref-literal":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},4:{name:"punctuation.definition.link.title.end.markdown"},5:{name:"punctuation.definition.constant.begin.markdown"},6:{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",name:"meta.link.reference.literal.markdown"},"link-ref-shortcut":{captures:{1:{name:"punctuation.definition.link.title.begin.markdown"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.link.title.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])",name:"meta.link.reference.markdown"},list_paragraph:{begin:"(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"},lists:{patterns:[{begin:"(^|\\G)([ ]{0,3})([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},comment:"Currently does not support un-indented second lines.",name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],while:"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"},raw:{captures:{1:{name:"punctuation.definition.raw.markdown"},3:{name:"punctuation.definition.raw.markdown"}},match:"(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",name:"markup.inline.raw.string.markdown"},raw_block:{begin:"(^|\\G)([ ]{4}|\\t)",name:"markup.raw.block.markdown",while:"(^|\\G)([ ]{4}|\\t)"},separator:{match:"(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",name:"meta.separator.markdown"},strikethrough:{captures:{1:{name:"punctuation.definition.strikethrough.markdown"},2:{patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"}]},3:{name:"punctuation.definition.strikethrough.markdown"}},match:"(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",name:"markup.strikethrough.markdown"},table:{begin:"(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",beginCaptures:{2:{name:"punctuation.definition.table.markdown"}},name:"markup.table.markdown",patterns:[{match:"\\|",name:"punctuation.definition.table.markdown"},{captures:{1:{name:"punctuation.separator.table.markdown"}},match:"(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)"},{captures:{1:{patterns:[{include:"#inline"}]}},match:"(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)"}],while:"(^|\\G)(?=\\|)"}},i="text.html.markdown",d={displayName:e,name:n,patterns:a,repository:t,scopeName:i};export{d as default,e as displayName,n as name,a as patterns,t as repository,i as scopeName}; diff --git a/lib/dist/grammar/marko.mjs b/lib/dist/grammar/marko.mjs new file mode 100644 index 0000000..969f9c4 --- /dev/null +++ b/lib/dist/grammar/marko.mjs @@ -0,0 +1 @@ +var e="Marko",n=["marko"],t="marko",s=[{begin:"^\\s*(style)\\s+(\\{)",beginCaptures:{1:{name:"storage.type.marko.css"},2:{name:"punctuation.section.scope.begin.marko.css"}},comment:"CSS style block, eg: style { color: green }",contentName:"source.css",end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"^\\s*(style)\\.(less)\\s+(\\{)",beginCaptures:{1:{name:"storage.type.marko.css"},2:{name:"storage.modifier.marko.css"},3:{name:"punctuation.section.scope.begin.marko.css"}},comment:"Less style block, eg: style.less { color: green }",contentName:"source.less",end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.less",patterns:[{include:"source.css.less"}]},{begin:"^\\s*(style)\\.(scss)\\s+(\\{)",beginCaptures:{1:{name:"storage.type.marko.css"},2:{name:"storage.modifier.marko.css"},3:{name:"punctuation.section.scope.begin.marko.css"}},comment:"SCSS style block, eg: style.scss { color: green }",contentName:"source.scss",end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.scss",patterns:[{include:"source.css.scss"}]},{begin:"^\\s*(?:(static )|(?=(?:class|import|export) ))",beginCaptures:{1:{name:"keyword.control.static.marko"}},comment:"Top level blocks parsed as JavaScript",contentName:"source.js",end:"(?=\\n|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-statement"}]},{include:"#content-concise-mode"}],a={attrs:{patterns:[{applyEndPatternLast:1,begin:"(?:\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?",beginCaptures:{1:{name:"support.type.attribute-name.marko"},2:{name:"entity.other.attribute-name.marko"},3:{name:"support.function.attribute-name.marko"}},comment:"Attribute with optional value",end:"(?=.|$)",name:"meta.marko-attribute",patterns:[{include:"#html-args-or-method"},{applyEndPatternLast:1,begin:"\\s*(:?=)\\s*",beginCaptures:{1:{patterns:[{include:"source.js"}]}},comment:"Attribute value",contentName:"source.js",end:"(?=.|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-expression"}]}]},{applyEndPatternLast:1,begin:"(?:\\s+|,)\\.\\.\\.",beginCaptures:{1:{name:"keyword.operator.spread.marko"}},comment:"A ...spread attribute",contentName:"source.js",end:"(?=.|$)",name:"meta.marko-spread-attribute",patterns:[{include:"#javascript-expression"}]},{begin:"\\s*(,(?!,))",captures:{1:{patterns:[{include:"source.js"}]}},comment:"Consume any whitespace after a comma",end:"(?!\\S)"},{include:"#javascript-comment-multiline"},{include:"#invalid"}]},"concise-html-block":{begin:"\\s*(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- HTML block within concise mode content. ---",end:"\\1",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-html-block",patterns:[{include:"#content-html-mode"}]},"concise-html-line":{captures:{1:{name:"punctuation.section.scope.begin.marko"},2:{patterns:[{include:"#html-comments"},{include:"#tag-html"},{match:"\\\\.",name:"string"},{include:"#placeholder"},{match:".+?",name:"string"}]}},comment:"-- HTML line within concise mode content. (content-html-mode w/o scriptlet)",match:"\\s*(--+)(?=\\s+\\S)(.*$)",name:"meta.section.marko-html-line"},"concise-open-tag-content":{patterns:[{include:"#tag-before-attrs"},{begin:"\\s*\\[",beginCaptures:{0:{name:"punctuation.section.scope.begin.marko"}},end:"]",endCaptures:{0:{name:"punctuation.section.scope.end.marko"}},patterns:[{include:"#attrs"},{include:"#invalid"}]},{begin:"(?!^)(?= )",end:"(?=--)|(?<!,)(?=\\n)",patterns:[{include:"#attrs"},{include:"#invalid"}]}]},"concise-script-block":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise script content block. ---",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-script-block",patterns:[{include:"#content-embedded-script"}]},"concise-script-line":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise script content line.",end:"$",name:"meta.section.marko-script-line",patterns:[{include:"#content-embedded-script"}]},"concise-style-block":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.css",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style"}]},"concise-style-block-less":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.less",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style-less"}]},"concise-style-block-scss":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{2:{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.scss",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{1:{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style-scss"}]},"concise-style-line":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.css",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style"}]},"concise-style-line-less":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.less",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style-less"}]},"concise-style-line-scss":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{1:{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.scss",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style-scss"}]},"content-concise-mode":{comment:"Concise mode content block.",name:"meta.marko-concise-content",patterns:[{include:"#scriptlet"},{include:"#javascript-comments"},{include:"#html-comments"},{include:"#concise-html-block"},{include:"#concise-html-line"},{include:"#tag-html"},{comment:"A concise html tag.",patterns:[{begin:"^(\\s*)(?=style\\.less\\b)",comment:"Concise style tag less",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block-less"},{include:"#concise-style-line-less"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=style\\.scss\\b)",comment:"Concise style tag scss",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block-scss"},{include:"#concise-style-line-scss"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=style\\b)",comment:"Concise style tag",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block"},{include:"#concise-style-line"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=script\\b)",comment:"Concise script tag",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-script-block"},{include:"#concise-script-line"}],while:"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=[a-zA-Z0-9_$@])",comment:"Normal concise tag",patterns:[{include:"#concise-open-tag-content"},{include:"#content-concise-mode"}],while:"(?=^\\1\\s+(\\S|$))"}]},{include:"#invalid"}]},"content-embedded-script":{name:"meta.embedded.js",patterns:[{include:"#placeholder"},{include:"source.js"}]},"content-embedded-style":{name:"meta.embedded.css",patterns:[{include:"#placeholder"},{include:"source.css"}]},"content-embedded-style-less":{name:"meta.embedded.css.less",patterns:[{include:"#placeholder"},{include:"source.css.less"}]},"content-embedded-style-scss":{name:"meta.embedded.css.scss",patterns:[{include:"#placeholder"},{include:"source.css.scss"}]},"content-html-mode":{comment:"HTML mode content block.",patterns:[{include:"#scriptlet"},{include:"#html-comments"},{include:"#tag-html"},{match:"\\\\.",name:"string"},{include:"#placeholder"},{match:".+?",name:"string"}]},"html-args-or-method":{patterns:[{include:"#javascript-args"},{begin:"(?<=\\))\\s*(?=\\{)",comment:"Attribute method shorthand following parens",contentName:"source.js",end:"(?<=\\})",name:"meta.embedded.js",patterns:[{include:"source.js"}]}]},"html-comments":{patterns:[{begin:"\\s*(<!(--)?)",beginCaptures:{1:{name:"punctuation.definition.comment.marko"}},comment:"HTML comments, doctypes & cdata",end:"\\2>",endCaptures:{0:{name:"punctuation.definition.comment.marko"}},name:"comment.block.marko"},{begin:"\\s*(<html-comment>)",beginCaptures:{1:{name:"punctuation.definition.comment.marko"}},comment:"Preserved HTML comment tag",end:"</html-comment>",endCaptures:{0:{name:"punctuation.definition.comment.marko"}},name:"comment.block.marko"}]},invalid:{match:"[^\\s]",name:"invalid.illegal.character-not-allowed-here.marko"},"javascript-args":{begin:"(?=\\()",comment:"Javascript style arguments",contentName:"source.js",end:"(?<=\\))",name:"meta.embedded.js",patterns:[{include:"source.js"}]},"javascript-comment-line":{captures:{0:{patterns:[{include:"source.js"}]}},comment:"JavaScript // single line comment",contentName:"source.js",match:"\\s*//.*$"},"javascript-comment-multiline":{begin:"\\s*(?=/\\*)",comment:"JavaScript /* block comment */",contentName:"source.js",end:"(?<=\\*/)",patterns:[{include:"source.js"}]},"javascript-comments":{patterns:[{include:"#javascript-comment-multiline"},{include:"#javascript-comment-line"}]},"javascript-enclosed":{comment:"Matches JavaScript content and ensures enclosed blocks are matched.",patterns:[{include:"#javascript-comments"},{include:"#javascript-args"},{begin:"(?={)",end:"(?<=})",patterns:[{include:"source.js"}]},{begin:"(?=\\[)",end:"(?<=])",patterns:[{include:"source.js"}]},{begin:'(?=")',end:'(?<=")',patterns:[{include:"source.js"}]},{begin:"(?=')",end:"(?<=')",patterns:[{include:"source.js"}]},{begin:"(?=`)",end:"(?<=`)",patterns:[{include:"source.js"}]},{begin:"/(?!<[\\]})A-Z0-9.<%]\\s*/)(?!/?>|$)",captures:{0:{name:"string.regexp.js"}},contentName:"source.js",end:"/[gimsuy]*",patterns:[{include:"source.js#regexp"},{include:"source.js"}]},{begin:"(?x)\\s*(?:\n(?:\\b(?:new|typeof|instanceof|in)\\b)|\n\\&\\&|\\|\\||\n[\\^|&]|\n[!=]=|[!=]==|<|<[=<]|=>|\n[?:]|\n[-+*%](?!-)\n)",captures:{0:{patterns:[{include:"source.js"}]}},end:"(?=\\S)"}]},"javascript-expression":{patterns:[{include:"#javascript-enclosed"},{captures:{0:{patterns:[{include:"source.js"}]}},comment:"Match identifiers and member expressions",match:"[0-9a-zA-Z$_.]+"}]},"javascript-statement":{patterns:[{include:"#javascript-enclosed"},{include:"source.js"}]},"open-tag-content":{patterns:[{include:"#tag-before-attrs"},{begin:"(?= )",comment:"Attributes begin after the first space within the tag name",end:"(?=/?>)",patterns:[{include:"#attrs"}]}]},placeholder:{begin:"\\$!?{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},comment:"${ } placeholder",contentName:"source.js",end:"}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"source.js"}]},scriptlet:{begin:"^\\s*(\\$)\\s+",beginCaptures:{1:{name:"keyword.control.scriptlet.marko"}},comment:"An inline JavaScript scriptlet.",contentName:"source.js",end:"$",name:"meta.embedded.js",patterns:[{include:"#javascript-statement"}]},"tag-before-attrs":{comment:"Everything in a tag before the attributes content",patterns:[{include:"#tag-name"},{comment:"Shorthand class or ID attribute",match:"[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*",name:"entity.other.attribute-name.marko"},{begin:"/(?!/)",beginCaptures:{0:{name:"punctuation.separator.key-value.marko"}},comment:"Variable for a tag",contentName:"source.js",end:"(?=:?\\=|\\s|>|$|\\||\\(|/)",name:"meta.embedded.js",patterns:[{comment:"Match identifiers",match:"[a-zA-Z$_][0-9a-zA-Z$_]*",name:"variable.other.constant.object.js"},{include:"source.js#object-binding-pattern"},{include:"source.js#array-binding-pattern"},{include:"source.js#var-single-variable"},{include:"#javascript-expression"}]},{applyEndPatternLast:1,begin:"\\s*(:?=)\\s*",beginCaptures:{1:{patterns:[{include:"source.js"}]}},comment:"Default attribute value",contentName:"source.js",end:"(?=.|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-expression"}]},{begin:"\\|",beginCaptures:{0:{name:"punctuation.section.scope.begin.marko"}},comment:"Parameters for a tag",end:"\\|",endCaptures:{0:{name:"punctuation.section.scope.end.marko"}},patterns:[{include:"source.js#function-parameters-body"},{include:"source.js"}]},{include:"#html-args-or-method"}]},"tag-html":{comment:"Matches an HTML tag and its contents",patterns:[{begin:"\\s*(<)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.end.marko"}},comment:"HTML void elements",end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"}]},{begin:"\\s*(<)(?=style\\.less\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag with less",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.less",end:"\\s*(</)(style)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style-less"}]}]},{begin:"\\s*(<)(?=style\\.scss\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag with scss",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.less",end:"\\s*(</)(style)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style-scss"}]}]},{begin:"\\s*(<)(?=style\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.css",end:"\\s*(</)(style)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style"}]}]},{begin:"\\s*(<)(?=script\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML script tag",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Script body content",contentName:"source.js",end:"\\s*(</)(script)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-script"}]}]},{begin:"\\s*(<)(?=[a-zA-Z0-9_$@])",beginCaptures:{1:{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML normal tag",end:"/>|(?<=\\>)",endCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.marko"}},comment:"Body content",end:"\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.marko"},2:{patterns:[{include:"#tag-name"}]},3:{patterns:[{include:"#invalid"}]},4:{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-html-mode"}]}]}]},"tag-name":{patterns:[{begin:"\\${",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.js"}},comment:"Dynamic tag.",end:"}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"source.js"}]},{captures:{1:{name:"entity.name.tag.marko"},2:{name:"storage.type.marko.css"},3:{patterns:[{comment:"Core tag.",match:"(attrs|return|import)(?=\\b)",name:"support.type.builtin.marko"},{comment:"Core tag.",match:"(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\b)",name:"support.function.marko"},{comment:"Attribute tag.",match:"@.+",name:"entity.other.attribute-name.marko"},{comment:"Native or userland tag.",match:".+",name:"entity.name.tag.marko"}]}},match:"(style)\\.([a-zA-Z0-9$_-]+(?:\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)"}]}},c="text.marko",o={displayName:e,fileTypes:n,name:t,patterns:s,repository:a,scopeName:c};export{o as default,e as displayName,n as fileTypes,t as name,s as patterns,a as repository,c as scopeName}; diff --git a/lib/dist/grammar/matlab.mjs b/lib/dist/grammar/matlab.mjs new file mode 100644 index 0000000..1f3abe0 --- /dev/null +++ b/lib/dist/grammar/matlab.mjs @@ -0,0 +1 @@ +var e="MATLAB",t=["m"],a="matlab",n=[{comment:"This and #all_after_command_dual are split out so #command_dual can be excluded in things like (), {}, []",include:"#all_before_command_dual"},{include:"#command_dual"},{include:"#all_after_command_dual"}],s={all_after_command_dual:{patterns:[{include:"#string"},{include:"#line_continuation"},{include:"#comments"},{include:"#conjugate_transpose"},{include:"#transpose"},{include:"#constants"},{include:"#variables"},{include:"#numbers"},{include:"#operators"}]},all_before_command_dual:{patterns:[{include:"#classdef"},{include:"#function"},{include:"#blocks"},{include:"#control_statements"},{include:"#global_persistent"},{include:"#parens"},{include:"#square_brackets"},{include:"#indexing_curly_brackets"},{include:"#curly_brackets"}]},blocks:{patterns:[{begin:"\\s*(?:^|[\\s,;])(for)\\b",beginCaptures:{1:{name:"keyword.control.for.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.for.matlab"}},name:"meta.for.matlab",patterns:[{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(if)\\b",beginCaptures:{1:{name:"keyword.control.if.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.if.matlab"},2:{patterns:[{include:"$self"}]}},name:"meta.if.matlab",patterns:[{captures:{2:{name:"keyword.control.elseif.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(elseif)\\b(.*)$\\n?",name:"meta.elseif.matlab"},{captures:{2:{name:"keyword.control.else.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(else)\\b(.*)?$\\n?",name:"meta.else.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(parfor)\\b",beginCaptures:{1:{name:"keyword.control.for.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.for.matlab"}},name:"meta.parfor.matlab",patterns:[{begin:"\\G(?!$)",end:"$\\n?",name:"meta.parfor-quantity.matlab",patterns:[{include:"$self"}]},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(spmd)\\b",beginCaptures:{1:{name:"keyword.control.spmd.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.spmd.matlab"}},name:"meta.spmd.matlab",patterns:[{begin:"\\G(?!$)",end:"$\\n?",name:"meta.spmd-statement.matlab",patterns:[{include:"$self"}]},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(switch)\\b",beginCaptures:{1:{name:"keyword.control.switch.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.switch.matlab"}},name:"meta.switch.matlab",patterns:[{captures:{2:{name:"keyword.control.case.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(case)\\b(.*)$\\n?",name:"meta.case.matlab"},{captures:{2:{name:"keyword.control.otherwise.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(otherwise)\\b(.*)?$\\n?",name:"meta.otherwise.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(try)\\b",beginCaptures:{1:{name:"keyword.control.try.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.try.matlab"}},name:"meta.try.matlab",patterns:[{captures:{2:{name:"keyword.control.catch.matlab"},3:{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(catch)\\b(.*)?$\\n?",name:"meta.catch.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(while)\\b",beginCaptures:{1:{name:"keyword.control.while.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.while.matlab"}},name:"meta.while.matlab",patterns:[{include:"$self"}]}]},braced_validator_list:{begin:"\\s*({)\\s*",beginCaptures:{1:{name:"storage.type.matlab"}},comment:"Validator functions. Treated as a recursive group to permit nested brackets, quotes, etc.",end:"(})",endCaptures:{1:{name:"storage.type.matlab"}},patterns:[{include:"#braced_validator_list"},{include:"#validator_strings"},{include:"#line_continuation"},{captures:{1:{name:"storage.type.matlab"}},match:"([^{}}'\"\\.]+)"},{match:"\\.",name:"storage.type.matlab"}]},classdef:{patterns:[{begin:"(?x)\n(^\\s*)\n(classdef)\n\\b\\s*\n(.*)\n",beginCaptures:{2:{name:"storage.type.class.matlab"},3:{patterns:[{captures:{1:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.class.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{include:"#string"}]}]},2:{name:"meta.class-declaration.matlab"},3:{name:"entity.name.section.class.matlab"},4:{name:"keyword.operator.other.matlab"},5:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*",name:"entity.other.inherited-class.matlab"},{match:"&",name:"keyword.operator.other.matlab"}]},6:{patterns:[{include:"$self"}]}},match:"(?x)\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\t \\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\t\t\t# Class name\n\t\t\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t# Optional inheritance\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t(<)\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t([^%]*)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\\s*($|(?=(%|...)).*)\n\t\t\t\t\t\t\t\t\t"}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.class.matlab"}},name:"meta.class.matlab",patterns:[{begin:"(?x)\n(^\\s*)\n(properties)\\b([^%]*)\n\\s*\n(\n\\( [^)]* \\)\n)?\n\\s*($|(?=%))\n",beginCaptures:{2:{name:"keyword.control.properties.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.properties.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.properties.matlab"}},name:"meta.properties.matlab",patterns:[{include:"#validators"},{include:"$self"}]},{begin:"(?x)\n(^\\s*)\n(methods)\\b([^%]*)\n\\s*\n(\n\\( [^)]* \\)\n)?\n\\s*($|(?=%))\n",beginCaptures:{2:{name:"keyword.control.methods.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.methods.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.methods.matlab"}},name:"meta.methods.matlab",patterns:[{include:"$self"}]},{begin:"(?x)\n(^\\s*)\n(events)\\b([^%]*)\n\\s*\n(\n\\( [^)]* \\)\n)?\n\\s*($|(?=%))\n",beginCaptures:{2:{name:"keyword.control.events.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.events.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.events.matlab"}},name:"meta.events.matlab",patterns:[{include:"$self"}]},{begin:"(?x)\n(^\\s*)\n(enumeration)\\b([^%]*)\n\\s*($|(?=%))\n",beginCaptures:{2:{name:"keyword.control.enumeration.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.enumeration.matlab"}},name:"meta.enumeration.matlab",patterns:[{include:"$self"}]},{include:"$self"}]}]},command_dual:{captures:{1:{name:"string.interpolated.matlab"},2:{name:"variable.other.command.matlab"},28:{name:"comment.line.percentage.matlab"}},comment:" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 22 23 24 25 26 27 28",match:"^\\s*((?# A> )([b-df-hk-moq-zA-HJ-MO-Z]\\w*|a|an|a([A-Za-mo-z0-9_]\\w*|n[A-Za-rt-z0-9_]\\w*|ns\\w+)|e|ep|e([A-Za-oq-z0-9_]\\w*|p[A-Za-rt-z0-9_]\\w*|ps\\w+)|in|i([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|I|In|I([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|j\\w+|N|Na|N([A-Zb-z0-9_]\\w*|a[A-MO-Za-z0-9_]\\w*|aN\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\w*|a([A-Za-mo-qs-z0-9_]\\w*|n\\w+|r([A-Za-fh-z0-9_]\\w*|g([A-Za-hj-nq-z0-9_]\\w*|i([A-Za-mo-z0-9_]\\w*|n\\w+)|o([A-Za-tv-z0-9_]\\w*|u([A-Za-su-z]\\w*|t\\w+))))))|p|p[A-Za-hj-z0-9_]\\w*|pi\\w+)(?# <A )\\s+(((?# B> )([^\\s;,%()=.{&|~<>:+\\-*/\\\\@^'\"]|(?=')|(?=\"))(?# <B )|(?# C> )(\\.\\^|\\.\\*|\\./|\\.\\\\|\\.'|\\.\\(|&&|==|\\|\\||&(?=[^&])|\\|(?=[^\\|])|~=|<=|>=|~(?!=)|<(?!=)|>(?!=)|:|\\+|-|\\*|/|\\\\|@|\\^)(?# <C )(?# D> )([^\\s]|\\s*(?=%)|\\s+$|\\s+(,|;|\\)|}|\\]|&|\\||<|>|=|:|\\*|/|\\\\|\\^|@|(\\.[^\\d.]|\\.\\.[^.])))(?# <D )|(?# E> )(\\.[^^*/\\\\'(\\sA-Za-z])(?# <E ))(?# F> )([^%]|'[^']*'|\"[^\"]*\")*(?# <F )|(?# X> )(\\.(?=\\s)|\\.[A-Za-z]|(?={))(?# <X )(?# Y> )([^(=\\'\"%]|==|'[^']*'|\"[^\"]*\"|\\(|\\([^)%]*\\)|\\[|\\[[^\\]%]*\\]|{|{[^}%]*})*(\\.\\.\\.[^%]*)?((?=%)|$)(?# <Y )))(%.*)?$"},comment_block:{begin:"(^[\\s]*)%\\{[^\\n\\S]*+\\n",beginCaptures:{1:{name:"punctuation.definition.comment.matlab"}},end:"^[\\s]*%\\}[^\\n\\S]*+(?:\\n|$)",name:"comment.block.percentage.matlab",patterns:[{include:"#comment_block"},{match:"^[^\\n]*\\n"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=%%\\s)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.matlab"}},end:"(?!\\G)",patterns:[{begin:"%%",beginCaptures:{0:{name:"punctuation.definition.comment.matlab"}},end:"\\n",name:"comment.line.double-percentage.matlab",patterns:[{begin:"\\G[^\\S\\n]*(?![\\n\\s])",contentName:"meta.cell.matlab",end:"(?=\\n)"}]}]},{include:"#comment_block"},{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.matlab"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{0:{name:"punctuation.definition.comment.matlab"}},end:"\\n",name:"comment.line.percentage.matlab"}]}]},conjugate_transpose:{match:"((?<=[^\\s])|(?<=\\])|(?<=\\))|(?<=\\}))'",name:"keyword.operator.transpose.matlab"},constants:{comment:"MATLAB Constants",match:"(?<!\\.)\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\b",name:"constant.language.matlab"},control_statements:{captures:{1:{name:"keyword.control.matlab"}},match:"\\s*(?:^|[\\s,;])(break|continue|return)\\b",name:"meta.control.matlab"},curly_brackets:{begin:"\\{",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"\\}",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{include:"#end_in_parens"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},end_in_parens:{comment:"end as operator symbol",match:"\\bend\\b",name:"keyword.operator.symbols.matlab"},function:{patterns:[{begin:"(?x)\n(^\\s*)\n(function)\n\\s+\n(?:\n(?:\n(\\[) ([^\\]]*) (\\])\n| ([a-zA-Z][a-zA-Z0-9_]*)\n)\n\\s* = \\s*\n)?\n([a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*)\n\\s*\n",beginCaptures:{2:{name:"storage.type.function.matlab"},3:{name:"punctuation.definition.arguments.begin.matlab"},4:{patterns:[{match:"\\w+",name:"variable.parameter.output.matlab"}]},5:{name:"punctuation.definition.arguments.end.matlab"},6:{name:"variable.parameter.output.function.matlab"},7:{name:"entity.name.function.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b(\\s*\\n)?",endCaptures:{1:{name:"keyword.control.end.function.matlab"}},name:"meta.function.matlab",patterns:[{begin:"\\G\\(",end:"\\)",name:"meta.arguments.function.matlab",patterns:[{include:"#line_continuation"},{match:"\\w+",name:"variable.parameter.input.matlab"}]},{begin:"(?x)\n(^\\s*)\n(arguments)\\b([^%]*)\n\\s*\n(\n\\( [^)]* \\)\n)?\n\\s*($|(?=%))\n",beginCaptures:{2:{name:"keyword.control.arguments.matlab"},3:{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.arguments.matlab"}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{1:{name:"keyword.control.end.arguments.matlab"}},name:"meta.arguments.matlab",patterns:[{include:"#validators"},{include:"$self"}]},{include:"$self"}]}]},global_persistent:{captures:{1:{name:"keyword.control.globalpersistent.matlab"}},match:"^\\s*(global|persistent)\\b",name:"meta.globalpersistent.matlab"},indexing_curly_brackets:{Comment:"Match identifier{idx, idx, } and stop at newline without ... This helps with partially written code like x{idx ",begin:"([a-zA-Z][a-zA-Z0-9_\\.]*\\s*)\\{",beginCaptures:{1:{patterns:[{include:"$self"}]}},comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"(\\}|(?<!\\.\\.\\.).\\n)",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{include:"#end_in_parens"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},line_continuation:{captures:{1:{name:"keyword.operator.symbols.matlab"},2:{name:"comment.line.continuation.matlab"}},comment:"Line continuations",match:"(\\.\\.\\.)(.*)$",name:"meta.linecontinuation.matlab"},numbers:{comment:"Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j",match:"(?<=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9&&[^\\.]])*(i|j)?\\b",name:"constant.numeric.matlab"},operators:{comment:"Operator symbols",match:"(?<=\\s)(==|~=|>|>=|<|<=|&|&&|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)(?=\\s)",name:"keyword.operator.symbols.matlab"},parens:{begin:"\\(",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"(\\)|(?<!\\.\\.\\.).\\n)",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},square_brackets:{begin:"\\[",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",end:"\\]",patterns:[{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},string:{patterns:[{captures:{1:{name:"string.interpolated.matlab"},2:{name:"punctuation.definition.string.begin.matlab"}},comment:"Shell command",match:"^\\s*((!).*$\\n?)"},{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'",beginCaptures:{0:{name:"punctuation.definition.string.begin.matlab"}},comment:"Character vector literal (single-quoted)",end:"'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))",endCaptures:{0:{name:"punctuation.definition.string.end.matlab"}},name:"string.quoted.single.matlab",patterns:[{match:"''",name:"constant.character.escape.matlab"},{match:"'(?=.)",name:"invalid.illegal.unescaped-quote.matlab"},{comment:"Operator symbols",match:"((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))",name:"constant.character.escape.matlab"}]},{begin:'((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.matlab"}},comment:"String literal (double-quoted)",end:'"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))',endCaptures:{0:{name:"punctuation.definition.string.end.matlab"}},name:"string.quoted.double.matlab",patterns:[{match:'""',name:"constant.character.escape.matlab"},{match:'"(?=.)',name:"invalid.illegal.unescaped-quote.matlab"}]}]},transpose:{match:"\\.'",name:"keyword.operator.transpose.matlab"},validator_strings:{comment:"Simplified string patterns nested inside validator functions which don't change scopes of matches.",patterns:[{patterns:[{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'",comment:"Character vector literal (single-quoted)",end:"'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))",name:"storage.type.matlab",patterns:[{match:"''"},{match:"'(?=.)"},{match:"([^']+)"}]},{begin:'((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)"',comment:"String literal (double-quoted)",end:'"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))',name:"storage.type.matlab",patterns:[{match:'""'},{match:'"(?=.)'},{match:'[^"]+'}]}]}]},validators:{begin:"\\s*[;]?\\s*([a-zA-Z][a-zA-Z0-9_\\.\\?]*)",comment:"Property and argument validation. Match an identifier allowing . and ?.",end:"([;\\n%=].*)",endCaptures:{1:{patterns:[{captures:{1:{patterns:[{include:"$self"}]}},comment:"Match comments",match:"([%].*)"},{captures:{1:{patterns:[{include:"$self"}]}},comment:"Handle things like arg = val; nextArg",match:"(=[^;]*)"},{captures:{1:{patterns:[{include:"#validators"}]}},comment:"End of property/argument patterns which start a new property/argument. Look for beginning of identifier after semicolon. Otherwise treat as regular code.",match:"([\\n;]\\s*[a-zA-Z].*)"},{include:"$self"}]}},patterns:[{include:"#line_continuation"},{comment:"Size declaration",match:"\\s*(\\([^\\)]*\\))",name:"storage.type.matlab"},{comment:"Type declaration",match:"([a-zA-Z][a-zA-Z0-9_\\.]*)",name:"storage.type.matlab"},{include:"#braced_validator_list"}]},variables:{comment:"MATLAB variables",match:"(?<!\\.)\\b(nargin|nargout|varargin|varargout)\\b",name:"variable.other.function.matlab"}},m="source.matlab",r={displayName:e,fileTypes:t,name:a,patterns:n,repository:s,scopeName:m};export{r as default,e as displayName,t as fileTypes,a as name,n as patterns,s as repository,m as scopeName}; diff --git a/lib/dist/grammar/mdc.mjs b/lib/dist/grammar/mdc.mjs new file mode 100644 index 0000000..1bc6918 --- /dev/null +++ b/lib/dist/grammar/mdc.mjs @@ -0,0 +1 @@ +var e="MDC",r="L:text.html.markdown",t="mdc",a=[{include:"#component_block"},{include:"#inline"}],n={attribute:{patterns:[{captures:{2:{name:"entity.other.attribute-name.html"},3:{patterns:[{include:"#attribute-interior"}]}},match:"(?x)\n(\n([^=><\\s]*)\n(\n=[\"]([^\"]*)([\"])|[']([^']*)(['])\n| =[^\\s'\"}]*\n)?\n\\s*\n)"}]},"attribute-interior":{patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.html"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.html"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]},{match:"=",name:"invalid.illegal.unexpected-equals-sign.html"}]}]},attributes:{captures:{1:{name:"punctuation.definition.tag.start.component"},3:{patterns:[{include:"#attribute"}]},4:{name:"punctuation.definition.tag.end.component"}},match:"(?x)(\n({)\n([^{]*)\n(})\n)",name:"attributes.mdc"},block:{patterns:[{include:"#component_block"},{include:"text.html.markdown#separator"},{include:"#heading"},{include:"#blockquote"},{include:"#lists"},{include:"text.html.markdown#fenced_code_block"},{include:"text.html.markdown#link-def"},{include:"text.html.markdown#html"},{include:"#paragraph"}]},blockquote:{begin:"(^|\\G)[ ]*(>) ?",captures:{2:{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],while:"(^|\\G)\\s*(>) ?"},component_block:{begin:"(?x)\n(^|\\G)(\\s*)\n(:{2,})\n(?i:\n(\\w[\\w\\d-]+)\n(\n\\s*\n| \\s*({[^{]*})\n)\n$\n)",beginCaptures:{3:{name:"punctuation.definition.tag.start.mdc"},4:{name:"entity.name.tag.mdc"},5:{patterns:[{include:"#attributes"}]}},end:"(^|\\G)(\\2)(\\3)\\s*$",endCaptures:{3:{name:"punctuation.definition.tag.end.mdc"}},name:"block.component.mdc",patterns:[{captures:{2:{name:"punctuation.definition.tag.end.mdc"}},match:"(^|\\G)\\s*([:]{2,})$"},{include:"#content"}]},component_inline:{captures:{2:{name:"punctuation.definition.tag.start.component"},3:{name:"entity.name.tag.component"},5:{patterns:[{include:"#attributes"}]},6:{patterns:[{include:"#span"}]},7:{patterns:[{include:"#span"}]},8:{patterns:[{include:"#attributes"}]}},match:"(?x)\n(^|\\G|\\s+)\n(:)\n(?i:\n(\\w[\\w\\d-]*)\n)\n(\n({[^}]*})\n(\\[[^\\]]*\\])?\n\n| (\\[[^\\]]*\\])\n({[^}]*})?\n)?\n\\s",name:"inline.component.mdc"},content:{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.block.mdc",patterns:[{begin:"(^|\\G)(\\s*)(-{3})(\\s*)$",end:"(^|\\G)(\\s*(-{3})(\\s*)$)",patterns:[{include:"source.yaml"}]},{captures:{2:{name:"entity.other.attribute-name.html"},3:{name:"comment.block.html"}},match:"^(\\s*)(#[\\w\\-\\_]*)\\s*(\x3c!--(.*)--\x3e)?$"},{include:"#block"}],while:"(^|\\G)(?!\\s*([:]{2,})\\s*$)"},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},912:{name:"punctuation.definition.entity.html"}},match:"(?x)\n(&)\t(?=[a-zA-Z])\n(\n(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n| (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n| (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n| (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n| (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n| (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n| (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n| (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n| (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n| (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n| (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n| (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n| (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n| (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n| (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n| (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n| (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n| (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n| (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n| (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n| (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n| (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n| (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n| (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n| (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n| (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n)\n(;)\n",name:"constant.character.entity.named.$2.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.html"},{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.html"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.html"}]},heading:{captures:{1:{patterns:[{captures:{1:{name:"punctuation.definition.heading.markdown"},2:{name:"entity.name.section.markdown",patterns:[{include:"text.html.markdown#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:"text.html.markdown#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:"text.html.markdown#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:"text.html.markdown#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:"text.html.markdown#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:"text.html.markdown#inline"},{include:"text.html.derivative"}]},3:{name:"punctuation.definition.heading.markdown"}},match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown"}]}},match:"(?:^|\\G)[ ]*(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",name:"markup.heading.markdown",patterns:[{include:"text.html.markdown#inline"}]},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},inline:{patterns:[{include:"#component_inline"},{include:"#span"},{include:"#attributes"}]},lists:{patterns:[{begin:"(^|\\G)([ ]*)([*+-])([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"text.html.markdown#list_paragraph"}],while:"((^|\\G)([ ]*|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]*)([0-9]+\\.)([ \\t])",beginCaptures:{3:{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"text.html.markdown#list_paragraph"}],while:"((^|\\G)([ ]*|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]*(?=\\S)",name:"meta.paragraph.markdown",patterns:[{include:"text.html.markdown#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],while:"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))"},span:{captures:{1:{name:"punctuation.definition.tag.start.component"},2:{name:"string.other.link.description.title.markdown"},3:{name:"punctuation.definition.tag.end.component"},4:{patterns:[{include:"#attributes"}]}},match:"(?x)\n(\\[)\n([^]]*)\n(\\])\n(\n({)\n([^{]*)\n(})\n)?\n\\s",name:"span.component.mdc"}},i="text.markdown.mdc",o={displayName:"MDC",injectionSelector:r,name:"mdc",patterns:a,repository:n,scopeName:i};export{o as default,e as displayName,r as injectionSelector,t as name,a as patterns,n as repository,i as scopeName}; diff --git a/lib/dist/grammar/mdx.mjs b/lib/dist/grammar/mdx.mjs new file mode 100644 index 0000000..635591d --- /dev/null +++ b/lib/dist/grammar/mdx.mjs @@ -0,0 +1 @@ +var e="MDX",n=["mdx"],t="mdx",a=[{include:"#markdown-frontmatter"},{include:"#markdown-sections"}],r={"commonmark-attention":{patterns:[{match:"(?<=\\S)\\*{3,}|\\*{3,}(?=\\S)",name:"string.other.strong.emphasis.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_{3,}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{3,}|(?<![\\p{L}\\p{N}]|\\p{P})_{3,}(?!\\s)",name:"string.other.strong.emphasis.underscore.mdx"},{match:"(?<=\\S)\\*{2}|\\*{2}(?=\\S)",name:"string.other.strong.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_{2}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{2}|(?<![\\p{L}\\p{N}]|\\p{P})_{2}(?!\\s)",name:"string.other.strong.underscore.mdx"},{match:"(?<=\\S)\\*|\\*(?=\\S)",name:"string.other.emphasis.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_(?![\\p{L}\\p{N}])|(?<=\\p{P})_|(?<![\\p{L}\\p{N}]|\\p{P})_(?!\\s)",name:"string.other.emphasis.underscore.mdx"}]},"commonmark-block-quote":{begin:"(?:^|\\G)[\\t ]*(>)[ ]?",beginCaptures:{0:{name:"markup.quote.mdx"},1:{name:"punctuation.definition.quote.begin.mdx"}},name:"markup.quote.mdx",patterns:[{include:"#markdown-sections"}],while:"(>)[ ]?",whileCaptures:{0:{name:"markup.quote.mdx"},1:{name:"punctuation.definition.quote.begin.mdx"}}},"commonmark-character-escape":{match:"\\\\(?:[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])",name:"constant.language.character-escape.mdx"},"commonmark-character-reference":{patterns:[{include:"#whatwg-html-data-character-reference-named-terminated"},{captures:{1:{name:"punctuation.definition.character-reference.begin.html"},2:{name:"punctuation.definition.character-reference.numeric.html"},3:{name:"punctuation.definition.character-reference.numeric.hexadecimal.html"},4:{name:"constant.numeric.integer.hexadecimal.html"},5:{name:"punctuation.definition.character-reference.end.html"}},match:"(&)(#)([Xx])([0-9A-Fa-f]{1,6})(;)",name:"constant.language.character-reference.numeric.hexadecimal.html"},{captures:{1:{name:"punctuation.definition.character-reference.begin.html"},2:{name:"punctuation.definition.character-reference.numeric.html"},3:{name:"constant.numeric.integer.decimal.html"},4:{name:"punctuation.definition.character-reference.end.html"}},match:"(&)(#)([0-9]{1,7})(;)",name:"constant.language.character-reference.numeric.decimal.html"}]},"commonmark-code-fenced":{patterns:[{include:"#commonmark-code-fenced-apib"},{include:"#commonmark-code-fenced-asciidoc"},{include:"#commonmark-code-fenced-c"},{include:"#commonmark-code-fenced-clojure"},{include:"#commonmark-code-fenced-coffee"},{include:"#commonmark-code-fenced-console"},{include:"#commonmark-code-fenced-cpp"},{include:"#commonmark-code-fenced-cs"},{include:"#commonmark-code-fenced-css"},{include:"#commonmark-code-fenced-diff"},{include:"#commonmark-code-fenced-dockerfile"},{include:"#commonmark-code-fenced-elixir"},{include:"#commonmark-code-fenced-elm"},{include:"#commonmark-code-fenced-erlang"},{include:"#commonmark-code-fenced-gitconfig"},{include:"#commonmark-code-fenced-go"},{include:"#commonmark-code-fenced-graphql"},{include:"#commonmark-code-fenced-haskell"},{include:"#commonmark-code-fenced-html"},{include:"#commonmark-code-fenced-ini"},{include:"#commonmark-code-fenced-java"},{include:"#commonmark-code-fenced-js"},{include:"#commonmark-code-fenced-json"},{include:"#commonmark-code-fenced-julia"},{include:"#commonmark-code-fenced-kotlin"},{include:"#commonmark-code-fenced-less"},{include:"#commonmark-code-fenced-less"},{include:"#commonmark-code-fenced-lua"},{include:"#commonmark-code-fenced-makefile"},{include:"#commonmark-code-fenced-md"},{include:"#commonmark-code-fenced-mdx"},{include:"#commonmark-code-fenced-objc"},{include:"#commonmark-code-fenced-perl"},{include:"#commonmark-code-fenced-php"},{include:"#commonmark-code-fenced-php"},{include:"#commonmark-code-fenced-python"},{include:"#commonmark-code-fenced-r"},{include:"#commonmark-code-fenced-raku"},{include:"#commonmark-code-fenced-ruby"},{include:"#commonmark-code-fenced-rust"},{include:"#commonmark-code-fenced-scala"},{include:"#commonmark-code-fenced-scss"},{include:"#commonmark-code-fenced-shell"},{include:"#commonmark-code-fenced-shell-session"},{include:"#commonmark-code-fenced-sql"},{include:"#commonmark-code-fenced-svg"},{include:"#commonmark-code-fenced-swift"},{include:"#commonmark-code-fenced-toml"},{include:"#commonmark-code-fenced-ts"},{include:"#commonmark-code-fenced-tsx"},{include:"#commonmark-code-fenced-vbnet"},{include:"#commonmark-code-fenced-xml"},{include:"#commonmark-code-fenced-yaml"},{include:"#commonmark-code-fenced-unknown"}]},"commonmark-code-fenced-apib":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.apib.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.apib",patterns:[{include:"text.html.markdown.source.gfm.apib"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.apib.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.apib",patterns:[{include:"text.html.markdown.source.gfm.apib"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-asciidoc":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.asciidoc.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.asciidoc",patterns:[{include:"text.html.asciidoc"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.asciidoc.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.asciidoc",patterns:[{include:"text.html.asciidoc"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-c":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.c.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.c",patterns:[{include:"source.c"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.c.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.c",patterns:[{include:"source.c"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-clojure":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.clojure.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.clojure",patterns:[{include:"source.clojure"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.clojure.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.clojure",patterns:[{include:"source.clojure"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-coffee":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.coffee.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.coffee",patterns:[{include:"source.coffee"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.coffee.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.coffee",patterns:[{include:"source.coffee"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-console":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.console.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.console",patterns:[{include:"text.python.console"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.console.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.console",patterns:[{include:"text.python.console"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-cpp":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cpp.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.cpp",patterns:[{include:"source.c++"},{include:"source.cpp"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cpp.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.cpp",patterns:[{include:"source.c++"},{include:"source.cpp"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-cs":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|cs\\.pp|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cs.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.cs",patterns:[{include:"source.cs"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|cs\\.pp|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cs.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.cs",patterns:[{include:"source.cs"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-css":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.css.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.css",patterns:[{include:"source.css"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.css.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.css",patterns:[{include:"source.css"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-diff":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.diff.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.diff",patterns:[{include:"source.diff"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.diff.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.diff",patterns:[{include:"source.diff"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-dockerfile":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.dockerfile.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.dockerfile",patterns:[{include:"source.dockerfile"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.dockerfile.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.dockerfile",patterns:[{include:"source.dockerfile"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-elixir":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elixir.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.elixir",patterns:[{include:"source.elixir"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elixir.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.elixir",patterns:[{include:"source.elixir"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-elm":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elm.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.elm",patterns:[{include:"source.elm"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elm.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.elm",patterns:[{include:"source.elm"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-erlang":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.erlang.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.erlang",patterns:[{include:"source.erlang"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.erlang.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.erlang",patterns:[{include:"source.erlang"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-gitconfig":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.gitconfig.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.gitconfig",patterns:[{include:"source.gitconfig"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.gitconfig.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.gitconfig",patterns:[{include:"source.gitconfig"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-go":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.go.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.go",patterns:[{include:"source.go"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.go.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.go",patterns:[{include:"source.go"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-graphql":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.graphql.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.graphql",patterns:[{include:"source.graphql"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.graphql.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.graphql",patterns:[{include:"source.graphql"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-haskell":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.haskell.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.haskell",patterns:[{include:"source.haskell"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.haskell.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.haskell",patterns:[{include:"source.haskell"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-html":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.html.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.html",patterns:[{include:"text.html.basic"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.html.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.html",patterns:[{include:"text.html.basic"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-ini":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ini.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.ini",patterns:[{include:"source.ini"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ini.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.ini",patterns:[{include:"source.ini"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-java":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.java.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.java",patterns:[{include:"source.java"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.java.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.java",patterns:[{include:"source.java"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-js":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|code\\x2dworkspace|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcolor\\x2dscheme|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.js.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.js",patterns:[{include:"source.js"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|code\\x2dworkspace|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcolor\\x2dscheme|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.js.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.js",patterns:[{include:"source.js"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-json":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|sarif|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.json.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.json",patterns:[{include:"source.json"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|sarif|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.json.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.json",patterns:[{include:"source.json"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-julia":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.julia.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.julia",patterns:[{include:"source.julia"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.julia.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.julia",patterns:[{include:"source.julia"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-kotlin":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:gradle\\x2dkotlin\\x2ddsl|kotlin|(?:.*\\.)?(?:gradle\\.kts|kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.kotlin.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.kotlin",patterns:[{include:"source.kotlin"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:gradle\\x2dkotlin\\x2ddsl|kotlin|(?:.*\\.)?(?:gradle\\.kts|kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.kotlin.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.kotlin",patterns:[{include:"source.kotlin"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-less":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.less.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.less",patterns:[{include:"source.css.less"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.less.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.less",patterns:[{include:"source.css.less"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-lua":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.lua.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.lua",patterns:[{include:"source.lua"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.lua.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.lua",patterns:[{include:"source.lua"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-makefile":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.makefile.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.makefile",patterns:[{include:"source.makefile"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.makefile.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.makefile",patterns:[{include:"source.makefile"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-md":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.md.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.md",patterns:[{include:"text.md"},{include:"source.gfm"},{include:"text.html.markdown"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.md.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.md",patterns:[{include:"text.md"},{include:"source.gfm"},{include:"text.html.markdown"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-mdx":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.mdx.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.mdx",patterns:[{include:"source.mdx"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.mdx.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.mdx",patterns:[{include:"source.mdx"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-objc":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.objc.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.objc",patterns:[{include:"source.objc"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.objc.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.objc",patterns:[{include:"source.objc"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-perl":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.perl.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.perl",patterns:[{include:"source.perl"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.perl.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.perl",patterns:[{include:"source.perl"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-php":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.php.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.php",patterns:[{include:"text.html.php"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.php.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.php",patterns:[{include:"text.html.php"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-python":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.python.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.python",patterns:[{include:"source.python"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.python.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.python",patterns:[{include:"source.python"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-r":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.r.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.r",patterns:[{include:"source.r"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.r.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.r",patterns:[{include:"source.r"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-raku":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.raku.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.raku",patterns:[{include:"source.raku"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.raku.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.raku",patterns:[{include:"source.raku"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-ruby":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ruby.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.ruby",patterns:[{include:"source.ruby"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ruby.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.ruby",patterns:[{include:"source.ruby"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-rust":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.rust.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.rust",patterns:[{include:"source.rust"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.rust.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.rust",patterns:[{include:"source.rust"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-scala":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scala.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.scala",patterns:[{include:"source.scala"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scala.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.scala",patterns:[{include:"source.scala"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-scss":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scss.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.scss",patterns:[{include:"source.css.scss"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scss.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.scss",patterns:[{include:"source.css.scss"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-shell":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|envrc|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.shell",patterns:[{include:"source.shell"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|envrc|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.shell",patterns:[{include:"source.shell"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-shell-session":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell-session.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.shell-session",patterns:[{include:"text.shell-session"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell-session.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.shell-session",patterns:[{include:"text.shell-session"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-sql":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.sql.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.sql",patterns:[{include:"source.sql"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.sql.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.sql",patterns:[{include:"source.sql"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-svg":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.svg.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.svg",patterns:[{include:"text.xml.svg"},{include:"text.xml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.svg.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.svg",patterns:[{include:"text.xml.svg"},{include:"text.xml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-swift":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.swift.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.swift",patterns:[{include:"source.swift"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.swift.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.swift",patterns:[{include:"source.swift"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-toml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.toml.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.toml",patterns:[{include:"source.toml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.toml.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.toml",patterns:[{include:"source.toml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-ts":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ts.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.ts",patterns:[{include:"source.ts"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ts.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.ts",patterns:[{include:"source.ts"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-tsx":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.tsx.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.tsx",patterns:[{include:"source.tsx"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.tsx.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.tsx",patterns:[{include:"source.tsx"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-unknown":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?:[^\\t\\n\\r` ])+)(?:[\\t ]+((?:[^\\n\\r`])+))?)?(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.code.fenced.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.other.mdx"},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?:[^\\t\\n\\r ])+)(?:[\\t ]+((?:[^\\n\\r])+))?)?(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.code.fenced.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.other.mdx"}]},"commonmark-code-fenced-vbnet":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.vbnet.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.vbnet",patterns:[{include:"source.vbnet"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.vbnet.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.vbnet",patterns:[{include:"source.vbnet"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-xml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.xml.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.xml",patterns:[{include:"text.xml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.xml.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.xml",patterns:[{include:"text.xml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-fenced-yaml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.yaml.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.yaml",patterns:[{include:"source.yaml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{1:{name:"string.other.begin.code.fenced.mdx"},2:{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},3:{patterns:[{include:"#markdown-string"}]}},end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.yaml.mdx",patterns:[{begin:"(^|\\G)(\\s*)(.*)",contentName:"meta.embedded.yaml",patterns:[{include:"source.yaml"}],while:"(^|\\G)(?![\\t ]*([`~]{3,})[\\t ]*$)"}]}]},"commonmark-code-text":{captures:{1:{name:"string.other.begin.code.mdx"},2:{name:"markup.raw.code.mdx markup.inline.raw.code.mdx"},3:{name:"string.other.end.code.mdx"}},match:"(?<!`)(`+)(?!`)(.+?)(?<!`)(\\1)(?!`)",name:"markup.code.other.mdx"},"commonmark-definition":{captures:{1:{name:"string.other.begin.mdx"},2:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},3:{name:"string.other.end.mdx"},4:{name:"punctuation.separator.key-value.mdx"},5:{name:"string.other.begin.destination.mdx"},6:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},7:{name:"string.other.end.destination.mdx"},8:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},9:{name:"string.other.begin.mdx"},10:{name:"string.quoted.double.mdx",patterns:[{include:"#markdown-string"}]},11:{name:"string.other.end.mdx"},12:{name:"string.other.begin.mdx"},13:{name:"string.quoted.single.mdx",patterns:[{include:"#markdown-string"}]},14:{name:"string.other.end.mdx"},15:{name:"string.other.begin.mdx"},16:{name:"string.quoted.paren.mdx",patterns:[{include:"#markdown-string"}]},17:{name:"string.other.end.mdx"}},match:"(?:^|\\G)[\\t ]*(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])(:)[ \\t]*(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?$(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}",name:"meta.link.reference.def.mdx"},"commonmark-hard-break-escape":{match:"\\\\$",name:"constant.language.character-escape.line-ending.mdx"},"commonmark-hard-break-trailing":{match:"( ){2,}$",name:"carriage-return constant.language.character-escape.line-ending.mdx"},"commonmark-heading-atx":{patterns:[{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{1}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.1.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{2}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{3}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{4}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{5}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"},{captures:{1:{name:"punctuation.definition.heading.mdx"},2:{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},3:{name:"punctuation.definition.heading.mdx"}},match:"(?:^|\\G)[\\t ]*(#{6}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx"}]},"commonmark-heading-setext":{patterns:[{match:"(?:^|\\G)[\\t ]*(={1,})[ \\t]*$",name:"markup.heading.setext.1.mdx"},{match:"(?:^|\\G)[\\t ]*(-{1,})[ \\t]*$",name:"markup.heading.setext.2.mdx"}]},"commonmark-label-end":{patterns:[{captures:{1:{name:"string.other.end.mdx"},2:{name:"string.other.begin.mdx"},3:{name:"string.other.begin.destination.mdx"},4:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},5:{name:"string.other.end.destination.mdx"},6:{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},7:{name:"string.other.begin.mdx"},8:{name:"string.quoted.double.mdx",patterns:[{include:"#markdown-string"}]},9:{name:"string.other.end.mdx"},10:{name:"string.other.begin.mdx"},11:{name:"string.quoted.single.mdx",patterns:[{include:"#markdown-string"}]},12:{name:"string.other.end.mdx"},13:{name:"string.other.begin.mdx"},14:{name:"string.quoted.paren.mdx",patterns:[{include:"#markdown-string"}]},15:{name:"string.other.end.mdx"},16:{name:"string.other.end.mdx"}},match:"(\\])(\\()[\\t ]*(?:(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?)?[\\t ]*(\\))(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}"},{captures:{1:{name:"string.other.end.mdx"},2:{name:"string.other.begin.mdx"},3:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},4:{name:"string.other.end.mdx"}},match:"(\\])(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])"},{captures:{1:{name:"string.other.end.mdx"}},match:"(\\])"}]},"commonmark-label-start":{patterns:[{match:"\\!\\[(?!\\^)",name:"string.other.begin.image.mdx"},{match:"\\[",name:"string.other.begin.link.mdx"}]},"commonmark-list-item":{patterns:[{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{4}(?![ ])|\\t)(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{3}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{2}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{1}|(?=\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"variable.unordered.list.mdx"},2:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*([0-9]{9})((?:\\.|\\)))(?:[ ]{4}(?![ ])|\\t(?![\\t ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{8})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{8})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{7})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{7})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{6})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{6})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{5})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{5})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{4})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{4})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{3})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"string.other.number.mdx"},8:{name:"variable.ordered.list.mdx"},9:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{3})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{2})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{3}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"string.other.number.mdx"},6:{name:"variable.ordered.list.mdx"},7:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{2})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9])((?:\\.|\\)))(?:[ ]{2}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"string.other.number.mdx"},4:{name:"variable.ordered.list.mdx"},5:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},{begin:"(?:^|\\G)[\\t ]*([0-9])((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{1:{name:"string.other.number.mdx"},2:{name:"variable.ordered.list.mdx"},3:{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}"}]},"commonmark-paragraph":{begin:"(?![\\t ]*$)",name:"meta.paragraph.mdx",patterns:[{include:"#markdown-text"}],while:"(?:^|\\G)(?:[ ]{4}|\\t)"},"commonmark-thematic-break":{match:"(?:^|\\G)[\\t ]*([-*_])[ \\t]*(?:\\1[ \\t]*){2,}$",name:"meta.separator.mdx"},"extension-gfm-autolink-literal":{patterns:[{match:"(?<=^|[\\t\\n\\r \\(\\*\\_\\[\\]~])(?=(?i:www)\\.[^\\n\\r])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}",name:"string.other.link.autolink.literal.www.mdx"},{match:"(?<=^|[^A-Za-z])(?i:https?://)(?=[\\p{L}\\p{N}])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}",name:"string.other.link.autolink.literal.http.mdx"},{match:"(?<=^|[^A-Za-z/])(?i:mailto:|xmpp:)?(?:[0-9A-Za-z+\\-\\._])+@(?:(?:[0-9A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+(?:\\.(?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))))+(?:[A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+",name:"string.other.link.autolink.literal.email.mdx"}]},"extension-gfm-footnote-call":{captures:{1:{name:"string.other.begin.link.mdx"},2:{name:"string.other.begin.footnote.mdx"},3:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},4:{name:"string.other.end.footnote.mdx"}},match:"(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])"},"extension-gfm-footnote-definition":{begin:"(?:^|\\G)[\\t ]*(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])(:)[\\t ]*",beginCaptures:{1:{name:"string.other.begin.link.mdx"},2:{name:"string.other.begin.footnote.mdx"},3:{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},4:{name:"string.other.end.footnote.mdx"}},patterns:[{include:"#markdown-sections"}],while:"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},"extension-gfm-strikethrough":{match:"(?<=\\S)(?<!~)~{1,2}(?!~)|(?<!~)~{1,2}(?=\\S)(?!~)",name:"string.other.strikethrough.mdx"},"extension-gfm-table":{begin:"(?:^|\\G)[\\t ]*(?=\\|[^\\n\\r]+\\|[ \\t]*$)",end:"^(?=[\\t ]*$)|$",patterns:[{captures:{1:{patterns:[{include:"#markdown-text"}]}},match:"(?<=\\||(?:^|\\G))[\\t ]*((?:[^\\n\\r\\\\\\|]|\\\\[\\\\\\|]?)+?)[\\t ]*(?=\\||$)"},{match:"(?:\\|)",name:"markup.list.table-delimiter.mdx"}]},"extension-github-gemoji":{captures:{1:{name:"punctuation.definition.gemoji.begin.mdx"},2:{name:"keyword.control.gemoji.mdx"},3:{name:"punctuation.definition.gemoji.end.mdx"}},match:"(:)((?:(?:(?:hand_with_index_finger_and_thumb_cros|mailbox_clo|fist_rai|confu)s|r(?:aised_hand_with_fingers_splay|e(?:gister|l(?:iev|ax)))|disappointed_reliev|confound|(?:a(?:ston|ngu)i|flu)sh|unamus|hush)e|(?:chart_with_(?:down|up)wards_tre|large_orange_diamo|small_(?:orang|blu)e_diamo|large_blue_diamo|parasol_on_grou|loud_sou|rewi)n|(?:rightwards_pushing_h|hourglass_flowing_s|leftwards_(?:pushing_)?h|(?:raised_back_of|palm_(?:down|up)|call_me)_h|(?:(?:(?:clippert|ascensi)on|norfolk)_is|christmas_is|desert_is|bouvet_is|new_zea|thai|eng|fin|ire)l|rightwards_h|pinching_h|writing_h|s(?:w(?:itzer|azi)|cot)l|magic_w|ok_h|icel)an|s(?:un_behind_(?:large|small|rain)_clou|hallow_pan_of_foo|tar_of_davi|leeping_be|kateboar|a(?:tisfie|uropo)|hiel|oun|qui)|(?:ear_with_hearing_a|pouring_liqu)i|(?:identification_c|(?:arrow_(?:back|for)|fast_for)w|credit_c|woman_be|biohaz|man_be|l(?:eop|iz))ar|m(?:usical_key|ortar_)boar|(?:drop_of_bl|canned_f)oo|c(?:apital_abc|upi)|person_bal|(?:black_bi|(?:cust|plac)a)r|(?:clip|key)boar|mermai|pea_po|worrie|po(?:la|u)n|threa|dv)d|(?:(?:(?:face_with_open_eyes_and_hand_over|face_with_diagonal|open|no)_mou|h(?:and_over_mou|yacin)|mammo)t|running_shirt_with_sas|(?:(?:fishing_pole_and_|blow)fi|(?:tropical_f|petri_d)i|(?:paint|tooth)bru|banglade|jellyfi)s|(?:camera_fl|wavy_d)as|triump|menora|pouc|blus|watc|das|has)h|(?:s(?:o(?:(?:uth_georgia_south_sandwich|lomon)_island|ck)|miling_face_with_three_heart|t_kitts_nevi|weat_drop|agittariu|c(?:orpiu|issor)|ymbol|hort)|twisted_rightwards_arrow|(?:northern_mariana|heard_mcdonald|(?:british_virgi|us_virgi|pitcair|cayma)n|turks_caicos|us_outlying|(?:falk|a)land|marshall|c(?:anary|ocos)|faroe)_island|(?:face_holding_back_tea|(?:c(?:ard_index_divid|rossed_fing)|pinched_fing)e|night_with_sta)r|(?:two_(?:wo)?men_holding|people_holding|heart|open)_hand|(?:sunrise_over_mountai|(?:congratul|united_n)atio|jea)n|(?:caribbean_)?netherland|(?:f(?:lower_playing_car|ace_in_clou)|crossed_swor|prayer_bea)d|(?:money_with_win|nest_with_eg|crossed_fla|hotsprin)g|revolving_heart|(?:high_brightne|(?:expression|wire)le|(?:tumbler|wine)_gla|milk_gla|compa|dre)s|performing_art|earth_america|orthodox_cros|l(?:ow_brightnes|a(?:tin_cros|o)|ung)|no_pedestrian|c(?:ontrol_kno|lu)b|b(?:ookmark_tab|rick|ean)|nesting_doll|cook_island|(?:fleur_de_l|tenn)i|(?:o(?:ncoming_b|phiuch|ctop)|hi(?:ppopotam|bisc)|trolleyb|m(?:(?:rs|x)_cla|auriti|inib)|belar|cact|abac|(?:cyp|tau)r)u|medal_sport|(?:chopstic|firewor)k|rhinocero|(?:p(?:aw_prin|eanu)|footprin)t|two_heart|princes|(?:hondur|baham)a|barbado|aquariu|c(?:ustom|hain)|maraca|comoro|flag|wale|hug|vh)s|(?:(?:diamond_shape_with_a_dot_ins|playground_sl)id|(?:(?:first_quarter|last_quarter|full|new)_moon_with|(?:zipper|money)_mouth|dotted_line|upside_down|c(?:rying_c|owboy_h)at|(?:disguis|nauseat)ed|neutral|monocle|panda|tired|woozy|clown|nerd|zany|fox)_fac|s(?:t(?:uck_out_tongue_winking_ey|eam_locomotiv)|(?:lightly_(?:frown|smil)|neez|h(?:ush|ak))ing_fac|(?:tudio_micropho|(?:hinto_shr|lot_mach)i|ierra_leo|axopho)n|mall_airplan|un_with_fac|a(?:luting_fac|tellit|k)|haved_ic|y(?:nagogu|ring)|n(?:owfl)?ak|urinam|pong)|(?:black_(?:medium_)?small|white_(?:(?:medium_)?small|large)|(?:black|white)_medium|black_large|orange|purple|yellow|b(?:rown|lue)|red)_squar|(?:(?:perso|woma)n_with_|man_with_)?probing_can|(?:p(?:ut_litter_in_its_pl|outing_f)|frowning_f|cold_f|wind_f|hot_f)ac|(?:arrows_c(?:ounterc)?lockwi|computer_mou|derelict_hou|carousel_hor|c(?:ity_sunri|hee)|heartpul|briefca|racehor|pig_no|lacros)s|(?:(?:face_with_head_band|ideograph_advant|adhesive_band|under|pack)a|currency_exchan|l(?:eft_l)?ugga|woman_jud|name_bad|man_jud|jud)g|face_with_peeking_ey|(?:(?:e(?:uropean_post_off|ar_of_r)|post_off)i|information_sour|ambulan)c|artificial_satellit|(?:busts?_in_silhouet|(?:vulcan_sal|parach)u|m(?:usical_no|ayot)|ro(?:ller_ska|set)|timor_les|ice_ska)t|(?:(?:incoming|red)_envelo|s(?:ao_tome_princi|tethosco)|(?:micro|tele)sco|citysca)p|(?:(?:(?:convenience|department)_st|musical_sc)o|f(?:light_depar|ramed_pic)tu|love_you_gestu|heart_on_fi|japanese_og|cote_divoi|perseve|singapo)r|b(?:ullettrain_sid|eliz|on)|(?:(?:female_|male_)?dete|radioa)ctiv|(?:christmas|deciduous|evergreen|tanabata|palm)_tre|(?:vibration_mo|cape_ver)d|(?:fortune_cook|neckt|self)i|(?:fork_and_)?knif|athletic_sho|(?:p(?:lead|arty)|drool|curs|melt|yawn|ly)ing_fac|vomiting_fac|(?:(?:c(?:urling_st|ycl)|meat_on_b|repeat_|headst)o|(?:fire_eng|tanger|ukra)i|rice_sce|(?:micro|i)pho|champag|pho)n|(?:cricket|video)_gam|(?:boxing_glo|oli)v|(?:d(?:ragon|izzy)|monkey)_fac|(?:m(?:artin|ozamb)iq|fond)u|wind_chim|test_tub|flat_sho|m(?:a(?:ns_sho|t)|icrob|oos|ut)|(?:handsh|fish_c|moon_c|cupc)ak|nail_car|zimbabw|ho(?:neybe|l)|ice_cub|airplan|pensiv|c(?:a(?:n(?:dl|o)|k)|o(?:ffe|oki))|tongu|purs|f(?:lut|iv)|d(?:at|ov)|n(?:iu|os)|kit|rag|ax)e|(?:(?:british_indian_ocean_territo|(?:plate_with_cutl|batt)e|medal_milita|low_batte|hunga|wea)r|family_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy))_bo|person_feeding_bab|woman_feeding_bab|s(?:u(?:spension_railwa|nn)|t(?:atue_of_libert|_barthelem|rawberr))|(?:m(?:ountain_cable|ilky_)|aerial_tram)wa|articulated_lorr|man_feeding_bab|mountain_railwa|partly_sunn|(?:vatican_c|infin)it|(?:outbox_tr|inbox_tr|birthd|motorw|paragu|urugu|norw|x_r)a|butterfl|ring_buo|t(?:urke|roph)|angr|fogg)y|(?:(?:perso|woma)n_in_motorized_wheelchai|(?:(?:notebook_with_decorative_c|four_leaf_cl)ov|(?:index_pointing_at_the_vie|white_flo)w|(?:face_with_thermome|non\\-potable_wa|woman_firefigh|desktop_compu|m(?:an_firefigh|otor_scoo)|(?:ro(?:ller_coa|o)|oy)s|potable_wa|kick_scoo|thermome|firefigh|helicop|ot)t|(?:woman_factory_wor|(?:woman_office|woman_health|health)_wor|man_(?:factory|office|health)_wor|(?:factory|office)_wor|rice_crac|black_jo|firecrac)k|telephone_receiv|(?:palms_up_toget|f(?:ire_extinguis|eat)|teac)h|(?:(?:open_)?file_fol|level_sli)d|police_offic|f(?:lying_sauc|arm)|woman_teach|roll_of_pap|(?:m(?:iddle_f|an_s)in|woman_sin|hambur|plun|dag)g|do_not_litt|wilted_flow|woman_farm|man_(?:teach|farm)|(?:bell_pe|hot_pe|fli)pp|l(?:o(?:udspeak|ve_lett|bst)|edg|add)|tokyo_tow|c(?:ucumb|lapp|anc)|b(?:e(?:ginn|av)|adg)|print|hamst)e|(?:perso|woma)n_in_manual_wheelchai|m(?:an(?:_in_motorized|(?:_in_man)?ual)|otorized)_wheelchai|(?:person_(?:white|curly|red)_|wheelc)hai|triangular_rule|(?:film_project|e(?:l_salv|cu)ad|elevat|tract|anch)o|s(?:traight_rul|pace_invad|crewdriv|nowboard|unflow|peak|wimm|ing|occ|how|urf|ki)e|r(?:ed_ca|unne|azo)|d(?:o(?:lla|o)|ee)|barbe)r|(?:(?:cloud_with_(?:lightning_and_)?ra|japanese_gobl|round_pushp|liechtenste|mandar|pengu|dolph|bahra|pushp|viol)i|(?:couple(?:_with_heart_wo|kiss_)man|construction_worker|(?:mountain_bik|bow|row)ing|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|white_haired|curly_haired|raising_hand|super(?:villain|hero)|red_haired|basketball|s(?:(?:wimm|urf)ing|assy)|haircut|no_good|(?:vampir|massag)e|b(?:iking|ald)|zombie|fairy|mage|elf|ng)_(?:wo)?ma|(?:(?:couple_with_heart_man|isle_of)_m|(?:couplekiss_woman_|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_|frowning_|s(?:tanding|auna)_|po(?:uting_|lice)|running_|blonde_|o(?:lder|k)_)wom|(?:perso|woma)n_with_turb|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_m|f(?:olding_hand_f|rowning_m)|man_with_turb|(?:turkmen|afghan|pak)ist|s(?:tanding_m|(?:outh_s)?ud|auna_m)|po(?:uting_|lice)m|running_m|azerbaij|k(?:yrgyz|azakh)st|tajikist|uzbekist|o(?:lder_m|k_m|ce)|(?:orang|bh)ut|taiw|jord)a|s(?:mall_red_triangle_dow|(?:valbard_jan_may|int_maart|ev)e|afety_pi|top_sig|t_marti|(?:corpi|po|o)o|wede)|(?:heavy_(?:d(?:ivision|ollar)|equals|minus|plus)|no_entry|female|male)_sig|(?:arrow_(?:heading|double)_d|p(?:erson_with_cr|oint_d)|arrow_up_d|thumbsd)ow|(?:house_with_gard|l(?:ock_with_ink_p|eafy_gre)|dancing_(?:wo)?m|fountain_p|keycap_t|chick|ali|yem|od)e|(?:izakaya|jack_o)_lanter|(?:funeral_u|(?:po(?:stal_h|pc)|capric)o|unico)r|chess_paw|b(?:a(?:llo|c)o|eni|rai)|l(?:anter|io)|c(?:o(?:ff)?i|row)|melo|rame|oma|yar)n|(?:s(?:t(?:uck_out_tongue_closed_ey|_vincent_grenadin)|kull_and_crossbon|unglass|pad)|(?:french_souther|palestinia)n_territori|(?:face_with_spiral|kissing_smiling)_ey|united_arab_emirat|kissing_closed_ey|(?:clinking_|dark_sun|eye)glass|(?:no_mobile_|head)phon|womans_cloth|b(?:allet_sho|lueberri)|philippin|(?:no_bicyc|seychel)l|roll_ey|(?:cher|a)ri|p(?:ancak|isc)|maldiv|leav)es|(?:f(?:amily_(?:woman_(?:woman_)?|man_(?:woman_|man_)?)girl_gir|earfu)|(?:woman_playing_hand|m(?:an_playing_hand|irror_)|c(?:onfetti|rystal)_|volley|track|base|8)bal|(?:(?:m(?:ailbox_with_(?:no_)?m|onor)|cockt|e\\-m)a|(?:person|bride|woman)_with_ve|man_with_ve|light_ra|braz|ema)i|(?:transgender|baby)_symbo|passport_contro|(?:arrow_(?:down|up)_sm|rice_b|footb)al|(?:dromedary_cam|ferris_whe|love_hot|high_he|pretz|falaf|isra)e|page_with_cur|me(?:dical_symbo|ta)|(?:n(?:ewspaper_ro|o_be)|bellhop_be)l|rugby_footbal|s(?:chool_satche|(?:peak|ee)_no_evi|oftbal|crol|anda|nai|hel)|(?:peace|atom)_symbo|hear_no_evi|cora|hote|bage|labe|rof|ow)l|(?:(?:negative_squared_cross|heavy_exclamation|part_alternation)_mar|(?:eight_spoked_)?asteris|(?:ballot_box_with_che|(?:(?:mantelpiece|alarm|timer)_c|un)lo|(?:ha(?:(?:mmer_and|ir)_p|tch(?:ing|ed)_ch)|baby_ch|joyst)i|railway_tra|lipsti|peaco)c|heavy_check_mar|white_check_mar|tr(?:opical_drin|uc)|national_par|pickup_truc|diving_mas|floppy_dis|s(?:tar_struc|hamroc|kun|har)|chipmun|denmar|duc|hoo|lin)k|(?:leftwards_arrow_with_h|arrow_right_h|(?:o(?:range|pen)|closed|blue)_b)ook|(?:woman_playing_water_pol|m(?:an(?:_(?:playing_water_pol|with_gua_pi_ma|in_tuxed)|g)|ontenegr|o(?:roc|na)c|e(?:xic|tr|m))|(?:perso|woma)n_in_tuxed|(?:trinidad_toba|vir)g|water_buffal|b(?:urkina_fas|a(?:mbo|nj)|ent)|puerto_ric|water_pol|flaming|kangaro|(?:mosqu|burr)it|(?:avoc|torn)ad|curaca|lesoth|potat|ko(?:sov|k)|tomat|d(?:ang|od)|yo_y|hoch|t(?:ac|og)|zer)o|(?:c(?:entral_african|zech)|dominican)_republic|(?:eight_pointed_black_s|six_pointed_s|qa)tar|(?:business_suit_levitat|(?:classical_buil|breast_fee)d|(?:woman_cartwhee|m(?:an_(?:cartwhee|jugg)|en_wrest)|women_wrest|woman_jugg|face_exha|cartwhee|wrest|dump)l|c(?:hildren_cross|amp)|woman_facepalm|woman_shrugg|man_(?:facepalm|shrugg)|people_hugg|(?:person_fe|woman_da|man_da)nc|fist_oncom|horse_rac|(?:no_smo|thin)k|laugh|s(?:eedl|mok)|park|w(?:arn|edd))ing|f(?:a(?:mily(?:_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy)))?|ctory)|o(?:u(?:ntain|r)|ot|g)|r(?:owning)?|i(?:re|s[ht])|ly|u)|(?:(?:(?:information_desk|handball|bearded)_|(?:frowning|ok)_|juggling_|mer)pers|(?:previous_track|p(?:lay_or_p)?ause|black_square|white_square|next_track|r(?:ecord|adio)|eject)_butt|(?:wa[nx]ing_(?:crescent|gibbous)_m|bowl_with_sp|crescent_m|racc)o|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_pers|s(?:t(?:_pierre_miquel|op_butt|ati)|tanding_pers|peech_ballo|auna_pers)|r(?:eminder_r)?ibb|thought_ballo|watermel|badmint|c(?:amero|ray)|le(?:ban|m)|oni|bis)on|(?:heavy_heart_exclama|building_construc|heart_decora|exclama)tion|(?:(?:triangular_flag_on_po|(?:(?:woman_)?technolog|m(?:ountain_bicycl|an_technolog)|bicycl)i|(?:wo)?man_scienti|(?:wo)?man_arti|s(?:afety_ve|cienti)|empty_ne)s|(?:vertical_)?traffic_ligh|(?:rescue_worker_helm|military_helm|nazar_amul|city_suns|wastebask|dropl|t(?:rump|oil)|bouqu|buck|magn|secr)e|one_piece_swimsui|(?:(?:arrow_(?:low|upp)er|point)_r|bridge_at_n|copyr|mag_r)igh|(?:bullettrain_fro|(?:potted_pl|croiss|e(?:ggpl|leph))a)n|s(?:t(?:ar_and_cresc|ud)en|cream_ca|mi(?:ley?|rk)_ca|(?:peed|ail)boa|hir)|(?:arrow_(?:low|upp)er|point)_lef|woman_astronau|r(?:o(?:tating_ligh|cke)|eceip)|heart_eyes_ca|man_astronau|(?:woman_stud|circus_t|man_stud|trid)en|(?:ringed_pla|file_cabi)ne|nut_and_bol|(?:older_)?adul|k(?:i(?:ssing_ca|wi_frui)|uwai|no)|(?:pouting_c|c(?:ut_of_m|old_sw)e|womans_h|montserr|(?:(?:motor_|row)b|lab_c)o|heartbe|toph)a|(?:woman_pil|honey_p|man_pil|[cp]arr|teap|rob)o|hiking_boo|arrow_lef|fist_righ|flashligh|f(?:ist_lef|ee)|black_ca|astronau|(?:c(?:hest|oco)|dough)nu|innocen|joy_ca|artis|(?:acce|egy)p|co(?:me|a)|pilo)t|(?:heavy_multiplication_|t\\-re)x|(?:s(?:miling_face_with_te|piral_calend)|oncoming_police_c|chocolate_b|ra(?:ilway|cing)_c|police_c|polar_be|teddy_be|madagasc|blue_c|calend|myanm)ar|c(?:l(?:o(?:ud(?:_with_lightning)?|ck(?:1[0-2]?|[2-9]))|ap)?|o(?:uple(?:_with_heart|kiss)?|nstruction|mputer|ok|p|w)|a(?:r(?:d_index)?|mera)|r(?:icket|y)|h(?:art|ild))|(?:m(?:artial_arts_unifo|echanical_a)r|(?:cherry_)?blosso|b(?:aggage_clai|roo)|ice_?crea|facepal|mushroo|restroo|vietna|dru|yu)m|(?:woman_with_headscar|m(?:obile_phone_of|aple_lea)|fallen_lea|wol)f|(?:(?:closed_lock_with|old)_|field_hoc|ice_hoc|han|don)key|g(?:lobe_with_meridians|r(?:e(?:y_(?:exclama|ques)tion|e(?:n(?:_(?:square|circle|salad|apple|heart|book)|land)|ce)|y_heart|nada)|i(?:mac|nn)ing|apes)|u(?:inea_bissau|ernsey|am|n)|(?:(?:olfing|enie)_(?:wo)?|uards(?:wo)?)man|(?:inger_roo|oal_ne|hos)t|(?:uadeloup|ame_di|iraff|oos)e|ift_heart|i(?:braltar|rl)|(?:uatemal|(?:eorg|amb)i|orill|uyan|han)a|uide_dog|(?:oggl|lov)es|arlic|emini|uitar|abon|oat|ear|b)|construction_worker|(?:(?:envelope_with|bow_and)_ar|left_right_ar|raised_eyeb)row|(?:(?:oncoming_automob|crocod)i|right_anger_bubb|l(?:eft_speech_bubb|otion_bott|ady_beet)|congo_brazzavil|eye_speech_bubb|(?:large_blue|orange|purple|yellow|brown)_circ|(?:(?:european|japanese)_cas|baby_bot)t|b(?:alance_sca|eet)|s(?:ewing_need|weat_smi)|(?:black|white|red)_circ|(?:motor|re)cyc|pood|turt|tama|waff|musc|eag)le|first_quarter_moon|s(?:m(?:all_red_triangle|i(?:ley?|rk))|t(?:uck_out_tongue|ar)|hopping|leeping|p(?:arkle|ider)|unrise|nowman|chool|cream|k(?:ull|i)|weat|ix|a)|(?:(?:b(?:osnia_herzegovi|ana)|wallis_futu|(?:french_gui|botsw)a|argenti|st_hele)n|(?:(?:equatorial|papua_new)_guin|north_kor|eritr)e|t(?:ristan_da_cunh|ad)|(?:(?:(?:french_poly|indo)ne|tuni)s|(?:new_caledo|ma(?:urita|cedo)|lithua|(?:tanz|alb|rom)a|arme|esto)n|diego_garc|s(?:audi_arab|t_luc|lov(?:ak|en)|omal|erb)|e(?:arth_as|thiop)|m(?:icrone|alay)s|(?:austra|mongo)l|c(?:ambod|roat)|(?:bulga|alge)r|(?:colom|nami|zam)b|boliv|l(?:iber|atv))i|(?:wheel_of_dhar|cine|pana)m|(?:(?:(?:closed|beach|open)_)?umbrel|ceuta_melil|venezue|ang(?:uil|o)|koa)l|c(?:ongo_kinshas|anad|ub)|(?:western_saha|a(?:mpho|ndor)|zeb)r|american_samo|video_camer|m(?:o(?:vie_camer|ldov)|alt|eg)|(?:earth_af|costa_)ric|s(?:outh_afric|ri_lank|a(?:mo|nt))|bubble_te|(?:antarct|jama)ic|ni(?:caragu|geri|nj)|austri|pi(?:nat|zz)|arub|k(?:eny|aab)|indi|u7a7|l(?:lam|ib[ry])|dn)a|l(?:ast_quarter_moon|o(?:tus|ck)|ips|eo)|(?:hammer_and_wren|c(?:ockroa|hur)|facepun|wren|crut|pun)ch|s(?:nowman_with_snow|ignal_strength|weet_potato|miling_imp|p(?:ider_web|arkle[rs])|w(?:im_brief|an)|a(?:n(?:_marino|dwich)|lt)|topwatch|t(?:a(?:dium|r[2s])|ew)|l(?:e(?:epy|d)|oth)|hrimp|yria|carf|(?:hee|oa)p|ea[lt]|h(?:oe|i[pt])|o[bs])|(?:s(?:tuffed_flatbre|p(?:iral_notep|eaking_he))|(?:exploding_h|baguette_br|flatbr)e)ad|(?:arrow_(?:heading|double)_u|(?:p(?:lace_of_wor|assenger_)sh|film_str|tul)i|page_facing_u|biting_li|(?:billed_c|world_m)a|mouse_tra|(?:curly_lo|busst)o|thumbsu|lo(?:llip)?o|clam|im)p|(?:anatomical|light_blue|sparkling|kissing|mending|orange|purple|yellow|broken|b(?:rown|l(?:ack|ue))|pink)_heart|(?:(?:transgender|black)_fla|mechanical_le|(?:checkered|pirate)_fla|electric_plu|rainbow_fla|poultry_le|service_do|white_fla|luxembour|fried_eg|moneyba|h(?:edgeh|otd)o|shru)g|(?:cloud_with|mountain)_snow|(?:(?:antigua_barb|berm)u|(?:kh|ug)an|rwan)da|(?:3r|2n)d_place_medal|1(?:st_place_medal|234|00)|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|(?:(?:cup_with_str|auto_ricksh)a|carpentry_sa|windo|jigsa)w|(?:(?:couch_and|diya)_la|f(?:ried_shri|uelpu))mp|(?:woman_mechan|man_mechan|alemb)ic|(?:european_un|accord|collis|reun)ion|(?:flight_arriv|hospit|portug|seneg|nep)al|card_file_box|(?:(?:oncoming_)?tax|m(?:o(?:unt_fuj|ya)|alaw)|s(?:paghett|ush|ar)|b(?:r(?:occol|une)|urund)|(?:djibou|kiriba)t|hait|fij)i|(?:shopping_c|white_he|bar_ch)art|d(?:isappointed|ominica|e(?:sert)?)|raising_hand|super(?:villain|hero)|b(?:e(?:verage_box|ers|d)|u(?:bbles|lb|g)|i(?:k(?:ini|e)|rd)|o(?:o(?:ks|t)|a[rt]|y)|read|a[cn]k)|ra(?:ised_hands|bbit2|t)|(?:hindu_tem|ap)ple|thong_sandal|a(?:r(?:row_(?:right|down|up)|t)|bc?|nt)?|r(?:a(?:i(?:sed_hand|nbow)|bbit|dio|m)|u(?:nning)?|epeat|i(?:ng|ce)|o(?:ck|se))|takeout_box|(?:flying_|mini)disc|(?:(?:interrob|yin_y)a|b(?:o(?:omera|wli)|angba)|(?:ping_p|hong_k)o|calli|mahjo)ng|b(?:a(?:llot_box|sket|th?|by)|o(?:o(?:k(?:mark)?|m)|w)|u(?:tter|s)|e(?:ll|er?|ar))?|heart_eyes|basketball|(?:paperclip|dancer|ticket)s|point_up_2|(?:wo)?man_cook|n(?:ew(?:spaper)?|o(?:tebook|_entry)|iger)|t(?:e(?:lephone|a)|o(?:oth|p)|r(?:oll)?|wo)|h(?:o(?:u(?:rglass|se)|rse)|a(?:mmer|nd)|eart)|paperclip|full_moon|(?:b(?:lack_ni|athtu|om)|her)b|(?:long|oil)_drum|pineapple|(?:clock(?:1[0-2]?|[2-9])3|u6e8)0|p(?:o(?:int_up|ut)|r(?:ince|ay)|i(?:ck|g)|en)|e(?:nvelope|ight|u(?:ro)?|gg|ar|ye|s)|m(?:o(?:u(?:ntain|se)|nkey|on)|echanic|a(?:ilbox|g|n)|irror)?|new_moon|d(?:iamonds|olls|art)|question|k(?:iss(?:ing)?|ey)|haircut|no_good|(?:vampir|massag)e|g(?:olf(?:ing)?|u(?:inea|ard)|e(?:nie|m)|ift|rin)|h(?:a(?:ndbag|msa)|ouses|earts|ut)|postbox|toolbox|(?:pencil|t(?:rain|iger)|whale|cat|dog)2|belgium|(?:volca|kimo)no|(?:vanuat|tuval|pala|naur|maca)u|tokelau|o(?:range|ne?|m|k)?|office|dancer|ticket|dragon|pencil|zombie|w(?:o(?:mens|rm|od)|ave|in[gk]|c)|m(?:o(?:sque|use2)|e(?:rman|ns)|a(?:li|sk))|jersey|tshirt|w(?:heel|oman)|dizzy|j(?:apan|oy)|t(?:rain|iger)|whale|fairy|a(?:nge[lr]|bcd|tm)|c(?:h(?:a(?:ir|d)|ile)|a(?:ndy|mel)|urry|rab|o(?:rn|ol|w2)|[dn])|p(?:ager|e(?:a(?:ch|r)|ru)|i(?:g2|ll|e)|oop)|n(?:otes|ine)|t(?:onga|hree|ent|ram|[mv])|f(?:erry|r(?:ies|ee|og)|ax)|u(?:7(?:533|981|121)|5(?:5b6|408|272)|6(?:307|70[89]))|mage|e(?:yes|nd)|i(?:ra[nq]|t)|cat|dog|elf|z(?:zz|ap)|yen|j(?:ar|p)|leg|id|u[kps]|ng|o[2x]|vs|kr|[\\+\\x2D]1|x|v)(:)",name:"string.emoji.mdx"},"extension-github-mention":{captures:{1:{name:"punctuation.definition.mention.begin.mdx"},2:{name:"string.other.link.mention.mdx"}},match:"(?<![0-9A-Za-z_`])(@)((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:[0-9A-Za-z][0-9A-Za-z-]{0,38}))?)(?![0-9A-Za-z_`])",name:"string.mention.mdx"},"extension-github-reference":{patterns:[{captures:{1:{name:"punctuation.definition.reference.begin.mdx"},2:{name:"string.other.link.reference.security-advisory.mdx"},3:{name:"punctuation.definition.reference.begin.mdx"},4:{name:"string.other.link.reference.issue-or-pr.mdx"}},match:"(?<![0-9A-Za-z_])(?:((?i:ghsa-|cve-))([A-Za-z0-9]+)|((?i:gh-|#))([0-9]+))(?![0-9A-Za-z_])",name:"string.reference.mdx"},{captures:{1:{name:"string.other.link.reference.user.mdx"},2:{name:"punctuation.definition.reference.begin.mdx"},3:{name:"string.other.link.reference.issue-or-pr.mdx"}},match:"(?<![^\\t\\n\\r \\(@\\[\\{])((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:(?:\\.git[0-9A-Za-z_-]|\\.(?!git)|[0-9A-Za-z_-])+))?)(#)([0-9]+)(?![0-9A-Za-z_])",name:"string.reference.mdx"}]},"extension-math-flow":{begin:"(?:^|\\G)[\\t ]*(\\${2,})([^\\n\\r\\$]*)$",beginCaptures:{1:{name:"string.other.begin.math.flow.mdx"},2:{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.math.flow.mdx",end:"(\\1)(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.end.math.flow.mdx"}},name:"markup.code.other.mdx"},"extension-math-text":{captures:{1:{name:"string.other.begin.math.mdx"},2:{name:"markup.raw.math.mdx markup.inline.raw.math.mdx"},3:{name:"string.other.end.math.mdx"}},match:"(?<!\\$)(\\${2,})(?!\\$)(.+?)(?<!\\$)(\\1)(?!\\$)"},"extension-mdx-esm":{begin:"(?:^|\\G)(?=(?i:export|import)[ ])",end:"^(?=[\\t ]*$)|$",name:"meta.embedded.tsx",patterns:[{include:"source.tsx#statements"}]},"extension-mdx-expression-flow":{begin:"(?:^|\\G)[\\t ]*(\\{)",beginCaptures:{1:{name:"string.other.begin.expression.mdx.js"}},contentName:"meta.embedded.tsx",end:"(\\})(?:[\\t ]*$)",endCaptures:{1:{name:"string.other.begin.expression.mdx.js"}},patterns:[{include:"source.tsx#expression"}]},"extension-mdx-expression-text":{begin:"\\{",beginCaptures:{0:{name:"string.other.begin.expression.mdx.js"}},contentName:"meta.embedded.tsx",end:"\\}",endCaptures:{0:{name:"string.other.begin.expression.mdx.js"}},patterns:[{include:"source.tsx#expression"}]},"extension-mdx-jsx-flow":{begin:"(?<=^|\\G|\\>)[\\t ]*(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?",beginCaptures:{1:{name:"punctuation.definition.tag.end.jsx"},2:{name:"punctuation.definition.tag.closing.jsx"},3:{name:"entity.name.tag.namespace.jsx"},4:{name:"punctuation.separator.namespace.jsx"},5:{name:"entity.name.tag.local.jsx"},6:{name:"support.class.component.jsx"},7:{name:"support.class.component.jsx"},8:{name:"entity.name.tag.jsx"}},end:"(?:(\\/)\\s*)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.self-closing.jsx"},2:{name:"punctuation.definition.tag.end.jsx"}},patterns:[{include:"source.tsx#jsx-tag-attribute-name"},{include:"source.tsx#jsx-tag-attribute-assignment"},{include:"source.tsx#jsx-string-double-quoted"},{include:"source.tsx#jsx-string-single-quoted"},{include:"source.tsx#jsx-evaluated-code"},{include:"source.tsx#jsx-tag-attributes-illegal"}]},"extension-mdx-jsx-text":{begin:"(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?",beginCaptures:{1:{name:"punctuation.definition.tag.end.jsx"},2:{name:"punctuation.definition.tag.closing.jsx"},3:{name:"entity.name.tag.namespace.jsx"},4:{name:"punctuation.separator.namespace.jsx"},5:{name:"entity.name.tag.local.jsx"},6:{name:"support.class.component.jsx"},7:{name:"support.class.component.jsx"},8:{name:"entity.name.tag.jsx"}},end:"(?:(\\/)\\s*)?(>)",endCaptures:{1:{name:"punctuation.definition.tag.self-closing.jsx"},2:{name:"punctuation.definition.tag.end.jsx"}},patterns:[{include:"source.tsx#jsx-tag-attribute-name"},{include:"source.tsx#jsx-tag-attribute-assignment"},{include:"source.tsx#jsx-string-double-quoted"},{include:"source.tsx#jsx-string-single-quoted"},{include:"source.tsx#jsx-evaluated-code"},{include:"source.tsx#jsx-tag-attributes-illegal"}]},"extension-toml":{begin:"\\A\\+{3}$",beginCaptures:{0:{name:"string.other.begin.toml"}},contentName:"meta.embedded.toml",end:"^\\+{3}$",endCaptures:{0:{name:"string.other.end.toml"}},patterns:[{include:"source.toml"}]},"extension-yaml":{begin:"\\A-{3}$",beginCaptures:{0:{name:"string.other.begin.yaml"}},contentName:"meta.embedded.yaml",end:"^-{3}$",endCaptures:{0:{name:"string.other.end.yaml"}},patterns:[{include:"source.yaml"}]},"markdown-frontmatter":{patterns:[{include:"#extension-toml"},{include:"#extension-yaml"}]},"markdown-sections":{patterns:[{include:"#commonmark-block-quote"},{include:"#commonmark-code-fenced"},{include:"#extension-gfm-footnote-definition"},{include:"#commonmark-definition"},{include:"#commonmark-heading-atx"},{include:"#commonmark-thematic-break"},{include:"#commonmark-heading-setext"},{include:"#commonmark-list-item"},{include:"#extension-gfm-table"},{include:"#extension-math-flow"},{include:"#extension-mdx-esm"},{include:"#extension-mdx-expression-flow"},{include:"#extension-mdx-jsx-flow"},{include:"#commonmark-paragraph"}]},"markdown-string":{patterns:[{include:"#commonmark-character-escape"},{include:"#commonmark-character-reference"}]},"markdown-text":{patterns:[{include:"#commonmark-attention"},{include:"#commonmark-character-escape"},{include:"#commonmark-character-reference"},{include:"#commonmark-code-text"},{include:"#commonmark-hard-break-trailing"},{include:"#commonmark-hard-break-escape"},{include:"#commonmark-label-end"},{include:"#extension-gfm-footnote-call"},{include:"#commonmark-label-start"},{include:"#extension-gfm-autolink-literal"},{include:"#extension-gfm-strikethrough"},{include:"#extension-github-gemoji"},{include:"#extension-github-mention"},{include:"#extension-github-reference"},{include:"#extension-math-text"},{include:"#extension-mdx-expression-text"},{include:"#extension-mdx-jsx-text"}]},"whatwg-html-data-character-reference-named-terminated":{captures:{1:{name:"punctuation.definition.character-reference.begin.html"},2:{name:"keyword.control.character-reference.html"},3:{name:"punctuation.definition.character-reference.end.html"}},match:"(&)((?:C(?:(?:o(?:unterClockwiseCo)?|lockwiseCo)ntourIntegra|cedi)|(?:(?:Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)|Not(?:Righ|Lef)tTriangle|(?:Not(?:(?:Succeed|Precede|Les)s|Greater)|(?:Precede|Succeed)s|Less)Slant|SquareSu(?:per|b)set|(?:Not(?:Greater|Tilde)|Tilde|Less)Full|RightTriangle|LeftTriangle|Greater(?:Slant|Full)|Precedes|Succeeds|Superset|NotHump|Subset|Tilde|Hump)Equ|int(?:er)?c|DotEqu)a|DoubleContourIntegra|(?:n(?:short)?parall|shortparall|p(?:arall|rur))e|(?:rightarrowta|l(?:eftarrowta|ced|ata|Ata)|sced|rata|perm|rced|rAta|ced)i|Proportiona|smepars|e(?:qvpars|pars|xc|um)|Integra|suphso|rarr[pt]|n(?:pars|tg)|l(?:arr[pt]|cei)|Rarrt|(?:hybu|fora)l|ForAl|[GKLNR-Tcknt]cedi|rcei|iexc|gime|fras|[uy]um|oso|dso|ium|Ium)l|D(?:o(?:uble(?:(?:L(?:ong(?:Left)?R|eftR)ight|L(?:ongL)?eft|UpDown|Right|Up)Arrow|Do(?:wnArrow|t))|wn(?:ArrowUpA|TeeA|a)rrow)|iacriticalDot|strok|ashv|cy)|(?:(?:(?:N(?:(?:otN)?estedGreater|ot(?:Greater|Less))|Less(?:Equal)?)Great|GreaterGreat|l[lr]corn|mark|east)e|Not(?:Double)?VerticalBa|(?:Not(?:Righ|Lef)tTriangleB|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)VectorB|RightTriangleB|Left(?:Triangle|Arrow)B|RightArrowB|V(?:er(?:ticalB|b)|b)|UpArrowB|l(?:ur(?:ds|u)h|dr(?:us|d)h|trP|owb|H)|profal|r(?:ulu|dld)h|b(?:igst|rvb)|(?:wed|ve[er])b|s(?:wn|es)w|n(?:wne|ese|sp|hp)|gtlP|d(?:oll|uh|H)|(?:hor|ov)b|u(?:dh|H)|r(?:lh|H)|ohb|hb|St)a|D(?:o(?:wn(?:(?:Left(?:Right|Tee)|RightTee)Vecto|(?:(?:Righ|Lef)tVector|Arrow)Ba)|ubleVerticalBa)|a(?:gge|r)|sc|f)|(?:(?:(?:Righ|Lef)tDown|(?:Righ|Lef)tUp)Tee|(?:Righ|Lef)tUpDown)Vecto|VerticalSeparato|(?:Left(?:Right|Tee)|RightTee)Vecto|less(?:eqq?)?gt|e(?:qslantgt|sc)|(?:RightF|LeftF|[lr]f)loo|u(?:[lr]corne|ar)|timesba|(?:plusa|cirs|apa)ci|U(?:arroci|f)|(?:dzigr|s(?:u(?:pl|br)|imr|[lr])|zigr|angz|nvH|l(?:tl|B)|r[Br])ar|UnderBa|(?:plus|harr|top|mid|of)ci|O(?:verBa|sc|f)|dd?agge|s(?:olba|sc)|g(?:t(?:rar|ci)|sc|f)|c(?:opys|u(?:po|ep)|sc|f)|(?:n(?:(?:v[lr]|w|r)A|l[Aa]|h[Aa]|eA)|x[hlr][Aa]|u(?:ua|da|A)|s[ew]A|rla|o[lr]a|rba|rAa|l[Ablr]a|h(?:oa|A)|era|d(?:ua|A)|cra|vA)r|o(?:lci|sc|ro|pa)|ropa|roar|l(?:o(?:pa|ar)|sc|Ar)|i(?:ma|s)c|ltci|dd?ar|a(?:ma|s)c|R(?:Bar|sc|f)|I(?:mac|f)|(?:u(?:ma|s)|oma|ema|Oma|Ema|[wyz]s|qs|ks|fs|Zs|Ys|Xs|Ws|Vs|Us|Ss|Qs|Ns|Ms|Ks|Is|Gs|Fs|Cs|Bs)c|Umac|x(?:sc|f)|v(?:sc|f)|rsc|n(?:ld|f)|m(?:sc|ld|ac|f)|rAr|h(?:sc|f)|b(?:sc|f)|psc|P(?:sc|f)|L(?:sc|ar|f)|jsc|J(?:sc|f)|E(?:sc|f)|[HT]sc|[yz]f|wf|tf|qf|pf|kf|jf|Zf|Yf|Xf|Wf|Vf|Tf|Sf|Qf|Nf|Mf|Kf|Hf|Gf|Ff|Cf|Bf)r|(?:Diacritical(?:Double)?A|[EINOSYZaisz]a)cute|(?:(?:N(?:egative(?:VeryThin|Thi(?:ck|n))|onBreaking)|NegativeMedium|ZeroWidth|VeryThin|Medium|Thi(?:ck|n))Spac|Filled(?:Very)?SmallSquar|Empty(?:Very)?SmallSquar|(?:N(?:ot(?:Succeeds|Greater|Tilde|Less)T|t)|DiacriticalT|VerticalT|PrecedesT|SucceedsT|NotEqualT|GreaterT|TildeT|EqualT|LessT|at|Ut|It)ild|(?:(?:DiacriticalG|[EIOUaiu]g)ra|(?:u|U)?bre|(?:o|e)?gra)v|(?:doublebar|curly|big|x)wedg|H(?:orizontalLin|ilbertSpac)|Double(?:Righ|Lef)tTe|(?:(?:measured|uw)ang|exponentia|dwang|ssmi|fema)l|(?:Poincarepla|reali|pho|oli)n|(?:black)?lozeng|(?:VerticalL|(?:prof|imag)l)in|SmallCircl|(?:black|dot)squar|rmoustach|l(?:moustach|angl)|(?:b(?:ack)?pr|(?:tri|xo)t|[qt]pr)im|[Tt]herefor|(?:DownB|[Gag]b)rev|(?:infint|nv[lr]tr)i|b(?:arwedg|owti)|an(?:dslop|gl)|(?:cu(?:rly)?v|rthr|lthr|b(?:ig|ar)v|xv)e|n(?:s(?:qsu[bp]|ccu)|prcu)|orslop|NewLin|maltes|Becaus|rangl|incar|(?:otil|Otil|t(?:ra|il))d|[inu]tild|s(?:mil|imn)|(?:sc|pr)cu|Wedg|Prim|Brev)e|(?:CloseCurly(?:Double)?Quo|OpenCurly(?:Double)?Quo|[ry]?acu)te|(?:Reverse(?:Up)?|Up)Equilibrium|C(?:apitalDifferentialD|(?:oproduc|(?:ircleD|enterD|d)o)t|on(?:grue|i)nt|conint|upCap|o(?:lone|pf)|OPY|hi)|(?:(?:(?:left)?rightsquig|(?:longleftr|twoheadr|nleftr|nLeftr|longr|hookr|nR|Rr)ight|(?:twohead|hook)left|longleft|updown|Updown|nright|Right|nleft|nLeft|down|up|Up)a|L(?:(?:ong(?:left)?righ|(?:ong)?lef)ta|eft(?:(?:right)?a|RightA|TeeA))|RightTeeA|LongLeftA|UpTeeA)rrow|(?:(?:RightArrow|Short|Upper|Lower)Left|(?:L(?:eftArrow|o(?:wer|ng))|LongLeft|Short|Upper)Right|ShortUp)Arrow|(?:b(?:lacktriangle(?:righ|lef)|ulle|no)|RightDoubleBracke|RightAngleBracke|Left(?:Doub|Ang)leBracke|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow)righ|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow|mapsto)lef|(?:UnderBrack|OverBrack|emptys|targ|Sups)e|diamondsui|c(?:ircledas|lubsui|are)|(?:spade|heart)sui|(?:(?:c(?:enter|t)|lmi|ino)d|(?:Triple|mD)D|n(?:otin|e)d|(?:ncong|doteq|su[bp]e|e[gl]s)d|l(?:ess|t)d|isind|c(?:ong|up|ap)?d|b(?:igod|N)|t(?:(?:ri)?d|opb)|s(?:ub|im)d|midd|g(?:tr?)?d|Lmid|DotD|(?:xo|ut|z)d|e(?:s?d|rD|fD|DD)|dtd|Zd|Id|Gd|Ed)o|realpar|i(?:magpar|iin)|S(?:uchTha|qr)|su[bp]mul|(?:(?:lt|i)que|gtque|(?:mid|low)a|e(?:que|xi))s|Produc|s(?:updo|e[cx])|r(?:parg|ec)|lparl|vangr|hamil|(?:homt|[lr]fis|ufis|dfis)h|phmma|t(?:wix|in)|quo|o(?:do|as)|fla|eDo)t|(?:(?:Square)?Intersecti|(?:straight|back|var)epsil|SquareUni|expectati|upsil|epsil|Upsil|eq?col|Epsil|(?:omic|Omic|rca|lca|eca|Sca|[NRTt]ca|Lca|Eca|[Zdz]ca|Dca)r|scar|ncar|herc|ccar|Ccar|iog|Iog)on|Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)?|(?:(?:(?:Not(?:Reverse)?|Reverse)E|comp|E)leme|NotCongrue|(?:n[gl]|l)eqsla|geqsla|q(?:uat)?i|perc|iiii|coni|cwi|awi|oi)nt|(?:(?:rightleftharpo|leftrightharpo|quaterni)on|(?:(?:N(?:ot(?:NestedLess|Greater|Less)|estedLess)L|(?:eqslant|gtr(?:eqq?)?)l|LessL)e|Greater(?:Equal)?Le|cro)s|(?:rightright|leftleft|upup)arrow|rightleftarrow|(?:(?:(?:righ|lef)tthree|divideon|b(?:igo|ox)|[lr]o)t|InvisibleT)ime|downdownarrow|(?:(?:smallset|tri|dot|box)m|PlusM)inu|(?:RoundImpli|complex|Impli|Otim)e|C(?:ircle(?:Time|Minu|Plu)|ayley|ros)|(?:rationa|mode)l|NotExist|(?:(?:UnionP|MinusP|(?:b(?:ig[ou]|ox)|tri|s(?:u[bp]|im)|dot|xu|mn)p)l|(?:xo|u)pl|o(?:min|pl)|ropl|lopl|epl)u|otimesa|integer|e(?:linter|qual)|setminu|rarrbf|larrb?f|olcros|rarrf|mstpo|lesge|gesle|Exist|[lr]time|strn|napo|fltn|ccap|apo)s|(?:b(?:(?:lack|ig)triangledow|etwee)|(?:righ|lef)tharpoondow|(?:triangle|mapsto)dow|(?:nv|i)infi|ssetm|plusm|lagra|d(?:[lr]cor|isi)|c(?:ompf|aro)|s?frow|(?:hyph|curr)e|kgree|thor|ogo|ye)n|Not(?:Righ|Lef)tTriangle|(?:Up(?:Arrow)?|Short)DownArrow|(?:(?:n(?:triangle(?:righ|lef)t|succ|prec)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|backsim)e|lvertneq|gvertneq|(?:suc|pre)cneq|a(?:pprox|symp)e|(?:succ|prec|vee)e|circe)q|(?:UnderParenthes|OverParenthes|xn)is|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)Vector|D(?:o(?:wn(?:RightVector|LeftVector|Arrow|Tee)|t)|el|D)|l(?:eftrightarrows|br(?:k(?:sl[du]|e)|ac[ek])|tri[ef]|s(?:im[eg]|qb|h)|hard|a(?:tes|ngd|p)|o[pz]f|rm|gE|fr|eg|cy)|(?:NotHumpDownHum|(?:righ|lef)tharpoonu|big(?:(?:triangle|sqc)u|c[au])|HumpDownHum|m(?:apstou|lc)|(?:capbr|xsq)cu|smash|rarr[al]|(?:weie|sha)r|larrl|velli|(?:thin|punc)s|h(?:elli|airs)|(?:u[lr]c|vp)ro|d[lr]cro|c(?:upc[au]|apc[au])|thka|scna|prn?a|oper|n(?:ums|va|cu|bs)|ens|xc[au]|Ma)p|l(?:eftrightarrow|e(?:ftarrow|s(?:dot)?)?|moust|a(?:rrb?|te?|ng)|t(?:ri)?|sim|par|oz|l|g)|n(?:triangle(?:righ|lef)t|succ|prec)|SquareSu(?:per|b)set|(?:I(?:nvisibleComm|ot)|(?:varthe|iio)t|varkapp|(?:vars|S)igm|(?:diga|mco)mm|Cedill|lambd|Lambd|delt|Thet|omeg|Omeg|Kapp|Delt|nabl|zet|to[es]|rdc|ldc|iot|Zet|Bet|Et)a|b(?:lacktriangle|arwed|u(?:mpe?|ll)|sol|o(?:x[HVhv]|t)|brk|ne)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|RightT(?:riangl|e)e|(?:(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|nsu[bp]seteq|colone|(?:wedg|sim)e|nsime|lneq|gneq)q|DifferentialD|(?:(?:fall|ris)ingdots|(?:suc|pre)ccurly|ddots)eq|A(?:pplyFunction|ssign|(?:tild|grav|brev)e|acute|o(?:gon|pf)|lpha|(?:mac|sc|f)r|c(?:irc|y)|ring|Elig|uml|nd|MP)|(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|L(?:eft(?:T(?:riangl|e)e|Arrow)|l)|G(?:reaterEqual|amma)|E(?:xponentialE|quilibrium|sim|cy|TH|NG)|(?:(?:RightCeil|LeftCeil|varnoth|ar|Ur)in|(?:b(?:ack)?co|uri)n|vzigza|roan|loan|ffli|amal|sun|rin|n(?:tl|an)|Ran|Lan)g|(?:thick|succn?|precn?|less|g(?:tr|n)|ln|n)approx|(?:s(?:traightph|em)|(?:rtril|xu|u[lr]|xd|v[lr])tr|varph|l[lr]tr|b(?:sem|eps)|Ph)i|(?:circledd|osl|n(?:v[Dd]|V[Dd]|d)|hsl|V(?:vd|D)|Osl|v[Dd]|md)ash|(?:(?:RuleDelay|imp|cuw)e|(?:n(?:s(?:hort)?)?|short|rn)mi|D(?:Dotrah|iamon)|(?:i(?:nt)?pr|peri)o|odsol|llhar|c(?:opro|irmi)|(?:capa|anda|pou)n|Barwe|napi|api)d|(?:cu(?:rlyeq(?:suc|pre)|es)|telre|[ou]dbla|Udbla|Odbla|radi|lesc|gesc|dbla)c|(?:circled|big|eq|[is]|c|x|a|S|[hw]|W|H|G|E|C)circ|rightarrow|R(?:ightArrow|arr|e)|Pr(?:oportion)?|(?:longmapst|varpropt|p(?:lustw|ropt)|varrh|numer|(?:rsa|lsa|sb)qu|m(?:icr|h)|[lr]aqu|bdqu|eur)o|UnderBrace|ImaginaryI|B(?:ernoullis|a(?:ckslash|rv)|umpeq|cy)|(?:(?:Laplace|Mellin|zee)tr|Fo(?:uriertr|p)|(?:profsu|ssta)r|ordero|origo|[ps]op|nop|mop|i(?:op|mo)|h(?:op|al)|f(?:op|no)|dop|bop|Rop|Pop|Nop|Lop|Iop|Hop|Dop|[GJKMOQSTV-Zgjkoqvwyz]op|Bop)f|nsu[bp]seteq|t(?:ri(?:angleq|e)|imesd|he(?:tav|re4)|au)|O(?:verBrace|r)|(?:(?:pitchfo|checkma|t(?:opfo|b)|rob|rbb|l[bo]b)r|intlarh|b(?:brktbr|l(?:oc|an))|perten|NoBrea|rarrh|s[ew]arh|n[ew]arh|l(?:arrh|hbl)|uhbl|Hace)k|(?:NotCupC|(?:mu(?:lti)?|x)m|cupbrc)ap|t(?:riangle|imes|heta|opf?)|Precedes|Succeeds|Superset|NotEqual|(?:n(?:atural|exist|les)|s(?:qc[au]p|mte)|prime)s|c(?:ir(?:cled[RS]|[Ee])|u(?:rarrm|larrp|darr[lr]|ps)|o(?:mmat|pf)|aps|hi)|b(?:sol(?:hsu)?b|ump(?:eq|E)|ox(?:box|[Vv][HLRhlr]|[Hh][DUdu]|[DUdu][LRlr])|e(?:rnou|t[ah])|lk(?:34|1[24])|cy)|(?:l(?:esdot|squ|dqu)o|rsquo|rdquo|ngt)r|a(?:n(?:g(?:msda[a-h]|st|e)|d[dv])|st|p[Ee]|mp|fr|c[Edy])|(?:g(?:esdoto|E)|[lr]haru)l|(?:angrtvb|lrhar|nis)d|(?:(?:th(?:ic)?k|succn?|p(?:r(?:ecn?|n)?|lus)|rarr|l(?:ess|arr)|su[bp]|par|scn|g(?:tr|n)|ne|sc|n[glv]|ln|eq?)si|thetasy|ccupss|alefsy|botto)m|trpezium|(?:hks[ew]|dr?bk|bk)arow|(?:(?:[lr]a|d|c)empty|b(?:nequi|empty)|plank|nequi|odi)v|(?:(?:sc|rp|n)pol|point|fpart)int|(?:c(?:irf|wco)|awco)nint|PartialD|n(?:s(?:u[bp](?:set)?|c)|rarr|ot(?:ni|in)?|warr|e(?:arr)?|a(?:tur|p)|vlt|p(?:re?|ar)|um?|l[et]|ge|i)|n(?:atural|exist|les)|d(?:i(?:am(?:ond)?|v(?:ide)?)|tri|ash|ot|d)|backsim|l(?:esdot|squ|dqu)o|g(?:esdoto|E)|U(?:p(?:Arrow|si)|nion|arr)|angrtvb|p(?:l(?:anckh|us(?:d[ou]|[be]))|ar(?:sl|t)|r(?:od|nE|E)|erp|iv|m)|n(?:ot(?:niv[a-c]|in(?:v[a-c]|E))|rarr[cw]|s(?:u[bp][Ee]|c[er])|part|v(?:le|g[et])|g(?:es|E)|c(?:ap|y)|apE|lE|iv|Ll|Gg)|m(?:inus(?:du|b)|ale|cy|p)|rbr(?:k(?:sl[du]|e)|ac[ek])|(?:suphsu|tris|rcu|lcu)b|supdsub|(?:s[ew]a|n[ew]a)rrow|(?:b(?:ecaus|sim)|n(?:[lr]tri|bump)|csu[bp])e|equivDD|u(?:rcorn|lcorn|psi)|timesb|s(?:u(?:p(?:set)?|b(?:set)?)|q(?:su[bp]|u)|i(?:gma|m)|olb?|dot|mt|fr|ce?)|p(?:l(?:anck|us)|r(?:op|ec?)?|ara?|i)|o(?:times|r(?:d(?:er)?)?)|m(?:i(?:nusd?|d)|a(?:p(?:sto)?|lt)|u)|rmoust|g(?:e(?:s(?:dot|l)?|q)?|sim|n(?:ap|e)|t|l|g)|(?:spade|heart)s|c(?:u(?:rarr|larr|p)|o(?:m(?:ma|p)|lon|py|ng)|lubs|heck|cups|irc?|ent|ap)|colone|a(?:p(?:prox)?|n(?:g(?:msd|rt)?|d)|symp|f|c)|S(?:quare|u[bp]|c)|Subset|b(?:ecaus|sim)|vsu[bp]n[Ee]|s(?:u(?:psu[bp]|b(?:su[bp]|n[Ee]|E)|pn[Ee]|p[1-3E]|m)|q(?:u(?:ar[ef]|f)|su[bp]e)|igma[fv]|etmn|dot[be]|par|mid|hc?y|c[Ey])|f(?:rac(?:78|5[68]|45|3[458]|2[35]|1[2-68])|fr)|e(?:m(?:sp1[34]|ptyv)|psiv|c(?:irc|y)|t[ah]|ng|ll|fr|e)|(?:kappa|isins|vBar|fork|rho|phi|n[GL]t)v|divonx|V(?:dashl|ee)|gammad|G(?:ammad|cy|[Tgt])|[Ldhlt]strok|[HT]strok|(?:c(?:ylct|hc)|(?:s(?:oft|hch)|hard|S(?:OFT|HCH)|jser|J(?:ser|uk)|HARD|tsh|TSH|juk|iuk|I(?:uk|[EO])|zh|yi|nj|lj|k[hj]|gj|dj|ZH|Y[AIU]|NJ|LJ|K[HJ]|GJ|D[JSZ])c|ubrc|Ubrc|(?:yu|i[eo]|dz|v|p|f)c|TSc|SHc|CHc|Vc|Pc|Mc|Fc)y|(?:(?:wre|jm)at|dalet|a(?:ngs|le)p|imat|[lr]ds)h|[CLRUceglnou]acute|ff?llig|(?:f(?:fi|[ij])|sz|oe|ij|ae|OE|IJ)lig|r(?:a(?:tio|rr|ng)|tri|par|eal)|s[ew]arr|s(?:qc[au]p|mte)|prime|rarrb|i(?:n(?:fin|t)?|sin|t|i|c)|e(?:quiv|m(?:pty|sp)|p(?:si|ar)|cir|l|g)|kappa|isins|ncong|doteq|(?:wedg|sim)e|nsime|rsquo|rdquo|[lr]haru|V(?:dash|ert)|Tilde|lrhar|gamma|Equal|UpTee|n(?:[lr]tri|bump)|C(?:olon|up|ap)|v(?:arpi|ert)|u(?:psih|ml)|vnsu[bp]|r(?:tri[ef]|e(?:als|g)|a(?:rr[cw]|ng[de]|ce)|sh|lm|x)|rhard|sim[gl]E|i(?:sin[Ev]|mage|f[fr]|cy)|harrw|(?:n[gl]|l)eqq|g(?:sim[el]|tcc|e(?:qq|l)|nE|l[Eaj]|gg|ap)|ocirc|starf|utrif|d(?:trif|i(?:ams|e)|ashv|sc[ry]|fr|eg)|[du]har[lr]|T(?:HORN|a[bu])|(?:TRAD|[gl]vn)E|odash|[EUaeu]o(?:gon|pf)|alpha|[IJOUYgjuy]c(?:irc|y)|v(?:arr|ee)|succ|sim[gl]|harr|ln(?:ap|e)|lesg|(?:n[gl]|l)eq|ocir|star|utri|vBar|fork|su[bp]e|nsim|lneq|gneq|csu[bp]|zwn?j|yacy|x(?:opf|i)|scnE|o(?:r(?:d[fm]|v)|mid|lt|hm|gt|fr|cy|S)|scap|rsqb|ropf|ltcc|tsc[ry]|QUOT|[EOUYao]uml|rho|phi|n[GL]t|e[gl]s|ngt|I(?:nt|m)|nis|rfr|rcy|lnE|lEg|ufr|S(?:um|cy)|R(?:sh|ho)|psi|Ps?i|[NRTt]cy|L(?:sh|cy|[Tt])|kcy|Kcy|Hat|REG|[Zdz]cy|wr|lE|wp|Xi|Nu|Mu)(;)",name:"constant.language.character-reference.named.html"}},i="source.mdx",d={displayName:"MDX",fileTypes:n,name:"mdx",patterns:a,repository:r,scopeName:i};export{d as default,e as displayName,n as fileTypes,t as name,a as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/mermaid.mjs b/lib/dist/grammar/mermaid.mjs new file mode 100644 index 0000000..8c899bb --- /dev/null +++ b/lib/dist/grammar/mermaid.mjs @@ -0,0 +1 @@ +var e="Mermaid",a=[],m="L:text.html.markdown",n="mermaid",t=[{include:"#mermaid-code-block"},{include:"#mermaid-code-block-with-attributes"},{include:"#mermaid-ado-code-block"}],r={mermaid:{patterns:[{begin:"^\\s*(classDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Class Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"entity.name.type.class.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"entity.name.type.class.mermaid"},6:{name:"keyword.control.mermaid"},7:{name:"string"}},comment:'(class name) ("multiplicity relationship")? (relationship) ("multiplicity relationship")? (class name) :? (labelText)?',match:'(?i)([\\w-]+)\\s("(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)")?\\s?(--o|--\\*|\\<--|--\\>|<\\.\\.|\\.\\.\\>|\\<\\|\\.\\.|\\.\\.\\|\\>|\\<\\|--|--\\|>|--\\*|--|\\.\\.|\\*--|o--)\\s("(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)")?\\s?([\\w-]+)\\s?(:)?\\s(.*)$'},{captures:{1:{name:"entity.name.type.class.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"entity.name.function.mermaid"},5:{name:"punctuation.parenthesis.open.mermaid"},6:{name:"storage.type.mermaid"},7:{name:"punctuation.definition.typeparameters.begin.mermaid"},8:{name:"storage.type.mermaid"},9:{name:"punctuation.definition.typeparameters.end.mermaid"},10:{name:"entity.name.variable.parameter.mermaid"},11:{name:"punctuation.parenthesis.closed.mermaid"},12:{name:"keyword.control.mermaid"},13:{name:"storage.type.mermaid"},14:{name:"punctuation.definition.typeparameters.begin.mermaid"},15:{name:"storage.type.mermaid"},16:{name:"punctuation.definition.typeparameters.end.mermaid"}},comment:"(class name) : (visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$",match:"(?i)([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(\\()([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?(\\))([*\\$]{0,2})\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$"},{captures:{1:{name:"entity.name.type.class.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.begin.mermaid"},6:{name:"storage.type.mermaid"},7:{name:"punctuation.definition.typeparameters.end.mermaid"},8:{name:"entity.name.variable.field.mermaid"}},comment:"(class name) : (visibility)?(datatype/generic data type) (attribute name)$",match:"(?i)([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$"},{captures:{1:{name:"punctuation.definition.typeparameters.begin.mermaid"},2:{name:"storage.type.mermaid"},3:{name:"punctuation.definition.typeparameters.end.mermaid"},4:{name:"entity.name.type.class.mermaid"}},comment:"<<(Annotation)>> (class name)",match:"(?i)(<<)([\\w-]+)(>>)\\s?([\\w-]+)?"},{begin:"(?i)(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?\\s?({)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.type.class.mermaid"},3:{name:"punctuation.definition.typeparameters.begin.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.end.mermaid"},6:{name:"keyword.control.mermaid"}},comment:"class (class name) ~?(generic type)?~? ({)",end:"(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{begin:"(?i)\\s([\\+~#-])?([\\w-]+)(\\()",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"},3:{name:"punctuation.parenthesis.open.mermaid"}},comment:"(visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$",end:"(?i)(\\))([*\\$]{0,2})\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$",endCaptures:{1:{name:"punctuation.parenthesis.closed.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"storage.type.mermaid"},4:{name:"punctuation.definition.typeparameters.begin.mermaid"},5:{name:"storage.type.mermaid"},6:{name:"punctuation.definition.typeparameters.end.mermaid"}},patterns:[{captures:{1:{name:"storage.type.mermaid"},2:{name:"punctuation.definition.typeparameters.begin.mermaid"},3:{name:"storage.type.mermaid"},4:{name:"punctuation.definition.typeparameters.end.mermaid"},5:{name:"entity.name.variable.parameter.mermaid"}},comment:"(TBD)",match:"(?i)\\s*,?\\s*([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"storage.type.mermaid"},3:{name:"punctuation.definition.typeparameters.begin.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.end.mermaid"},6:{name:"entity.name.variable.field.mermaid"}},comment:"(visibility)?(datatype/generic data type) (attribute name)$",match:"(?i)\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$"},{captures:{1:{name:"punctuation.definition.typeparameters.begin.mermaid"},2:{name:"storage.type.mermaid"},3:{name:"punctuation.definition.typeparameters.end.mermaid"},4:{name:"entity.name.type.class.mermaid"}},comment:"<<(Annotation)>> (class name)",match:"(?i)(<<)([\\w-]+)(>>)\\s?([\\w-]+)?"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.type.class.mermaid"},3:{name:"punctuation.definition.typeparameters.begin.mermaid"},4:{name:"storage.type.mermaid"},5:{name:"punctuation.definition.typeparameters.end.mermaid"}},comment:"class (class name) ~?(generic type)?~?",match:"(?i)(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?"}]},{begin:"^\\s*(erDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Entity Relationship Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{comment:"(entity)",match:"^\\s*([\\w-]+)$",name:"variable"},{begin:"(?i)\\s+([\\w-]+)\\s*({)",beginCaptures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(entity) {",end:"(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"storage.type.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:'(type) (name) (PK|FK)? ("comment")?',match:'(?i)\\s*([\\w-]+)\\s+([\\w-]+)\\s+(PK|FK)?\\s*("["\\($&%\\^/#.,?!;:*+=<>\\\'\\\\\\-\\w\\s]*")?\\s*'},{match:"\\%%.*",name:"comment"}]},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:"(entity) (relationship) (entity) : (label)",match:'(?i)\\s*([\\w-]+)\\s*((?:\\|o|\\|\\||}o|}\\||one or (?:zero|more|many)|zero or (?:one|more|many)|many\\((?:0|1)\\)|only one|0\\+|1\\+?)(?:..|--)(?:o\\||\\|\\||o{|\\|{|one or (?:zero|more|many)|zero or (?:one|more|many)|many\\((?:0|1)\\)|only one|0\\+|1\\+?))\\s*([\\w-]+)\\s*(:)\\s*((?:"[\\w\\s]*")|(?:[\\w-]+))'}]},{begin:"^\\s*(gantt)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Gantt Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"(?i)^\\s*(dateFormat)\\s+([\\w\\-\\.]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"(?i)^\\s*(axisFormat)\\s+([\\w\\%\\/\\\\\\-\\.]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)(tickInterval)\\s+(([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month))"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(excludes)\\s+((?:[\\d\\-,\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s+(todayMarker)\\s+(.*)$"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{begin:"(?i)^\\s(.*)(:)",beginCaptures:{1:{name:"string"},2:{name:"keyword.control.mermaid"}},end:"$",patterns:[{match:"(crit|done|active|after)",name:"entity.name.function.mermaid"},{match:"\\%%.*",name:"comment"}]}]},{begin:"^\\s*(gitGraph)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Git Graph",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{begin:"(?i)^\\s*(commit)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"commit",end:"$",patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:'(id)(:) ("id")',match:'(?i)\\s*(id)(:)\\s?("[^"\\n]*")'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"entity.name.function.mermaid"}},comment:"(type)(:) (COMMIT_TYPE)",match:"(?i)\\s*(type)(:)\\s?(NORMAL|REVERSE|HIGHLIGHT)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:'(tag)(:) ("tag")',match:'(?i)\\s*(tag)(:)\\s?("[\\($&%\\^/#.,?!;:*+=<>\\\'\\\\\\-\\w\\s]*")'}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(checkout) (branch-name)",match:'(?i)^\\s*(checkout)\\s*([^\\s"]*)'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"constant.numeric.decimal.mermaid"}},comment:"(branch) (branch-name) (order)?(:) (number)",match:'(?i)^\\s*(branch)\\s*([^\\s"]*)\\s*(?:(order)(:)\\s?(\\d+))?'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:'(merge) (branch-name) (tag: "tag-name")?',match:'(?i)^\\s*(merge)\\s*([^\\s"]*)\\s*(?:(tag)(:)\\s?("[^"\\n]*"))?'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:'(cherry-pick) (id)(:)("commit-id")',match:'(?i)^\\s*(cherry-pick)\\s+(id)(:)\\s*("[^"\\n]*")'}]},{begin:"^\\s*(graph|flowchart)\\s+([\\p{Letter}\\ 0-9]+)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},comment:"Graph",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"},5:{name:"keyword.control.mermaid"}},comment:"",match:'(?i)^\\s*(subgraph)\\s+(\\w+)(\\[)("?[\\w\\s*+%=\\\\/:\\.\\-\'`,&^#$!?<>]*"?)(\\])'},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"^\\s*(subgraph)\\s+([\\p{Letter}\\ 0-9<>]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},match:"^(?i)\\s*(direction)\\s+(RB|BT|RL|TD|LR)"},{match:"\\b(end)\\b",name:"keyword.control.mermaid"},{begin:"(?i)(\\b(?:(?!--|==)[-\\w])+\\b\\s*)(\\(\\[|\\[\\[|\\[\\(|\\[|\\(+|\\>|\\{|\\(\\()",beginCaptures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(Entity)(Edge/Shape)(Text)(Edge/Shape)",end:"(?i)(\\]\\)|\\]\\]|\\)\\]|\\]|\\)+|\\}|\\)\\))",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{begin:'\\s*(")',beginCaptures:{1:{name:"string"}},comment:'("multi-line text")',end:'(")',endCaptures:{1:{name:"string"}},patterns:[{begin:'(?i)([^"]*)',beginCaptures:{1:{name:"string"}},comment:"capture inner text between quotes",end:'(?=")',patterns:[{captures:{1:{name:"comment"}},match:'([^"]*)'}]}]},{captures:{1:{name:"string"}},comment:"(single line text)",match:"(?i)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"}]},{begin:"(?i)\\s*((?:-{2,5}|={2,5})[xo>]?\\|)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:'(Graph Link)("Multiline text")(Graph Link)',end:"(?i)(\\|)",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{begin:'\\s*(")',beginCaptures:{1:{name:"string"}},comment:'("multi-line text")',end:'(")',endCaptures:{1:{name:"string"}},patterns:[{begin:'(?i)([^"]*)',beginCaptures:{1:{name:"string"}},comment:"capture inner text between quotes",end:'(?=")',patterns:[{captures:{1:{name:"comment"}},match:'([^"]*)'}]}]},{captures:{1:{name:"string"}},comment:"(single line text)",match:"(?i)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"},3:{name:"keyword.control.mermaid"}},comment:"(Graph Link Start Arrow)(Text)(Graph Link End Arrow)",match:"(?i)\\s*([xo<]?(?:-{2,5}|={2,5}|-\\.{1,3}|-\\.))((?:(?!--|==)[\\w\\s*+%=\\\\/:\\.\\-'`,\"&^#$!?<>\\[\\]])*)((?:-{2,5}|={2,5}|\\.{1,3}-|\\.-)[xo>]?)"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"(Graph Link)",match:"(?i)\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)"},{comment:"Entity",match:"(\\b(?:(?!--|==)[-\\w])+\\b\\s*)",name:"variable"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"string"}},comment:"(Class)(Node(s))(ClassName)",match:"(?i)\\s*(class)\\s+(\\b[-,\\w]+)\\s+(\\b\\w+\\b)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"string"}},comment:"(ClassDef)(ClassName)(Styles)",match:"(?i)\\s*(classDef)\\s+(\\b\\w+\\b)\\s+(\\b[-,:;#\\w]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"variable"},4:{name:"string"}},comment:"(Click)(Entity)(Link)?(Tooltip)",match:'(?i)\\s*(click)\\s+(\\b[-\\w]+\\b\\s*)(\\b\\w+\\b)?\\s("*.*")'}]},{begin:"^\\s*(pie)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Pie Chart",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{begin:"(?i)\\s(.*)(:)",beginCaptures:{1:{name:"string"},2:{name:"keyword.control.mermaid"}},end:"$",patterns:[{match:"\\%%.*",name:"comment"}]}]},{begin:"^\\s*(quadrantChart)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Quadrant Chart",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(title)\\s*([\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{begin:"(?i)^\\s*([xy]-axis)\\s+((?:(?!--\x3e)[$&%/#.,?!*+=\\'\\\\\\-\\w\\s])*)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(x|y-axis) (text) (--\x3e)? (text)?",end:"$",patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(--\x3e) (text)",match:"(?i)\\s*(--\x3e)\\s*([$&%/#.,?!*+=\\'\\\\\\-\\w\\s]*)"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(quadrant-[1234])\\s*([\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{captures:{1:{name:"string"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"constant.numeric.decimal.mermaid"},5:{name:"keyword.control.mermaid"},6:{name:"constant.numeric.decimal.mermaid"},7:{name:"keyword.control.mermaid"}},comment:"(text)(:) ([)(decimal)(,) (decimal)(])",match:"(?i)\\s*([$&%/#.,?!*+=\\'\\\\\\-\\w\\s]*)\\s*(:)\\s*(\\[)\\s*(\\d\\.\\d+)\\s*(,)\\s*(\\d\\.\\d+)\\s*(\\])"}]},{begin:"^\\s*(requirementDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Requirement Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{begin:"(?i)^\\s*((?:functional|interface|performance|physical)?requirement|designConstraint)\\s*([\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)\\s*({)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"}},comment:"(requirement) (name) ({)",end:"(?i)\\s*(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(id:) (variable id)",match:"(?i)\\s*(id:)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(text:) (text string)",match:"(?i)\\s*(text:)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},comment:"(risk:) (risk option)",match:"(?i)\\s*(risk:)\\s*(low|medium|high)\\s*$"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"}},comment:"(verifyMethod)(:) (method)",match:"(?i)\\s*(verifymethod:)\\s*(analysis|inspection|test|demonstration)\\s*$"}]},{begin:"(?i)^\\s*(element)\\s*([\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)\\s*({)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"}},comment:"(element) (name) ({)",end:"(?i)\\s*(})",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(type:) (user type)",match:"(?i)\\s*(type:)\\s*([\"$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(docref:) (user ref)",match:"(?i)\\s*(docref:)\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)"}]},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"variable"}},comment:"(source) (-) (type) (->) (destination)",match:"(?i)^\\s*([\\w]+)\\s*(-)\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\s*(->)\\s*([\\w]+)\\s*$"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"keyword.control.mermaid"},4:{name:"keyword.control.mermaid"},5:{name:"variable"}},comment:"(destination) (<-) (type) (-) (source)",match:"(?i)^\\s*([\\w]+)\\s*(<-)\\s*(contains|copies|derives|satisfies|verifies|refines|traces)\\s*(-)\\s*([\\w]+)\\s*$"}]},{begin:"^\\s*(sequenceDiagram)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"Sequence Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"(\\%%|#).*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(title)(title text)",match:"(?i)(title)\\s*(:)?\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!:*+=<>\\'\\\\\\-\\w\\s]*)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:"(participant)(Actor)(as)?(Label)?",match:"(?i)\\s*(participant|actor)\\s+((?:(?! as )[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s])+)\\s*(as)?\\s([\"\\(\\)$&%\\^/#.,?!*=<>\\'\\\\\\w\\s]+)?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"(activate/deactivate)(Actor)",match:"(?i)\\s*((?:de)?activate)\\s+(\\b[\"()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?\\s*)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"variable"},6:{name:"keyword.control.mermaid"},7:{name:"string"}},comment:"(Note)(direction)(Actor)(,)?(Actor)?(:)(Message)",match:"(?i)\\s*(Note)\\s+((?:left|right)\\sof|over)\\s+(\\b[\"()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?\\s*)(,)?(\\b[\"()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?\\s*)?(:)(?:\\s+([^;#]*))?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(loop)(loop text)",match:"(?i)\\s*(loop)(?:\\s+([^;#]*))?"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"(end)",match:"\\s*(end)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(alt/else/option/par/and/autonumber/critical/opt)(text)",match:"(?i)\\s*(alt|else|option|par|and|rect|autonumber|critical|opt)(?:\\s+([^#;]*))?$"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:"(Actor)(Arrow)(Actor)(:)(Message)",match:"(?i)\\s*(\\b[\"()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?)\\s*(-?-(?:\\>|x|\\))\\>?[+-]?)\\s*([\"()$&%^/#.?!*=<>'\\\\\\w\\s]+\\b\\)?)\\s*(:)\\s*([^;#]*)"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"entity.name.function.mermaid"},3:{name:"string"}},comment:"(box transparent text)",match:"(?i)\\s*(box)\\s+(transparent)(?:\\s+([^;#]*))?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},comment:"(box text)",match:"(?i)\\s*(box)(?:\\s+([^;#]*))?"}]},{begin:"^\\s*(stateDiagram(?:-v2)?)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"State Diagram",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"}",match:"\\s+(})\\s+"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"--",match:"\\s+(--)\\s+"},{comment:"(state)",match:"^\\s*([\\w-]+)$",name:"variable"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(state) : (description)",match:"(?i)([\\w-]+)\\s+(:)\\s+(\\s*[-\\w\\s]+\\b)"},{begin:"(?i)^\\s*(state)\\s+",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"state",end:"$",patterns:[{captures:{1:{name:"string"},2:{name:"keyword.control.mermaid"},3:{name:"variable"}},comment:'"(description)" as (state)',match:'(?i)\\s*("[-\\w\\s]+\\b")\\s+(as)\\s+([\\w-]+)'},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(state name) {",match:"(?i)\\s*([\\w-]+)\\s+({)"},{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(state name) <<fork|join>>",match:"(?i)\\s*([\\w-]+)\\s+(<<(?:fork|join)>>)"}]},{begin:"(?i)([\\w-]+)\\s+(--\x3e)",beginCaptures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"}},comment:"(state) --\x3e",end:"$",patterns:[{captures:{1:{name:"variable"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"(state) (:)? (transition text)?",match:"(?i)\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"string"}},comment:"[*] (:)? (transition text)?",match:"(?i)(\\[\\*\\])\\s*(:)?\\s*([^\\n:]+)?"}]},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"variable"},4:{name:"keyword.control.mermaid"},5:{name:"string"}},comment:"[*] --\x3e (state) (:)? (transition text)?",match:"(?i)(\\[\\*\\])\\s+(--\x3e)\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"},3:{name:"keyword.control.mermaid"},4:{name:"string"}},comment:"note left|right of (state name)",match:"(?i)^\\s*(note (?:left|right) of)\\s+([\\w-]+)\\s+(:)\\s*([^\\n:]+)"},{begin:"(?i)^\\s*(note (?:left|right) of)\\s+([\\w-]+)(.|\\n)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"variable"}},comment:"note left|right of (state name) (note text) end note",contentName:"string",end:"(?i)(end note)",endCaptures:{1:{name:"keyword.control.mermaid"}}}]},{begin:"^\\s*(journey)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"User Journey",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(title|section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{begin:"(?i)\\s*([\"\\(\\)$&%\\^/.,?!*+=<>\\'\\\\\\-\\w\\s]*)\\s*(:)\\s*(\\d+)\\s*(:)",beginCaptures:{1:{name:"string"},2:{name:"keyword.control.mermaid"},3:{name:"constant.numeric.decimal.mermaid"},4:{name:"keyword.control.mermaid"}},end:"$",patterns:[{captures:{1:{name:"variable"}},comment:"(taskName)",match:"(?i)\\s*,?\\s*([^,#\\n]+)"}]}]},{begin:"^\\s*(xychart(?:-beta)?(?:\\s+horizontal)?)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"XY Chart",end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)",patterns:[{match:"\\%%.*",name:"comment"},{captures:{1:{name:"keyword.control.mermaid"},2:{name:"string"}},match:"(?i)^\\s*(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)"},{begin:"(?i)^\\s*(x-axis)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"(x-axis)",end:"$",patterns:[{captures:{1:{name:"constant.numeric.decimal.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"constant.numeric.decimal.mermaid"}},comment:"(decimal) (--\x3e) (decimal)",match:"(?i)\\s*([-+]?\\d+\\.?\\d*)\\s*(--\x3e)\\s*([-+]?\\d+\\.?\\d*)"},{captures:{1:{name:"string"}},comment:'("text")',match:'(?i)\\s+("[\\($&%\\^/#.,?!;:*+=<>\\\'\\\\\\-\\w\\s]*")'},{captures:{1:{name:"string"}},comment:"(text)",match:"(?i)\\s+([\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w]*)"},{begin:"\\s*(\\[)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"([)(text)(,)(text)*(])",end:"\\s*(\\])",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"constant.numeric.decimal.mermaid"}},comment:"(decimal)",match:"(?i)\\s*([-+]?\\d+\\.?\\d*)"},{captures:{1:{name:"string"}},comment:'("text")',match:'(?i)\\s*("[\\($&%\\^/#.,?!;:*+=<>\\\'\\\\\\-\\w\\s]*")'},{captures:{1:{name:"string"}},comment:"(text)",match:"(?i)\\s*([\\($&%\\^/#.?!;:*+=<>\\'\\\\\\-\\w\\s]+)"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"(,)",match:"(?i)\\s*(,)"}]}]},{begin:"(?i)^\\s*(y-axis)",beginCaptures:{1:{name:"keyword.control.mermaid"}},comment:"(y-axis)",end:"$",patterns:[{captures:{1:{name:"constant.numeric.decimal.mermaid"},2:{name:"keyword.control.mermaid"},3:{name:"constant.numeric.decimal.mermaid"}},comment:"(decimal) (--\x3e) (decimal)",match:"(?i)\\s*([-+]?\\d+\\.?\\d*)\\s*(--\x3e)\\s*([-+]?\\d+\\.?\\d*)"},{captures:{1:{name:"string"}},comment:'("text")',match:'(?i)\\s+("[\\($&%\\^/#.,?!;:*+=<>\\\'\\\\\\-\\w\\s]*")'},{captures:{1:{name:"string"}},comment:"(text)",match:"(?i)\\s+([\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w]*)"}]},{begin:"(?i)^\\s*(line|bar)\\s*(\\[)",beginCaptures:{1:{name:"keyword.control.mermaid"},2:{name:"keyword.control.mermaid"}},comment:"(line|bar) ([)(decimal)+(])",end:"\\s*(\\])",endCaptures:{1:{name:"keyword.control.mermaid"}},patterns:[{captures:{1:{name:"constant.numeric.decimal.mermaid"}},comment:"(decimal)",match:"(?i)\\s*([-+]?\\d+\\.?\\d*)"},{captures:{1:{name:"keyword.control.mermaid"}},comment:"(,)",match:"(?i)\\s*(,)"}]}]}]},"mermaid-ado-code-block":{begin:"(?i)\\s*:::\\s*mermaid\\s*$",contentName:"meta.embedded.block.mermaid",end:"\\s*:::\\s*",patterns:[{include:"#mermaid"}]},"mermaid-code-block":{begin:"(?i)(?<=[`~])mermaid(\\s+[^`~]*)?$",contentName:"meta.embedded.block.mermaid",end:"(^|\\G)(?=\\s*[`~]{3,}\\s*$)",patterns:[{include:"#mermaid"}]},"mermaid-code-block-with-attributes":{begin:"(?i)(?<=[`~])\\{\\s*\\.?mermaid(\\s+[^`~]*)?$",contentName:"meta.embedded.block.mermaid",end:"(^|\\G)(?=\\s*[`~]{3,}\\s*$)",patterns:[{include:"#mermaid"}]}},i="markdown.mermaid.codeblock",o={displayName:e,fileTypes:a,injectionSelector:m,name:n,patterns:t,repository:r,scopeName:i};export{o as default,e as displayName,a as fileTypes,m as injectionSelector,n as name,t as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/mojo.mjs b/lib/dist/grammar/mojo.mjs new file mode 100644 index 0000000..e3967e5 --- /dev/null +++ b/lib/dist/grammar/mojo.mjs @@ -0,0 +1 @@ +var e="Mojo",n="mojo",t=[{include:"#statement"},{include:"#expression"}],a={"annotated-parameter":{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (:)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:"=(?!=)",name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:"(?x)\n<<= | >>= | //= | \\*\\*=\n| \\+= | -= | /= | @=\n| \\*= | %= | ~= | \\^= | &= | \\|=\n| =(?!=)\n",name:"keyword.operator.assignment.python"},backticks:{begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",name:"string.quoted.single.python"},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:"(?x) (?<!\\.) \\b(\n(\nArithmetic | Assertion | Attribute | Buffer | BlockingIO\n| BrokenPipe | ChildProcess\n| (Connection (Aborted | Refused | Reset)?)\n| EOF | Environment | FileExists | FileNotFound\n| FloatingPoint | IO | Import | Indentation | Index | Interrupted\n| IsADirectory | NotADirectory | Permission | ProcessLookup\n| Timeout\n| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n| Reference | Runtime | Recursion | Syntax | System\n| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n| Value | Windows | ZeroDivision | ModuleNotFound\n) Error\n|\n((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n| Unicode | Bytes | Resource\n)? Warning\n|\nSystemExit | Stop(Async)?Iteration\n| KeyboardInterrupt\n| GeneratorExit | (Base)?Exception\n)\\b\n",name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:"(?x)\n(?<!\\.) \\b(\n__import__ | abs | aiter | all | any | anext | ascii | bin\n| breakpoint | callable | chr | compile | copyright | credits\n| delattr | dir | divmod | enumerate | eval | exec | exit\n| filter | format | getattr | globals | hasattr | hash | help\n| hex | id | input | isinstance | issubclass | iter | len\n| license | locals | map | max | memoryview | min | next\n| oct | open | ord | pow | print | quit | range | reload | repr\n| reversed | round | setattr | sorted | sum | vars | zip\n)\\b\n",name:"support.function.builtin.python"},{match:"(?x)\n(?<!\\.) \\b(\nfile | reduce | intern | raw_input | unicode | cmp | basestring\n| execfile | long | xrange\n)\\b\n",name:"variable.legacy.builtin.python"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{match:"(?x)\n(?<!\\.) \\b(\n__mlir_attr | __mlir_op | __mlir_type | bool | bytearray | bytes | classmethod | complex | dict\n| float | frozenset | int | list | object | property\n| set | slice | staticmethod | str | tuple | type\n\n(?# Although 'super' is not a type, it's related to types,\nand is special enough to be highlighted differently from\nother built-ins)\n| super\n)\\b\n",name:"support.type.python"},"call-wrapper-inheritance":{begin:"(?x)\n\\b(?=\n([[:alpha:]_]\\w*) \\s* (\\()\n)\n",comment:"same as a function call, but in inheritance context",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:"(?x)\n\\s*(class|struct|trait)\\s+\n(?=\n[[:alpha:]_]\\w* \\s* (:|\\()\n)\n",beginCaptures:{1:{name:"storage.type.class.python"}},end:"(:)",endCaptures:{1:{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.inheritance.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.arguments.python"},{match:",",name:"punctuation.separator.inheritance.python"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{match:"\\bmetaclass\\b",name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{1:{name:"entity.other.inherited-class.python variable.parameter.class.python"},2:{name:"keyword.operator.assignment.python"}},match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n"},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"entity.name.type.class.python"}]},codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},comments:{patterns:[{begin:"(?x)\n(?:\n\\# \\s* (type:)\n\\s*+ (?# we want `\\s*+` which is possessive quantifier since\nwe do not actually want to backtrack when matching\nwhitespace here)\n(?! $ | \\#)\n)\n",beginCaptures:{0:{name:"meta.typehint.comment.python"},1:{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:"(?:$|(?=\\#))",name:"comment.line.number-sign.python",patterns:[{match:"(?x)\n\\G ignore\n(?= \\s* (?: $ | \\#))\n",name:"comment.typehint.ignore.notation.python"},{match:"(?x)\n(?<!\\.)\\b(\nbool | bytes | float | int | object | str\n| List | Dict | Iterable | Sequence | Set\n| FrozenSet | Callable | Union | Tuple\n| Any | None\n)\\b\n",name:"comment.typehint.type.notation.python"},{match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))",name:"comment.typehint.punctuation.notation.python"},{match:"([[:alpha:]_]\\w*)",name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($)",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:'($|(?="""))',name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.python"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.python"}},patterns:[{match:":",name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:"(?x)\n^\\s*\n((@)) \\s* (?=[[:alpha:]_]\\w*)\n",beginCaptures:{1:{name:"entity.name.function.decorator.python"},2:{name:"punctuation.definition.decorator.python"}},end:"(?x)\n( \\) )\n\n(?: (.*?) (?=\\s*(?:\\#|$)) )\n| (?=\\n|\\#)\n",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{2:{name:"punctuation.separator.period.python"}},match:"(?x)\n([[:alpha:]_]\\w*) | (\\.)\n",name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{1:{name:"invalid.illegal.decorator.python"}},match:"(?x)\n\\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",name:"invalid.illegal.decorator.python"}]},"double-one-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="""))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:"\\.\\.\\.",name:"constant.other.ellipsis.python"},"escape-sequence":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| [0-7]{1,3}\n| [\\\\\"'abfnrtv]\n)\n",name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n| N\\{[\\w\\s]+?\\}\n)\n",name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:"(?x)\n\\{\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\\}\n",name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:"(\\b[fF])([bBuU])?('''|\"\"\")",beginCaptures:{1:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:"(\\b[fF])([bBuU])?((['\"]))",beginCaptures:{1:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:"(}(?!}))",name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:"(\\{)(?=[^\\n}]*$\\n?)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:"(\\})|(?=\\n)",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:"(?x)\n(\\})\n",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|'''|\"\"\")\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:"(\\b[bBuU])([fF])('''|\"\"\")",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:"(\\b[bBuU])([fF])((['\"]))",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|'''|\"\"\")\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:"(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")",beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:"(\\b(?:[rR][fF]|[fF][rR]))((['\"]))",beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:"(?x)\n(\\})|(?=\\n)\n",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:"(?x)\n( (?: =?) (?: ![rsa])? )\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n"},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})",patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:"(?x)\n( (?: =?) (?: ![rsa])? )\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n"},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})|(?=\\n)",patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"function-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.python"},{captures:{1:{name:"keyword.operator.unpacking.arguments.python"}},match:"(?x)\n(?:(?<=[,(])|^) \\s* (\\*{1,2})\n"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function-call.python"},2:{name:"keyword.operator.assignment.python"}},match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"punctuation.definition.arguments.begin.python"}},match:"\\s*(\\))\\s*(\\()"}]},"function-call":{begin:"(?x)\n\\b(?=\n([[:alpha:]_]\\w*) \\s* (\\()\n)\n",comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:"(?x)\n\\s*\n(?:\\b(async) \\s+)? \\b(def|fn)\\s+\n(?=\n[[:alpha:]_][[:word:]]* \\s* [\\(\\[]\n)\n",beginCaptures:{1:{name:"storage.type.function.async.python"},2:{name:"storage.type.function.python"}},end:"(:|(?=[#'\"\\n]))",endCaptures:{1:{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-modifier"},{include:"#function-def-name"},{include:"#parameters"},{include:"#meta_parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"entity.name.function.python"}]},"function-modifier":{match:"(raises|capturing)",name:"storage.modifier"},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.function-call.generic.python"}]},generator:{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control.flow.python"}},comment:'Match "for ... in" construct used in generators and for loops to\ncorrectly identify the "in" as a control flow keyword.\n',end:"\\bin\\b",endCaptures:{0:{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-names":{captures:{1:{name:"keyword.control.flow.python"},2:{name:"storage.type.function.python"},3:{name:"keyword.control.import.python"}},match:"(?x)\n\\b(?:\n(\nand | assert | async | await | break | class | struct | trait | continue | del | elif | else | except | finally | for | from | global\n| if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n| nonlocal | not | or | pass | raise | return | try | while | with\n| yield\n) | (def | fn | capturing | raises) | (\nas | import\n)\n)\\b\n"},"illegal-object-name":{comment:'It\'s illegal to name class or function "True"',match:"\\b(True|False|None)\\b",name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:"&&|\\|\\||--|\\+\\+",name:"invalid.illegal.operator.python"},{match:"[?$]",name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b",name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$|(?=import)",patterns:[{match:"\\.+",name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$",patterns:[{match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},"inheritance-identifier":{captures:{1:{name:"entity.other.inherited-class.python"}},match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n"},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:"(?x)\n\\b(?=\n[[:alpha:]_]\\w* \\s* \\[\n)\n",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:"(?=\\])",patterns:[{match:":",name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.indexed-name.python"}]},lambda:{patterns:[{captures:{1:{name:"keyword.control.flow.python"}},match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"},{captures:{1:{name:"storage.type.function.lambda.python"}},match:"\\b(lambda)\\s*?(?=[,\\n]|$)"},{begin:"(?x)\n\\b (lambda) \\b\n",beginCaptures:{1:{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:"(:)|(\\n)",endCaptures:{1:{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:"\\b(owned|borrowed|inout)\\b",name:"storage.modifier"},{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))"},{include:"#comments"},{include:"#backticks"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:"\\blambda(?=\\s*[,)])",name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:"\\blambda(?=\\s*[:,)])",name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (=)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"keyword.operator.python"}},end:"(,)|(?=:|$)",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.python"},2:{name:"invalid.illegal.line.continuation.python"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.python"}},end:"(?x)\n(?=^\\s*$)\n|\n(?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n|\n(\\G $) (?# '\\G' is necessary for ST)\n)\n",patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.python"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b",name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{1:{name:"support.function.magic.python"}},comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:"(?x)\n\\b(\n__(?:\nabs | add | aenter | aexit | aiter | and | anext\n| await | bool | call | ceil | class_getitem\n| cmp | coerce | complex | contains | copy\n| deepcopy | del | delattr | delete | delitem\n| delslice | dir | div | divmod | enter | eq\n| exit | float | floor | floordiv | format | ge\n| get | getattr | getattribute | getinitargs\n| getitem | getnewargs | getslice | getstate | gt\n| hash | hex | iadd | iand | idiv | ifloordiv |\n| ilshift | imod | imul | index | init\n| instancecheck | int | invert | ior | ipow\n| irshift | isub | iter | itruediv | ixor | le\n| len | long | lshift | lt | missing | mod | mul\n| ne | neg | new | next | nonzero | oct | or | pos\n| pow | radd | rand | rdiv | rdivmod | reduce\n| reduce_ex | repr | reversed | rfloordiv |\n| rlshift | rmod | rmul | ror | round | rpow\n| rrshift | rshift | rsub | rtruediv | rxor | set\n| setattr | setitem | set_name | setslice\n| setstate | sizeof | str | sub | subclasscheck\n| truediv | trunc | unicode | xor | matmul\n| rmatmul | imatmul | init_subclass | set_name\n| fspath | bytes | prepare | length_hint\n)__\n)\\b\n"},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{1:{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:"(?x)\n\\b(\n__(?:\nall | annotations | bases | builtins | class\n| struct\n| trait\n| closure | code | debug | defaults | dict | doc | file | func\n| globals | kwdefaults | match_args | members | metaclass | methods\n| module | mro | mro_entries | name | qualname | post_init | self\n| signature | slots | subclasses | version | weakref | wrapped\n| classcell | spec | path | package | future | traceback\n)__\n)\\b\n"},"member-access":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?x)\n\n\n(?<=\\S)(?=\\W) |\n\n\n(^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n$\n",name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-class":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?<=\\S)(?=\\W)|$",name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},meta_parameters:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (:)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\])",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},{include:"#comments"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:"\\b[0-9]+\\w+",name:"invalid.illegal.name.python"}]},"number-bin":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[bB]) (_?[01])+\n\\b\n",name:"constant.numeric.bin.python"},"number-dec":{captures:{1:{name:"storage.type.imaginary.number.python"},2:{name:"invalid.illegal.dec.python"}},match:"(?x)\n(?<![\\w\\.])(?:\n[1-9](?: _?[0-9] )*\n|\n0+\n|\n[0-9](?: _?[0-9] )* ([jJ])\n|\n0 ([0-9]+)(?![eE\\.])\n)\\b\n",name:"constant.numeric.dec.python"},"number-float":{captures:{1:{name:"storage.type.imaginary.number.python"}},match:"(?x)\n(?<! \\w)(?:\n(?:\n\\.[0-9](?: _?[0-9] )*\n|\n[0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n|\n[0-9](?: _?[0-9] )* \\.\n) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n|\n[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n)([jJ])?\\b\n",name:"constant.numeric.float.python"},"number-hex":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[xX]) (_?[0-9a-fA-F])+\n\\b\n",name:"constant.numeric.hex.python"},"number-long":{captures:{2:{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:"(?x)\n(?<![\\w\\.])\n([1-9][0-9]* | 0) ([lL])\n\\b\n",name:"constant.numeric.bin.python"},"number-oct":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[oO]) (_?[0-7])+\n\\b\n",name:"constant.numeric.oct.python"},"odd-function-call":{begin:"(?x)\n(?<= \\] | \\) ) \\s*\n(?=\\()\n",comment:'A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. "arr[idx](args)"\n',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{1:{name:"keyword.operator.logical.python"},2:{name:"keyword.control.flow.python"},3:{name:"keyword.operator.bitwise.python"},4:{name:"keyword.operator.arithmetic.python"},5:{name:"keyword.operator.comparison.python"},6:{name:"keyword.operator.assignment.python"}},match:"(?x)\n\\b(?<!\\.)\n(?:\n(and | or | not | in | is) (?# 1)\n|\n(for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n)\n(?!\\s*:)\\b\n\n| (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n| (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n| (!= | == | >= | <= | < | >) (?# 5)\n\n| (:=) (?# 6)\n"},"parameter-special":{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"variable.parameter.function.language.special.self.python"},3:{name:"variable.parameter.function.language.special.cls.python"},4:{name:"punctuation.separator.parameters.python"}},match:"(?x)\n\\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n"},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:"\\b(owned|borrowed|inout)\\b",name:"storage.modifier"},{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"(?x)\n([[:alpha:]_]\\w*)\n\\s* (?: (,) | (?=[)#\\n=]))\n"},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:":",name:"punctuation.separator.colon.python"},{match:",",name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:"(?x)\n(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| 0[0-7]{1,2}\n| [0-7]{3}\n)\n",name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n)\n",name:"constant.character.unicode.regexp"},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:"(?x)\n\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\n",name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"return-annotation":{begin:"(->)",beginCaptures:{1:{name:"punctuation.separator.annotation.result.python"}},end:"(?=:)",patterns:[{include:"#expression"}]},"round-braces":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.python"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:"\\;$",name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:"(?x)\n\\b\n\n\n\n\n\n(\n_* [[:upper:]] [_\\d]* [[:upper:]]\n)\n[[:upper:]\\d]* (_\\w*)?\n\\b\n",name:"constant.other.caps.python"},"special-variables":{captures:{1:{name:"variable.language.special.self.python"},2:{name:"variable.language.special.cls.python"}},match:"(?x)\n\\b (?<!\\.) (?:\n(self) | (cls)\n)\\b\n"},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:"\\b((async\\s+)?\\s*(def|fn))\\b",name:"storage.type.function.python"},{comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])",name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{match:"(?x)\n\\b(?<!\\.)(\nasync | continue | del | assert | break | finally | for\n| from | elif | else | if | except | pass | raise\n| return | try | while | with\n)\\b\n",name:"keyword.control.flow.python"},{match:"(?x)\n\\b(?<!\\.)(\nglobal | nonlocal\n)\\b\n",name:"storage.modifier.declaration.python"},{match:"\\b(?<!\\.)(class|struct|trait)\\b",name:"storage.type.class.python"},{captures:{1:{name:"keyword.control.flow.python"}},match:"(?x)\n^\\s*(\ncase | match\n)(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n"},{captures:{1:{name:"storage.modifier.declaration.python"},2:{name:"variable.other.python"}},match:"\\b(var|let|alias) \\s*([[:alpha:]_]\\w*)\\b"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:"(\\b[bB])('''|\"\"\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:"(\\b[bB])((['\"]))",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:"(?x)\n(\n{{ | }}\n| (?:\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n})\n)\n",name:"meta.format.brace.python"},{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:"(?x)\n(\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n(:)\n[^'\"{}\\n]* (?:\n\\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n)*\n}\n)\n",name:"meta.format.brace.python"}]},"string-consume-escape":{match:"\\\\['\"\\n\\\\]"},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{1:{name:"constant.character.format.placeholder.other.python"}},match:"(?x)\n(\n% (\\([\\w\\s]*\\))?\n[-+#0 ]*\n(\\d+|\\*)? (\\.(\\d+|\\*))?\n([hlL])?\n[diouxXeEfFgGcrsab%]\n)\n",name:"meta.format.percent.python"},"string-line-continuation":{match:"\\\\$",name:"constant.language.python"},"string-mojo-code-block":{begin:"^(\\s*\\`{3,})(mojo)$",beginCaptures:{1:{name:"string.quoted.single.python"},2:{name:"string.quoted.single.python"}},contentName:"source.mojo",end:"^(\\1)$",endCaptures:{1:{name:"string.quoted.single.python"}},name:"meta.embedded.block.mojo",patterns:[{include:"source.mojo"}]},"string-multi-bad-brace1-formatting-raw":{begin:"(?x)\n(?= \\{%\n( .*? (?!'''|\"\"\") )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:"(?x)\n(?= \\{%\n( .*? (?!'''|\"\"\") )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n)\n.*?(?!'''|\"\"\")\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n)\n.*?(?!'''|\"\"\")\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:"(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:"(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:"(\\b(?:R[bB]|[bB]R))('''|\"\"\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:"(\\b(?:R[bB]|[bB]R))((['\"]))",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:"\\b(([uU]R)|(R))('''|\"\"\")",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:"\\b(([uU]R)|(R))((['\"]))",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:"(?x)\n(?= \\{%\n( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:"(?x)\n(?= \\{%\n( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n)\n.*?(?!(['\"])|((?<!\\\\)\\n))\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n)\n.*?(?!(['\"])|((?<!\\\\)\\n))\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#string-mojo-code-block"},{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},i="source.mojo",r={displayName:e,name:n,patterns:t,repository:a,scopeName:i};export{r as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/move.mjs b/lib/dist/grammar/move.mjs new file mode 100644 index 0000000..4738fbf --- /dev/null +++ b/lib/dist/grammar/move.mjs @@ -0,0 +1 @@ +var e="Move",n="move",t=[{include:"#address"},{include:"#comments"},{include:"#module"},{include:"#script"},{include:"#annotation"},{begin:"\\b(while)\\b",comment:"While experiment",name:"keyword.control.while.whaaat.move",while:"[a-z]"},{include:"#comments"},{include:"#annotation"},{include:"#entry"},{include:"#public-scope"},{include:"#public"},{include:"#native"},{include:"#import"},{include:"#friend"},{include:"#const"},{include:"#struct"},{include:"#has_ability"},{include:"#enum"},{include:"#macro"},{include:"#fun"},{include:"#spec"}],m={"=== DEPRECATED_BELOW ===":{},abilities:{comment:"Ability",match:"\\b(store|key|drop|copy)\\b",name:"support.type.ability.move"},address:{begin:"\\b(address)\\b",beginCaptures:{1:{name:"storage.modifier.type.address.keyword.move"}},comment:"Address block",end:"(?<=})",name:"meta.address_block.move",patterns:[{include:"#comments"},{begin:"(?<=address)",comment:"Address value/const",end:"(?=[{])",name:"meta.address.definition.move",patterns:[{include:"#comments"},{include:"#address_literal"},{comment:"Named Address",match:"\\b(\\w+)\\b",name:"entity.name.type.move"}]},{include:"#module"}]},annotation:{begin:"#\\[",end:"\\]",name:"support.constant.annotation.move",patterns:[{comment:"Annotation name",match:"\\b(\\w+)\\s*(?=\\=)",name:"meta.annotation.name.move"},{begin:"=",comment:"Annotation value",end:"(?=[,\\]])",name:"meta.annotation.value.move",patterns:[{include:"#literals"}]}]},as:{comment:"Keyword as (highlighted)",match:"\\b(as)\\b",name:"keyword.control.as.move"},"as-import":{comment:"Keyword as in import statement; not highlighted",match:"\\b(as)\\b",name:"meta.import.as.move"},block:{begin:"{",comment:"Block expression or definition",end:"}",name:"meta.block.move",patterns:[{include:"#expr"}]},"block-comments":{patterns:[{begin:"/\\*[\\*!](?![\\*/])",comment:"Block documentation comment",end:"\\*/",name:"comment.block.documentation.move"},{begin:"/\\*",comment:"Block comment",end:"\\*/",name:"comment.block.move"}]},capitalized:{comment:"MyType - capitalized type name",match:"\\b([A-Z][a-zA-Z_0-9]*)\\b",name:"entity.name.type.use.move"},comments:{name:"meta.comments.move",patterns:[{include:"#doc-comments"},{include:"#line-comments"},{include:"#block-comments"}]},const:{begin:"\\b(const)\\b",beginCaptures:{1:{name:"storage.modifier.const.move"}},end:";",name:"meta.const.move",patterns:[{include:"#comments"},{include:"#primitives"},{include:"#literals"},{match:"\\b([\\w_]+)\\b",name:"constant.other.move"}]},control:{comment:"Control flow",match:"\\b(return|while|loop|if|else|break|continue|abort)\\b",name:"keyword.control.move"},"doc-comments":{begin:"///",comment:"Documentation comment",end:"$",name:"comment.block.documentation.move",patterns:[{captures:{1:{name:"markup.underline.link.move"}},comment:"Escaped member / link",match:"`(\\w+)`"}]},entry:{comment:"entry",match:"\\b(entry)\\b",name:"storage.modifier.visibility.entry.move"},enum:{begin:"\\b(enum)\\b",beginCaptures:{1:{name:"keyword.control.enum.move"}},comment:"Enum syntax",end:"(?<=})",name:"meta.enum.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#type_param"},{comment:"Enum name (ident)",match:"\\b[A-Z][a-zA-Z_0-9]*\\b",name:"entity.name.type.enum.move"},{include:"#has"},{include:"#abilities"},{begin:"{",end:"}",name:"meta.enum.definition.move",patterns:[{include:"#comments"},{begin:"\\(",end:"\\)",name:"meta.enum.tuple.move",patterns:[{include:"#comments"},{include:"#types"}]},{begin:"{",end:"}",name:"meta.enum.struct.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#types"}]}]}]},error_const:{match:"\\b(E[A-Z][A-Za-z_]*)\\b",name:"variable.language.error.move"},escaped_identifier:{begin:"`",comment:"Escaped variable",end:"`",name:"variable.language.escaped.move"},expr:{comment:"Aggregate Expression",name:"meta.expression.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#expr_generic"},{include:"#error_const"},{include:"#packed_field"},{include:"#import"},{include:"#as"},{include:"#mut"},{include:"#let"},{include:"#types"},{include:"#literals"},{include:"#control"},{include:"#move_copy"},{include:"#resource_methods"},{include:"#self_access"},{include:"#module_access"},{include:"#label"},{include:"#macro_call"},{include:"#local_call"},{include:"#method_call"},{include:"#path_access"},{include:"#match_expression"},{match:"\\$(?=[a-z])",name:"keyword.operator.macro.dollar.move"},{match:"(?<=[$])[a-z][A-Z_0-9a-z]*",name:"variable.other.meta.move"},{comment:"ALL_CONST_CAPS",match:"\\b([A-Z][A-Z_]+)\\b",name:"constant.other.move"},{comment:"CustomType",match:"\\b([A-Z][a-zA-Z_0-9]*)\\b",name:"entity.name.type.move"},{include:"#paren"},{include:"#block"}]},expr_generic:{begin:"<(?=([\\sa-z_,0-9A-Z<>]+>))",comment:"< angle brackets >",end:">",name:"meta.expression.generic.type.move",patterns:[{include:"#comments"},{include:"#types"},{include:"#capitalized"},{include:"#expr_generic"}]},friend:{begin:"\\b(friend)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.friend.move",patterns:[{include:"#comments"},{include:"#address_literal"},{comment:"Name of the imported module",match:"\\b([a-zA-Z][A-Za-z_0-9]*)\\b",name:"entity.name.type.module.move"}]},fun:{patterns:[{include:"#fun_signature"},{include:"#block"}]},fun_body:{begin:"{",comment:"Function body",end:"(?<=})",name:"meta.fun_body.move",patterns:[{include:"#expr"}]},fun_call:{begin:"\\b(\\w+)\\s*(?:<[\\w\\s,]+>)?\\s*[(]",beginCaptures:{1:{name:"entity.name.function.call.move"}},comment:"Function call",end:"[)]",name:"meta.fun_call.move",patterns:[{include:"#comments"},{include:"#resource_methods"},{include:"#self_access"},{include:"#module_access"},{include:"#move_copy"},{include:"#literals"},{include:"#fun_call"},{include:"#block"},{include:"#mut"},{include:"#as"}]},fun_signature:{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"storage.modifier.fun.move"}},comment:"Function signature",end:"(?=[;{])",name:"meta.fun_signature.move",patterns:[{include:"#comments"},{include:"#module_access"},{include:"#capitalized"},{include:"#types"},{include:"#mut"},{begin:"(?<=\\bfun)",comment:"Function name",end:"(?=[<(])",name:"meta.function_name.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{match:"\\b(\\w+)\\b",name:"entity.name.function.move"}]},{include:"#type_param"},{begin:"[(]",comment:"Parentheses",end:"[)]",name:"meta.parentheses.move",patterns:[{include:"#comments"},{include:"#self_access"},{include:"#expr_generic"},{include:"#escaped_identifier"},{include:"#module_access"},{include:"#capitalized"},{include:"#types"},{include:"#mut"}]},{comment:"Keyword acquires",match:"\\b(acquires)\\b",name:"storage.modifier"}]},has:{comment:"Has Abilities",match:"\\b(has)\\b",name:"keyword.control.ability.has.move"},has_ability:{begin:"(?<=[})])\\s+(has)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.has.ability.move",patterns:[{include:"#comments"},{include:"#abilities"}]},ident:{match:"\\b([a-zA-Z][A-Z_a-z0-9]*)\\b",name:"meta.identifier.move"},import:{begin:"\\b(use)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:";",name:"meta.import.move",patterns:[{include:"#comments"},{include:"#use_fun"},{include:"#address_literal"},{include:"#as-import"},{comment:"Uppercase entities",match:"\\b([A-Z]\\w*)\\b",name:"entity.name.type.move"},{begin:"{",comment:"Module members",end:"}",patterns:[{include:"#comments"},{include:"#as-import"},{comment:"Uppercase entities",match:"\\b([A-Z]\\w*)\\b",name:"entity.name.type.move"}]},{comment:"Name of the imported module",match:"\\b(\\w+)\\b",name:"meta.entity.name.type.module.move"}]},label:{comment:"Label",match:"'[a-z][a-z_0-9]*",name:"string.quoted.single.label.move"},let:{comment:"Keyword let",match:"\\b(let)\\b",name:"keyword.control.move"},"line-comments":{begin:"//",comment:"Single-line comment",end:"$",name:"comment.line.double-slash.move"},literals:{comment:"Literals supported in Move",name:"meta.literal.move",patterns:[{comment:"base16 address literal",match:"@0x[A-F0-9a-f]+",name:"support.constant.address.base16.move"},{comment:"named address literal @[ident]",match:"@[a-zA-Z][a-zA-Z_0-9]*",name:"support.constant.address.name.move"},{comment:"Hex literal",match:"0x[_a-fA-F0-9]+(?:u(?:8|16|32|64|128|256))?",name:"constant.numeric.hex.move"},{comment:"Numeric literal",match:"(?<!(?:\\w|(?:(?<!\\.)\\.)))[0-9][_0-9]*(?:\\.(?!\\.)(?:[0-9][_0-9]*)?)?(?:[eE][+\\-]?[_0-9]+)?(?:[u](?:8|16|32|64|128|256))?",name:"constant.numeric.move"},{begin:'\\bb"',comment:"vector ascii bytestring literal",end:'"',name:"meta.vector.literal.ascii.move",patterns:[{comment:"character escape",match:"\\\\.",name:"constant.character.escape.move"},{comment:"Special symbol escape",match:'\\\\[nrt\\0"]',name:"constant.character.escape.move"},{comment:"HEX Escape",match:"\\\\x[a-fA-F0-9][A-Fa-f0-9]",name:"constant.character.escape.hex.move"},{comment:"ASCII Character",match:"[\\x00-\\x7F]",name:"string.quoted.double.raw.move"}]},{begin:'x"',comment:"vector hex literal",end:'"',name:"meta.vector.literal.hex.move",patterns:[{comment:"vector hex literal",match:"[A-Fa-f0-9]+",name:"constant.character.move"}]},{comment:"bool literal",match:"\\b(?:true|false)\\b",name:"constant.language.boolean.move"},{begin:"vector\\[",comment:"vector literal (macro?)",end:"\\]",name:"meta.vector.literal.macro.move",patterns:[{include:"#expr"}]}]},local_call:{comment:"call to a local / imported fun",match:"\\b([a-z][_a-z0-9]*)(?=[<\\(])",name:"entity.name.function.call.local.move"},macro:{begin:"\\b(macro)\\b",beginCaptures:{1:{name:"keyword.control.macro.move"}},comment:"macro fun [ident] {}",end:"(?<=})",name:"meta.macro.move",patterns:[{include:"#comments"},{include:"#fun"}]},macro_call:{captures:{2:{name:"support.function.macro.move"}},comment:"Macro fun call",match:"(\\b|\\.)([a-z][A-Za-z0-9_]*)!",name:"meta.macro.call"},match_expression:{begin:"\\b(match)\\b",beginCaptures:{1:{name:"keyword.control.match.move"}},comment:"enum pattern matching",end:"(?<=})",name:"meta.match.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#types"},{begin:"{",comment:"Block expression or definition",end:"}",name:"meta.match.block.move",patterns:[{comment:"arrow operator",match:"\\b(=>)\\b",name:"operator.match.move"},{include:"#expr"}]},{include:"#expr"}]},method_call:{captures:{1:{name:"entity.name.function.call.path.move"}},comment:"<expr>.[ident]<>?() call",match:"\\.([a-z][_a-z0-9]*)(?=[<\\(])",name:"meta.path.call.move"},module:{begin:"\\b(module|spec)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},comment:"Module definition",end:"(?<=[;}])",name:"meta.module.move",patterns:[{include:"#comments"},{begin:"(?<=(module|spec))",comment:"Module name",end:"(?=[;{])",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{begin:"(?<=\\b(module|spec))",comment:"Module namespace / address",end:"(?=[(::){])",name:"constant.other.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"}]},{begin:"(?<=::)",comment:"Module name",end:"(?=[\\s;{])",name:"entity.name.type.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"}]}]},{begin:"{",comment:"Module scope",end:"}",name:"meta.module_scope.move",patterns:[{include:"#comments"},{include:"#annotation"},{include:"#entry"},{include:"#public-scope"},{include:"#public"},{include:"#native"},{include:"#import"},{include:"#friend"},{include:"#const"},{include:"#struct"},{include:"#has_ability"},{include:"#enum"},{include:"#macro"},{include:"#fun"},{include:"#spec"}]}]},module_access:{captures:{1:{name:"meta.entity.name.type.accessed.module.move"},2:{name:"entity.name.function.call.move"}},comment:"Use of module type or method",match:"\\b(\\w+)::(\\w+)\\b",name:"meta.module_access.move"},module_label:{begin:"^\\s*(module)\\b",comment:"Module label, inline module definition",end:";\\s*$",name:"meta.module.label.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{begin:"(?<=\\b(module|spec))",comment:"Module namespace / address",end:"(?=[(::){])",name:"constant.other.move"},{begin:"(?<=::)",comment:"Module name",end:"(?=[\\s{])",name:"entity.name.type.move"}]},move_copy:{comment:"Keywords move and copy",match:"\\b(move|copy)\\b",name:"variable.language.move"},mut:{comment:"Mutable reference and let mut",match:"\\b(mut)\\b",name:"storage.modifier.mut.move"},native:{comment:"native",match:"\\b(native)\\b",name:"storage.modifier.visibility.native.move"},packed_field:{comment:"[ident]: ",match:"[a-z][a-z0-9_]+\\s*:\\s*(?=\\s)",name:"meta.struct.field.move"},paren:{begin:"\\(",end:"\\)",name:"meta.paren.move",patterns:[{include:"#expr"}]},path_access:{comment:"<expr>.[ident] access",match:"\\.[a-z][_a-z0-9]*\\b",name:"meta.path.access.move"},phantom:{comment:"Keyword phantom inside type parameters",match:"\\b(phantom)\\b",name:"keyword.control.phantom.move"},primitives:{comment:"Primitive types",match:"\\b(u8|u16|u32|u64|u128|u256|address|bool|signer)\\b",name:"support.type.primitives.move"},public:{comment:"public",match:"\\b(public)\\b",name:"storage.modifier.visibility.public.move"},"public-scope":{begin:"(?<=\\b(public))\\s*\\(",comment:"public (friend/script/package)",end:"\\)",name:"meta.public.scoped.move",patterns:[{include:"#comments"},{match:"\\b(friend|script|package)\\b",name:"keyword.control.public.scope.move"}]},resource_methods:{comment:"Methods to work with resource",match:"\\b(borrow_global|borrow_global_mut|exists|move_from|move_to_sender|move_to)\\b",name:"support.function.typed.move"},script:{begin:"\\b(script)\\b",beginCaptures:{1:{name:"storage.modifier.script.move"}},end:"(?<=})",name:"meta.script.move",patterns:[{include:"#comments"},{begin:"{",comment:"Script scope",end:"}",name:"meta.script_scope.move",patterns:[{include:"#const"},{include:"#comments"},{include:"#import"},{include:"#fun"}]}]},self_access:{captures:{1:{name:"variable.language.self.move"},2:{name:"entity.name.function.call.move"}},comment:"Use of Self",match:"\\b(Self)::(\\w+)\\b",name:"meta.self_access.move"},spec:{begin:"\\b(spec)\\b",beginCaptures:{1:{name:"storage.modifier.spec.move"}},end:"(?<=[;}])",name:"meta.spec.move",patterns:[{comment:"Spec target",match:"\\b(module|schema|struct|fun)",name:"storage.modifier.spec.target.move"},{comment:"Spec define inline",match:"\\b(define)",name:"storage.modifier.spec.define.move"},{comment:"Target name",match:"\\b(\\w+)\\b",name:"entity.name.function.move"},{begin:"{",comment:"Spec block",end:"}",patterns:[{include:"#comments"},{include:"#spec_block"},{include:"#spec_types"},{include:"#spec_define"},{include:"#spec_keywords"},{include:"#control"},{include:"#fun_call"},{include:"#literals"},{include:"#types"},{include:"#let"}]}]},spec_block:{begin:"{",comment:"Spec block",end:"}",name:"meta.spec_block.move",patterns:[{include:"#comments"},{include:"#spec_block"},{include:"#spec_types"},{include:"#fun_call"},{include:"#literals"},{include:"#control"},{include:"#types"},{include:"#let"}]},spec_define:{begin:"\\b(define)\\b",beginCaptures:{1:{name:"keyword.control.move.spec"}},comment:"Spec define keyword",end:"(?=[;{])",name:"meta.spec_define.move",patterns:[{include:"#comments"},{include:"#spec_types"},{include:"#types"},{begin:"(?<=\\bdefine)",comment:"Function name",end:"(?=[(])",patterns:[{include:"#comments"},{match:"\\b(\\w+)\\b",name:"entity.name.function.move"}]}]},spec_keywords:{match:"\\b(global|pack|unpack|pragma|native|include|ensures|requires|invariant|apply|aborts_if|modifies)\\b",name:"keyword.control.move.spec"},spec_types:{comment:"Spec-only types",match:"\\b(range|num|vector|bool|u8|u16|u32|u64|u128|u256|address)\\b",name:"support.type.vector.move"},struct:{begin:"\\b(struct)\\b",beginCaptures:{1:{name:"storage.modifier.type.move"}},end:"(?<=[};\\)])",name:"meta.struct.move",patterns:[{include:"#comments"},{include:"#escaped_identifier"},{include:"#has"},{include:"#abilities"},{comment:"Struct name (ident)",match:"\\b[A-Z][a-zA-Z_0-9]*\\b",name:"entity.name.type.struct.move"},{begin:"\\(",comment:"Positional fields",end:"\\)",name:"meta.struct.paren.move",patterns:[{include:"#comments"},{include:"#capitalized"},{include:"#types"}]},{include:"#type_param"},{begin:"\\(",comment:"Simple struct",end:"(?<=[)])",name:"meta.struct.paren.move",patterns:[{include:"#comments"},{include:"#types"}]},{begin:"{",comment:"Struct body",end:"}",name:"meta.struct.body.move",patterns:[{include:"#comments"},{include:"#self_access"},{include:"#escaped_identifier"},{include:"#module_access"},{include:"#expr_generic"},{include:"#capitalized"},{include:"#types"}]},{include:"#has_ability"}]},struct_pack:{begin:"(?<=[A-Za-z0-9_>])\\s*{",comment:"Struct { field: value... }; identified as generic / ident followed by curly's",end:"}",name:"meta.struct.pack.move",patterns:[{include:"#comments"}]},type_param:{begin:"<",comment:"Generic type param",end:">",name:"meta.generic_param.move",patterns:[{include:"#comments"},{include:"#phantom"},{include:"#capitalized"},{include:"#module_access"},{include:"#abilities"}]},types:{comment:"Built-in types + vector",name:"meta.types.move",patterns:[{include:"#primitives"},{include:"#vector"}]},use_fun:{begin:"\\b(fun)\\b",beginCaptures:{1:{name:"storage.modifier.fun.move"}},comment:"use { fun } internals",end:"(?=;)",name:"meta.import.fun.move",patterns:[{include:"#comments"},{comment:"as keyword",match:"\\b(as)\\b",name:"keyword.control.as.move"},{comment:"Self keyword",match:"\\b(Self)\\b",name:"variable.language.self.use.fun.move"},{comment:"Function name",match:"\\b(_______[a-z][a-z_0-9]+)\\b",name:"entity.name.function.use.move"},{include:"#types"},{include:"#escaped_identifier"},{include:"#capitalized"}]},vector:{comment:"vector type",match:"\\b(vector)\\b",name:"support.type.vector.move"}},a="source.move",c={displayName:e,name:n,patterns:t,repository:m,scopeName:a};export{c as default,e as displayName,n as name,t as patterns,m as repository,a as scopeName}; diff --git a/lib/dist/grammar/narrat.mjs b/lib/dist/grammar/narrat.mjs new file mode 100644 index 0000000..2049117 --- /dev/null +++ b/lib/dist/grammar/narrat.mjs @@ -0,0 +1 @@ +var a="Narrat Language",e="narrat",t=[{include:"#comments"},{include:"#expression"}],n={commands:{patterns:[{match:"\\b(set|var)\\b",name:"keyword.commands.variables.narrat"},{match:"\\b(talk|think)\\b",name:"keyword.commands.text.narrat"},{match:"\\b(jump|run|wait|return|save|save_prompt)",name:"keyword.commands.flow.narrat"},{match:"\\b(log|clear_dialog)\\b",name:"keyword.commands.helpers.narrat"},{match:"\\b(set_screen|empty_layer|set_button)",name:"keyword.commands.screens.narrat"},{match:"\\b(play|pause|stop)\\b",name:"keyword.commands.audio.narrat"},{match:"\\b(notify|enable_notifications|disable_notifications)\\b",name:"keyword.commands.notifications.narrat"},{match:"\\b(set_stat|get_stat_value|add_stat)",name:"keyword.commands.stats.narrat"},{match:"\\b(neg|abs|random|random_float|random_from_args|min|max|clamp|floor|round|ceil|sqrt|^)\\b",name:"keyword.commands.math.narrat"},{match:"\\b(concat|join)\\b",name:"keyword.commands.string.narrat"},{match:"\\b(text_field)\\b",name:"keyword.commands.text_field.narrat"},{match:"\\b(add_level|set_level|add_xp|roll|get_level|get_xp)\\b",name:"keyword.commands.skills.narrat"},{match:"\\b(add_item|remove_item|enable_interaction|disable_interaction|has_item?|item_amount?)",name:"keyword.commands.inventory.narrat"},{match:"\\b(start_quest|start_objective|complete_objective|complete_quest|quest_started?|objective_started?|quest_completed?|objective_completed?)",name:"keyword.commands.quests.narrat"}]},comments:{patterns:[{match:"\\/\\/.*$",name:"comment.line.narrat"}]},expression:{patterns:[{include:"#keywords"},{include:"#commands"},{include:"#operators"},{include:"#primitives"},{include:"#strings"},{include:"#paren-expression"}]},interpolation:{patterns:[{match:"(\\w|\\.)+",name:"variable.interpolation.narrat"}]},keywords:{patterns:[{match:"\\b(if|else|choice)\\b",name:"keyword.control.narrat"},{match:"\\$[\\w|\\.]+\\b",name:"variable.value.narrat"},{match:"(?x)\n^\\w+\n(?=(\\s|\\w)*:)\n",name:"entity.name.function.narrat"},{match:"(?x)\n^\\w+\n(?!(\\s|\\w)*:)\n",name:"invalid.label.narrat"},{match:"(?<=\\w)[^^](\\b\\w+\\b)(?=(\\s|\\w)*:)",name:"entity.other.attribute-name"}]},operators:{patterns:[{match:"(&&|\\|\\||!=|==|>=|<=|<|>|!|\\?)\\s",name:"keyword.operator.logic.narrat"},{match:"(\\+|-|\\*|\\/)\\s",name:"keyword.operator.arithmetic.narrat"}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.paren.open"}},end:"\\)",endCaptures:{0:{name:"punctuation.paren.close"}},name:"expression.group",patterns:[{include:"#expression"}]},primitives:{patterns:[{match:"\\b\\d+\\b",name:"constant.numeric.narrat"},{match:"\\btrue\\b",name:"constant.language.true.narrat"},{match:"\\bfalse\\b",name:"constant.language.false.narrat"},{match:"\\bnull\\b",name:"constant.language.null.narrat"},{match:"\\bundefined\\b",name:"constant.language.undefined.narrat"}]},strings:{begin:'"',end:'"',name:"string.quoted.double.narrat",patterns:[{match:"\\\\.",name:"constant.character.escape.narrat"},{begin:"%{",beginCaptures:{0:{name:"punctuation.template.open"}},end:"}",endCaptures:{0:{name:"punctuation.template.close.narrat"}},name:"expression.template",patterns:[{include:"#expression"},{include:"#interpolation"}]}]}},r="source.narrat",m={displayName:a,name:e,patterns:t,repository:n,scopeName:r};export{m as default,a as displayName,e as name,t as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/nextflow.mjs b/lib/dist/grammar/nextflow.mjs new file mode 100644 index 0000000..d5f767f --- /dev/null +++ b/lib/dist/grammar/nextflow.mjs @@ -0,0 +1 @@ +var e="Nextflow",n="nextflow",o=[{include:"#nfl-rules"}],t={"implicit-variables":{patterns:[{match:"(?<=[^\\.\\w]|^)(params|nextflow|workflow|launchDir|moduleDir|projectDir|workDir)\\b",name:"variable.language.nextflow"}]},"include-statement":{patterns:[{match:"^\\b(include)\\b",name:"keyword.nextflow"},{match:"\\b(from)\\b",name:"keyword.nextflow"}]},"nfl-rules":{patterns:[{include:"#process-def"},{include:"#workflow-def"},{include:"#code-block"},{include:"#include-statement"},{include:"#implicit-variables"},{begin:"(\\w*\\()",beginCaptures:{1:{patterns:[{include:"source.nextflow-groovy"}]}},comment:"method call and parens",end:"\\)",patterns:[{include:"#nfl-rules"}]},{begin:"{",comment:"braces",end:"}",patterns:[{include:"#nfl-rules"}]},{include:"source.nextflow-groovy"}]},"process-body":{patterns:[{match:"(?:accelerator|afterScript|beforeScript|cache|cpus|conda|container|containerOptions|clusterOptions|debug|disk|echo|errorStrategy|executor|ext|label|machineType|maxErrors|maxForks|maxRetries|memory|module|penv|pod|publishDir|queue|resourceLabels|scratch|stageInMode|stageOutMode|storeDir|tag|time)\\b",name:"entity.name.function.nextflow"},{match:"(?:input|output|when|script|shell|exec):",name:"constant.block.nextflow"},{match:"\\b(tuple|set|path|file|val|stdout)(\\(|\\s)",name:"entity.name.function.nextflow"},{include:"#implicit-variables"},{begin:"(\\w*\\()",beginCaptures:{1:{patterns:[{include:"source.nextflow-groovy"}]}},comment:"method call and parens",end:"\\)",patterns:[{include:"#process-body"}]},{begin:"{",comment:"braces",end:"}",patterns:[{include:"#process-body"}]},{include:"source.nextflow-groovy#comments"},{include:"source.nextflow-groovy#support-functions"},{include:"source.nextflow-groovy#keyword"},{include:"source.nextflow-groovy#values"},{include:"source.nextflow-groovy#anonymous-classes-and-new"},{include:"source.nextflow-groovy#types"},{include:"source.nextflow-groovy#parens"},{include:"source.nextflow-groovy#closures"},{include:"source.nextflow-groovy#braces"}]},"process-def":{begin:"^\\s*(process)\\s+(\\w+|\"[^\"]+\"|'[^']+')\\s*{",beginCaptures:{1:{name:"keyword.nextflow"},2:{name:"function.nextflow"}},end:"}",name:"process.nextflow",patterns:[{include:"#process-body"}]},"workflow-body":{patterns:[{include:"#implicit-variables"},{match:"(?:take|main|emit):",name:"constant.block.nextflow"},{match:"(?<=[\\s\\.])(branch|buffer|close|collate|collect|collectFile|combine|concat|count|countBy|cross|distinct|dump|filter|first|flatMap|flatten|groupTuple|ifEmpty|join|last|map|max|merge|min|mix|multiMap|randomSample|reduce|set|splitCsv|splitFasta|splitFastq|splitText|sum|take|tap|toInteger|toList|toSortedList|transpose|unique|until|view)(?=[{\\(\\s])",name:"entity.name.function.nextflow"},{captures:{1:{name:"keyword.nextflow"},2:{name:"entity.name.function.nextflow"}},comment:"Channel factory single line",match:"\\b((?:C|c)hannel\\.)((fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?"},{begin:"\\b((?:C|c)hannel)\\s*$",beginCaptures:{1:{name:"keyword.nextflow"}},comment:"Channel factory multi-line",end:"(^\\s*)(?:(\\.)(fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?",endCaptures:{1:{name:"keyword.nextflow"},2:{name:"keyword.nextflow"},3:{name:"entity.name.function.nextflow"}}},{begin:"(\\w*\\()",beginCaptures:{1:{patterns:[{include:"source.nextflow-groovy"}]}},comment:"method call and parens",end:"\\)",patterns:[{include:"#workflow-body"}]},{begin:"{",comment:"braces",end:"}",patterns:[{include:"#workflow-body"}]},{include:"source.nextflow-groovy#comments"},{include:"source.nextflow-groovy#support-functions"},{include:"source.nextflow-groovy#keyword"},{include:"source.nextflow-groovy#values"},{include:"source.nextflow-groovy#anonymous-classes-and-new"},{include:"source.nextflow-groovy#types"},{include:"source.nextflow-groovy#parens"},{include:"source.nextflow-groovy#closures"},{include:"source.nextflow-groovy#braces"}]},"workflow-def":{begin:"^\\s*(workflow)(?:\\s+(\\w+|\"[^\"]+\"|'[^']+'))?\\s*{",beginCaptures:{1:{name:"keyword.nextflow"},2:{name:"constant.nextflow"}},end:"}",name:"workflow.nextflow",patterns:[{include:"#workflow-body"}]}},r="source.nextflow",l={displayName:e,name:n,patterns:o,repository:t,scopeName:r};export{l as default,e as displayName,n as name,o as patterns,t as repository,r as scopeName}; diff --git a/lib/dist/grammar/nginx.mjs b/lib/dist/grammar/nginx.mjs new file mode 100644 index 0000000..dfc7056 --- /dev/null +++ b/lib/dist/grammar/nginx.mjs @@ -0,0 +1 @@ +var e="Nginx",n=["conf.erb","conf","ngx","nginx.conf","mime.types","fastcgi_params","scgi_params","uwsgi_params"],i="\\{\\s*$",t="^\\s*\\}",r="nginx",a=[{match:"\\#.*",name:"comment.line.number-sign"},{begin:"\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\s*\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},contentName:"meta.embedded.block.lua",end:"\\}",name:"meta.context.lua.nginx",patterns:[{include:"source.lua"}]},{begin:"\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\s*'",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},contentName:"meta.embedded.block.lua",end:"'",name:"meta.context.lua.nginx",patterns:[{include:"source.lua"}]},{begin:"\\b(events) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.events.nginx",patterns:[{include:"$self"}]},{begin:"\\b(http) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.http.nginx",patterns:[{include:"$self"}]},{begin:"\\b(mail) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.mail.nginx",patterns:[{include:"$self"}]},{begin:"\\b(stream) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.stream.nginx",patterns:[{include:"$self"}]},{begin:"\\b(server) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.server.nginx",patterns:[{include:"$self"}]},{begin:"\\b(location) +([\\^]?~[\\*]?|=) +(.*?)\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"keyword.operator.nginx"},3:{name:"string.regexp.nginx"}},end:"\\}",name:"meta.context.location.nginx",patterns:[{include:"$self"}]},{begin:"\\b(location) +(.*?)\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"entity.name.context.location.nginx"}},end:"\\}",name:"meta.context.location.nginx",patterns:[{include:"$self"}]},{begin:"\\b(limit_except) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.limit_except.nginx",patterns:[{include:"$self"}]},{begin:"\\b(if) +\\(",beginCaptures:{1:{name:"keyword.control.nginx"}},end:"\\)",name:"meta.context.if.nginx",patterns:[{include:"#if_condition"}]},{begin:"\\b(upstream) +(.*?)\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"entity.name.context.location.nginx"}},end:"\\}",name:"meta.context.upstream.nginx",patterns:[{include:"$self"}]},{begin:"\\b(types) +\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"}},end:"\\}",name:"meta.context.types.nginx",patterns:[{include:"$self"}]},{begin:"\\b(map) +(\\$)([A-Za-z0-9\\_]+) +(\\$)([A-Za-z0-9\\_]+) *\\{",beginCaptures:{1:{name:"storage.type.directive.context.nginx"},2:{name:"punctuation.definition.variable.nginx"},3:{name:"variable.parameter.nginx"},4:{name:"punctuation.definition.variable.nginx"},5:{name:"variable.other.nginx"}},end:"\\}",name:"meta.context.map.nginx",patterns:[{include:"#values"},{match:";",name:"punctuation.terminator.nginx"},{match:"\\#.*",name:"comment.line.number-sign"}]},{begin:"\\{",end:"\\}",name:"meta.block.nginx",patterns:[{include:"$self"}]},{begin:"\\b(return)\\b",beginCaptures:{1:{name:"keyword.control.nginx"}},end:";",patterns:[{include:"#values"}]},{begin:"\\b(rewrite)\\s+",beginCaptures:{1:{name:"keyword.directive.nginx"}},end:"(last|break|redirect|permanent)?(;)",endCaptures:{1:{name:"keyword.other.nginx"},2:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b(server)\\s+",beginCaptures:{1:{name:"keyword.directive.nginx"}},end:";",endCaptures:{1:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#server_parameters"}]},{begin:"\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\b",beginCaptures:{1:{name:"keyword.directive.nginx"}},end:"(;|$)",endCaptures:{1:{name:"punctuation.terminator.nginx"}}},{begin:"([\"'\\s]|^)(accept_)(mutex|mutex_delay)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(debug_)(connection|points)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(error_)(log|page)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_cache|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(keepalive_)(disable|requests|time|timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(lingering_)(close|time|timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(log_)(not_found|subrequest|format)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(max_)(ranges|errors)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(msie_)(padding|refresh)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(send_)(lowat|timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(tcp_)(nodelay|nopush)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(types_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(variables_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(add_)(before_body|after_body|header|trailer)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(status_)(zone|format)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(autoindex_)(exact_size|format|localtime)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(ancient_)(browser|browser_value)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(modern_)(browser|browser_value)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(charset_)(map|types)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(dav_)(access|methods)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(map_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after|start_key_frame)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(perl_)(modules|require|set)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(real_)(ip_header|ip_recursive)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(referer_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(secure_)(link|link_md5|link_secret)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(session_)(log|log_format|log_zone)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(health_)(check|check_timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(http3_)(hq|max_concurrent_streams|stream_buffer_size)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(quic_)(active_connection_id_limit|bpf|gso|host_key|retry)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(imap_)(auth|capabilities|client_buffer)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(pop3_)(auth|capabilities)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(preread_)(buffer_size|timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(mqtt_)(preread|buffers|rewrite_buffer_size|set_connect)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(otel_)(exporter|service_name|trace|trace_context|span_name|span_attr)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(js_)(body_filter|content|fetch_buffer_size|fetch_ciphers|fetch_max_response_buffer_size|fetch_protocols|fetch_timeout|fetch_trusted_certificate|fetch_verify|fetch_verify_depth|header_filter|import|include|path|periodic|preload_object|set|shared_dict_zone|var|access|filter|preread)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"},4:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|http2|http3|protocol|timeout|xclient|starttls|mqtt|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|internal_redirect|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)([\"'\\s]|$)",beginCaptures:{1:{name:"keyword.directive.nginx"},2:{name:"keyword.directive.nginx"},3:{name:"keyword.directive.nginx"}},end:";",endCaptures:{0:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b([a-zA-Z0-9\\_]+)\\s+",beginCaptures:{1:{name:"keyword.directive.unknown.nginx"}},end:"(;|$)",endCaptures:{1:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b([a-z]+\\/[A-Za-z0-9\\-\\.\\+]+)\\b",beginCaptures:{1:{name:"constant.other.mediatype.nginx"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]}],s={if_condition:{patterns:[{include:"#variables"},{match:"\\!?\\~\\*?\\s",name:"keyword.operator.nginx"},{match:"\\!?\\-[fdex]\\s",name:"keyword.operator.nginx"},{match:"\\!?=[^=]",name:"keyword.operator.nginx"},{include:"#regexp_and_string"}]},regexp_and_string:{patterns:[{match:"\\^.*?\\$",name:"string.regexp.nginx"},{begin:'"',end:'"',name:"string.quoted.double.nginx",patterns:[{match:"\\\\[\"'nt\\\\]",name:"constant.character.escape.nginx"},{include:"#variables"}]},{begin:"'",end:"'",name:"string.quoted.single.nginx",patterns:[{match:"\\\\[\"'nt\\\\]",name:"constant.character.escape.nginx"},{include:"#variables"}]}]},server_parameters:{patterns:[{captures:{1:{name:"variable.parameter.nginx"},2:{name:"keyword.operator.nginx"},3:{name:"constant.numeric.nginx"}},match:"(?:^|\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)(\\d[\\d\\.]*[bBkKmMgGtTsShHdD]?)(?:\\s|;|$)"},{include:"#values"}]},values:{patterns:[{include:"#variables"},{match:"\\#.*",name:"comment.line.number-sign"},{captures:{1:{name:"constant.numeric.nginx"}},match:"(?<=\\G|\\s)(=?[0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\t ;])"},{match:"(?<=\\G|\\s)(on|off|true|false)(?=[\\t ;])",name:"constant.language.nginx"},{match:"(?<=\\G|\\s)(kqueue|rtsig|epoll|\\/dev\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\t ;])",name:"constant.language.nginx"},{match:"\\\\.*\\ |\\~\\*|\\~|\\!\\~\\*|\\!\\~",name:"keyword.operator.nginx"},{include:"#regexp_and_string"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.nginx"},2:{name:"variable.other.nginx"}},match:"(\\$)([A-Za-z0-9\\_]+)\\b"},{captures:{1:{name:"punctuation.definition.variable.nginx"},2:{name:"variable.other.nginx"},3:{name:"punctuation.definition.variable.nginx"}},match:"(\\$\\{)([A-Za-z0-9\\_]+)(\\})"}]}},d="source.nginx",c={displayName:e,fileTypes:n,foldingStartMarker:i,foldingStopMarker:t,name:r,patterns:a,repository:s,scopeName:d};export{c as default,e as displayName,n as fileTypes,i as foldingStartMarker,t as foldingStopMarker,r as name,a as patterns,s as repository,d as scopeName}; diff --git a/lib/dist/grammar/nim.mjs b/lib/dist/grammar/nim.mjs new file mode 100644 index 0000000..5ec3a22 --- /dev/null +++ b/lib/dist/grammar/nim.mjs @@ -0,0 +1 @@ +var e="Nim",n=["nim"],t="nim",a=[{begin:"[ \\t]*##\\[",contentName:"comment.block.doc-comment.content.nim",end:"\\]##",name:"comment.block.doc-comment.nim",patterns:[{include:"#multilinedoccomment",name:"comment.block.doc-comment.nested.nim"}]},{begin:"[ \\t]*#\\[",contentName:"comment.block.content.nim",end:"\\]#",name:"comment.block.nim",patterns:[{include:"#multilinecomment",name:"comment.block.nested.nim"}]},{begin:"(^[ \\t]+)?(?=##)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.nim"}},end:"(?!\\G)",patterns:[{begin:"##",beginCaptures:{0:{name:"punctuation.definition.comment.nim"}},end:"\\n",name:"comment.line.number-sign.doc-comment.nim"}]},{begin:"(^[ \\t]+)?(?=#[^\\[])",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.nim"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.nim"}},end:"\\n",name:"comment.line.number-sign.nim"}]},{comment:"A nim procedure or method",name:"meta.proc.nim",patterns:[{begin:"\\b(proc|method|template|macro|iterator|converter|func)\\s+\\`?([^\\:\\{\\s\\`\\*\\(]*)\\`?(\\s*\\*)?\\s*(?=\\(|\\=|:|\\[|\\n|\\{)",captures:{1:{name:"keyword.other"},2:{name:"entity.name.function.nim"},3:{name:"keyword.control.export"}},end:"\\)",patterns:[{include:"source.nim"}]}]},{begin:'discard """',comment:"A discarded triple string literal comment",end:'"""(?!")',name:"comment.line.discarded.nim"},{include:"#float_literal"},{include:"#integer_literal"},{comment:"Operator as function name",match:"(?<=\\`)[^\\` ]+(?=\\`)",name:"entity.name.function.nim"},{captures:{1:{name:"keyword.control.export"}},comment:"Export qualifier.",match:"\\b\\s*(\\*)(?:\\s*(?=[,:])|\\s+(?=[=]))"},{captures:{1:{name:"support.type.nim"},2:{name:"keyword.control.export"}},comment:"Export qualifier following a type def.",match:"\\b([A-Z]\\w+)(\\*)"},{include:"#string_literal"},{comment:"Language Constants.",match:"\\b(true|false|Inf|NegInf|NaN|nil)\\b",name:"constant.language.nim"},{comment:"Keywords that affect program control flow or scope.",match:"\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b",name:"keyword.control.nim"},{comment:"Keyword boolean operators for expressions.",match:"(\\b(and|in|is|isnot|not|notin|or|xor)\\b)",name:"keyword.boolean.nim"},{comment:"Generic operators for expressions.",match:"(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+",name:"keyword.operator.nim"},{comment:"Other keywords.",match:"(\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\b)",name:"keyword.other.nim"},{comment:"Invalid and unused keywords.",match:"(\\b(generic|interface|lambda|out|shared)\\b)",name:"invalid.illegal.invalid-keyword.nim"},{comment:"Common functions",match:"\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\b",name:"keyword.other.common.function.nim"},{comment:"Built-in, concrete types.",match:"\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\b",name:"storage.type.concrete.nim"},{comment:"Built-in, generic types.",match:"\\b(range|array|seq|set|pointer)\\b",name:"storage.type.generic.nim"},{comment:"Special types.",match:"\\b(openarray|varargs|void)\\b",name:"storage.type.generic.nim"},{comment:"Other constants.",match:"\\b[A-Z][A-Z0-9_]+\\b",name:"support.constant.nim"},{comment:"Other types.",match:"\\b[A-Z]\\w+\\b",name:"support.type.nim"},{comment:"Function call.",match:"\\b\\w+\\b(?=(\\[([a-zA-Z0-9_,]|\\s)+\\])?\\()",name:"support.function.any-method.nim"},{comment:"Function call (no parenthesis).",match:"(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b)\\w+\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\"'`(-+]+)\\b)(?=[a-zA-Z0-9_\"'`(-+])",name:"support.function.any-method.nim"},{begin:'(^\\s*)?(?=\\{\\.emit: ?""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'\\{\\.(emit:) ?(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.c",end:'(")""(?!")(\\.{0,1}\\})?',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.c"}},name:"meta.embedded.block.c",patterns:[{begin:"\\`",end:"\\`",name:"keyword.operator.nim"},{include:"source.c"}]}]},{begin:"\\{\\.",beginCaptures:{0:{name:"punctuation.pragma.start.nim"}},end:"\\.?\\}",endCaptures:{0:{name:"punctuation.pragma.end.nim"}},patterns:[{begin:"\\b([[:alpha:]]\\w*)(?:\\s|\\s*:)",beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"}},end:"(?=\\.?\\}|,)",patterns:[{include:"source.nim"}]},{begin:"\\b([[:alpha:]]\\w*)\\(",beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{captures:{1:{name:"meta.preprocessor.pragma.nim"}},match:"\\b([[:alpha:]]\\w*)(?=\\.?\\}|,)"},{begin:'\\b([[:alpha:]]\\w*)(""")',beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},{begin:'\\b([[:alpha:]]\\w*)(")',beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim"},{begin:"\\b(hint\\[\\w+\\]):",beginCaptures:{1:{name:"meta.preprocessor.pragma.nim"}},end:"(?=\\.?\\}|,)",patterns:[{include:"source.nim"}]},{match:",",name:"punctuation.separator.comma.nim"}]},{begin:'(^\\s*)?(?=asm """)',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(asm) (""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.asm",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.asm"}},name:"meta.embedded.block.asm",patterns:[{begin:"\\`",end:"\\`",name:"keyword.operator.nim"},{include:"source.asm"}]}]},{captures:{1:{name:"storage.type.function.nim"},2:{name:"keyword.operator.nim"}},comment:"tmpl specifier",match:'(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?""")'},{begin:'(^\\s*)?(?=html""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(html)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.html",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"text.html"}},name:"meta.embedded.block.html",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.html.basic"}]}]},{begin:'(^\\s*)?(?=xml""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(xml)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.xml",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"text.xml"}},name:"meta.embedded.block.xml",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.xml"}]}]},{begin:'(^\\s*)?(?=js""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(js)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.js",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.js"}},name:"meta.embedded.block.js",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.js"}]}]},{begin:'(^\\s*)?(?=css""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(css)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.css",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.css"}},name:"meta.embedded.block.css",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.css"}]}]},{begin:'(^\\s*)?(?=glsl""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(glsl)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.glsl",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"source.glsl"}},name:"meta.embedded.block.glsl",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.glsl"}]}]},{begin:'(^\\s*)?(?=md""")',beginCaptures:{0:{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{0:{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:'(md)(""")',captures:{1:{name:"keyword.other.nim"},2:{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.html.markdown",end:'(")""(?!")',endCaptures:{0:{name:"punctuation.section.embedded.end.nim"},1:{name:"text.html.markdown"}},name:"meta.embedded.block.html.markdown",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{1:{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{1:{name:"keyword.operator.nim"},2:{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{1:{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.html.markdown"}]}]}],i={char_escapes:{patterns:[{match:"\\\\[cC]|\\\\[rR]",name:"constant.character.escape.carriagereturn.nim"},{match:"\\\\[lL]|\\\\[nN]",name:"constant.character.escape.linefeed.nim"},{match:"\\\\[fF]",name:"constant.character.escape.formfeed.nim"},{match:"\\\\[tT]",name:"constant.character.escape.tabulator.nim"},{match:"\\\\[vV]",name:"constant.character.escape.verticaltabulator.nim"},{match:'\\\\\\"',name:"constant.character.escape.double-quote.nim"},{match:"\\\\'",name:"constant.character.escape.single-quote.nim"},{match:"\\\\[0-9]+",name:"constant.character.escape.chardecimalvalue.nim"},{match:"\\\\[aA]",name:"constant.character.escape.alert.nim"},{match:"\\\\[bB]",name:"constant.character.escape.backspace.nim"},{match:"\\\\[eE]",name:"constant.character.escape.escape.nim"},{match:"\\\\[xX]\\h\\h",name:"constant.character.escape.hex.nim"},{match:"\\\\\\\\",name:"constant.character.escape.backslash.nim"}]},extended_string_quoted_double_raw:{begin:'\\b(\\w+)(")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{include:"#raw_string_escapes"}]},extended_string_quoted_triple_raw:{begin:'\\b(\\w+)(""")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},float_literal:{patterns:[{match:"\\b\\d[_\\d]*((\\.\\d[_\\d]*([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('([fF](32|64|128)|[fFdD]))?",name:"constant.numeric.float.decimal.nim"},{match:"\\b0[xX]\\h[_\\h]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.hexadecimal.nim"},{match:"\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.octal.nim"},{match:"\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.binary.nim"},{match:"\\b(\\d[_\\d]*)'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.decimal.nim"}]},fmt_interpolation:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.nim"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.nim"}},name:"meta.template.expression.nim",patterns:[{begin:":",end:"(?=\\})",name:"meta.template.format-specifier.nim"},{include:"source.nim"}]},fmt_string:{begin:'\\b(fmt)(")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{match:'(?<!")"(?!")',name:"invalid.illegal.nim"},{include:"#raw_string_escapes"},{include:"#fmt_interpolation"}]},fmt_string_call:{begin:'(fmt)\\((?=")',beginCaptures:{1:{name:"support.function.any-method.nim"}},end:"\\)",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},end:'"(?=\\))',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{match:'"',name:"invalid.illegal.nim"},{include:"#string_escapes"},{include:"#fmt_interpolation"}]}]},fmt_string_operator:{begin:'(&)(")',beginCaptures:{1:{name:"keyword.operator.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{match:'"',name:"invalid.illegal.nim"},{include:"#string_escapes"},{include:"#fmt_interpolation"}]},fmt_string_triple:{begin:'\\b(fmt)(""")',beginCaptures:{1:{name:"support.function.any-method.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim",patterns:[{include:"#fmt_interpolation"}]},fmt_string_triple_operator:{begin:'(&)(""")',beginCaptures:{1:{name:"keyword.operator.nim"},2:{name:"punctuation.definition.string.begin.nim"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim",patterns:[{include:"#fmt_interpolation"}]},integer_literal:{patterns:[{match:"\\b(0[xX]\\h[_\\h]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.hexadecimal.nim"},{match:"\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.octal.nim"},{match:"\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.binary.nim"},{match:"\\b(\\d[_\\d]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.decimal.nim"}]},multilinecomment:{begin:"#\\[",end:"\\]#",patterns:[{include:"#multilinecomment"}]},multilinedoccomment:{begin:"##\\[",end:"\\]##",patterns:[{include:"#multilinedoccomment"}]},raw_string_escapes:{captures:{1:{name:"constant.character.escape.double-quote.nim"}},match:'[^"]("")'},string_escapes:{patterns:[{match:"\\\\[pP]",name:"constant.character.escape.newline.nim"},{match:"\\\\[uU]\\h\\h\\h\\h",name:"constant.character.escape.hex.nim"},{match:"\\\\[uU]\\{\\h+\\}",name:"constant.character.escape.hex.nim"},{include:"#char_escapes"}]},string_literal:{patterns:[{include:"#fmt_string_triple"},{include:"#fmt_string_triple_operator"},{include:"#extended_string_quoted_triple_raw"},{include:"#string_quoted_triple_raw"},{include:"#fmt_string_operator"},{include:"#fmt_string"},{include:"#fmt_string_call"},{include:"#string_quoted_double_raw"},{include:"#extended_string_quoted_double_raw"},{include:"#string_quoted_single"},{include:"#string_quoted_triple"},{include:"#string_quoted_double"}]},string_quoted_double:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Double Quoted String",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{include:"#string_escapes"}]},string_quoted_double_raw:{begin:'\\br"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{include:"#raw_string_escapes"}]},string_quoted_single:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Single quoted character literal",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.single.nim",patterns:[{include:"#char_escapes"},{match:"([^']{2,}?)",name:"invalid.illegal.character.nim"}]},string_quoted_triple:{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Triple Quoted String",end:'"""(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.nim"},string_quoted_triple_raw:{begin:'r"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.nim"}},comment:"Raw Triple Quoted String",end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"}},m="source.nim",r={displayName:"Nim",fileTypes:n,name:"nim",patterns:a,repository:i,scopeName:m};export{r as default,e as displayName,n as fileTypes,t as name,a as patterns,i as repository,m as scopeName}; diff --git a/lib/dist/grammar/nix.mjs b/lib/dist/grammar/nix.mjs new file mode 100644 index 0000000..1748da6 --- /dev/null +++ b/lib/dist/grammar/nix.mjs @@ -0,0 +1 @@ +var e="Nix",n=["nix"],t="nix",i=[{include:"#expression"}],a={"attribute-bind":{patterns:[{include:"#attribute-name"},{include:"#attribute-bind-from-equals"}]},"attribute-bind-from-equals":{begin:"\\=",beginCaptures:{0:{name:"keyword.operator.bind.nix"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.bind.nix"}},patterns:[{include:"#expression"}]},"attribute-inherit":{begin:"\\binherit\\b",beginCaptures:{0:{name:"keyword.other.inherit.nix"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.inherit.nix"}},patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.arguments.nix"}},end:"(?=\\;)",patterns:[{begin:"\\)",beginCaptures:{0:{name:"punctuation.section.function.arguments.nix"}},end:"(?=\\;)",patterns:[{include:"#bad-reserved"},{include:"#attribute-name-single"},{include:"#others"}]},{include:"#expression"}]},{begin:"(?=[a-zA-Z\\_])",end:"(?=\\;)",patterns:[{include:"#bad-reserved"},{include:"#attribute-name-single"},{include:"#others"}]},{include:"#others"}]},"attribute-name":{patterns:[{match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",name:"entity.other.attribute-name.multipart.nix"},{match:"\\."},{include:"#string-quoted"},{include:"#interpolation"}]},"attribute-name-single":{match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",name:"entity.other.attribute-name.single.nix"},"attrset-contents":{patterns:[{include:"#attribute-inherit"},{include:"#bad-reserved"},{include:"#attribute-bind"},{include:"#others"}]},"attrset-definition":{begin:"(?=\\{)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"(\\{)",beginCaptures:{0:{name:"punctuation.definition.attrset.nix"}},end:"(\\})",endCaptures:{0:{name:"punctuation.definition.attrset.nix"}},patterns:[{include:"#attrset-contents"}]},{begin:"(?<=\\})",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},"attrset-definition-brace-opened":{patterns:[{begin:"(?<=\\})",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"(?=.?)",end:"\\}",endCaptures:{0:{name:"punctuation.definition.attrset.nix"}},patterns:[{include:"#attrset-contents"}]}]},"attrset-for-sure":{patterns:[{begin:"(?=\\brec\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\brec\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=\\{)",patterns:[{include:"#others"}]},{include:"#attrset-definition"},{include:"#others"}]},{begin:"(?=\\{\\s*(\\}|[^,?]*(=|;)))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition"},{include:"#others"}]}]},"attrset-or-function":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.attrset-or-function.nix"}},end:"(?=([\\])};]|\\b(else|then)\\b))",patterns:[{begin:"(?=(\\s*\\}|\\\"|\\binherit\\b|\\$\\{|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition-brace-opened"}]},{begin:"(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]},{include:"#bad-reserved"},{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{0:{name:"variable.parameter.function.maybe.nix"}},end:"(?=([\\])};]|\\b(else|then)\\b))",patterns:[{begin:"(?=\\.)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition-brace-opened"}]},{begin:"\\s*(\\,)",beginCaptures:{1:{name:"keyword.operator.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]},{begin:"(?=\\=)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attribute-bind-from-equals"},{include:"#attrset-definition-brace-opened"}]},{begin:"(?=\\?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-parameter-default"},{begin:"\\,",beginCaptures:{0:{name:"keyword.operator.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]}]},{include:"#others"}]},{include:"#others"}]},"bad-reserved":{match:"(?<![\\w'-])(if|then|else|assert|with|let|in|rec|inherit)(?![\\w'-])",name:"invalid.illegal.reserved.nix"},comment:{patterns:[{begin:"/\\*([^*]|\\*[^\\/])*",end:"\\*\\/",name:"comment.block.nix",patterns:[{include:"#comment-remark"}]},{begin:"\\#",end:"$",name:"comment.line.number-sign.nix",patterns:[{include:"#comment-remark"}]}]},"comment-remark":{captures:{1:{name:"markup.bold.comment.nix"}},match:"(TODO|FIXME|BUG|\\!\\!\\!):?"},constants:{patterns:[{begin:"\\b(builtins|true|false|null)\\b",beginCaptures:{0:{name:"constant.language.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b",beginCaptures:{0:{name:"support.function.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"\\b[0-9]+\\b",beginCaptures:{0:{name:"constant.numeric.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},expression:{patterns:[{include:"#parens-and-cont"},{include:"#list-and-cont"},{include:"#string"},{include:"#interpolation"},{include:"#with-assert"},{include:"#function-for-sure"},{include:"#attrset-for-sure"},{include:"#attrset-or-function"},{include:"#let"},{include:"#if"},{include:"#operator-unary"},{include:"#constants"},{include:"#bad-reserved"},{include:"#parameter-name-and-cont"},{include:"#others"}]},"expression-cont":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#parens"},{include:"#list"},{include:"#string"},{include:"#interpolation"},{include:"#function-for-sure"},{include:"#attrset-for-sure"},{include:"#attrset-or-function"},{match:"(\\bor\\b|\\.|==|!=|!|\\<\\=|\\<|\\>\\=|\\>|&&|\\|\\||-\\>|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)",name:"keyword.operator.nix"},{include:"#constants"},{include:"#bad-reserved"},{include:"#parameter-name"},{include:"#others"}]},"function-body":{begin:"(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]},"function-body-from-colon":{begin:"(\\:)",beginCaptures:{0:{name:"punctuation.definition.function.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]},"function-contents":{patterns:[{include:"#bad-reserved"},{include:"#function-parameter"},{include:"#others"}]},"function-definition":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-body-from-colon"},{begin:"(?=.?)",end:"(?=\\:)",patterns:[{begin:"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",beginCaptures:{0:{name:"variable.parameter.function.4.nix"}},end:"(?=\\:)",patterns:[{begin:"\\@",end:"(?=\\:)",patterns:[{include:"#function-header-until-colon-no-arg"},{include:"#others"}]},{include:"#others"}]},{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-until-colon-with-arg"}]}]},{include:"#others"}]},"function-definition-brace-opened":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-body-from-colon"},{begin:"(?=.?)",end:"(?=\\:)",patterns:[{include:"#function-header-close-brace-with-arg"},{begin:"(?=.?)",end:"(?=\\})",patterns:[{include:"#function-contents"}]}]},{include:"#others"}]},"function-for-sure":{patterns:[{begin:"(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}\"'/=]*[,\\?]))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition"}]}]},"function-header-close-brace-no-arg":{begin:"\\}",beginCaptures:{0:{name:"punctuation.definition.entity.function.nix"}},end:"(?=\\:)",patterns:[{include:"#others"}]},"function-header-close-brace-with-arg":{begin:"\\}",beginCaptures:{0:{name:"punctuation.definition.entity.function.nix"}},end:"(?=\\:)",patterns:[{include:"#function-header-terminal-arg"},{include:"#others"}]},"function-header-open-brace":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.entity.function.2.nix"}},end:"(?=\\})",patterns:[{include:"#function-contents"}]},"function-header-terminal-arg":{begin:"(?=@)",end:"(?=\\:)",patterns:[{begin:"\\@",end:"(?=\\:)",patterns:[{begin:"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",end:"(?=\\:)",name:"variable.parameter.function.3.nix"},{include:"#others"}]},{include:"#others"}]},"function-header-until-colon-no-arg":{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-open-brace"},{include:"#function-header-close-brace-no-arg"}]},"function-header-until-colon-with-arg":{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-open-brace"},{include:"#function-header-close-brace-with-arg"}]},"function-parameter":{patterns:[{begin:"(\\.\\.\\.)",end:"(,|(?=\\}))",name:"keyword.operator.nix",patterns:[{include:"#others"}]},{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{0:{name:"variable.parameter.function.1.nix"}},end:"(,|(?=\\}))",endCaptures:{0:{name:"keyword.operator.nix"}},patterns:[{include:"#whitespace"},{include:"#comment"},{include:"#function-parameter-default"},{include:"#expression"}]},{include:"#others"}]},"function-parameter-default":{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.nix"}},end:"(?=[,}])",patterns:[{include:"#expression"}]},if:{begin:"(?=\\bif\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\bif\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"\\bth(?=en\\b)",endCaptures:{0:{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]},{begin:"(?<=th)en\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"\\bel(?=se\\b)",endCaptures:{0:{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]},{begin:"(?<=el)se\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",endCaptures:{0:{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]}]},illegal:{match:".",name:"invalid.illegal"},interpolation:{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.nix"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.nix"}},name:"meta.embedded",patterns:[{include:"#expression"}]},let:{begin:"(?=\\blet\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\blet\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(in|else|then)\\b))",patterns:[{begin:"(?=\\{)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\{",end:"\\}",patterns:[{include:"#attrset-contents"}]},{begin:"(^|(?<=\\}))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{include:"#others"}]},{include:"#attrset-contents"},{include:"#others"}]},{begin:"\\bin\\b",beginCaptures:{0:{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.nix"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.nix"}},patterns:[{include:"#expression"}]},"list-and-cont":{begin:"(?=\\[)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#list"},{include:"#expression-cont"}]},"operator-unary":{match:"(!|-)",name:"keyword.operator.unary.nix"},others:{patterns:[{include:"#whitespace"},{include:"#comment"},{include:"#illegal"}]},"parameter-name":{captures:{0:{name:"variable.parameter.name.nix"}},match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},"parameter-name-and-cont":{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{0:{name:"variable.parameter.name.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.expression.nix"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.expression.nix"}},patterns:[{include:"#expression"}]},"parens-and-cont":{begin:"(?=\\()",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#parens"},{include:"#expression-cont"}]},string:{patterns:[{begin:"(?=\\'\\')",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\'\\'",beginCaptures:{0:{name:"punctuation.definition.string.other.start.nix"}},end:"\\'\\'(?!\\$|\\'|\\\\.)",endCaptures:{0:{name:"punctuation.definition.string.other.end.nix"}},name:"string.quoted.other.nix",patterns:[{match:"\\'\\'(\\$|\\'|\\\\.)",name:"constant.character.escape.nix"},{include:"#interpolation"}]},{include:"#expression-cont"}]},{begin:'(?=\\")',end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#string-quoted"},{include:"#expression-cont"}]},{begin:"(~?[a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)",beginCaptures:{0:{name:"string.unquoted.path.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"(\\<[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\>)",beginCaptures:{0:{name:"string.unquoted.spath.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\&\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)",beginCaptures:{0:{name:"string.unquoted.url.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},"string-quoted":{begin:'\\"',beginCaptures:{0:{name:"punctuation.definition.string.double.start.nix"}},end:'\\"',endCaptures:{0:{name:"punctuation.definition.string.double.end.nix"}},name:"string.quoted.double.nix",patterns:[{match:"\\\\.",name:"constant.character.escape.nix"},{include:"#interpolation"}]},whitespace:{match:"\\s+"},"with-assert":{begin:"(?<![\\w'-])(with|assert)(?![\\w'-])",beginCaptures:{0:{name:"keyword.other.nix"}},end:"\\;",patterns:[{include:"#expression"}]}},r="source.nix",s={displayName:"Nix",fileTypes:n,name:"nix",patterns:i,repository:a,scopeName:r};export{s as default,e as displayName,n as fileTypes,t as name,i as patterns,a as repository,r as scopeName}; diff --git a/lib/dist/grammar/nushell.mjs b/lib/dist/grammar/nushell.mjs new file mode 100644 index 0000000..06135e6 --- /dev/null +++ b/lib/dist/grammar/nushell.mjs @@ -0,0 +1 @@ +var e="nushell",n="nushell",t=[{include:"#define-variable"},{include:"#define-alias"},{include:"#function"},{include:"#extern"},{include:"#module"},{include:"#use-module"},{include:"#expression"},{include:"#comment"}],a={binary:{begin:"\\b(0x)(\\[)",beginCaptures:{1:{name:"constant.numeric.nushell"},2:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.begin.nushell"}},name:"constant.binary.nushell",patterns:[{match:"[0-9a-fA-F]{2}",name:"constant.numeric.nushell"}]},"braced-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.nushell"}},name:"meta.expression.braced.nushell",patterns:[{begin:"(?<=\\{)\\s*\\|",end:"\\|",name:"meta.closure.parameters.nushell",patterns:[{include:"#function-parameter"}]},{captures:{1:{name:"variable.other.nushell"},2:{name:"keyword.control.nushell"}},match:"(\\w+)\\s*(:)\\s*"},{captures:{1:{name:"variable.other.nushell"},2:{name:"variable.other.nushell",patterns:[{include:"#paren-expression"}]},3:{name:"keyword.control.nushell"}},match:'(\\$"((?:[^"\\\\]|\\\\.)*)")\\s*(:)\\s*',name:"meta.record-entry.nushell"},{captures:{1:{name:"variable.other.nushell"},2:{name:"keyword.control.nushell"}},match:'("(?:[^"\\\\]|\\\\.)*")\\s*(:)\\s*',name:"meta.record-entry.nushell"},{captures:{1:{name:"variable.other.nushell"},2:{name:"variable.other.nushell",patterns:[{include:"#paren-expression"}]},3:{name:"keyword.control.nushell"}},match:"(\\$'([^']*)')\\s*(:)\\s*",name:"meta.record-entry.nushell"},{captures:{1:{name:"variable.other.nushell"},2:{name:"keyword.control.nushell"}},match:"('[^']*')\\s*(:)\\s*",name:"meta.record-entry.nushell"},{include:"#spread"},{include:"source.nushell"}]},command:{begin:"(?<!\\w)(?:(\\^)|(?![0-9]|\\$))([\\w.!]+(?:(?: (?!-)[\\w\\-.!]+(?:(?= |\\))|$)|[\\w\\-.!]+))*|(?<=\\^)\\$?(?:\"[^\"]+\"|'[^']+'))",beginCaptures:{1:{name:"keyword.operator.nushell"},2:{patterns:[{include:"#control-keywords"},{captures:{0:{name:"keyword.other.builtin.nushell"}},match:"(?:ansi|char) \\w+"},{captures:{1:{name:"keyword.other.builtin.nushell"},2:{patterns:[{include:"#value"}]}},comment:"Regex generated with list-to-tree (https://github.com/glcraft/list-to-tree)",match:"(a(?:l(?:ias|l)|n(?:si(?: (?:gradient|link|strip))?|y)|ppend|st)|b(?:g|its(?: (?:and|not|or|ro(?:l|r)|sh(?:l|r)|xor))?|reak|ytes(?: (?:a(?:dd|t)|build|collect|ends-with|index-of|length|re(?:move|place|verse)|starts-with))?)|c(?:al|d|har|l(?:ear|ipboard (?:copy|paste))|o(?:l(?:lect|umns)|m(?:mandline(?: (?:edit|get-cursor|set-cursor))?|p(?:act|lete))|n(?:fig(?: (?:env|nu|reset))?|st|tinue))|p|ustom-value (?:generate(?:2)?|update(?:-arg)?))|d(?:ate(?: (?:format|humanize|list-timezone|now|to-(?:record|t(?:able|imezone))))?|e(?:bug(?: info)?|code(?: (?:base64|hex))?|f(?:ault)?|scribe|tect columns)|fr(?: (?:a(?:gg(?:-groups)?|ll-(?:false|true)|ppend|rg-(?:m(?:ax|in)|sort|true|unique|where)|s(?:-date(?:time)?)?)|c(?:a(?:che|st)|o(?:l(?:lect|umns)?|n(?:cat(?:-str|enate)|tains)|unt(?:-null)?)|umulative)|d(?:atepart|rop(?:-(?:duplicates|nulls))?|types|ummies)|exp(?:lode|r-not)|f(?:etch|i(?:l(?:l-n(?:an|ull)|ter(?:-with)?)|rst)|latten)|g(?:et(?:-(?:day|hour|m(?:inute|onth)|nanosecond|ordinal|second|week(?:day)?|year))?|roup-by)|i(?:mplode|nto-(?:df|lazy|nu)|s-(?:duplicated|in|n(?:ot-null|ull)|unique))|join|l(?:ast|it|owercase|s)|m(?:ax|e(?:an|dian|lt)|in)|n(?:-unique|ot)|o(?:pen|therwise)|qu(?:antile|ery)|r(?:e(?:name|place(?:-all)?|verse)|olling)|s(?:ample|chema|e(?:lect|t(?:-with-idx)?)|h(?:ape|ift)|lice|ort-by|t(?:d|r(?:-(?:lengths|slice)|ftime))|um(?:mary)?)|t(?:ake|o-(?:a(?:rrow|vro)|csv|jsonl|parquet))|u(?:nique|ppercase)|va(?:lue-counts|r)|w(?:hen|ith-column)))?|o|rop(?: (?:column|nth))?|u)|e(?:ach(?: while)?|cho|moji|n(?:code(?: (?:base64|hex))?|umerate)|rror make|very|x(?:ec|it|p(?:l(?:ain|ore)|ort(?: (?:alias|const|def|extern|module|use)|-env)?)|tern))|f(?:i(?:l(?:e|l|ter)|nd|rst)|latten|mt|or(?:mat(?: (?:d(?:ate|uration)|filesize|pattern))?)?|rom(?: (?:csv|eml|i(?:cs|ni)|json|nuon|ods|p(?:arquet|ng)|ssv|t(?:oml|sv)|url|vcf|x(?:lsx|ml)|y(?:aml|ml)))?)|g(?:e(?:nerate|t)|lob|r(?:id|oup(?:-by)?)|stat)|h(?:ash(?: (?:md5|sha256))?|e(?:aders|lp(?: (?:aliases|commands|e(?:scapes|xterns)|modules|operators))?)|i(?:de(?:-env)?|ghlight|st(?:o(?:gram|ry(?: session)?))?)|ttp(?: (?:delete|get|head|options|p(?:atch|ost|ut)))?)|i(?:f|gnore|n(?:c|put(?: list(?:en)?)?|s(?:ert|pect)|t(?:erleave|o(?: (?:b(?:i(?:nary|ts)|ool)|cell-path|d(?:atetime|uration)|f(?:ilesize|loat)|glob|int|record|s(?:qlite|tring)|value))?))|s-(?:admin|empty|not-empty|terminal)|tems)|j(?:oin|son path|walk)|k(?:eybindings(?: (?:default|list(?:en)?))?|ill)|l(?:a(?:st|zy make)|e(?:ngth|t(?:-env)?)|ines|o(?:ad-env|op)|s)|m(?:at(?:ch|h(?: (?:a(?:bs|rc(?:cos(?:h)?|sin(?:h)?|tan(?:h)?)|vg)|c(?:eil|os(?:h)?)|exp|floor|l(?:n|og)|m(?:ax|edian|in|ode)|product|round|s(?:in(?:h)?|qrt|tddev|um)|tan(?:h)?|variance))?)|e(?:rge|tadata)|k(?:dir|temp)|o(?:dule|ve)|ut|v)|nu-(?:check|example-(?:1|2|3|config)|highlight)|o(?:pen|verlay(?: (?:hide|list|new|use))?)|p(?:a(?:nic|r(?:-each|se)|th(?: (?:basename|dirname|ex(?:ists|pand)|join|parse|relative-to|split|type))?)|eriodic-table|lot|net|ort(?: (?:list|scan))?|r(?:epend|int)|s)|query(?: (?:db|git|json|web|xml))?|r(?:an(?:dom(?: (?:bool|chars|dice|float|int|uuid))?|ge)|e(?:duce|g(?:ex|ist(?:er|ry query))|ject|name|turn|verse)|m|o(?:ll(?: (?:down|left|right|up))?|tate)|un-external)|s(?:ave|c(?:hema|ope(?: (?:aliases|commands|e(?:ngine-stats|xterns)|modules|variables))?)|e(?:lect|q(?: (?:char|date))?)|huffle|kip(?: (?:until|while))?|leep|o(?:rt(?:-by)?|urce(?:-env)?)|plit(?: (?:c(?:hars|olumn)|list|row|words)|-by)?|t(?:art|or(?: (?:create|delete|export|i(?:mport|nsert)|open|reset|update))?|r(?: (?:c(?:a(?:mel-case|pitalize)|ontains)|d(?:istance|owncase)|e(?:nds-with|scape-glob|xpand)|index-of|join|kebab-case|length|pascal-case|re(?:place|verse)|s(?:creaming-snake-case|imilarity|nake-case|ta(?:rts-with|ts)|ubstring)|t(?:itle-case|rim)|upcase)|eam_example(?: (?:collect-external|s(?:eq|um)))?)?)|ys)|t(?:a(?:ble|ke(?: (?:until|while))?)|e(?:e|rm size)|imeit|o(?: (?:csv|html|json|md|nuon|png|qr|t(?:ext|oml|sv)|xml|yaml)|uch)?|r(?:anspose|y)|utor)|u(?:limit|ni(?:q(?:-by)?|ts)|p(?:date(?: cells)?|sert)|rl(?: (?:build-query|decode|encode|join|parse))?|se)|v(?:alues|ersion|iew(?: (?:files|s(?:ource|pan)))?)|w(?:atch|h(?:ere|i(?:ch|le)|oami)|i(?:ndow|th-env)|rap)|xyplot|zip)(?![\\w-])( (.*))?"},{captures:{1:{patterns:[{include:"#paren-expression"}]}},match:"(?<=\\^)(?:\\$(\"[^\"]+\"|'[^']+')|\"[^\"]+\"|'[^']+')",name:"entity.name.type.external.nushell"},{captures:{1:{name:"entity.name.type.external.nushell"},2:{patterns:[{include:"#value"}]}},match:"([\\w.]+(?:-[\\w.!]+)*)(?: (.*))?"},{include:"#value"}]}},end:"(?=\\||\\)|\\}|;)|$",name:"meta.command.nushell",patterns:[{include:"#parameters"},{include:"#spread"},{include:"#value"}]},comment:{match:"(#.*)$",name:"comment.nushell"},"constant-keywords":{match:"\\b(?:true|false|null)\\b",name:"constant.language.nushell"},"constant-value":{patterns:[{include:"#constant-keywords"},{include:"#datetime"},{include:"#numbers"},{include:"#numbers-hexa"},{include:"#binary"}]},"control-keywords":{comment:"Regex generated with list-to-tree (https://github.com/glcraft/list-to-tree)",match:"(?<![0-9a-zA-Z_\\-.\\/:\\\\])(?:break|continue|else(?: if)?|for|if|loop|mut|return|try|while)(?![0-9a-zA-Z_\\-.\\/:\\\\])",name:"keyword.control.nushell"},datetime:{match:"\\b\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:\\+\\d{2}:?\\d{2}|Z)?)?\\b",name:"constant.numeric.nushell"},"define-alias":{captures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.type.nushell"},3:{patterns:[{include:"#operators"}]}},match:"((?:export )?alias)\\s+([\\w\\-!]+)\\s*(=)"},"define-variable":{captures:{1:{name:"keyword.other.nushell"},2:{name:"variable.other.nushell"},3:{patterns:[{include:"#operators"}]}},match:"(let|mut|(?:export\\s+)?const)\\s+(\\w+)\\s+(=)"},expression:{patterns:[{include:"#pre-command"},{include:"#for-loop"},{include:"#operators"},{match:"\\|",name:"keyword.control.nushell"},{include:"#control-keywords"},{include:"#constant-value"},{include:"#command"},{include:"#value"}]},extern:{begin:'((?:export\\s+)?extern)\\s+([\\w\\-]+|"[\\w\\- ]+")',beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.type.nushell"}},end:"(?<=\\])",endCaptures:{0:{name:"punctuation.definition.function.end.nushell"}},patterns:[{include:"#function-parameters"}]},"for-loop":{begin:"(for)\\s+(\\$?\\w+)\\s+(in)\\s+(.+)\\s*(\\{)",beginCaptures:{1:{name:"keyword.other.nushell"},2:{name:"variable.other.nushell"},3:{name:"keyword.other.nushell"},4:{patterns:[{include:"#value"}]},5:{name:"punctuation.section.block.begin.bracket.curly.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.nushell"}},name:"meta.for-loop.nushell",patterns:[{include:"source.nushell"}]},function:{begin:"((?:export\\s+)?def(?:\\s+--\\w+)*)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|`[\\w\\- ]+`)(\\s+--\\w+)*",beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.type.nushell"},3:{name:"entity.name.function.nushell"}},end:"(?<=\\})",patterns:[{include:"#function-parameters"},{include:"#function-body"},{include:"#function-inout"}]},"function-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.function.begin.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.function.end.nushell"}},name:"meta.function.body.nushell",patterns:[{include:"source.nushell"}]},"function-inout":{patterns:[{include:"#types"},{match:"->",name:"keyword.operator.nushell"},{include:"#function-multiple-inout"}]},"function-multiple-inout":{begin:"(?<=]\\s*)(:)\\s+(\\[)",beginCaptures:{1:{name:"punctuation.definition.in-out.nushell"},2:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.end.nushell"}},patterns:[{include:"#types"},{captures:{1:{name:"punctuation.separator.nushell"}},match:"\\s*(,)\\s*"},{captures:{1:{name:"keyword.operator.nushell"}},match:"\\s+(->)\\s+"}]},"function-parameter":{patterns:[{captures:{1:{name:"keyword.control.nushell"}},match:"(-{0,2}|\\.{3})[\\w-]+(?:\\((-[\\w?])\\))?",name:"variable.parameter.nushell"},{begin:"\\??:\\s*",end:"(?=(?:\\s+(?:-{0,2}|\\.{3})[\\w-]+)|(?:\\s*(?:,|\\]|\\||@|=|#|$)))",patterns:[{include:"#types"}]},{begin:"@(?=\"|')",end:"(?<=\"|')",patterns:[{include:"#string"}]},{begin:"=\\s*",end:"(?=(?:\\s+-{0,2}[\\w-]+)|(?:\\s*(?:,|\\]|\\||#|$)))",name:"default.value.nushell",patterns:[{include:"#value"}]}]},"function-parameters":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.end.nushell"}},name:"meta.function.parameters.nushell",patterns:[{include:"#function-parameter"},{include:"#comment"}]},"internal-variables":{match:"\\$(?:nu|env)\\b",name:"variable.language.nushell"},keyword:{match:"(?:def(?:-env)?)",name:"keyword.other.nushell"},module:{begin:"((?:export\\s+)?module)\\s+([\\w\\-]+)\\s*\\{",beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.namespace.nushell"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.module.end.nushell"}},name:"meta.module.nushell",patterns:[{include:"source.nushell"}]},numbers:{match:"(?<![\\w-])[-+]?(?:\\d+|\\d{1,3}(?:_\\d{3})*)(?:\\.\\d*)?(?i:ns|us|ms|sec|min|hr|day|wk|b|kb|mb|gb|tb|pt|eb|zb|kib|mib|gib|tib|pit|eib|zib)?(?:(?![\\w.])|(?=\\.\\.))",name:"constant.numeric.nushell"},"numbers-hexa":{match:"(?<![\\w-])0x[0-9a-fA-F]+(?![\\w.])",name:"constant.numeric.nushell"},operators:{patterns:[{include:"#operators-word"},{include:"#operators-symbols"},{include:"#ranges"}]},"operators-symbols":{match:"(?<= )(?:(?:\\+|\\-|\\*|\\/)=?|\\/\\/|\\*\\*|!=|[<>=]=?|[!=]~|\\+\\+=?)(?= |$)",name:"keyword.control.nushell"},"operators-word":{match:"(?<= |\\()(?:mod|in|not-in|not|and|or|xor|bit-or|bit-and|bit-xor|bit-shl|bit-shr|starts-with|ends-with)(?= |\\)|$)",name:"keyword.control.nushell"},parameters:{captures:{1:{name:"keyword.control.nushell"}},match:"(?<=\\s)(-{1,2})[\\w-]+",name:"variable.parameter.nushell"},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.begin.nushell"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.end.nushell"}},name:"meta.expression.parenthesis.nushell",patterns:[{include:"#expression"}]},"pre-command":{begin:"(\\w+)(=)",beginCaptures:{1:{name:"variable.other.nushell"},2:{patterns:[{include:"#operators"}]}},end:"(?=\\s+)",patterns:[{include:"#value"}]},ranges:{match:"\\.\\.<?",name:"keyword.control.nushell"},spread:{match:"\\.\\.\\.(?=[^\\s\\]}])",name:"keyword.control.nushell"},string:{patterns:[{include:"#string-single-quote"},{include:"#string-backtick"},{include:"#string-double-quote"},{include:"#string-interpolated-double"},{include:"#string-interpolated-single"},{include:"#string-bare"}]},"string-backtick":{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.quoted.single.nushell"},"string-bare":{match:"[^$\\[{(\"',|#\\s|][^\\[\\]{}()\"'\\s#,|]*",name:"string.bare.nushell"},"string-double-quote":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.quoted.double.nushell",patterns:[{match:"\\w+"},{include:"#string-escape"}]},"string-escape":{match:"\\\\(?:[bfrnt\\\\'\"/]|u[0-9a-fA-F]{4})",name:"constant.character.escape.nushell"},"string-interpolated-double":{begin:'\\$"',beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.interpolated.double.nushell",patterns:[{match:"\\\\[()]",name:"constant.character.escape.nushell"},{include:"#string-escape"},{include:"#paren-expression"}]},"string-interpolated-single":{begin:"\\$'",beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.interpolated.single.nushell",patterns:[{include:"#paren-expression"}]},"string-single-quote":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.nushell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.nushell"}},name:"string.quoted.single.nushell"},table:{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.begin.nushell"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.end.nushell"}},name:"meta.table.nushell",patterns:[{include:"#spread"},{include:"#value"},{match:",",name:"punctuation.separator.nushell"}]},types:{patterns:[{begin:"\\b(list)\\s*<",beginCaptures:{1:{name:"entity.name.type.nushell"}},end:">",name:"meta.list.nushell",patterns:[{include:"#types"}]},{begin:"\\b(record)\\s*<",beginCaptures:{1:{name:"entity.name.type.nushell"}},end:">",name:"meta.record.nushell",patterns:[{captures:{1:{name:"variable.parameter.nushell"}},match:"([\\w\\-]+|\"[\\w\\- ]+\"|'[^']+')\\s*:\\s*"},{include:"#types"}]},{match:"\\b(\\w+)\\b",name:"entity.name.type.nushell"}]},"use-module":{patterns:[{captures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.namespace.nushell"},3:{name:"keyword.other.nushell"}},match:"^\\s*((?:export )?use)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+')(?:\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*))?\\s*;?$"},{begin:"^\\s*((?:export )?use)\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+')\\s*\\[",beginCaptures:{1:{name:"entity.name.function.nushell"},2:{name:"entity.name.namespace.nushell"}},end:"(\\])\\s*;?\\s*$",endCaptures:{1:{name:"meta.brace.square.end.nushell"}},patterns:[{captures:{1:{name:"keyword.other.nushell"}},match:"([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*),?"},{include:"#comment"}]},{captures:{2:{name:"entity.name.function.nushell"},3:{name:"string.bare.nushell",patterns:[{captures:{1:{name:"entity.name.namespace.nushell"}},match:"([\\w\\- ]+)(?:\\.nu)?(?=$|\"|')"}]},4:{name:"keyword.other.nushell"}},match:"(?<path>(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+(\"\\g<path>\"|'\\g<path>\\'|(?![\"'])\\g<path>)(?:\\s+([\\w\\-]+|\"[\\w\\- ]+\"|'[^']+'|\\*))?\\s*;?$"},{begin:"(?<path>(?:/|\\\\|~[\\/\\\\]|\\.\\.?[\\/\\\\])?(?:[^\\/\\\\]+[\\/\\\\])*[\\w\\- ]+(?:\\.nu)?){0}^\\s*((?:export )?use)\\s+(\"\\g<path>\"|'\\g<path>\\'|(?![\"'])\\g<path>)\\s+\\[",beginCaptures:{2:{name:"entity.name.function.nushell"},3:{name:"string.bare.nushell",patterns:[{captures:{1:{name:"entity.name.namespace.nushell"}},match:"([\\w\\- ]+)(?:\\.nu)?(?=$|\"|')"}]}},end:"(\\])\\s*;?\\s*$",endCaptures:{1:{name:"meta.brace.square.end.nushell"}},patterns:[{captures:{0:{name:"keyword.other.nushell"}},match:"([\\w\\-]+|\"[\\w\\- ]+\"|'[\\w\\- ]+'|\\*),?"},{include:"#comment"}]},{captures:{0:{name:"entity.name.function.nushell"}},match:"^\\s*(?:export )?use\\b"}]},value:{patterns:[{include:"#variables"},{include:"#variable-fields"},{include:"#control-keywords"},{include:"#constant-value"},{include:"#table"},{include:"#operators"},{include:"#paren-expression"},{include:"#braced-expression"},{include:"#string"},{include:"#comment"}]},"variable-fields":{match:'(?<=\\)|\\}|\\])(?:\\.(?:[\\w-]+|"[\\w\\- ]+"))+',name:"variable.other.nushell"},variables:{captures:{1:{patterns:[{include:"#internal-variables"},{match:"\\$.+",name:"variable.other.nushell"}]},2:{name:"variable.other.nushell"}},match:'(\\$[a-zA-Z0-9_]+)((?:\\.(?:[\\w-]+|"[\\w\\- ]+"))*)'}},s="source.nushell",l={displayName:e,name:n,patterns:t,repository:a,scopeName:s};export{l as default,e as displayName,n as name,t as patterns,a as repository,s as scopeName}; diff --git a/lib/dist/grammar/objective-c.mjs b/lib/dist/grammar/objective-c.mjs new file mode 100644 index 0000000..71eb7d9 --- /dev/null +++ b/lib/dist/grammar/objective-c.mjs @@ -0,0 +1 @@ +var e="Objective-C",n="objective-c",t=[{include:"#anonymous_pattern_1"},{include:"#anonymous_pattern_2"},{include:"#anonymous_pattern_3"},{include:"#anonymous_pattern_4"},{include:"#anonymous_pattern_5"},{include:"#apple_foundation_functional_macros"},{include:"#anonymous_pattern_7"},{include:"#anonymous_pattern_8"},{include:"#anonymous_pattern_9"},{include:"#anonymous_pattern_10"},{include:"#anonymous_pattern_11"},{include:"#anonymous_pattern_12"},{include:"#anonymous_pattern_13"},{include:"#anonymous_pattern_14"},{include:"#anonymous_pattern_15"},{include:"#anonymous_pattern_16"},{include:"#anonymous_pattern_17"},{include:"#anonymous_pattern_18"},{include:"#anonymous_pattern_19"},{include:"#anonymous_pattern_20"},{include:"#anonymous_pattern_21"},{include:"#anonymous_pattern_22"},{include:"#anonymous_pattern_23"},{include:"#anonymous_pattern_24"},{include:"#anonymous_pattern_25"},{include:"#anonymous_pattern_26"},{include:"#anonymous_pattern_27"},{include:"#anonymous_pattern_28"},{include:"#anonymous_pattern_29"},{include:"#anonymous_pattern_30"},{include:"#bracketed_content"},{include:"#c_lang"}],a={anonymous_pattern_1:{begin:"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",captures:{1:{name:"storage.type.objc"},2:{name:"punctuation.definition.storage.type.objc"},4:{name:"entity.name.type.objc"},6:{name:"punctuation.definition.entity.other.inherited-class.objc"},7:{name:"entity.other.inherited-class.objc"},8:{name:"meta.divider.objc"},9:{name:"meta.inherited-class.objc"}},contentName:"meta.scope.interface.objc",end:"((@)end)\\b",name:"meta.interface-or-protocol.objc",patterns:[{include:"#interface_innards"}]},anonymous_pattern_10:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(defs|encode)\\b",name:"keyword.other.objc"},anonymous_pattern_11:{match:"\\bid\\b",name:"storage.type.id.objc"},anonymous_pattern_12:{match:"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",name:"storage.type.objc"},anonymous_pattern_13:{captures:{1:{name:"punctuation.definition.storage.type.objc"}},match:"(@)(class|protocol)\\b",name:"storage.type.objc"},anonymous_pattern_14:{begin:"((@)selector)\\s*(\\()",beginCaptures:{1:{name:"storage.type.objc"},2:{name:"punctuation.definition.storage.type.objc"},3:{name:"punctuation.definition.storage.type.objc"}},contentName:"meta.selector.method-name.objc",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.storage.type.objc"}},name:"meta.selector.objc",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\b(?:[a-zA-Z_:][\\w]*)+",name:"support.function.any-method.name-of-parameter.objc"}]},anonymous_pattern_15:{captures:{1:{name:"punctuation.definition.storage.modifier.objc"}},match:"(@)(synchronized|public|package|private|protected)\\b",name:"storage.modifier.objc"},anonymous_pattern_16:{match:"\\b(YES|NO|Nil|nil)\\b",name:"constant.language.objc"},anonymous_pattern_17:{match:"\\bNSApp\\b",name:"support.variable.foundation.objc"},anonymous_pattern_18:{captures:{1:{name:"punctuation.whitespace.support.function.cocoa.leopard.objc"},2:{name:"support.function.cocoa.leopard.objc"}},match:"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},anonymous_pattern_19:{captures:{1:{name:"punctuation.whitespace.support.function.leading.cocoa.objc"},2:{name:"support.function.cocoa.objc"}},match:"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},anonymous_pattern_2:{begin:"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",captures:{1:{name:"storage.type.objc"},2:{name:"punctuation.definition.storage.type.objc"},4:{name:"entity.name.type.objc"},5:{name:"entity.other.inherited-class.objc"}},contentName:"meta.scope.implementation.objc",end:"((@)end)\\b",name:"meta.implementation.objc",patterns:[{include:"#implementation_innards"}]},anonymous_pattern_20:{match:"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",name:"support.class.cocoa.leopard.objc"},anonymous_pattern_21:{match:"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",name:"support.class.cocoa.objc"},anonymous_pattern_22:{match:"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",name:"support.type.cocoa.leopard.objc"},anonymous_pattern_23:{match:"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",name:"support.class.quartz.objc"},anonymous_pattern_24:{match:"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",name:"support.type.quartz.objc"},anonymous_pattern_25:{match:"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",name:"support.type.cocoa.objc"},anonymous_pattern_26:{match:"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",name:"support.constant.cocoa.objc"},anonymous_pattern_27:{match:"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",name:"support.constant.notification.cocoa.leopard.objc"},anonymous_pattern_28:{match:"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",name:"support.constant.notification.cocoa.objc"},anonymous_pattern_29:{match:"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",name:"support.constant.cocoa.leopard.objc"},anonymous_pattern_3:{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{match:"(?x)%\n(\\d+\\$)?\n[#0\\- +']*\n((-?\\d+)|\\*(-?\\d+\\$)?)?\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\n[@]\n",name:"constant.other.placeholder.objc"},{include:"#string_placeholder"}]},anonymous_pattern_30:{match:"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",name:"support.constant.cocoa.objc"},anonymous_pattern_4:{begin:"\\b(id)\\s*(?=<)",beginCaptures:{1:{name:"storage.type.objc"}},end:"(?<=>)",name:"meta.id-with-protocol.objc",patterns:[{include:"#protocol_list"}]},anonymous_pattern_5:{match:"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",name:"keyword.control.macro.objc"},anonymous_pattern_7:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(try|catch|finally|throw)\\b",name:"keyword.control.exception.objc"},anonymous_pattern_8:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(synchronized)\\b",name:"keyword.control.synchronize.objc"},anonymous_pattern_9:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(required|optional)\\b",name:"keyword.control.protocol-specification.objc"},apple_foundation_functional_macros:{begin:"(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",beginCaptures:{1:{name:"entity.name.function.preprocessor.apple-foundation.objc"},2:{name:"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc"}},name:"meta.preprocessor.macro.callable.apple-foundation.objc",patterns:[{include:"#c_lang"}]},bracketed_content:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.scope.begin.objc"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.scope.end.objc"}},name:"meta.bracketed.objc",patterns:[{begin:"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",beginCaptures:{1:{name:"support.function.any-method.objc"},2:{name:"punctuation.separator.arguments.objc"}},end:"(?=\\])",name:"meta.function-call.predicate.objc",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\bargument(Array|s)(:)",name:"support.function.any-method.name-of-parameter.objc"},{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\b\\w+(:)",name:"invalid.illegal.unknown-method.objc"},{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{match:"\\b(AND|OR|NOT|IN)\\b",name:"keyword.operator.logical.predicate.cocoa.objc"},{match:"\\b(ALL|ANY|SOME|NONE)\\b",name:"constant.language.predicate.cocoa.objc"},{match:"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",name:"constant.language.predicate.cocoa.objc"},{match:"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",name:"keyword.operator.comparison.predicate.cocoa.objc"},{match:"\\bC(ASEINSENSITIVE|I)\\b",name:"keyword.other.modifier.predicate.cocoa.objc"},{match:"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",name:"keyword.other.predicate.cocoa.objc"},{match:"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{begin:'(?=\\w)(?<=[\\w\\])"] )(\\w+(?:(:)|(?=\\])))',beginCaptures:{1:{name:"support.function.any-method.objc"},2:{name:"punctuation.separator.arguments.objc"}},end:"(?=\\])",name:"meta.function-call.objc",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objc"}},match:"\\b\\w+(:)",name:"support.function.any-method.name-of-parameter.objc"},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$self"}]},c_functions:{patterns:[{captures:{1:{name:"punctuation.whitespace.support.function.leading.objc"},2:{name:"support.function.C99.objc"}},match:"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{captures:{1:{name:"punctuation.whitespace.function-call.leading.objc"},2:{name:"support.function.any-method.objc"},3:{name:"punctuation.definition.parameters.objc"}},match:"(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n(\\b\n(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++\n)\n\\s*(\\()",name:"meta.function-call.objc"}]},c_lang:{patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments"},{include:"#switch_statement"},{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.objc"},{include:"#storage_types"},{match:"typedef",name:"keyword.other.typedef.objc"},{match:"\\bin\\b",name:"keyword.other.in.objc"},{match:"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",name:"storage.modifier.objc"},{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.objc"},{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.objc"},{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.objc"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objc"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#special_variables"},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\n((?<id>[a-zA-Z_$][\\w$]*))\n(?:\n(\\()\n(\n\\s* \\g<id> \\s*\n((,) \\s* \\g<id> \\s*)*\n(?:\\.\\.\\.)?\n)\n(\\))\n)?",beginCaptures:{1:{name:"keyword.control.directive.define.objc"},2:{name:"punctuation.definition.directive.objc"},3:{name:"entity.name.function.preprocessor.objc"},5:{name:"punctuation.definition.parameters.begin.objc"},6:{name:"variable.parameter.preprocessor.objc"},8:{name:"punctuation.separator.parameters.objc"},9:{name:"punctuation.definition.parameters.end.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objc",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$3.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objc",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objc",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.$3.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objc",patterns:[{include:"#line_continuation_character"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.include.objc"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.other.lt-gt.include.objc"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{1:{name:"keyword.control.directive.undef.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objc"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{1:{name:"keyword.control.directive.pragma.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objc",patterns:[{include:"#strings"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objc"},{include:"#numbers"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objc"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objc"},{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.objc"},{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.objc"},{match:"(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",name:"support.type.mac-classic.objc"},{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.objc"},{include:"#block"},{include:"#parens"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.objc",patterns:[{include:"#function-innards"}]},{include:"#line_continuation_character"},{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.object.objc"},2:{name:"punctuation.definition.begin.bracket.square.objc"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.objc"}},name:"meta.bracket.square.access.objc",patterns:[{include:"#function-call-innards"}]},{match:"\\[\\s*\\]",name:"storage.modifier.array.bracket.square.objc"},{match:";",name:"punctuation.terminator.statement.objc"},{match:",",name:"punctuation.separator.delimiter.objc"}],repository:{"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.object.objc"},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objc"},{match:"->",name:"punctuation.separator.pointer-access.objc"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.objc"},{match:".+",name:"everything.else.objc"}]},5:{name:"entity.name.function.member.objc"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.objc"}},name:"meta.function-call.member.objc",patterns:[{include:"#function-call-innards"}]},block:{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},name:"meta.block.objc",patterns:[{include:"#block_innards"}]}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#method_access"},{include:"#member_access"},{include:"#c_function_call"},{begin:"(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{1:{name:"variable.other.objc"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.objc"}},name:"meta.initialization.objc",patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$base"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.objc",patterns:[{include:"#function-call-innards"}]},case_statement:{begin:"((?<!\\w)case(?!\\w))",beginCaptures:{1:{name:"keyword.control.case.objc"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.objc"}},name:"meta.conditional.case.objc",patterns:[{include:"#conditional_context"}]},comments:{patterns:[{captures:{1:{name:"meta.toc-list.banner.block.objc"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objc"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.objc"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.objc"}},name:"comment.block.objc"},{captures:{1:{name:"meta.toc-list.banner.line.objc"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objc"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objc"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objc"}},end:"(?=\\n)",name:"comment.line.double-slash.objc",patterns:[{include:"#line_continuation_character"}]}]}]},conditional_context:{patterns:[{include:"$base"},{include:"#block_innards"}]},default_statement:{begin:"((?<!\\w)default(?!\\w))",beginCaptures:{1:{name:"keyword.control.default.objc"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.default.objc"}},name:"meta.conditional.case.objc",patterns:[{include:"#conditional_context"}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},"function-call-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objc"},2:{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objc"},2:{name:"punctuation.section.parameters.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objc"}},name:"meta.function.definition.parameters.objc",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#function-innards"}]},{include:"$base"}]},line_continuation_character:{patterns:[{captures:{1:{name:"constant.character.escape.line-continuation.objc"}},match:"(\\\\)\\n"}]},member_access:{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"variable.other.member.objc"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())"},method_access:{begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objc"}]},2:{name:"punctuation.separator.dot-access.objc"},3:{name:"punctuation.separator.pointer-access.objc"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"entity.name.function.member.objc"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objc"}},contentName:"meta.function-call.member.objc",end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.function.member.objc"}},patterns:[{include:"#function-call-innards"}]},numbers:{begin:"(?<!\\w)(?=\\d|\\.\\d)",end:"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.objc"},2:{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"constant.numeric.hexadecimal.objc"},5:{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},6:{name:"punctuation.separator.constant.numeric.objc"},8:{name:"keyword.other.unit.exponent.hexadecimal.objc"},9:{name:"keyword.operator.plus.exponent.hexadecimal.objc"},10:{name:"keyword.operator.minus.exponent.hexadecimal.objc"},11:{name:"constant.numeric.exponent.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},12:{name:"keyword.other.unit.suffix.floating-point.objc"}},match:"(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"constant.numeric.decimal.point.objc"},5:{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},6:{name:"punctuation.separator.constant.numeric.objc"},8:{name:"keyword.other.unit.exponent.decimal.objc"},9:{name:"keyword.operator.plus.exponent.decimal.objc"},10:{name:"keyword.operator.minus.exponent.decimal.objc"},11:{name:"constant.numeric.exponent.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},12:{name:"keyword.other.unit.suffix.floating-point.objc"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.binary.objc"},2:{name:"constant.numeric.binary.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.octal.objc"},2:{name:"constant.numeric.octal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},4:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.hexadecimal.objc"},2:{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},5:{name:"keyword.other.unit.exponent.hexadecimal.objc"},6:{name:"keyword.operator.plus.exponent.hexadecimal.objc"},7:{name:"keyword.operator.minus.exponent.hexadecimal.objc"},8:{name:"constant.numeric.exponent.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},9:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},3:{name:"punctuation.separator.constant.numeric.objc"},5:{name:"keyword.other.unit.exponent.decimal.objc"},6:{name:"keyword.operator.plus.exponent.decimal.objc"},7:{name:"keyword.operator.minus.exponent.decimal.objc"},8:{name:"constant.numeric.exponent.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},9:{name:"keyword.other.unit.suffix.integer.objc"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{match:"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",name:"invalid.illegal.constant.numeric.objc"}]},operators:{patterns:[{match:"(?<![\\w$])(sizeof)(?![\\w$])",name:"keyword.operator.sizeof.objc"},{match:"--",name:"keyword.operator.decrement.objc"},{match:"\\+\\+",name:"keyword.operator.increment.objc"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objc"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objc"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objc"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objc"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objc"},{match:"&|\\||\\^|~",name:"keyword.operator.objc"},{match:"=",name:"keyword.operator.assignment.objc"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objc"},{begin:"(\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.objc"}},end:"(:)",endCaptures:{1:{name:"keyword.operator.ternary.objc"}},patterns:[{include:"#function-call-innards"},{include:"$base"}]}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},name:"meta.parens.objc",patterns:[{include:"$base"}]},"parens-block":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},name:"meta.parens.block.objc",patterns:[{include:"#block_innards"},{match:"(?-mix:(?<!:):(?!:))",name:"punctuation.range-based.objc"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.pragma.objc"},2:{name:"keyword.control.directive.pragma.pragma-mark.objc"},3:{name:"punctuation.definition.directive.objc"},4:{name:"entity.name.tag.pragma-mark.objc"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objc"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objc"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objc"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objc"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objc"},{include:"#comments"},{include:"#strings"},{include:"#numbers"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objc"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objc"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objc"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objc"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objc"}},name:"meta.block.objc",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objc"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objc"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objc",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]},{include:"#method_access"},{include:"#member_access"},{include:"$base"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#vararg_ellipses"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objc"},2:{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.in-block.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.if-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.else-branch.in-block.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.if-branch.in-block.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.in-block.objc",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},contentName:"comment.block.preprocessor.elif-branch.objc",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objc"},1:{name:"keyword.control.directive.conditional.objc"},2:{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards"}]},probably_a_parameter:{captures:{1:{name:"variable.parameter.probably.objc"}},match:"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"},static_assert:{begin:"(static_assert|_Static_assert)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.static_assert.objc"},2:{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{begin:'(,)\\s*(?=(?:L|u8|u|U\\s*\\")?)',beginCaptures:{1:{name:"punctuation.separator.delimiter.objc"}},end:"(?=\\))",name:"meta.static_assert.message.objc",patterns:[{include:"#string_context"},{include:"#string_context_c"}]},{include:"#function_call_context"}]},storage_types:{patterns:[{match:"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",name:"storage.type.built-in.primitive.objc"},{match:"(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",name:"storage.type.built-in.objc"},{match:"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",name:"storage.type.$1.objc"}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objc"},{captures:{1:{name:"invalid.illegal.placeholder.objc"}},match:'(%)(?!"\\s*(PRI|SCN))'}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objc"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.objc"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.objc"}},name:"meta.conditional.switch.objc",patterns:[{include:"#conditional_context"}]},switch_statement:{begin:"(((?<!\\w)switch(?!\\w)))",beginCaptures:{1:{name:"meta.head.switch.objc"},2:{name:"keyword.control.switch.objc"}},end:"(?:(?<=\\})|(?=[;>\\[\\]=]))",name:"meta.block.switch.objc",patterns:[{begin:"\\G ?",end:"((?:\\{|(?=;)))",endCaptures:{1:{name:"punctuation.section.block.begin.bracket.curly.switch.objc"}},name:"meta.head.switch.objc",patterns:[{include:"#switch_conditional_parentheses"},{include:"$base"}]},{begin:"(?<=\\{)",end:"(\\})",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.switch.objc"}},name:"meta.body.switch.objc",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$base"},{include:"#block_innards"}]},{begin:"(?<=})[\\s\\n]*",end:"[\\s\\n]*(?=;)",name:"meta.tail.switch.objc",patterns:[{include:"$base"}]}]},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objc"}}},comment:{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.objc"}},end:"\\*/",name:"comment.block.objc"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objc"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objc"}},end:"\\n",name:"comment.line.double-slash.objc",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.objc"}]}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},implementation_innards:{patterns:[{include:"#preprocessor-rule-enabled-implementation"},{include:"#preprocessor-rule-disabled-implementation"},{include:"#preprocessor-rule-other-implementation"},{include:"#property_directive"},{include:"#method_super"},{include:"$base"}]},interface_innards:{patterns:[{include:"#preprocessor-rule-enabled-interface"},{include:"#preprocessor-rule-disabled-interface"},{include:"#preprocessor-rule-other-interface"},{include:"#properties"},{include:"#protocol_list"},{include:"#method"},{include:"$base"}]},method:{begin:"^(-|\\+)\\s*",end:"(?=\\{|#)|;",name:"meta.function.objc",patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.type.begin.objc"}},end:"(\\))\\s*(\\w+\\b)",endCaptures:{1:{name:"punctuation.definition.type.end.objc"},2:{name:"entity.name.function.objc"}},name:"meta.return-type.objc",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{match:"\\b\\w+(?=:)",name:"entity.name.function.name-of-parameter.objc"},{begin:"((:))\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.name-of-parameter.objc"},2:{name:"punctuation.separator.arguments.objc"},3:{name:"punctuation.definition.type.begin.objc"}},end:"(\\))\\s*(\\w+\\b)?",endCaptures:{1:{name:"punctuation.definition.type.end.objc"},2:{name:"variable.parameter.function.objc"}},name:"meta.argument-type.objc",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{include:"#comment"}]},method_super:{begin:"^(?=-|\\+)",end:"(?<=\\})|(?=#)",name:"meta.function-with-body.objc",patterns:[{include:"#method"},{include:"$base"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.pragma.objc"},3:{name:"meta.toc-list.pragma-mark.objc"}},match:"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",name:"meta.section.objc"},"preprocessor-rule-disabled-implementation":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objc",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objc",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.if.objc"},3:{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.else.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.objc"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#implementation_innards"}]},"preprocessor-rule-other-interface":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objc"},2:{name:"keyword.control.import.objc"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#interface_innards"}]},properties:{patterns:[{begin:"((@)property)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.property.objc"},2:{name:"punctuation.definition.keyword.objc"},3:{name:"punctuation.section.scope.begin.objc"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.scope.end.objc"}},name:"meta.property-with-attributes.objc",patterns:[{match:"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",name:"keyword.other.property.attribute.objc"}]},{captures:{1:{name:"keyword.other.property.objc"},2:{name:"punctuation.definition.keyword.objc"}},match:"((@)property)\\b",name:"meta.property.objc"}]},property_directive:{captures:{1:{name:"punctuation.definition.keyword.objc"}},match:"(@)(dynamic|synthesize)\\b",name:"keyword.other.property.directive.objc"},protocol_list:{begin:"(<)",beginCaptures:{1:{name:"punctuation.section.scope.begin.objc"}},end:"(>)",endCaptures:{1:{name:"punctuation.section.scope.end.objc"}},name:"meta.protocol-list.objc",patterns:[{match:"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",name:"support.other.protocol.objc"}]},protocol_type_qualifier:{match:"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",name:"storage.modifier.protocol.objc"},special_variables:{patterns:[{match:"\\b_cmd\\b",name:"variable.other.selector.objc"},{match:"\\b(self|super)\\b",name:"variable.language.objc"}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\n[#0\\- +']*\n[,;:_]?\n((-?\\d+)|\\*(-?\\d+\\$)?)?\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?\n[diouxXDOUeEfFgGaACcSspn%]",name:"constant.other.placeholder.objc"},{captures:{1:{name:"invalid.illegal.placeholder.objc"}},match:'(%)(?!"\\s*(PRI|SCN))'}]}},o="source.objc",i={displayName:e,name:n,patterns:t,repository:a,scopeName:o};export{i as default,e as displayName,n as name,t as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/objective-cpp.mjs b/lib/dist/grammar/objective-cpp.mjs new file mode 100644 index 0000000..ddb3fd8 --- /dev/null +++ b/lib/dist/grammar/objective-cpp.mjs @@ -0,0 +1 @@ +var e="Objective-C++",n="objective-cpp",t=[{include:"#cpp_lang"},{include:"#anonymous_pattern_1"},{include:"#anonymous_pattern_2"},{include:"#anonymous_pattern_3"},{include:"#anonymous_pattern_4"},{include:"#anonymous_pattern_5"},{include:"#apple_foundation_functional_macros"},{include:"#anonymous_pattern_7"},{include:"#anonymous_pattern_8"},{include:"#anonymous_pattern_9"},{include:"#anonymous_pattern_10"},{include:"#anonymous_pattern_11"},{include:"#anonymous_pattern_12"},{include:"#anonymous_pattern_13"},{include:"#anonymous_pattern_14"},{include:"#anonymous_pattern_15"},{include:"#anonymous_pattern_16"},{include:"#anonymous_pattern_17"},{include:"#anonymous_pattern_18"},{include:"#anonymous_pattern_19"},{include:"#anonymous_pattern_20"},{include:"#anonymous_pattern_21"},{include:"#anonymous_pattern_22"},{include:"#anonymous_pattern_23"},{include:"#anonymous_pattern_24"},{include:"#anonymous_pattern_25"},{include:"#anonymous_pattern_26"},{include:"#anonymous_pattern_27"},{include:"#anonymous_pattern_28"},{include:"#anonymous_pattern_29"},{include:"#anonymous_pattern_30"},{include:"#bracketed_content"},{include:"#c_lang"}],a={anonymous_pattern_1:{begin:"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",captures:{1:{name:"storage.type.objcpp"},2:{name:"punctuation.definition.storage.type.objcpp"},4:{name:"entity.name.type.objcpp"},6:{name:"punctuation.definition.entity.other.inherited-class.objcpp"},7:{name:"entity.other.inherited-class.objcpp"},8:{name:"meta.divider.objcpp"},9:{name:"meta.inherited-class.objcpp"}},contentName:"meta.scope.interface.objcpp",end:"((@)end)\\b",name:"meta.interface-or-protocol.objcpp",patterns:[{include:"#interface_innards"}]},anonymous_pattern_10:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(defs|encode)\\b",name:"keyword.other.objcpp"},anonymous_pattern_11:{match:"\\bid\\b",name:"storage.type.id.objcpp"},anonymous_pattern_12:{match:"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",name:"storage.type.objcpp"},anonymous_pattern_13:{captures:{1:{name:"punctuation.definition.storage.type.objcpp"}},match:"(@)(class|protocol)\\b",name:"storage.type.objcpp"},anonymous_pattern_14:{begin:"((@)selector)\\s*(\\()",beginCaptures:{1:{name:"storage.type.objcpp"},2:{name:"punctuation.definition.storage.type.objcpp"},3:{name:"punctuation.definition.storage.type.objcpp"}},contentName:"meta.selector.method-name.objcpp",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.storage.type.objcpp"}},name:"meta.selector.objcpp",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\b(?:[a-zA-Z_:][\\w]*)+",name:"support.function.any-method.name-of-parameter.objcpp"}]},anonymous_pattern_15:{captures:{1:{name:"punctuation.definition.storage.modifier.objcpp"}},match:"(@)(synchronized|public|package|private|protected)\\b",name:"storage.modifier.objcpp"},anonymous_pattern_16:{match:"\\b(YES|NO|Nil|nil)\\b",name:"constant.language.objcpp"},anonymous_pattern_17:{match:"\\bNSApp\\b",name:"support.variable.foundation.objcpp"},anonymous_pattern_18:{captures:{1:{name:"punctuation.whitespace.support.function.cocoa.leopard.objcpp"},2:{name:"support.function.cocoa.leopard.objcpp"}},match:"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},anonymous_pattern_19:{captures:{1:{name:"punctuation.whitespace.support.function.leading.cocoa.objcpp"},2:{name:"support.function.cocoa.objcpp"}},match:"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},anonymous_pattern_2:{begin:"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",captures:{1:{name:"storage.type.objcpp"},2:{name:"punctuation.definition.storage.type.objcpp"},4:{name:"entity.name.type.objcpp"},5:{name:"entity.other.inherited-class.objcpp"}},contentName:"meta.scope.implementation.objcpp",end:"((@)end)\\b",name:"meta.implementation.objcpp",patterns:[{include:"#implementation_innards"}]},anonymous_pattern_20:{match:"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",name:"support.class.cocoa.leopard.objcpp"},anonymous_pattern_21:{match:"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",name:"support.class.cocoa.objcpp"},anonymous_pattern_22:{match:"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",name:"support.type.cocoa.leopard.objcpp"},anonymous_pattern_23:{match:"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",name:"support.class.quartz.objcpp"},anonymous_pattern_24:{match:"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",name:"support.type.quartz.objcpp"},anonymous_pattern_25:{match:"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",name:"support.type.cocoa.objcpp"},anonymous_pattern_26:{match:"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",name:"support.constant.cocoa.objcpp"},anonymous_pattern_27:{match:"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",name:"support.constant.notification.cocoa.leopard.objcpp"},anonymous_pattern_28:{match:"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",name:"support.constant.notification.cocoa.objcpp"},anonymous_pattern_29:{match:"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",name:"support.constant.cocoa.leopard.objcpp"},anonymous_pattern_3:{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{match:"(?x)%\n(\\d+\\$)?\n[#0\\- +']*\n((-?\\d+)|\\*(-?\\d+\\$)?)?\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\n[@]\n",name:"constant.other.placeholder.objcpp"},{include:"#string_placeholder"}]},anonymous_pattern_30:{match:"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",name:"support.constant.cocoa.objcpp"},anonymous_pattern_4:{begin:"\\b(id)\\s*(?=<)",beginCaptures:{1:{name:"storage.type.objcpp"}},end:"(?<=>)",name:"meta.id-with-protocol.objcpp",patterns:[{include:"#protocol_list"}]},anonymous_pattern_5:{match:"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",name:"keyword.control.macro.objcpp"},anonymous_pattern_7:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(try|catch|finally|throw)\\b",name:"keyword.control.exception.objcpp"},anonymous_pattern_8:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(synchronized)\\b",name:"keyword.control.synchronize.objcpp"},anonymous_pattern_9:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(required|optional)\\b",name:"keyword.control.protocol-specification.objcpp"},apple_foundation_functional_macros:{begin:"(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",beginCaptures:{1:{name:"entity.name.function.preprocessor.apple-foundation.objcpp"},2:{name:"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp"}},name:"meta.preprocessor.macro.callable.apple-foundation.objcpp",patterns:[{include:"#c_lang"}]},bracketed_content:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.scope.begin.objcpp"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.scope.end.objcpp"}},name:"meta.bracketed.objcpp",patterns:[{begin:"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",beginCaptures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.separator.arguments.objcpp"}},end:"(?=\\])",name:"meta.function-call.predicate.objcpp",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\bargument(Array|s)(:)",name:"support.function.any-method.name-of-parameter.objcpp"},{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\b\\w+(:)",name:"invalid.illegal.unknown-method.objcpp"},{begin:'@"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\b(AND|OR|NOT|IN)\\b",name:"keyword.operator.logical.predicate.cocoa.objcpp"},{match:"\\b(ALL|ANY|SOME|NONE)\\b",name:"constant.language.predicate.cocoa.objcpp"},{match:"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",name:"constant.language.predicate.cocoa.objcpp"},{match:"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",name:"keyword.operator.comparison.predicate.cocoa.objcpp"},{match:"\\bC(ASEINSENSITIVE|I)\\b",name:"keyword.other.modifier.predicate.cocoa.objcpp"},{match:"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",name:"keyword.other.predicate.cocoa.objcpp"},{match:"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{begin:'(?=\\w)(?<=[\\w\\])"] )(\\w+(?:(:)|(?=\\])))',beginCaptures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.separator.arguments.objcpp"}},end:"(?=\\])",name:"meta.function-call.objcpp",patterns:[{captures:{1:{name:"punctuation.separator.arguments.objcpp"}},match:"\\b\\w+(:)",name:"support.function.any-method.name-of-parameter.objcpp"},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$self"}]},c_functions:{patterns:[{captures:{1:{name:"punctuation.whitespace.support.function.leading.objcpp"},2:{name:"support.function.C99.objcpp"}},match:"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{captures:{1:{name:"punctuation.whitespace.function-call.leading.objcpp"},2:{name:"support.function.any-method.objcpp"},3:{name:"punctuation.definition.parameters.objcpp"}},match:"(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n(\\b\n(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++\n)\n\\s*(\\()",name:"meta.function-call.objcpp"}]},c_lang:{patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments"},{include:"#switch_statement"},{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.objcpp"},{include:"#storage_types"},{match:"typedef",name:"keyword.other.typedef.objcpp"},{match:"\\bin\\b",name:"keyword.other.in.objcpp"},{match:"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",name:"storage.modifier.objcpp"},{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.objcpp"},{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.objcpp"},{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.objcpp"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objcpp"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#special_variables"},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\n((?<id>[a-zA-Z_$][\\w$]*))\n(?:\n(\\()\n(\n\\s* \\g<id> \\s*\n((,) \\s* \\g<id> \\s*)*\n(?:\\.\\.\\.)?\n)\n(\\))\n)?",beginCaptures:{1:{name:"keyword.control.directive.define.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"entity.name.function.preprocessor.objcpp"},5:{name:"punctuation.definition.parameters.begin.objcpp"},6:{name:"variable.parameter.preprocessor.objcpp"},8:{name:"punctuation.separator.parameters.objcpp"},9:{name:"punctuation.definition.parameters.end.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objcpp",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objcpp",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objcpp",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objcpp",patterns:[{include:"#line_continuation_character"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.include.objcpp"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.other.lt-gt.include.objcpp"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{1:{name:"keyword.control.directive.undef.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{1:{name:"keyword.control.directive.pragma.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objcpp",patterns:[{include:"#strings"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objcpp"},{include:"#numbers"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objcpp"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objcpp"},{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.objcpp"},{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.objcpp"},{match:"(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",name:"support.type.mac-classic.objcpp"},{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.objcpp"},{include:"#block"},{include:"#parens"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.objcpp",patterns:[{include:"#function-innards"}]},{include:"#line_continuation_character"},{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.object.objcpp"},2:{name:"punctuation.definition.begin.bracket.square.objcpp"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.objcpp"}},name:"meta.bracket.square.access.objcpp",patterns:[{include:"#function-call-innards"}]},{match:"\\[\\s*\\]",name:"storage.modifier.array.bracket.square.objcpp"},{match:";",name:"punctuation.terminator.statement.objcpp"},{match:",",name:"punctuation.separator.delimiter.objcpp"}],repository:{"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.object.objcpp"},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},5:{name:"entity.name.function.member.objcpp"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},name:"meta.function-call.member.objcpp",patterns:[{include:"#function-call-innards"}]},block:{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#block_innards"}]}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#method_access"},{include:"#member_access"},{include:"#c_function_call"},{begin:"(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{1:{name:"variable.other.objcpp"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},name:"meta.initialization.objcpp",patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$base"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.objcpp",patterns:[{include:"#function-call-innards"}]},case_statement:{begin:"((?<!\\w)case(?!\\w))",beginCaptures:{1:{name:"keyword.control.case.objcpp"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.objcpp"}},name:"meta.conditional.case.objcpp",patterns:[{include:"#conditional_context"}]},comments:{patterns:[{captures:{1:{name:"meta.toc-list.banner.block.objcpp"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objcpp"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.objcpp"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.objcpp"}},name:"comment.block.objcpp"},{captures:{1:{name:"meta.toc-list.banner.line.objcpp"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"(?=\\n)",name:"comment.line.double-slash.objcpp",patterns:[{include:"#line_continuation_character"}]}]}]},conditional_context:{patterns:[{include:"$base"},{include:"#block_innards"}]},default_statement:{begin:"((?<!\\w)default(?!\\w))",beginCaptures:{1:{name:"keyword.control.default.objcpp"}},end:"(:)",endCaptures:{1:{name:"punctuation.separator.case.default.objcpp"}},name:"meta.conditional.case.objcpp",patterns:[{include:"#conditional_context"}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},"function-call-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-innards"}]},{include:"$base"}]},line_continuation_character:{patterns:[{captures:{1:{name:"constant.character.escape.line-continuation.objcpp"}},match:"(\\\\)\\n"}]},member_access:{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"variable.other.member.objcpp"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())"},method_access:{begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{include:"#member_access"},{include:"#method_access"},{captures:{1:{patterns:[{include:"#special_variables"},{match:"(.+)",name:"variable.other.object.access.objcpp"}]},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"}},match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))"}]},5:{name:"entity.name.function.member.objcpp"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},contentName:"meta.function-call.member.objcpp",end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},patterns:[{include:"#function-call-innards"}]},numbers:{begin:"(?<!\\w)(?=\\d|\\.\\d)",end:"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",patterns:[{captures:{1:{name:"keyword.other.unit.hexadecimal.objcpp"},2:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"constant.numeric.hexadecimal.objcpp"},5:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},6:{name:"punctuation.separator.constant.numeric.objcpp"},8:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},9:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},10:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},11:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},12:{name:"keyword.other.unit.suffix.floating-point.objcpp"}},match:"(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"constant.numeric.decimal.point.objcpp"},5:{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},6:{name:"punctuation.separator.constant.numeric.objcpp"},8:{name:"keyword.other.unit.exponent.decimal.objcpp"},9:{name:"keyword.operator.plus.exponent.decimal.objcpp"},10:{name:"keyword.operator.minus.exponent.decimal.objcpp"},11:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},12:{name:"keyword.other.unit.suffix.floating-point.objcpp"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.binary.objcpp"},2:{name:"constant.numeric.binary.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.octal.objcpp"},2:{name:"constant.numeric.octal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},4:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{1:{name:"keyword.other.unit.hexadecimal.objcpp"},2:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},5:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},6:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},7:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},8:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},9:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{captures:{2:{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},3:{name:"punctuation.separator.constant.numeric.objcpp"},5:{name:"keyword.other.unit.exponent.decimal.objcpp"},6:{name:"keyword.operator.plus.exponent.decimal.objcpp"},7:{name:"keyword.operator.minus.exponent.decimal.objcpp"},8:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},9:{name:"keyword.other.unit.suffix.integer.objcpp"}},match:"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))"},{match:"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",name:"invalid.illegal.constant.numeric.objcpp"}]},operators:{patterns:[{match:"(?<![\\w$])(sizeof)(?![\\w$])",name:"keyword.operator.sizeof.objcpp"},{match:"--",name:"keyword.operator.decrement.objcpp"},{match:"\\+\\+",name:"keyword.operator.increment.objcpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objcpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objcpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objcpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objcpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objcpp"},{match:"&|\\||\\^|~",name:"keyword.operator.objcpp"},{match:"=",name:"keyword.operator.assignment.objcpp"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objcpp"},{begin:"(\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.objcpp"}},end:"(:)",endCaptures:{1:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#function-call-innards"},{include:"$base"}]}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"meta.parens.objcpp",patterns:[{include:"$base"}]},"parens-block":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"meta.parens.block.objcpp",patterns:[{include:"#block_innards"},{match:"(?-mix:(?<!:):(?!:))",name:"punctuation.range-based.objcpp"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.pragma.objcpp"},2:{name:"keyword.control.directive.pragma.pragma-mark.objcpp"},3:{name:"punctuation.definition.directive.objcpp"},4:{name:"entity.name.tag.pragma-mark.objcpp"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objcpp"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objcpp"},{include:"#comments"},{include:"#strings"},{include:"#numbers"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objcpp"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objcpp"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objcpp"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objcpp",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]},{include:"#method_access"},{include:"#member_access"},{include:"$base"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#vararg_ellipses"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards"}]},probably_a_parameter:{captures:{1:{name:"variable.parameter.probably.objcpp"}},match:"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))"},static_assert:{begin:"(static_assert|_Static_assert)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.static_assert.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{begin:'(,)\\s*(?=(?:L|u8|u|U\\s*\\")?)',beginCaptures:{1:{name:"punctuation.separator.delimiter.objcpp"}},end:"(?=\\))",name:"meta.static_assert.message.objcpp",patterns:[{include:"#string_context"},{include:"#string_context_c"}]},{include:"#function_call_context"}]},storage_types:{patterns:[{match:"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",name:"storage.type.built-in.primitive.objcpp"},{match:"(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",name:"storage.type.built-in.objcpp"},{match:"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",name:"storage.type.$1.objcpp"}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objcpp"},{captures:{1:{name:"invalid.illegal.placeholder.objcpp"}},match:'(%)(?!"\\s*(PRI|SCN))'}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.conditional.switch.objcpp"}},name:"meta.conditional.switch.objcpp",patterns:[{include:"#conditional_context"}]},switch_statement:{begin:"(((?<!\\w)switch(?!\\w)))",beginCaptures:{1:{name:"meta.head.switch.objcpp"},2:{name:"keyword.control.switch.objcpp"}},end:"(?:(?<=\\})|(?=[;>\\[\\]=]))",name:"meta.block.switch.objcpp",patterns:[{begin:"\\G ?",end:"((?:\\{|(?=;)))",endCaptures:{1:{name:"punctuation.section.block.begin.bracket.curly.switch.objcpp"}},name:"meta.head.switch.objcpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$base"}]},{begin:"(?<=\\{)",end:"(\\})",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.switch.objcpp"}},name:"meta.body.switch.objcpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$base"},{include:"#block_innards"}]},{begin:"(?<=})[\\s\\n]*",end:"[\\s\\n]*(?=;)",name:"meta.tail.switch.objcpp",patterns:[{include:"$base"}]}]},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objcpp"}}},comment:{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"\\*/",name:"comment.block.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"\\n",name:"comment.line.double-slash.objcpp",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.objcpp"}]}]}]},cpp_lang:{patterns:[{include:"#special_block"},{include:"#strings"},{match:"\\b(friend|explicit|virtual|override|final|noexcept)\\b",name:"storage.modifier.objcpp"},{match:"\\b(private:|protected:|public:)",name:"storage.type.modifier.access.objcpp"},{match:"\\b(catch|try|throw|using)\\b",name:"keyword.control.objcpp"},{match:"\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])",name:"keyword.control.objcpp"},{match:"\\b(f|m)[A-Z]\\w*\\b",name:"variable.other.readwrite.member.objcpp"},{match:"\\bthis\\b",name:"variable.language.this.objcpp"},{match:"\\bnullptr\\b",name:"constant.language.objcpp"},{include:"#template_definition"},{match:"\\btemplate\\b\\s*",name:"storage.type.template.objcpp"},{match:"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",name:"keyword.operator.cast.objcpp"},{captures:{1:{name:"entity.scope.objcpp"},2:{name:"entity.scope.name.objcpp"},3:{name:"punctuation.separator.namespace.access.objcpp"}},match:"((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)",name:"punctuation.separator.namespace.access.objcpp"},{match:"\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b",name:"keyword.operator.objcpp"},{match:"\\b(decltype|wchar_t|char16_t|char32_t)\\b",name:"storage.type.objcpp"},{match:"\\b(constexpr|export|mutable|typename|thread_local)\\b",name:"storage.modifier.objcpp"},{begin:"(?x)\n(?:\n^ |\n(?:(?<!else|new|=))\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.objcpp",patterns:[{include:"$base"}]},{begin:"(?x)\n(?:\n^ |\n(?:(?<!else|new|=))\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.prototype.objcpp",patterns:[{include:"$base"}]},{include:"#c_lang"}],repository:{angle_brackets:{begin:"<",end:">",name:"meta.angle-brackets.objcpp",patterns:[{include:"#angle_brackets"},{include:"$base"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{captures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.definition.parameters.objcpp"}},match:"(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",name:"meta.function-call.objcpp"},{include:"$base"}]},constructor:{patterns:[{begin:"(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{1:{name:"entity.name.function.constructor.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.constructor.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",beginCaptures:{1:{name:"punctuation.definition.parameters.objcpp"}},end:"(?=\\{)",name:"meta.function.constructor.initializer-list.objcpp",patterns:[{include:"$base"}]}]},special_block:{patterns:[{begin:"\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)",beginCaptures:{1:{name:"keyword.control.objcpp"},2:{name:"storage.type.namespace.objcpp"},3:{name:"entity.name.type.objcpp"}},end:";",endCaptures:{0:{name:"punctuation.terminator.statement.objcpp"}},name:"meta.using-namespace-declaration.objcpp"},{begin:"\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+",beginCaptures:{1:{name:"storage.type.namespace.objcpp"},2:{name:"entity.name.type.objcpp"}},captures:{1:{name:"keyword.control.namespace.$2.objcpp"}},end:"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",name:"meta.namespace-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",beginCaptures:{1:{name:"storage.type.class.objcpp"},2:{name:"storage.type.struct.objcpp"},3:{name:"entity.name.type.objcpp"},5:{name:"storage.type.modifier.access.objcpp"},6:{name:"entity.name.type.inherited.objcpp"},7:{patterns:[{match:"(public|protected|private)",name:"storage.type.modifier.access.objcpp"},{match:"[_A-Za-z][_A-Za-z0-9]*",name:"entity.name.type.inherited.objcpp"}]}},end:"(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))",name:"meta.class-struct-block.objcpp",patterns:[{include:"#angle_brackets"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"(\\})(\\s*\\n)?",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.objcpp"},2:{name:"invalid.illegal.you-forgot-semicolon.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:'\\b(extern)(?=\\s*")',beginCaptures:{1:{name:"storage.modifier.objcpp"}},end:"(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",name:"meta.extern-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}|(?=\\s*#\\s*endif\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#special_block"},{include:"$base"}]},{include:"$base"}]}]},strings:{patterns:[{begin:'(u|u8|U|L)?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\\\u\\h{4}|\\\\U\\h{8}",name:"constant.character.escape.objcpp"},{match:"\\\\['\"?\\\\abfnrtv]",name:"constant.character.escape.objcpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.objcpp"},{match:"\\\\x\\h+",name:"constant.character.escape.objcpp"},{include:"#string_placeholder"}]},{begin:'(u|u8|U|L)?R"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"},3:{name:"invalid.illegal.delimiter-too-long.objcpp"}},end:'\\)\\2(\\3)"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"},1:{name:"invalid.illegal.delimiter-too-long.objcpp"}},name:"string.quoted.double.raw.objcpp"}]},template_definition:{begin:"\\b(template)\\s*(<)\\s*",beginCaptures:{1:{name:"storage.type.template.objcpp"},2:{name:"meta.template.angle-brackets.start.objcpp"}},end:">",endCaptures:{0:{name:"meta.template.angle-brackets.end.objcpp"}},name:"template.definition.objcpp",patterns:[{include:"#template_definition_argument"}]},template_definition_argument:{captures:{1:{name:"storage.type.template.objcpp"},2:{name:"storage.type.template.objcpp"},3:{name:"entity.name.type.template.objcpp"},4:{name:"storage.type.template.objcpp"},5:{name:"meta.template.operator.ellipsis.objcpp"},6:{name:"entity.name.type.template.objcpp"},7:{name:"storage.type.template.objcpp"},8:{name:"entity.name.type.template.objcpp"},9:{name:"keyword.operator.assignment.objcpp"},10:{name:"constant.language.objcpp"},11:{name:"meta.template.operator.comma.objcpp"}},match:"\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))"}}},cpp_lang_newish:{patterns:[{include:"#special_block"},{match:"(?-mix:##[a-zA-Z_]\\w*(?!\\w))",name:"variable.other.macro.argument.objcpp"},{include:"#strings"},{match:"(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)",name:"storage.modifier.specificer.functional.pre-parameters.$1.objcpp"},{match:"(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))",name:"storage.modifier.specifier.functional.post-parameters.$1.objcpp"},{match:"(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)",name:"storage.modifier.specifier.$1.objcpp"},{match:"(?<!\\w)((?:private|protected|public)) *:",name:"storage.type.modifier.access.control.$1.objcpp"},{match:"(?<!\\w)(?:throw|try|catch)(?!\\w)",name:"keyword.control.exception.$1.objcpp"},{match:"(?<!\\w)(using|typedef)(?!\\w)",name:"keyword.other.$1.objcpp"},{include:"#memory_operators"},{match:"\\bthis\\b",name:"variable.language.this.objcpp"},{include:"#constants"},{include:"#template_definition"},{match:"\\btemplate\\b\\s*",name:"storage.type.template.objcpp"},{match:"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",name:"keyword.operator.cast.$1.objcpp"},{include:"#scope_resolution"},{match:"\\b(decltype|wchar_t|char16_t|char32_t)\\b",name:"storage.type.objcpp"},{match:"\\b(constexpr|export|mutable|typename|thread_local)\\b",name:"storage.modifier.objcpp"},{begin:"(?x)\n(?:\n^ |\n(?:(?<!else|new|=))\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.destructor.objcpp"},2:{name:"punctuation.definition.parameters.begin.destructor.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.destructor.objcpp"}},name:"meta.function.destructor.objcpp",patterns:[{include:"$base"}]},{begin:"(?x)\n(?:\n^ |\n(?:(?<!else|new|=))\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.prototype.objcpp",patterns:[{include:"$base"}]},{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments-c"},{match:"\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b",name:"keyword.control.$1.objcpp"},{include:"#storage_types_c"},{match:"\\b(const|extern|register|restrict|static|volatile|inline)\\b",name:"storage.modifier.objcpp"},{include:"#operators"},{include:"#operator_overload"},{include:"#number_literal"},{include:"#strings-c"},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\n((?<id>[a-zA-Z_$][\\w$]*))\n(?:\n(\\()\n(\n\\s* \\g<id> \\s*\n((,) \\s* \\g<id> \\s*)*\n(?:\\.\\.\\.)?\n)\n(\\))\n)?",beginCaptures:{1:{name:"keyword.control.directive.define.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"entity.name.function.preprocessor.objcpp"},5:{name:"punctuation.definition.parameters.begin.objcpp"},6:{name:"variable.parameter.preprocessor.objcpp"},8:{name:"punctuation.separator.parameters.objcpp"},9:{name:"punctuation.definition.parameters.end.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objcpp",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.diagnostic.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objcpp",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objcpp",patterns:[{include:"#line_continuation_character"},{include:"#comments-c"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{1:{name:"keyword.control.directive.$3.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objcpp",patterns:[{include:"#line_continuation_character"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.include.objcpp"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.other.lt-gt.include.objcpp"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{1:{name:"keyword.control.directive.line.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#strings-c"},{include:"#number_literal"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{1:{name:"keyword.control.directive.undef.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{1:{name:"keyword.control.directive.pragma.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objcpp",patterns:[{include:"#strings-c"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objcpp"},{include:"#number_literal"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objcpp"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objcpp"},{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.objcpp"},{match:"(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)",name:"support.type.posix-reserved.objcpp"},{include:"#block-c"},{include:"#parens-c"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.definition.objcpp",patterns:[{include:"#function-innards-c"}]},{include:"#line_continuation_character"},{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{1:{name:"variable.other.object.objcpp"},2:{name:"punctuation.definition.begin.bracket.square.objcpp"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.end.bracket.square.objcpp"}},name:"meta.bracket.square.access.objcpp",patterns:[{include:"#function-call-innards-c"}]},{match:"(?-mix:(?<!delete))\\\\[\\\\s*\\\\]",name:"storage.modifier.array.bracket.square.objcpp"},{match:";",name:"punctuation.terminator.statement.objcpp"},{match:",",name:"punctuation.separator.delimiter.objcpp"}],repository:{"access-member":{captures:{1:{name:"variable.other.object.objcpp"},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_]\\w*",name:"variable.other.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},5:{name:"variable.other.member.objcpp"}},match:"(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()",name:"variable.other.object.access.objcpp"},"access-method":{begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{1:{name:"variable.other.object.objcpp"},2:{name:"punctuation.separator.dot-access.objcpp"},3:{name:"punctuation.separator.pointer-access.objcpp"},4:{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.other.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},5:{name:"entity.name.function.member.objcpp"},6:{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},name:"meta.function-call.member.objcpp",patterns:[{include:"#function-call-innards-c"}]},angle_brackets:{begin:"<",end:">",name:"meta.angle-brackets.objcpp",patterns:[{include:"#angle_brackets"},{include:"$base"}]},block:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{captures:{1:{name:"support.function.any-method.objcpp"},2:{name:"punctuation.definition.parameters.objcpp"}},match:"(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",name:"meta.function-call.objcpp"},{include:"$base"}]},"block-c":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#block_innards-c"}]}]},"block_innards-c":{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#access-method"},{include:"#access-member"},{include:"#c_function_call"},{begin:"(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{1:{name:"variable.other.objcpp"},2:{name:"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},name:"meta.initialization.objcpp",patterns:[{include:"#function-call-innards-c"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#block_innards-c"}]},{include:"#parens-block-c"},{include:"$base"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.objcpp",patterns:[{include:"#function-call-innards-c"}]},"comments-c":{patterns:[{captures:{1:{name:"meta.toc-list.banner.block.objcpp"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objcpp"},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.objcpp"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.objcpp"}},name:"comment.block.objcpp"},{captures:{1:{name:"meta.toc-list.banner.line.objcpp"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.objcpp"}},end:"(?=\\n)",name:"comment.line.double-slash.objcpp",patterns:[{include:"#line_continuation_character"}]}]}]},constants:{match:"(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)",name:"constant.language.objcpp"},constructor:{patterns:[{begin:"(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{1:{name:"entity.name.function.constructor.objcpp"},2:{name:"punctuation.definition.parameters.begin.constructor.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.constructor.objcpp"}},name:"meta.function.constructor.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},{begin:"(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",beginCaptures:{1:{name:"punctuation.definition.initializer-list.parameters.objcpp"}},end:"(?=\\{)",name:"meta.function.constructor.initializer-list.objcpp",patterns:[{include:"$base"}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},"function-call-innards-c":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#access-method"},{include:"#access-member"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.memory.new.objcpp"},2:{patterns:[{include:"#template_call_innards"}]},3:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()",beginCaptures:{1:{patterns:[{include:"#scope_resolution"}]},2:{name:"entity.name.function.call.objcpp"},3:{patterns:[{include:"#template_call_innards"}]},4:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{include:"#block_innards-c"}]},"function-innards-c":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#operators"},{include:"#vararg_ellipses-c"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)|:",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-innards-c"}]},{include:"$base"}]},line_continuation_character:{patterns:[{captures:{1:{name:"constant.character.escape.line-continuation.objcpp"}},match:"(\\\\)\\n"}]},literal_numeric_seperator:{match:"(?<!')'(?!')",name:"punctuation.separator.constant.numeric.objcpp"},memory_operators:{captures:{1:{name:"keyword.operator.memory.delete.array.objcpp"},2:{name:"keyword.operator.memory.delete.array.bracket.objcpp"},3:{name:"keyword.operator.memory.delete.objcpp"},4:{name:"keyword.operator.memory.new.objcpp"}},match:"(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)",name:"keyword.operator.memory.objcpp"},number_literal:{captures:{2:{name:"keyword.other.unit.hexadecimal.objcpp"},3:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},4:{name:"punctuation.separator.constant.numeric.objcpp"},5:{name:"constant.numeric.hexadecimal.objcpp"},6:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},7:{name:"punctuation.separator.constant.numeric.objcpp"},8:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},9:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},10:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},11:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},12:{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},13:{name:"punctuation.separator.constant.numeric.objcpp"},14:{name:"constant.numeric.decimal.point.objcpp"},15:{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},16:{name:"punctuation.separator.constant.numeric.objcpp"},17:{name:"keyword.other.unit.exponent.decimal.objcpp"},18:{name:"keyword.operator.plus.exponent.decimal.objcpp"},19:{name:"keyword.operator.minus.exponent.decimal.objcpp"},20:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},21:{name:"keyword.other.unit.suffix.floating-point.objcpp"},22:{name:"keyword.other.unit.binary.objcpp"},23:{name:"constant.numeric.binary.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},24:{name:"punctuation.separator.constant.numeric.objcpp"},25:{name:"keyword.other.unit.octal.objcpp"},26:{name:"constant.numeric.octal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},27:{name:"punctuation.separator.constant.numeric.objcpp"},28:{name:"keyword.other.unit.hexadecimal.objcpp"},29:{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},30:{name:"punctuation.separator.constant.numeric.objcpp"},31:{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},32:{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},33:{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},34:{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},35:{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},36:{name:"punctuation.separator.constant.numeric.objcpp"},37:{name:"keyword.other.unit.exponent.decimal.objcpp"},38:{name:"keyword.operator.plus.exponent.decimal.objcpp"},39:{name:"keyword.operator.minus.exponent.decimal.objcpp"},40:{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},41:{name:"keyword.other.unit.suffix.integer.objcpp"},42:{name:"keyword.other.unit.user-defined.objcpp"}},match:"((?<!\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))"},operator_overload:{begin:"((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()",beginCaptures:{1:{name:"entity.scope.objcpp"},2:{name:"keyword.other.operator.overload.objcpp"},3:{name:"entity.name.operator.overloadee.objcpp"},4:{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.operator-overload.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},operators:{patterns:[{match:"(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))",name:"keyword.operator.$1.objcpp"},{match:"--",name:"keyword.operator.decrement.objcpp"},{match:"\\+\\+",name:"keyword.operator.increment.objcpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objcpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objcpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objcpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objcpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objcpp"},{match:"&|\\||\\^|~",name:"keyword.operator.objcpp"},{match:"=",name:"keyword.operator.assignment.objcpp"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objcpp"},{applyEndPatternLast:!0,begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#access-method"},{include:"#access-member"},{include:"#c_function_call"},{include:"$base"}]}]},"parens-block-c":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"meta.block.parens.objcpp",patterns:[{include:"#block_innards-c"},{match:"(?<!:):(?!:)",name:"punctuation.range-based.objcpp"}]},"parens-c":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},name:"punctuation.section.parens-c\b.objcpp",patterns:[{include:"$base"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.pragma.objcpp"},2:{name:"keyword.control.directive.pragma.pragma-mark.objcpp"},3:{name:"punctuation.definition.directive.objcpp"},4:{name:"entity.name.tag.pragma-mark.objcpp"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards-c"}]},{captures:{0:{name:"invalid.illegal.stray-$1.objcpp"}},match:"^\\s*#\\s*(else|elif|endif)\\b"}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objcpp"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objcpp"},{include:"#comments-c"},{include:"#strings-c"},{include:"#number_literal"},{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{include:"#constants"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{0:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses-c"},{match:"(?-mix:##?[a-zA-Z_]\\w*(?!\\w))",name:"variable.other.macro.argument.objcpp"},{begin:"{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objcpp"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objcpp"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objcpp",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"|(?<!\\\\)(?=\\s*\\n)',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#string_placeholder-c"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#line_continuation_character"}]},{include:"#access-method"},{include:"#access-member"},{include:"$base"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#vararg_ellipses-c"},{include:"#access-method"},{include:"#access-member"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.objcpp"},2:{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{1:{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards-c"}]},{begin:"\\n",contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.else-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards-c"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.in-block.objcpp",end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},contentName:"comment.block.preprocessor.elif-branch.objcpp",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards-c"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{0:{name:"meta.preprocessor.objcpp"},1:{name:"keyword.control.directive.conditional.objcpp"},2:{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards-c"}]},probably_a_parameter:{captures:{1:{name:"variable.parameter.probably.defaulted.objcpp"},2:{name:"variable.parameter.probably.objcpp"}},match:"(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))"},scope_resolution:{captures:{1:{patterns:[{include:"#scope_resolution"}]},2:{name:"entity.name.namespace.scope-resolution.objcpp"},3:{patterns:[{include:"#template_call_innards"}]},4:{name:"punctuation.separator.namespace.access.objcpp"}},match:"((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)",name:"meta.scope-resolution.objcpp"},special_block:{patterns:[{begin:"\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)",beginCaptures:{1:{name:"keyword.other.using.directive.objcpp"},2:{name:"keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp"},3:{patterns:[{include:"#scope_resolution"}]},4:{name:"entity.name.namespace.objcpp"}},comment:"https://en.cppreference.com/w/cpp/language/namespace",end:";",endCaptures:{0:{name:"punctuation.terminator.statement.objcpp"}},name:"meta.using-namespace-declaration.objcpp"},{begin:"(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))",beginCaptures:{1:{name:"keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp"},2:{patterns:[{match:"(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))",name:"entity.name.type.objcpp"},{match:"::",name:"punctuation.separator.namespace.access.objcpp"}]}},end:"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",name:"meta.namespace-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.scope.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",beginCaptures:{1:{name:"storage.type.class.objcpp"},2:{name:"storage.type.struct.objcpp"},3:{name:"entity.name.type.objcpp"},5:{name:"storage.type.modifier.access.objcpp"},6:{name:"entity.name.type.inherited.objcpp"},7:{patterns:[{match:"(public|protected|private)",name:"storage.type.modifier.access.objcpp"},{match:"[_A-Za-z][_A-Za-z0-9]*",name:"entity.name.type.inherited.objcpp"}]}},end:"(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))",endCaptures:{1:{name:"punctuation.terminator.statement.objcpp"}},name:"meta.class-struct-block.objcpp",patterns:[{include:"#angle_brackets"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"(\\})(\\s*\\n)?",endCaptures:{1:{name:"punctuation.section.block.end.bracket.curly.objcpp"},2:{name:"invalid.illegal.you-forgot-semicolon.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:'\\b(extern)(?=\\s*")',beginCaptures:{1:{name:"storage.modifier.objcpp"}},end:"(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",name:"meta.extern-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}|(?=\\s*#\\s*endif\\b)",endCaptures:{0:{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#special_block"},{include:"$base"}]},{include:"$base"}]}]},storage_types_c:{patterns:[{match:"(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)",name:"storage.type.primitive.objcpp"},{match:"(?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)",name:"storage.type.objcpp"},{match:"(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)",name:"storage.type.$1.objcpp"}]},"string_escaped_char-c":{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},"string_placeholder-c":{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objcpp"}]},strings:{patterns:[{begin:'(u|u8|U|L)?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\\\u\\h{4}|\\\\U\\h{8}",name:"constant.character.escape.objcpp"},{match:"\\\\['\"?\\\\abfnrtv]",name:"constant.character.escape.objcpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.objcpp"},{match:"\\\\x\\h+",name:"constant.character.escape.objcpp"},{include:"#string_placeholder-c"}]},{begin:'(u|u8|U|L)?R"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"},1:{name:"meta.encoding.objcpp"},3:{name:"invalid.illegal.delimiter-too-long.objcpp"}},end:'\\)\\2(\\3)"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"},1:{name:"invalid.illegal.delimiter-too-long.objcpp"}},name:"string.quoted.double.raw.objcpp"}]},"strings-c":{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#string_placeholder-c"},{include:"#line_continuation_character"}]},{begin:"(?-mix:(?<![\\da-fA-F])')",beginCaptures:{0:{name:"punctuation.definition.string.begin.objcpp"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#line_continuation_character"}]}]},template_call_innards:{captures:{0:{name:"meta.template.call.objcpp",patterns:[{include:"#storage_types_c"},{include:"#constants"},{include:"#scope_resolution"},{match:"(?<!\\w)[a-zA-Z_]\\w*(?!\\w)",name:"storage.type.user-defined.objcpp"},{include:"#operators"},{include:"#number_literal"},{include:"#strings"},{match:",",name:"punctuation.separator.comma.template.argument.objcpp"}]}},match:"<(?:[\\s<>,\\w])*>\\s*"},template_definition:{begin:"(?-mix:(?<!\\w)(template)\\s*(<))",beginCaptures:{1:{name:"storage.type.template.objcpp"},2:{name:"punctuation.section.angle-brackets.start.template.definition.objcpp"}},end:"(?-mix:(>))",endCaptures:{1:{name:"punctuation.section.angle-brackets.end.template.definition.objcpp"}},name:"meta.template.definition.objcpp",patterns:[{include:"#scope_resolution"},{include:"#template_definition_argument"},{include:"#template_call_innards"}]},template_definition_argument:{captures:{2:{name:"storage.type.template.argument.$1.objcpp"},3:{name:"storage.type.template.argument.$2.objcpp"},4:{name:"entity.name.type.template.objcpp"},5:{name:"storage.type.template.objcpp"},6:{name:"keyword.operator.ellipsis.template.definition.objcpp"},7:{name:"entity.name.type.template.objcpp"},8:{name:"storage.type.template.objcpp"},9:{name:"entity.name.type.template.objcpp"},10:{name:"keyword.operator.assignment.objcpp"},11:{name:"constant.other.objcpp"},12:{name:"punctuation.separator.comma.template.argument.objcpp"}},match:"((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))"},"vararg_ellipses-c":{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objcpp"}}},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},implementation_innards:{patterns:[{include:"#preprocessor-rule-enabled-implementation"},{include:"#preprocessor-rule-disabled-implementation"},{include:"#preprocessor-rule-other-implementation"},{include:"#property_directive"},{include:"#method_super"},{include:"$base"}]},interface_innards:{patterns:[{include:"#preprocessor-rule-enabled-interface"},{include:"#preprocessor-rule-disabled-interface"},{include:"#preprocessor-rule-other-interface"},{include:"#properties"},{include:"#protocol_list"},{include:"#method"},{include:"$base"}]},method:{begin:"^(-|\\+)\\s*",end:"(?=\\{|#)|;",name:"meta.function.objcpp",patterns:[{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.type.begin.objcpp"}},end:"(\\))\\s*(\\w+\\b)",endCaptures:{1:{name:"punctuation.definition.type.end.objcpp"},2:{name:"entity.name.function.objcpp"}},name:"meta.return-type.objcpp",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{match:"\\b\\w+(?=:)",name:"entity.name.function.name-of-parameter.objcpp"},{begin:"((:))\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.name-of-parameter.objcpp"},2:{name:"punctuation.separator.arguments.objcpp"},3:{name:"punctuation.definition.type.begin.objcpp"}},end:"(\\))\\s*(\\w+\\b)?",endCaptures:{1:{name:"punctuation.definition.type.end.objcpp"},2:{name:"variable.parameter.function.objcpp"}},name:"meta.argument-type.objcpp",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{include:"#comment"}]},method_super:{begin:"^(?=-|\\+)",end:"(?<=\\})|(?=#)",name:"meta.function-with-body.objcpp",patterns:[{include:"#method"},{include:"$base"}]},"pragma-mark":{captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.pragma.objcpp"},3:{name:"meta.toc-list.pragma-mark.objcpp"}},match:"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-disabled-implementation":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.if.objcpp"},3:{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.else.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.objcpp"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#implementation_innards"}]},"preprocessor-rule-other-interface":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{1:{name:"meta.preprocessor.objcpp"},2:{name:"keyword.control.import.objcpp"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#interface_innards"}]},properties:{patterns:[{begin:"((@)property)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.property.objcpp"},2:{name:"punctuation.definition.keyword.objcpp"},3:{name:"punctuation.section.scope.begin.objcpp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.scope.end.objcpp"}},name:"meta.property-with-attributes.objcpp",patterns:[{match:"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",name:"keyword.other.property.attribute.objcpp"}]},{captures:{1:{name:"keyword.other.property.objcpp"},2:{name:"punctuation.definition.keyword.objcpp"}},match:"((@)property)\\b",name:"meta.property.objcpp"}]},property_directive:{captures:{1:{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(dynamic|synthesize)\\b",name:"keyword.other.property.directive.objcpp"},protocol_list:{begin:"(<)",beginCaptures:{1:{name:"punctuation.section.scope.begin.objcpp"}},end:"(>)",endCaptures:{1:{name:"punctuation.section.scope.end.objcpp"}},name:"meta.protocol-list.objcpp",patterns:[{match:"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",name:"support.other.protocol.objcpp"}]},protocol_type_qualifier:{match:"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",name:"storage.modifier.protocol.objcpp"},special_variables:{patterns:[{match:"\\b_cmd\\b",name:"variable.other.selector.objcpp"},{match:"\\b(self|super)\\b",name:"variable.language.objcpp"}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\n[#0\\- +']*\n[,;:_]?\n((-?\\d+)|\\*(-?\\d+\\$)?)?\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?\n[diouxXDOUeEfFgGaACcSspn%]",name:"constant.other.placeholder.objcpp"},{captures:{1:{name:"invalid.illegal.placeholder.objcpp"}},match:'(%)(?!"\\s*(PRI|SCN))'}]}},o="source.objcpp",i={displayName:e,name:n,patterns:t,repository:a,scopeName:o};export{i as default,e as displayName,n as name,t as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/ocaml.mjs b/lib/dist/grammar/ocaml.mjs new file mode 100644 index 0000000..8cab9ee --- /dev/null +++ b/lib/dist/grammar/ocaml.mjs @@ -0,0 +1 @@ +var e="OCaml",n=[".ml",".mli"],t="ocaml",a=[{include:"#comment"},{include:"#pragma"},{include:"#decl"}],r={attribute:{begin:"(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",beginCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\]",endCaptures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},attributeIdentifier:{captures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"}},match:"((?<![#\\-:!?.@*/&%^+<=>|~$])%(?![#\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))"},attributePayload:{patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pathModuleExtended"},{include:"#pathRecord"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])",patterns:[{include:"#signature"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])",patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])|\\bwhen\\b",endCaptures:{1:{}},patterns:[{include:"#pattern"}]},{begin:"(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))",end:"(?=\\])",patterns:[{include:"#term"}]}]},{include:"#term"}]},bindClassTerm:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)",endCaptures:{0:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.tag"}},end:"\\]",patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindClassType:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)",endCaptures:{0:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.tag"}},end:"\\]",patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#literalClassType"}]}]},bindConstructor:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"},3:{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{match:"\\.\\.",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{match:"\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#type"}]}]},bindSignature:{patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#pathModuleExtended"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#signature"}]}]},bindStructure:{patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"}},patterns:[{include:"#comment"},{match:"\\bmodule\\b",name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.function strong emphasis"},{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:"(?=\\))",patterns:[{include:"#signature"}]},{include:"#variableModule"}]},{include:"#literalUnit"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"support.type strong"}},patterns:[{include:"#signature"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#structure"}]}]},bindTerm:{patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",end:"(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},4:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",end:"(?=\\b(?:module|open)\\b)|(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\brec\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"}]},{begin:"(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))",end:"((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])",endCaptures:{0:{name:"entity.name.function strong emphasis"}},patterns:[{include:"#bindTermArgs"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#declModule"}]},{begin:"(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))",end:"(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#pathModuleSimple"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\btype\\b|(?=[^[:space:]])",endCaptures:{0:{name:"keyword.control"}}},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindTermArgs:{patterns:[{applyEndPatternLast:!0,begin:"~|\\?",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:":|(?=[^[:space:]])",endCaptures:{0:{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))",endCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{begin:"\\((?!\\*)",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{begin:"(?<=\\()",end:":|=",endCaptures:{0:{name:"keyword"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}]},{begin:"(?<=:)",end:"=|(?=\\))",endCaptures:{0:{name:"keyword"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\))",patterns:[{include:"#term"}]}]}]}]},{include:"#pattern"}]},bindType:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{include:"#pathType"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"entity.name.function strong"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#bindConstructor"}]}]},comment:{patterns:[{include:"#attribute"},{include:"#extension"},{include:"#commentBlock"},{include:"#commentDoc"}]},commentBlock:{begin:"\\(\\*(?!\\*[^\\)])",contentName:"emphasis",end:"\\*\\)",name:"comment constant.regexp meta.separator.markdown",patterns:[{include:"#commentBlock"},{include:"#commentDoc"}]},commentDoc:{begin:"\\(\\*\\*",end:"\\*\\)",name:"comment constant.regexp meta.separator.markdown",patterns:[{match:"\\*"},{include:"#comment"}]},decl:{patterns:[{include:"#declClass"},{include:"#declException"},{include:"#declInclude"},{include:"#declModule"},{include:"#declOpen"},{include:"#declTerm"},{include:"#declType"}]},declClass:{begin:"\\bclass\\b",beginCaptures:{0:{name:"entity.name.class constant.numeric markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:"(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))",beginCaptures:{0:{name:"entity.name.class constant.numeric markup.underline"}},end:"\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{0:{name:"keyword"}},patterns:[{include:"#bindClassTerm"}]},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindClassType"}]}]},declException:{begin:"\\bexception\\b",beginCaptures:{0:{name:"keyword markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#bindConstructor"}]},declInclude:{begin:"\\binclude\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#signature"}]},declModule:{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b",beginCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(\\btype\\b)|(?=[[:upper:]])",endCaptures:{0:{name:"keyword"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{match:"\\brec\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindSignature"}]},{begin:"(?=[[:upper:]])",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindStructure"}]}]},declOpen:{begin:"\\bopen\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#pathModuleExtended"}]},declTerm:{begin:"\\b(?:(external|val)|(method)|(let))\\b(!?)",beginCaptures:{1:{name:"support.type markup.underline"},2:{name:"storage.type markup.underline"},3:{name:"keyword.control markup.underline"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindTerm"}]},declType:{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b",beginCaptures:{0:{name:"keyword markup.underline"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindType"}]},extension:{begin:"(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",beginCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\]",endCaptures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},literal:{patterns:[{include:"#termConstructor"},{include:"#literalArray"},{include:"#literalBoolean"},{include:"#literalCharacter"},{include:"#literalList"},{include:"#literalNumber"},{include:"#literalObjectTerm"},{include:"#literalString"},{include:"#literalRecord"},{include:"#literalUnit"}]},literalArray:{begin:"\\[\\|",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\|\\]",patterns:[{include:"#term"}]},literalBoolean:{match:"\\bfalse|true\\b",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},literalCharacter:{begin:"(?<![[:word:]])'",end:"'",name:"markup.punctuation.quote.beginning",patterns:[{include:"#literalCharacterEscape"}]},literalCharacterEscape:{match:"\\\\(?:[\\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])"},literalClassType:{patterns:[{include:"#comment"},{begin:"\\bobject\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{begin:"\\binherit\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{begin:"\\bas\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#variablePattern"}]},{include:"#type"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:"\\[",end:"\\]"}]},literalList:{patterns:[{begin:"\\[",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\]",patterns:[{include:"#term"}]}]},literalNumber:{match:"(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?",name:"constant.numeric"},literalObjectTerm:{patterns:[{include:"#comment"},{begin:"\\bobject\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{begin:"\\binherit\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{begin:"\\bas\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#variablePattern"}]},{include:"#term"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:"\\[",end:"\\]"}]},literalRecord:{begin:"\\{",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:"\\}",patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]}]},literalString:{patterns:[{begin:'"',end:'"',name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]},{begin:"(\\{)([_[:lower:]]*?)(\\|)",end:"(\\|)(\\2)(\\})",name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]}]},literalStringEscape:{match:'\\\\(?:[\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])'},literalUnit:{match:"\\(\\)",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},pathModuleExtended:{patterns:[{include:"#pathModulePrefixExtended"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.class constant.numeric"}]},pathModulePrefixExtended:{begin:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()",beginCaptures:{0:{name:"entity.name.class constant.numeric"}},end:"(?![[:space:]\\.]|$|\\()",patterns:[{include:"#comment"},{begin:"\\(",captures:{0:{name:"keyword.control"}},end:"\\)",patterns:[{match:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword strong"}},end:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()",endCaptures:{1:{name:"entity.name.class constant.numeric"},2:{name:"entity.name.function strong"},3:{name:"string.other.link variable.language variable.parameter emphasis"}}}]},pathModulePrefixExtendedParens:{begin:"\\(",captures:{0:{name:"keyword.control"}},end:"\\)",patterns:[{match:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},pathModulePrefixSimple:{begin:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)",beginCaptures:{0:{name:"entity.name.class constant.numeric"}},end:"(?![[:space:]\\.])",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword strong"}},end:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])",endCaptures:{1:{name:"entity.name.class constant.numeric"},2:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}}}]},pathModuleSimple:{patterns:[{include:"#pathModulePrefixSimple"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.class constant.numeric"}]},pathRecord:{patterns:[{begin:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",end:"(?=[^[:space:]\\.])(?!\\(\\*)",patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword strong"}},end:"((?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])",endCaptures:{1:{name:"keyword strong"},2:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{begin:"\\((?!\\*)",captures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\)",patterns:[{include:"#term"}]},{begin:"\\[",captures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"\\]",patterns:[{include:"#pattern"}]}]}]}]},pattern:{patterns:[{include:"#comment"},{include:"#patternArray"},{include:"#patternLazy"},{include:"#patternList"},{include:"#patternMisc"},{include:"#patternModule"},{include:"#patternRecord"},{include:"#literal"},{include:"#patternParens"},{include:"#patternType"},{include:"#variablePattern"},{include:"#termOperator"}]},patternArray:{begin:"\\[\\|",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\|\\]",patterns:[{include:"#pattern"}]},patternLazy:{match:"lazy",name:"variable.other.class.js message.error variable.interpolation string.regexp"},patternList:{begin:"\\[",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},end:"\\]",patterns:[{include:"#pattern"}]},patternMisc:{captures:{1:{name:"string.regexp strong"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:"((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b"},patternModule:{begin:"\\bmodule\\b",beginCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:"(?=\\))",patterns:[{include:"#declModule"}]},patternParens:{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:"(?=\\))",patterns:[{include:"#type"}]},{include:"#pattern"}]},patternRecord:{begin:"\\{",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:"\\}",patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]}]},patternType:{begin:"\\btype\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=\\))",patterns:[{include:"#declType"}]},pragma:{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"punctuation.definition.tag"}},end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#comment"},{include:"#literalNumber"},{include:"#literalString"}]},signature:{patterns:[{include:"#comment"},{include:"#signatureLiteral"},{include:"#signatureFunctor"},{include:"#pathModuleExtended"},{include:"#signatureParens"},{include:"#signatureRecovered"},{include:"#signatureConstraints"}]},signatureConstraints:{begin:"\\bwith\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},end:"(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"\\b(?:(module)|(type))\\b",endCaptures:{1:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},2:{name:"keyword"}}},{include:"#declModule"},{include:"#declType"}]},signatureFunctor:{patterns:[{begin:"\\bfunctor\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",end:"(\\(\\))|(\\((?!\\)))",endCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"punctuation.definition.tag"}}},{begin:"(?<=\\()",end:"(:)|(\\))",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:"(?<=\\))",end:"(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"support.type strong"}}},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#signature"}]}]},{match:"(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",name:"support.type strong"}]},signatureLiteral:{begin:"\\bsig\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},signatureParens:{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},end:"(?=\\))",patterns:[{include:"#signature"}]},{include:"#signature"}]},signatureRecovered:{patterns:[{begin:"\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))",end:"\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)",endCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"\\btype\\b",endCaptures:{0:{name:"keyword"}}},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"\\bof\\b",endCaptures:{0:{name:"punctuation.definition.tag"}}},{begin:"(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#signature"}]}]}]},structure:{patterns:[{include:"#comment"},{include:"#structureLiteral"},{include:"#structureFunctor"},{include:"#pathModuleExtended"},{include:"#structureParens"}]},structureFunctor:{patterns:[{begin:"\\bfunctor\\b",beginCaptures:{0:{name:"keyword"}},end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",end:"(\\(\\))|(\\((?!\\)))",endCaptures:{1:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},2:{name:"punctuation.definition.tag"}}},{begin:"(?<=\\()",end:"(:)|(\\))",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:"(?<=\\))",end:"(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",endCaptures:{1:{name:"punctuation.definition.tag"},2:{name:"support.type strong"}}},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#structure"}]}]},{match:"(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",name:"support.type strong"}]},structureLiteral:{begin:"\\bstruct\\b",captures:{0:{name:"punctuation.definition.tag emphasis"}},end:"\\bend\\b",patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},structureParens:{begin:"\\(",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#structureUnpack"},{include:"#structure"}]},structureUnpack:{begin:"\\bval\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"(?=\\))"},term:{patterns:[{include:"#termLet"},{include:"#termAtomic"}]},termAtomic:{patterns:[{include:"#comment"},{include:"#termConditional"},{include:"#termConstructor"},{include:"#termDelim"},{include:"#termFor"},{include:"#termFunction"},{include:"#literal"},{include:"#termMatch"},{include:"#termMatchRule"},{include:"#termPun"},{include:"#termOperator"},{include:"#termTry"},{include:"#termWhile"},{include:"#pathRecord"}]},termConditional:{match:"\\b(?:if|then|else)\\b",name:"keyword.control"},termConstructor:{patterns:[{include:"#pathModulePrefixSimple"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}]},termDelim:{patterns:[{begin:"\\((?!\\))",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{include:"#term"}]},{begin:"\\bbegin\\b",captures:{0:{name:"punctuation.definition.tag"}},end:"\\bend\\b",patterns:[{include:"#attributeIdentifier"},{include:"#term"}]}]},termFor:{patterns:[{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control"}},end:"\\bdone\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{0:{name:"support.type strong"}},patterns:[{include:"#pattern"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(?:downto|to)\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))",end:"\\bdo\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",end:"(?=\\bdone\\b)",patterns:[{include:"#term"}]}]}]},termFunction:{captures:{1:{name:"storage.type"},2:{name:"storage.type"}},match:"\\b(?:(fun)|(function))\\b"},termLet:{patterns:[{begin:"(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+",end:"\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"storage.type markup.underline"}},patterns:[{include:"#comment"}]},{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)",beginCaptures:{1:{name:"storage.type markup.underline"}},end:"\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},2:{name:"storage.type markup.underline"}},patterns:[{include:"#bindTerm"}]}]},termMatch:{begin:"\\bmatch\\b",captures:{0:{name:"keyword.control"}},end:"\\bwith\\b",patterns:[{include:"#term"}]},termMatchRule:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{1:{name:"support.type strong"},2:{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#attributeIdentifier"},{include:"#pattern"}]},{begin:"(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"support.type strong"}},end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{1:{name:"support.type strong"},2:{name:"support.type strong"}},patterns:[{include:"#pattern"},{begin:"\\bwhen\\b",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:"(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",patterns:[{include:"#term"}]}]}]},termOperator:{patterns:[{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"keyword"}},end:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",endCaptures:{0:{name:"entity.name.function"}}},{captures:{0:{name:"keyword.control strong"}},match:"<-"},{captures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},match:"(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)"},{match:"\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},termPun:{applyEndPatternLast:!0,begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},end:":|(?=[^[:space:]:])",endCaptures:{0:{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",endCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}}]},termTry:{begin:"\\btry\\b",captures:{0:{name:"keyword.control"}},end:"\\bwith\\b",patterns:[{include:"#term"}]},termWhile:{patterns:[{begin:"\\bwhile\\b",beginCaptures:{0:{name:"keyword.control"}},end:"\\bdone\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))",end:"\\bdo\\b",endCaptures:{0:{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",end:"(?=\\bdone\\b)",patterns:[{include:"#term"}]}]}]},type:{patterns:[{include:"#comment"},{match:"\\bnonrec\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#pathModulePrefixExtended"},{include:"#typeLabel"},{include:"#typeObject"},{include:"#typeOperator"},{include:"#typeParens"},{include:"#typePolymorphicVariant"},{include:"#typeRecord"},{include:"#typeConstructor"}]},typeConstructor:{patterns:[{begin:"(_)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])",beginCaptures:{1:{name:"comment constant.regexp meta.separator.markdown"},3:{name:"string.other.link variable.language variable.parameter emphasis strong emphasis"},4:{name:"keyword.control emphasis"}},end:"(?=\\((?!\\*)|\\*|:|,|=|\\.|>|-|\\{|\\[|\\+|\\}|\\)|\\]|;|\\|)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{1:{name:"entity.name.function strong"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixExtended"}]}]},typeLabel:{patterns:[{begin:"(\\??)((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))",captures:{1:{name:"keyword strong emphasis"},2:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"},3:{name:"keyword"}},end:"(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",patterns:[{include:"#type"}]}]},typeModule:{begin:"\\bmodule\\b",beginCaptures:{0:{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},end:"(?=\\))",patterns:[{include:"#pathModuleExtended"},{include:"#signatureConstraints"}]},typeObject:{begin:"<",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:">",patterns:[{begin:"(?<=<|;)",end:"(:)|(?=>)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(?=>)",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]}]},typeOperator:{patterns:[{match:",|;|[#\\-:!?.@*/&%^+<=>|~$]+",name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}]},typeParens:{begin:"\\(",captures:{0:{name:"punctuation.definition.tag"}},end:"\\)",patterns:[{match:",",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#typeModule"},{include:"#type"}]},typePolymorphicVariant:{begin:"\\[",end:"\\]",patterns:[]},typeRecord:{begin:"\\{",captures:{0:{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},end:"\\}",patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},4:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},2:{name:"support.type strong"},3:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{1:{name:"variable.other.class.js message.error variable.interpolation string.regexp"},2:{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{0:{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#type"}]}]},variableModule:{captures:{0:{name:"string.other.link variable.language variable.parameter emphasis"}},match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)"},variablePattern:{captures:{1:{name:"comment constant.regexp meta.separator.markdown"},2:{name:"string.other.link variable.language variable.parameter emphasis"}},match:"(\\b_\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))"}},i="source.ocaml",o={displayName:e,fileTypes:n,name:t,patterns:a,repository:r,scopeName:i};export{o as default,e as displayName,n as fileTypes,t as name,a as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/pascal.mjs b/lib/dist/grammar/pascal.mjs new file mode 100644 index 0000000..f275dfc --- /dev/null +++ b/lib/dist/grammar/pascal.mjs @@ -0,0 +1 @@ +var e="Pascal",a=["pas","p","pp","dfm","fmx","dpr","dpk","lfm","lpr"],t="pascal",n=[{match:"\\b(?i:(absolute|abstract|add|all|and_then|array|as|asc|asm|assembler|async|attribute|autoreleasepool|await|begin|bindable|block|by|case|cdecl|class|concat|const|constref|copy|cppdecl|contains|default|delegate|deprecated|desc|distinct|div|each|else|empty|end|ensure|enum|equals|event|except|export|exports|extension|external|far|file|finalization|finalizer|finally|flags|forward|from|future|generic|goto|group|has|helper|if|implements|implies|import|in|index|inherited|initialization|inline|interrupt|into|invariants|is|iterator|label|library|join|lazy|lifetimestrategy|locked|locking|loop|mapped|matching|message|method|mod|module|name|namespace|near|nested|new|nostackframe|not|notify|nullable|object|of|old|oldfpccall|on|only|operator|optional|or_else|order|otherwise|out|override|package|packed|parallel|params|partial|pascal|pinned|platform|pow|private|program|protected|public|published|interface|implementation|qualified|queryable|raises|read|readonly|record|reference|register|remove|resident|require|requires|resourcestring|restricted|result|reverse|safecall|sealed|segment|select|selector|sequence|set|shl|shr|skip|specialize|soft|static|stored|stdcall|step|strict|strong|take|then|threadvar|to|try|tuple|type|unconstrained|unit|unmanaged|unretained|unsafe|uses|using|var|view|virtual|volatile|weak|dynamic|overload|reintroduce|where|with|write|xor|yield))\\b",name:"keyword.pascal"},{captures:{1:{name:"storage.type.prototype.pascal"},2:{name:"entity.name.function.prototype.pascal"}},match:"\\b(?i:(function|procedure|constructor|destructor))\\b\\s+(\\w+(\\.\\w+)?)(\\(.*?\\))?;\\s*(?=(?i:attribute|forward|external))",name:"meta.function.prototype.pascal"},{captures:{1:{name:"storage.type.function.pascal"},2:{name:"entity.name.function.pascal"}},match:"\\b(?i:(function|procedure|constructor|destructor|property|read|write))\\b\\s+(\\w+(\\.\\w+)?)",name:"meta.function.pascal"},{match:"\\b(?i:(self|result))\\b",name:"token.variable"},{match:"\\b(?i:(and|or))\\b",name:"keyword.operator.pascal"},{match:"\\b(?i:(break|continue|exit|abort|while|do|downto|for|raise|repeat|until))\\b",name:"keyword.control.pascal"},{begin:"\\{\\$",captures:{0:{name:"string.regexp"}},end:"\\}",name:"string.regexp"},{match:"\\b(?i:(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int8|int16|int32|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint8|uint16|uint32|uint64|variant|widechar|widestring|word|wordbool|uintptr|intptr))\\b",name:"storage.support.type.pascal"},{match:"\\b(\\d+)|(\\d*\\.\\d+([eE][\\-+]?\\d+)?)\\b",name:"constant.numeric.pascal"},{match:"\\$[0-9a-fA-F]{1,16}\\b",name:"constant.numeric.hex.pascal"},{match:"\\b(?i:(true|false|nil))\\b",name:"constant.language.pascal"},{match:"\\b(?i:(Assert))\\b",name:"keyword.control"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.pascal"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.pascal"}},end:"\\n",name:"comment.line.double-slash.pascal.two"}]},{begin:"\\(\\*",captures:{0:{name:"punctuation.definition.comment.pascal"}},end:"\\*\\)",name:"comment.block.pascal.one"},{begin:"\\{(?!\\$)",captures:{0:{name:"punctuation.definition.comment.pascal"}},end:"\\}",name:"comment.block.pascal.two"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.pascal"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.pascal"}},name:"string.quoted.single.pascal",patterns:[{match:"''",name:"constant.character.escape.apostrophe.pascal"}]},{match:"\\#\\d+",name:"string.other.pascal"}],r="source.pascal",i={displayName:e,fileTypes:a,name:t,patterns:n,scopeName:r};export{i as default,e as displayName,a as fileTypes,t as name,n as patterns,r as scopeName}; diff --git a/lib/dist/grammar/perl.mjs b/lib/dist/grammar/perl.mjs new file mode 100644 index 0000000..236fe62 --- /dev/null +++ b/lib/dist/grammar/perl.mjs @@ -0,0 +1 @@ +var e="Perl",n="perl",t=[{include:"#line_comment"},{begin:"^(?==[a-zA-Z]+)",end:"^(=cut\\b.*$)",endCaptures:{1:{patterns:[{include:"#pod"}]}},name:"comment.block.documentation.perl",patterns:[{include:"#pod"}]},{include:"#variable"},{applyEndPatternLast:1,begin:"\\b(?=qr\\s*[^\\s\\w])",comment:"string.regexp.compile.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{1:{name:"string.regexp.compile.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(qr)\\s*\\{",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\}",name:"string.regexp.compile.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"(qr)\\s*\\[",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\]",name:"string.regexp.compile.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"(qr)\\s*<",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:">",name:"string.regexp.compile.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"(qr)\\s*\\(",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\)",name:"string.regexp.compile.nested_parens.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w\\\\'\\{\\[\\(\\<])"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"(qr)\\s*'",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"'",name:"string.regexp.compile.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"(qr)\\s*([^\\s\\w'\\{\\[\\(\\<])",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\2",name:"string.regexp.compile.simple-delimiter.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]}]},{applyEndPatternLast:1,begin:"(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])",comment:"string.regexp.find-m.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{1:{name:"string.regexp.find-m.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(m)\\s*\\{",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\}",name:"string.regexp.find-m.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"(m)\\s*\\[",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\]",name:"string.regexp.find-m.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"(m)\\s*<",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:">",name:"string.regexp.find-m.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"(m)\\s*\\(",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\)",name:"string.regexp.find-m.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"(m)\\s*'",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"'",name:"string.regexp.find-m.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"\\G(?<!\\{|\\+|\\-)(m)(?!_)\\s*([^\\sa-zA-Z0-9'\\{\\[\\(\\<])",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\2",name:"string.regexp.find-m.simple-delimiter.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\sa-zA-Z0-9'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{begin:"\\[",beginCaptures:{1:{name:"punctuation.definition.character-class.begin.perl"}},end:"\\]",endCaptures:{1:{name:"punctuation.definition.character-class.end.perl"}},name:"constant.other.character-class.set.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"}]},{include:"#nested_parens_interpolated"}]}]},{applyEndPatternLast:1,begin:"\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))",comment:"string.regexp.replace.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))",endCaptures:{1:{name:"string.regexp.replace.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s)\\s*\\{",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\}",name:"string.regexp.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},{begin:"(s)\\s*\\[",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\]",name:"string.regexp.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},{begin:"(s)\\s*<",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:">",name:"string.regexp.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt"}]},{begin:"(s)\\s*\\(",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"\\)",name:"string.regexp.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},{begin:"\\{",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\}",name:"string.regexp.format.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\]",name:"string.regexp.format.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"<",captures:{0:{name:"punctuation.definition.string.perl"}},end:">",name:"string.regexp.format.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\)",name:"string.regexp.format.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"'",captures:{0:{name:"punctuation.definition.string.perl"}},end:"'",name:"string.regexp.format.single_quote.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"([^\\s\\w\\[({<;])",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\1",name:"string.regexp.format.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{match:"\\s+"}]},{begin:"\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))",comment:"string.regexp.replaceXXX",end:"((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))",endCaptures:{1:{name:"string.regexp.replace.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s\\s*)([^\\sa-zA-Z0-9\\[({<])",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"(?=\\2)",name:"string.regexp.replaceXXX.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"'",captures:{0:{name:"punctuation.definition.string.perl"}},end:"'",name:"string.regexp.replaceXXX.format.single_quote.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl.perl"}]},{begin:"([^\\sa-zA-Z0-9\\[({<])",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\1",name:"string.regexp.replaceXXX.format.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},{begin:"\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))",comment:"string.regexp.replace.extended",end:"((([egimosradlupc]*x[egimosradlupc]*)))\\b",endCaptures:{1:{name:"string.regexp.replace.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s)\\s*(.)",captures:{0:{name:"punctuation.definition.string.perl"},1:{name:"support.function.perl"}},end:"(?=\\2)",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"'",captures:{0:{name:"punctuation.definition.string.perl"}},end:"'(?=[egimosradlupc]*x[egimosradlupc]*)\\b",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"(.)",captures:{0:{name:"punctuation.definition.string.perl"}},end:"\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\b",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},{begin:"(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))",beginCaptures:{1:{name:"string.regexp.find.perl"},2:{name:"punctuation.definition.string.perl"}},contentName:"string.regexp.find.perl",end:"((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{1:{name:"string.regexp.find.perl"},2:{name:"punctuation.definition.string.perl"},3:{name:"keyword.control.regexp-option.perl"}},patterns:[{comment:"This is to prevent thinks like /foo$/ to treat $/ as a variable",match:"\\$(?=\\/)",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"}]},{captures:{1:{name:"constant.other.key.perl"}},match:"\\b(\\w+)\\s*(?==>)"},{match:"(?<={)\\s*\\w+\\s*(?=})",name:"constant.other.bareword.perl"},{captures:{1:{name:"keyword.control.perl"},2:{name:"entity.name.type.class.perl"}},match:"^\\s*(package)\\s+([^\\s;]+)",name:"meta.class.perl"},{captures:{1:{name:"storage.type.sub.perl"},2:{name:"entity.name.function.perl"},3:{name:"storage.type.method.perl"}},match:"\\b(sub)(?:\\s+([-a-zA-Z0-9_]+))?\\s*(?:\\([\\$\\@\\*;]*\\))?[^\\w\\{]",name:"meta.function.perl"},{captures:{1:{name:"entity.name.function.perl"},2:{name:"punctuation.definition.parameters.perl"},3:{name:"variable.parameter.function.perl"}},match:"^\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\b",name:"meta.function.perl"},{begin:"^(?=(\\t| {4}))",end:"(?=[^\\t\\s])",name:"meta.leading-tabs",patterns:[{captures:{1:{name:"meta.odd-tab"},2:{name:"meta.even-tab"}},match:"(\\t| {4})(\\t| {4})?"}]},{captures:{1:{name:"support.function.perl"},2:{name:"punctuation.definition.string.perl"},5:{name:"punctuation.definition.string.perl"},8:{name:"punctuation.definition.string.perl"}},match:"\\b(tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)",name:"string.regexp.replace.perl"},{match:"\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\b",name:"constant.language.perl"},{begin:"\\b(__DATA__|__END__)\\n?",beginCaptures:{1:{name:"constant.language.perl"}},contentName:"comment.block.documentation.perl",end:"\\z",patterns:[{include:"#pod"}]},{match:"(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b",name:"keyword.control.perl"},{match:"\\b(my|our|local)\\b",name:"storage.modifier.perl"},{match:"(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b",name:"keyword.operator.filetest.perl"},{match:"\\b(and|or|xor|as|not)\\b",name:"keyword.operator.logical.perl"},{match:"(<=>|=>|->)",name:"keyword.operator.comparison.perl"},{include:"#heredoc"},{begin:"\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"\\bqx\\s*'",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.double.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"(?<!->)\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q.perl"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.single.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"(?<!->)\\bqq\\s*\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-paren.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-brace.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-bracket.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt_interpolated"},{include:"#variable"}]},{begin:"(?<!->)\\bqx\\s*\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-paren.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-brace.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-bracket.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt_interpolated"},{include:"#variable"}]},{begin:"(?<!->)\\bqw?\\s*\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-paren.perl",patterns:[{include:"#nested_parens"}]},{begin:"\\bqw?\\s*\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-brace.perl",patterns:[{include:"#nested_braces"}]},{begin:"\\bqw?\\s*\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-bracket.perl",patterns:[{include:"#nested_brackets"}]},{begin:"\\bqw?\\s*\\<",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-ltgt.perl",patterns:[{include:"#nested_ltgt"}]},{begin:"^__\\w+__",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"$",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.unquoted.program-block.perl"},{begin:"\\b(format)\\s+(\\w+)\\s*=",beginCaptures:{1:{name:"support.function.perl"},2:{name:"entity.name.function.format.perl"}},end:"^\\.\\s*$",name:"meta.format.perl",patterns:[{include:"#line_comment"},{include:"#variable"}]},{captures:{1:{name:"support.function.perl"},2:{name:"entity.name.function.perl"}},match:"\\b(x)\\s*(\\d+)\\b"},{match:"\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b",name:"support.function.perl"},{captures:{1:{name:"punctuation.section.scope.begin.perl"},2:{name:"punctuation.section.scope.end.perl"}},comment:"Match empty brackets for ↩ snippet",match:"(\\{)(\\})"},{captures:{1:{name:"punctuation.section.scope.begin.perl"},2:{name:"punctuation.section.scope.end.perl"}},comment:"Match empty parenthesis for ↩ snippet",match:"(\\()(\\))"}],i={escaped_char:{patterns:[{match:"\\\\\\d+",name:"constant.character.escape.perl"},{match:"\\\\c[^\\s\\\\]",name:"constant.character.escape.perl"},{match:"\\\\g(?:\\{(?:\\w*|-\\d+)\\}|\\d+)",name:"constant.character.escape.perl"},{match:"\\\\k(?:\\{\\w*\\}|<\\w*>|'\\w*')",name:"constant.character.escape.perl"},{match:"\\\\N\\{[^\\}]*\\}",name:"constant.character.escape.perl"},{match:"\\\\o\\{\\d*\\}",name:"constant.character.escape.perl"},{match:"\\\\(?:p|P)(?:\\{\\w*\\}|P)",name:"constant.character.escape.perl"},{match:"\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?",name:"constant.character.escape.perl"},{match:"\\\\.",name:"constant.character.escape.perl"}]},heredoc:{patterns:[{begin:"((((<<(~)?) *')(HTML)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *')(XML)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"text.xml"}]}]},{begin:"((((<<(~)?) *')(CSS)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"((((<<(~)?) *')(JAVASCRIPT)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"((((<<(~)?) *')(SQL)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"source.sql"}]}]},{begin:"((((<<(~)?) *')(POSTSCRIPT)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *')([^']*)(')))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}}},{begin:"((((<<(~)?) *\\\\)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.raw.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.raw.perl"},3:{name:"punctuation.definition.string.end.perl"}}},{begin:'((((<<(~)?) *")(HTML)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.html.basic"}]}]},{begin:'((((<<(~)?) *")(XML)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.xml"}]}]},{begin:'((((<<(~)?) *")(CSS)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.css"}]}]},{begin:'((((<<(~)?) *")(JAVASCRIPT)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.js"}]}]},{begin:'((((<<(~)?) *")(SQL)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.sql"}]}]},{begin:'((((<<(~)?) *")(POSTSCRIPT)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.postscript"}]}]},{begin:'((((<<(~)?) *")([^"]*)(")))(.*)\\n?',beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"((((<<(~)?) *)(HTML)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *)(XML)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.xml"}]}]},{begin:"((((<<(~)?) *)(CSS)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.css"}]}]},{begin:"((((<<(~)?) *)(JAVASCRIPT)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.js"}]}]},{begin:"((((<<(~)?) *)(SQL)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.sql"}]}]},{begin:"((((<<(~)?) *)(POSTSCRIPT)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"((((<<(~)?) *`)([^`]*)(`)))(.*)\\n?",beginCaptures:{1:{name:"string.unquoted.heredoc.interpolated.perl"},2:{name:"punctuation.definition.string.begin.perl"},3:{name:"punctuation.definition.delimiter.begin.perl"},7:{name:"punctuation.definition.delimiter.end.perl"},8:{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.shell.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{2:{name:"string.unquoted.heredoc.interpolated.perl"},3:{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},line_comment:{patterns:[{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.perl"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.perl"}},end:"\\n",name:"comment.line.number-sign.perl"}]}]},nested_braces:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_ltgt:{begin:"<",captures:{1:{name:"punctuation.section.scope.perl"}},end:">",patterns:[{include:"#nested_ltgt"}]},nested_ltgt_interpolated:{begin:"<",captures:{1:{name:"punctuation.section.scope.perl"}},end:">",patterns:[{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},nested_parens:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.perl"}},end:"\\)",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},pod:{patterns:[{match:"^=(pod|back|cut)\\b",name:"storage.type.class.pod.perl"},{begin:"^(=begin)\\s+(html)\\s*$",beginCaptures:{1:{name:"storage.type.class.pod.perl"},2:{name:"variable.other.pod.perl"}},contentName:"text.embedded.html.basic",end:"^(=end)\\s+(html)|^(?==cut)",endCaptures:{1:{name:"storage.type.class.pod.perl"},2:{name:"variable.other.pod.perl"}},name:"meta.embedded.pod.perl",patterns:[{include:"text.html.basic"}]},{captures:{1:{name:"storage.type.class.pod.perl"},2:{name:"variable.other.pod.perl",patterns:[{include:"#pod-formatting"}]}},match:"^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)"},{include:"#pod-formatting"}]},"pod-formatting":{patterns:[{captures:{1:{name:"markup.italic.pod.perl"},2:{name:"markup.italic.pod.perl"}},match:"I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{1:{name:"markup.bold.pod.perl"},2:{name:"markup.bold.pod.perl"}},match:"B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{1:{name:"markup.raw.pod.perl"},2:{name:"markup.raw.pod.perl"}},match:"C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{1:{name:"markup.underline.link.hyperlink.pod.perl"}},match:"L<([^>]+)>",name:"entity.name.type.instance.pod.perl"},{match:"[EFSXZ]<[^>]*>",name:"entity.name.type.instance.pod.perl"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)&(?![A-Za-z0-9_])",name:"variable.other.regexp.match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)`(?![A-Za-z0-9_])",name:"variable.other.regexp.pre-match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)'(?![A-Za-z0-9_])",name:"variable.other.regexp.post-match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)\\+(?![A-Za-z0-9_])",name:"variable.other.regexp.last-paren-match.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:'(\\$)"(?![A-Za-z0-9_])',name:"variable.other.readwrite.list-separator.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)0(?![A-Za-z0-9_])",name:"variable.other.predefined.program-name.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])",name:"variable.other.predefined.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"(\\$)[0-9]+(?![A-Za-z0-9_])",name:"variable.other.subpattern.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b",name:"variable.other.readwrite.global.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"},2:{name:"punctuation.definition.variable.perl"}},match:"(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})",name:"variable.other.readwrite.global.perl"},{captures:{1:{name:"punctuation.definition.variable.perl"}},match:"([\\$\\@\\%](#)?)[0-9_]\\b",name:"variable.other.readwrite.global.special.perl"}]}},r="source.perl",a={displayName:e,name:n,patterns:t,repository:i,scopeName:r};export{a as default,e as displayName,n as name,t as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/php.mjs b/lib/dist/grammar/php.mjs new file mode 100644 index 0000000..61d0a4b --- /dev/null +++ b/lib/dist/grammar/php.mjs @@ -0,0 +1 @@ +var e="PHP",n="php",t=[{include:"#attribute"},{include:"#comments"},{captures:{1:{name:"keyword.other.namespace.php"},2:{name:"entity.name.type.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)(?=\\s*;)",name:"meta.namespace.php"},{begin:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",beginCaptures:{1:{name:"keyword.other.namespace.php"}},end:"(?<=})|(?=\\?>)",name:"meta.namespace.php",patterns:[{include:"#comments"},{captures:{0:{patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}},match:"(?i)[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+",name:"entity.name.type.namespace.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.namespace.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.namespace.end.bracket.curly.php"}},patterns:[{include:"$self"}]},{match:"[^\\s]+",name:"invalid.illegal.identifier.php"}]},{match:"\\s+(?=use\\b)"},{begin:"(?i)\\buse\\b",beginCaptures:{0:{name:"keyword.other.use.php"}},end:"(?<=})|(?=;)|(?=\\?>)",name:"meta.use.php",patterns:[{match:"\\b(const|function)\\b",name:"storage.type.${1:/downcase}.php"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.use.begin.bracket.curly.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.use.end.bracket.curly.php"}},patterns:[{include:"#scope-resolution"},{captures:{1:{name:"keyword.other.use-as.php"},2:{name:"storage.modifier.php"},3:{name:"entity.other.alias.php"}},match:"(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{captures:{1:{name:"keyword.other.use-as.php"},2:{patterns:[{match:"^(?:final|abstract|public|private|protected|static)$",name:"storage.modifier.php"},{match:".+",name:"entity.other.alias.php"}]}},match:"(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{captures:{1:{name:"keyword.other.use-insteadof.php"},2:{name:"support.class.php"}},match:"(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{match:";",name:"punctuation.terminator.expression.php"},{include:"#use-inner"}]},{include:"#use-inner"}]},{begin:"(?ix)\n\\b(trait)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",beginCaptures:{1:{name:"storage.type.trait.php"},2:{name:"entity.name.type.trait.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.trait.end.bracket.curly.php"}},name:"meta.trait.php",patterns:[{include:"#comments"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.trait.begin.bracket.curly.php"}},contentName:"meta.trait.body.php",end:"(?=}|\\?>)",patterns:[{include:"$self"}]}]},{begin:"(?ix)\n\\b(interface)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",beginCaptures:{1:{name:"storage.type.interface.php"},2:{name:"entity.name.type.interface.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.interface.end.bracket.curly.php"}},name:"meta.interface.php",patterns:[{include:"#comments"},{include:"#interface-extends"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.interface.begin.bracket.curly.php"}},contentName:"meta.interface.body.php",end:"(?=}|\\?>)",patterns:[{include:"#class-constant"},{include:"$self"}]}]},{begin:"(?ix)\n\\b(enum)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?: \\s* (:) \\s* (int | string) \\b )?",beginCaptures:{1:{name:"storage.type.enum.php"},2:{name:"entity.name.type.enum.php"},3:{name:"keyword.operator.return-value.php"},4:{name:"keyword.other.type.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.enum.end.bracket.curly.php"}},name:"meta.enum.php",patterns:[{include:"#comments"},{include:"#class-implements"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.enum.begin.bracket.curly.php"}},contentName:"meta.enum.body.php",end:"(?=}|\\?>)",patterns:[{captures:{1:{name:"storage.modifier.php"},2:{name:"constant.enum.php"}},match:"(?i)\\b(case)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{include:"#class-constant"},{include:"$self"}]}]},{begin:"(?ix)\n(?:\n\\b((?:(?:final|abstract|readonly)\\s+)*)(class)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n|\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*(?:(readonly)\\s+)?\\b(class)\\b\n)",beginCaptures:{1:{patterns:[{match:"final|abstract",name:"storage.modifier.${0:/downcase}.php"},{match:"readonly",name:"storage.modifier.php"}]},2:{name:"storage.type.class.php"},3:{name:"entity.name.type.class.php"},4:{name:"keyword.other.new.php"},5:{patterns:[{include:"#attribute"}]},6:{name:"storage.modifier.php"},7:{name:"storage.type.class.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.class.end.bracket.curly.php"}},name:"meta.class.php",patterns:[{begin:"(?<=class)\\s*(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{include:"#comments"},{include:"#class-extends"},{include:"#class-implements"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.class.begin.bracket.curly.php"}},contentName:"meta.class.body.php",end:"(?=}|\\?>)",patterns:[{include:"#class-constant"},{include:"$self"}]}]},{include:"#match_statement"},{include:"#switch_statement"},{captures:{1:{name:"keyword.control.yield-from.php"}},match:"\\s*\\b(yield\\s+from)\\b"},{captures:{1:{name:"keyword.control.${1:/downcase}.php"}},match:"(?x)\n\\b(\nbreak|case|continue|declare|default|die|do|\nelse(if)?|end(declare|for(each)?|if|switch|while)|exit|\nfor(each)?|if|return|switch|use|while|yield\n)\\b"},{begin:"(?i)\\b((?:require|include)(?:_once)?)(\\s+|(?=\\())",beginCaptures:{1:{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$|\\?>)",name:"meta.include.php",patterns:[{include:"$self"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.exception.catch.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{captures:{1:{patterns:[{match:"\\|",name:"punctuation.separator.delimiter.php"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"support.class.exception.php"}},patterns:[{include:"#namespace"}]}]},2:{name:"variable.other.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)*)\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?"}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\b(function)\\s*(?=&?\\s*\\()",beginCaptures:{1:{name:"storage.type.function.php"}},end:"(?=\\s*{)",name:"meta.function.closure.php",patterns:[{include:"#comments"},{begin:"(&)?\\s*(\\()",beginCaptures:{1:{name:"storage.modifier.reference.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.function.use.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.function.closure.use.php",patterns:[{match:",",name:"punctuation.separator.delimiter.php"},{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=,|\\))"}]},{captures:{1:{name:"keyword.operator.return-value.php"},2:{patterns:[{include:"#php-types"}]}},match:"(?xi)\n(:)\\s*\n(\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n)\n(?=\\s*(?:{|/[/*]|\\#|$))"}]},{begin:"(?i)\\b(fn)\\s*(?=&?\\s*\\()",beginCaptures:{1:{name:"storage.type.function.php"}},end:"=>",endCaptures:{0:{name:"punctuation.definition.arrow.php"}},name:"meta.function.closure.php",patterns:[{begin:"(?:(&)\\s*)?(\\()",beginCaptures:{1:{name:"storage.modifier.reference.php"},2:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{captures:{1:{name:"keyword.operator.return-value.php"},2:{patterns:[{include:"#php-types"}]}},match:"(?xi)\n(:)\\s*\n(\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n)\n(?=\\s*(?:=>|/[/*]|\\#|$))"}]},{begin:"(?x)\n((?:(?:final|abstract|public|private|protected)\\s+)*)\n(function)\\s+(__construct)\n\\s*(\\()",beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.constructor.php"},4:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(?xi)\n(\\)) \\s* ( : \\s*\n(?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{10ffff}\\\\\\s\\|&()]+ (?<!\\s)\n)?\n(?=\\s*(?:{|/[/*]|\\#|$|;))",endCaptures:{1:{name:"punctuation.definition.parameters.end.bracket.round.php"},2:{name:"invalid.illegal.return-type.php"}},name:"meta.function.php",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{begin:"(?xi)\n((?:(?:public|private|protected|readonly)(?:\\s+|(?=\\?)))++)\n(?: (\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n) \\s+ )?\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",beginCaptures:{1:{patterns:[{match:"public|private|protected|readonly",name:"storage.modifier.php"}]},2:{patterns:[{include:"#php-types"}]},3:{name:"variable.other.php"},4:{name:"storage.modifier.reference.php"},5:{name:"punctuation.definition.variable.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.promoted-property.php",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",patterns:[{include:"#parameter-default-types"}]}]},{include:"#function-parameters"}]},{begin:"(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n(__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|\nclone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))\n|(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*))\n)\n\\s*(\\()",beginCaptures:{1:{patterns:[{match:"final|abstract|public|private|protected|static",name:"storage.modifier.php"}]},2:{name:"storage.type.function.php"},3:{name:"support.function.magic.php"},4:{name:"storage.modifier.reference.php"},5:{name:"entity.name.function.php"},6:{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(?xi)\n(\\)) (?: \\s* (:) \\s* (\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n) )?\n(?=\\s*(?:{|/[/*]|\\#|$|;))",endCaptures:{1:{name:"punctuation.definition.parameters.end.bracket.round.php"},2:{name:"keyword.operator.return-value.php"},3:{patterns:[{match:"\\b(static)\\b",name:"storage.type.php"},{match:"\\b(never)\\b",name:"keyword.other.type.never.php"},{include:"#php-types"}]}},name:"meta.function.php",patterns:[{include:"#function-parameters"}]},{captures:{1:{patterns:[{match:"public|private|protected|static|readonly",name:"storage.modifier.php"}]},2:{patterns:[{include:"#php-types"}]},3:{name:"variable.other.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n((?:(?:public|private|protected|static|readonly)(?:\\s+|(?=\\?)))++)\n(\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n)?\n\\s+ ((\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{include:"#invoke-call"},{include:"#scope-resolution"},{include:"#variables"},{include:"#strings"},{captures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"},3:{name:"punctuation.definition.array.end.bracket.round.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)\\s*(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.storage-type.begin.bracket.round.php"},2:{name:"storage.type.php"},3:{name:"punctuation.definition.storage-type.end.bracket.round.php"}},match:"(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))"},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b",name:"storage.type.php"},{match:"(?i)\\b(global|abstract|const|final|private|protected|public|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{match:":",name:"punctuation.terminator.statement.php"},{include:"#heredoc"},{include:"#numbers"},{match:"(?i)\\bclone\\b",name:"keyword.other.clone.php"},{match:"\\.\\.\\.",name:"keyword.operator.spread.php"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{captures:{1:{name:"keyword.operator.assignment.php"},2:{name:"storage.modifier.reference.php"},3:{name:"storage.modifier.reference.php"}},match:"(?i)(\\=)(&)|(&)(?=[$a-z_])"},{match:"@",name:"keyword.operator.error-control.php"},{match:"===|==|!==|!=|<>",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=",name:"keyword.operator.assignment.php"},{match:"<=>|<=|>=|<|>",name:"keyword.operator.comparison.php"},{match:"\\-\\-|\\+\\+",name:"keyword.operator.increment-decrement.php"},{match:"\\-|\\+|\\*\\*?|/|%",name:"keyword.operator.arithmetic.php"},{match:"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",name:"keyword.operator.logical.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{begin:"(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",beginCaptures:{1:{name:"keyword.operator.type.php"}},end:"(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{10ffff}])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{include:"#instantiation"},{captures:{1:{name:"keyword.control.goto.php"},2:{name:"support.other.php"}},match:"(?i)(goto)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{captures:{1:{name:"entity.name.goto-label.php"}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*(?<!default))\\s*:(?!:)"},{include:"#string-backtick"},{include:"#ternary_shorthand"},{include:"#null_coalescing"},{include:"#ternary_expression"},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.curly.php"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.php"}},patterns:[{include:"$self"}]},{include:"#constants"},{match:",",name:"punctuation.separator.delimiter.php"}],a={attribute:{begin:"\\#\\[",end:"\\]",name:"meta.attribute.php",patterns:[{match:",",name:"punctuation.separator.delimiter.php"},{begin:"([a-zA-Z0-9_\\x{7f}-\\x{10ffff}\\\\]+)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#attribute-name"}]},2:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},patterns:[{include:"#named-arguments"},{include:"$self"}]},{include:"#attribute-name"}]},"attribute-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"support.attribute.php"}},patterns:[{include:"#namespace"}]},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?xi)\n(\\\\)?\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\b",name:"support.attribute.builtin.php"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"support.attribute.php"}},patterns:[{include:"#namespace"}]}]},"class-builtin":{patterns:[{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?xi)\n(\\\\)?\\b\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n|Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n|Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n|UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n|Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n|(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n|Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n|Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n|Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b",name:"support.class.builtin.php"}]},"class-constant":{patterns:[{captures:{1:{name:"storage.modifier.php"},2:{name:"constant.other.php"}},match:"(?i)\\b(const)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"}]},"class-extends":{patterns:[{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},end:"(?i)(?=[^A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\])",patterns:[{include:"#comments"},{include:"#inheritance-single"}]}]},"class-implements":{patterns:[{begin:"(?i)(implements)\\s+",beginCaptures:{1:{name:"storage.modifier.implements.php"}},end:"(?i)(?={)",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.classes.php"},{include:"#inheritance-single"}]}]},"class-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"support.class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"support.class.php"}},patterns:[{include:"#namespace"}]}]},comments:{patterns:[{begin:"/\\*\\*(?=\\s)",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.block.documentation.phpdoc.php",patterns:[{include:"#php_doc"}]},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.php"}},end:"\\*/",name:"comment.block.php"},{begin:"(^\\s+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.double-slash.php"}]},{begin:"(^\\s+)?(?=#)(?!#\\[)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.number-sign.php"}]}]},constants:{patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",name:"constant.language.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n|PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n|BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n|INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n|URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n|EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n|VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n|PRODUCTTYPE|PLATFORM)\n|LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b",name:"support.constant.core.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n|NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b",name:"support.constant.std.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n|ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n|NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n|UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n|PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n|ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n|CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n|READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n|STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n|SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n|NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n|CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n|CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n|TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n|TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n|TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n|OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n|DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n|ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n|BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n|TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n|SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n|NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n|FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n|CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n|OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n|PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n|CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n|FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n|MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n|INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n|(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n|CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n|PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n|OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n|MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n|SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n|SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n|SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n|STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n|HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n|COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n|TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n|PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n|POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n|FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n|FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n|FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n|AUTOREFERER)\n|PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n|E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n|BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n|SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n|SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n|OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n|UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n|FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n|CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n|WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n|FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n|LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n|VERSION_NOW\n|FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n|AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n|INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n|SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n|SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n|EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n|VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n|FORCE_ARRAY\n|FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n|IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n|COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b",name:"support.constant.ext.php"},{captures:{1:{name:"punctuation.separator.inheritance.php"}},match:"(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n|BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n|SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n|CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n|CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n|INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n|OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n|DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n|PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n|END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n|FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n|ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b",name:"support.constant.parser-token.php"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"constant.other.php"}]},"function-call":{patterns:[{begin:"(?x)\n(\n\\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])\n[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*\n(?:\\\\[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)+\n)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.name.function.php"}]},2:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{begin:"(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{1:{patterns:[{include:"#namespace"}]},2:{patterns:[{include:"#support"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.name.function.php"}]},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"}]},"function-parameters":{patterns:[{include:"#attribute"},{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{captures:{1:{patterns:[{include:"#php-types"}]},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"keyword.operator.variadic.php"},5:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n(?: (\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n) \\s+ )?\n((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?=\\s*(?:,|\\)|/[/*]|\\#|$))",name:"meta.function.parameter.variadic.php"},{begin:"(?xi)\n(\n\n(?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n(?: \\s*[|&]\\s*\n(?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n)+\n)\n\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",beginCaptures:{1:{patterns:[{include:"#php-types"}]},2:{name:"variable.other.php"},3:{name:"storage.modifier.reference.php"},4:{name:"punctuation.definition.variable.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.typehinted.php",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",patterns:[{include:"#parameter-default-types"}]}]},{captures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?=\\s*(?:,|\\)|/[/*]|\\#|$))",name:"meta.function.parameter.no-default.php"},{begin:"(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n\\s*(=)\\s*",beginCaptures:{1:{name:"variable.other.php"},2:{name:"storage.modifier.reference.php"},3:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.default.php",patterns:[{include:"#parameter-default-types"}]}]},heredoc:{patterns:[{begin:'(?i)(?=<<<\\s*("?)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\1)\\s*$)',end:"(?!\\G)",name:"string.unquoted.heredoc.php",patterns:[{include:"#heredoc_interior"}]},{begin:"(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",end:"(?!\\G)",name:"string.unquoted.nowdoc.php",patterns:[{include:"#nowdoc_interior"}]}]},heredoc_interior:{patterns:[{begin:'(<<<)\\s*("?)(HTML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.html",patterns:[{include:"#interpolation"},{include:"text.html.basic"}]},{begin:'(<<<)\\s*("?)(XML)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.xml",patterns:[{include:"#interpolation"},{include:"text.xml"}]},{begin:'(<<<)\\s*("?)([DS]QL)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.sql",patterns:[{include:"#interpolation"},{include:"source.sql"}]},{begin:'(<<<)\\s*("?)(JAVASCRIPT|JS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.js",patterns:[{include:"#interpolation"},{include:"source.js"}]},{begin:'(<<<)\\s*("?)(JSON)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.json",patterns:[{include:"#interpolation"},{include:"source.json"}]},{begin:'(<<<)\\s*("?)(CSS)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.css",patterns:[{include:"#interpolation"},{include:"source.css"}]},{begin:'(<<<)\\s*("?)(REGEXP?)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.heredoc.php",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"},{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:'(<<<)\\s*("?)(BLADE)(\\2)(\\s*)$',beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html.php.blade",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.php.blade",patterns:[{include:"#interpolation"}]},{begin:'(?i)(<<<)\\s*("?)([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\2)(\\s*)',beginCaptures:{1:{name:"punctuation.definition.string.php"},3:{name:"keyword.operator.heredoc.php"},5:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{1:{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"}]}]},"inheritance-single":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{1:{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.other.inherited-class.php"}]},instantiation:{begin:"(?i)(new)\\s+(?!class\\b)",beginCaptures:{1:{name:"keyword.other.new.php"}},end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",patterns:[{match:"(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{10ffff}])",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]},"interface-extends":{patterns:[{begin:"(?i)(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.extends.php"}},end:"(?i)(?={)",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.classes.php"},{include:"#inheritance-single"}]}]},interpolation:{patterns:[{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.php"},{match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.character.escape.hex.php"},{match:"\\\\u{[0-9A-Fa-f]+}",name:"constant.character.escape.unicode.php"},{match:"\\\\[nrtvef$\\\\]",name:"constant.character.escape.php"},{begin:"{(?=\\$.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]},{include:"#variable-name"}]},interpolation_double_quoted:{patterns:[{match:'\\\\"',name:"constant.character.escape.php"},{include:"#interpolation"}]},"invoke-call":{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"}},match:"(?i)((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},match_statement:{patterns:[{match:"\\s+(?=match\\b)"},{begin:"\\bmatch\\b",beginCaptures:{0:{name:"keyword.control.match.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.section.match-block.end.bracket.curly.php"}},name:"meta.match-statement.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.match-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.match-expression.end.bracket.round.php"}},patterns:[{include:"$self"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.section.match-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{match:"=>",name:"keyword.definition.arrow.php"},{include:"$self"}]}]}]},"named-arguments":{captures:{1:{name:"entity.name.variable.parameter.php"},2:{name:"punctuation.separator.colon.php"}},match:"(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)"},namespace:{begin:"(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(\\\\)",beginCaptures:{1:{name:"variable.language.namespace.php"},2:{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?![a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",name:"support.other.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},nowdoc_interior:{patterns:[{begin:"(<<<)\\s*'(HTML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.html",patterns:[{include:"text.html.basic"}]},{begin:"(<<<)\\s*'(XML)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.xml",patterns:[{include:"text.xml"}]},{begin:"(<<<)\\s*'([DS]QL)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.sql",patterns:[{include:"source.sql"}]},{begin:"(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.js",patterns:[{include:"source.js"}]},{begin:"(<<<)\\s*'(JSON)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.json",patterns:[{include:"source.json"}]},{begin:"(<<<)\\s*'(CSS)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"(<<<)\\s*'(REGEXP?)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.nowdoc.php",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{1:{name:"punctuation.definition.arbitrary-repitition.php"},3:{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{0:{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(<<<)\\s*'(BLADE)'(\\s*)$",beginCaptures:{0:{name:"punctuation.section.embedded.begin.php"},1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html.php.blade",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{0:{name:"punctuation.section.embedded.end.php"},1:{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.php.blade"},{begin:"(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)'(\\s*)",beginCaptures:{1:{name:"punctuation.definition.string.php"},2:{name:"keyword.operator.nowdoc.php"},3:{name:"invalid.illegal.trailing-whitespace.php"}},end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{1:{name:"keyword.operator.nowdoc.php"}}}]},null_coalescing:{match:"\\?\\?",name:"keyword.operator.null-coalescing.php"},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*",name:"constant.numeric.hex.php"},{match:"0[bB][01]+(?:_[01]+)*",name:"constant.numeric.binary.php"},{match:"0[oO][0-7]+(?:_[0-7]+)*",name:"constant.numeric.octal.php"},{match:"0(?:_?[0-7]+)+",name:"constant.numeric.octal.php"},{captures:{1:{name:"punctuation.separator.decimal.period.php"},2:{name:"punctuation.separator.decimal.period.php"}},match:"(?x)\n(?:\n(?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?|\n[0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?|\n[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)*\n)",name:"constant.numeric.decimal.php"},{match:"0|[1-9](?:_?[0-9]+)*",name:"constant.numeric.decimal.php"}]},object:{patterns:[{begin:"(\\??->)\\s*(\\$?{)",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]},{begin:"(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.property.php"},3:{name:"punctuation.definition.variable.php"}},match:"(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#string-backtick"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{match:"&(?=\\s*\\$)",name:"storage.modifier.reference.php"},{begin:"(array)\\s*(\\()",beginCaptures:{1:{name:"support.function.construct.php"},2:{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#parameter-default-types"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{0:{name:"punctuation.section.array.end.php"}},patterns:[{include:"$self"}]},{include:"#instantiation"},{begin:"(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+\n(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?\n)",end:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?",endCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},"php-types":{patterns:[{match:"\\?",name:"keyword.operator.nullable-type.php"},{match:"[|&]",name:"punctuation.separator.delimiter.php"},{match:"(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\b",name:"keyword.other.type.php"},{match:"(?i)\\b(parent|self)\\b",name:"storage.type.php"},{match:"\\(",name:"punctuation.definition.type.begin.bracket.round.php"},{match:"\\)",name:"punctuation.definition.type.end.bracket.round.php"},{include:"#class-name"}]},php_doc:{patterns:[{match:"^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"},3:{name:"storage.modifier.php"},4:{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{captures:{1:{name:"keyword.other.phpdoc.php"},2:{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{begin:"(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[?A-Za-z_\\x{7f}-\\x{10ffff}\\\\]|\\()",beginCaptures:{1:{name:"keyword.other.phpdoc.php"}},contentName:"meta.other.type.phpdoc.php",end:"(?=\\s|\\*/)",patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"}]},{match:"(?x)\n@\n(\napi|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\nlicense|link|method|property(-(read|write))?|package|param|return|see|since|source|\nstatic|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b",name:"keyword.other.phpdoc.php"},{captures:{1:{name:"keyword.other.phpdoc.php"}},match:"{(@(link|inherit[Dd]oc)).+?}",name:"meta.tag.inline.phpdoc.php"}]},php_doc_types:{captures:{0:{patterns:[{match:"\\?",name:"keyword.operator.nullable-type.php"},{match:"(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self|static)\\b",name:"keyword.other.type.php"},{include:"#class-name"},{match:"[|&]",name:"punctuation.separator.delimiter.php"},{match:"\\(",name:"punctuation.definition.type.begin.bracket.round.php"},{match:"\\)",name:"punctuation.definition.type.end.bracket.round.php"}]}},match:"(?i)\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*([|&]\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)*"},php_doc_types_array_multiple:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.type.begin.bracket.round.phpdoc.php"}},end:"(\\))(\\[\\])|(?=\\*/)",endCaptures:{1:{name:"punctuation.definition.type.end.bracket.round.phpdoc.php"},2:{name:"keyword.other.array.phpdoc.php"}},patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"},{match:"[|&]",name:"punctuation.separator.delimiter.php"}]},php_doc_types_array_single:{captures:{1:{patterns:[{include:"#php_doc_types"}]},2:{name:"keyword.other.array.phpdoc.php"}},match:"(?i)([a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(\\[\\])"},"regex-double-quoted":{begin:'"/(?=(\\\\.|[^"/])++/[imsxeADSUXu]*")',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'(/)([imsxeADSUXu]*)(")',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation_double_quoted"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation_double_quoted"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{include:"#single_quote_regex_escape"},{captures:{1:{name:"punctuation.definition.arbitrary-repetition.php"},3:{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{0:{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php"},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"scope-resolution":{patterns:[{captures:{1:{patterns:[{match:"\\b(self|static|parent)\\b",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]}},match:"([A-Za-z_\\x{7f}-\\x{10ffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(?=\\s*::)"},{begin:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{1:{name:"keyword.operator.class.php"},2:{name:"entity.name.function.php"},3:{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.static.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"keyword.other.class.php"}},match:"(?i)(::)\\s*(class)\\b"},{captures:{1:{name:"keyword.operator.class.php"},2:{name:"variable.other.class.php"},3:{name:"punctuation.definition.variable.php"},4:{name:"constant.other.class.php"}},match:"(?xi)\n(::)\\s*\n(?:\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n|\n([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n)?"}]},single_quote_regex_escape:{match:"\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",name:"constant.character.escape.php"},"sql-string-double-quoted":{begin:'"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(#)(\\\\"|[^"])*(?="|$)',name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:'(--)(\\\\"|[^"])*(?="|$)',name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{match:"'(?=((\\\\')|[^'\"])*(\"|$))",name:"string.quoted.single.unclosed.sql"},{match:'`(?=((\\\\`)|[^`"])*("|$))',name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation_double_quoted"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation_double_quoted"}]},{include:"#interpolation_double_quoted"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(#)(\\\\'|[^'])*(?='|$)",name:"comment.line.number-sign.sql"},{captures:{1:{name:"punctuation.definition.comment.sql"}},match:"(--)(\\\\'|[^'])*(?='|$)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{match:'"(?=((\\\\")|[^"\'])*(\'|$))',name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-backtick":{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.interpolated.php",patterns:[{match:"\\\\`",name:"constant.character.escape.php"},{include:"#interpolation"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation_double_quoted"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.php"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:"(?xi)\n\\b\napc_(\nstore|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\nexists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b",name:"support.function.apc.php"},{match:"(?xi)\\b\n(\nshuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\npos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\narray(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n(diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\npop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\nreduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b",name:"support.function.array.php"},{match:"(?xi)\\b\n(\nshow_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\ntime_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\nphp_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b",name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bblenc_encrypt\\b",name:"support.function.blenc.php"},{match:"(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",name:"support.function.bz2.php"},{match:"(?xi)\\b\n(\n(French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\njdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b",name:"support.function.calendar.php"},{match:"(?xi)\\b\n(\nclass_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\nget_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b",name:"support.function.classobj.php"},{match:"(?xi)\\b\n(\ncom_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\nvariant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\npow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b",name:"support.function.com.php"},{match:"(?i)\\b(isset|unset|eval|empty|list)\\b",name:"support.function.construct.php"},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:"(?xi)\\b\ncurl_(\nshare_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\nerrno|error|exec|version|file_create|reset|getinfo|\nmulti_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b",name:"support.function.curl.php"},{match:"(?xi)\\b\n(\nstrtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\ntimezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\ndate(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\nisodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\nparse(_from_format)?|format|add|get_last_errors|modify))?|\nlocaltime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b",name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",name:"support.function.dir.php"},{match:"(?xi)\\b\neio_(\nsync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\nseek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\nevent_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\nread(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b",name:"support.function.eio.php"},{match:"(?xi)\\b\nenchant_(\ndict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\nbroker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b",name:"support.function.enchant.php"},{match:"(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b",name:"support.function.ereg.php"},{match:"(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:"(?xi)\\b\nfann_(\n(duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\nset_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\ncascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\noutput_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n(max|min)_(cand|out)_epochs)|\ncallback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\nquickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\nactivation_(function|steepness)(_(hidden|layer|output))?|\nrprop_((decrease|increase)_factor|delta_(max|min|zero)))|\nsave(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\ncreate_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\ntest(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\nprint_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\nget_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\nnetwork_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\ncascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\nweight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\ntotal_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\nquickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\nrprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b",name:"support.function.fann.php"},{match:"(?xi)\\b\n(\nsymlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\nis_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\ndirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\nfclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\nf(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\nrename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b",name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\bfastcgi_finish_request\\b",name:"support.function.fpm.php"},{match:"(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:"(?xi)\\b\ngmp_(\nscan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\nintval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\nprob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b",name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",name:"support.function.hash.php"},{match:"(?xi)\\b\n(\nhttp_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\nnegotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\ninflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\nparse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\nget(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\nob_(etag|deflate|inflate)handler\n)\\b",name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:"(?xi)\\b\n(\niptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\nimage(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\nconvolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\ncolor(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\ncrop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\ntypes|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n_type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\npalette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\nfilled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\nantialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\ngrab(screen|window)|xbm)\n)\\b",name:"support.function.image.php"},{match:"(?xi)\\b\n(\nsys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\nini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\nphp_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\nassert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\nget_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\nmagic_quotes_(gpc|runtime)|required_files|resources)|\nget(env|lastmod|rusage|my(inode|[gup]id))|\nmemory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b",name:"support.function.info.php"},{match:"(?xi)\\b\nibase_(\nset_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\ncommit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\nexecute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\nadd_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\nblob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b",name:"support.function.interbase.php"},{match:"(?xi)\\b\n(\nnormalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\nnumfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\nget_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\ncollator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\nget_(strength|sort_key|error_(code|message)|locale|attribute))|\ntransliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\nintl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\ndatefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\nget_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\nlocale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\nget_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\nresourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\ngrapheme_(str(i?str|r?i?pos|len)|substr|extract)|\nmsgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b",name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",name:"support.function.json.php"},{match:"(?xi)\\b\nldap_(\nstart|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\nconnect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\ndn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\nfree_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\nmod_(add|del|replace)\n)\\b",name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:"(?xi)\\b\n(\n(a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\npi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\nmt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b",name:"support.function.math.php"},{match:"(?xi)\\b\nmb_(\nstr(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\nsubstitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\nconvert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\ndetect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\nereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\nlist_encodings|language|regex_(set_options|encoding)|get_info\n)\\b",name:"support.function.mbstring.php"},{match:"(?xi)\\b\n(\nmcrypt_(\ncfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\nenc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\nget_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\nget_(cipher_name|(block|iv|key)_size)|\nmodule_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\nget_(supported_key_sizes|algo_(block|key)_size)))|\nmdecrypt_generic\n)\\b",name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",name:"support.function.mongo.php"},{match:"(?xi)\\b\nmysql_(\nstat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\nthread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\nerrno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\nfree_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\nget_(client|host|proto|server)_info\n)\\b",name:"support.function.mysql.php"},{match:"(?xi)\\b\nmysqli_(\nssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\nstmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\nattr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\nselect_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\nclient_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\ndump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\nembedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\nfetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\nrelease_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\nget_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\nmaster_query|bind_(param|result)|begin_transaction\n)\\b",name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:"(?xi)\\b\n(\nsyslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\nheaders_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\nopenlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\nget(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b",name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",name:"support.function.nsapi.php"},{match:"(?xi)\\b\n(\noci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\ncolumn(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\ncloselob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\nfree(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\nresult|bindbyname)|\noci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\nnum_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\ninternal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\nfield_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\nfree_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b",name:"support.function.oci8.php"},{match:"(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",name:"support.function.opcache.php"},{match:"(?xi)\\b\nopenssl_(\nsign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\ncipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\npkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\npkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\nget_((cipher|md)_methods|cert_locations|(public|private)key)|\nx509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b",name:"support.function.openssl.php"},{match:"(?xi)\\b\n(\noutput_(add_rewrite_var|reset_rewrite_vars)|flush|\nob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\nget_(status|contents|clean|flush|length|level))\n)\\b",name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:"(?xi)\\b\npcntl_(\nstrerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\nw(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b",name:"support.function.pcntl.php"},{match:"(?xi)\\b\npg_(\nsocket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\nnum_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\nclient_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\nunescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\nescape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\nfield_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\nfetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\nlo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b",name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:"(?xi)\\b\nftp_(\nssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\ndelete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b",name:"support.function.php_ftp.php"},{match:"(?xi)\\b\nimap_(\n(create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\nnum_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\nfetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\nrfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\nmsgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b",name:"support.function.php_imap.php"},{match:"(?xi)\\b\nmssql_(\nselect_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\nfield_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\nrows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b",name:"support.function.php_mssql.php"},{match:"(?xi)\\b\nodbc_(\nstatistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\ncursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\nprepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\nfetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b",name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:"(?xi)\\b\nposix_(\nstrerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\nget(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\nget_last_error|mknod|mkfifo\n)\\b",name:"support.function.posix.php"},{match:"(?i)\\bset(thread|proc)title\\b",name:"support.function.proctitle.php"},{match:"(?xi)\\b\npspell_(\nstore_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\nconfig_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b",name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",name:"support.function.rrd.php"},{match:"(?xi)\\b\n(\nshm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\nmsg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b",name:"support.function.sem.php"},{match:"(?xi)\\b\nsession_(\nstatus|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\nis_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\nregenerate_id|get_cookie_params|module_name\n)\\b",name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:"(?xi)\\b\n(\nsnmp(walk(oid)?|realwalk|get(next)?|set)|\nsnmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\nget_(valueretrieval|quick_print))|\nsnmp[23]_(set|walk|real_walk|get(next)?)\n)\\b",name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:"(?xi)\\b\nsocket_(\nshutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\ncreate(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\nread|get(peer|sock)name|get_option\n)\\b",name:"support.function.sockets.php"},{match:"(?xi)\\b\nsqlite_(\nsingle_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\ncreate_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\nescape_string|error_string|exec|valid|key|query|field_name|factory|\nfetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\nlast_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b",name:"support.function.sqlite.php"},{match:"(?xi)\\b\nsqlsrv_(\nsend_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\nclient_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\nfree_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b",name:"support.function.sqlsrv.php"},{match:"(?xi)\\b\nstats_(\nharmonic_mean|covariance|standard_deviation|skew|\ncdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\nlogistic|laplace|gamma|binomial|beta)|\nstat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\ndens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\nweibull|logistic|laplace|gamma|beta)|\nden_uniform|variance|kurtosis|absolute_deviation|\nrand_(setall|phrase_to_seeds|ranf|get_seeds|\ngen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\ni(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b",name:"support.function.stats.php"},{match:"(?xi)\\b\n(\nset_socket_blocking|\nstream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\nset_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\ncontext_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\nencoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\nresolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\nbucket_(new|prepend|append|make_writeable)\n)\n)\\b",name:"support.function.streamsfuncs.php"},{match:"(?xi)\\b\n(\nmoney_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\nstr(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\nstr_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\nstrip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\nhtml(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\nchop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\nuc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\nquotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b",name:"support.function.string.php"},{match:"(?xi)\\b\nsybase_(\nset_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\nunbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\naffected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b",name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:"(?xi)\\b\n(\ntidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n(access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\nget_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\nob_tidyhandler\n)\\b",name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:"(?xi)\\b\ntrader_(\nstoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\nht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\ncdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\nhikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\ncounterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\nidentical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\nupsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\npiercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\nladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\ngravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\nbelthold|breakaway)|\nceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\nplus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\nlinearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\naroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\nminmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b",name:"support.function.trader.php"},{match:"(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",name:"support.function.uopz.php"},{match:"(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:"(?xi)\\b\n(\nstrval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\nis_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\nunset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b",name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_)?(disable|enable)\\b",name:"support.function.xhprof.php"},{match:"(?xi)\n\\b\n(\nutf8_(decode|encode)|\nxml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n(character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\nparse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\nget_(current_((column|line)_number|byte_index)|error_code))\n)\\b",name:"support.function.xml.php"},{match:"(?xi)\\b\nxmlrpc_(\nserver_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\nis_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b",name:"support.function.xmlrpc.php"},{match:"(?xi)\\b\nxmlwriter_(\n(end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n(start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\nfull_end_element|flush|\n)\\b",name:"support.function.xmlwriter.php"},{match:"(?xi)\\b\n(\nzlib_(decode|encode|get_coding_type)|readgzfile|\ngz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\nwrite|rewind|read|getc|getss?)\n)\\b",name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},switch_statement:{patterns:[{match:"\\s+(?=switch\\b)"},{begin:"\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",beginCaptures:{0:{name:"keyword.control.switch.php"}},end:"}|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.section.switch-block.end.bracket.curly.php"}},name:"meta.switch-statement.php",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.switch-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{0:{name:"punctuation.definition.switch-expression.end.bracket.round.php"}},patterns:[{include:"$self"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.definition.section.switch-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{include:"$self"}]}]}]},ternary_expression:{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.php"}},end:"(?<!:):(?!:)",endCaptures:{0:{name:"keyword.operator.ternary.php"}},patterns:[{captures:{1:{patterns:[{include:"$self"}]}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=:(?!:))"},{include:"$self"}]},ternary_shorthand:{match:"\\?:",name:"keyword.operator.ternary.php"},"use-inner":{patterns:[{include:"#comments"},{begin:"(?i)\\b(as)\\s+",beginCaptures:{1:{name:"keyword.other.use-as.php"}},end:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",endCaptures:{0:{name:"entity.other.alias.php"}}},{include:"#class-name"},{match:",",name:"punctuation.separator.delimiter.php"}]},var_basic:{patterns:[{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(?i)(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"variable.other.php"}]},var_global:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},var_language:{captures:{1:{name:"punctuation.definition.variable.php"}},match:"(\\$)this\\b",name:"variable.language.this.php"},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"keyword.operator.class.php"},5:{name:"variable.other.property.php"},6:{name:"punctuation.section.array.begin.php"},7:{name:"constant.numeric.index.php"},8:{name:"variable.other.index.php"},9:{name:"punctuation.definition.variable.php"},10:{name:"string.unquoted.index.php"},11:{name:"punctuation.section.array.end.php"}},match:"(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))\\s*\n(?:\n(\\??->)\\s*(\\g<name>)\n|\n(\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))(\\])\n)?"},{captures:{1:{name:"variable.other.php"},2:{name:"punctuation.definition.variable.php"},4:{name:"punctuation.definition.variable.php"}},match:"(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(}))"}]},variables:{patterns:[{include:"#var_language"},{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"\\${(?=.*?})",beginCaptures:{0:{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{0:{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]}]}},r="source.php",i={displayName:"PHP",name:"php",patterns:t,repository:a,scopeName:r};export{i as default,e as displayName,n as name,t as patterns,a as repository,r as scopeName}; diff --git a/lib/dist/grammar/plsql.mjs b/lib/dist/grammar/plsql.mjs new file mode 100644 index 0000000..3bf420f --- /dev/null +++ b/lib/dist/grammar/plsql.mjs @@ -0,0 +1 @@ +var e="PL/SQL",t=["sql","ddl","dml","pkh","pks","pkb","pck","pls","plb"],a="(?i)^\\s*(begin|if|loop)\\b",r="(?i)^\\s*(end)\\b",o="plsql",n=[{begin:"/\\*",end:"\\*/",name:"comment.block.oracle"},{match:"--.*$",name:"comment.line.double-dash.oracle"},{match:"(?i)(?:^\\s*)rem(?:\\s+.*$)",name:"comment.line.sqlplus.oracle"},{match:"(?i)(?:^\\s*)prompt(?:\\s+.*$)",name:"comment.line.sqlplus-prompt.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"keyword.other.oracle"}},match:"(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+",name:"meta.create.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"keyword.other.oracle"},3:{name:"entity.name.type.oracle"}},match:"(?i)\\b(package)(\\s+body)?\\s+(\\S+)",name:"meta.package.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"entity.name.type.oracle"}},match:'(?i)\\b(type)\\s+"([^"]+)"',name:"meta.type.oracle"},{captures:{1:{name:"keyword.other.oracle"},2:{name:"entity.name.function.oracle"}},match:'(?i)^\\s*(function|procedure)\\s+"?([-a-z0-9_]+)"?',name:"meta.procedure.oracle"},{match:"[!<>:]?=|<>|<|>|\\+|(?<!\\.)\\*|-|(?<!^)/|\\|\\|",name:"keyword.operator.oracle"},{match:"(?i)\\b(true|false|null|is\\s+(not\\s+)?null)\\b",name:"constant.language.oracle"},{match:"\\b\\d+(\\.\\d+)?\\b",name:"constant.numeric.oracle"},{match:"(?i)\\b(if|elsif|else|end\\s+if|loop|end\\s+loop|for|while|case|end\\s+case|continue|return|goto)\\b",name:"keyword.control.oracle"},{match:"(?i)\\b(or|and|not|like)\\b",name:"keyword.other.oracle"},{match:"(?i)\\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\\b",name:"support.function.oracle"},{match:"(?i)\\b(sql|sqlcode)\\b",name:"variable.language.oracle"},{match:"(?i)\\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\\b",name:"support.function.builtin.char.oracle"},{match:"(?i)\\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\\b",name:"support.function.builtin.date.oracle"},{match:"(?i)\\b(avg|count|sum|max|min|median|corr|corr_\\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\\b",name:"support.function.builtin.aggregate.oracle"},{match:"(?i)\\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\\s+)?user|userenv|cardinality|(bulk\\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\\s+immediate|alter\\s+session)\\b",name:"support.function.builtin.advanced.oracle"},{match:"(?i)\\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\\b",name:"support.function.builtin.convert.oracle"},{match:"(?i)\\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",name:"support.function.builtin.math.oracle"},{match:"(?i)\\b(\\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\\b",name:"support.function.builtin.collection.oracle"},{match:"(?i)\\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\\b",name:"support.function.builtin.data_mining.oracle"},{match:"(?i)\\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\\b",name:"support.function.builtin.xml.oracle"},{match:"(?i)\\b(pragma\\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\\b",name:"keyword.other.pragma.oracle"},{match:"(?i)\\b(p(i|o|io)_[-a-z0-9_]+)\\b",name:"variable.parameter.oracle"},{match:"(?i)\\b(l_[-a-z0-9_]+)\\b",name:"variable.other.oracle"},{match:"(?i):\\b(new|old)\\b",name:"variable.trigger.oracle"},{match:"(?i)\\b(connect\\s+by\\s+(nocycle\\s+)?(prior|level)|connect_by_(root|icycle)|level|start\\s+with)\\b",name:"keyword.hierarchical.sql.oracle"},{match:"(?i)\\b(language|name|java|c)\\b",name:"keyword.wrapper.oracle"},{match:"(?i)\\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\\s+by|result_cache|constant|comment|\\.(nextval|currval))\\b",name:"keyword.other.oracle"},{match:"(?i)\\b(grant|revoke|alter|drop|force|add|check|constraint|primary\\s+key|foreign\\s+key|references|unique(\\s+index)?|column|sequence|increment\\s+by|cache|(materialized\\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\\b",name:"keyword.other.ddl.oracle"},{match:"(?i)\\b(with|select|from|where|order\\s+(siblings\\s+)?by|group\\s+by|rollup|cube|((left|right|cross|natural)\\s+(outer\\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\\s+between|nulls\\s+first|nulls\\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\\s+by|merge|using|matched|pivot|unpivot)\\b",name:"keyword.other.sql.oracle"},{match:"(?i)\\b(define|whenever\\s+sqlerror|exec|timing\\s+start|timing\\s+stop)\\b",name:"keyword.other.sqlplus.oracle"},{match:"(?i)\\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\\b",name:"support.type.exception.oracle"},{captures:{3:{name:"support.class.oracle"}},match:"(?i)\\b((dbms|utl|owa|apex)_\\w+\\.(\\w+))\\b",name:"support.function.oracle"},{captures:{3:{name:"support.class.oracle"}},match:"(?i)\\b((htf|htp)\\.(\\w+))\\b",name:"support.function.oracle"},{captures:{3:{name:"support.class.user-defined.oracle"}},match:"(?i)\\b((\\w+_pkg|pkg_\\w+)\\.(\\w+))\\b",name:"support.function.user-defined.oracle"},{match:"(?i)\\b(raise|raise_application_error)\\b",name:"support.function.oracle"},{begin:"'",end:"'",name:"string.quoted.single.oracle"},{begin:'"',end:'"',name:"string.quoted.double.oracle"},{match:"(?i)\\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\\s+with(\\s+local)?\\s+time\\s+zone)?|interval\\s*day(\\(\\d*\\))?\\s*to\\s*month|interval\\s*year(\\(\\d*\\))?\\s*to\\s*second(\\(\\d*\\))?|xmltype|blob|clob|nclob|bfile|long|long\\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\\b",name:"storage.type.oracle"}],i="source.plsql.oracle",s={displayName:e,fileTypes:t,foldingStartMarker:a,foldingStopMarker:r,name:o,patterns:n,scopeName:i};export{s as default,e as displayName,t as fileTypes,a as foldingStartMarker,r as foldingStopMarker,o as name,n as patterns,i as scopeName}; diff --git a/lib/dist/grammar/po.mjs b/lib/dist/grammar/po.mjs new file mode 100644 index 0000000..a056637 --- /dev/null +++ b/lib/dist/grammar/po.mjs @@ -0,0 +1 @@ +var e="Gettext PO",n=["po","pot","potx"],t="po",o=[{begin:'^(?=(msgid(_plural)?|msgctxt)\\s*"[^"])|^\\s*$',comment:"Start of body of document, after header",end:"\\z",patterns:[{include:"#body"}]},{include:"#comments"},{match:'^msg(id|str)\\s+""\\s*$\\n?',name:"comment.line.number-sign.po"},{captures:{1:{name:"constant.language.po"},2:{name:"punctuation.separator.key-value.po"},3:{name:"string.other.po"}},match:'^"(?:([^\\s:]+)(:)\\s+)?([^"]*)"\\s*$\\n?',name:"meta.header.po"}],a={body:{patterns:[{begin:"^(msgid(_plural)?)\\s+",beginCaptures:{1:{name:"keyword.control.msgid.po"}},end:'^(?!")',name:"meta.scope.msgid.po",patterns:[{begin:'(\\G|^)"',end:'"',name:"string.quoted.double.po",patterns:[{match:'\\\\[\\\\"]',name:"constant.character.escape.po"}]}]},{begin:"^(msgstr)(?:(\\[)(\\d+)(\\]))?\\s+",beginCaptures:{1:{name:"keyword.control.msgstr.po"},2:{name:"keyword.control.msgstr.po"},3:{name:"constant.numeric.po"},4:{name:"keyword.control.msgstr.po"}},end:'^(?!")',name:"meta.scope.msgstr.po",patterns:[{begin:'(\\G|^)"',end:'"',name:"string.quoted.double.po",patterns:[{match:'\\\\[\\\\"]',name:"constant.character.escape.po"}]}]},{begin:"^(msgctxt)(?:(\\[)(\\d+)(\\]))?\\s+",beginCaptures:{1:{name:"keyword.control.msgctxt.po"},2:{name:"keyword.control.msgctxt.po"},3:{name:"constant.numeric.po"},4:{name:"keyword.control.msgctxt.po"}},end:'^(?!")',name:"meta.scope.msgctxt.po",patterns:[{begin:'(\\G|^)"',end:'"',name:"string.quoted.double.po",patterns:[{match:'\\\\[\\\\"]',name:"constant.character.escape.po"}]}]},{captures:{1:{name:"punctuation.definition.comment.po"}},match:"^(#~).*$\\n?",name:"comment.line.number-sign.obsolete.po"},{include:"#comments"},{comment:'a line that does not begin with # or ". Could improve this regexp',match:'^(?!\\s*$)[^#"].*$\\n?',name:"invalid.illegal.po"}]},comments:{patterns:[{begin:"^(?=#)",end:"(?!\\G)",patterns:[{begin:"(#,)\\s+",beginCaptures:{1:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.flag.po",patterns:[{captures:{1:{name:"entity.name.type.flag.po"}},match:"(?:\\G|,\\s*)((?:fuzzy)|(?:no-)?(?:c|objc|sh|lisp|elisp|librep|scheme|smalltalk|java|csharp|awk|object-pascal|ycp|tcl|perl|perl-brace|php|gcc-internal|qt|boost)-format)"}]},{begin:"#\\.",beginCaptures:{0:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.extracted.po"},{begin:"(#:)[ \\t]*",beginCaptures:{1:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.reference.po",patterns:[{match:"(\\S+:)([\\d;]*)",name:"storage.type.class.po"}]},{begin:"#\\|",beginCaptures:{0:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.previous.po"},{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.po"}},end:"\\n",name:"comment.line.number-sign.po"}]}]}},m="source.po",s={displayName:e,fileTypes:n,name:"po",patterns:o,repository:a,scopeName:m};export{s as default,e as displayName,n as fileTypes,t as name,o as patterns,a as repository,m as scopeName}; diff --git a/lib/dist/grammar/postcss.mjs b/lib/dist/grammar/postcss.mjs new file mode 100644 index 0000000..333b750 --- /dev/null +++ b/lib/dist/grammar/postcss.mjs @@ -0,0 +1 @@ +var e="PostCSS",t=["pcss","postcss"],n="/\\*|^#|^\\*|^\\b|^\\.",s="\\*/|^\\s*$",o="postcss",a=[{begin:"/\\*",end:"\\*/",name:"comment.block.postcss",patterns:[{include:"#comment-tag"}]},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#placeholder-selector"},{include:"#variable"},{include:"#variable-root-css"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#dotdotdot"},{begin:"@include",captures:{0:{name:"keyword.control.at-rule.css.postcss"}},end:"(?=\\n|\\(|{|;)",name:"support.function.name.postcss.library"},{begin:"@mixin|@function",captures:{0:{name:"keyword.control.at-rule.css.postcss"}},end:"$\\n?|(?=\\(|{)",name:"support.function.name.postcss.no-completions",patterns:[{match:"[\\w-]+",name:"entity.name.function"}]},{match:"(?<=@import)\\s[\\w/.*-]+",name:"string.quoted.double.css.postcss"},{begin:"@",end:"$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))|(?=;)",name:"keyword.control.at-rule.css.postcss"},{begin:"#",end:"$\\n?|(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>)",name:"entity.other.attribute-name.id.css.postcss",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\.|(?<=&)(-|_)",end:"$\\n?|(?=\\s|,|;|\\(|\\)|\\[|{|>)",name:"entity.other.attribute-name.class.css.postcss",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\[",end:"\\]",name:"entity.other.attribute-selector.postcss",patterns:[{include:"#double-quoted"},{include:"#single-quoted"},{match:"\\^|\\$|\\*|~",name:"keyword.other.regex.postcss"}]},{match:"(?<=\\]|\\)|not\\(|\\*|>|>\\s):[a-z:-]+|(::|:-)[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.postcss"},{begin:":",end:"$\\n?|(?=;|\\s\\(|and\\(|{|}|\\),)",name:"meta.property-list.css.postcss",patterns:[{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#function"},{include:"#function-content"},{include:"#function-content-var"},{include:"#operator"},{include:"#parent-selector"},{include:"#property-value"}]},{include:"#rgb-value"},{include:"#function"},{include:"#function-content"},{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|x)\\b(?!-|\\)|:\\s)|&",end:"(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>|-|_)",name:"entity.name.tag.css.postcss.symbol",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{include:"#operator"},{match:"[a-z-]+((?=:|#{))",name:"support.type.property-name.css.postcss"},{include:"#reserved-words"},{include:"#property-value"}],c={"comment-tag":{begin:"{{",end:"}}",name:"comment.tags.postcss",patterns:[{match:"[\\w-]+",name:"comment.tag.postcss"}]},dotdotdot:{match:"\\.{3}",name:"variable.other"},"double-quoted":{begin:'"',end:'"',name:"string.quoted.double.css.postcss",patterns:[{include:"#quoted-interpolation"}]},"double-slash":{begin:"//",end:"$",name:"comment.line.postcss",patterns:[{include:"#comment-tag"}]},flag:{match:"!(important|default|optional|global)",name:"keyword.other.important.css.postcss"},function:{match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[\\w-][\\w-]*(?=\\()",name:"support.function.name.postcss"},"function-content":{match:"(?<=url\\(|format\\(|attr\\().+?(?=\\))",name:"string.quoted.double.css.postcss"},"function-content-var":{match:"(?<=var\\()[\\w-]+(?=\\))",name:"variable.parameter.postcss"},interpolation:{begin:"#{",end:"}",name:"support.function.interpolation.postcss",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#double-quoted"},{include:"#single-quoted"}]},numeric:{match:"(-|\\.)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.css.postcss"},operator:{match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",name:"keyword.operator.postcss"},"parent-selector":{match:"&",name:"entity.name.tag.css.postcss"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",end:"$\\n?|\\s|(?=;|{)",name:"entity.other.attribute-name.placeholder-selector.postcss"},"property-value":{match:"[\\w-]+",name:"meta.property-value.css.postcss, support.constant.property-value.css.postcss"},"pseudo-class":{match:":[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.postcss"},"quoted-interpolation":{begin:"#{",end:"}",name:"support.function.interpolation.postcss",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"}]},"reserved-words":{match:"\\b(false|from|in|not|null|through|to|true)\\b",name:"support.type.property-name.css.postcss"},"rgb-value":{match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",name:"constant.other.color.rgb-value.css.postcss"},"single-quoted":{begin:"'",end:"'",name:"string.quoted.single.css.postcss",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|%)",name:"keyword.other.unit.css.postcss"},variable:{match:"\\$[\\w-]+",name:"variable.parameter.postcss"},"variable-root-css":{match:"(?<!&)--[\\w-]+",name:"variable.parameter.postcss"}},r="source.css.postcss",i={displayName:e,fileTypes:t,foldingStartMarker:n,foldingStopMarker:s,name:o,patterns:a,repository:c,scopeName:r};export{i as default,e as displayName,t as fileTypes,n as foldingStartMarker,s as foldingStopMarker,o as name,a as patterns,c as repository,r as scopeName}; diff --git a/lib/dist/grammar/powerquery.mjs b/lib/dist/grammar/powerquery.mjs new file mode 100644 index 0000000..7ce6bf8 --- /dev/null +++ b/lib/dist/grammar/powerquery.mjs @@ -0,0 +1 @@ +var e="PowerQuery",n=["pq","pqm"],r="powerquery",t=[{include:"#Noise"},{include:"#LiteralExpression"},{include:"#Keywords"},{include:"#ImplicitVariable"},{include:"#IntrinsicVariable"},{include:"#Operators"},{include:"#DotOperators"},{include:"#TypeName"},{include:"#RecordExpression"},{include:"#Punctuation"},{include:"#QuotedIdentifier"},{include:"#Identifier"}],a={BlockComment:{begin:"/\\*",end:"\\*/",name:"comment.block.powerquery"},DecimalNumber:{match:"(?<![\\d\\w])(\\d*\\.\\d+)\\b",name:"constant.numeric.decimal.powerquery"},DotOperators:{captures:{1:{name:"keyword.operator.ellipsis.powerquery"},2:{name:"keyword.operator.list.powerquery"}},match:"(?<!\\.)(?:(\\.\\.\\.)|(\\.\\.))(?!\\.)"},EscapeSequence:{begin:"#\\(",beginCaptures:{0:{name:"punctuation.definition.escapesequence.begin.powerquery"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.escapesequence.end.powerquery"}},name:"constant.character.escapesequence.powerquery",patterns:[{match:"(#|\\h{4}|\\h{8}|cr|lf|tab)(?:,(#|\\h{4}|\\h{8}|cr|lf|tab))*"},{match:"[^\\)]",name:"invalid.illegal.escapesequence.powerquery"}]},FloatNumber:{match:"(\\d*\\.)?\\d+(e|E)(\\+|-)?\\d+",name:"constant.numeric.float.powerquery"},HexNumber:{match:"0(x|X)\\h+",name:"constant.numeric.integer.hexadecimal.powerquery"},Identifier:{captures:{1:{name:"keyword.operator.inclusiveidentifier.powerquery"},2:{name:"entity.name.powerquery"}},match:"(?x:(?<![\\._\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])(@?)([_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}]*(?:\\.[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])*)\\b)"},ImplicitVariable:{match:"\\b_\\b",name:"keyword.operator.implicitvariable.powerquery"},InclusiveIdentifier:{captures:{0:{name:"inclusiveidentifier.powerquery"}},match:"@"},IntNumber:{captures:{1:{name:"constant.numeric.integer.powerquery"}},match:"\\b(\\d+)\\b"},IntrinsicVariable:{captures:{1:{name:"constant.language.intrinsicvariable.powerquery"}},match:"(?<![\\d\\w])(#sections|#shared)\\b"},Keywords:{captures:{1:{name:"keyword.operator.word.logical.powerquery"},2:{name:"keyword.control.conditional.powerquery"},3:{name:"keyword.control.exception.powerquery"},4:{name:"keyword.other.powerquery"},5:{name:"keyword.powerquery"}},match:"\\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\\b"},LineComment:{match:"//.*",name:"comment.line.double-slash.powerquery"},LiteralExpression:{patterns:[{include:"#String"},{include:"#NumericConstant"},{include:"#LogicalConstant"},{include:"#NullConstant"},{include:"#FloatNumber"},{include:"#DecimalNumber"},{include:"#HexNumber"},{include:"#IntNumber"}]},LogicalConstant:{match:"\\b(true|false)\\b",name:"constant.language.logical.powerquery"},Noise:{patterns:[{include:"#BlockComment"},{include:"#LineComment"},{include:"#Whitespace"}]},NullConstant:{match:"\\b(null)\\b",name:"constant.language.null.powerquery"},NumericConstant:{captures:{1:{name:"constant.language.numeric.float.powerquery"}},match:"(?<![\\d\\w])(#infinity|#nan)\\b"},Operators:{captures:{1:{name:"keyword.operator.function.powerquery"},2:{name:"keyword.operator.assignment-or-comparison.powerquery"},3:{name:"keyword.operator.comparison.powerquery"},4:{name:"keyword.operator.combination.powerquery"},5:{name:"keyword.operator.arithmetic.powerquery"},6:{name:"keyword.operator.sectionaccess.powerquery"},7:{name:"keyword.operator.optional.powerquery"}},match:"(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\\+|-|\\*|\\/)|(!)|(\\?)"},Punctuation:{captures:{1:{name:"punctuation.separator.powerquery"},2:{name:"punctuation.section.parens.begin.powerquery"},3:{name:"punctuation.section.parens.end.powerquery"},4:{name:"punctuation.section.braces.begin.powerquery"},5:{name:"punctuation.section.braces.end.powerquery"}},match:"(,)|(\\()|(\\))|({)|(})"},QuotedIdentifier:{begin:'#"',beginCaptures:{0:{name:"punctuation.definition.quotedidentifier.begin.powerquery"}},end:'"(?!")',endCaptures:{0:{name:"punctuation.definition.quotedidentifier.end.powerquery"}},name:"entity.name.powerquery",patterns:[{match:'""',name:"constant.character.escape.quote.powerquery"},{include:"#EscapeSequence"}]},RecordExpression:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.powerquery"}},contentName:"meta.recordexpression.powerquery",end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.powerquery"}},patterns:[{include:"$self"}]},String:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.powerquery"}},end:'"(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.powerquery"}},name:"string.quoted.double.powerquery",patterns:[{match:'""',name:"constant.character.escape.quote.powerquery"},{include:"#EscapeSequence"}]},TypeName:{captures:{1:{name:"storage.modifier.powerquery"},2:{name:"storage.type.powerquery"}},match:"\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\b"},Whitespace:{match:"\\s+"}},o="source.powerquery",i={displayName:e,fileTypes:n,name:r,patterns:t,repository:a,scopeName:o};export{i as default,e as displayName,n as fileTypes,r as name,t as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/powershell.mjs b/lib/dist/grammar/powershell.mjs new file mode 100644 index 0000000..b1ee2b2 --- /dev/null +++ b/lib/dist/grammar/powershell.mjs @@ -0,0 +1 @@ +var e="PowerShell",n="powershell",t=[{begin:"<#",beginCaptures:{0:{name:"punctuation.definition.comment.block.begin.powershell"}},end:"#>",endCaptures:{0:{name:"punctuation.definition.comment.block.end.powershell"}},name:"comment.block.powershell",patterns:[{include:"#commentEmbeddedDocs"}]},{match:"[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>",name:"keyword.operator.redirection.powershell"},{include:"#commands"},{include:"#commentLine"},{include:"#variable"},{include:"#subexpression"},{include:"#function"},{include:"#attribute"},{include:"#UsingDirective"},{include:"#type"},{include:"#hashtable"},{include:"#doubleQuotedString"},{include:"#scriptblock"},{comment:"Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)",include:"#doubleQuotedStringEscapes"},{applyEndPatternLast:!0,begin:"['\\x{2018}-\\x{201B}]",beginCaptures:{0:{name:"punctuation.definition.string.begin.powershell"}},end:"['\\x{2018}-\\x{201B}]",endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.single.powershell",patterns:[{match:"['\\x{2018}-\\x{201B}]{2}",name:"constant.character.escape.powershell"}]},{begin:'(@["\\x{201C}-\\x{201E}])\\s*$',beginCaptures:{1:{name:"punctuation.definition.string.begin.powershell"}},end:'^["\\x{201C}-\\x{201E}]@',endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.double.heredoc.powershell",patterns:[{include:"#variableNoProperty"},{include:"#doubleQuotedStringEscapes"},{include:"#interpolation"}]},{begin:"(@['\\x{2018}-\\x{201B}])\\s*$",beginCaptures:{1:{name:"punctuation.definition.string.begin.powershell"}},end:"^['\\x{2018}-\\x{201B}]@",endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.single.heredoc.powershell"},{include:"#numericConstant"},{begin:"(@)(\\()",beginCaptures:{1:{name:"keyword.other.array.begin.powershell"},2:{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},name:"meta.group.array-expression.powershell",patterns:[{include:"$self"}]},{begin:"((\\$))(\\()",beginCaptures:{1:{name:"keyword.other.substatement.powershell"},2:{name:"punctuation.definition.subexpression.powershell"},3:{name:"punctuation.section.group.begin.powershell"}},comment:"TODO: move to repo; make recursive.",end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},name:"meta.group.complex.subexpression.powershell",patterns:[{include:"$self"}]},{match:"(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)",name:"support.function.powershell"},{match:"(?<!\\w|-|\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)",name:"keyword.control.powershell"},{match:"(?<!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)",name:"keyword.control.powershell"},{begin:"(?<!\\w)(--%)(?!\\w)",beginCaptures:{1:{name:"keyword.control.powershell"}},comment:"This should be moved to the repository at some point.",end:"$",patterns:[{match:".+",name:"string.unquoted.powershell"}]},{comment:"This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.",match:"(?<!\\w)((?i:hidden|static))(?!\\w)",name:"storage.modifier.powershell"},{captures:{1:{name:"storage.type.powershell"},2:{name:"entity.name.function"}},comment:"capture should be entity.name.type, but it doesn't provide a good color in the default schema.",match:"(?<!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b"},{match:"(?<!\\w)-(?i:is(?:not)?|as)\\b",name:"keyword.operator.comparison.powershell"},{match:"(?<!\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\p{L})",name:"keyword.operator.comparison.powershell"},{match:"(?<!\\w)-(?i:join|split)(?!\\p{L})|!",name:"keyword.operator.unary.powershell"},{match:"(?<!\\w)-(?i:and|or|not|xor)(?!\\p{L})|!",name:"keyword.operator.logical.powershell"},{match:"(?<!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})",name:"keyword.operator.bitwise.powershell"},{match:"(?<!\\w)-(?i:f)(?!\\p{L})",name:"keyword.operator.string-format.powershell"},{match:"[+%*/-]?=|[+/*%-]",name:"keyword.operator.assignment.powershell"},{match:"\\|{2}|&{2}|;",name:"punctuation.terminator.statement.powershell"},{match:"&|(?<!\\w)\\.(?= )|`|,|\\|",name:"keyword.operator.other.powershell"},{comment:"This is very imprecise, is there a syntax for 'must come after...' ",match:"(?<!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)",name:"keyword.operator.range.powershell"}],a={RequiresDirective:{begin:"(?<=#)(?i:(requires))\\s",beginCaptures:{0:{name:"keyword.control.requires.powershell"}},end:"$",name:"meta.requires.powershell",patterns:[{match:"\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)",name:"keyword.other.powershell"},{match:"(?<!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*",name:"variable.parameter.powershell"},{include:"#hashtable"}]},UsingDirective:{captures:{1:{name:"keyword.control.using.powershell"},2:{name:"keyword.other.powershell"},3:{name:"variable.parameter.powershell"}},match:"(?<!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))"},attribute:{begin:"(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b",beginCaptures:{1:{name:"punctuation.section.bracket.begin.powershell"},2:{name:"support.function.attribute.powershell"}},end:"(\\])",endCaptures:{1:{name:"punctuation.section.bracket.end.powershell"}},name:"meta.attribute.powershell",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},patterns:[{include:"$self"},{captures:{1:{name:"variable.parameter.attribute.powershell"},2:{name:"keyword.operator.assignment.powershell"}},match:"(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)?"}]}]},commands:{patterns:[{comment:"Verb-Noun pattern:",match:"(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:foreach-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:where-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:sort-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:tee-object)(?!\\w)",name:"support.function.powershell"}]},commentEmbeddedDocs:{patterns:[{captures:{1:{name:"constant.string.documentation.powershell"},2:{name:"keyword.operator.documentation.powershell"}},comment:"these embedded doc keywords do not support arguments, must be the only thing on the line",match:"(?:^|\\G)(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\s*$",name:"comment.documentation.embedded.powershell"},{captures:{1:{name:"constant.string.documentation.powershell"},2:{name:"keyword.operator.documentation.powershell"},3:{name:"keyword.operator.documentation.powershell"}},comment:"these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match",match:"(?:^|\\G)(?i:\\s*(\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\s+(.+?)\\s*$",name:"comment.documentation.embedded.powershell"}]},commentLine:{begin:"(?<![`\\\\-])(#)#*",captures:{1:{name:"punctuation.definition.comment.powershell"}},end:"$\\n?",name:"comment.line.powershell",patterns:[{include:"#commentEmbeddedDocs"},{include:"#RequiresDirective"}]},doubleQuotedString:{applyEndPatternLast:!0,begin:'["\\x{201C}-\\x{201E}]',beginCaptures:{0:{name:"punctuation.definition.string.begin.powershell"}},end:'["\\x{201C}-\\x{201E}]',endCaptures:{0:{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.double.powershell",patterns:[{match:"(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b"},{include:"#variableNoProperty"},{include:"#doubleQuotedStringEscapes"},{match:'["\\x{201C}-\\x{201E}]{2}',name:"constant.character.escape.powershell"},{include:"#interpolation"},{match:"`\\s*$",name:"keyword.other.powershell"}]},doubleQuotedStringEscapes:{patterns:[{match:"`[`0abefnrtv'\"\\x{2018}-\\x{201E}$]",name:"constant.character.escape.powershell"},{include:"#unicodeEscape"}]},function:{begin:"^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)",beginCaptures:{0:{name:"meta.function.powershell"},1:{name:"storage.type.powershell"},2:{name:"storage.modifier.scope.powershell"},3:{name:"entity.name.function.powershell"}},end:"(?=\\{|\\()",patterns:[{include:"#commentLine"}]},hashtable:{begin:"(@)(\\{)",beginCaptures:{1:{name:"keyword.other.hashtable.begin.powershell"},2:{name:"punctuation.section.braces.begin.powershell"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.braces.end.powershell"}},name:"meta.hashtable.powershell",patterns:[{captures:{1:{name:"punctuation.definition.string.begin.powershell"},2:{name:"variable.other.readwrite.powershell"},3:{name:"punctuation.definition.string.end.powershell"},4:{name:"keyword.operator.assignment.powershell"}},match:"\\b((?:\\'|\\\")?)(\\w+)((?:\\'|\\\")?)(?:\\s+)?(=)(?:\\s+)?",name:"meta.hashtable.assignment.powershell"},{include:"#scriptblock"},{include:"$self"}]},interpolation:{begin:"(((\\$)))((\\())",beginCaptures:{1:{name:"keyword.other.substatement.powershell"},2:{name:"punctuation.definition.substatement.powershell"},3:{name:"punctuation.section.embedded.substatement.begin.powershell"},4:{name:"punctuation.section.group.begin.powershell"},5:{name:"punctuation.section.embedded.substatement.begin.powershell"}},contentName:"interpolated.complex.source.powershell",end:"(\\))",endCaptures:{0:{name:"punctuation.section.group.end.powershell"},1:{name:"punctuation.section.embedded.substatement.end.powershell"}},name:"meta.embedded.substatement.powershell",patterns:[{include:"$self"}]},numericConstant:{patterns:[{captures:{1:{name:"constant.numeric.hex.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.octal.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b"},{captures:{1:{name:"constant.numeric.integer.powershell"},2:{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"}]},scriptblock:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.powershell"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.powershell"}},name:"meta.scriptblock.powershell",patterns:[{include:"$self"}]},subexpression:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.group.end.powershell"}},name:"meta.group.simple.subexpression.powershell",patterns:[{include:"$self"}]},type:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.bracket.begin.powershell"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.bracket.end.powershell"}},patterns:[{match:"(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+",name:"storage.type.powershell"},{include:"$self"}]},unicodeEscape:{comment:"`u{xxxx} added in PowerShell 6.0",patterns:[{match:"`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g<1>{1,5})}",name:"constant.character.escape.powershell"},{match:"`u(?:\\{[0-9a-fA-F]{,6}.)?",name:"invalid.character.escape.powershell"}]},variable:{patterns:[{captures:{0:{name:"constant.language.powershell"},1:{name:"punctuation.definition.variable.powershell"}},comment:"These are special constants.",match:"(\\$)(?i:(False|Null|True))\\b"},{captures:{0:{name:"support.constant.variable.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"These are the other built-in constants.",match:"(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"},{captures:{0:{name:"support.variable.automatic.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.",match:"(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.language.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Style preference variables as language variables so that they stand out.",match:"(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"storage.modifier.scope.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"punctuation.section.braces.begin.powershell"},3:{name:"storage.modifier.scope.powershell"},5:{name:"punctuation.section.braces.end.powershell"},6:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"support.variable.drive.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"punctuation.section.braces.begin.powershell"},3:{name:"support.variable.drive.powershell"},5:{name:"punctuation.section.braces.end.powershell"},6:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"}]},variableNoProperty:{patterns:[{captures:{0:{name:"constant.language.powershell"},1:{name:"punctuation.definition.variable.powershell"}},comment:"These are special constants.",match:"(\\$)(?i:(False|Null|True))\\b"},{captures:{0:{name:"support.constant.variable.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"These are the other built-in constants.",match:"(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b"},{captures:{0:{name:"support.variable.automatic.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Automatic variables are not constants, but they are read-only...",match:"(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)"},{captures:{0:{name:"variable.language.powershell"},1:{name:"punctuation.definition.variable.powershell"},3:{name:"variable.other.member.powershell"}},comment:"Style preference variables as language variables so that they stand out.",match:"(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\b"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"storage.modifier.scope.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"storage.modifier.scope.powershell"},4:{name:"keyword.other.powershell"},5:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"support.variable.drive.powershell"},4:{name:"variable.other.member.powershell"}},match:"(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))"},{captures:{0:{name:"variable.other.readwrite.powershell"},1:{name:"punctuation.definition.variable.powershell"},2:{name:"punctuation.section.braces.begin"},3:{name:"support.variable.drive.powershell"},5:{name:"punctuation.section.braces.end"}},match:"(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))"}]}},r="source.powershell",o={displayName:e,name:n,patterns:t,repository:a,scopeName:r};export{o as default,e as displayName,n as name,t as patterns,a as repository,r as scopeName}; diff --git a/lib/dist/grammar/prisma.mjs b/lib/dist/grammar/prisma.mjs new file mode 100644 index 0000000..985e01d --- /dev/null +++ b/lib/dist/grammar/prisma.mjs @@ -0,0 +1 @@ +var e="Prisma",n=["prisma"],a="prisma",t=[{include:"#triple_comment"},{include:"#double_comment"},{include:"#model_block_definition"},{include:"#config_block_definition"},{include:"#enum_block_definition"},{include:"#type_definition"}],i={array:{begin:"\\[",beginCaptures:{1:{name:"punctuation.definition.tag.prisma"}},end:"\\]",endCaptures:{1:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.array",patterns:[{include:"#value"}]},assignment:{patterns:[{begin:"^\\s*(\\w+)\\s*(=)\\s*",beginCaptures:{1:{name:"variable.other.assignment.prisma"},2:{name:"keyword.operator.terraform"}},end:"\\n",patterns:[{include:"#value"},{include:"#double_comment_inline"}]}]},attribute:{captures:{1:{name:"entity.name.function.attribute.prisma"}},match:"(@@?[\\w\\.]+)",name:"source.prisma.attribute"},attribute_with_arguments:{begin:"(@@?[\\w\\.]+)(\\()",beginCaptures:{1:{name:"entity.name.function.attribute.prisma"},2:{name:"punctuation.definition.tag.prisma"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.attribute.with_arguments",patterns:[{include:"#named_argument"},{include:"#value"}]},boolean:{match:"\\b(true|false)\\b",name:"constant.language.boolean.prisma"},config_block_definition:{begin:"^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)",beginCaptures:{1:{name:"storage.type.config.prisma"},2:{name:"entity.name.type.config.prisma"},3:{name:"punctuation.definition.tag.prisma"}},end:"\\s*\\}",endCaptures:{1:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.embedded.source",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#assignment"}]},double_comment:{begin:"//",end:"$\\n?",name:"comment.prisma"},double_comment_inline:{match:"//[^\\n]*",name:"comment.prisma"},double_quoted_string:{begin:'"',beginCaptures:{0:{name:"string.quoted.double.start.prisma"}},end:'"',endCaptures:{0:{name:"string.quoted.double.end.prisma"}},name:"unnamed",patterns:[{include:"#string_interpolation"},{match:"([\\w\\-\\/\\._\\\\%@:\\?=]+)",name:"string.quoted.double.prisma"}]},enum_block_definition:{begin:"^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)",beginCaptures:{1:{name:"storage.type.enum.prisma"},2:{name:"entity.name.type.enum.prisma"},3:{name:"punctuation.definition.tag.prisma"}},end:"\\s*\\}",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.embedded.source",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#enum_value_definition"}]},enum_value_definition:{patterns:[{captures:{1:{name:"variable.other.assignment.prisma"}},match:"^\\s*(\\w+)\\s*"},{include:"#attribute_with_arguments"},{include:"#attribute"}]},field_definition:{name:"scalar.field",patterns:[{captures:{1:{name:"variable.other.assignment.prisma"},2:{name:"invalid.illegal.colon.prisma"},3:{name:"variable.language.relations.prisma"},4:{name:"support.type.primitive.prisma"},5:{name:"keyword.operator.list_type.prisma"},6:{name:"keyword.operator.optional_type.prisma"},7:{name:"invalid.illegal.required_type.prisma"}},match:"^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?"},{include:"#attribute_with_arguments"},{include:"#attribute"}]},functional:{begin:"(\\w+)(\\()",beginCaptures:{1:{name:"support.function.functional.prisma"},2:{name:"punctuation.definition.tag.prisma"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.functional",patterns:[{include:"#value"}]},identifier:{patterns:[{match:"\\b(\\w)+\\b",name:"support.constant.constant.prisma"}]},literal:{name:"source.prisma.literal",patterns:[{include:"#boolean"},{include:"#number"},{include:"#double_quoted_string"},{include:"#identifier"}]},map_key:{name:"source.prisma.key",patterns:[{captures:{1:{name:"variable.parameter.key.prisma"},2:{name:"punctuation.definition.separator.key-value.prisma"}},match:"(\\w+)\\s*(:)\\s*"}]},model_block_definition:{begin:"^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)",beginCaptures:{1:{name:"storage.type.model.prisma"},2:{name:"entity.name.type.model.prisma"},3:{name:"punctuation.definition.tag.prisma"}},end:"\\s*\\}",endCaptures:{0:{name:"punctuation.definition.tag.prisma"}},name:"source.prisma.embedded.source",patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#field_definition"}]},named_argument:{name:"source.prisma.named_argument",patterns:[{include:"#map_key"},{include:"#value"}]},number:{match:"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",name:"constant.numeric.prisma"},string_interpolation:{patterns:[{begin:"\\$\\{",beginCaptures:{0:{name:"keyword.control.interpolation.start.prisma"}},end:"\\s*\\}",endCaptures:{0:{name:"keyword.control.interpolation.end.prisma"}},name:"source.tag.embedded.source.prisma",patterns:[{include:"#value"}]}]},triple_comment:{begin:"///",end:"$\\n?",name:"comment.prisma"},type_definition:{patterns:[{captures:{1:{name:"storage.type.type.prisma"},2:{name:"entity.name.type.type.prisma"},3:{name:"support.type.primitive.prisma"}},match:"^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)"},{include:"#attribute_with_arguments"},{include:"#attribute"}]},value:{name:"source.prisma.value",patterns:[{include:"#array"},{include:"#functional"},{include:"#literal"}]}},r="source.prisma",m={displayName:e,fileTypes:n,name:a,patterns:t,repository:i,scopeName:r};export{m as default,e as displayName,n as fileTypes,a as name,t as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/prolog.mjs b/lib/dist/grammar/prolog.mjs new file mode 100644 index 0000000..d31c4a2 --- /dev/null +++ b/lib/dist/grammar/prolog.mjs @@ -0,0 +1 @@ +var e="Prolog",t=["pl","pro"],r="prolog",a=[{include:"#comments"},{begin:"(?<=:-)\\s*",end:"(\\.)",endCaptures:{1:{name:"keyword.control.clause.bodyend.prolog"}},name:"meta.clause.body.prolog",patterns:[{include:"#comments"},{include:"#builtin"},{include:"#controlandkeywords"},{include:"#atom"},{include:"#variable"},{include:"#constants"},{match:".",name:"meta.clause.body.prolog"}]},{begin:"^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*:-.*)",beginCaptures:{1:{name:"entity.name.function.clause.prolog"},2:{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(:-)",endCaptures:{1:{name:"punctuation.definition.parameters.end"},3:{name:"keyword.control.clause.bodybegin.prolog"}},name:"meta.clause.head.prolog",patterns:[{include:"#atom"},{include:"#variable"},{include:"#constants"}]},{begin:"^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*--\x3e.*)",beginCaptures:{1:{name:"entity.name.function.dcg.prolog"},2:{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(--\x3e)",endCaptures:{1:{name:"punctuation.definition.parameters.end"},3:{name:"keyword.control.dcg.bodybegin.prolog"}},name:"meta.dcg.head.prolog",patterns:[{include:"#atom"},{include:"#variable"},{include:"#constants"}]},{begin:"(?<=--\x3e)\\s*",end:"(\\.)",endCaptures:{1:{name:"keyword.control.dcg.bodyend.prolog"}},name:"meta.dcg.body.prolog",patterns:[{include:"#comments"},{include:"#controlandkeywords"},{include:"#atom"},{include:"#variable"},{include:"#constants"},{match:".",name:"meta.dcg.body.prolog"}]},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\(?)(?!.*(:-|--\x3e).*)",beginCaptures:{1:{name:"entity.name.function.fact.prolog"},2:{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(\\.)(?!\\d+)",endCaptures:{1:{name:"punctuation.definition.parameters.end"},3:{name:"keyword.control.fact.end.prolog"}},name:"meta.fact.prolog",patterns:[{include:"#comments"},{include:"#atom"},{include:"#variable"},{include:"#constants"}]}],o={atom:{patterns:[{match:"(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\\s*\\(|[a-zA-Z0-9_])",name:"constant.other.atom.simple.prolog"},{match:"'.*?'",name:"constant.other.atom.quoted.prolog"},{match:"\\[\\]",name:"constant.other.atom.emptylist.prolog"}]},builtin:{patterns:[{match:"\\b(op|nl|fail|dynamic|discontiguous|initialization|meta_predicate|module_transparent|multifile|public|thread_local|thread_initialization|volatile)\\b",name:"keyword.other"},{match:"\\b(abolish|abort|abs|absolute_file_name|access_file|acos|acosh|acyclic_term|add_import_module|append|apropos|arg|asin|asinh|assert|asserta|assertz|at_end_of_stream|at_halt|atan|atanh|atom|atom_chars|atom_codes|atom_concat|atom_length|atom_number|atom_prefix|atom_string|atom_to_stem_list|atom_to_term|atomic|atomic_concat|atomic_list_concat|atomics_to_string|attach_packs|attr_portray_hook|attr_unify_hook|attribute_goals|attvar|autoload|autoload_path|b_getval|b_set_dict|b_setval|bagof|begin_tests|between|blob|break|byte_count|call_dcg|call_residue_vars|callable|cancel_halt|catch|ceil|ceiling|char_code|char_conversion|char_type|character_count|chdir|chr_leash|chr_notrace|chr_show_store|chr_trace|clause|clause_property|close|close_dde_conversation|close_table|code_type|collation_key|compare|compare_strings|compile_aux_clauses|compile_predicates|compiling|compound|compound_name_arguments|compound_name_arity|consult|context_module|copy_predicate_clauses|copy_stream_data|copy_term|copy_term_nat|copysign|cos|cosh|cputime|create_prolog_flag|current_arithmetic_function|current_atom|current_blob|current_char_conversion|current_engine|current_flag|current_format_predicate|current_functor|current_input|current_key|current_locale|current_module|current_op|current_output|current_predicate|current_prolog_flag|current_signal|current_stream|current_trie|cyclic_term|date_time_stamp|date_time_value|day_of_the_week|dcg_translate_rule|dde_current_connection|dde_current_service|dde_execute|dde_poke|dde_register_service|dde_request|dde_unregister_service|debug|debugging|default_module|del_attr|del_attrs|del_dict|delete_directory|delete_file|delete_import_module|deterministic|dict_create|dict_pairs|dif|directory_files|divmod|doc_browser|doc_collect|doc_load_library|doc_server|double_metaphone|downcase_atom|dtd|dtd_property|duplicate_term|dwim_match|dwim_predicate|e|edit|encoding|engine_create|engine_fetch|engine_next|engine_next_reified|engine_post|engine_self|engine_yield|ensure_loaded|epsilon|erase|erf|erfc|eval|exception|exists_directory|exists_file|exists_source|exp|expand_answer|expand_file_name|expand_file_search_path|expand_goal|expand_query|expand_term|explain|fast_read|fast_term_serialized|fast_write|file_base_name|file_directory_name|file_name_extension|file_search_path|fill_buffer|find_chr_constraint|findall|findnsols|flag|float|float_fractional_part|float_integer_part|floor|flush_output|forall|format|format_predicate|format_time|free_dtd|free_sgml_parser|free_table|freeze|frozen|functor|garbage_collect|garbage_collect_atoms|garbage_collect_clauses|gdebug|get|get_attr|get_attrs|get_byte|get_char|get_code|get_dict|get_flag|get_sgml_parser|get_single_char|get_string_code|get_table_attribute|get_time|getbit|getenv|goal_expansion|ground|gspy|gtrace|guitracer|gxref|gzopen|halt|help|import_module|in_pce_thread|in_pce_thread_sync|in_table|include|inf|instance|integer|iri_xml_namespace|is_absolute_file_name|is_dict|is_engine|is_list|is_stream|is_thread|keysort|known_licenses|leash|length|lgamma|library_directory|license|line_count|line_position|list_strings|listing|load_dtd|load_files|load_html|load_rdf|load_sgml|load_structure|load_test_files|load_xml|locale_create|locale_destroy|locale_property|locale_sort|log|lsb|make|make_directory|make_library_index|max|memberchk|message_hook|message_property|message_queue_create|message_queue_destroy|message_queue_property|message_to_string|min|module|module_property|msb|msort|mutex_create|mutex_destroy|mutex_lock|mutex_property|mutex_statistics|mutex_trylock|mutex_unlock|name|nan|nb_current|nb_delete|nb_getval|nb_link_dict|nb_linkarg|nb_linkval|nb_set_dict|nb_setarg|nb_setval|new_dtd|new_order_table|new_sgml_parser|new_table|nl|nodebug|noguitracer|nonvar|noprotocol|normalize_space|nospy|nospyall|notrace|nth_clause|nth_integer_root_and_remainder|number|number_chars|number_codes|number_string|numbervars|odbc_close_statement|odbc_connect|odbc_current_connection|odbc_current_table|odbc_data_source|odbc_debug|odbc_disconnect|odbc_driver_connect|odbc_end_transaction|odbc_execute|odbc_fetch|odbc_free_statement|odbc_get_connection|odbc_prepare|odbc_query|odbc_set_connection|odbc_statistics|odbc_table_column|odbc_table_foreign_key|odbc_table_primary_key|odbc_type|on_signal|op|open|open_dde_conversation|open_dtd|open_null_stream|open_resource|open_string|open_table|order_table_mapping|parse_time|passed|pce_dispatch|pdt_install_console|peek_byte|peek_char|peek_code|peek_string|phrase|plus|popcount|porter_stem|portray|portray_clause|powm|predicate_property|predsort|prefix_string|print|print_message|print_message_lines|process_rdf|profile|profiler|project_attributes|prolog|prolog_choice_attribute|prolog_current_choice|prolog_current_frame|prolog_cut_to|prolog_debug|prolog_exception_hook|prolog_file_type|prolog_frame_attribute|prolog_ide|prolog_list_goal|prolog_load_context|prolog_load_file|prolog_nodebug|prolog_skip_frame|prolog_skip_level|prolog_stack_property|prolog_to_os_filename|prolog_trace_interception|prompt|protocol|protocola|protocolling|put|put_attr|put_attrs|put_byte|put_char|put_code|put_dict|qcompile|qsave_program|random|random_float|random_property|rational|rationalize|rdf_write_xml|read|read_clause|read_history|read_link|read_pending_chars|read_pending_codes|read_string|read_table_fields|read_table_record|read_table_record_data|read_term|read_term_from_atom|recorda|recorded|recordz|redefine_system_predicate|reexport|reload_library_index|rename_file|require|reset|reset_profiler|resource|retract|retractall|round|run_tests|running_tests|same_file|same_term|see|seeing|seek|seen|select_dict|set_end_of_stream|set_flag|set_input|set_locale|set_module|set_output|set_prolog_IO|set_prolog_flag|set_prolog_stack|set_random|set_sgml_parser|set_stream|set_stream_position|set_test_options|setarg|setenv|setlocale|setof|sgml_parse|shell|shift|show_coverage|show_profile|sign|sin|sinh|size_file|skip|sleep|sort|source_exports|source_file|source_file_property|source_location|split_string|spy|sqrt|stamp_date_time|statistics|stream_pair|stream_position_data|stream_property|string|string_chars|string_code|string_codes|string_concat|string_length|string_lower|string_upper|strip_module|style_check|sub_atom|sub_atom_icasechk|sub_string|subsumes_term|succ|suite|swritef|tab|table_previous_record|table_start_of_record|table_version|table_window|tan|tanh|tell|telling|term_attvars|term_expansion|term_hash|term_string|term_subsumer|term_to_atom|term_variables|test|test_report|text_to_string|thread_at_exit|thread_create|thread_detach|thread_exit|thread_get_message|thread_join|thread_message_hook|thread_peek_message|thread_property|thread_self|thread_send_message|thread_setconcurrency|thread_signal|thread_statistics|throw|time|time_file|tmp_file|tmp_file_stream|tokenize_atom|told|trace|tracing|trie_destroy|trie_gen|trie_insert|trie_insert_new|trie_lookup|trie_new|trie_property|trie_term|trim_stacks|truncate|tty_get_capability|tty_goto|tty_put|tty_size|ttyflush|unaccent_atom|unifiable|unify_with_occurs_check|unix|unknown|unload_file|unsetenv|upcase_atom|use_module|var|var_number|var_property|variant_hash|version|visible|wait_for_input|when|wildcard_match|win_add_dll_directory|win_exec|win_folder|win_has_menu|win_insert_menu|win_insert_menu_item|win_registry_get_value|win_remove_dll_directory|win_shell|win_window_pos|window_title|with_mutex|with_output_to|working_directory|write|write_canonical|write_length|write_term|writef|writeln|writeq|xml_is_dom|xml_to_rdf|zopen)\\b",name:"support.function.builtin.prolog"}]},comments:{patterns:[{match:"%.*",name:"comment.line.percent-sign.prolog"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.prolog"}},end:"\\*/",name:"comment.block.prolog"}]},constants:{patterns:[{match:"(?<![a-zA-Z]|/)(\\d+|(\\d+\\.\\d+))",name:"constant.numeric.integer.prolog"},{match:'".*?"',name:"string.quoted.double.prolog"}]},controlandkeywords:{patterns:[{begin:"(->)",beginCaptures:{1:{name:"keyword.control.if.prolog"}},end:"(;)",endCaptures:{1:{name:"keyword.control.else.prolog"}},name:"meta.if.prolog",patterns:[{include:"$self"},{include:"#builtin"},{include:"#comments"},{include:"#atom"},{include:"#variable"},{match:".",name:"meta.if.body.prolog"}]},{match:"!",name:"keyword.control.cut.prolog"},{match:"(\\s(is)\\s)|=:=|=\\.\\.|=?\\\\?=|\\\\\\+|@?>|@?=?<|\\+|\\*|\\-",name:"keyword.operator.prolog"}]},variable:{patterns:[{match:"(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*",name:"variable.parameter.uppercase.prolog"},{match:"(?<!\\w)_",name:"variable.language.anonymous.prolog"}]}},_="source.prolog",n={displayName:e,fileTypes:t,name:r,patterns:a,repository:o,scopeName:_};export{n as default,e as displayName,t as fileTypes,r as name,a as patterns,o as repository,_ as scopeName}; diff --git a/lib/dist/grammar/proto.mjs b/lib/dist/grammar/proto.mjs new file mode 100644 index 0000000..db2a179 --- /dev/null +++ b/lib/dist/grammar/proto.mjs @@ -0,0 +1 @@ +var e="Protocol Buffer 3",t=["proto"],n="proto",o=[{include:"#comments"},{include:"#syntax"},{include:"#package"},{include:"#import"},{include:"#optionStmt"},{include:"#message"},{include:"#enum"},{include:"#service"}],r={comments:{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.proto"},{begin:"//",end:"$\\n?",name:"comment.line.double-slash.proto"}]},constants:{match:"\\b(true|false|max|[A-Z_]+)\\b",name:"constant.language.proto"},enum:{begin:"(enum)(\\s+)([A-Za-z][A-Za-z0-9_]*)(\\s*)(\\{)?",beginCaptures:{1:{name:"keyword.other.proto"},3:{name:"entity.name.class.proto"}},end:"\\}",patterns:[{include:"#reserved"},{include:"#optionStmt"},{include:"#comments"},{begin:"([A-Za-z][A-Za-z0-9_]*)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",beginCaptures:{1:{name:"variable.other.proto"},2:{name:"keyword.operator.assignment.proto"},3:{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]}]},field:{begin:"\\s*(optional|repeated|required)?\\s*\\b([\\w.]+)\\s+(\\w+)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",beginCaptures:{1:{name:"storage.modifier.proto"},2:{name:"storage.type.proto"},3:{name:"variable.other.proto"},4:{name:"keyword.operator.assignment.proto"},5:{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]},fieldOptions:{begin:"\\[",end:"\\]",patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"},{include:"#optionName"}]},ident:{match:"[A-Za-z][A-Za-z0-9_]*",name:"entity.name.class.proto"},import:{captures:{1:{name:"keyword.other.proto"},2:{name:"keyword.other.proto"},3:{name:"string.quoted.double.proto.import"},4:{name:"punctuation.terminator.proto"}},match:'\\s*(import)\\s+(weak|public)?\\s*("[^"]+")\\s*(;)'},kv:{begin:"(\\w+)\\s*(:)",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"punctuation.separator.key-value.proto"}},end:"(;)|,|(?=[}/_a-zA-Z])",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"}]},mapfield:{begin:"\\s*(map)\\s*(<)\\s*([\\w.]+)\\s*,\\s*([\\w.]+)\\s*(>)\\s+(\\w+)\\s*(=)\\s*(\\d+)",beginCaptures:{1:{name:"storage.type.proto"},2:{name:"punctuation.definition.typeparameters.begin.proto"},3:{name:"storage.type.proto"},4:{name:"storage.type.proto"},5:{name:"punctuation.definition.typeparameters.end.proto"},6:{name:"variable.other.proto"},7:{name:"keyword.operator.assignment.proto"},8:{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]},message:{begin:"(message|extend)(\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\s*)(\\{)?",beginCaptures:{1:{name:"keyword.other.proto"},3:{name:"entity.name.class.message.proto"}},end:"\\}",patterns:[{include:"#reserved"},{include:"$self"},{include:"#enum"},{include:"#optionStmt"},{include:"#comments"},{include:"#oneof"},{include:"#field"},{include:"#mapfield"}]},method:{begin:"(rpc)\\s+([A-Za-z][A-Za-z0-9_]*)",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"entity.name.function"}},end:"\\}|(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#comments"},{include:"#optionStmt"},{include:"#rpcKeywords"},{include:"#ident"}]},number:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",name:"constant.numeric.proto"},oneof:{begin:"(oneof)\\s+([A-Za-z][A-Za-z0-9_]*)\\s*\\{?",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"variable.other.proto"}},end:"\\}",patterns:[{include:"#optionStmt"},{include:"#comments"},{include:"#field"}]},optionName:{captures:{1:{name:"support.other.proto"},2:{name:"support.other.proto"},3:{name:"support.other.proto"}},match:"(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*"},optionStmt:{begin:"(option)\\s+(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*\\s*(=)",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"support.other.proto"},3:{name:"support.other.proto"},4:{name:"support.other.proto"},5:{name:"keyword.operator.assignment.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"}]},package:{captures:{1:{name:"keyword.other.proto"},2:{name:"string.unquoted.proto.package"},3:{name:"punctuation.terminator.proto"}},match:"\\s*(package)\\s+([\\w.]+)\\s*(;)"},reserved:{begin:"(reserved)\\s+",beginCaptures:{1:{name:"keyword.other.proto"}},end:"(;)",endCaptures:{1:{name:"punctuation.terminator.proto"}},patterns:[{captures:{1:{name:"constant.numeric.proto"},3:{name:"keyword.other.proto"},4:{name:"constant.numeric.proto"}},match:"(\\d+)(\\s+(to)\\s+(\\d+))?"},{include:"#string"}]},rpcKeywords:{match:"\\b(stream|returns)\\b",name:"keyword.other.proto"},service:{begin:"(service)\\s+([A-Za-z][A-Za-z0-9_.]*)\\s*\\{?",beginCaptures:{1:{name:"keyword.other.proto"},2:{name:"entity.name.class.message.proto"}},end:"\\}",patterns:[{include:"#comments"},{include:"#optionStmt"},{include:"#method"}]},storagetypes:{match:"\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b",name:"storage.type.proto"},string:{match:"('([^']|\\')*')|(\"([^\"]|\\\")*\")",name:"string.quoted.double.proto"},subMsgOption:{begin:"\\{",end:"\\}",patterns:[{include:"#kv"},{include:"#comments"}]},syntax:{captures:{1:{name:"keyword.other.proto"},2:{name:"keyword.operator.assignment.proto"},3:{name:"string.quoted.double.proto.syntax"},4:{name:"punctuation.terminator.proto"}},match:'\\s*(syntax)\\s*(=)\\s*("proto[23]")\\s*(;)'}},a="source.proto",s={displayName:e,fileTypes:t,name:n,patterns:o,repository:r,scopeName:a};export{s as default,e as displayName,t as fileTypes,n as name,o as patterns,r as repository,a as scopeName}; diff --git a/lib/dist/grammar/pug.mjs b/lib/dist/grammar/pug.mjs new file mode 100644 index 0000000..c067d83 --- /dev/null +++ b/lib/dist/grammar/pug.mjs @@ -0,0 +1 @@ +var e="Pug",n="pug",t=[{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:"\x3c!--",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"}]}],a={babel_parens:{begin:"\\(",end:"\\)|(({\\s*)?$)",patterns:[{include:"#babel_parens"},{include:"source.js"}]},blocks_and_includes:{captures:{1:{name:"storage.type.import.include.pug"},4:{name:"variable.control.import.include.pug"}},comment:"Template blocks and includes.",match:"(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$",name:"meta.first-class.pug"},case_conds:{begin:"(default|when)((\\s+|(?=:))|$)",captures:{1:{name:"storage.type.function.pug"}},comment:"Pug case conditionals.",end:"$",name:"meta.control.flow.pug",patterns:[{begin:"\\G(?!:)",end:"(?=:\\s+)|$",name:"js.embedded.control.flow.pug",patterns:[{include:"#case_when_paren"},{include:"source.js"}]},{begin:":\\s+",end:"$",name:"tag.case.control.flow.pug",patterns:[{include:"#complete_tag"}]}]},case_when_paren:{begin:"\\(",end:"\\)",name:"js.when.control.flow.pug",patterns:[{include:"#case_when_paren"},{match:":",name:"invalid.illegal.name.tag.pug"},{include:"source.js"}]},complete_tag:{begin:"(?=[\\w.#])|(:\\s*)",end:"(\\.?$)|(?=:.)",endCaptures:{1:{name:"storage.type.function.pug.dot-block-dot"}},patterns:[{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{match:"(?<=:)\\w.*$",name:"invalid.illegal.name.tag.pug"},{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{captures:{2:{name:"invalid.illegal.end.tag.pug"},4:{name:"invalid.illegal.end.tag.pug"}},match:"((\\.)\\s+$)|((:)\\s*$)"},{include:"#printed_expression"},{include:"#tag_text"}]},embedded_html:{begin:"(?=<[^>]*>)",end:"$|(?=>)",name:"html",patterns:[{include:"text.html.basic"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},flow_control:{begin:"(for|if|else if|else|until|while|unless|case)(\\s+|$)",captures:{1:{name:"storage.type.function.pug"}},comment:"Pug control flow.",end:"$",name:"meta.control.flow.pug",patterns:[{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},flow_control_each:{begin:"(each)(\\s+|$)",captures:{1:{name:"storage.type.function.pug"}},end:"$",name:"meta.control.flow.pug.each",patterns:[{match:"([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?",name:"variable.other.pug.each-var"},{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},html_entity:{patterns:[{match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.text.pug"},{match:"[<>&]",name:"invalid.illegal.html_entity.text.pug"}]},inline_pug:{begin:"(?<!\\\\)(#\\[)",captures:{1:{name:"entity.name.function.pug"},2:{name:"entity.name.function.pug"}},end:"(\\])",name:"inline.pug",patterns:[{include:"#inline_pug"},{include:"#mixin_call"},{begin:"(?<!\\])(?=[\\w.#])|(:\\s*)",end:"(?=\\]|(:.)|=|\\s)",name:"tag.inline.pug",patterns:[{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{include:"#inline_pug"},{match:"\\[",name:"invalid.illegal.tag.pug"}]},{include:"#unbuffered_code"},{include:"#printed_expression"},{match:"\\[",name:"invalid.illegal.tag.pug"},{include:"#inline_pug_text"}]},inline_pug_text:{begin:"",end:"(?=\\])",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#inline_pug_text"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},interpolated_error:{match:"(?<!\\\\)[#!]\\{(?=[^}]*$)",name:"invalid.illegal.tag.pug"},interpolated_value:{begin:"(?<!\\\\)[#!]\\{(?=.*?\\})",end:"\\}",name:"string.interpolated.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]},js_braces:{begin:"\\{",end:"\\}",patterns:[{include:"#js_braces"},{include:"source.js"}]},js_brackets:{begin:"\\[",end:"\\]",patterns:[{include:"#js_brackets"},{include:"source.js"}]},js_parens:{begin:"\\(",end:"\\)",patterns:[{include:"#js_parens"},{include:"source.js"}]},mixin_call:{begin:"((?:mixin\\s+)|\\+)([\\w-]+)",beginCaptures:{1:{name:"storage.type.function.pug"},2:{name:"meta.tag.other entity.name.function.pug"}},end:"(?!\\()|$",patterns:[{begin:"(?<!\\))\\(",end:"\\)",name:"args.mixin.pug",patterns:[{include:"#js_parens"},{captures:{1:{name:"meta.tag.other entity.other.attribute-name.tag.pug"}},match:"([^\\s(),=/]+)\\s*=\\s*"},{include:"source.js"}]},{include:"#tag_attributes"}]},mixin_definition:{captures:{1:{name:"storage.type.function.pug"},2:{name:"meta.tag.other entity.name.function.pug"},3:{name:"punctuation.definition.parameters.begin.js"},4:{name:"variable.parameter.function.js"},5:{name:"punctuation.definition.parameters.begin.js"}},match:"(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$"},printed_expression:{begin:"(!?\\=)\\s*",captures:{1:{name:"constant"}},end:"(?=\\])|$",name:"source.js",patterns:[{include:"#js_brackets"},{include:"source.js"}]},tag_attribute_name:{captures:{1:{name:"entity.other.attribute-name.tag.pug"}},match:"([^\\s(),=/!]+)\\s*"},tag_attribute_name_paren:{begin:"\\(\\s*",end:"\\)",name:"entity.other.attribute-name.tag.pug",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"}]},tag_attributes:{begin:"(\\(\\s*)",captures:{1:{name:"constant.name.attribute.tag.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"},{match:"!(?!=)",name:"invalid.illegal.tag.pug"},{begin:"=\\s*",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]},{begin:"(?<=[%&*\\-+~|<>:?/])\\s+",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value2",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]}]},tag_classes:{captures:{1:{name:"invalid.illegal.tag.pug"}},match:"\\.([^\\w-])?[\\w-]*",name:"meta.selector.css entity.other.attribute-name.class.css.pug"},tag_id:{match:"#[\\w-]+",name:"meta.selector.css entity.other.attribute-name.id.css.pug"},tag_mixin_attributes:{begin:"(&attributes\\()",captures:{1:{name:"entity.name.function.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{match:"attributes(?=\\))",name:"storage.type.keyword.pug"},{include:"source.js"}]},tag_name:{begin:"([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))",end:"(\\G(?<!\\5[^\\w-]))|\\}|$",name:"meta.tag.other entity.name.tag.pug",patterns:[{begin:"\\G(?<=\\{)",end:"(?=\\})",name:"meta.tag.other entity.name.tag.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]}]},tag_text:{begin:"(?=.)",end:"$",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},unbuffered_code:{begin:"(-|(([a-zA-Z0-9_]+)\\s+=))",beginCaptures:{3:{name:"variable.parameter.javascript.embedded.pug"}},comment:"name = function() {}",end:"(?=\\])|(({\\s*)?$)",name:"source.js",patterns:[{include:"#js_brackets"},{include:"#babel_parens"},{include:"source.js"}]}},i="text.pug",s={displayName:"Pug",name:"pug",patterns:t,repository:a,scopeName:i};export{s as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/puppet.mjs b/lib/dist/grammar/puppet.mjs new file mode 100644 index 0000000..9bbf5ea --- /dev/null +++ b/lib/dist/grammar/puppet.mjs @@ -0,0 +1 @@ +var e="Puppet",n=["pp"],t="(^\\s*/\\*|(\\{|\\[|\\()\\s*$)",a="(\\*/|^\\s*(\\}|\\]|\\)))",p="puppet",i=[{include:"#line_comment"},{include:"#constants"},{begin:"^\\s*/\\*",end:"\\*/",name:"comment.block.puppet"},{begin:"\\b(node)\\b",captures:{1:{name:"storage.type.puppet"},2:{name:"entity.name.type.class.puppet"}},end:"(?={)",name:"meta.definition.class.puppet",patterns:[{match:"\\bdefault\\b",name:"keyword.puppet"},{include:"#strings"},{include:"#regex-literal"}]},{begin:"\\b(class)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",captures:{1:{name:"storage.type.puppet"},2:{name:"entity.name.type.class.puppet"}},end:"(?={)",name:"meta.definition.class.puppet",patterns:[{begin:"\\b(inherits)\\b\\s+",captures:{1:{name:"storage.modifier.puppet"}},end:"(?=\\(|{)",name:"meta.definition.class.inherits.puppet",patterns:[{match:'\\b((?:[-_A-Za-z0-9".]+::)*[-_A-Za-z0-9".]+)\\b',name:"support.type.puppet"}]},{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:"^\\s*(plan)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",captures:{1:{name:"storage.type.puppet"},2:{name:"entity.name.type.plan.puppet"}},end:"(?={)",name:"meta.definition.plan.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:"^\\s*(define|function)\\s+((?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*(\\()",captures:{1:{name:"storage.type.function.puppet"},2:{name:"entity.name.function.puppet"}},end:"(?={)",name:"meta.function.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{captures:{1:{name:"keyword.control.puppet"}},match:"\\b(case|else|elsif|if|unless)(?!::)\\b"},{include:"#keywords"},{include:"#resource-definition"},{include:"#heredoc"},{include:"#strings"},{include:"#puppet-datatypes"},{include:"#array"},{match:'((\\$?)"?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*"?):(?=\\s+|$)',name:"entity.name.section.puppet"},{include:"#numbers"},{include:"#variable"},{begin:"\\b(import|include|contain|require)\\s+(?!.*=>)",beginCaptures:{1:{name:"keyword.control.import.include.puppet"}},contentName:"variable.parameter.include.puppet",end:"(?=\\s|$)",name:"meta.include.puppet"},{match:"\\b\\w+\\s*(?==>)\\s*",name:"constant.other.key.puppet"},{match:"(?<={)\\s*\\w+\\s*(?=})",name:"constant.other.bareword.puppet"},{match:"\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\b(?!.*{)",name:"support.function.puppet"},{match:"=>",name:"punctuation.separator.key-value.puppet"},{match:"->",name:"keyword.control.orderarrow.puppet"},{match:"~>",name:"keyword.control.notifyarrow.puppet"},{include:"#regex-literal"}],u={array:{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.array.begin.puppet"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.puppet"}},name:"meta.array.puppet",patterns:[{match:"\\s*,\\s*"},{include:"#parameter-default-types"},{include:"#line_comment"}]},constants:{patterns:[{match:"\\b(absent|directory|false|file|present|running|stopped|true)\\b(?!.*{)",name:"constant.language.puppet"}]},"double-quoted-string":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.double.interpolated.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},escaped_char:{match:"\\\\.",name:"constant.character.escape.puppet"},function_call:{begin:"([a-zA-Z_][a-zA-Z0-9_]*)(\\()",end:"\\)",name:"meta.function-call.puppet",patterns:[{include:"#parameter-default-types"},{match:",",name:"punctuation.separator.parameters.puppet"}]},hash:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.hash.begin.puppet"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.hash.end.puppet"}},name:"meta.hash.puppet",patterns:[{match:"\\b\\w+\\s*(?==>)\\s*",name:"constant.other.key.puppet"},{include:"#parameter-default-types"},{include:"#line_comment"}]},heredoc:{patterns:[{begin:'@\\([[:blank:]]*"([^:\\/) \\t]+)"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)',beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:"^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.interpolated.heredoc.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},{begin:"@\\([[:blank:]]*([^:\\/) \\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)",beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:"^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.unquoted.heredoc.puppet"}]},interpolated_puppet:{patterns:[{begin:"(\\${)(\\d+)",beginCaptures:{1:{name:"punctuation.section.embedded.begin.puppet"},2:{name:"source.puppet variable.other.readwrite.global.pre-defined.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"(\\${)(_[a-zA-Z0-9_]*)",beginCaptures:{1:{name:"punctuation.section.embedded.begin.puppet"},2:{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"(\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)",beginCaptures:{1:{name:"punctuation.section.embedded.begin.puppet"},2:{name:"source.puppet variable.other.readwrite.global.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"\\${",beginCaptures:{0:{name:"punctuation.section.embedded.begin.puppet"}},contentName:"source.puppet",end:"}",endCaptures:{0:{name:"punctuation.section.embedded.end.puppet"}},name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]}]},keywords:{captures:{1:{name:"keyword.puppet"}},match:"\\b(undef)\\b"},line_comment:{patterns:[{captures:{1:{name:"comment.line.number-sign.puppet"},2:{name:"punctuation.definition.comment.puppet"}},match:"^((#).*$\\n?)",name:"meta.comment.full-line.puppet"},{captures:{1:{name:"punctuation.definition.comment.puppet"}},match:"(#).*$\\n?",name:"comment.line.number-sign.puppet"}]},nested_braces:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:"\\{",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:"\\[",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_parens:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:"\\(",captures:{1:{name:"punctuation.section.scope.puppet"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},numbers:{patterns:[{comment:"HEX 0x 0-f",match:"(?<!\\w|\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\w|\\d)",name:"constant.numeric.hexadecimal.puppet"},{comment:"INTEGERS [(+|-)] digits [e [(+|-)] digits]",match:"(?<!\\w|\\.)([-+]?)(?<!\\d)\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d|\\.)",name:"constant.numeric.integer.puppet"},{comment:"FLOAT [(+|-)] digits . digits [e [(+|-)] digits]",match:"(?<!\\w)([-+]?)\\d+\\.\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d)",name:"constant.numeric.integer.puppet"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variable"},{include:"#hash"},{include:"#array"},{include:"#function_call"},{include:"#constants"},{include:"#puppet-datatypes"}]},"puppet-datatypes":{patterns:[{comment:"Puppet Data type",match:"(?<![a-zA-Z\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])",name:"storage.type.puppet"}]},"regex-literal":{comment:"Puppet Regular expression literal without interpolation",match:"(\\/)(.+?)(?:[^\\\\]\\/)",name:"string.regexp.literal.puppet"},"resource-definition":{begin:"(?:^|\\b)((?#Toplevel Bareword)::[a-z][a-z0-9_]*|(?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*({)\\s*",beginCaptures:{1:{name:"meta.definition.resource.puppet storage.type.puppet"}},contentName:"entity.name.section.puppet",end:":",patterns:[{include:"#strings"},{include:"#variable"},{include:"#array"}]},"resource-parameters":{patterns:[{captures:{1:{name:"variable.other.puppet"},2:{name:"punctuation.definition.variable.puppet"}},match:"((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=,|\\))",name:"meta.function.argument.puppet"},{begin:"((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*(=)\\s*)\\s*",captures:{1:{name:"variable.other.puppet"},2:{name:"punctuation.definition.variable.puppet"},3:{name:"keyword.operator.assignment.puppet"}},end:"(?=,|\\))",name:"meta.function.argument.puppet",patterns:[{include:"#parameter-default-types"}]}]},"single-quoted-string":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.puppet"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.single.puppet",patterns:[{include:"#escaped_char"}]},strings:{patterns:[{include:"#double-quoted-string"},{include:"#single-quoted-string"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.puppet"}},match:"(\\$)(\\d+)",name:"variable.other.readwrite.global.pre-defined.puppet"},{captures:{1:{name:"punctuation.definition.variable.puppet"}},match:"(\\$)_[a-zA-Z0-9_]*",name:"variable.other.readwrite.global.puppet"},{captures:{1:{name:"punctuation.definition.variable.puppet"}},match:"(\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)",name:"variable.other.readwrite.global.puppet"}]}},r="source.puppet",s={displayName:e,fileTypes:n,foldingStartMarker:t,foldingStopMarker:a,name:p,patterns:i,repository:u,scopeName:r};export{s as default,e as displayName,n as fileTypes,t as foldingStartMarker,a as foldingStopMarker,p as name,i as patterns,u as repository,r as scopeName}; diff --git a/lib/dist/grammar/purescript.mjs b/lib/dist/grammar/purescript.mjs new file mode 100644 index 0000000..2f23fb7 --- /dev/null +++ b/lib/dist/grammar/purescript.mjs @@ -0,0 +1 @@ +var e="PureScript",t=["purs"],p="purescript",r=[{captures:{1:{name:"punctuation.definition.entity.purescript"},2:{name:"punctuation.definition.entity.purescript"}},match:"(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)",name:"keyword.operator.function.infix.purescript"},{begin:"^\\s*\\b(module)(?!')\\b",beginCaptures:{1:{name:"keyword.other.purescript"}},end:"(where)",endCaptures:{1:{name:"keyword.other.purescript"}},name:"meta.declaration.module.purescript",patterns:[{include:"#comments"},{include:"#module_name"},{include:"#module_exports"},{match:"[a-z]+",name:"invalid.purescript"}]},{begin:"^\\s*\\b(class)(?!')\\b",beginCaptures:{1:{name:"storage.type.class.purescript"}},end:"\\b(where)\\b|$",endCaptures:{1:{name:"keyword.other.purescript"}},name:"meta.declaration.typeclass.purescript",patterns:[{include:"#type_signature"}]},{begin:"^\\s*\\b(else\\s+)?(derive\\s+)?(newtype\\s+)?(instance)(?!')\\b",beginCaptures:{1:{name:"keyword.other.purescript"},2:{name:"keyword.other.purescript"},3:{name:"keyword.other.purescript"},4:{name:"keyword.other.purescript"}},contentName:"meta.type-signature.purescript",end:"\\b(where)\\b|$",endCaptures:{1:{name:"keyword.other.purescript"}},name:"meta.declaration.instance.purescript",patterns:[{include:"#type_signature"}]},{begin:"^(\\s*)(foreign)\\s+(import)\\s+(data)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",beginCaptures:{2:{name:"keyword.other.purescript"},3:{name:"keyword.other.purescript"},4:{name:"keyword.other.purescript"},5:{name:"entity.name.type.purescript"},6:{name:"keyword.other.double-colon.purescript"}},contentName:"meta.kind-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.foreign.data.purescript",patterns:[{include:"#double_colon"},{include:"#kind_signature"}]},{begin:"^(\\s*)(foreign)\\s+(import)\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",beginCaptures:{2:{name:"keyword.other.purescript"},3:{name:"keyword.other.purescript"},4:{name:"entity.name.function.purescript"}},contentName:"meta.type-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.foreign.purescript",patterns:[{include:"#double_colon"},{include:"#type_signature"}]},{begin:"^\\s*\\b(import)(?!')\\b",beginCaptures:{1:{name:"keyword.other.purescript"}},end:"($|(?=--))",name:"meta.import.purescript",patterns:[{include:"#module_name"},{include:"#module_exports"},{captures:{1:{name:"keyword.other.purescript"}},match:"\\b(as|hiding)\\b"}]},{begin:"^(\\s)*(data|newtype)\\s+(.+?)\\s*(?=\\=|$)",beginCaptures:{2:{name:"storage.type.data.purescript"},3:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.declaration.type.data.purescript",patterns:[{include:"#comments"},{captures:{0:{name:"keyword.operator.assignment.purescript"}},match:"="},{captures:{1:{patterns:[{include:"#data_ctor"}]},2:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},match:"(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))"},{captures:{0:{name:"punctuation.separator.pipe.purescript"}},match:"\\|"},{include:"#record_types"}]},{begin:"^(\\s)*(type)\\s+(.+?)\\s*(?=\\=|$)",beginCaptures:{2:{name:"storage.type.data.purescript"},3:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},contentName:"meta.type-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.declaration.type.type.purescript",patterns:[{captures:{0:{name:"keyword.operator.assignment.purescript"}},match:"="},{include:"#type_signature"},{include:"#record_types"},{include:"#comments"}]},{match:"^\\s*\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\s+import)?(\\s+data)?)(?!')\\b",name:"keyword.other.purescript"},{match:"\\?(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",name:"entity.name.function.typed-hole.purescript"},{match:"^\\s*\\b(data|type|newtype)(?!')\\b",name:"storage.type.purescript"},{match:"\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\s*(:|=)))\\b",name:"keyword.control.purescript"},{match:"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)",name:"constant.numeric.hex.purescript"},{captures:{0:{name:"constant.numeric.decimal.purescript"},1:{name:"meta.delimiter.decimal.period.purescript"},2:{name:"meta.delimiter.decimal.period.purescript"},3:{name:"meta.delimiter.decimal.period.purescript"},4:{name:"meta.delimiter.decimal.period.purescript"},5:{name:"meta.delimiter.decimal.period.purescript"},6:{name:"meta.delimiter.decimal.period.purescript"}},match:"(?x)\n(?<!\\$)(?:\n(?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)|\n(?:\\b[0-9]+[eE][+-]?[0-9]+\\b)|\n(?:\\b[0-9]+(\\.)[0-9]+\\b)|\n(?:\\b[0-9]+\\b(?!\\.))\n)(?!\\$)",name:"constant.numeric.decimal.purescript"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.purescript"},{match:"\\b(([0-9]+_?)*[0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b",name:"constant.numeric.purescript"},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.purescript"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.purescript"}},name:"string.quoted.triple.purescript"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.purescript"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.purescript"}},name:"string.quoted.double.purescript",patterns:[{include:"#characters"},{begin:"\\\\\\s",beginCaptures:{0:{name:"markup.other.escape.newline.begin.purescript"}},end:"\\\\",endCaptures:{0:{name:"markup.other.escape.newline.end.purescript"}},patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.purescript"}]}]},{match:"\\\\$",name:"markup.other.escape.newline.purescript"},{captures:{1:{name:"punctuation.definition.string.begin.purescript"},2:{patterns:[{include:"#characters"}]},7:{name:"punctuation.definition.string.end.purescript"}},match:"(')((?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_])))(')",name:"string.quoted.single.purescript"},{include:"#function_type_declaration"},{captures:{1:{patterns:[{include:"$self"}]},2:{name:"keyword.other.double-colon.purescript"},3:{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},match:"\\((?<paren>(?:[^()]|\\(\\g<paren>\\))*)(::|∷)(?<paren2>(?:[^()]|\\(\\g<paren2>\\))*)\\)"},{begin:"^(\\s*)(?:(::|∷))",beginCaptures:{2:{name:"keyword.other.double-colon.purescript"}},end:"^(?!\\1[ \\t]*|[ \\t]*$)",patterns:[{include:"#type_signature"}]},{include:"#data_ctor"},{include:"#comments"},{include:"#infix_op"},{match:"\\<-|-\\>",name:"keyword.other.arrow.purescript"},{match:"[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+",name:"keyword.operator.purescript"},{match:",",name:"punctuation.separator.comma.purescript"}],n={block_comment:{patterns:[{applyEndPatternLast:1,begin:"\\{-\\s*\\|",beginCaptures:{0:{name:"punctuation.definition.comment.documentation.purescript"}},end:"-\\}",endCaptures:{0:{name:"punctuation.definition.comment.documentation.purescript"}},name:"comment.block.documentation.purescript",patterns:[{include:"#block_comment"}]},{applyEndPatternLast:1,begin:"\\{-",beginCaptures:{0:{name:"punctuation.definition.comment.purescript"}},end:"-\\}",name:"comment.block.purescript",patterns:[{include:"#block_comment"}]}]},characters:{patterns:[{captures:{1:{name:"constant.character.escape.purescript"},2:{name:"constant.character.escape.octal.purescript"},3:{name:"constant.character.escape.hexadecimal.purescript"},4:{name:"constant.character.escape.control.purescript"}},match:"(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))"}]},class_constraint:{patterns:[{captures:{1:{patterns:[{match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",name:"entity.name.type.purescript"}]},2:{patterns:[{include:"#type_name"},{include:"#generic_type"}]}},match:"(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))",name:"meta.class-constraint.purescript"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=--+\\s+\\|)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.purescript"}},end:"(?!\\G)",patterns:[{begin:"(--+)\\s+(\\|)",beginCaptures:{1:{name:"punctuation.definition.comment.purescript"},2:{name:"punctuation.definition.comment.documentation.purescript"}},end:"\\n",name:"comment.line.double-dash.documentation.purescript"}]},{begin:"(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.purescript"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{0:{name:"punctuation.definition.comment.purescript"}},end:"\\n",name:"comment.line.double-dash.purescript"}]},{include:"#block_comment"}]},data_ctor:{patterns:[{match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",name:"entity.name.tag.purescript"}]},double_colon:{patterns:[{match:"(?:::|∷)",name:"keyword.other.double-colon.purescript"}]},function_type_declaration:{patterns:[{begin:"^(\\s*)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(?:(::|∷)(?!.*<-))",beginCaptures:{2:{name:"entity.name.function.purescript"},3:{name:"keyword.other.double-colon.purescript"}},contentName:"meta.type-signature.purescript",end:"^(?!\\1[ \\t]|[ \\t]*$)",name:"meta.function.type-declaration.purescript",patterns:[{include:"#double_colon"},{include:"#type_signature"}]}]},generic_type:{patterns:[{match:"\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",name:"variable.other.generic-type.purescript"}]},infix_op:{patterns:[{match:"(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))",name:"entity.name.function.infix.purescript"}]},kind_signature:{patterns:[{match:"\\*",name:"keyword.other.star.purescript"},{match:"!",name:"keyword.other.exclaimation-point.purescript"},{match:"#",name:"keyword.other.pound-sign.purescript"},{match:"->|→",name:"keyword.other.arrow.purescript"}]},module_exports:{patterns:[{begin:"\\(",end:"\\)",name:"meta.declaration.exports.purescript",patterns:[{include:"#comments"},{match:"\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",name:"entity.name.function.purescript"},{include:"#type_name"},{match:",",name:"punctuation.separator.comma.purescript"},{include:"#infix_op"},{match:"\\(.*?\\)",name:"meta.other.constructor-list.purescript"}]}]},module_name:{patterns:[{match:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)*[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.?",name:"support.other.module.purescript"}]},record_field_declaration:{patterns:[{begin:"([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)",beginCaptures:{1:{patterns:[{match:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",name:"entity.other.attribute-name.purescript"}]},2:{name:"keyword.other.double-colon.purescript"}},contentName:"meta.type-signature.purescript",end:"(?=([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)|})",name:"meta.record-field.type-declaration.purescript",patterns:[{include:"#type_signature"},{include:"#record_types"}]}]},record_types:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"keyword.operator.type.record.begin.purescript"}},end:"\\}",endCaptures:{0:{name:"keyword.operator.type.record.end.purescript"}},name:"meta.type.record.purescript",patterns:[{match:",",name:"punctuation.separator.comma.purescript"},{include:"#record_field_declaration"},{include:"#comments"}]}]},type_name:{patterns:[{match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",name:"entity.name.type.purescript"}]},type_signature:{patterns:[{captures:{1:{patterns:[{include:"#class_constraint"}]},4:{name:"keyword.other.big-arrow.purescript"}},match:"(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇐|⇒)))",name:"meta.class-constraints.purescript"},{captures:{1:{patterns:[{include:"#class_constraint"}]},4:{name:"keyword.other.big-arrow.purescript"}},match:"((?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇐|⇒)",name:"meta.class-constraints.purescript"},{match:"->|→",name:"keyword.other.arrow.purescript"},{match:"=>|⇒",name:"keyword.other.big-arrow.purescript"},{match:"<=|⇐",name:"keyword.other.big-arrow-left.purescript"},{match:"forall|∀",name:"keyword.other.forall.purescript"},{include:"#generic_type"},{include:"#type_name"},{include:"#comments"}]}},a="source.purescript",i={displayName:e,fileTypes:t,name:p,patterns:r,repository:n,scopeName:a};export{i as default,e as displayName,t as fileTypes,p as name,r as patterns,n as repository,a as scopeName}; diff --git a/lib/dist/grammar/python.mjs b/lib/dist/grammar/python.mjs new file mode 100644 index 0000000..eed7d9a --- /dev/null +++ b/lib/dist/grammar/python.mjs @@ -0,0 +1 @@ +var e="Python",n="python",t=[{include:"#statement"},{include:"#expression"}],a={"annotated-parameter":{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (:)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:"=(?!=)",name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:"(?x)\n<<= | >>= | //= | \\*\\*=\n| \\+= | -= | /= | @=\n| \\*= | %= | ~= | \\^= | &= | \\|=\n| =(?!=)\n",name:"keyword.operator.assignment.python"},backticks:{begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",name:"invalid.deprecated.backtick.python",patterns:[{include:"#expression"}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:"(?x) (?<!\\.) \\b(\n(\nArithmetic | Assertion | Attribute | Buffer | BlockingIO\n| BrokenPipe | ChildProcess\n| (Connection (Aborted | Refused | Reset)?)\n| EOF | Environment | FileExists | FileNotFound\n| FloatingPoint | IO | Import | Indentation | Index | Interrupted\n| IsADirectory | NotADirectory | Permission | ProcessLookup\n| Timeout\n| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n| Reference | Runtime | Recursion | Syntax | System\n| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n| Value | Windows | ZeroDivision | ModuleNotFound\n) Error\n|\n((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n| Unicode | Bytes | Resource\n)? Warning\n|\nSystemExit | Stop(Async)?Iteration\n| KeyboardInterrupt\n| GeneratorExit | (Base)?Exception\n)\\b\n",name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:"(?x)\n(?<!\\.) \\b(\n__import__ | abs | aiter | all | any | anext | ascii | bin\n| breakpoint | callable | chr | compile | copyright | credits\n| delattr | dir | divmod | enumerate | eval | exec | exit\n| filter | format | getattr | globals | hasattr | hash | help\n| hex | id | input | isinstance | issubclass | iter | len\n| license | locals | map | max | memoryview | min | next\n| oct | open | ord | pow | print | quit | range | reload | repr\n| reversed | round | setattr | sorted | sum | vars | zip\n)\\b\n",name:"support.function.builtin.python"},{match:"(?x)\n(?<!\\.) \\b(\nfile | reduce | intern | raw_input | unicode | cmp | basestring\n| execfile | long | xrange\n)\\b\n",name:"variable.legacy.builtin.python"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{match:"(?x)\n(?<!\\.) \\b(\nbool | bytearray | bytes | classmethod | complex | dict\n| float | frozenset | int | list | object | property\n| set | slice | staticmethod | str | tuple | type\n\n(?# Although 'super' is not a type, it's related to types,\nand is special enough to be highlighted differently from\nother built-ins)\n| super\n)\\b\n",name:"support.type.python"},"call-wrapper-inheritance":{begin:"(?x)\n\\b(?=\n([[:alpha:]_]\\w*) \\s* (\\()\n)\n",comment:"same as a function call, but in inheritance context",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:"(?x)\n\\s*(class)\\s+\n(?=\n[[:alpha:]_]\\w* \\s* (:|\\()\n)\n",beginCaptures:{1:{name:"storage.type.class.python"}},end:"(:)",endCaptures:{1:{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.inheritance.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.arguments.python"},{match:",",name:"punctuation.separator.inheritance.python"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{match:"\\bmetaclass\\b",name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{1:{name:"entity.other.inherited-class.python variable.parameter.class.python"},2:{name:"keyword.operator.assignment.python"}},match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n"},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"entity.name.type.class.python"}]},codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},comments:{patterns:[{begin:"(?x)\n(?:\n\\# \\s* (type:)\n\\s*+ (?# we want `\\s*+` which is possessive quantifier since\nwe do not actually want to backtrack when matching\nwhitespace here)\n(?! $ | \\#)\n)\n",beginCaptures:{0:{name:"meta.typehint.comment.python"},1:{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:"(?:$|(?=\\#))",name:"comment.line.number-sign.python",patterns:[{match:"(?x)\n\\G ignore\n(?= \\s* (?: $ | \\#))\n",name:"comment.typehint.ignore.notation.python"},{match:"(?x)\n(?<!\\.)\\b(\nbool | bytes | float | int | object | str\n| List | Dict | Iterable | Sequence | Set\n| FrozenSet | Callable | Union | Tuple\n| Any | None\n)\\b\n",name:"comment.typehint.type.notation.python"},{match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))",name:"comment.typehint.punctuation.notation.python"},{match:"([[:alpha:]_]\\w*)",name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($)",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:'($|(?="""))',name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.python"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.python"}},patterns:[{match:":",name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:"(?x)\n^\\s*\n((@)) \\s* (?=[[:alpha:]_]\\w*)\n",beginCaptures:{1:{name:"entity.name.function.decorator.python"},2:{name:"punctuation.definition.decorator.python"}},end:"(?x)\n( \\) )\n\n(?: (.*?) (?=\\s*(?:\\#|$)) )\n| (?=\\n|\\#)\n",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{2:{name:"punctuation.separator.period.python"}},match:"(?x)\n([[:alpha:]_]\\w*) | (\\.)\n",name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{1:{name:"invalid.illegal.decorator.python"}},match:"(?x)\n\\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",name:"invalid.illegal.decorator.python"}]},docstring:{patterns:[{begin:"(\\'\\'\\'|\\\"\\\"\\\")",beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.multi.python",patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:"([rR])(\\'\\'\\'|\\\"\\\"\\\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.raw.multi.python",patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{begin:"(\\'|\\\")",beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.single.python",patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:"([rR])(\\'|\\\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.raw.single.python",patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{captures:{1:{name:"keyword.control.flow.python"}},match:"(?x)\n(?:\n(?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n)\n"},"docstring-statement":{begin:"^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:"((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",patterns:[{include:"#docstring"}]},"double-one-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="""))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:"\\.\\.\\.",name:"constant.other.ellipsis.python"},"escape-sequence":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| [0-7]{1,3}\n| [\\\\\"'abfnrtv]\n)\n",name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n| N\\{[\\w\\s]+?\\}\n)\n",name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:"(?x)\n\\{\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\\}\n",name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:"(\\b[fF])([bBuU])?('''|\"\"\")",beginCaptures:{1:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:"(\\b[fF])([bBuU])?((['\"]))",beginCaptures:{1:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:"(}(?!}))",name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:"(\\{)(?=[^\\n}]*$\\n?)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:"(\\})|(?=\\n)",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:"(?x)\n(\\})\n",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|'''|\"\"\")\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:"(\\b[bBuU])([fF])('''|\"\"\")",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:"(\\b[bBuU])([fF])((['\"]))",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|'''|\"\"\")\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:"(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")",beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:"(\\b(?:[rR][fF]|[fF][rR]))((['\"]))",beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:"(?x)\n(\\})|(?=\\n)\n",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:"(?x)\n( (?: =?) (?: ![rsa])? )\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n"},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})",patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:"(?x)\n( (?: =?) (?: ![rsa])? )\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n"},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})|(?=\\n)",patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"function-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.python"},{captures:{1:{name:"keyword.operator.unpacking.arguments.python"}},match:"(?x)\n(?:(?<=[,(])|^) \\s* (\\*{1,2})\n"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function-call.python"},2:{name:"keyword.operator.assignment.python"}},match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"punctuation.definition.arguments.begin.python"}},match:"\\s*(\\))\\s*(\\()"}]},"function-call":{begin:"(?x)\n\\b(?=\n([[:alpha:]_]\\w*) \\s* (\\()\n)\n",comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:"(?x)\n\\s*\n(?:\\b(async) \\s+)? \\b(def)\\s+\n(?=\n[[:alpha:]_][[:word:]]* \\s* \\(\n)\n",beginCaptures:{1:{name:"storage.type.function.async.python"},2:{name:"storage.type.function.python"}},end:"(:|(?=[#'\"\\n]))",endCaptures:{1:{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"entity.name.function.python"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.function-call.generic.python"}]},generator:{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control.flow.python"}},comment:'Match "for ... in" construct used in generators and for loops to\ncorrectly identify the "in" as a control flow keyword.\n',end:"\\bin\\b",endCaptures:{0:{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-anno":{match:"->",name:"invalid.illegal.annotation.python"},"illegal-names":{captures:{1:{name:"keyword.control.flow.python"},2:{name:"keyword.control.import.python"}},match:"(?x)\n\\b(?:\n(\nand | assert | async | await | break | class | continue | def\n| del | elif | else | except | finally | for | from | global\n| if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n| nonlocal | not | or | pass | raise | return | try | while | with\n| yield\n) | (\nas | import\n)\n)\\b\n"},"illegal-object-name":{comment:'It\'s illegal to name class or function "True"',match:"\\b(True|False|None)\\b",name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:"&&|\\|\\||--|\\+\\+",name:"invalid.illegal.operator.python"},{match:"[?$]",name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b",name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$|(?=import)",patterns:[{match:"\\.+",name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$",patterns:[{match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},"inheritance-identifier":{captures:{1:{name:"entity.other.inherited-class.python"}},match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n"},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:"(?x)\n\\b(?=\n[[:alpha:]_]\\w* \\s* \\[\n)\n",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:"(?=\\])",patterns:[{match:":",name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.indexed-name.python"}]},lambda:{patterns:[{captures:{1:{name:"keyword.control.flow.python"}},match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"},{captures:{1:{name:"storage.type.function.lambda.python"}},match:"\\b(lambda)\\s*?(?=[,\\n]|$)"},{begin:"(?x)\n\\b (lambda) \\b\n",beginCaptures:{1:{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:"(:)|(\\n)",endCaptures:{1:{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))"},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:"\\blambda(?=\\s*[,)])",name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:"\\blambda(?=\\s*[:,)])",name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (=)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"keyword.operator.python"}},end:"(,)|(?=:|$)",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.python"},2:{name:"invalid.illegal.line.continuation.python"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.python"}},end:"(?x)\n(?=^\\s*$)\n|\n(?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n|\n(\\G $) (?# '\\G' is necessary for ST)\n)\n",patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.python"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b",name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{1:{name:"support.function.magic.python"}},comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:"(?x)\n\\b(\n__(?:\nabs | add | aenter | aexit | aiter | and | anext\n| await | bool | call | ceil | class_getitem\n| cmp | coerce | complex | contains | copy\n| deepcopy | del | delattr | delete | delitem\n| delslice | dir | div | divmod | enter | eq\n| exit | float | floor | floordiv | format | ge\n| get | getattr | getattribute | getinitargs\n| getitem | getnewargs | getslice | getstate | gt\n| hash | hex | iadd | iand | idiv | ifloordiv |\n| ilshift | imod | imul | index | init\n| instancecheck | int | invert | ior | ipow\n| irshift | isub | iter | itruediv | ixor | le\n| len | long | lshift | lt | missing | mod | mul\n| ne | neg | new | next | nonzero | oct | or | pos\n| pow | radd | rand | rdiv | rdivmod | reduce\n| reduce_ex | repr | reversed | rfloordiv |\n| rlshift | rmod | rmul | ror | round | rpow\n| rrshift | rshift | rsub | rtruediv | rxor | set\n| setattr | setitem | set_name | setslice\n| setstate | sizeof | str | sub | subclasscheck\n| truediv | trunc | unicode | xor | matmul\n| rmatmul | imatmul | init_subclass | set_name\n| fspath | bytes | prepare | length_hint\n)__\n)\\b\n"},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{1:{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:"(?x)\n\\b(\n__(?:\nall | annotations | bases | builtins | class\n| closure | code | debug | defaults | dict | doc | file | func\n| globals | kwdefaults | match_args | members | metaclass | methods\n| module | mro | mro_entries | name | qualname | post_init | self\n| signature | slots | subclasses | version | weakref | wrapped\n| classcell | spec | path | package | future | traceback\n)__\n)\\b\n"},"member-access":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?x)\n\n\n(?<=\\S)(?=\\W) |\n\n\n(^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n$\n",name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-class":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?<=\\S)(?=\\W)|$",name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:"\\b[0-9]+\\w+",name:"invalid.illegal.name.python"}]},"number-bin":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[bB]) (_?[01])+\n\\b\n",name:"constant.numeric.bin.python"},"number-dec":{captures:{1:{name:"storage.type.imaginary.number.python"},2:{name:"invalid.illegal.dec.python"}},match:"(?x)\n(?<![\\w\\.])(?:\n[1-9](?: _?[0-9] )*\n|\n0+\n|\n[0-9](?: _?[0-9] )* ([jJ])\n|\n0 ([0-9]+)(?![eE\\.])\n)\\b\n",name:"constant.numeric.dec.python"},"number-float":{captures:{1:{name:"storage.type.imaginary.number.python"}},match:"(?x)\n(?<! \\w)(?:\n(?:\n\\.[0-9](?: _?[0-9] )*\n|\n[0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n|\n[0-9](?: _?[0-9] )* \\.\n) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n|\n[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n)([jJ])?\\b\n",name:"constant.numeric.float.python"},"number-hex":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[xX]) (_?[0-9a-fA-F])+\n\\b\n",name:"constant.numeric.hex.python"},"number-long":{captures:{2:{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:"(?x)\n(?<![\\w\\.])\n([1-9][0-9]* | 0) ([lL])\n\\b\n",name:"constant.numeric.bin.python"},"number-oct":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[oO]) (_?[0-7])+\n\\b\n",name:"constant.numeric.oct.python"},"odd-function-call":{begin:"(?x)\n(?<= \\] | \\) ) \\s*\n(?=\\()\n",comment:'A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. "arr[idx](args)"\n',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{1:{name:"keyword.operator.logical.python"},2:{name:"keyword.control.flow.python"},3:{name:"keyword.operator.bitwise.python"},4:{name:"keyword.operator.arithmetic.python"},5:{name:"keyword.operator.comparison.python"},6:{name:"keyword.operator.assignment.python"}},match:"(?x)\n\\b(?<!\\.)\n(?:\n(and | or | not | in | is) (?# 1)\n|\n(for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n)\n(?!\\s*:)\\b\n\n| (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n| (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n| (!= | == | >= | <= | < | >) (?# 5)\n\n| (:=) (?# 6)\n"},"parameter-special":{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"variable.parameter.function.language.special.self.python"},3:{name:"variable.parameter.function.language.special.cls.python"},4:{name:"punctuation.separator.parameters.python"}},match:"(?x)\n\\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n"},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"(?x)\n([[:alpha:]_]\\w*)\n\\s* (?: (,) | (?=[)#\\n=]))\n"},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:":",name:"punctuation.separator.colon.python"},{match:",",name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:"(?x)\n(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| 0[0-7]{1,2}\n| [0-7]{3}\n)\n",name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n)\n",name:"constant.character.unicode.regexp"},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:"(?x)\n\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\n",name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"return-annotation":{begin:"(->)",beginCaptures:{1:{name:"punctuation.separator.annotation.result.python"}},end:"(?=:)",patterns:[{include:"#expression"}]},"round-braces":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.python"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:"\\;$",name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:"(?x)\n\\b\n\n\n\n\n\n(\n_* [[:upper:]] [_\\d]* [[:upper:]]\n)\n[[:upper:]\\d]* (_\\w*)?\n\\b\n",name:"constant.other.caps.python"},"special-variables":{captures:{1:{name:"variable.language.special.self.python"},2:{name:"variable.language.special.cls.python"}},match:"(?x)\n\\b (?<!\\.) (?:\n(self) | (cls)\n)\\b\n"},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:"\\b((async\\s+)?\\s*def)\\b",name:"storage.type.function.python"},{comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])",name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{match:"(?x)\n\\b(?<!\\.)(\nasync | continue | del | assert | break | finally | for\n| from | elif | else | if | except | pass | raise\n| return | try | while | with\n)\\b\n",name:"keyword.control.flow.python"},{match:"(?x)\n\\b(?<!\\.)(\nglobal | nonlocal\n)\\b\n",name:"storage.modifier.declaration.python"},{match:"\\b(?<!\\.)(class)\\b",name:"storage.type.class.python"},{captures:{1:{name:"keyword.control.flow.python"}},match:"(?x)\n^\\s*(\ncase | match\n)(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:"(\\b[bB])('''|\"\"\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:"(\\b[bB])((['\"]))",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:"(?x)\n(\n{{ | }}\n| (?:\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n})\n)\n",name:"meta.format.brace.python"},{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:"(?x)\n(\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n(:)\n[^'\"{}\\n]* (?:\n\\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n)*\n}\n)\n",name:"meta.format.brace.python"}]},"string-consume-escape":{match:"\\\\['\"\\n\\\\]"},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{1:{name:"constant.character.format.placeholder.other.python"}},match:"(?x)\n(\n% (\\([\\w\\s]*\\))?\n[-+#0 ]*\n(\\d+|\\*)? (\\.(\\d+|\\*))?\n([hlL])?\n[diouxXeEfFgGcrsab%]\n)\n",name:"meta.format.percent.python"},"string-line-continuation":{match:"\\\\$",name:"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{begin:"(?x)\n(?= \\{%\n( .*? (?!'''|\"\"\") )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:"(?x)\n(?= \\{%\n( .*? (?!'''|\"\"\") )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n)\n.*?(?!'''|\"\"\")\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n)\n.*?(?!'''|\"\"\")\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:"(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:"(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:"(\\b(?:R[bB]|[bB]R))('''|\"\"\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:"(\\b(?:R[bB]|[bB]R))((['\"]))",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:"\\b(([uU]R)|(R))('''|\"\"\")",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:"\\b(([uU]R)|(R))((['\"]))",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:"(?x)\n(?= \\{%\n( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:"(?x)\n(?= \\{%\n( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n)\n.*?(?!(['\"])|((?<!\\\\)\\n))\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n)\n.*?(?!(['\"])|((?<!\\\\)\\n))\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},i="source.python",r={displayName:e,name:n,patterns:t,repository:a,scopeName:i};export{r as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/qml.mjs b/lib/dist/grammar/qml.mjs new file mode 100644 index 0000000..5903434 --- /dev/null +++ b/lib/dist/grammar/qml.mjs @@ -0,0 +1 @@ +var e="QML",t="qml",n=[{match:"\\bpragma\\s+Singleton\\b",name:"constant.language.qml"},{include:"#import-statements"},{include:"#object"},{include:"#comment"}],a={"attributes-dictionary":{patterns:[{include:"#typename"},{include:"#keywords"},{include:"#identifier"},{include:"#attributes-value"},{include:"#comment"}]},"attributes-value":{patterns:[{begin:"(?<=\\w)\\s*\\:\\s*(?=[A-Z]\\w*\\s*\\{)",description:"A QML object as value.",end:"(?<=\\})",patterns:[{include:"#object"}]},{begin:"(?<=\\w)\\s*\\:\\s*\\[",description:"A list as value.",end:"\\](.*)$",endCaptures:{0:{patterns:[{include:"source.js"}]}},patterns:[{include:"#object"},{include:"source.js"}]},{begin:"(?<=\\w)\\s*\\:(?=\\s*\\{?\\s*$)",description:"A block of JavaScript code as value.",end:"(?<=\\})",patterns:[{begin:"\\{",contentName:"meta.embedded.block.js",end:"\\}",patterns:[{include:"source.js"}]}]},{begin:"(?<=\\w)\\s*\\:",contentName:"meta.embedded.line.js",description:"A JavaScript expression as value.",end:";|$|(?=\\})",patterns:[{include:"source.js"}]}]},comment:{patterns:[{begin:"(\\/\\/:)",beginCaptures:{1:{name:"storage.type.class.qml.tr"}},end:"$",patterns:[{include:"#comment-contents"}]},{begin:"(\\/\\/[~|=])\\s*([A-Za-z_$][\\w$.\\[\\]]*)",beginCaptures:{1:{name:"storage.type.class.qml.tr"},2:{name:"variable.other.qml.tr"}},end:"$",patterns:[{include:"#comment-contents"}]},{begin:"(\\/\\/)",beginCaptures:{1:{name:"comment.line.double-slash.qml"}},end:"$",patterns:[{include:"#comment-contents"}]},{begin:"(\\/\\*)",beginCaptures:{1:{name:"comment.line.double-slash.qml"}},end:"(\\*\\/)",endCaptures:{1:{name:"comment.line.double-slash.qml"}},patterns:[{include:"#comment-contents"}]}]},"comment-contents":{patterns:[{match:"\\b(TODO|DEBUG|XXX)\\b",name:"constant.language.qml"},{match:"\\b(BUG|FIXME)\\b",name:"invalid"},{match:".",name:"comment.line.double-slash.qml"}]},"data-types":{patterns:[{description:"QML basic data types.",match:"\\b(bool|double|enum|int|list|real|string|url|variant|var)\\b",name:"storage.type.qml"},{description:"QML modules basic data types.",match:"\\b(date|point|rect|size)\\b",name:"support.type.qml"}]},"group-attributes":{patterns:[{begin:"\\b([_a-zA-Z]\\w*)\\s*\\{",beginCaptures:{1:{name:"variable.parameter.qml"}},end:"\\}",patterns:[{include:"$self"},{include:"#comment"},{include:"#attributes-dictionary"}]}]},identifier:{description:"The name of variable, key, signal and etc.",patterns:[{match:"\\b[_a-zA-Z]\\w*\\b",name:"variable.parameter.qml"}]},"import-statements":{patterns:[{begin:"\\b(import)\\b",beginCaptures:{1:{name:"keyword.control.import.qml"}},end:"$",patterns:[{match:"\\bas\\b",name:"keyword.control.as.qml"},{include:"#string"},{description:"<Version.Number>",match:"\\b\\d+\\.\\d+\\b",name:"constant.numeric.qml"},{description:"as <Namespace>",match:"(?<=as)\\s+[A-Z]\\w*\\b",name:"entity.name.type.qml"},{include:"#identifier"},{include:"#comment"}]}]},keywords:{patterns:[{include:"#data-types"},{include:"#reserved-words"}]},"method-attributes":{patterns:[{begin:"\\b(function)\\b",beginCaptures:{1:{name:"storage.type.qml"}},end:"(?<=\\})",patterns:[{begin:"([_a-zA-Z]\\w*)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.qml"}},end:"\\)",patterns:[{include:"#identifier"}]},{begin:"\\{",contentName:"meta.embedded.block.js",end:"\\}",patterns:[{include:"source.js"}]}]}]},object:{patterns:[{begin:"\\b([A-Z]\\w*)\\s*\\{",beginCaptures:{1:{name:"entity.name.type.qml"}},end:"\\}",patterns:[{include:"$self"},{include:"#group-attributes"},{include:"#method-attributes"},{include:"#signal-attributes"},{include:"#comment"},{include:"#attributes-dictionary"}]}]},"reserved-words":{patterns:[{description:"Attribute modifier.",match:"\\b(default|alias|readonly|required)\\b",name:"storage.modifier.qml"},{match:"\\b(property|id|on)\\b",name:"keyword.other.qml"},{description:"Special words for signal handlers including property change.",match:"\\b(on[A-Z]\\w*(Changed)?)\\b",name:"keyword.control.qml"}]},"signal-attributes":{patterns:[{begin:"\\b(signal)\\b",beginCaptures:{1:{name:"storage.type.qml"}},end:"$",patterns:[{begin:"([_a-zA-Z]\\w*)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.qml"}},end:"\\)",patterns:[{include:"#keywords"},{include:"#identifier"}]},{include:"#identifier"},{include:"#comment"}]}]},string:{description:"String literal with double or signle quote.",patterns:[{begin:"'",end:"'",name:"string.quoted.single.qml"},{begin:'"',end:'"',name:"string.quoted.double.qml"}]},typename:{description:"The name of type. First letter must be uppercase.",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.qml"}]}},i="source.qml",s={displayName:"QML",name:"qml",patterns:n,repository:a,scopeName:i};export{s as default,e as displayName,t as name,n as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/qmldir.mjs b/lib/dist/grammar/qmldir.mjs new file mode 100644 index 0000000..3bf0d18 --- /dev/null +++ b/lib/dist/grammar/qmldir.mjs @@ -0,0 +1 @@ +var e="QML Directory",n="qmldir",m=[{include:"#comment"},{include:"#keywords"},{include:"#version"},{include:"#names"}],t={comment:{patterns:[{begin:"#",end:"$",name:"comment.line.number-sign.qmldir"}]},"file-name":{patterns:[{match:"\\b\\w+\\.(qmltypes|qml|js)\\b",name:"string.unquoted.qmldir"}]},identifier:{patterns:[{match:"\\b\\w+\\b",name:"variable.parameter.qmldir"}]},keywords:{patterns:[{match:"\\b(module|singleton|internal|plugin|classname|typeinfo|depends|designersupported)\\b",name:"keyword.other.qmldir"}]},"module-name":{patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.qmldir"}]},names:{patterns:[{include:"#file-name"},{include:"#module-name"},{include:"#identifier"}]},version:{patterns:[{match:"\\b\\d+\\.\\d+\\b",name:"constant.numeric.qml"}]}},a="source.qmldir",i={displayName:e,name:n,patterns:m,repository:t,scopeName:a};export{i as default,e as displayName,n as name,m as patterns,t as repository,a as scopeName}; diff --git a/lib/dist/grammar/qss.mjs b/lib/dist/grammar/qss.mjs new file mode 100644 index 0000000..8db352e --- /dev/null +++ b/lib/dist/grammar/qss.mjs @@ -0,0 +1 @@ +var e="Qt Style Sheets",t="qss",o=[{include:"#comment-block"},{include:"#rule-list"},{include:"#selector"}],i={color:{patterns:[{begin:"\\b(rgb|rgba|hsv|hsva|hsl|hsla)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.qss"}},description:"Color Type",end:"\\)",patterns:[{include:"#comment-block"},{include:"#number"}]},{match:"\\b(white|black|red|darkred|green|darkgreen|blue|darkblue|cyan|darkcyan|magenta|darkmagenta|yellow|darkyellow|gray|darkgray|lightgray|transparent|color0|color1)\\b",name:"support.constant.property-value.named-color.qss"},{match:"#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"support.constant.property-value.color.qss"}]},"comment-block":{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.qss"}]},"icon-properties":{patterns:[{match:"\\b(backward-icon|cd-icon|computer-icon|desktop-icon|dialog-apply-icon|dialog-cancel-icon|dialog-close-icon|dialog-discard-icon|dialog-help-icon|dialog-no-icon|dialog-ok-icon|dialog-open-icon|dialog-reset-icon|dialog-save-icon|dialog-yes-icon|directory-closed-icon|directory-icon|directory-link-icon|directory-open-icon|dockwidget-close-icon|downarrow-icon|dvd-icon|file-icon|file-link-icon|filedialog-contentsview-icon|filedialog-detailedview-icon|filedialog-end-icon|filedialog-infoview-icon|filedialog-listview-icon|filedialog-new-directory-icon|filedialog-parent-directory-icon|filedialog-start-icon|floppy-icon|forward-icon|harddisk-icon|home-icon|leftarrow-icon|messagebox-critical-icon|messagebox-information-icon|messagebox-question-icon|messagebox-warning-icon|network-icon|rightarrow-icon|titlebar-contexthelp-icon|titlebar-maximize-icon|titlebar-menu-icon|titlebar-minimize-icon|titlebar-normal-icon|titlebar-close-icon|titlebar-shade-icon|titlebar-unshade-icon|trash-icon|uparrow-icon)\\b",name:"support.type.property-name.qss"}]},"id-selector":{patterns:[{captures:{1:{name:"punctuation.definition.entity.qss"},2:{name:"entity.name.tag.qss"}},match:"(#)([a-zA-Z][a-zA-Z0-9_-]*)"}]},number:{patterns:[{description:"floating number",match:"\\b(\\d+)?\\.(\\d+)\\b",name:"constant.numeric.qss"},{description:"percentage",match:"\\b(\\d+)%",name:"constant.numeric.qss"},{description:"length",match:"\\b(\\d+)(px|pt|em|ex)?\\b",name:"constant.numeric.qss"},{description:"integer",match:"\\b(\\d+)\\b",name:"constant.numeric.qss"}]},properties:{patterns:[{include:"#property-values"},{match:"\\b(paint-alternating-row-colors-for-empty-area|dialogbuttonbox-buttons-have-icons|titlebar-show-tooltips-on-buttons|messagebox-text-interaction-flags|lineedit-password-mask-delay|outline-bottom-right-radius|lineedit-password-character|selection-background-color|outline-bottom-left-radius|border-bottom-right-radius|alternate-background-color|widget-animation-duration|border-bottom-left-radius|show-decoration-selected|outline-top-right-radius|outline-top-left-radius|border-top-right-radius|border-top-left-radius|background-attachment|subcontrol-position|border-bottom-width|border-bottom-style|border-bottom-color|background-position|border-right-width|border-right-style|border-right-color|subcontrol-origin|border-left-width|border-left-style|border-left-color|background-origin|background-repeat|border-top-width|border-top-style|border-top-color|background-image|background-color|text-decoration|selection-color|background-clip|padding-bottom|outline-radius|outline-offset|image-position|gridline-color|padding-right|outline-style|outline-color|margin-bottom|button-layout|border-radius|border-bottom|padding-left|margin-right|border-width|border-style|border-image|border-color|border-right|padding-top|margin-left|font-weight|font-family|border-left|text-align|min-height|max-height|margin-top|font-style|border-top|background|min-width|max-width|icon-size|font-size|position|spacing|padding|outline|opacity|margin|height|bottom|border|width|right|image|color|left|font|top)\\b",name:"support.type.property-name.qss"},{include:"#icon-properties"}]},"property-selector":{patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#comment-block"},{include:"#string"},{match:"\\b[_a-zA-Z]\\w*\\b",name:"variable.parameter.qml"}]}]},"property-values":{patterns:[{begin:":",end:";|(?=\\})",patterns:[{include:"#comment-block"},{include:"#color"},{begin:"\\b(qlineargradient|qradialgradient|qconicalgradient)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.qss"}},description:"Gradient Type",end:"\\)",patterns:[{include:"#comment-block"},{match:"\\b(x1|y1|x2|y2|stop|angle|radius|cx|cy|fx|fy)\\b",name:"variable.parameter.qss"},{include:"#color"},{include:"#number"}]},{begin:"\\b(url)\\s*\\(",beginCaptures:{1:{name:"entity.name.function.qss"}},contentName:"string.unquoted.qss",description:"URL Type",end:"\\)"},{match:"\\bpalette\\s*(?=\\()\\b",name:"entity.name.function.qss"},{match:"\\b(highlighted-text|alternate-base|line-through|link-visited|dot-dot-dash|window-text|button-text|bright-text|underline|no-repeat|highlight|overline|absolute|relative|repeat-y|repeat-x|midlight|selected|disabled|dot-dash|content|padding|oblique|stretch|repeat|window|shadow|button|border|margin|active|italic|normal|outset|groove|double|dotted|dashed|repeat|scroll|center|bottom|light|solid|ridge|inset|fixed|right|text|link|dark|base|bold|none|left|mid|off|top|on)\\b",name:"support.constant.property-value.qss"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.qss"},{include:"#string"},{include:"#number"}]}]},"pseudo-states":{patterns:[{match:"\\b(active|adjoins-item|alternate|bottom|checked|closable|closed|default|disabled|editable|edit-focus|enabled|exclusive|first|flat|floatable|focus|has-children|has-siblings|horizontal|hover|indeterminate|last|left|maximized|middle|minimized|movable|no-frame|non-exclusive|off|on|only-one|open|next-selected|pressed|previous-selected|read-only|right|selected|top|unchecked|vertical|window)\\b",name:"keyword.control.qss"}]},"rule-list":{patterns:[{begin:"\\{",end:"\\}",patterns:[{include:"#comment-block"},{include:"#properties"},{include:"#icon-properties"}]}]},selector:{patterns:[{include:"#stylable-widgets"},{include:"#sub-controls"},{include:"#pseudo-states"},{include:"#property-selector"},{include:"#id-selector"}]},string:{description:"String literal with double or signle quote.",patterns:[{begin:"'",end:"'",name:"string.quoted.single.qml"},{begin:'"',end:'"',name:"string.quoted.double.qml"}]},"stylable-widgets":{patterns:[{match:"\\b(QAbstractScrollArea|QAbstractItemView|QCheckBox|QColumnView|QComboBox|QDateEdit|QDateTimeEdit|QDialog|QDialogButtonBox|QDockWidget|QDoubleSpinBox|QFrame|QGroupBox|QHeaderView|QLabel|QLineEdit|QListView|QListWidget|QMainWindow|QMenu|QMenuBar|QMessageBox|QProgressBar|QPlainTextEdit|QPushButton|QRadioButton|QScrollBar|QSizeGrip|QSlider|QSpinBox|QSplitter|QStatusBar|QTabBar|QTabWidget|QTableView|QTableWidget|QTextEdit|QTimeEdit|QToolBar|QToolButton|QToolBox|QToolTip|QTreeView|QTreeWidget|QWidget)\\b",name:"entity.name.type.qss"}]},"sub-controls":{patterns:[{match:"\\b(add-line|add-page|branch|chunk|close-button|corner|down-arrow|down-button|drop-down|float-button|groove|indicator|handle|icon|item|left-arrow|left-corner|menu-arrow|menu-button|menu-indicator|right-arrow|pane|right-corner|scroller|section|separator|sub-line|sub-page|tab|tab-bar|tear|tearoff|text|title|up-arrow|up-button)\\b",name:"entity.other.inherited-class.qss"}]}},n="source.qss",r={displayName:e,name:"qss",patterns:o,repository:i,scopeName:n};export{r as default,e as displayName,t as name,o as patterns,i as repository,n as scopeName}; diff --git a/lib/dist/grammar/r.mjs b/lib/dist/grammar/r.mjs new file mode 100644 index 0000000..feb2122 --- /dev/null +++ b/lib/dist/grammar/r.mjs @@ -0,0 +1 @@ +var e="R",a="r",t=[{include:"#roxygen"},{include:"#comments"},{include:"#constants"},{include:"#keywords"},{include:"#storage-type"},{include:"#strings"},{include:"#brackets"},{include:"#function-declarations"},{include:"#lambda-functions"},{include:"#builtin-functions"},{include:"#function-calls"},{include:"#general-variables"}],s={brackets:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.r"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\[(?!\\[)",beginCaptures:{0:{name:"punctuation.section.brackets.single.begin.r"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.single.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\[\\[",beginCaptures:{0:{name:"punctuation.section.brackets.double.begin.r"}},contentName:"meta.item-access.arguments.r",end:"\\]\\]",endCaptures:{0:{name:"punctuation.section.brackets.double.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.r"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.r"}},patterns:[{include:"source.r"}]}]},"builtin-functions":{patterns:[{captures:{1:{name:"support.function.r"}},match:"\\b(abbreviate|abs|acos|acosh|activeBindingFunction|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\.equal|all\\.equal\\.character|all\\.equal\\.default|all\\.equal\\.environment|all\\.equal\\.envRefClass|all\\.equal\\.factor|all\\.equal\\.formula|all\\.equal\\.function|all\\.equal\\.language|all\\.equal\\.list|all\\.equal\\.numeric|all\\.equal\\.POSIXt|all\\.equal\\.raw|all\\.names|allowInterrupts|all\\.vars|any|anyDuplicated|anyDuplicated\\.array|anyDuplicated\\.data\\.frame|anyDuplicated\\.default|anyDuplicated\\.matrix|anyNA|anyNA\\.data\\.frame|anyNA\\.numeric_version|anyNA\\.POSIXlt|aperm|aperm\\.default|aperm\\.table|append|apply|Arg|args|array|arrayInd|as\\.array|as\\.array\\.default|as\\.call|as\\.character|as\\.character\\.condition|as\\.character\\.Date|as\\.character\\.default|as\\.character\\.error|as\\.character\\.factor|as\\.character\\.hexmode|as\\.character\\.numeric_version|as\\.character\\.octmode|as\\.character\\.POSIXt|as\\.character\\.srcref|as\\.complex|as\\.data\\.frame|as\\.data\\.frame\\.array|as\\.data\\.frame\\.AsIs|as\\.data\\.frame\\.character|as\\.data\\.frame\\.complex|as\\.data\\.frame\\.data\\.frame|as\\.data\\.frame\\.Date|as\\.data\\.frame\\.default|as\\.data\\.frame\\.difftime|as\\.data\\.frame\\.factor|as\\.data\\.frame\\.integer|as\\.data\\.frame\\.list|as\\.data\\.frame\\.logical|as\\.data\\.frame\\.matrix|as\\.data\\.frame\\.model\\.matrix|as\\.data\\.frame\\.noquote|as\\.data\\.frame\\.numeric|as\\.data\\.frame\\.numeric_version|as\\.data\\.frame\\.ordered|as\\.data\\.frame\\.POSIXct|as\\.data\\.frame\\.POSIXlt|as\\.data\\.frame\\.raw|as\\.data\\.frame\\.table|as\\.data\\.frame\\.ts|as\\.data\\.frame\\.vector|as\\.Date|as\\.Date\\.character|as\\.Date\\.default|as\\.Date\\.factor|as\\.Date\\.numeric|as\\.Date\\.POSIXct|as\\.Date\\.POSIXlt|as\\.difftime|as\\.double|as\\.double\\.difftime|as\\.double\\.POSIXlt|as\\.environment|as\\.expression|as\\.expression\\.default|as\\.factor|as\\.function|as\\.function\\.default|as\\.hexmode|asin|asinh|as\\.integer|as\\.list|as\\.list\\.data\\.frame|as\\.list\\.Date|as\\.list\\.default|as\\.list\\.difftime|as\\.list\\.environment|as\\.list\\.factor|as\\.list\\.function|as\\.list\\.numeric_version|as\\.list\\.POSIXct|as\\.list\\.POSIXlt|as\\.logical|as\\.logical\\.factor|as\\.matrix|as\\.matrix\\.data\\.frame|as\\.matrix\\.default|as\\.matrix\\.noquote|as\\.matrix\\.POSIXlt|as\\.name|asNamespace|as\\.null|as\\.null\\.default|as\\.numeric|as\\.numeric_version|as\\.octmode|as\\.ordered|as\\.package_version|as\\.pairlist|asplit|as\\.POSIXct|as\\.POSIXct\\.Date|as\\.POSIXct\\.default|as\\.POSIXct\\.numeric|as\\.POSIXct\\.POSIXlt|as\\.POSIXlt|as\\.POSIXlt\\.character|as\\.POSIXlt\\.Date|as\\.POSIXlt\\.default|as\\.POSIXlt\\.factor|as\\.POSIXlt\\.numeric|as\\.POSIXlt\\.POSIXct|as\\.qr|as\\.raw|asS3|asS4|assign|as\\.single|as\\.single\\.default|as\\.symbol|as\\.table|as\\.table\\.default|as\\.vector|as\\.vector\\.factor|atan|atan2|atanh|attach|attachNamespace|attr|attr\\.all\\.equal|attributes|autoload|autoloader|backsolve|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\.data\\.frame|by\\.default|bzfile|c|call|callCC|capabilities|casefold|cat|cbind|cbind\\.data\\.frame|c\\.Date|c\\.difftime|ceiling|c\\.factor|character|char\\.expand|charmatch|charToRaw|chartr|check_tzones|chkDots|chol|chol2inv|chol\\.default|choose|class|clearPushBack|close|closeAllConnections|close\\.connection|close\\.srcfile|close\\.srcfilealias|c\\.noquote|c\\.numeric_version|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\.condition|conditionMessage|conditionMessage\\.condition|conflictRules|conflicts|Conj|contributors|cos|cosh|cospi|c\\.POSIXct|c\\.POSIXlt|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\.Date|cut\\.default|cut\\.POSIXt|c\\.warnings|data\\.class|data\\.frame|data\\.matrix|date|debug|debuggingState|debugonce|default\\.stringsAsFactors|delayedAssign|deparse|deparse1|det|detach|determinant|determinant\\.matrix|dget|diag|diff|diff\\.Date|diff\\.default|diff\\.difftime|diff\\.POSIXt|difftime|digamma|dim|dim\\.data\\.frame|dimnames|dimnames\\.data\\.frame|dir|dir\\.create|dir\\.exists|dirname|do\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\.data\\.frame|droplevels\\.factor|dump|duplicated|duplicated\\.array|duplicated\\.data\\.frame|duplicated\\.default|duplicated\\.matrix|duplicated\\.numeric_version|duplicated\\.POSIXlt|duplicated\\.warnings|dynGet|dyn\\.load|dyn\\.unload|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|environment|environmentIsLocked|environmentName|env\\.profile|errorCondition|eval|eval\\.parent|evalq|exists|exp|expand\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\.access|file\\.append|file\\.choose|file\\.copy|file\\.create|file\\.exists|file\\.info|file\\.link|file\\.mode|file\\.mtime|file\\.path|file\\.remove|file\\.rename|file\\.show|file\\.size|file\\.symlink|Filter|Find|findInterval|find\\.package|findPackageEnv|findRestart|floor|flush|flush\\.connection|for|force|forceAndCall|formals|format|format\\.AsIs|formatC|format\\.data\\.frame|format\\.Date|format\\.default|format\\.difftime|formatDL|format\\.factor|format\\.hexmode|format\\.info|format\\.libraryIQR|format\\.numeric_version|format\\.octmode|format\\.packageInfo|format\\.POSIXct|format\\.POSIXlt|format\\.pval|format\\.summaryDefault|forwardsolve|function|gamma|gc|gcinfo|gc\\.time|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\.character|getDLLRegisteredRoutines\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalCallingHandlers|globalenv|gregexec|gregexpr|grep|grepl|grepRaw|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|infoRDS|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\.rle|invisible|invokeRestart|invokeRestartInteractively|isa|is\\.array|is\\.atomic|isatty|isBaseNamespace|is\\.call|is\\.character|is\\.complex|is\\.data\\.frame|isdebugged|is\\.double|is\\.element|is\\.environment|is\\.expression|is\\.factor|isFALSE|is\\.finite|is\\.function|isIncomplete|is\\.infinite|is\\.integer|is\\.language|is\\.list|is\\.loaded|is\\.logical|is\\.matrix|is\\.na|is\\.na\\.data\\.frame|is\\.name|isNamespace|isNamespaceLoaded|is\\.nan|is\\.na\\.numeric_version|is\\.na\\.POSIXlt|is\\.null|is\\.numeric|is\\.numeric\\.Date|is\\.numeric\\.difftime|is\\.numeric\\.POSIXt|is\\.numeric_version|is\\.object|ISOdate|ISOdatetime|isOpen|is\\.ordered|is\\.package_version|is\\.pairlist|is\\.primitive|is\\.qr|is\\.R|is\\.raw|is\\.recursive|isRestart|isS4|isSeekable|is\\.single|is\\.symbol|isSymmetric|isSymmetric\\.matrix|is\\.table|isTRUE|is\\.unsorted|is\\.vector|jitter|julian|julian\\.Date|julian\\.POSIXt|kappa|kappa\\.default|kappa\\.lm|kappa\\.qr|kronecker|l10n_info|labels|labels\\.default|La_library|lapply|La\\.svd|La_version|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\.POSIXlt|lengths|levels|levels\\.default|lfactorial|lgamma|libcurlVersion|library|library\\.dynam|library\\.dynam\\.unload|licence|license|list|list2DF|list2env|list\\.dirs|list\\.files|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\.tri|ls|makeActiveBinding|make\\.names|make\\.unique|Map|mapply|marginSums|margin\\.table|match|match\\.arg|match\\.call|match\\.fun|Math\\.data\\.frame|Math\\.Date|Math\\.difftime|Math\\.factor|Math\\.POSIXt|mat\\.or\\.vec|matrix|max|max\\.col|mean|mean\\.Date|mean\\.default|mean\\.difftime|mean\\.POSIXct|mean\\.POSIXlt|memCompress|memDecompress|mem\\.maxNSize|mem\\.maxVSize|memory\\.profile|merge|merge\\.data\\.frame|merge\\.default|message|mget|min|missing|Mod|mode|months|months\\.Date|months\\.POSIXt|names|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|names\\.POSIXlt|nargs|nchar|ncol|NCOL|Negate|new\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|nullfile|numeric|numeric_version|numToBits|numToInts|nzchar|objects|oldClass|OlsonNames|on\\.exit|open|open\\.connection|open\\.srcfile|open\\.srcfilealias|open\\.srcfilecopy|Ops\\.data\\.frame|Ops\\.Date|Ops\\.difftime|Ops\\.factor|Ops\\.numeric_version|Ops\\.ordered|Ops\\.POSIXt|options|order|ordered|outer|packageEvent|packageHasNamespace|packageNotFoundError|packageStartupMessage|package_version|packBits|pairlist|parent\\.env|parent\\.frame|parse|parseNamespaceFile|paste|paste0|path\\.expand|path\\.package|pcre_config|pi|pipe|plot|pmatch|pmax|pmax\\.int|pmin|pmin\\.int|polyroot|Position|pos\\.to\\.env|pretty|pretty\\.default|prettyNum|print|print\\.AsIs|print\\.by|print\\.condition|print\\.connection|print\\.data\\.frame|print\\.Date|print\\.default|print\\.difftime|print\\.Dlist|print\\.DLLInfo|print\\.DLLInfoList|print\\.DLLRegisteredRoutines|print\\.eigen|print\\.factor|print\\.function|print\\.hexmode|print\\.libraryIQR|print\\.listof|print\\.NativeRoutineList|print\\.noquote|print\\.numeric_version|print\\.octmode|print\\.packageInfo|print\\.POSIXct|print\\.POSIXlt|print\\.proc_time|print\\.restart|print\\.rle|print\\.simple\\.list|print\\.srcfile|print\\.srcref|print\\.summaryDefault|print\\.summary\\.table|print\\.summary\\.warnings|print\\.table|print\\.warnings|prmatrix|proc\\.time|prod|proportions|prop\\.table|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\.coef|qr\\.default|qr\\.fitted|qr\\.Q|qr\\.qty|qr\\.qy|qr\\.R|qr\\.resid|qr\\.solve|qr\\.X|quarters|quarters\\.Date|quarters\\.POSIXt|quit|quote|range|range\\.default|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\.data\\.frame|rcond|Re|readBin|readChar|read\\.dcf|readline|readLines|readRDS|readRenviron|Recall|Reduce|regexec|regexpr|reg\\.finalizer|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep\\.Date|rep\\.difftime|repeat|rep\\.factor|rep\\.int|replace|rep_len|replicate|rep\\.numeric_version|rep\\.POSIXct|rep\\.POSIXlt|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\.default|R\\.home|rle|rm|RNGkind|RNGversion|round|round\\.Date|round\\.POSIXt|row|rowMeans|rownames|row\\.names|row\\.names\\.data\\.frame|row\\.names\\.default|rowsum|rowsum\\.data\\.frame|rowsum\\.default|rowSums|R_system_version|R\\.version|R\\.Version|R\\.version\\.string|sample|sample\\.int|sapply|save|save\\.image|saveRDS|scale|scale\\.default|scan|search|searchpaths|seek|seek\\.connection|seq|seq_along|seq\\.Date|seq\\.default|seq\\.int|seq_len|seq\\.POSIXt|sequence|sequence\\.default|serialize|serverSocket|setdiff|setequal|setHook|setNamespaceInfo|set\\.seed|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\.number|sinpi|slice\\.index|socketAccept|socketConnection|socketSelect|socketTimeout|solve|solve\\.default|solve\\.qr|sort|sort\\.default|sort\\.int|sort\\.list|sort\\.POSIXlt|source|split|split\\.data\\.frame|split\\.Date|split\\.default|split\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\.mode|str2expression|str2lang|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\.data\\.frame|subset\\.default|subset\\.matrix|substitute|substr|substring|sum|summary|summary\\.connection|summary\\.data\\.frame|Summary\\.data\\.frame|summary\\.Date|Summary\\.Date|summary\\.default|Summary\\.difftime|summary\\.factor|Summary\\.factor|summary\\.matrix|Summary\\.numeric_version|Summary\\.ordered|summary\\.POSIXct|Summary\\.POSIXct|summary\\.POSIXlt|Summary\\.POSIXlt|summary\\.proc_time|summary\\.srcfile|summary\\.srcref|summary\\.table|summary\\.warnings|suppressMessages|suppressPackageStartupMessages|suppressWarnings|suspendInterrupts|svd|sweep|switch|sys\\.call|sys\\.calls|Sys\\.chmod|Sys\\.Date|sys\\.frame|sys\\.frames|sys\\.function|Sys\\.getenv|Sys\\.getlocale|Sys\\.getpid|Sys\\.glob|Sys\\.info|sys\\.load\\.image|Sys\\.localeconv|sys\\.nframe|sys\\.on\\.exit|sys\\.parent|sys\\.parents|Sys\\.readlink|sys\\.save\\.image|Sys\\.setenv|Sys\\.setFileTime|Sys\\.setlocale|Sys\\.sleep|sys\\.source|sys\\.status|system|system2|system\\.file|system\\.time|Sys\\.time|Sys\\.timezone|Sys\\.umask|Sys\\.unsetenv|Sys\\.which|t|table|tabulate|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|t\\.data\\.frame|t\\.default|tempdir|tempfile|textConnection|textConnectionValue|tolower|topenv|toString|toString\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\.data\\.frame|transform\\.default|trigamma|trimws|trunc|truncate|truncate\\.connection|trunc\\.Date|trunc\\.POSIXt|try|tryCatch|tryInvokeRestart|typeof|unclass|undebug|union|unique|unique\\.array|unique\\.data\\.frame|unique\\.default|unique\\.matrix|unique\\.numeric_version|unique\\.POSIXlt|unique\\.warnings|units|units\\.difftime|unix\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\.tri|url|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|version|warning|warningCondition|warnings|weekdays|weekdays\\.Date|weekdays\\.POSIXt|which|which\\.max|which\\.min|while|with|withAutoprint|withCallingHandlers|with\\.default|within|within\\.data\\.frame|within\\.list|withRestarts|withVisible|write|writeBin|writeChar|write\\.dcf|writeLines|xor|xpdrows\\.data\\.frame|xtfrm|xtfrm\\.AsIs|xtfrm\\.data\\.frame|xtfrm\\.Date|xtfrm\\.default|xtfrm\\.difftime|xtfrm\\.factor|xtfrm\\.numeric_version|xtfrm\\.POSIXct|xtfrm\\.POSIXlt|xzfile|zapsmall)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(abline|arrows|assocplot|axis|Axis|axis\\.Date|axis\\.POSIXct|axTicks|barplot|barplot\\.default|box|boxplot|boxplot\\.default|boxplot\\.matrix|bxp|cdplot|clip|close\\.screen|co\\.intervals|contour|contour\\.default|coplot|curve|dotchart|erase\\.screen|filled\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\.default|identify|image|image\\.default|layout|layout\\.show|lcm|legend|lines|lines\\.default|locator|matlines|matplot|matpoints|mosaicplot|mtext|pairs|pairs\\.default|panel\\.smooth|par|persp|pie|plot|plot\\.default|plot\\.design|plot\\.function|plot\\.new|plot\\.window|plot\\.xy|points|points\\.default|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|split\\.screen|stars|stem|strheight|stripchart|strwidth|sunflowerplot|symbols|text|text\\.default|title|xinch|xspline|xyinch|yinch)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(adjustcolor|as\\.graphicsAnnot|as\\.raster|axisTicks|bitmap|blues9|bmp|boxplot\\.stats|cairo_pdf|cairo_ps|cairoSymbolFont|check\\.options|chull|CIDFont|cm|cm\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colorspaces|colours|contourLines|convertColor|densCols|dev2bitmap|devAskNewPage|dev\\.capabilities|dev\\.capture|dev\\.control|dev\\.copy|dev\\.copy2eps|dev\\.copy2pdf|dev\\.cur|dev\\.flush|dev\\.hold|deviceIsInteractive|dev\\.interactive|dev\\.list|dev\\.new|dev\\.next|dev\\.off|dev\\.prev|dev\\.print|dev\\.set|dev\\.size|embedFonts|extendrange|getGraphicsEvent|getGraphicsEventEnv|graphics\\.off|gray|gray\\.colors|grey|grey\\.colors|grSoftVersion|hcl|hcl\\.colors|hcl\\.pals|heat\\.colors|Hershey|hsv|is\\.raster|jpeg|make\\.rgb|n2mfrow|nclass\\.FD|nclass\\.scott|nclass\\.Sturges|palette|palette\\.colors|palette\\.pals|pdf|pdfFonts|pdf\\.options|pictex|png|postscript|postscriptFonts|ps\\.options|quartz|quartzFont|quartzFonts|quartz\\.options|quartz\\.save|rainbow|recordGraphics|recordPlot|replayPlot|rgb|rgb2hsv|savePlot|setEPS|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|svg|terrain\\.colors|tiff|topo\\.colors|trans3d|Type1Font|x11|X11|X11Font|X11Fonts|X11\\.options|xfig|xy\\.coords|xyTable|xyz\\.coords)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(addNextMethod|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|cacheGenericsMetaData|cacheMetaData|cacheMethod|callGeneric|callNextMethod|canCoerce|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\.dump|emptyMethodsList|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\.8|formalArgs|functionBody|generic\\.skeleton|getAllSuperClasses|getClass|getClassDef|getClasses|getDataPart|getFunction|getGeneric|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsForDispatch|getMethodsMetaData|getPackageName|getRefClass|getSlots|getValidity|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inheritedSlotNames|initFieldArgs|initialize|initRefFields|insertClassMethods|insertMethod|insertSource|is|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isRematched|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|linearizeMlist|listFromMethods|listFromMlist|loadMethod|Logic|makeClassRepresentation|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchSignature|Math|Math2|mergeMethods|metaNameUndo|MethodAddCoerce|methodSignatureMatrix|method\\.skeleton|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|packageSlot|possibleExtends|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind2|reconcilePropertiesAndPrototype|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|representation|requireMethods|resetClass|resetGeneric|S3Class|S3Part|sealClass|selectMethod|selectSuperClasses|setAs|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setOldClass|setPackageName|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showDefault|showExtends|showMethods|showMlist|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|testInheritedMethods|testVirtual|tryNew|unRematchDefinition|validObject|validSlotNames)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(acf|acf2AR|add1|addmargins|add\\.scope|aggregate|aggregate\\.data\\.frame|aggregate\\.ts|AIC|alias|anova|ansari\\.test|aov|approx|approxfun|ar|ar\\.burg|arima|arima0|arima0\\.diag|arima\\.sim|ARMAacf|ARMAtoMA|ar\\.mle|ar\\.ols|ar\\.yw|as\\.dendrogram|as\\.dist|as\\.formula|as\\.hclust|asOneSidedFormula|as\\.stepfun|as\\.ts|ave|bandwidth\\.kernel|bartlett\\.test|BIC|binomial|binom\\.test|biplot|Box\\.test|bw\\.bcv|bw\\.nrd|bw\\.nrd0|bw\\.SJ|bw\\.ucv|C|cancor|case\\.names|ccf|chisq\\.test|cmdscale|coef|coefficients|complete\\.cases|confint|confint\\.default|confint\\.lm|constrOptim|contrasts|contr\\.helmert|contr\\.poly|contr\\.SAS|contr\\.sum|contr\\.treatment|convolve|cooks\\.distance|cophenetic|cor|cor\\.test|cov|cov2cor|covratio|cov\\.wt|cpgram|cutree|cycle|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\.response|deltat|dendrapply|density|density\\.default|deriv|deriv3|deviance|dexp|df|DF2formula|dfbeta|dfbetas|dffits|df\\.kernel|df\\.residual|dgamma|dgeom|dhyper|diffinv|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop1|drop\\.scope|drop\\.terms|dsignrank|dt|dummy\\.coef|dummy\\.coef\\.lm|dunif|dweibull|dwilcox|ecdf|eff\\.aovlist|effects|embed|end|estVar|expand\\.model\\.frame|extractAIC|factanal|factor\\.scope|family|fft|filter|fisher\\.test|fitted|fitted\\.values|fivenum|fligner\\.test|formula|frequency|friedman\\.test|ftable|Gamma|gaussian|get_all_vars|getCall|getInitial|glm|glm\\.control|glm\\.fit|hasTsp|hat|hatvalues|hclust|heatmap|HoltWinters|influence|influence\\.measures|integrate|interaction\\.plot|inverse\\.gaussian|IQR|is\\.empty\\.model|is\\.leaf|is\\.mts|isoreg|is\\.stepfun|is\\.ts|is\\.tskernel|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernel|kmeans|knots|kruskal\\.test|ksmooth|ks\\.test|lag|lag\\.plot|line|lm|lm\\.fit|lm\\.influence|lm\\.wfit|loadings|loess|loess\\.control|loess\\.smooth|logLik|loglin|lowess|ls\\.diag|lsfit|ls\\.print|mad|mahalanobis|makeARIMA|make\\.link|makepredictcall|manova|mantelhaen\\.test|mauchly\\.test|mcnemar\\.test|median|median\\.default|medpolish|model\\.extract|model\\.frame|model\\.frame\\.default|model\\.matrix|model\\.matrix\\.default|model\\.matrix\\.lm|model\\.offset|model\\.response|model\\.tables|model\\.weights|monthplot|mood\\.test|mvfft|na\\.action|na\\.contiguous|na\\.exclude|na\\.fail|na\\.omit|na\\.pass|napredict|naprint|naresid|nextn|nlm|nlminb|nls|nls\\.control|NLSstAsymptotic|NLSstClosestX|NLSstLfAsymptote|NLSstRtAsymptote|nobs|numericDeriv|offset|oneway\\.test|optim|optimHess|optimise|optimize|order\\.dendrogram|pacf|p\\.adjust|p\\.adjust\\.methods|Pair|pairwise\\.prop\\.test|pairwise\\.table|pairwise\\.t\\.test|pairwise\\.wilcox\\.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|plclust|plnorm|plogis|plot\\.ecdf|plot\\.spec\\.coherency|plot\\.spec\\.phase|plot\\.stepfun|plot\\.ts|pnbinom|pnorm|poisson|poisson\\.test|poly|polym|power|power\\.anova\\.test|power\\.prop\\.test|power\\.t\\.test|ppoints|ppois|ppr|PP\\.test|prcomp|predict|predict\\.glm|predict\\.lm|preplot|princomp|printCoefmat|profile|proj|promax|prop\\.test|prop\\.trend\\.test|psignrank|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqplot|qsignrank|qt|qtukey|quade\\.test|quantile|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|rbeta|rbinom|rcauchy|rchisq|read\\.ftable|rect\\.hclust|reformulate|relevel|reorder|replications|reshape|resid|residuals|residuals\\.glm|residuals\\.lm|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|rpois|rsignrank|rstandard|rstudent|rt|runif|runmed|rweibull|rwilcox|rWishart|scatter\\.smooth|screeplot|sd|se\\.contrast|selfStart|setNames|shapiro\\.test|sigma|simulate|smooth|smoothEnds|smooth\\.spline|sortedXyData|spec\\.ar|spec\\.pgram|spec\\.taper|spectrum|spline|splinefun|splinefunH|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|stat\\.anova|step|stepfun|stl|StructTS|summary\\.aov|summary\\.glm|summary\\.lm|summary\\.manova|summary\\.stepfun|supsmu|symnum|termplot|terms|terms\\.formula|time|toeplitz|ts|tsdiag|ts\\.intersect|tsp|ts\\.plot|tsSmooth|ts\\.union|t\\.test|TukeyHSD|uniroot|update|update\\.default|update\\.formula|var|variable\\.names|varimax|var\\.test|vcov|weighted\\.mean|weighted\\.residuals|weights|wilcox\\.test|window|write\\.ftable|xtabs)\\s*(\\()"},{captures:{1:{name:"support.function.r"}},match:"\\b(adist|alarm|apropos|aregexec|argsAnywhere|asDateBuilt|askYesNo|aspell|aspell_package_C_files|aspell_package_Rd_files|aspell_package_R_files|aspell_package_vignettes|aspell_write_personal_dictionary_file|as\\.person|as\\.personList|as\\.relistable|as\\.roman|assignInMyNamespace|assignInNamespace|available\\.packages|bibentry|browseEnv|browseURL|browseVignettes|bug\\.report|capture\\.output|changedFiles|charClass|checkCRAN|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\.socket|combn|compareVersion|contrib\\.url|count\\.fields|create\\.post|data|dataentry|data\\.entry|de|debugcall|debugger|demo|de\\.ncols|de\\.restore|de\\.setup|download\\.file|download\\.packages|dump\\.frames|edit|emacs|example|file\\.edit|fileSnapshot|file_test|find|findLineNum|fix|fixInNamespace|flush\\.console|formatOL|formatUL|getAnywhere|getCRANmirrors|getFromNamespace|getParseData|getParseText|getS3method|getSrcDirectory|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hasName|head|head\\.matrix|help|help\\.request|help\\.search|help\\.start|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|installed\\.packages|install\\.packages|is\\.relistable|isS3method|isS3stdGeneric|limitedLabels|loadhistory|localeToCharset|lsf\\.str|ls\\.str|maintainer|make\\.packages\\.html|makeRweaveLatexCodeRunner|make\\.socket|memory\\.limit|memory\\.size|menu|methods|mirror2html|modifyList|new\\.packages|news|nsl|object\\.size|old\\.packages|osVersion|packageDate|packageDescription|packageName|package\\.skeleton|packageStatus|packageVersion|page|person|personList|pico|process\\.events|prompt|promptData|promptImport|promptPackage|rc\\.getOption|rc\\.options|rc\\.settings|rc\\.status|readCitationFile|read\\.csv|read\\.csv2|read\\.delim|read\\.delim2|read\\.DIF|read\\.fortran|read\\.fwf|read\\.socket|read\\.table|recover|relist|remove\\.packages|removeSource|Rprof|Rprofmem|RShowDoc|RSiteSearch|rtags|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\.list|sessionInfo|setBreakpoint|setRepositories|setTxtProgressBar|stack|Stangle|str|strcapture|strOptions|summaryRprof|suppressForeignCheck|Sweave|SweaveHooks|SweaveSyntaxLatex|SweaveSyntaxNoweb|SweaveSyntConv|tail|tail\\.matrix|tar|timestamp|toBibtex|toLatex|txtProgressBar|type\\.convert|undebugcall|unstack|untar|unzip|update\\.packages|upgrade|URLdecode|URLencode|url\\.show|vi|View|vignette|warnErrList|write\\.csv|write\\.csv2|write\\.socket|write\\.table|xedit|xemacs|zip)\\s*(\\()"}]},comments:{patterns:[{captures:{1:{name:"comment.line.pragma.r"},2:{name:"entity.name.pragma.name.r"}},match:"^(#pragma[ \\t]+mark)[ \\t](.*)",name:"comment.line.pragma-mark.r"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.r"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.r"}},end:"\\n",name:"comment.line.number-sign.r"}]}]},constants:{patterns:[{match:"\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b",name:"support.constant.misc.r"},{match:"\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\b",name:"constant.language.r"},{match:"\\b0(x|X)[0-9a-fA-F]+i\\b",name:"constant.numeric.imaginary.hexadecimal.r"},{match:"\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?i\\b",name:"constant.numeric.imaginary.decimal.r"},{match:"\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?i\\b",name:"constant.numeric.imaginary.decimal.r"},{match:"\\b0(x|X)[0-9a-fA-F]+L\\b",name:"constant.numeric.integer.hexadecimal.r"},{match:"\\b(?:[0-9]+\\.?[0-9]*)(?:(e|E)(\\+|-)?[0-9]+)?L\\b",name:"constant.numeric.integer.decimal.r"},{match:"\\b0(x|X)[0-9a-fA-F]+\\b",name:"constant.numeric.float.hexadecimal.r"},{match:"\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?\\b",name:"constant.numeric.float.decimal.r"},{match:"\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?\\b",name:"constant.numeric.float.decimal.r"}]},"function-calls":{begin:"(?:\\b|(?=\\.))((?:[a-zA-Z._][\\w.]*|`[^`]+`))\\s*(\\()",beginCaptures:{1:{name:"variable.function.r"},2:{name:"punctuation.section.parens.begin.r"}},contentName:"meta.function-call.arguments.r",end:"(\\))",endCaptures:{1:{name:"punctuation.section.parens.end.r"}},name:"meta.function-call.r",patterns:[{include:"#function-parameters"}]},"function-declarations":{patterns:[{captures:{1:{name:"entity.name.function.r"},2:{name:"keyword.operator.assignment.r"},3:{name:"keyword.control.r"}},match:"((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function|\\\\)(?!\\w)",name:"meta.function.r",patterns:[{include:"#lambda-functions"}]}]},"function-parameters":{patterns:[{contentName:"meta.function-call.parameters.r",name:"meta.function-call.r"},{match:"(?:[a-zA-Z._][\\w.]*|`[^`]+`)(?=\\s[^=])",name:"variable.other.r"},{begin:"(?==)",end:"(?=[,)])",patterns:[{include:"source.r"}]},{match:",",name:"punctuation.separator.parameters.r"},{include:"source.r"}]},"general-variables":{patterns:[{captures:{1:{name:"variable.parameter.r"},2:{name:"keyword.operator.assignment.r"}},match:"([[:alpha:].][[:alnum:]._]*)\\s*(=)(?=[^=])"},{captures:{1:{name:"variable.parameter.r"},2:{name:"keyword.operator.assignment.r"}},match:"(`[^`]+`)\\s*(=)(?=[^=])"},{match:"\\b([\\d_][[:alnum:]._]+)\\b",name:"invalid.illegal.variable.other.r"},{match:"\\b([[:alnum:]_]+)(?=::)",name:"entity.namespace.r"},{match:"\\b([[:alnum:]._]+)\\b",name:"variable.other.r"},{match:"(`[^`]+`)",name:"variable.other.r"}]},keywords:{patterns:[{match:"\\b(break|next|repeat|else|in)\\b",name:"keyword.control.r"},{match:"\\b(ifelse|if|for|return|switch|while|invisible)\\b(?=\\s*\\()",name:"keyword.control.r"},{match:"(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%o%|%x%|\\^)",name:"keyword.operator.arithmetic.r"},{match:"(:=|<-|<<-|->|->>)",name:"keyword.operator.assignment.r"},{match:"(==|<=|>=|!=|<>|<|>|%in%)",name:"keyword.operator.comparison.r"},{match:"(!|&{1,2}|[|]{1,2})",name:"keyword.operator.logical.r"},{match:"(\\|>)",name:"keyword.operator.pipe.r"},{match:"(%between%|%chin%|%like%|%\\+%|%\\+replace%|%:%|%do%|%dopar%|%>%|%<>%|%T>%|%\\$%)",name:"keyword.operator.other.r"},{match:"(\\.\\.\\.|\\$|:|\\~|@)",name:"keyword.other.r"}]},"lambda-functions":{patterns:[{begin:"\\b(function)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.r"},2:{name:"punctuation.section.parens.begin.r"}},contentName:"meta.function.parameters.r",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.r"}},name:"meta.function.r",patterns:[{include:"#comments"},{match:"(?:[a-zA-Z._][\\w.]*|`[^`]+`)",name:"variable.other.r"},{begin:"(?==)",end:"(?=[,)])",patterns:[{include:"source.r"}]},{match:",",name:"punctuation.separator.parameters.r"}]}]},roxygen:{patterns:[{begin:"^\\s*(#')\\s*",beginCaptures:{1:{name:"punctuation.definition.comment.r"}},end:"$\\n?",name:"comment.line.roxygen.r",patterns:[{captures:{1:{name:"keyword.other.r"},2:{name:"variable.parameter.r"}},match:"(@param)\\s*((?:[a-zA-Z._][\\w.]*|`[^`]+`))"},{match:"@[a-zA-Z0-9]+",name:"keyword.other.r"}]}]},"storage-type":{patterns:[{match:"\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw)\\b(?=\\s*\\()",name:"storage.type.r"}]},strings:{patterns:[{begin:'[rR]"(-*)\\[',beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:'\\]\\1"',endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\[",beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:"\\]\\1'",endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:'[rR]"(-*)\\{',beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:'\\}\\1"',endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\{",beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:"\\}\\1'",endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:'[rR]"(-*)\\(',beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:'\\)\\1"',endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\(",beginCaptures:{0:{name:"punctuation.definition.string.raw.begin.r"}},end:"\\)\\1'",endCaptures:{0:{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.r"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.r"}},name:"string.quoted.double.r",patterns:[{match:"\\\\.",name:"constant.character.escape.r"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.r"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.r"}},name:"string.quoted.single.r",patterns:[{match:"\\\\.",name:"constant.character.escape.r"}]}]}},r="source.r",n={displayName:"R",name:"r",patterns:t,repository:s,scopeName:r};export{n as default,e as displayName,a as name,t as patterns,s as repository,r as scopeName}; diff --git a/lib/dist/grammar/racket.mjs b/lib/dist/grammar/racket.mjs new file mode 100644 index 0000000..9851f1d --- /dev/null +++ b/lib/dist/grammar/racket.mjs @@ -0,0 +1 @@ +var e="Racket",t="racket",a=[{include:"#comment"},{include:"#not-atom"},{include:"#atom"},{include:"#quote"},{match:"^#lang",name:"keyword.other.racket"}],n={args:{patterns:[{include:"#keyword"},{include:"#comment"},{include:"#default-args"},{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"variable.parameter.racket"}]},argument:{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"variable.parameter.racket",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}},{begin:"(?x) (?<=[(\\[{]) \\s*\n(\\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",beginCaptures:{1:{name:"variable.parameter.racket"}},contentName:"variable.parameter.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},"argument-struct":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"variable.other.member.racket",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}},{begin:"(?x) (?<=[(\\[{]) \\s*\n(\\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",beginCaptures:{1:{name:"variable.other.member.racket"}},contentName:"variable.other.member.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},atom:{patterns:[{include:"#bool"},{include:"#number"},{include:"#string"},{include:"#keyword"},{include:"#character"},{include:"#symbol"},{include:"#variable"}]},"base-string":{patterns:[{begin:'"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.quoted.double.racket",patterns:[{include:"#escape-char"}]}]},binding:{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"entity.name.constant",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}},{begin:"(?x) (?<=[(\\[{]) \\s*\n(\\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",beginCaptures:{1:{name:"entity.name.constant"}},contentName:"entity.name.constant",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},bool:{patterns:[{match:"(?x)\n(?<=^|[()\\[\\]{}\",'`;\\s]) \\#\n(?: [tT](?: rue)?|[fF](?: alse)?)\n(?=[()\\[\\]{}\",'`;\\s])\n",name:"constant.language.racket"}]},"builtin-functions":{patterns:[{include:"#format"},{include:"#define"},{include:"#lambda"},{include:"#struct"},{captures:{1:{name:"support.function.racket"}},match:"(?x) (?<=$|[()\\[\\]{}\",'`;\\s])\n(\n\\.\\.\\. | _ | syntax-id-rules | syntax-rules | \\#%app | \\#%datum | \\#%declare | \\#%expression | \\#%module-begin | \\#%plain-app | \\#%plain-lambda | \\#%plain-module-begin | \\#%printing-module-begin | \\#%provide | \\#%require | \\#%stratified-body | \\#%top | \\#%top-interaction | \\#%variable-reference | \\.\\.\\. | :do-in | => | _ | all-defined-out | all-from-out | and | apply | arity-at-least | begin | begin-for-syntax | begin0 | call-with-input-file | call-with-input-file\\* | call-with-output-file | call-with-output-file\\* | case | case-lambda | combine-in | combine-out | cond | date | date\\* | define | define-for-syntax | define-logger | define-namespace-anchor | define-sequence-syntax | define-struct | define-struct\\/derived | define-syntax | define-syntax-rule | define-syntaxes | define-values | define-values-for-syntax | do | else | except-in | except-out | exn | exn:break | exn:break:hang-up | exn:break:terminate | exn:fail | exn:fail:contract | exn:fail:contract:arity | exn:fail:contract:continuation | exn:fail:contract:divide-by-zero | exn:fail:contract:non-fixnum-result | exn:fail:contract:variable | exn:fail:filesystem | exn:fail:filesystem:errno | exn:fail:filesystem:exists | exn:fail:filesystem:missing-module | exn:fail:filesystem:version | exn:fail:network | exn:fail:network:errno | exn:fail:out-of-memory | exn:fail:read | exn:fail:read:eof | exn:fail:read:non-char | exn:fail:syntax | exn:fail:syntax:missing-module | exn:fail:syntax:unbound | exn:fail:unsupported | exn:fail:user | file | for | for\\* | for\\*\\/and | for\\*\\/first | for\\*\\/fold | for\\*\\/fold\\/derived | for\\*\\/hash | for\\*\\/hasheq | for\\*\\/hasheqv | for\\*\\/last | for\\*\\/list | for\\*\\/lists | for\\*\\/or | for\\*\\/product | for\\*\\/sum | for\\*\\/vector | for-label | for-meta | for-syntax | for-template | for\\/and | for\\/first | for\\/fold | for\\/fold\\/derived | for\\/hash | for\\/hasheq | for\\/hasheqv | for\\/last | for\\/list | for\\/lists | for\\/or | for\\/product | for\\/sum | for\\/vector | gen:custom-write | gen:equal\\+hash | if | in-bytes | in-bytes-lines | in-directory | in-hash | in-hash-keys | in-hash-pairs | in-hash-values | in-immutable-hash | in-immutable-hash-keys | in-immutable-hash-pairs | in-immutable-hash-values | in-indexed | in-input-port-bytes | in-input-port-chars | in-lines | in-list | in-mlist | in-mutable-hash | in-mutable-hash-keys | in-mutable-hash-pairs | in-mutable-hash-values | in-naturals | in-port | in-producer | in-range | in-string | in-value | in-vector | in-weak-hash | in-weak-hash-keys | in-weak-hash-pairs | in-weak-hash-values | lambda | let | let\\* | let\\*-values | let-syntax | let-syntaxes | let-values | let\\/cc | let\\/ec | letrec | letrec-syntax | letrec-syntaxes | letrec-syntaxes\\+values | letrec-values | lib | local-require | log-debug | log-error | log-fatal | log-info | log-warning | module | module\\* | module\\+ | only-in | only-meta-in | open-input-file | open-input-output-file | open-output-file | or | parameterize | parameterize\\* | parameterize-break | planet | prefix-in | prefix-out | protect-out | provide | quasiquote | quasisyntax | quasisyntax\\/loc | quote | quote-syntax | quote-syntax\\/prune | regexp-match\\* | regexp-match-peek-positions\\* | regexp-match-positions\\* | relative-in | rename-in | rename-out | require | set! | set!-values | sort | srcloc | struct | struct-copy | struct-field-index | struct-out | submod | syntax | syntax-case | syntax-case\\* | syntax-id-rules | syntax-rules | syntax\\/loc | time | unless | unquote | unquote-splicing | unsyntax | unsyntax-splicing | when | with-continuation-mark | with-handlers | with-handlers\\* | with-input-from-file | with-output-to-file | with-syntax | λ | \\#%app | \\#%datum | \\#%declare | \\#%expression | \\#%module-begin | \\#%plain-app | \\#%plain-lambda | \\#%plain-module-begin | \\#%printing-module-begin | \\#%provide | \\#%require | \\#%stratified-body | \\#%top | \\#%top-interaction | \\#%variable-reference | -> | ->\\* | ->\\*m | ->d | ->dm | ->i | ->m | \\.\\.\\. | :do-in | <=\\/c | =\\/c | == | => | >=\\/c | _ | absent | abstract | add-between | all-defined-out | all-from-out | and | and\\/c | any | any\\/c | apply | arity-at-least | arrow-contract-info | augment | augment\\* | augment-final | augment-final\\* | augride | augride\\* | bad-number-of-results | begin | begin-for-syntax | begin0 | between\\/c | blame-add-context | box-immutable\\/c | box\\/c | call-with-atomic-output-file | call-with-file-lock\\/timeout | call-with-input-file | call-with-input-file\\* | call-with-output-file | call-with-output-file\\* | case | case-> | case->m | case-lambda | channel\\/c | char-in\\/c | check-duplicates | class | class\\* | class-field-accessor | class-field-mutator | class\\/c | class\\/derived | combine-in | combine-out | command-line | compound-unit | compound-unit\\/infer | cond | cons\\/c | cons\\/dc | continuation-mark-key\\/c | contract | contract-exercise | contract-out | contract-struct | contracted | copy-directory\\/files | current-contract-region | date | date\\* | define | define-compound-unit | define-compound-unit\\/infer | define-contract-struct | define-custom-hash-types | define-custom-set-types | define-for-syntax | define-local-member-name | define-logger | define-match-expander | define-member-name | define-module-boundary-contract | define-namespace-anchor | define-opt\\/c | define-sequence-syntax | define-serializable-class | define-serializable-class\\* | define-signature | define-signature-form | define-struct | define-struct\\/contract | define-struct\\/derived | define-syntax | define-syntax-rule | define-syntaxes | define-unit | define-unit-binding | define-unit-from-context | define-unit\\/contract | define-unit\\/new-import-export | define-unit\\/s | define-values | define-values-for-export | define-values-for-syntax | define-values\\/invoke-unit | define-values\\/invoke-unit\\/infer | define\\/augment | define\\/augment-final | define\\/augride | define\\/contract | define\\/final-prop | define\\/match | define\\/overment | define\\/override | define\\/override-final | define\\/private | define\\/public | define\\/public-final | define\\/pubment | define\\/subexpression-pos-prop | define\\/subexpression-pos-prop\\/name | delay | delay\\/idle | delay\\/name | delay\\/strict | delay\\/sync | delay\\/thread | delete-directory\\/files | dict->list | dict-can-functional-set\\? | dict-can-remove-keys\\? | dict-clear | dict-clear! | dict-copy | dict-count | dict-empty\\? | dict-for-each | dict-has-key\\? | dict-implements\\/c | dict-implements\\? | dict-iterate-first | dict-iterate-key | dict-iterate-next | dict-iterate-value | dict-keys | dict-map | dict-mutable\\? | dict-ref | dict-ref! | dict-remove | dict-remove! | dict-set | dict-set! | dict-set\\* | dict-set\\*! | dict-update | dict-update! | dict-values | dict\\? | display-lines | display-lines-to-file | display-to-file | do | dynamic->\\* | dynamic-place | dynamic-place\\* | else | eof-evt | except | except-in | except-out | exn | exn:break | exn:break:hang-up | exn:break:terminate | exn:fail | exn:fail:contract | exn:fail:contract:arity | exn:fail:contract:blame | exn:fail:contract:continuation | exn:fail:contract:divide-by-zero | exn:fail:contract:non-fixnum-result | exn:fail:contract:variable | exn:fail:filesystem | exn:fail:filesystem:errno | exn:fail:filesystem:exists | exn:fail:filesystem:missing-module | exn:fail:filesystem:version | exn:fail:network | exn:fail:network:errno | exn:fail:object | exn:fail:out-of-memory | exn:fail:read | exn:fail:read:eof | exn:fail:read:non-char | exn:fail:syntax | exn:fail:syntax:missing-module | exn:fail:syntax:unbound | exn:fail:unsupported | exn:fail:user | export | extends | failure-cont | field | field-bound\\? | file | file->bytes | file->bytes-lines | file->lines | file->list | file->string | file->value | find-files | find-relative-path | first-or\\/c | flat-contract-with-explanation | flat-murec-contract | flat-rec-contract | for | for\\* | for\\*\\/and | for\\*\\/async | for\\*\\/first | for\\*\\/fold | for\\*\\/fold\\/derived | for\\*\\/hash | for\\*\\/hasheq | for\\*\\/hasheqv | for\\*\\/last | for\\*\\/list | for\\*\\/lists | for\\*\\/mutable-set | for\\*\\/mutable-seteq | for\\*\\/mutable-seteqv | for\\*\\/or | for\\*\\/product | for\\*\\/set | for\\*\\/seteq | for\\*\\/seteqv | for\\*\\/stream | for\\*\\/sum | for\\*\\/vector | for\\*\\/weak-set | for\\*\\/weak-seteq | for\\*\\/weak-seteqv | for-label | for-meta | for-syntax | for-template | for\\/and | for\\/async | for\\/first | for\\/fold | for\\/fold\\/derived | for\\/hash | for\\/hasheq | for\\/hasheqv | for\\/last | for\\/list | for\\/lists | for\\/mutable-set | for\\/mutable-seteq | for\\/mutable-seteqv | for\\/or | for\\/product | for\\/set | for\\/seteq | for\\/seteqv | for\\/stream | for\\/sum | for\\/vector | for\\/weak-set | for\\/weak-seteq | for\\/weak-seteqv | gen:custom-write | gen:dict | gen:equal\\+hash | gen:set | gen:stream | generic | get-field | get-preference | hash\\/c | hash\\/dc | if | implies | import | in-bytes | in-bytes-lines | in-dict | in-dict-keys | in-dict-values | in-directory | in-hash | in-hash-keys | in-hash-pairs | in-hash-values | in-immutable-hash | in-immutable-hash-keys | in-immutable-hash-pairs | in-immutable-hash-values | in-immutable-set | in-indexed | in-input-port-bytes | in-input-port-chars | in-lines | in-list | in-mlist | in-mutable-hash | in-mutable-hash-keys | in-mutable-hash-pairs | in-mutable-hash-values | in-mutable-set | in-naturals | in-port | in-producer | in-range | in-set | in-slice | in-stream | in-string | in-syntax | in-value | in-vector | in-weak-hash | in-weak-hash-keys | in-weak-hash-pairs | in-weak-hash-values | in-weak-set | include | include-at\\/relative-to | include-at\\/relative-to\\/reader | include\\/reader | inherit | inherit-field | inherit\\/inner | inherit\\/super | init | init-depend | init-field | init-rest | inner | inspect | instantiate | integer-in | interface | interface\\* | invariant-assertion | invoke-unit | invoke-unit\\/infer | lambda | lazy | let | let\\* | let\\*-values | let-syntax | let-syntaxes | let-values | let\\/cc | let\\/ec | letrec | letrec-syntax | letrec-syntaxes | letrec-syntaxes\\+values | letrec-values | lib | link | list\\*of | list\\/c | listof | local | local-require | log-debug | log-error | log-fatal | log-info | log-warning | make-custom-hash | make-custom-hash-types | make-custom-set | make-custom-set-types | make-handle-get-preference-locked | make-immutable-custom-hash | make-mutable-custom-set | make-object | make-temporary-file | make-weak-custom-hash | make-weak-custom-set | match | match\\* | match\\*\\/derived | match-define | match-define-values | match-lambda | match-lambda\\* | match-lambda\\*\\* | match-let | match-let\\* | match-let\\*-values | match-let-values | match-letrec | match-letrec-values | match\\/derived | match\\/values | member-name-key | mixin | module | module\\* | module\\+ | nand | new | new-∀\\/c | new-∃\\/c | non-empty-listof | none\\/c | nor | not\\/c | object-contract | object\\/c | one-of\\/c | only | only-in | only-meta-in | open | open-input-file | open-input-output-file | open-output-file | opt\\/c | or | or\\/c | overment | overment\\* | override | override\\* | override-final | override-final\\* | parameter\\/c | parameterize | parameterize\\* | parameterize-break | parametric->\\/c | pathlist-closure | peek-bytes!-evt | peek-bytes-avail!-evt | peek-bytes-evt | peek-string!-evt | peek-string-evt | peeking-input-port | place | place\\* | place\\/context | planet | port->bytes | port->bytes-lines | port->lines | port->string | prefix | prefix-in | prefix-out | pretty-format | private | private\\* | procedure-arity-includes\\/c | process | process\\* | process\\*\\/ports | process\\/ports | promise\\/c | prompt-tag\\/c | prop:dict\\/contract | protect-out | provide | provide-signature-elements | provide\\/contract | public | public\\* | public-final | public-final\\* | pubment | pubment\\* | quasiquote | quasisyntax | quasisyntax\\/loc | quote | quote-syntax | quote-syntax\\/prune | raise-blame-error | raise-not-cons-blame-error | range | read-bytes!-evt | read-bytes-avail!-evt | read-bytes-evt | read-bytes-line-evt | read-line-evt | read-string!-evt | read-string-evt | real-in | recontract-out | recursive-contract | regexp-match\\* | regexp-match-evt | regexp-match-peek-positions\\* | regexp-match-positions\\* | relative-in | relocate-input-port | relocate-output-port | remove-duplicates | rename | rename-in | rename-inner | rename-out | rename-super | require | send | send\\* | send\\+ | send-generic | send\\/apply | send\\/keyword-apply | sequence\\/c | set! | set!-values | set-field! | set\\/c | shared | sort | srcloc | stream | stream\\* | stream-cons | string-join | string-len\\/c | string-normalize-spaces | string-replace | string-split | string-trim | struct | struct\\* | struct-copy | struct-field-index | struct-out | struct\\/c | struct\\/ctc | struct\\/dc | submod | super | super-instantiate | super-make-object | super-new | symbols | syntax | syntax-case | syntax-case\\* | syntax-id-rules | syntax-rules | syntax\\/c | syntax\\/loc | system | system\\* | system\\*\\/exit-code | system\\/exit-code | tag | this | this% | thunk | thunk\\* | time | transplant-input-port | transplant-output-port | unconstrained-domain-> | unit | unit-from-context | unit\\/c | unit\\/new-import-export | unit\\/s | unless | unquote | unquote-splicing | unsyntax | unsyntax-splicing | values\\/drop | vector-immutable\\/c | vector-immutableof | vector-sort | vector-sort! | vector\\/c | vectorof | when | with-continuation-mark | with-contract | with-contract-continuation-mark | with-handlers | with-handlers\\* | with-input-from-file | with-method | with-output-to-file | with-syntax | wrapped-extra-arg-arrow | write-to-file | ~\\.a | ~\\.s | ~\\.v | ~a | ~e | ~r | ~s | ~v | λ | expand-for-clause | for-clause-syntax-protect | syntax-pattern-variable\\? | \\* | \\+ | - | \\/ | < | <= | = | > | >= | abort-current-continuation | abs | absolute-path\\? | acos | add1 | alarm-evt | always-evt | andmap | angle | append | arithmetic-shift | arity-at-least-value | arity-at-least\\? | asin | assf | assoc | assq | assv | atan | banner | bitwise-and | bitwise-bit-field | bitwise-bit-set\\? | bitwise-ior | bitwise-not | bitwise-xor | boolean\\? | bound-identifier=\\? | box | box-cas! | box-immutable | box\\? | break-enabled | break-parameterization\\? | break-thread | build-list | build-path | build-path\\/convention-type | build-string | build-vector | byte-pregexp | byte-pregexp\\? | byte-ready\\? | byte-regexp | byte-regexp\\? | byte\\? | bytes | bytes->immutable-bytes | bytes->list | bytes->path | bytes->path-element | bytes->string\\/latin-1 | bytes->string\\/locale | bytes->string\\/utf-8 | bytes-append | bytes-close-converter | bytes-convert | bytes-convert-end | bytes-converter\\? | bytes-copy | bytes-copy! | bytes-environment-variable-name\\? | bytes-fill! | bytes-length | bytes-open-converter | bytes-ref | bytes-set! | bytes-utf-8-index | bytes-utf-8-length | bytes-utf-8-ref | bytes<\\? | bytes=\\? | bytes>\\? | bytes\\? | caaaar | caaadr | caaar | caadar | caaddr | caadr | caar | cadaar | cadadr | cadar | caddar | cadddr | caddr | cadr | call-in-nested-thread | call-with-break-parameterization | call-with-composable-continuation | call-with-continuation-barrier | call-with-continuation-prompt | call-with-current-continuation | call-with-default-reading-parameterization | call-with-escape-continuation | call-with-exception-handler | call-with-immediate-continuation-mark | call-with-parameterization | call-with-semaphore | call-with-semaphore\\/enable-break | call-with-values | call\\/cc | call\\/ec | car | cdaaar | cdaadr | cdaar | cdadar | cdaddr | cdadr | cdar | cddaar | cddadr | cddar | cdddar | cddddr | cdddr | cddr | cdr | ceiling | channel-get | channel-put | channel-put-evt | channel-put-evt\\? | channel-try-get | channel\\? | chaperone-box | chaperone-channel | chaperone-continuation-mark-key | chaperone-evt | chaperone-hash | chaperone-of\\? | chaperone-procedure | chaperone-procedure\\* | chaperone-prompt-tag | chaperone-struct | chaperone-struct-type | chaperone-vector | chaperone-vector\\* | chaperone\\? | char->integer | char-alphabetic\\? | char-blank\\? | char-ci<=\\? | char-ci<\\? | char-ci=\\? | char-ci>=\\? | char-ci>\\? | char-downcase | char-foldcase | char-general-category | char-graphic\\? | char-iso-control\\? | char-lower-case\\? | char-numeric\\? | char-punctuation\\? | char-ready\\? | char-symbolic\\? | char-title-case\\? | char-titlecase | char-upcase | char-upper-case\\? | char-utf-8-length | char-whitespace\\? | char<=\\? | char<\\? | char=\\? | char>=\\? | char>\\? | char\\? | check-duplicate-identifier | check-tail-contract | checked-procedure-check-and-extract | choice-evt | cleanse-path | close-input-port | close-output-port | collect-garbage | collection-file-path | collection-path | compile | compile-allow-set!-undefined | compile-context-preservation-enabled | compile-enforce-module-constants | compile-syntax | compiled-expression-recompile | compiled-expression\\? | compiled-module-expression\\? | complete-path\\? | complex\\? | compose | compose1 | cons | continuation-mark-key\\? | continuation-mark-set->context | continuation-mark-set->list | continuation-mark-set->list\\* | continuation-mark-set-first | continuation-mark-set\\? | continuation-marks | continuation-prompt-available\\? | continuation-prompt-tag\\? | continuation\\? | copy-file | cos | current-break-parameterization | current-code-inspector | current-command-line-arguments | current-compile | current-compiled-file-roots | current-continuation-marks | current-custodian | current-directory | current-directory-for-user | current-drive | current-environment-variables | current-error-port | current-eval | current-evt-pseudo-random-generator | current-force-delete-permissions | current-gc-milliseconds | current-get-interaction-input-port | current-inexact-milliseconds | current-input-port | current-inspector | current-library-collection-links | current-library-collection-paths | current-load | current-load-extension | current-load-relative-directory | current-load\\/use-compiled | current-locale | current-logger | current-memory-use | current-milliseconds | current-module-declare-name | current-module-declare-source | current-module-name-resolver | current-module-path-for-load | current-namespace | current-output-port | current-parameterization | current-plumber | current-preserved-thread-cell-values | current-print | current-process-milliseconds | current-prompt-read | current-pseudo-random-generator | current-read-interaction | current-reader-guard | current-readtable | current-seconds | current-security-guard | current-subprocess-custodian-mode | current-thread | current-thread-group | current-thread-initial-stack-size | current-write-relative-directory | custodian-box-value | custodian-box\\? | custodian-limit-memory | custodian-managed-list | custodian-memory-accounting-available\\? | custodian-require-memory | custodian-shut-down\\? | custodian-shutdown-all | custodian\\? | custom-print-quotable-accessor | custom-print-quotable\\? | custom-write-accessor | custom-write\\? | date\\*-nanosecond | date\\*-time-zone-name | date\\*\\? | date-day | date-dst\\? | date-hour | date-minute | date-month | date-second | date-time-zone-offset | date-week-day | date-year | date-year-day | date\\? | datum->syntax | datum-intern-literal | default-continuation-prompt-tag | delete-directory | delete-file | denominator | directory-exists\\? | directory-list | display | displayln | double-flonum\\? | dump-memory-stats | dynamic-require | dynamic-require-for-syntax | dynamic-wind | environment-variables-copy | environment-variables-names | environment-variables-ref | environment-variables-set! | environment-variables\\? | eof | eof-object\\? | ephemeron-value | ephemeron\\? | eprintf | eq-hash-code | eq\\? | equal-hash-code | equal-secondary-hash-code | equal\\? | equal\\?\\/recur | eqv-hash-code | eqv\\? | error | error-display-handler | error-escape-handler | error-print-context-length | error-print-source-location | error-print-width | error-value->string-handler | eval | eval-jit-enabled | eval-syntax | even\\? | evt\\? | exact->inexact | exact-integer\\? | exact-nonnegative-integer\\? | exact-positive-integer\\? | exact\\? | executable-yield-handler | exit | exit-handler | exn-continuation-marks | exn-message | exn:break-continuation | exn:break:hang-up\\? | exn:break:terminate\\? | exn:break\\? | exn:fail:contract:arity\\? | exn:fail:contract:continuation\\? | exn:fail:contract:divide-by-zero\\? | exn:fail:contract:non-fixnum-result\\? | exn:fail:contract:variable-id | exn:fail:contract:variable\\? | exn:fail:contract\\? | exn:fail:filesystem:errno-errno | exn:fail:filesystem:errno\\? | exn:fail:filesystem:exists\\? | exn:fail:filesystem:missing-module-path | exn:fail:filesystem:missing-module\\? | exn:fail:filesystem:version\\? | exn:fail:filesystem\\? | exn:fail:network:errno-errno | exn:fail:network:errno\\? | exn:fail:network\\? | exn:fail:out-of-memory\\? | exn:fail:read-srclocs | exn:fail:read:eof\\? | exn:fail:read:non-char\\? | exn:fail:read\\? | exn:fail:syntax-exprs | exn:fail:syntax:missing-module-path | exn:fail:syntax:missing-module\\? | exn:fail:syntax:unbound\\? | exn:fail:syntax\\? | exn:fail:unsupported\\? | exn:fail:user\\? | exn:fail\\? | exn:missing-module-accessor | exn:missing-module\\? | exn:srclocs-accessor | exn:srclocs\\? | exn\\? | exp | expand | expand-for-clause | expand-once | expand-syntax | expand-syntax-once | expand-syntax-to-top-form | expand-to-top-form | expand-user-path | explode-path | expt | file-exists\\? | file-or-directory-identity | file-or-directory-modify-seconds | file-or-directory-permissions | file-position | file-position\\* | file-size | file-stream-buffer-mode | file-stream-port\\? | file-truncate | filesystem-change-evt | filesystem-change-evt-cancel | filesystem-change-evt\\? | filesystem-root-list | filter | find-executable-path | find-library-collection-links | find-library-collection-paths | find-system-path | findf | fixnum\\? | floating-point-bytes->real | flonum\\? | floor | flush-output | foldl | foldr | for-clause-syntax-protect | for-each | format | fprintf | free-identifier=\\? | free-label-identifier=\\? | free-template-identifier=\\? | free-transformer-identifier=\\? | gcd | generate-temporaries | gensym | get-output-bytes | get-output-string | getenv | global-port-print-handler | guard-evt | handle-evt | handle-evt\\? | hash | hash->list | hash-clear | hash-clear! | hash-copy | hash-copy-clear | hash-count | hash-empty\\? | hash-eq\\? | hash-equal\\? | hash-eqv\\? | hash-for-each | hash-has-key\\? | hash-iterate-first | hash-iterate-key | hash-iterate-key\\+value | hash-iterate-next | hash-iterate-pair | hash-iterate-value | hash-keys | hash-keys-subset\\? | hash-map | hash-placeholder\\? | hash-ref | hash-ref! | hash-remove | hash-remove! | hash-set | hash-set! | hash-set\\* | hash-set\\*! | hash-update | hash-update! | hash-values | hash-weak\\? | hash\\? | hasheq | hasheqv | identifier-binding | identifier-binding-symbol | identifier-label-binding | identifier-prune-lexical-context | identifier-prune-to-source-module | identifier-remove-from-definition-context | identifier-template-binding | identifier-transformer-binding | identifier\\? | imag-part | immutable\\? | impersonate-box | impersonate-channel | impersonate-continuation-mark-key | impersonate-hash | impersonate-procedure | impersonate-procedure\\* | impersonate-prompt-tag | impersonate-struct | impersonate-vector | impersonate-vector\\* | impersonator-ephemeron | impersonator-of\\? | impersonator-prop:application-mark | impersonator-property-accessor-procedure\\? | impersonator-property\\? | impersonator\\? | in-cycle | in-parallel | in-sequences | in-values\\*-sequence | in-values-sequence | inexact->exact | inexact-real\\? | inexact\\? | input-port\\? | inspector-superior\\? | inspector\\? | integer->char | integer->integer-bytes | integer-bytes->integer | integer-length | integer-sqrt | integer-sqrt\\/remainder | integer\\? | internal-definition-context-binding-identifiers | internal-definition-context-introduce | internal-definition-context-seal | internal-definition-context\\? | keyword->string | keyword-apply | keyword<\\? | keyword\\? | kill-thread | lcm | legacy-match-expander\\? | length | liberal-define-context\\? | link-exists\\? | list | list\\* | list->bytes | list->string | list->vector | list-ref | list-tail | list\\? | load | load-extension | load-on-demand-enabled | load-relative | load-relative-extension | load\\/cd | load\\/use-compiled | local-expand | local-expand\\/capture-lifts | local-transformer-expand | local-transformer-expand\\/capture-lifts | locale-string-encoding | log | log-all-levels | log-level-evt | log-level\\? | log-max-level | log-message | log-receiver\\? | logger-name | logger\\? | magnitude | make-arity-at-least | make-base-empty-namespace | make-base-namespace | make-bytes | make-channel | make-continuation-mark-key | make-continuation-prompt-tag | make-custodian | make-custodian-box | make-date | make-date\\* | make-derived-parameter | make-directory | make-do-sequence | make-empty-namespace | make-environment-variables | make-ephemeron | make-exn | make-exn:break | make-exn:break:hang-up | make-exn:break:terminate | make-exn:fail | make-exn:fail:contract | make-exn:fail:contract:arity | make-exn:fail:contract:continuation | make-exn:fail:contract:divide-by-zero | make-exn:fail:contract:non-fixnum-result | make-exn:fail:contract:variable | make-exn:fail:filesystem | make-exn:fail:filesystem:errno | make-exn:fail:filesystem:exists | make-exn:fail:filesystem:missing-module | make-exn:fail:filesystem:version | make-exn:fail:network | make-exn:fail:network:errno | make-exn:fail:out-of-memory | make-exn:fail:read | make-exn:fail:read:eof | make-exn:fail:read:non-char | make-exn:fail:syntax | make-exn:fail:syntax:missing-module | make-exn:fail:syntax:unbound | make-exn:fail:unsupported | make-exn:fail:user | make-file-or-directory-link | make-hash | make-hash-placeholder | make-hasheq | make-hasheq-placeholder | make-hasheqv | make-hasheqv-placeholder | make-immutable-hash | make-immutable-hasheq | make-immutable-hasheqv | make-impersonator-property | make-input-port | make-inspector | make-keyword-procedure | make-known-char-range-list | make-log-receiver | make-logger | make-output-port | make-parameter | make-phantom-bytes | make-pipe | make-placeholder | make-plumber | make-polar | make-prefab-struct | make-pseudo-random-generator | make-reader-graph | make-readtable | make-rectangular | make-rename-transformer | make-resolved-module-path | make-security-guard | make-semaphore | make-set!-transformer | make-shared-bytes | make-sibling-inspector | make-special-comment | make-srcloc | make-string | make-struct-field-accessor | make-struct-field-mutator | make-struct-type | make-struct-type-property | make-syntax-delta-introducer | make-syntax-introducer | make-thread-cell | make-thread-group | make-vector | make-weak-box | make-weak-hash | make-weak-hasheq | make-weak-hasheqv | make-will-executor | map | match-\\.\\.\\.-nesting | match-expander\\? | max | mcar | mcdr | mcons | member | memf | memq | memv | min | module->exports | module->imports | module->indirect-exports | module->language-info | module->namespace | module-compiled-cross-phase-persistent\\? | module-compiled-exports | module-compiled-imports | module-compiled-indirect-exports | module-compiled-language-info | module-compiled-name | module-compiled-submodules | module-declared\\? | module-path-index-join | module-path-index-resolve | module-path-index-split | module-path-index-submodule | module-path-index\\? | module-path\\? | module-predefined\\? | module-provide-protected\\? | modulo | mpair\\? | nack-guard-evt | namespace-anchor->empty-namespace | namespace-anchor->namespace | namespace-anchor\\? | namespace-attach-module | namespace-attach-module-declaration | namespace-base-phase | namespace-mapped-symbols | namespace-module-identifier | namespace-module-registry | namespace-require | namespace-require\\/constant | namespace-require\\/copy | namespace-require\\/expansion-time | namespace-set-variable-value! | namespace-symbol->identifier | namespace-syntax-introduce | namespace-undefine-variable! | namespace-unprotect-module | namespace-variable-value | namespace\\? | negative\\? | never-evt | newline | normal-case-path | not | null | null\\? | number->string | number\\? | numerator | object-name | odd\\? | open-input-bytes | open-input-string | open-output-bytes | open-output-string | ormap | output-port\\? | pair\\? | parameter-procedure=\\? | parameter\\? | parameterization\\? | parse-leftover->\\* | path->bytes | path->complete-path | path->directory-path | path->string | path-add-extension | path-add-suffix | path-convention-type | path-element->bytes | path-element->string | path-for-some-system\\? | path-list-string->path-list | path-replace-extension | path-replace-suffix | path-string\\? | path<\\? | path\\? | peek-byte | peek-byte-or-special | peek-bytes | peek-bytes! | peek-bytes-avail! | peek-bytes-avail!\\* | peek-bytes-avail!\\/enable-break | peek-char | peek-char-or-special | peek-string | peek-string! | phantom-bytes\\? | pipe-content-length | placeholder-get | placeholder-set! | placeholder\\? | plumber-add-flush! | plumber-flush-all | plumber-flush-handle-remove! | plumber-flush-handle\\? | plumber\\? | poll-guard-evt | port-closed-evt | port-closed\\? | port-commit-peeked | port-count-lines! | port-count-lines-enabled | port-counts-lines\\? | port-display-handler | port-file-identity | port-file-unlock | port-next-location | port-print-handler | port-progress-evt | port-provides-progress-evts\\? | port-read-handler | port-try-file-lock\\? | port-write-handler | port-writes-atomic\\? | port-writes-special\\? | port\\? | positive\\? | prefab-key->struct-type | prefab-key\\? | prefab-struct-key | pregexp | pregexp\\? | primitive-closure\\? | primitive-result-arity | primitive\\? | print | print-as-expression | print-boolean-long-form | print-box | print-graph | print-hash-table | print-mpair-curly-braces | print-pair-curly-braces | print-reader-abbreviations | print-struct | print-syntax-width | print-unreadable | print-vector-length | printf | println | procedure->method | procedure-arity | procedure-arity-includes\\? | procedure-arity\\? | procedure-closure-contents-eq\\? | procedure-extract-target | procedure-impersonator\\*\\? | procedure-keywords | procedure-reduce-arity | procedure-reduce-keyword-arity | procedure-rename | procedure-result-arity | procedure-specialize | procedure-struct-type\\? | procedure\\? | progress-evt\\? | prop:arity-string | prop:authentic | prop:checked-procedure | prop:custom-print-quotable | prop:custom-write | prop:equal\\+hash | prop:evt | prop:exn:missing-module | prop:exn:srclocs | prop:expansion-contexts | prop:impersonator-of | prop:input-port | prop:legacy-match-expander | prop:liberal-define-context | prop:match-expander | prop:object-name | prop:output-port | prop:procedure | prop:rename-transformer | prop:sequence | prop:set!-transformer | pseudo-random-generator->vector | pseudo-random-generator-vector\\? | pseudo-random-generator\\? | putenv | quotient | quotient\\/remainder | raise | raise-argument-error | raise-arguments-error | raise-arity-error | raise-mismatch-error | raise-range-error | raise-result-error | raise-syntax-error | raise-type-error | raise-user-error | random | random-seed | rational\\? | rationalize | read | read-accept-bar-quote | read-accept-box | read-accept-compiled | read-accept-dot | read-accept-graph | read-accept-infix-dot | read-accept-lang | read-accept-quasiquote | read-accept-reader | read-byte | read-byte-or-special | read-bytes | read-bytes! | read-bytes-avail! | read-bytes-avail!\\* | read-bytes-avail!\\/enable-break | read-bytes-line | read-case-sensitive | read-cdot | read-char | read-char-or-special | read-curly-brace-as-paren | read-curly-brace-with-tag | read-decimal-as-inexact | read-eval-print-loop | read-language | read-line | read-on-demand-source | read-square-bracket-as-paren | read-square-bracket-with-tag | read-string | read-string! | read-syntax | read-syntax\\/recursive | read\\/recursive | readtable-mapping | readtable\\? | real->decimal-string | real->double-flonum | real->floating-point-bytes | real->single-flonum | real-part | real\\? | regexp | regexp-match | regexp-match-exact\\? | regexp-match-peek | regexp-match-peek-immediate | regexp-match-peek-positions | regexp-match-peek-positions-immediate | regexp-match-peek-positions-immediate\\/end | regexp-match-peek-positions\\/end | regexp-match-positions | regexp-match-positions\\/end | regexp-match\\/end | regexp-match\\? | regexp-max-lookbehind | regexp-quote | regexp-replace | regexp-replace\\* | regexp-replace-quote | regexp-replaces | regexp-split | regexp-try-match | regexp\\? | relative-path\\? | remainder | remove | remove\\* | remq | remq\\* | remv | remv\\* | rename-file-or-directory | rename-transformer-target | rename-transformer\\? | replace-evt | reroot-path | resolve-path | resolved-module-path-name | resolved-module-path\\? | reverse | round | seconds->date | security-guard\\? | semaphore-peek-evt | semaphore-peek-evt\\? | semaphore-post | semaphore-try-wait\\? | semaphore-wait | semaphore-wait\\/enable-break | semaphore\\? | sequence->stream | sequence-generate | sequence-generate\\* | sequence\\? | set!-transformer-procedure | set!-transformer\\? | set-box! | set-mcar! | set-mcdr! | set-phantom-bytes! | set-port-next-location! | shared-bytes | shell-execute | simplify-path | sin | single-flonum\\? | sleep | special-comment-value | special-comment\\? | split-path | sqrt | srcloc->string | srcloc-column | srcloc-line | srcloc-position | srcloc-source | srcloc-span | srcloc\\? | stop-after | stop-before | string | string->bytes\\/latin-1 | string->bytes\\/locale | string->bytes\\/utf-8 | string->immutable-string | string->keyword | string->list | string->number | string->path | string->path-element | string->symbol | string->uninterned-symbol | string->unreadable-symbol | string-append | string-ci<=\\? | string-ci<\\? | string-ci=\\? | string-ci>=\\? | string-ci>\\? | string-copy | string-copy! | string-downcase | string-environment-variable-name\\? | string-fill! | string-foldcase | string-length | string-locale-ci<\\? | string-locale-ci=\\? | string-locale-ci>\\? | string-locale-downcase | string-locale-upcase | string-locale<\\? | string-locale=\\? | string-locale>\\? | string-normalize-nfc | string-normalize-nfd | string-normalize-nfkc | string-normalize-nfkd | string-port\\? | string-ref | string-set! | string-titlecase | string-upcase | string-utf-8-length | string<=\\? | string<\\? | string=\\? | string>=\\? | string>\\? | string\\? | struct->vector | struct-accessor-procedure\\? | struct-constructor-procedure\\? | struct-info | struct-mutator-procedure\\? | struct-predicate-procedure\\? | struct-type-info | struct-type-make-constructor | struct-type-make-predicate | struct-type-property-accessor-procedure\\? | struct-type-property\\? | struct-type\\? | struct:arity-at-least | struct:date | struct:date\\* | struct:exn | struct:exn:break | struct:exn:break:hang-up | struct:exn:break:terminate | struct:exn:fail | struct:exn:fail:contract | struct:exn:fail:contract:arity | struct:exn:fail:contract:continuation | struct:exn:fail:contract:divide-by-zero | struct:exn:fail:contract:non-fixnum-result | struct:exn:fail:contract:variable | struct:exn:fail:filesystem | struct:exn:fail:filesystem:errno | struct:exn:fail:filesystem:exists | struct:exn:fail:filesystem:missing-module | struct:exn:fail:filesystem:version | struct:exn:fail:network | struct:exn:fail:network:errno | struct:exn:fail:out-of-memory | struct:exn:fail:read | struct:exn:fail:read:eof | struct:exn:fail:read:non-char | struct:exn:fail:syntax | struct:exn:fail:syntax:missing-module | struct:exn:fail:syntax:unbound | struct:exn:fail:unsupported | struct:exn:fail:user | struct:srcloc | struct\\? | sub1 | subbytes | subprocess | subprocess-group-enabled | subprocess-kill | subprocess-pid | subprocess-status | subprocess-wait | subprocess\\? | substring | symbol->string | symbol-interned\\? | symbol-unreadable\\? | symbol<\\? | symbol\\? | sync | sync\\/enable-break | sync\\/timeout | sync\\/timeout\\/enable-break | syntax->datum | syntax->list | syntax-arm | syntax-column | syntax-debug-info | syntax-disarm | syntax-e | syntax-line | syntax-local-bind-syntaxes | syntax-local-certifier | syntax-local-context | syntax-local-expand-expression | syntax-local-get-shadower | syntax-local-identifier-as-binding | syntax-local-introduce | syntax-local-lift-context | syntax-local-lift-expression | syntax-local-lift-module | syntax-local-lift-module-end-declaration | syntax-local-lift-provide | syntax-local-lift-require | syntax-local-lift-values-expression | syntax-local-make-definition-context | syntax-local-make-delta-introducer | syntax-local-match-introduce | syntax-local-module-defined-identifiers | syntax-local-module-exports | syntax-local-module-required-identifiers | syntax-local-name | syntax-local-phase-level | syntax-local-submodules | syntax-local-transforming-module-provides\\? | syntax-local-value | syntax-local-value\\/immediate | syntax-original\\? | syntax-pattern-variable\\? | syntax-position | syntax-property | syntax-property-preserved\\? | syntax-property-symbol-keys | syntax-protect | syntax-rearm | syntax-recertify | syntax-shift-phase-level | syntax-source | syntax-source-module | syntax-span | syntax-taint | syntax-tainted\\? | syntax-track-origin | syntax-transforming-module-expression\\? | syntax-transforming-with-lifts\\? | syntax-transforming\\? | syntax\\? | system-big-endian\\? | system-idle-evt | system-language\\+country | system-library-subpath | system-path-convention-type | system-type | tan | terminal-port\\? | thread | thread-cell-ref | thread-cell-set! | thread-cell-values\\? | thread-cell\\? | thread-dead-evt | thread-dead\\? | thread-group\\? | thread-receive | thread-receive-evt | thread-resume | thread-resume-evt | thread-rewind-receive | thread-running\\? | thread-send | thread-suspend | thread-suspend-evt | thread-try-receive | thread-wait | thread\\/suspend-to-kill | thread\\? | time-apply | truncate | unbox | uncaught-exception-handler | unquoted-printing-string | unquoted-printing-string-value | unquoted-printing-string\\? | use-collection-link-paths | use-compiled-file-check | use-compiled-file-paths | use-user-specific-search-paths | values | variable-reference->empty-namespace | variable-reference->module-base-phase | variable-reference->module-declaration-inspector | variable-reference->module-path-index | variable-reference->module-source | variable-reference->namespace | variable-reference->phase | variable-reference->resolved-module-path | variable-reference-constant\\? | variable-reference\\? | vector | vector->immutable-vector | vector->list | vector->pseudo-random-generator | vector->pseudo-random-generator! | vector->values | vector-cas! | vector-copy! | vector-fill! | vector-immutable | vector-length | vector-ref | vector-set! | vector-set-performance-stats! | vector\\? | version | void | void\\? | weak-box-value | weak-box\\? | will-execute | will-executor\\? | will-register | will-try-execute | wrap-evt | write | write-byte | write-bytes | write-bytes-avail | write-bytes-avail\\* | write-bytes-avail-evt | write-bytes-avail\\/enable-break | write-char | write-special | write-special-avail\\* | write-special-evt | write-string | writeln | zero\\? | \\* | \\*list\\/c | \\+ | - | \\/ | < | <\\/c | <= | = | > | >\\/c | >= | abort-current-continuation | abs | absolute-path\\? | acos | add1 | alarm-evt | always-evt | andmap | angle | append | append\\* | append-map | argmax | argmin | arithmetic-shift | arity-at-least-value | arity-at-least\\? | arity-checking-wrapper | arity-includes\\? | arity=\\? | arrow-contract-info-accepts-arglist | arrow-contract-info-chaperone-procedure | arrow-contract-info-check-first-order | arrow-contract-info\\? | asin | assf | assoc | assq | assv | atan | banner | base->-doms\\/c | base->-rngs\\/c | base->\\? | bitwise-and | bitwise-bit-field | bitwise-bit-set\\? | bitwise-ior | bitwise-not | bitwise-xor | blame-add-car-context | blame-add-cdr-context | blame-add-missing-party | blame-add-nth-arg-context | blame-add-range-context | blame-add-unknown-context | blame-context | blame-contract | blame-fmt->-string | blame-missing-party\\? | blame-negative | blame-original\\? | blame-positive | blame-replace-negative | blame-source | blame-swap | blame-swapped\\? | blame-update | blame-value | blame\\? | boolean=\\? | boolean\\? | bound-identifier=\\? | box | box-cas! | box-immutable | box\\? | break-enabled | break-parameterization\\? | break-thread | build-chaperone-contract-property | build-compound-type-name | build-contract-property | build-flat-contract-property | build-list | build-path | build-path\\/convention-type | build-string | build-vector | byte-pregexp | byte-pregexp\\? | byte-ready\\? | byte-regexp | byte-regexp\\? | byte\\? | bytes | bytes->immutable-bytes | bytes->list | bytes->path | bytes->path-element | bytes->string\\/latin-1 | bytes->string\\/locale | bytes->string\\/utf-8 | bytes-append | bytes-append\\* | bytes-close-converter | bytes-convert | bytes-convert-end | bytes-converter\\? | bytes-copy | bytes-copy! | bytes-environment-variable-name\\? | bytes-fill! | bytes-join | bytes-length | bytes-no-nuls\\? | bytes-open-converter | bytes-ref | bytes-set! | bytes-utf-8-index | bytes-utf-8-length | bytes-utf-8-ref | bytes<\\? | bytes=\\? | bytes>\\? | bytes\\? | caaaar | caaadr | caaar | caadar | caaddr | caadr | caar | cadaar | cadadr | cadar | caddar | cadddr | caddr | cadr | call-in-nested-thread | call-with-break-parameterization | call-with-composable-continuation | call-with-continuation-barrier | call-with-continuation-prompt | call-with-current-continuation | call-with-default-reading-parameterization | call-with-escape-continuation | call-with-exception-handler | call-with-immediate-continuation-mark | call-with-input-bytes | call-with-input-string | call-with-output-bytes | call-with-output-string | call-with-parameterization | call-with-semaphore | call-with-semaphore\\/enable-break | call-with-values | call\\/cc | call\\/ec | car | cartesian-product | cdaaar | cdaadr | cdaar | cdadar | cdaddr | cdadr | cdar | cddaar | cddadr | cddar | cdddar | cddddr | cdddr | cddr | cdr | ceiling | channel-get | channel-put | channel-put-evt | channel-put-evt\\? | channel-try-get | channel\\? | chaperone-box | chaperone-channel | chaperone-continuation-mark-key | chaperone-contract-property\\? | chaperone-contract\\? | chaperone-evt | chaperone-hash | chaperone-hash-set | chaperone-of\\? | chaperone-procedure | chaperone-procedure\\* | chaperone-prompt-tag | chaperone-struct | chaperone-struct-type | chaperone-vector | chaperone-vector\\* | chaperone\\? | char->integer | char-alphabetic\\? | char-blank\\? | char-ci<=\\? | char-ci<\\? | char-ci=\\? | char-ci>=\\? | char-ci>\\? | char-downcase | char-foldcase | char-general-category | char-graphic\\? | char-in | char-iso-control\\? | char-lower-case\\? | char-numeric\\? | char-punctuation\\? | char-ready\\? | char-symbolic\\? | char-title-case\\? | char-titlecase | char-upcase | char-upper-case\\? | char-utf-8-length | char-whitespace\\? | char<=\\? | char<\\? | char=\\? | char>=\\? | char>\\? | char\\? | check-duplicate-identifier | checked-procedure-check-and-extract | choice-evt | class->interface | class-info | class-seal | class-unseal | class\\? | cleanse-path | close-input-port | close-output-port | coerce-chaperone-contract | coerce-chaperone-contracts | coerce-contract | coerce-contract\\/f | coerce-contracts | coerce-flat-contract | coerce-flat-contracts | collect-garbage | collection-file-path | collection-path | combinations | compile | compile-allow-set!-undefined | compile-context-preservation-enabled | compile-enforce-module-constants | compile-syntax | compiled-expression-recompile | compiled-expression\\? | compiled-module-expression\\? | complete-path\\? | complex\\? | compose | compose1 | conjoin | conjugate | cons | cons\\? | const | continuation-mark-key\\? | continuation-mark-set->context | continuation-mark-set->list | continuation-mark-set->list\\* | continuation-mark-set-first | continuation-mark-set\\? | continuation-marks | continuation-prompt-available\\? | continuation-prompt-tag\\? | continuation\\? | contract-continuation-mark-key | contract-custom-write-property-proc | contract-first-order | contract-first-order-passes\\? | contract-late-neg-projection | contract-name | contract-proc | contract-projection | contract-property\\? | contract-random-generate | contract-random-generate-fail | contract-random-generate-fail\\? | contract-random-generate-get-current-environment | contract-random-generate-stash | contract-random-generate\\/choose | contract-stronger\\? | contract-struct-exercise | contract-struct-generate | contract-struct-late-neg-projection | contract-struct-list-contract\\? | contract-val-first-projection | contract\\? | convert-stream | copy-file | copy-port | cos | cosh | count | current-blame-format | current-break-parameterization | current-code-inspector | current-command-line-arguments | current-compile | current-compiled-file-roots | current-continuation-marks | current-custodian | current-directory | current-directory-for-user | current-drive | current-environment-variables | current-error-port | current-eval | current-evt-pseudo-random-generator | current-force-delete-permissions | current-future | current-gc-milliseconds | current-get-interaction-input-port | current-inexact-milliseconds | current-input-port | current-inspector | current-library-collection-links | current-library-collection-paths | current-load | current-load-extension | current-load-relative-directory | current-load\\/use-compiled | current-locale | current-logger | current-memory-use | current-milliseconds | current-module-declare-name | current-module-declare-source | current-module-name-resolver | current-module-path-for-load | current-namespace | current-output-port | current-parameterization | current-plumber | current-preserved-thread-cell-values | current-print | current-process-milliseconds | current-prompt-read | current-pseudo-random-generator | current-read-interaction | current-reader-guard | current-readtable | current-seconds | current-security-guard | current-subprocess-custodian-mode | current-thread | current-thread-group | current-thread-initial-stack-size | current-write-relative-directory | curry | curryr | custodian-box-value | custodian-box\\? | custodian-limit-memory | custodian-managed-list | custodian-memory-accounting-available\\? | custodian-require-memory | custodian-shut-down\\? | custodian-shutdown-all | custodian\\? | custom-print-quotable-accessor | custom-print-quotable\\? | custom-write-accessor | custom-write-property-proc | custom-write\\? | date\\*-nanosecond | date\\*-time-zone-name | date\\*\\? | date-day | date-dst\\? | date-hour | date-minute | date-month | date-second | date-time-zone-offset | date-week-day | date-year | date-year-day | date\\? | datum->syntax | datum-intern-literal | default-continuation-prompt-tag | degrees->radians | delete-directory | delete-file | denominator | dict-iter-contract | dict-key-contract | dict-value-contract | directory-exists\\? | directory-list | disjoin | display | displayln | double-flonum\\? | drop | drop-common-prefix | drop-right | dropf | dropf-right | dump-memory-stats | dup-input-port | dup-output-port | dynamic-get-field | dynamic-object\\/c | dynamic-require | dynamic-require-for-syntax | dynamic-send | dynamic-set-field! | dynamic-wind | eighth | empty | empty-sequence | empty-stream | empty\\? | environment-variables-copy | environment-variables-names | environment-variables-ref | environment-variables-set! | environment-variables\\? | eof | eof-object\\? | ephemeron-value | ephemeron\\? | eprintf | eq-contract-val | eq-contract\\? | eq-hash-code | eq\\? | equal-contract-val | equal-contract\\? | equal-hash-code | equal-secondary-hash-code | equal<%> | equal\\? | equal\\?\\/recur | eqv-hash-code | eqv\\? | error | error-display-handler | error-escape-handler | error-print-context-length | error-print-source-location | error-print-width | error-value->string-handler | eval | eval-jit-enabled | eval-syntax | even\\? | evt\\/c | evt\\? | exact->inexact | exact-ceiling | exact-floor | exact-integer\\? | exact-nonnegative-integer\\? | exact-positive-integer\\? | exact-round | exact-truncate | exact\\? | executable-yield-handler | exit | exit-handler | exn-continuation-marks | exn-message | exn:break-continuation | exn:break:hang-up\\? | exn:break:terminate\\? | exn:break\\? | exn:fail:contract:arity\\? | exn:fail:contract:blame-object | exn:fail:contract:blame\\? | exn:fail:contract:continuation\\? | exn:fail:contract:divide-by-zero\\? | exn:fail:contract:non-fixnum-result\\? | exn:fail:contract:variable-id | exn:fail:contract:variable\\? | exn:fail:contract\\? | exn:fail:filesystem:errno-errno | exn:fail:filesystem:errno\\? | exn:fail:filesystem:exists\\? | exn:fail:filesystem:missing-module-path | exn:fail:filesystem:missing-module\\? | exn:fail:filesystem:version\\? | exn:fail:filesystem\\? | exn:fail:network:errno-errno | exn:fail:network:errno\\? | exn:fail:network\\? | exn:fail:object\\? | exn:fail:out-of-memory\\? | exn:fail:read-srclocs | exn:fail:read:eof\\? | exn:fail:read:non-char\\? | exn:fail:read\\? | exn:fail:syntax-exprs | exn:fail:syntax:missing-module-path | exn:fail:syntax:missing-module\\? | exn:fail:syntax:unbound\\? | exn:fail:syntax\\? | exn:fail:unsupported\\? | exn:fail:user\\? | exn:fail\\? | exn:misc:match\\? | exn:missing-module-accessor | exn:missing-module\\? | exn:srclocs-accessor | exn:srclocs\\? | exn\\? | exp | expand | expand-once | expand-syntax | expand-syntax-once | expand-syntax-to-top-form | expand-to-top-form | expand-user-path | explode-path | expt | externalizable<%> | failure-result\\/c | false | false\\/c | false\\? | field-names | fifth | file-exists\\? | file-name-from-path | file-or-directory-identity | file-or-directory-modify-seconds | file-or-directory-permissions | file-position | file-position\\* | file-size | file-stream-buffer-mode | file-stream-port\\? | file-truncate | filename-extension | filesystem-change-evt | filesystem-change-evt-cancel | filesystem-change-evt\\? | filesystem-root-list | filter | filter-map | filter-not | filter-read-input-port | find-executable-path | find-library-collection-links | find-library-collection-paths | find-system-path | findf | first | fixnum\\? | flat-contract | flat-contract-predicate | flat-contract-property\\? | flat-contract\\? | flat-named-contract | flatten | floating-point-bytes->real | flonum\\? | floor | flush-output | fold-files | foldl | foldr | for-each | force | format | fourth | fprintf | free-identifier=\\? | free-label-identifier=\\? | free-template-identifier=\\? | free-transformer-identifier=\\? | fsemaphore-count | fsemaphore-post | fsemaphore-try-wait\\? | fsemaphore-wait | fsemaphore\\? | future | future\\? | futures-enabled\\? | gcd | generate-member-key | generate-temporaries | generic-set\\? | generic\\? | gensym | get-output-bytes | get-output-string | get\\/build-late-neg-projection | get\\/build-val-first-projection | getenv | global-port-print-handler | group-by | group-execute-bit | group-read-bit | group-write-bit | guard-evt | handle-evt | handle-evt\\? | has-blame\\? | has-contract\\? | hash | hash->list | hash-clear | hash-clear! | hash-copy | hash-copy-clear | hash-count | hash-empty\\? | hash-eq\\? | hash-equal\\? | hash-eqv\\? | hash-for-each | hash-has-key\\? | hash-iterate-first | hash-iterate-key | hash-iterate-key\\+value | hash-iterate-next | hash-iterate-pair | hash-iterate-value | hash-keys | hash-keys-subset\\? | hash-map | hash-placeholder\\? | hash-ref | hash-ref! | hash-remove | hash-remove! | hash-set | hash-set! | hash-set\\* | hash-set\\*! | hash-update | hash-update! | hash-values | hash-weak\\? | hash\\? | hasheq | hasheqv | identifier-binding | identifier-binding-symbol | identifier-label-binding | identifier-prune-lexical-context | identifier-prune-to-source-module | identifier-remove-from-definition-context | identifier-template-binding | identifier-transformer-binding | identifier\\? | identity | if\\/c | imag-part | immutable\\? | impersonate-box | impersonate-channel | impersonate-continuation-mark-key | impersonate-hash | impersonate-hash-set | impersonate-procedure | impersonate-procedure\\* | impersonate-prompt-tag | impersonate-struct | impersonate-vector | impersonate-vector\\* | impersonator-contract\\? | impersonator-ephemeron | impersonator-of\\? | impersonator-prop:application-mark | impersonator-prop:blame | impersonator-prop:contracted | impersonator-property-accessor-procedure\\? | impersonator-property\\? | impersonator\\? | implementation\\? | implementation\\?\\/c | in-combinations | in-cycle | in-dict-pairs | in-parallel | in-permutations | in-sequences | in-values\\*-sequence | in-values-sequence | index-of | index-where | indexes-of | indexes-where | inexact->exact | inexact-real\\? | inexact\\? | infinite\\? | input-port-append | input-port\\? | inspector-superior\\? | inspector\\? | instanceof\\/c | integer->char | integer->integer-bytes | integer-bytes->integer | integer-length | integer-sqrt | integer-sqrt\\/remainder | integer\\? | interface->method-names | interface-extension\\? | interface\\? | internal-definition-context-binding-identifiers | internal-definition-context-introduce | internal-definition-context-seal | internal-definition-context\\? | is-a\\? | is-a\\?\\/c | keyword->string | keyword-apply | keyword<\\? | keyword\\? | keywords-match | kill-thread | last | last-pair | lcm | length | liberal-define-context\\? | link-exists\\? | list | list\\* | list->bytes | list->mutable-set | list->mutable-seteq | list->mutable-seteqv | list->set | list->seteq | list->seteqv | list->string | list->vector | list->weak-set | list->weak-seteq | list->weak-seteqv | list-contract\\? | list-prefix\\? | list-ref | list-set | list-tail | list-update | list\\? | listen-port-number\\? | load | load-extension | load-on-demand-enabled | load-relative | load-relative-extension | load\\/cd | load\\/use-compiled | local-expand | local-expand\\/capture-lifts | local-transformer-expand | local-transformer-expand\\/capture-lifts | locale-string-encoding | log | log-all-levels | log-level-evt | log-level\\? | log-max-level | log-message | log-receiver\\? | logger-name | logger\\? | magnitude | make-arity-at-least | make-base-empty-namespace | make-base-namespace | make-bytes | make-channel | make-chaperone-contract | make-continuation-mark-key | make-continuation-prompt-tag | make-contract | make-custodian | make-custodian-box | make-date | make-date\\* | make-derived-parameter | make-directory | make-directory\\* | make-do-sequence | make-empty-namespace | make-environment-variables | make-ephemeron | make-exn | make-exn:break | make-exn:break:hang-up | make-exn:break:terminate | make-exn:fail | make-exn:fail:contract | make-exn:fail:contract:arity | make-exn:fail:contract:blame | make-exn:fail:contract:continuation | make-exn:fail:contract:divide-by-zero | make-exn:fail:contract:non-fixnum-result | make-exn:fail:contract:variable | make-exn:fail:filesystem | make-exn:fail:filesystem:errno | make-exn:fail:filesystem:exists | make-exn:fail:filesystem:missing-module | make-exn:fail:filesystem:version | make-exn:fail:network | make-exn:fail:network:errno | make-exn:fail:object | make-exn:fail:out-of-memory | make-exn:fail:read | make-exn:fail:read:eof | make-exn:fail:read:non-char | make-exn:fail:syntax | make-exn:fail:syntax:missing-module | make-exn:fail:syntax:unbound | make-exn:fail:unsupported | make-exn:fail:user | make-file-or-directory-link | make-flat-contract | make-fsemaphore | make-generic | make-hash | make-hash-placeholder | make-hasheq | make-hasheq-placeholder | make-hasheqv | make-hasheqv-placeholder | make-immutable-hash | make-immutable-hasheq | make-immutable-hasheqv | make-impersonator-property | make-input-port | make-input-port\\/read-to-peek | make-inspector | make-keyword-procedure | make-known-char-range-list | make-limited-input-port | make-list | make-lock-file-name | make-log-receiver | make-logger | make-mixin-contract | make-none\\/c | make-output-port | make-parameter | make-parent-directory\\* | make-phantom-bytes | make-pipe | make-pipe-with-specials | make-placeholder | make-plumber | make-polar | make-prefab-struct | make-primitive-class | make-proj-contract | make-pseudo-random-generator | make-reader-graph | make-readtable | make-rectangular | make-rename-transformer | make-resolved-module-path | make-security-guard | make-semaphore | make-set!-transformer | make-shared-bytes | make-sibling-inspector | make-special-comment | make-srcloc | make-string | make-struct-field-accessor | make-struct-field-mutator | make-struct-type | make-struct-type-property | make-syntax-delta-introducer | make-syntax-introducer | make-tentative-pretty-print-output-port | make-thread-cell | make-thread-group | make-vector | make-weak-box | make-weak-hash | make-weak-hasheq | make-weak-hasheqv | make-will-executor | map | match-equality-test | matches-arity-exactly\\? | max | mcar | mcdr | mcons | member | member-name-key-hash-code | member-name-key=\\? | member-name-key\\? | memf | memq | memv | merge-input | method-in-interface\\? | min | mixin-contract | module->exports | module->imports | module->indirect-exports | module->language-info | module->namespace | module-compiled-cross-phase-persistent\\? | module-compiled-exports | module-compiled-imports | module-compiled-indirect-exports | module-compiled-language-info | module-compiled-name | module-compiled-submodules | module-declared\\? | module-path-index-join | module-path-index-resolve | module-path-index-split | module-path-index-submodule | module-path-index\\? | module-path\\? | module-predefined\\? | module-provide-protected\\? | modulo | mpair\\? | mutable-set | mutable-seteq | mutable-seteqv | n->th | nack-guard-evt | namespace-anchor->empty-namespace | namespace-anchor->namespace | namespace-anchor\\? | namespace-attach-module | namespace-attach-module-declaration | namespace-base-phase | namespace-mapped-symbols | namespace-module-identifier | namespace-module-registry | namespace-require | namespace-require\\/constant | namespace-require\\/copy | namespace-require\\/expansion-time | namespace-set-variable-value! | namespace-symbol->identifier | namespace-syntax-introduce | namespace-undefine-variable! | namespace-unprotect-module | namespace-variable-value | namespace\\? | nan\\? | natural-number\\/c | natural\\? | negate | negative-integer\\? | negative\\? | never-evt | newline | ninth | non-empty-string\\? | nonnegative-integer\\? | nonpositive-integer\\? | normal-case-path | normalize-arity | normalize-path | normalized-arity\\? | not | null | null\\? | number->string | number\\? | numerator | object% | object->vector | object-info | object-interface | object-method-arity-includes\\? | object-name | object-or-false=\\? | object=\\? | object\\? | odd\\? | open-input-bytes | open-input-string | open-output-bytes | open-output-nowhere | open-output-string | order-of-magnitude | ormap | other-execute-bit | other-read-bit | other-write-bit | output-port\\? | pair\\? | parameter-procedure=\\? | parameter\\? | parameterization\\? | parse-command-line | partition | path->bytes | path->complete-path | path->directory-path | path->string | path-add-extension | path-add-suffix | path-convention-type | path-element->bytes | path-element->string | path-element\\? | path-for-some-system\\? | path-get-extension | path-has-extension\\? | path-list-string->path-list | path-only | path-replace-extension | path-replace-suffix | path-string\\? | path<\\? | path\\? | peek-byte | peek-byte-or-special | peek-bytes | peek-bytes! | peek-bytes-avail! | peek-bytes-avail!\\* | peek-bytes-avail!\\/enable-break | peek-char | peek-char-or-special | peek-string | peek-string! | permutations | phantom-bytes\\? | pi | pi\\.f | pipe-content-length | place-break | place-channel | place-channel-get | place-channel-put | place-channel-put\\/get | place-channel\\? | place-dead-evt | place-enabled\\? | place-kill | place-location\\? | place-message-allowed\\? | place-sleep | place-wait | place\\? | placeholder-get | placeholder-set! | placeholder\\? | plumber-add-flush! | plumber-flush-all | plumber-flush-handle-remove! | plumber-flush-handle\\? | plumber\\? | poll-guard-evt | port->list | port-closed-evt | port-closed\\? | port-commit-peeked | port-count-lines! | port-count-lines-enabled | port-counts-lines\\? | port-display-handler | port-file-identity | port-file-unlock | port-next-location | port-number\\? | port-print-handler | port-progress-evt | port-provides-progress-evts\\? | port-read-handler | port-try-file-lock\\? | port-write-handler | port-writes-atomic\\? | port-writes-special\\? | port\\? | positive-integer\\? | positive\\? | predicate\\/c | prefab-key->struct-type | prefab-key\\? | prefab-struct-key | preferences-lock-file-mode | pregexp | pregexp\\? | pretty-display | pretty-print | pretty-print-\\.-symbol-without-bars | pretty-print-abbreviate-read-macros | pretty-print-columns | pretty-print-current-style-table | pretty-print-depth | pretty-print-exact-as-decimal | pretty-print-extend-style-table | pretty-print-handler | pretty-print-newline | pretty-print-post-print-hook | pretty-print-pre-print-hook | pretty-print-print-hook | pretty-print-print-line | pretty-print-remap-stylable | pretty-print-show-inexactness | pretty-print-size-hook | pretty-print-style-table\\? | pretty-printing | pretty-write | primitive-closure\\? | primitive-result-arity | primitive\\? | print | print-as-expression | print-boolean-long-form | print-box | print-graph | print-hash-table | print-mpair-curly-braces | print-pair-curly-braces | print-reader-abbreviations | print-struct | print-syntax-width | print-unreadable | print-vector-length | printable\\/c | printable<%> | printf | println | procedure->method | procedure-arity | procedure-arity-includes\\? | procedure-arity\\? | procedure-closure-contents-eq\\? | procedure-extract-target | procedure-impersonator\\*\\? | procedure-keywords | procedure-reduce-arity | procedure-reduce-keyword-arity | procedure-rename | procedure-result-arity | procedure-specialize | procedure-struct-type\\? | procedure\\? | processor-count | progress-evt\\? | promise-forced\\? | promise-running\\? | promise\\/name\\? | promise\\? | prop:arity-string | prop:arrow-contract | prop:arrow-contract-get-info | prop:arrow-contract\\? | prop:authentic | prop:blame | prop:chaperone-contract | prop:checked-procedure | prop:contract | prop:contracted | prop:custom-print-quotable | prop:custom-write | prop:dict | prop:equal\\+hash | prop:evt | prop:exn:missing-module | prop:exn:srclocs | prop:expansion-contexts | prop:flat-contract | prop:impersonator-of | prop:input-port | prop:liberal-define-context | prop:object-name | prop:opt-chaperone-contract | prop:opt-chaperone-contract-get-test | prop:opt-chaperone-contract\\? | prop:orc-contract | prop:orc-contract-get-subcontracts | prop:orc-contract\\? | prop:output-port | prop:place-location | prop:procedure | prop:recursive-contract | prop:recursive-contract-unroll | prop:recursive-contract\\? | prop:rename-transformer | prop:sequence | prop:set!-transformer | prop:stream | proper-subset\\? | pseudo-random-generator->vector | pseudo-random-generator-vector\\? | pseudo-random-generator\\? | put-preferences | putenv | quotient | quotient\\/remainder | radians->degrees | raise | raise-argument-error | raise-arguments-error | raise-arity-error | raise-contract-error | raise-mismatch-error | raise-range-error | raise-result-error | raise-syntax-error | raise-type-error | raise-user-error | random | random-seed | rational\\? | rationalize | read | read-accept-bar-quote | read-accept-box | read-accept-compiled | read-accept-dot | read-accept-graph | read-accept-infix-dot | read-accept-lang | read-accept-quasiquote | read-accept-reader | read-byte | read-byte-or-special | read-bytes | read-bytes! | read-bytes-avail! | read-bytes-avail!\\* | read-bytes-avail!\\/enable-break | read-bytes-line | read-case-sensitive | read-cdot | read-char | read-char-or-special | read-curly-brace-as-paren | read-curly-brace-with-tag | read-decimal-as-inexact | read-eval-print-loop | read-language | read-line | read-on-demand-source | read-square-bracket-as-paren | read-square-bracket-with-tag | read-string | read-string! | read-syntax | read-syntax\\/recursive | read\\/recursive | readtable-mapping | readtable\\? | real->decimal-string | real->double-flonum | real->floating-point-bytes | real->single-flonum | real-part | real\\? | reencode-input-port | reencode-output-port | regexp | regexp-match | regexp-match-exact\\? | regexp-match-peek | regexp-match-peek-immediate | regexp-match-peek-positions | regexp-match-peek-positions-immediate | regexp-match-peek-positions-immediate\\/end | regexp-match-peek-positions\\/end | regexp-match-positions | regexp-match-positions\\/end | regexp-match\\/end | regexp-match\\? | regexp-max-lookbehind | regexp-quote | regexp-replace | regexp-replace\\* | regexp-replace-quote | regexp-replaces | regexp-split | regexp-try-match | regexp\\? | relative-path\\? | remainder | remf | remf\\* | remove | remove\\* | remq | remq\\* | remv | remv\\* | rename-contract | rename-file-or-directory | rename-transformer-target | rename-transformer\\? | replace-evt | reroot-path | resolve-path | resolved-module-path-name | resolved-module-path\\? | rest | reverse | round | second | seconds->date | security-guard\\? | semaphore-peek-evt | semaphore-peek-evt\\? | semaphore-post | semaphore-try-wait\\? | semaphore-wait | semaphore-wait\\/enable-break | semaphore\\? | sequence->list | sequence->stream | sequence-add-between | sequence-andmap | sequence-append | sequence-count | sequence-filter | sequence-fold | sequence-for-each | sequence-generate | sequence-generate\\* | sequence-length | sequence-map | sequence-ormap | sequence-ref | sequence-tail | sequence\\? | set | set!-transformer-procedure | set!-transformer\\? | set->list | set->stream | set-add | set-add! | set-box! | set-clear | set-clear! | set-copy | set-copy-clear | set-count | set-empty\\? | set-eq\\? | set-equal\\? | set-eqv\\? | set-first | set-for-each | set-implements\\/c | set-implements\\? | set-intersect | set-intersect! | set-map | set-mcar! | set-mcdr! | set-member\\? | set-mutable\\? | set-phantom-bytes! | set-port-next-location! | set-remove | set-remove! | set-rest | set-subtract | set-subtract! | set-symmetric-difference | set-symmetric-difference! | set-union | set-union! | set-weak\\? | set=\\? | set\\? | seteq | seteqv | seventh | sgn | shared-bytes | shell-execute | shrink-path-wrt | shuffle | simple-form-path | simplify-path | sin | single-flonum\\? | sinh | sixth | skip-projection-wrapper\\? | sleep | some-system-path->string | special-comment-value | special-comment\\? | special-filter-input-port | split-at | split-at-right | split-common-prefix | split-path | splitf-at | splitf-at-right | sqr | sqrt | srcloc->string | srcloc-column | srcloc-line | srcloc-position | srcloc-source | srcloc-span | srcloc\\? | stop-after | stop-before | stream->list | stream-add-between | stream-andmap | stream-append | stream-count | stream-empty\\? | stream-filter | stream-first | stream-fold | stream-for-each | stream-length | stream-map | stream-ormap | stream-ref | stream-rest | stream-tail | stream\\/c | stream\\? | string | string->bytes\\/latin-1 | string->bytes\\/locale | string->bytes\\/utf-8 | string->immutable-string | string->keyword | string->list | string->number | string->path | string->path-element | string->some-system-path | string->symbol | string->uninterned-symbol | string->unreadable-symbol | string-append | string-append\\* | string-ci<=\\? | string-ci<\\? | string-ci=\\? | string-ci>=\\? | string-ci>\\? | string-contains\\? | string-copy | string-copy! | string-downcase | string-environment-variable-name\\? | string-fill! | string-foldcase | string-length | string-locale-ci<\\? | string-locale-ci=\\? | string-locale-ci>\\? | string-locale-downcase | string-locale-upcase | string-locale<\\? | string-locale=\\? | string-locale>\\? | string-no-nuls\\? | string-normalize-nfc | string-normalize-nfd | string-normalize-nfkc | string-normalize-nfkd | string-port\\? | string-prefix\\? | string-ref | string-set! | string-suffix\\? | string-titlecase | string-upcase | string-utf-8-length | string<=\\? | string<\\? | string=\\? | string>=\\? | string>\\? | string\\? | struct->vector | struct-accessor-procedure\\? | struct-constructor-procedure\\? | struct-info | struct-mutator-procedure\\? | struct-predicate-procedure\\? | struct-type-info | struct-type-make-constructor | struct-type-make-predicate | struct-type-property-accessor-procedure\\? | struct-type-property\\/c | struct-type-property\\? | struct-type\\? | struct:arity-at-least | struct:arrow-contract-info | struct:date | struct:date\\* | struct:exn | struct:exn:break | struct:exn:break:hang-up | struct:exn:break:terminate | struct:exn:fail | struct:exn:fail:contract | struct:exn:fail:contract:arity | struct:exn:fail:contract:blame | struct:exn:fail:contract:continuation | struct:exn:fail:contract:divide-by-zero | struct:exn:fail:contract:non-fixnum-result | struct:exn:fail:contract:variable | struct:exn:fail:filesystem | struct:exn:fail:filesystem:errno | struct:exn:fail:filesystem:exists | struct:exn:fail:filesystem:missing-module | struct:exn:fail:filesystem:version | struct:exn:fail:network | struct:exn:fail:network:errno | struct:exn:fail:object | struct:exn:fail:out-of-memory | struct:exn:fail:read | struct:exn:fail:read:eof | struct:exn:fail:read:non-char | struct:exn:fail:syntax | struct:exn:fail:syntax:missing-module | struct:exn:fail:syntax:unbound | struct:exn:fail:unsupported | struct:exn:fail:user | struct:srcloc | struct:wrapped-extra-arg-arrow | struct\\? | sub1 | subbytes | subclass\\? | subclass\\?\\/c | subprocess | subprocess-group-enabled | subprocess-kill | subprocess-pid | subprocess-status | subprocess-wait | subprocess\\? | subset\\? | substring | suggest\\/c | symbol->string | symbol-interned\\? | symbol-unreadable\\? | symbol<\\? | symbol=\\? | symbol\\? | sync | sync\\/enable-break | sync\\/timeout | sync\\/timeout\\/enable-break | syntax->datum | syntax->list | syntax-arm | syntax-column | syntax-debug-info | syntax-disarm | syntax-e | syntax-line | syntax-local-bind-syntaxes | syntax-local-certifier | syntax-local-context | syntax-local-expand-expression | syntax-local-get-shadower | syntax-local-identifier-as-binding | syntax-local-introduce | syntax-local-lift-context | syntax-local-lift-expression | syntax-local-lift-module | syntax-local-lift-module-end-declaration | syntax-local-lift-provide | syntax-local-lift-require | syntax-local-lift-values-expression | syntax-local-make-definition-context | syntax-local-make-delta-introducer | syntax-local-module-defined-identifiers | syntax-local-module-exports | syntax-local-module-required-identifiers | syntax-local-name | syntax-local-phase-level | syntax-local-submodules | syntax-local-transforming-module-provides\\? | syntax-local-value | syntax-local-value\\/immediate | syntax-original\\? | syntax-position | syntax-property | syntax-property-preserved\\? | syntax-property-symbol-keys | syntax-protect | syntax-rearm | syntax-recertify | syntax-shift-phase-level | syntax-source | syntax-source-module | syntax-span | syntax-taint | syntax-tainted\\? | syntax-track-origin | syntax-transforming-module-expression\\? | syntax-transforming-with-lifts\\? | syntax-transforming\\? | syntax\\? | system-big-endian\\? | system-idle-evt | system-language\\+country | system-library-subpath | system-path-convention-type | system-type | tail-marks-match\\? | take | take-common-prefix | take-right | takef | takef-right | tan | tanh | tcp-abandon-port | tcp-accept | tcp-accept-evt | tcp-accept-ready\\? | tcp-accept\\/enable-break | tcp-addresses | tcp-close | tcp-connect | tcp-connect\\/enable-break | tcp-listen | tcp-listener\\? | tcp-port\\? | tentative-pretty-print-port-cancel | tentative-pretty-print-port-transfer | tenth | terminal-port\\? | the-unsupplied-arg | third | thread | thread-cell-ref | thread-cell-set! | thread-cell-values\\? | thread-cell\\? | thread-dead-evt | thread-dead\\? | thread-group\\? | thread-receive | thread-receive-evt | thread-resume | thread-resume-evt | thread-rewind-receive | thread-running\\? | thread-send | thread-suspend | thread-suspend-evt | thread-try-receive | thread-wait | thread\\/suspend-to-kill | thread\\? | time-apply | touch | true | truncate | udp-addresses | udp-bind! | udp-bound\\? | udp-close | udp-connect! | udp-connected\\? | udp-multicast-interface | udp-multicast-join-group! | udp-multicast-leave-group! | udp-multicast-loopback\\? | udp-multicast-set-interface! | udp-multicast-set-loopback! | udp-multicast-set-ttl! | udp-multicast-ttl | udp-open-socket | udp-receive! | udp-receive!\\* | udp-receive!-evt | udp-receive!\\/enable-break | udp-receive-ready-evt | udp-send | udp-send\\* | udp-send-evt | udp-send-ready-evt | udp-send-to | udp-send-to\\* | udp-send-to-evt | udp-send-to\\/enable-break | udp-send\\/enable-break | udp\\? | unbox | uncaught-exception-handler | unit\\? | unquoted-printing-string | unquoted-printing-string-value | unquoted-printing-string\\? | unspecified-dom | unsupplied-arg\\? | use-collection-link-paths | use-compiled-file-check | use-compiled-file-paths | use-user-specific-search-paths | user-execute-bit | user-read-bit | user-write-bit | value-blame | value-contract | values | variable-reference->empty-namespace | variable-reference->module-base-phase | variable-reference->module-declaration-inspector | variable-reference->module-path-index | variable-reference->module-source | variable-reference->namespace | variable-reference->phase | variable-reference->resolved-module-path | variable-reference-constant\\? | variable-reference\\? | vector | vector->immutable-vector | vector->list | vector->pseudo-random-generator | vector->pseudo-random-generator! | vector->values | vector-append | vector-argmax | vector-argmin | vector-cas! | vector-copy | vector-copy! | vector-count | vector-drop | vector-drop-right | vector-fill! | vector-filter | vector-filter-not | vector-immutable | vector-length | vector-map | vector-map! | vector-member | vector-memq | vector-memv | vector-ref | vector-set! | vector-set\\*! | vector-set-performance-stats! | vector-split-at | vector-split-at-right | vector-take | vector-take-right | vector\\? | version | void | void\\? | weak-box-value | weak-box\\? | weak-set | weak-seteq | weak-seteqv | will-execute | will-executor\\? | will-register | will-try-execute | with-input-from-bytes | with-input-from-string | with-output-to-bytes | with-output-to-string | would-be-future | wrap-evt | wrapped-extra-arg-arrow-extra-neg-party-argument | wrapped-extra-arg-arrow-real-func | wrapped-extra-arg-arrow\\? | writable<%> | write | write-byte | write-bytes | write-bytes-avail | write-bytes-avail\\* | write-bytes-avail-evt | write-bytes-avail\\/enable-break | write-char | write-special | write-special-avail\\* | write-special-evt | write-string | writeln | xor | zero\\?\n) (?=$|[()\\[\\]{}\",'`;\\s])"}]},"byte-string":{patterns:[{begin:'#"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.byte.racket",patterns:[{include:"#escape-char-base"}]}]},character:{patterns:[{match:"(?x) \\#\\\\\n(?:\n(?: [0-7]{3}) |\n(?: u[0-9a-fA-F]{1,4}) |\n(?: U[0-9a-fA-F]{1,6}) |\n(?:\n(?:\nnull? | newline | linefeed | backspace | v?tab | page |\nreturn | space | rubout | (?: [^\\w\\s] | \\d)\n)\n(?![a-zA-Z])\n) |\n(?: [^\\W\\d](?=[\\W\\d]) | \\W )\n)\n",name:"string.quoted.single.racket"}]},comment:{patterns:[{include:"#comment-line"},{include:"#comment-block"},{include:"#comment-sexp"}]},"comment-block":{patterns:[{begin:"#\\|",beginCaptures:{0:{name:"punctuation.definition.comment.begin.racket"}},end:"\\|#",endCaptures:{0:{name:"punctuation.definition.comment.end.racket"}},name:"comment.block.racket",patterns:[{include:"#comment-block"}]}]},"comment-line":{patterns:[{beginCaptures:{1:{name:"punctuation.definition.comment.racket"}},match:"(#!)[ /].*$",name:"comment.line.unix.racket"},{captures:{1:{name:"punctuation.definition.comment.racket"}},match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $",name:"comment.line.semicolon.racket"}]},"comment-sexp":{patterns:[{match:"(?<=^|[()\\[\\]{}\",'`;\\s])#;",name:"comment.sexp.racket"}]},"default-args":{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-content"}]}]},"default-args-content":{patterns:[{include:"#comment"},{include:"#argument"},{include:"$base"}]},"default-args-struct":{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-struct-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-struct-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#default-args-struct-content"}]}]},"default-args-struct-content":{patterns:[{include:"#comment"},{include:"#argument-struct"},{include:"$base"}]},define:{patterns:[{include:"#define-func"},{include:"#define-vals"},{include:"#define-val"}]},"define-func":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s*\n(define (?: (?: -for)?-syntax)?) \\s*\n(\\()\n",beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#func-args"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(define (?: (?: -for)?-syntax)?) \\s*\n(\\[)\n",beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#func-args"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(define (?: (?: -for)?-syntax)?) \\s*\n({)\n",beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{include:"#func-args"}]}]},"define-val":{patterns:[{captures:{1:{name:"storage.type.racket"},2:{name:"entity.name.constant.racket"}},match:"(?x) (?<=[(\\[{]) \\s*\n(define(?: (?: -for)?-syntax)?) \\s+\n([^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)\n"}]},"define-vals":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s*\n(define-(?: values(?: -for-syntax)? | syntaxes)?) \\s*\n(\\()\n",beginCaptures:{1:{name:"storage.type.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"entity.name.constant"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(define-(?: values(?: -for-syntax)? | syntaxes)?) \\s*\n(\\[)\n",beginCaptures:{1:{name:"storage.type.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"entity.name.constant"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(define-(?: values(?: -for-syntax)? | syntaxes)?) \\s*\n({)\n",beginCaptures:{1:{name:"storage.type.racket"},2:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},patterns:[{match:"[^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*",name:"entity.name.constant"}]}]},dot:{patterns:[{match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) \\. (?=$|[()\\[\\]{}\",'`;\\s])",name:"punctuation.accessor.racket"}]},"escape-char":{patterns:[{include:"#escape-char-base"},{match:"(?x) \\\\\n(?:\n(?: u[\\da-fA-F]{1,4}) |\n(?: U[\\da-fA-F]{1,8})\n)\n",name:"constant.character.escape.racket"},{include:"#escape-char-error"}]},"escape-char-base":{patterns:[{match:"(?x) \\\\\n(?:\n(?: [abtnvfre\"'\\\\]) |\n(?: [0-7]{1,3}) |\n(?: x[\\da-fA-F]{1,2})\n)\n",name:"constant.character.escape.racket"}]},"escape-char-error":{patterns:[{match:"\\\\.",name:"invalid.illegal.escape.racket"}]},format:{patterns:[{begin:'(?x) (?<=[(\\[{]) \\s*\n(e?printf | format) \\s*\n(")\n',beginCaptures:{1:{name:"support.function.racket"},2:{name:"string.quoted.double.racket"}},contentName:"string.quoted.double.racket",end:'"',endCaptures:{0:{name:"string.quoted.double.racket"}},patterns:[{include:"#format-string"},{include:"#escape-char"}]}]},"format-string":{patterns:[{match:"(?x) ~\n(?:\n(?: \\.?[n%aAsSvV]) |\n[cCbBoOxX~\\s]\n)\n",name:"constant.other.placeholder.racket"}]},"func-args":{patterns:[{include:"#function-name"},{include:"#dot"},{include:"#comment"},{include:"#args"}]},"function-name":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s* (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"entity.name.function.racket",end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"},name:"entity.name.function.racket"},{begin:"(?x) (?<=[(\\[{]) \\s*\n(\\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",beginCaptures:{1:{name:"entity.name.function.racket"}},contentName:"entity.name.function.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:"punctuation.verbatim.begin.racket"},end:"\\|",endCaptures:{0:"punctuation.verbatim.end.racket"}}]}]},hash:{patterns:[{begin:"(?x) \\# hash(?: eq(?: v)?)? \\(",beginCaptures:{0:{name:"punctuation.section.hash.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.hash.end.racket"}},name:"meta.hash.racket",patterns:[{include:"#hash-content"}]},{begin:"(?x) \\# hash(?: eq(?: v)?)? \\[",beginCaptures:{0:{name:"punctuation.section.hash.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.hash.end.racket"}},name:"meta.hash.racket",patterns:[{include:"#hash-content"}]},{begin:"(?x) \\# hash(?: eq(?: v)?)? \\{",beginCaptures:{0:{name:"punctuation.section.hash.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.hash.end.racket"}},name:"meta.hash.racket",patterns:[{include:"#hash-content"}]}]},"hash-content":{patterns:[{include:"#comment"},{include:"#pairing"}]},"here-string":{patterns:[{begin:"#<<(.*)$",end:"^\\1$",name:"string.here.racket"}]},keyword:{patterns:[{match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) \\#: [^()\\[\\]{}\",'`;\\s]+\n",name:"keyword.other.racket"}]},lambda:{patterns:[{include:"#lambda-onearg"},{include:"#lambda-args"}]},"lambda-args":{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s*\n(lambda | λ) \\s+\n(\\()\n",beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.end.racket"}},name:"meta.lambda.racket",patterns:[{include:"#args"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(lambda | λ) \\s+\n({)\n",beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.end.racket"}},name:"meta.lambda.racket",patterns:[{include:"#args"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(lambda | λ) \\s+\n(\\[)\n",beginCaptures:{1:{name:"storage.type.lambda.racket"},2:{name:"punctuation.section.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.end.racket"}},name:"meta.lambda.racket",patterns:[{include:"#args"}]}]},"lambda-onearg":[{captures:{1:{name:"storage.type.lambda.racket"},2:{name:"variable.parameter.racket"}},match:"(?x) (?<=[(\\[{]) \\s*\n(lambda | λ) \\s+\n([^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)\n",name:"meta.lambda.racket"}],list:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.list.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.list.end.racket"}},name:"meta.list.racket",patterns:[{include:"#list-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.list.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.list.end.racket"}},name:"meta.list.racket",patterns:[{include:"#list-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.list.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.list.end.racket"}},name:"meta.list.racket",patterns:[{include:"#list-content"}]}]},"list-content":{patterns:[{include:"#builtin-functions"},{include:"#dot"},{include:"$base"}]},"not-atom":{patterns:[{include:"#vector"},{include:"#hash"},{include:"#prefab-struct"},{include:"#list"},{match:"(?x) (?<=^|[()\\[\\]{}\\\",'`;\\s])\n(?: \\#[cC][iI] | \\#[cC][sS])\n(?=\\s)\n",name:"keyword.control.racket"},{match:"(?x) (?<=^|[()\\[\\]{}\\\",'`;\\s])\n(?: \\#&)\n",name:"support.function.racket"}]},number:{patterns:[{include:"#number-dec"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-hex"}]},"number-bin":{patterns:[{match:"(?x)\n(?<=^|[()\\[\\]{}\",'`;\\s])\n(?: \\#[bB](?: \\#[eEiI])? | (?: \\#[eEiI])?\\#[bB])\n(?:\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)|\n(?: [+-]? [01]+ \\. [01]+ \\#*) |\n(?: [+-]? [01]+ \\#* \\. \\#*) |\n(?: [+-]? [01]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [01]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n) @\n(?:\n(?:\n(?:\n(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)|\n(?: [+-]? [01]+ \\. [01]+ \\#*) |\n(?: [+-]? [01]+ \\#* \\. \\#*) |\n(?: [+-]? [01]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [01]+)?\n) |\n(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)\n) |\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)|\n(?: [+-]? [01]+ \\. [01]+ \\#*) |\n(?: [+-]? [01]+ \\#* \\. \\#*) |\n(?: [+-]? [01]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [01]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)? [+-]\n(?:\n(?:\n(?:\n(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)|\n(?: [+-]? [01]+ \\. [01]+ \\#*) |\n(?: [+-]? [01]+ \\#* \\. \\#*) |\n(?: [+-]? [01]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [01]+)?\n) |\n(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n) i\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n(?:\n(?: [+-]? [01]+ \\#* \\/ [01]+ \\#*)|\n(?: [+-]? [01]* \\. [01]+ \\#*) |\n(?: [+-]? [01]+ \\#* \\. \\#*) |\n(?: [+-]? [01]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [01]+)?\n) (?=$|[()\\[\\]{}\",'`;\\s])\n",name:"constant.numeric.bin.racket"}]},"number-dec":{patterns:[{match:"(?x)\n(?<=^|[()\\[\\]{}\",'`;\\s])\n(?: (?: \\#[dD])?(?: \\#[eEiI])? | (?: \\#[eEiI])?(?: \\#[dD])?)\n(?:\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)|\n(?: [+-]? \\d+ \\. \\d+ \\#*) |\n(?: [+-]? \\d+ \\#* \\. \\#*) |\n(?: [+-]? \\d+ \\#*)\n) (?: [sldefSLDEF] [+-]? \\d+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n) @\n(?:\n(?:\n(?:\n(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)|\n(?: [+-]? \\d+ \\. \\d+ \\#*) |\n(?: [+-]? \\d+ \\#* \\. \\#*) |\n(?: [+-]? \\d+ \\#*)\n) (?: [sldefSLDEF] [+-]? \\d+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)\n) |\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)|\n(?: [+-]? \\d+ \\. \\d+ \\#*) |\n(?: [+-]? \\d+ \\#* \\. \\#*) |\n(?: [+-]? \\d+ \\#*)\n) (?: [sldefSLDEF] [+-]? \\d+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)? [+-]\n(?:\n(?:\n(?:\n(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)|\n(?: [+-]? \\d+ \\. \\d+ \\#*) |\n(?: [+-]? \\d+ \\#* \\. \\#*) |\n(?: [+-]? \\d+ \\#*)\n) (?: [sldefSLDEF] [+-]? \\d+)?\n) |\n(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n) i\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n(?:\n(?: [+-]? \\d+ \\#* \\/ \\d+ \\#*)|\n(?: [+-]? \\d* \\. \\d+ \\#*) |\n(?: [+-]? \\d+ \\#* \\. \\#*) |\n(?: [+-]? \\d+ \\#*)\n) (?: [sldefSLDEF] [+-]? \\d+)?\n) (?=$|[()\\[\\]{}\",'`;\\s])\n",name:"constant.numeric.racket"}]},"number-hex":{patterns:[{match:"(?x)\n(?<=^|[()\\[\\]{}\",'`;\\s])\n(?: \\#[xX](?: \\#[eEiI])? | (?: \\#[eEiI])?\\#[xX])\n(?:\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)|\n(?: [+-]? [0-9a-fA-F] \\. [0-9a-fA-F]+ \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#*)\n) (?: [slSL] [+-]? [0-9a-fA-F]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n) @\n(?:\n(?:\n(?:\n(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)|\n(?: [+-]? [0-9a-fA-F]+ \\. [0-9a-fA-F]+ \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#*)\n) (?: [slSL] [+-]? [0-9a-fA-F]+)?\n) |\n(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)\n) |\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)|\n(?: [+-]? [0-9a-fA-F]+ \\. [0-9a-fA-F]+ \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#*)\n) (?: [slSL] [+-]? [0-9a-fA-F]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)? [+-]\n(?:\n(?:\n(?:\n(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)|\n(?: [+-]? [0-9a-fA-F]+ \\. [0-9a-fA-F]+ \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#*)\n) (?: [slSL] [+-]? [0-9a-fA-F]+)?\n) |\n(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n) i\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n(?:\n(?: [+-]? [0-9a-fA-F]+ \\#* \\/ [0-9a-fA-F]+ \\#*)|\n(?: [+-]? [0-9a-fA-F]* \\. [0-9a-fA-F]+ \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#* \\. \\#*) |\n(?: [+-]? [0-9a-fA-F]+ \\#*)\n) (?: [slSL] [+-]? [0-9a-fA-F]+)?\n) (?=$|[()\\[\\]{}\",'`;\\s])\n",name:"constant.numeric.hex.racket"}]},"number-oct":{patterns:[{match:"(?x)\n(?<=^|[()\\[\\]{}\",'`;\\s])\n(?: \\#[oO](?: \\#[eEiI])? | (?: \\#[eEiI])?\\#[oO])\n(?:\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)|\n(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) |\n(?: [+-]? [0-7]+ \\#* \\. \\#*) |\n(?: [+-]? [0-7]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [0-7]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n) @\n(?:\n(?:\n(?:\n(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)|\n(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) |\n(?: [+-]? [0-7]+ \\#* \\. \\#*) |\n(?: [+-]? [0-7]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [0-7]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)\n) |\n(?:\n(?:\n(?:\n(?:\n(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)|\n(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) |\n(?: [+-]? [0-7]+ \\#* \\. \\#*) |\n(?: [+-]? [0-7]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [0-7]+)?\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f])\n)? [+-]\n(?:\n(?:\n(?:\n(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)|\n(?: [+-]? [0-7]+ \\. [0-7]+ \\#*) |\n(?: [+-]? [0-7]+ \\#* \\. \\#*) |\n(?: [+-]? [0-7]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [0-7]+)?\n) |\n(?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n) i\n) |\n[+-] (?: (?: [iI][nN][fF])\\.[0f] | (?: [nN][aA][nN])\\.[0f]) |\n(?:\n(?: [+-]? [0-7]+ \\#* \\/ [0-7]+ \\#*)|\n(?: [+-]? [0-7]* \\. [0-7]+ \\#*) |\n(?: [+-]? [0-7]+ \\#* \\. \\#*) |\n(?: [+-]? [0-7]+ \\#*)\n) (?: [sldefSLDEF] [+-]? [0-7]+)?\n) (?=$|[()\\[\\]{}\",'`;\\s])\n",name:"constant.numeric.octal.racket"}]},"pair-content":{patterns:[{include:"#dot"},{include:"#comment"},{include:"#atom"}]},pairing:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.pair.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.pair.end.racket"}},name:"meta.list.racket",patterns:[{include:"#pair-content"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.pair.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.pair.end.racket"}},name:"meta.list.racket",patterns:[{include:"#pair-content"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.pair.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.pair.end.racket"}},name:"meta.list.racket",patterns:[{include:"#pair-content"}]}]},"prefab-struct":{patterns:[{begin:"#s\\(",beginCaptures:{0:{name:"punctuation.section.prefab-struct.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.prefab-struct.end.racket"}},name:"meta.prefab-struct.racket",patterns:[{include:"$base"}]},{begin:"#s\\[",beginCaptures:{0:{name:"punctuation.section.prefab-struct.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.prefab-struct.end.racket"}},name:"meta.prefab-struct.racket",patterns:[{include:"$base"}]},{begin:"#s{",beginCaptures:{0:{name:"punctuation.section.prefab-struct.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.prefab-struct.end.racket"}},name:"meta.prefab-struct.racket",patterns:[{include:"$base"}]}]},quote:{patterns:[{match:"(?x) (?<=^|[()\\[\\]{}\\\",'`;\\s])\n(?: ,@ | ' | ` | , | \\#' | \\#` | \\#, | \\#~ | \\#,@)+\n(?=[()\\[\\]{}\\\",'`;\\s] | \\#[^%] | [^()\\[\\]{}\",'`;\\s] )\n",name:"support.function.racket"}]},"regexp-byte-string":{patterns:[{begin:'#(r|p)x#"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.regexp.byte.racket",patterns:[{include:"#escape-char-base"}]}]},"regexp-string":{patterns:[{begin:'#(r|p)x"',beginCaptures:{0:[{name:"punctuation.definition.string.begin.racket"}]},end:'"',endCaptures:{0:[{name:"punctuation.definition.string.end.racket"}]},name:"string.regexp.racket",patterns:[{include:"#escape-char-base"}]}]},string:{patterns:[{include:"#byte-string"},{include:"#regexp-byte-string"},{include:"#regexp-string"},{include:"#base-string"},{include:"#here-string"}]},struct:{patterns:[{begin:"(?x) (?<=[(\\[{]) \\s*\n(struct) \\s+\n([^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)\n(?: \\s+ [^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)? \\s*\n(\\()\n",beginCaptures:{1:{name:"storage.struct.racket"},2:{name:"entity.name.struct.racket"},3:{name:"punctuation.section.fields.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.fields.end.racket"}},name:"meta.struct.fields.racket",patterns:[{include:"#comment"},{include:"#default-args-struct"},{include:"#struct-field"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(struct) \\s+\n([^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)\n(?: \\s+ [^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)? \\s*\n(\\[)\n",beginCaptures:{1:{name:"storage.struct.racket"},2:{name:"entity.name.struct.racket"},3:{name:"punctuation.section.fields.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.fields.end.racket"}},name:"meta.struct.fields.racket",patterns:[{include:"#default-args-struct"},{include:"#struct-field"}]},{begin:"(?x) (?<=[(\\[{]) \\s*\n(struct) \\s+\n([^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)\n(?: \\s+ [^(\\#)\\[\\]{}\",'`;\\s][^()\\[\\]{}\",'`;\\s]*)? \\s*\n(\\{)\n",beginCaptures:{1:{name:"storage.struct.racket"},2:{name:"entity.name.struct.racket"},3:{name:"punctuation.section.fields.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.fields.end.racket"}},name:"meta.struct.fields.racket",patterns:[{include:"#default-args-struct"},{include:"#struct-field"}]}]},"struct-field":{patterns:[{begin:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},contentName:"variable.other.member.racket",end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}},{begin:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s])\n(\\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",beginCaptures:{1:{name:"variable.other.member.racket"}},contentName:"variable.other.member.racket",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}}]}]},symbol:{patterns:[{begin:"(?x) (?<=^|[()\\[\\]{}\",;\\s]) (?: ` | ' )+(\\|)\n",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}},name:"string.quoted.single.racket"},{begin:"(?x) (?<=^|[()\\[\\]{}\",;\\s]) (?: ` | ' )+\n(?: \\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",end:"(?=[()\\[\\]{}\",'`;\\s])",name:"string.quoted.single.racket",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}}]}]},variable:{patterns:[{begin:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (\\|)",beginCaptures:{1:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}},{begin:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s])\n(?: \\#% | \\\\\\ | [^\\#()\\[\\]{}\",'`;\\s])\n",end:"(?=[()\\[\\]{}\",'`;\\s])",patterns:[{match:"\\\\ "},{begin:"\\|",beginCaptures:{0:{name:"punctuation.verbatim.begin.racket"}},end:"\\|",endCaptures:{0:{name:"punctuation.verbatim.end.racket"}}}]}]},vector:{patterns:[{begin:"(?x) \\# (?: fl | Fl | fx | Fx)? [0-9]* \\(",beginCaptures:{0:{name:"punctuation.section.vector.begin.racket"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.vector.end.racket"}},name:"meta.vector.racket",patterns:[{include:"$base"}]},{begin:"(?x) \\# (?: fl | Fl | fx | Fx)? [0-9]* \\[",beginCaptures:{0:{name:"punctuation.section.vector.begin.racket"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.vector.end.racket"}},name:"meta.vector.racket",patterns:[{include:"$base"}]},{begin:"(?x) \\# (?: fl | Fl | fx | Fx)? [0-9]* {",beginCaptures:{0:{name:"punctuation.section.vector.begin.racket"}},end:"}",endCaptures:{0:{name:"punctuation.section.vector.end.racket"}},name:"meta.vector.racket",patterns:[{include:"$base"}]}]}},r="source.racket",i={displayName:e,name:t,patterns:a,repository:n,scopeName:r};export{i as default,e as displayName,t as name,a as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/raku.mjs b/lib/dist/grammar/raku.mjs new file mode 100644 index 0000000..4364852 --- /dev/null +++ b/lib/dist/grammar/raku.mjs @@ -0,0 +1 @@ +var e="Raku",a="raku",n=[{begin:"^=begin",end:"^=end",name:"comment.block.perl"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.perl"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.perl"}},end:"\\n",name:"comment.line.number-sign.perl"}]},{captures:{1:{name:"storage.type.class.perl.6"},3:{name:"entity.name.type.class.perl.6"}},match:"(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)",name:"meta.class.perl.6"},{begin:"(?<=\\s)'",beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.single.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.perl"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.double.perl",patterns:[{match:'\\\\[abtnfre"\\\\]',name:"constant.character.escape.perl"}]},{begin:"q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/",end:"\\3",name:"string.quoted.single.heredoc.perl"},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{",end:"}}",name:"string.quoted.double.heredoc.brace.perl",patterns:[{include:"#qq_brace_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(",end:"\\)\\)",name:"string.quoted.double.heredoc.paren.perl",patterns:[{include:"#qq_paren_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[",end:"\\]\\]",name:"string.quoted.double.heredoc.bracket.perl",patterns:[{include:"#qq_bracket_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{",end:"}",name:"string.quoted.single.heredoc.brace.perl",patterns:[{include:"#qq_brace_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/",end:"/",name:"string.quoted.single.heredoc.slash.perl",patterns:[{include:"#qq_slash_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(",end:"\\)",name:"string.quoted.single.heredoc.paren.perl",patterns:[{include:"#qq_paren_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[",end:"\\]",name:"string.quoted.single.heredoc.bracket.perl",patterns:[{include:"#qq_bracket_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'",end:"'",name:"string.quoted.single.heredoc.single.perl",patterns:[{include:"#qq_single_string_content"}]},{begin:'(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*"',end:'"',name:"string.quoted.single.heredoc.double.perl",patterns:[{include:"#qq_double_string_content"}]},{match:"\\b\\$\\w+\\b",name:"variable.other.perl"},{match:"\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b",name:"storage.type.declare.routine.perl"},{match:"\\b(self)\\b",name:"variable.language.perl"},{match:"\\b(use|require)\\b",name:"keyword.other.include.perl"},{match:"\\b(if|else|elsif|unless)\\b",name:"keyword.control.conditional.perl"},{match:"\\b(let|my|our|state|temp|has|constant)\\b",name:"storage.type.variable.perl"},{match:"\\b(for|loop|repeat|while|until|gather|given)\\b",name:"keyword.control.repeat.perl"},{match:"\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b",name:"keyword.control.flowcontrol.perl"},{match:"\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b",name:"storage.modifier.type.constraints.perl"},{match:"\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b",name:"meta.function.perl"},{match:"\\b(die|fail|try|warn)\\b",name:"keyword.control.control-handlers.perl"},{match:"\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b",name:"storage.modifier.perl"},{match:"\\b(NaN|Inf)\\b",name:"constant.numeric.perl"},{match:"\\b(oo|fatal)\\b",name:"keyword.other.pragma.perl"},{match:"\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b",name:"support.type.perl6"},{match:"\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b",name:"keyword.operator.perl"},{match:"(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*",name:"variable.other.identifier.perl.6"},{match:"\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b",name:"support.function.perl"}],r={qq_brace_string_content:{begin:"{",end:"}",patterns:[{include:"#qq_brace_string_content"}]},qq_bracket_string_content:{begin:"\\[",end:"\\]",patterns:[{include:"#qq_bracket_string_content"}]},qq_double_string_content:{begin:'"',end:'"',patterns:[{include:"#qq_double_string_content"}]},qq_paren_string_content:{begin:"\\(",end:"\\)",patterns:[{include:"#qq_paren_string_content"}]},qq_single_string_content:{begin:"'",end:"'",patterns:[{include:"#qq_single_string_content"}]},qq_slash_string_content:{begin:"\\\\/",end:"\\\\/",patterns:[{include:"#qq_slash_string_content"}]}},s="source.perl.6",t={displayName:e,name:a,patterns:n,repository:r,scopeName:s};export{t as default,e as displayName,a as name,n as patterns,r as repository,s as scopeName}; diff --git a/lib/dist/grammar/razor.mjs b/lib/dist/grammar/razor.mjs new file mode 100644 index 0000000..f73df87 --- /dev/null +++ b/lib/dist/grammar/razor.mjs @@ -0,0 +1 @@ +var e="ASP.NET Razor",t=["razor","cshtml"],n={"string.quoted.double.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]},"string.quoted.single.html":{patterns:[{include:"#explicit-razor-expression"},{include:"#implicit-expression"}]}},i="razor",a=[{include:"#razor-control-structures"},{include:"text.html.basic"}],r={"addTagHelper-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.addTagHelper"},3:{patterns:[{include:"#tagHelper-directive-argument"}]}},match:"(@)(addTagHelper)\\s+([^$]+)?",name:"meta.directive"},"attribute-directive":{begin:"(@)(attribute)\\b\\s+",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.attribute"}},end:"(?<=\\])|$",name:"meta.directive",patterns:[{include:"source.cs#attribute-section"}]},"await-prefix":{match:"(await)\\s+",name:"keyword.other.await.cs"},"balanced-brackets-csharp":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.squarebracket.open.cs"}},end:"(\\])",endCaptures:{1:{name:"punctuation.squarebracket.close.cs"}},name:"razor.test.balanced.brackets",patterns:[{include:"source.cs"}]},"balanced-parenthesis-csharp":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parenthesis.close.cs"}},name:"razor.test.balanced.parenthesis",patterns:[{include:"source.cs"}]},"catch-clause":{begin:"(?:^|(?<=}))\\s*(catch)\\b\\s*?(?=[\\n\\(\\{])",beginCaptures:{1:{name:"keyword.control.try.catch.cs"}},end:"(?<=})",name:"meta.statement.catch.razor",patterns:[{include:"#catch-condition"},{include:"source.cs#when-clause"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"catch-condition":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{1:{patterns:[{include:"source.cs#type"}]},6:{name:"entity.name.variable.local.cs"}},match:"(?x)\n(?<type-name>\n(?:\n(?:\n(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?<name-and-type-args>\n\\g<identifier>\\s*\n(?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g<name-and-type-args>)* |\n(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\\s*\n(?:(\\g<identifier>)\\b)?"}]},"code-directive":{begin:"(@)(code)((?=\\{)|\\s+)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.code"}},end:"(?<=})|\\s",patterns:[{include:"#directive-codeblock"}]},"csharp-code-block":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.curlybrace.open.cs"}},end:"(\\})",endCaptures:{1:{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"csharp-condition":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{1:{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"source.cs#local-variable-declaration"},{include:"source.cs#expression"},{include:"source.cs#punctuation-comma"},{include:"source.cs#punctuation-semicolon"}]},"directive-codeblock":{begin:"(\\{)",beginCaptures:{1:{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:"(\\})",endCaptures:{1:{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.codeblock",patterns:[{include:"source.cs#class-or-struct-members"}]},"directive-markupblock":{begin:"(\\{)",beginCaptures:{1:{name:"keyword.control.razor.directive.codeblock.open"}},end:"(\\})",endCaptures:{1:{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.directive.markblock",patterns:[{include:"$self"}]},directives:{patterns:[{include:"#code-directive"},{include:"#functions-directive"},{include:"#page-directive"},{include:"#addTagHelper-directive"},{include:"#removeTagHelper-directive"},{include:"#tagHelperPrefix-directive"},{include:"#model-directive"},{include:"#inherits-directive"},{include:"#implements-directive"},{include:"#namespace-directive"},{include:"#inject-directive"},{include:"#attribute-directive"},{include:"#section-directive"},{include:"#layout-directive"},{include:"#using-directive"},{include:"#rendermode-directive"},{include:"#preservewhitespace-directive"},{include:"#typeparam-directive"}]},"do-statement":{begin:"(?:(@))(do)\\b\\s",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.do.cs"}},end:"(?<=})",name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"do-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(do)\\b\\s",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.do.cs"}},end:"(?<=})",name:"meta.statement.do.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"else-part":{begin:"(?:^|(?<=}))\\s*(else)\\b\\s*?(?: (if))?\\s*?(?=[\\n\\(\\{])",beginCaptures:{1:{name:"keyword.control.conditional.else.cs"},2:{name:"keyword.control.conditional.if.cs"}},end:"(?<=})",name:"meta.statement.else.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"escaped-transition":{match:"@@",name:"constant.character.escape.razor.transition"},"explicit-razor-expression":{begin:"(@)\\(",beginCaptures:{0:{name:"keyword.control.cshtml"},1:{patterns:[{include:"#transition"}]}},end:"\\)",endCaptures:{0:{name:"keyword.control.cshtml"}},name:"meta.expression.explicit.cshtml",patterns:[{include:"source.cs#expression"}]},"finally-clause":{begin:"(?:^|(?<=}))\\s*(finally)\\b\\s*?(?=[\\n\\{])",beginCaptures:{1:{name:"keyword.control.try.finally.cs"}},end:"(?<=})",name:"meta.statement.finally.razor",patterns:[{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement":{begin:"(?:(@))(for)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.for.cs"}},end:"(?<=})",name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"for-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(for)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.for.cs"}},end:"(?<=})",name:"meta.statement.for.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-condition":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.cs"}},patterns:[{captures:{1:{name:"keyword.other.var.cs"},2:{patterns:[{include:"source.cs#type"}]},7:{name:"entity.name.variable.local.cs"},8:{name:"keyword.control.loop.in.cs"}},match:"(?x)\n(?:\n(\\bvar\\b)|\n(?<type-name>\n(?:\n(?:\n(?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)?\n(?<name-and-type-args>\n\\g<identifier>\\s*\n(?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n)\n(?:\\s*\\.\\s*\\g<name-and-type-args>)* |\n(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n)\n(?:\\s*\\?\\s*)?\n(?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)*\n)\n)\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b"},{captures:{1:{name:"keyword.other.var.cs"},2:{patterns:[{include:"source.cs#tuple-declaration-deconstruction-element-list"}]},3:{name:"keyword.control.loop.in.cs"}},match:"(?x)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b"},{include:"source.cs#expression"}]},"foreach-statement":{begin:"(?:(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{patterns:[{include:"#await-prefix"}]},3:{name:"keyword.control.loop.foreach.cs"}},end:"(?<=})",name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"foreach-statement-with-optional-transition":{begin:"(?:^\\s*|(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{patterns:[{include:"#await-prefix"}]},3:{name:"keyword.control.loop.foreach.cs"}},end:"(?<=})",name:"meta.statement.foreach.razor",patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"functions-directive":{begin:"(@)(functions)((?=\\{)|\\s+)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.functions"}},end:"(?<=})|\\s",patterns:[{include:"#directive-codeblock"}]},"if-statement":{begin:"(?:(@))(if)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.conditional.if.cs"}},end:"(?<=})",name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"if-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(if)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.conditional.if.cs"}},end:"(?<=})",name:"meta.statement.if.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"implements-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.implements"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(implements)\\s+([^$]+)?",name:"meta.directive"},"implicit-expression":{begin:"(?<![[:alpha:][:alnum:]])(@)",beginCaptures:{1:{patterns:[{include:"#transition"}]}},contentName:"source.cs",end:"(?=[\\s<>\\{\\}\\)\\]'\"])",name:"meta.expression.implicit.cshtml",patterns:[{include:"#await-prefix"},{include:"#implicit-expression-body"}]},"implicit-expression-accessor":{match:"(?<=\\.)[_[:alpha:]][_[:alnum:]]*",name:"variable.other.object.property.cs"},"implicit-expression-accessor-start":{begin:"([_[:alpha:]][_[:alnum:]]*)",beginCaptures:{1:{name:"variable.other.object.cs"}},end:"(?=[\\s<>\\{\\}\\)\\]'\"])",patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-body":{end:"(?=[\\s<>\\{\\}\\)\\]'\"])",patterns:[{include:"#implicit-expression-invocation-start"},{include:"#implicit-expression-accessor-start"}]},"implicit-expression-continuation":{end:"(?=[\\s<>\\{\\}\\)\\]'\"])",patterns:[{include:"#balanced-parenthesis-csharp"},{include:"#balanced-brackets-csharp"},{include:"#implicit-expression-invocation"},{include:"#implicit-expression-accessor"},{include:"#implicit-expression-extension"}]},"implicit-expression-dot-operator":{captures:{1:{name:"punctuation.accessor.cs"}},match:"(\\.)(?=[_[:alpha:]][_[:alnum:]]*)"},"implicit-expression-invocation":{match:"(?<=\\.)[_[:alpha:]][_[:alnum:]]*(?=\\()",name:"entity.name.function.cs"},"implicit-expression-invocation-start":{begin:"([_[:alpha:]][_[:alnum:]]*)(?=\\()",beginCaptures:{1:{name:"entity.name.function.cs"}},end:"(?=[\\s<>\\{\\}\\)\\]'\"])",patterns:[{include:"#implicit-expression-continuation"}]},"implicit-expression-null-conditional-operator":{captures:{1:{name:"keyword.operator.null-conditional.cs"}},match:"(\\?)(?=[.\\[])"},"implicit-expression-null-forgiveness-operator":{captures:{1:{name:"keyword.operator.logical.cs"}},match:"(\\!)(?=(?:\\.[_[:alpha:]][_[:alnum:]]*)|\\?|[\\[\\(])"},"implicit-expression-operator":{patterns:[{include:"#implicit-expression-dot-operator"},{include:"#implicit-expression-null-conditional-operator"},{include:"#implicit-expression-null-forgiveness-operator"}]},"inherits-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.inherits"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(inherits)\\s+([^$]+)?",name:"meta.directive"},"inject-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.inject"},3:{patterns:[{include:"source.cs#type"}]},4:{name:"entity.name.variable.property.cs"}},match:"(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)",name:"meta.directive"},"layout-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.layout"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(layout)\\s+([^$]+)?",name:"meta.directive"},"lock-statement":{begin:"(?:(@))(lock)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.lock.cs"}},end:"(?<=})",name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"lock-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(lock)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.lock.cs"}},end:"(?<=})",name:"meta.statement.lock.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"model-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.model"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(model)\\s+([^$]+)?",name:"meta.directive"},"namespace-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.namespace"},3:{patterns:[{include:"#namespace-directive-argument"}]}},match:"(@)(namespace)\\s+([^\\s]+)?",name:"meta.directive"},"namespace-directive-argument":{captures:{1:{name:"entity.name.type.namespace.cs"},2:{name:"punctuation.accessor.cs"}},match:"([_[:alpha:]][_[:alnum:]]*)(\\.)?"},"non-void-tag":{begin:"(?=<(!)?([^/\\s>]+)(\\s|/?>))",end:"(</)(\\2)\\s*(>)|(/>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"},3:{name:"punctuation.definition.tag.end.html"},4:{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(<)(!)?([^/\\s>]+)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"constant.character.escape.razor.tagHelperOptOut"},3:{name:"entity.name.tag.html"}},end:"(?=/?>)",patterns:[{include:"#razor-control-structures"},{include:"text.html.basic#attribute"}]},{begin:">",beginCaptures:{0:{name:"punctuation.definition.tag.end.html"}},end:"(?=</)",patterns:[{include:"#wellformed-html"},{include:"$self"}]}]},"optionally-transitioned-csharp-control-structures":{patterns:[{include:"#using-statement-with-optional-transition"},{include:"#if-statement-with-optional-transition"},{include:"#else-part"},{include:"#foreach-statement-with-optional-transition"},{include:"#for-statement-with-optional-transition"},{include:"#while-statement"},{include:"#switch-statement-with-optional-transition"},{include:"#lock-statement-with-optional-transition"},{include:"#do-statement-with-optional-transition"},{include:"#try-statement-with-optional-transition"}]},"optionally-transitioned-razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#optionally-transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"page-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.page"},3:{patterns:[{include:"source.cs#string-literal"}]}},match:"(@)(page)\\s+([^$]+)?",name:"meta.directive"},"preservewhitespace-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.preservewhitespace"},3:{patterns:[{include:"source.cs#boolean-literal"}]}},match:"(@)(preservewhitespace)\\s+([^$]+)?",name:"meta.directive"},"razor-codeblock":{begin:"(@)(\\{)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",end:"(\\})",endCaptures:{1:{name:"keyword.control.razor.directive.codeblock.close"}},name:"meta.structure.razor.codeblock",patterns:[{include:"#razor-codeblock-body"}]},"razor-codeblock-body":{patterns:[{include:"#text-tag"},{include:"#wellformed-html"},{include:"#razor-single-line-markup"},{include:"#optionally-transitioned-razor-control-structures"},{include:"source.cs"}]},"razor-comment":{begin:"(@)(\\*)",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.comment.star"}},contentName:"comment.block.razor",end:"(\\*)(@)",endCaptures:{1:{name:"keyword.control.razor.comment.star"},2:{patterns:[{include:"#transition"}]}},name:"meta.comment.razor"},"razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"razor-single-line-markup":{captures:{1:{name:"keyword.control.razor.singleLineMarkup"},2:{patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}]}},match:"(\\@\\:)([^$]*)$"},"removeTagHelper-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.removeTagHelper"},3:{patterns:[{include:"#tagHelper-directive-argument"}]}},match:"(@)(removeTagHelper)\\s+([^$]+)?",name:"meta.directive"},"rendermode-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.rendermode"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(rendermode)\\s+([^$]+)?",name:"meta.directive"},"section-directive":{begin:"(@)(section)\\b\\s+([_[:alpha:]][_[:alnum:]]*)?",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.section"},3:{name:"variable.other.razor.directive.sectionName"}},end:"(?<=})",name:"meta.directive.block",patterns:[{include:"#directive-markupblock"}]},"switch-code-block":{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.curlybrace.open.cs"}},end:"(\\})",endCaptures:{1:{name:"punctuation.curlybrace.close.cs"}},name:"meta.structure.razor.csharp.codeblock.switch",patterns:[{include:"source.cs#switch-label"},{include:"#razor-codeblock-body"}]},"switch-statement":{begin:"(?:(@))(switch)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.switch.cs"}},end:"(?<=})",name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"switch-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(switch)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.switch.cs"}},end:"(?<=})",name:"meta.statement.switch.razor",patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}]},"tagHelper-directive-argument":{patterns:[{include:"source.cs#string-literal"},{include:"#unquoted-string-argument"}]},"tagHelperPrefix-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.tagHelperPrefix"},3:{patterns:[{include:"#tagHelper-directive-argument"}]}},match:"(@)(tagHelperPrefix)\\s+([^$]+)?",name:"meta.directive"},"text-tag":{begin:"(<text\\s*>)",beginCaptures:{1:{name:"keyword.control.cshtml.transition.textTag.open"}},end:"(</text>)",endCaptures:{1:{name:"keyword.control.cshtml.transition.textTag.close"}},patterns:[{include:"#wellformed-html"},{include:"$self"}]},transition:{match:"@",name:"keyword.control.cshtml.transition"},"transitioned-csharp-control-structures":{patterns:[{include:"#using-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#foreach-statement"},{include:"#for-statement"},{include:"#while-statement"},{include:"#switch-statement"},{include:"#lock-statement"},{include:"#do-statement"},{include:"#try-statement"}]},"try-block":{begin:"(?:(@))(try)\\b\\s*",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.try.cs"}},end:"(?<=})",name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-block-with-optional-transition":{begin:"(?:^\\s*|(@))(try)\\b\\s*",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.try.cs"}},end:"(?<=})",name:"meta.statement.try.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-statement-with-optional-transition":{patterns:[{include:"#try-block-with-optional-transition"},{include:"#catch-clause"},{include:"#finally-clause"}]},"typeparam-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.razor.directive.typeparam"},3:{patterns:[{include:"source.cs#type"}]}},match:"(@)(typeparam)\\s+([^$]+)?",name:"meta.directive"},"unquoted-string-argument":{match:"[^$]+",name:"string.quoted.double.cs"},"using-alias-directive":{captures:{1:{name:"entity.name.type.alias.cs"},2:{name:"keyword.operator.assignment.cs"},3:{patterns:[{include:"source.cs#type"}]}},match:"([_[:alpha:]][_[:alnum:]]*)\\b\\s*(=)\\s*(.+)\\s*"},"using-directive":{captures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.using.cs"},3:{patterns:[{include:"#using-static-directive"},{include:"#using-alias-directive"},{include:"#using-standard-directive"}]},4:{name:"keyword.control.razor.optionalSemicolon"}},match:"(@)(using)\\b\\s+(?!\\(|\\s)(.+?)?(;)?$",name:"meta.directive"},"using-standard-directive":{captures:{1:{name:"entity.name.type.namespace.cs"}},match:"([_[:alpha:]][_[:alnum:]]*)\\s*"},"using-statement":{begin:"(?:(@))(using)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.using.cs"}},end:"(?<=})",name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-statement-with-optional-transition":{begin:"(?:^\\s*|(@))(using)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.other.using.cs"}},end:"(?<=})",name:"meta.statement.using.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]},"using-static-directive":{captures:{1:{name:"keyword.other.static.cs"},2:{patterns:[{include:"source.cs#type"}]}},match:"(static)\\b\\s+(.+)"},"void-tag":{begin:"(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"constant.character.escape.razor.tagHelperOptOut"},3:{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$3.void.html",patterns:[{include:"text.html.basic#attribute"}]},"wellformed-html":{patterns:[{include:"#void-tag"},{include:"#non-void-tag"}]},"while-statement":{begin:"(?:(@)|^\\s*|(?<=})\\s*)(while)\\b\\s*(?=\\()",beginCaptures:{1:{patterns:[{include:"#transition"}]},2:{name:"keyword.control.loop.while.cs"}},end:"(?<=})|(;)",endCaptures:{1:{name:"punctuation.terminator.statement.cs"}},name:"meta.statement.while.razor",patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}]}},c="text.aspnetcorerazor",o={displayName:e,fileTypes:t,injections:n,name:i,patterns:a,repository:r,scopeName:c};export{o as default,e as displayName,t as fileTypes,n as injections,i as name,a as patterns,r as repository,c as scopeName}; diff --git a/lib/dist/grammar/reg.mjs b/lib/dist/grammar/reg.mjs new file mode 100644 index 0000000..e194afb --- /dev/null +++ b/lib/dist/grammar/reg.mjs @@ -0,0 +1 @@ +var e="Windows Registry Script",n=["reg","REG"],t="reg",a=[{match:"Windows Registry Editor Version 5\\.00|REGEDIT4",name:"keyword.control.import.reg"},{captures:{1:{name:"punctuation.definition.comment.reg"}},match:"(;).*$",name:"comment.line.semicolon.reg"},{captures:{1:{name:"punctuation.definition.section.reg"},2:{name:"entity.section.reg"},3:{name:"punctuation.definition.section.reg"}},match:"^\\s*(\\[(?!-))(.*?)(\\])",name:"entity.name.function.section.add.reg"},{captures:{1:{name:"punctuation.definition.section.reg"},2:{name:"entity.section.reg"},3:{name:"punctuation.definition.section.reg"}},match:"^\\s*(\\[-)(.*?)(\\])",name:"entity.name.function.section.delete.reg"},{captures:{2:{name:"punctuation.definition.quote.reg"},3:{name:"support.function.regname.ini"},4:{name:"punctuation.definition.quote.reg"},5:{name:"punctuation.definition.equals.reg"},7:{name:"keyword.operator.arithmetic.minus.reg"},9:{name:"punctuation.definition.quote.reg"},10:{name:"string.name.regdata.reg"},11:{name:"punctuation.definition.quote.reg"},13:{name:"support.type.dword.reg"},14:{name:"keyword.operator.arithmetic.colon.reg"},15:{name:"constant.numeric.dword.reg"},17:{name:"support.type.dword.reg"},18:{name:"keyword.operator.arithmetic.parenthesis.reg"},19:{name:"keyword.operator.arithmetic.parenthesis.reg"},20:{name:"constant.numeric.hex.size.reg"},21:{name:"keyword.operator.arithmetic.parenthesis.reg"},22:{name:"keyword.operator.arithmetic.colon.reg"},23:{name:"constant.numeric.hex.reg"},24:{name:"keyword.operator.arithmetic.linecontinuation.reg"},25:{name:"comment.declarationline.semicolon.reg"}},match:"^(\\s*([\"']?)(.+?)([\"']?)\\s*(=))?\\s*((-)|(([\"'])(.*?)([\"']))|(((?i:dword))(\\:)\\s*([\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\()([\\d]*)(\\)))?(\\:)(.*?)(\\\\?)))\\s*(;.*)?$",name:"meta.declaration.reg"},{match:"[0-9]+",name:"constant.numeric.reg"},{match:"[a-fA-F]+",name:"constant.numeric.hex.reg"},{match:",+",name:"constant.numeric.hex.comma.reg"},{match:"\\\\",name:"keyword.operator.arithmetic.linecontinuation.reg"}],i="source.reg",r={displayName:e,fileTypes:n,name:"reg",patterns:a,scopeName:i};export{r as default,e as displayName,n as fileTypes,t as name,a as patterns,i as scopeName}; diff --git a/lib/dist/grammar/regexp.mjs b/lib/dist/grammar/regexp.mjs new file mode 100644 index 0000000..3b0943d --- /dev/null +++ b/lib/dist/grammar/regexp.mjs @@ -0,0 +1 @@ +var e="RegExp",n=["re"],a="regexp",r=[{include:"#regexp-expression"}],t={codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:"(?x)\n\\{\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\\}\n",name:"keyword.operator.quantifier.regexp"},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:"(?x)\n(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| 0[0-7]{1,2}\n| [0-7]{3}\n)\n",name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n)\n",name:"constant.character.unicode.regexp"},"regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#regexp-character-set"},{include:"#regexp-comments"},{include:"#regexp-flags"},{include:"#regexp-named-group"},{include:"#regexp-backreference"},{include:"#regexp-lookahead"},{include:"#regexp-lookahead-negative"},{include:"#regexp-lookbehind"},{include:"#regexp-lookbehind-negative"},{include:"#regexp-conditional"},{include:"#regexp-parentheses-non-capturing"},{include:"#regexp-parentheses"}]},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#regexp-expression"}]},"regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-expression"}]},"regexp-quantifier":{match:"(?x)\n\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\n",name:"keyword.operator.quantifier.regexp"}},p="source.regexp.python",i={displayName:e,fileTypes:n,name:a,patterns:r,repository:t,scopeName:p};export{i as default,e as displayName,n as fileTypes,a as name,r as patterns,t as repository,p as scopeName}; diff --git a/lib/dist/grammar/rel.mjs b/lib/dist/grammar/rel.mjs new file mode 100644 index 0000000..7936cbe --- /dev/null +++ b/lib/dist/grammar/rel.mjs @@ -0,0 +1 @@ +var e="Rel",n="rel",t=[{include:"#strings"},{include:"#comment"},{include:"#single-line-comment-consuming-line-ending"},{include:"#deprecated-temporary"},{include:"#operators"},{include:"#symbols"},{include:"#keywords"},{include:"#otherkeywords"},{include:"#types"},{include:"#constants"}],a={comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.rel"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.rel"}},name:"comment.block.documentation.rel",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.rel"},2:{name:"storage.type.internaldeclaration.rel"},3:{name:"punctuation.decorator.internaldeclaration.rel"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.rel"}},name:"comment.block.rel"},{begin:'doc"""',end:'"""',name:"comment.block.documentation.rel"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.rel"},2:{name:"comment.line.double-slash.rel"},3:{name:"punctuation.definition.comment.rel"},4:{name:"storage.type.internaldeclaration.rel"},5:{name:"punctuation.decorator.internaldeclaration.rel"}},contentName:"comment.line.double-slash.rel",end:"(?=$)"}]},constants:{patterns:[{match:"(\\b(true|false)\\b)",name:"constant.language.rel"}]},"deprecated-temporary":{patterns:[{match:"@inspect",name:"keyword.other.rel"}]},keywords:{patterns:[{match:"(\\b(def|entity|bound|include|ic|forall|exists|∀|∃|return|module|^end)\\b)|(((\\<)?\\|(\\>)?)|∀|∃)",name:"keyword.control.rel"}]},operators:{patterns:[{match:"(\\b(if|then|else|and|or|not|eq|neq|lt|lt_eq|gt|gt_eq)\\b)|(\\+|\\-|\\*|\\/|÷|\\^|\\%|\\=|\\!\\=|≠|\\<|\\<\\=|≤|\\>|\\>\\=|≥|\\&)|\\s+(end)",name:"keyword.other.rel"}]},otherkeywords:{patterns:[{match:"\\s*(@inline)\\s*|\\s*(@auto_number)\\s*|\\s*(function)\\s|(\\b(implies|select|from|∈|where|for|in)\\b)|(((\\<)?\\|(\\>)?)|∈)",name:"keyword.other.rel"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.rel"},2:{name:"comment.line.double-slash.rel"},3:{name:"punctuation.definition.comment.rel"},4:{name:"storage.type.internaldeclaration.rel"},5:{name:"punctuation.decorator.internaldeclaration.rel"}},contentName:"comment.line.double-slash.rel",end:"(?=^)"},strings:{begin:'"',end:'"',name:"string.quoted.double.rel",patterns:[{match:"\\\\.",name:"constant.character.escape.rel"}]},symbols:{patterns:[{match:"(:[\\[_$[:alpha:]](\\]|[_$[:alnum:]]*))",name:"variable.parameter.rel"}]},types:{patterns:[{match:"(\\b(Symbol|Char|Bool|Rational|FixedDecimal|Float16|Float32|Float64|Int8|Int16|Int32|Int64|Int128|UInt8|UInt16|UInt32|UInt64|UInt128|Date|DateTime|Day|Week|Month|Year|Nanosecond|Microsecond|Millisecond|Second|Minute|Hour|FilePos|HashValue|AutoNumberValue)\\b)",name:"entity.name.type.rel"}]}},o="source.rel",r={displayName:"Rel",name:"rel",patterns:t,repository:a,scopeName:o};export{r as default,e as displayName,n as name,t as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/riscv.mjs b/lib/dist/grammar/riscv.mjs new file mode 100644 index 0000000..3d78635 --- /dev/null +++ b/lib/dist/grammar/riscv.mjs @@ -0,0 +1 @@ +var n="RISC-V",e=["S","s","riscv","asm"],t="riscv",s=[{comment:"ok actually this are instructions, but one also could call them funtions…",match:"\\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r|w|s|c]|csr[w|s|c]i)\\b",name:"support.function.pseudo.riscv"},{match:"\\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\\b",name:"support.function.riscv"},{comment:"priviledged instructions",match:"\\b(ecall|ebreak|sfence\\.vma|mret|sret|uret|wfi)\\b",name:"support.function.riscv.privileged"},{comment:"M extension (multiplication and division)",match:"\\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\\b",name:"support.function.riscv.m"},{comment:"C extension (compressed instructions)",match:"\\b(c\\.addi4spn|c\\.fld|c\\.lq|c\\.lw|c\\.flw|c\\.ld|c\\.fsd|c\\.sq|c\\.sw|c\\.fsw|c\\.sd|c\\.nop|c\\.addi|c\\.jal|c\\.addiw|c\\.li|c\\.addi16sp|c\\.lui|c\\.srli|c\\.srli64|c\\.srai|c\\.srai64|c\\.andi|c\\.sub|c\\.xor|c\\.or|c\\.and|c\\.subw|c\\.addw|c\\.j|c\\.beqz|c\\.bnez)\\b",name:"support.function.riscv.c"},{comment:"A extension (atomic instructions)",match:"\\b(lr\\.[w|d]|sc\\.[w|d]|amoswap\\.[w|d]|amoadd\\.[w|d]|amoxor\\.[w|d]|amoand\\.[w|d]|amoor\\.[w|d]|amomin\\.[w|d]|amomax\\.[w|d]|amominu\\.[w|d]|amomaxu\\.[w|d])\\b",name:"support.function.riscv.a"},{comment:"F extension (single precision floating point)",match:"\\b(flw|fsw|fmadd\\.s|fmsub\\.s|fnmsub\\.s|fnmadd\\.s|fadd\\.s|fsub\\.s|fmul\\.s|fdiv\\.s|fsqrt\\.s|fsgnj\\.s|fsgnjn\\.s|fsgnjx\\.s|fmin\\.s|fmax\\.s|fcvt\\.w\\.s|fcvt\\.wu\\.s|fmv\\.x\\.w|feq\\.s|flt\\.s|fle\\.s|fclass\\.s|fcvt\\.s\\.w|fcvt\\.s\\.wu|fmv\\.w\\.x|fcvt\\.l\\.s|fcvt\\.lu\\.s|fcvt\\.s\\.l|fcvt\\.s\\.lu)\\b",name:"support.function.riscv.f"},{comment:"D extension (double precision floating point)",match:"\\b(fld|fsd|fmadd\\.d|fmsub\\.d|fnmsub\\.d|fnmadd\\.d|fadd\\.d|fsub\\.d|fmul\\.d|fdiv\\.d|fsqrt\\.d|fsgnj\\.d|fsgnjn\\.d|fsgnjx\\.d|fmin\\.d|fmax\\.d|fcvt\\.s\\.d|fcvt\\.d\\.s|feq\\.d|flt\\.d|fle\\.d|fclass\\.d|fcvt\\.w\\.d|fcvt\\.wu\\.d|fcvt\\.d\\.w|fcvt\\.d\\.wu|fcvt\\.l\\.d|fcvt\\.lu\\.d|fmv\\.x\\.d|fcvt\\.d\\.l|fcvt\\.d\\.lu|fmv\\.d\\.x)\\b",name:"support.function.riscv.d"},{match:"\\.(skip|ascii|asciiz|byte|[2|4|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\\s*(noat|at)|[s|u]leb128|string|incbin|zero|rodata|comm|common)\\b",name:"storage.type.riscv"},{match:"\\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\\b",name:"storage.modifier.riscv"},{captures:{1:{name:"entity.name.function.label.riscv"}},match:"\\b([A-Za-z0-9_]+):",name:"meta.function.label.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\\b",name:"variable.other.register.usable.by-number.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\\b",name:"variable.other.register.usable.by-name.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\\b",name:"variable.other.csr.names.riscv"},{captures:{1:{name:"punctuation.definition.variable.riscv"}},match:"\\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\\b",name:"variable.other.register.usable.floating-point.riscv"},{match:"\\b\\d+\\.\\d+\\b",name:"constant.numeric.float.riscv"},{match:"\\b(\\d+|0(x|X)[a-fA-F0-9]+)\\b",name:"constant.numeric.integer.riscv"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.riscv"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:'\\\\[rnt\\\\"]',name:"constant.character.escape.riscv"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.riscv"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:'\\\\[rnt\\\\"]',name:"constant.character.escape.riscv"}]},{begin:"\\/\\*",end:"\\*\\/",name:"comment.block"},{begin:"\\/\\/",end:"\\n",name:"comment.line.double-slash"},{begin:"(?x)\n^\\s*\\#\\s*(define)\\s+\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*))\n(?:\n(\\()\n(\n\\s* \\g<id> \\s*\n((,) \\s* \\g<id> \\s*)*\n(?:\\.\\.\\.)?\n)\n(\\))\n)?\n",beginCaptures:{1:{name:"keyword.control.import.define.c"},2:{name:"entity.name.function.preprocessor.c"},4:{name:"punctuation.definition.parameters.c"},5:{name:"variable.parameter.preprocessor.c"},7:{name:"punctuation.separator.parameters.c"},8:{name:"punctuation.definition.parameters.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.macro.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"$base"}]},{begin:"^\\s*#\\s*(error|warning)\\b",captures:{1:{name:"keyword.control.import.error.c"}},end:"$",name:"meta.preprocessor.diagnostic.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"^\\s*#\\s*(include|import)\\b\\s+",captures:{1:{name:"keyword.control.import.include.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c.include",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:"<",beginCaptures:{0:{name:"punctuation.definition.string.begin.c"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:"^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\\b",captures:{1:{name:"keyword.control.import.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.riscv"}},end:"(?!\\G)",patterns:[{begin:"#|(\\/\\/)",beginCaptures:{0:{name:"punctuation.definition.comment.riscv"}},end:"\\n",name:"comment.line.number-sign.riscv"}]}],i="source.riscv",a={displayName:n,fileTypes:e,name:t,patterns:s,scopeName:i};export{a as default,n as displayName,e as fileTypes,t as name,s as patterns,i as scopeName}; diff --git a/lib/dist/grammar/rst.mjs b/lib/dist/grammar/rst.mjs new file mode 100644 index 0000000..cf360b1 --- /dev/null +++ b/lib/dist/grammar/rst.mjs @@ -0,0 +1 @@ +var e="reStructuredText",n="rst",c=[{include:"#body"}],a={anchor:{match:"^\\.{2}\\s+(_[^:]+:)\\s*",name:"entity.name.tag.anchor"},block:{begin:"^(\\s*)(\\.{2}\\s+\\S+::)(.*)",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable"}},end:"^(?!\\1\\s|\\s*$)",patterns:[{include:"#block-param"},{include:"#body"}]},"block-comment":{begin:"^(\\s*)\\.{2}(\\s+|$)",end:"^(?=\\S)|^\\s*$",name:"comment.block",patterns:[{begin:"^\\s{3,}(?=\\S)",name:"comment.block",while:"^\\s{3}.*|^\\s*$"}]},"block-param":{patterns:[{captures:{1:{name:"keyword.control"},2:{name:"variable.parameter"}},match:"(:param\\s+(.+?):)(?:\\s|$)"},{captures:{1:{name:"keyword.control"},2:{patterns:[{match:"\\b(0x[a-fA-F\\d]+|\\d+)\\b",name:"constant.numeric"},{include:"#inline-markup"}]}},match:"(:.+?:)(?:$|\\s+(.*))"}]},blocks:{patterns:[{include:"#domains"},{include:"#doctest"},{include:"#code-block-cpp"},{include:"#code-block-py"},{include:"#code-block-console"},{include:"#code-block-javascript"},{include:"#code-block-yaml"},{include:"#code-block-cmake"},{include:"#code-block-kconfig"},{include:"#code-block-ruby"},{include:"#code-block-dts"},{include:"#code-block"},{include:"#doctest-block"},{include:"#raw-html"},{include:"#block"},{include:"#literal-block"},{include:"#block-comment"}]},body:{patterns:[{include:"#title"},{include:"#inline-markup"},{include:"#anchor"},{include:"#line-block"},{include:"#replace-include"},{include:"#footnote"},{include:"#substitution"},{include:"#blocks"},{include:"#table"},{include:"#simple-table"},{include:"#options-list"}]},bold:{begin:"(?<=[\\s\"'(\\[{<]|^)\\*{2}[^\\s*]",end:"\\*{2}|^\\s*$",name:"markup.bold"},citation:{applyEndPatternLast:0,begin:"(?<=[\\s\"'(\\[{<]|^)`[^\\s`]",end:"`_{,2}|^\\s*$",name:"entity.name.tag"},"code-block":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-cmake":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cmake"}},patterns:[{include:"#block-param"},{include:"source.cmake"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-console":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.console"}},patterns:[{include:"#block-param"},{include:"source.shell"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-cpp":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.cpp"}},patterns:[{include:"#block-param"},{include:"source.cpp"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-dts":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.dts"}},patterns:[{include:"#block-param"},{include:"source.dts"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-javascript":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.js"}},patterns:[{include:"#block-param"},{include:"source.js"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-kconfig":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.kconfig"}},patterns:[{include:"#block-param"},{include:"source.kconfig"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-py":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.py"}},patterns:[{include:"#block-param"},{include:"source.python"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-ruby":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.ruby"}},patterns:[{include:"#block-param"},{include:"source.ruby"}],while:"^\\1(?=\\s)|^\\s*$"},"code-block-yaml":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$",beginCaptures:{2:{name:"keyword.control"},4:{name:"variable.parameter.codeblock.yaml"}},patterns:[{include:"#block-param"},{include:"source.yaml"}],while:"^\\1(?=\\s)|^\\s*$"},doctest:{begin:"^(>>>)\\s*(.*)",beginCaptures:{1:{name:"keyword.control"},2:{patterns:[{include:"source.python"}]}},end:"^\\s*$"},"doctest-block":{begin:"^(\\s*)(\\.{2}\\s+doctest::)\\s*$",beginCaptures:{2:{name:"keyword.control"}},patterns:[{include:"#block-param"},{include:"source.python"}],while:"^\\1(?=\\s)|^\\s*$"},"domain-auto":{begin:"^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)",beginCaptures:{2:{name:"keyword.control.py"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}],while:"^\\1(?=\\s)|^\\s*$"},"domain-cpp":{begin:"^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))",beginCaptures:{2:{name:"keyword.control"},3:{name:"entity.name.tag"},4:{patterns:[{include:"source.cpp"}]}},patterns:[{include:"#block-param"},{include:"#body"}],while:"^\\1(?=\\s)|^\\s*$"},"domain-js":{begin:"^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.js"}]}},end:"^(?!\\1[ \\t]|$)",patterns:[{include:"#block-param"},{include:"#body"}]},"domain-py":{begin:"^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)",beginCaptures:{2:{name:"keyword.control"},3:{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}],while:"^\\1(?=\\s)|^\\s*$"},domains:{patterns:[{include:"#domain-cpp"},{include:"#domain-py"},{include:"#domain-auto"},{include:"#domain-js"}]},escaped:{match:"\\\\.",name:"constant.character.escape"},footnote:{match:"^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+",name:"entity.name.tag"},"footnote-ref":{match:"\\[(?:[\\w\\.-]+|[#*])\\]_",name:"entity.name.tag"},ignore:{patterns:[{match:"'[`*]+'"},{match:"<[`*]+>"},{match:"{[`*]+}"},{match:"\\([`*]+\\)"},{match:"\\[[`*]+\\]"},{match:'"[`*]+"'}]},"inline-markup":{patterns:[{include:"#escaped"},{include:"#ignore"},{include:"#ref"},{include:"#literal"},{include:"#monospaced"},{include:"#citation"},{include:"#bold"},{include:"#italic"},{include:"#list"},{include:"#macro"},{include:"#reference"},{include:"#footnote-ref"}]},italic:{begin:"(?<=[\\s\"'(\\[{<]|^)\\*[^\\s*]",end:"\\*|^\\s*$",name:"markup.italic"},"line-block":{match:"^\\|\\s+",name:"keyword.control"},list:{match:"^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+",name:"keyword.control"},literal:{captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"}},match:"(:\\S+:)(`.*?`\\\\?)"},"literal-block":{begin:"^(\\s*)(.*)(::)\\s*$",beginCaptures:{2:{patterns:[{include:"#inline-markup"}]},3:{name:"keyword.control"}},while:"^\\1(?=\\s)|^\\s*$"},macro:{match:"\\|[^\\|]+\\|",name:"entity.name.tag"},monospaced:{begin:"(?<=[\\s\"'(\\[{<]|^)``[^\\s`]",end:"``|^\\s*$",name:"string.interpolated"},"options-list":{match:"(?:(?:^|,\\s+)(?:[-+]\\w|--?[a-zA-Z][\\w-]+|/\\w+)(?:[ =](?:\\w+|<[^<>]+?>))?)+(?= |\\t|$)",name:"variable.parameter"},"raw-html":{begin:"^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$",beginCaptures:{2:{name:"keyword.control"},3:{name:"variable.parameter.html"}},patterns:[{include:"#block-param"},{include:"text.html.derivative"}],while:"^\\1(?=\\s)|^\\s*$"},ref:{begin:"(:ref:)`",beginCaptures:{1:{name:"keyword.control"}},end:"`|^\\s*$",name:"entity.name.tag",patterns:[{match:"<.*?>",name:"markup.underline.link"}]},reference:{match:"[\\w-]*[a-zA-Z\\d-]__?\\b",name:"entity.name.tag"},"replace-include":{captures:{1:{name:"keyword.control"},2:{name:"entity.name.tag"},3:{name:"keyword.control"}},match:"^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)"},"simple-table":{match:"^[=\\s]+$",name:"keyword.control.table"},substitution:{match:"^\\.{2}\\s*\\|([^|]+)\\|",name:"entity.name.tag"},table:{begin:"^\\s*\\+[=+-]+\\+\\s*$",beginCaptures:{0:{name:"keyword.control.table"}},end:"^(?![+|])",patterns:[{match:"[=+|-]",name:"keyword.control.table"}]},title:{match:"^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",name:"markup.heading"}},o="source.rst",t={displayName:e,name:"rst",patterns:c,repository:a,scopeName:o};export{t as default,e as displayName,n as name,c as patterns,a as repository,o as scopeName}; diff --git a/lib/dist/grammar/ruby.mjs b/lib/dist/grammar/ruby.mjs new file mode 100644 index 0000000..9be5343 --- /dev/null +++ b/lib/dist/grammar/ruby.mjs @@ -0,0 +1 @@ +var e="Ruby",n="ruby",t=[{captures:{1:{name:"keyword.control.class.ruby"},2:{name:"entity.name.type.class.ruby"},3:{name:"keyword.operator.other.ruby"},4:{name:"entity.other.inherited-class.ruby"},5:{name:"keyword.operator.other.ruby"},6:{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{1:{name:"keyword.control.module.ruby"},2:{name:"entity.name.type.module.ruby"},3:{name:"entity.other.inherited-class.module.first.ruby"},4:{name:"punctuation.separator.inheritance.ruby"},5:{name:"entity.other.inherited-class.module.second.ruby"},6:{name:"punctuation.separator.inheritance.ruby"},7:{name:"entity.other.inherited-class.module.third.ruby"},8:{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{0:{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{1:{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{1:{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)(\\b|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:"(?x)\n(?=def\\b)\n(?<=^|\\s)(def)\\s+\n( (?>[a-zA-Z_]\\w*(?>\\.|::))?\n(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) )\n\\s*(\\()\n",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"},3:{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:"(?x)\n(?=def\\b)\n(?<=^|\\s)(def)\\s+\n( (?>[a-zA-Z_]\\w*(?>\\.|::))?\n(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) )\n[ \\t]\n(?=[ \\t]*[^\\s#;])\n",beginCaptures:{1:{name:"keyword.control.def.ruby"},2:{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{1:{name:"storage.type.variable.ruby"},2:{name:"constant.other.symbol.hashkey.parameter.function.ruby"},3:{name:"punctuation.definition.constant.ruby"},4:{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{1:{name:"keyword.control.def.ruby"},3:{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?x)\n(?=def\\b)\n(?<=^|\\s)(def)\\b\n( \\s+\n( (?>[a-zA-Z_]\\w*(?>\\.|::))?\n(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n|===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )?\n",name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{0:{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:':"',captures:{0:{name:"punctuation.definition.constant.ruby"}},end:'"',name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:"(?x)\n(?:\n^\n| (?<=\n[=>~(?:\\[,|&;]\n| [\\s;]if\\s\n| [\\s;]elsif\\s\n| [\\s;]while\\s\n| [\\s;]unless\\s\n| [\\s;]when\\s\n| [\\s;]assert_match\\s\n| [\\s;]or\\s\n| [\\s;]and\\s\n| [\\s;]not\\s\n| [\\s.]index\\s\n| [\\s.]scan\\s\n| [\\s.]sub\\s\n| [\\s.]sub!\\s\n| [\\s.]gsub\\s\n| [\\s.]gsub!\\s\n| [\\s.]match\\s\n)\n| (?<=\n^when\\s\n| ^if\\s\n| ^elsif\\s\n| ^while\\s\n| ^unless\\s\n)\n)\n\\s*((/))(?![*+{}?])\n",captures:{1:{name:"string.regexp.classic.ruby"},2:{name:"punctuation.definition.string.ruby"}},comment:"regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t",contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{1:{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{0:{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{comment:'\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t',match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1))',comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)HTML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1))',comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)XML)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1))',comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)SQL)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1))',comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CSS)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1))',comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)CPP)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1))',comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)C)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))',comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1))',comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)JQUERY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))',comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1))',comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)LUA)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:'(?=(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1))',comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:'(?><<[-~]("?)((?:[_\\w]+_|)RUBY)\\b\\1)',beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{1:{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{1:{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{1:{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],a={escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{0:{name:"punctuation.section.embedded.end.ruby"},1:{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{0:{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{1:{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{0:{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{0:{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{0:{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{0:{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{0:{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{0:{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{1:{name:"punctuation.definition.quantifier.begin.ruby"},3:{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{0:{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}},r="source.ruby",i={displayName:e,name:n,patterns:t,repository:a,scopeName:r};export{i as default,e as displayName,n as name,t as patterns,a as repository,r as scopeName}; diff --git a/lib/dist/grammar/rust.mjs b/lib/dist/grammar/rust.mjs new file mode 100644 index 0000000..92c555d --- /dev/null +++ b/lib/dist/grammar/rust.mjs @@ -0,0 +1 @@ +var e="Rust",t="rust",n=[{begin:"(<)(\\[)",beginCaptures:{1:{name:"punctuation.brackets.angle.rust"},2:{name:"punctuation.brackets.square.rust"}},comment:"boxed slice literal",end:">",endCaptures:{0:{name:"punctuation.brackets.angle.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#gtypes"},{include:"#lvariables"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#types"}]},{captures:{1:{name:"keyword.operator.macro.dollar.rust"},3:{name:"keyword.other.crate.rust"},4:{name:"entity.name.type.metavariable.rust"},6:{name:"keyword.operator.key-value.rust"},7:{name:"variable.other.metavariable.specifier.rust"}},comment:"macro type metavariables",match:"(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",name:"meta.macro.metavariable.type.rust",patterns:[{include:"#keywords"}]},{captures:{1:{name:"keyword.operator.macro.dollar.rust"},2:{name:"variable.other.metavariable.name.rust"},4:{name:"keyword.operator.key-value.rust"},5:{name:"variable.other.metavariable.specifier.rust"}},comment:"macro metavariables",match:"(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",name:"meta.macro.metavariable.rust",patterns:[{include:"#keywords"}]},{captures:{1:{name:"entity.name.function.macro.rules.rust"},3:{name:"entity.name.function.macro.rust"},4:{name:"entity.name.type.macro.rust"},5:{name:"punctuation.brackets.curly.rust"}},comment:"macro rules",match:"\\b(macro_rules!)\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\s+(\\{)",name:"meta.macro.rules.rust"},{captures:{1:{name:"storage.type.rust"},2:{name:"entity.name.module.rust"}},comment:"modules",match:"(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)"},{begin:"\\b(extern)\\s+(crate)",beginCaptures:{1:{name:"storage.type.rust"},2:{name:"keyword.other.crate.rust"}},comment:"external crate imports",end:";",endCaptures:{0:{name:"punctuation.semi.rust"}},name:"meta.import.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#punctuation"}]},{begin:"\\b(use)\\s",beginCaptures:{1:{name:"keyword.other.rust"}},comment:"use statements",end:";",endCaptures:{0:{name:"punctuation.semi.rust"}},name:"meta.use.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#namespaces"},{include:"#punctuation"},{include:"#types"},{include:"#lvariables"}]},{include:"#block-comments"},{include:"#comments"},{include:"#attributes"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#types"},{include:"#keywords"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#variables"}],a={attributes:{begin:"(#)(\\!?)(\\[)",beginCaptures:{1:{name:"punctuation.definition.attribute.rust"},3:{name:"punctuation.brackets.attribute.rust"}},comment:"attributes",end:"\\]",endCaptures:{0:{name:"punctuation.brackets.attribute.rust"}},name:"meta.attribute.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#strings"},{include:"#gtypes"},{include:"#types"}]},"block-comments":{patterns:[{comment:"empty block comments",match:"/\\*\\*/",name:"comment.block.rust"},{begin:"/\\*\\*",comment:"block documentation comments",end:"\\*/",name:"comment.block.documentation.rust",patterns:[{include:"#block-comments"}]},{begin:"/\\*(?!\\*)",comment:"block comments",end:"\\*/",name:"comment.block.rust",patterns:[{include:"#block-comments"}]}]},comments:{patterns:[{captures:{1:{name:"punctuation.definition.comment.rust"}},comment:"documentation comments",match:"(///).*$",name:"comment.line.documentation.rust"},{captures:{1:{name:"punctuation.definition.comment.rust"}},comment:"line comments",match:"(//).*$",name:"comment.line.double-slash.rust"}]},constants:{patterns:[{comment:"ALL CAPS constants",match:"\\b[A-Z]{2}[A-Z0-9_]*\\b",name:"constant.other.caps.rust"},{captures:{1:{name:"storage.type.rust"},2:{name:"constant.other.caps.rust"}},comment:"constant declarations",match:"\\b(const)\\s+([A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"punctuation.separator.dot.decimal.rust"},2:{name:"keyword.operator.exponent.rust"},3:{name:"keyword.operator.exponent.sign.rust"},4:{name:"constant.numeric.decimal.exponent.mantissa.rust"},5:{name:"entity.name.type.numeric.rust"}},comment:"decimal integers and floats",match:"\\b\\d[\\d_]*(\\.?)[\\d_]*(?:(E|e)([+-]?)([\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.decimal.rust"},{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"hexadecimal integers",match:"\\b0x[\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.hex.rust"},{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"octal integers",match:"\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.oct.rust"},{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"binary integers",match:"\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",name:"constant.numeric.bin.rust"},{comment:"booleans",match:"\\b(true|false)\\b",name:"constant.language.bool.rust"}]},escapes:{captures:{1:{name:"constant.character.escape.backslash.rust"},2:{name:"constant.character.escape.bit.rust"},3:{name:"constant.character.escape.unicode.rust"},4:{name:"constant.character.escape.unicode.punctuation.rust"},5:{name:"constant.character.escape.unicode.punctuation.rust"}},comment:"escapes: ASCII, byte, Unicode, quote, regex",match:"(\\\\)(?:(?:(x[0-7][\\da-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))",name:"constant.character.escape.rust"},functions:{patterns:[{captures:{1:{name:"keyword.other.rust"},2:{name:"punctuation.brackets.round.rust"}},comment:"pub as a function",match:"\\b(pub)(\\()"},{begin:"\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\()|(<))",beginCaptures:{1:{name:"keyword.other.fn.rust"},2:{name:"entity.name.function.rust"},4:{name:"punctuation.brackets.round.rust"},5:{name:"punctuation.brackets.angle.rust"}},comment:"function definition",end:"\\{|;",endCaptures:{0:{name:"punctuation.brackets.curly.rust"}},name:"meta.function.definition.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]},{begin:"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\()",beginCaptures:{1:{name:"entity.name.function.rust"},2:{name:"punctuation.brackets.round.rust"}},comment:"function/method calls, chaining",end:"\\)",endCaptures:{0:{name:"punctuation.brackets.round.rust"}},name:"meta.function.call.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#attributes"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]},{begin:"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\()",beginCaptures:{1:{name:"entity.name.function.rust"}},comment:"function/method calls with turbofish",end:"\\)",endCaptures:{0:{name:"punctuation.brackets.round.rust"}},name:"meta.function.call.rust",patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#attributes"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]}]},gtypes:{patterns:[{comment:"option types",match:"\\b(Some|None)\\b",name:"entity.name.type.option.rust"},{comment:"result types",match:"\\b(Ok|Err)\\b",name:"entity.name.type.result.rust"}]},interpolations:{captures:{1:{name:"punctuation.definition.interpolation.rust"},2:{name:"punctuation.definition.interpolation.rust"}},comment:"curly brace interpolations",match:'({)[^"{}]*(})',name:"meta.interpolation.rust"},keywords:{patterns:[{comment:"control flow keywords",match:"\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b",name:"keyword.control.rust"},{comment:"storage keywords",match:"\\b(extern|let|macro|mod)\\b",name:"keyword.other.rust storage.type.rust"},{comment:"const keyword",match:"\\b(const)\\b",name:"storage.modifier.rust"},{comment:"type keyword",match:"\\b(type)\\b",name:"keyword.declaration.type.rust storage.type.rust"},{comment:"enum keyword",match:"\\b(enum)\\b",name:"keyword.declaration.enum.rust storage.type.rust"},{comment:"trait keyword",match:"\\b(trait)\\b",name:"keyword.declaration.trait.rust storage.type.rust"},{comment:"struct keyword",match:"\\b(struct)\\b",name:"keyword.declaration.struct.rust storage.type.rust"},{comment:"storage modifiers",match:"\\b(abstract|static)\\b",name:"storage.modifier.rust"},{comment:"other keywords",match:"\\b(as|async|become|box|dyn|move|final|gen|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b",name:"keyword.other.rust"},{comment:"fn",match:"\\bfn\\b",name:"keyword.other.fn.rust"},{comment:"crate",match:"\\bcrate\\b",name:"keyword.other.crate.rust"},{comment:"mut",match:"\\bmut\\b",name:"storage.modifier.mut.rust"},{comment:"logical operators",match:"(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)",name:"keyword.operator.logical.rust"},{comment:"logical AND, borrow references",match:"&(?![&=])",name:"keyword.operator.borrow.and.rust"},{comment:"assignment operators",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)",name:"keyword.operator.assignment.rust"},{comment:"single equal",match:"(?<![<>])=(?!=|>)",name:"keyword.operator.assignment.equal.rust"},{comment:"comparison operators",match:"(=(=)?(?!>)|!=|<=|(?<!=)>=)",name:"keyword.operator.comparison.rust"},{comment:"math operators",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))",name:"keyword.operator.math.rust"},{captures:{1:{name:"punctuation.brackets.round.rust"},2:{name:"punctuation.brackets.square.rust"},3:{name:"punctuation.brackets.curly.rust"},4:{name:"keyword.operator.comparison.rust"},5:{name:"punctuation.brackets.round.rust"},6:{name:"punctuation.brackets.square.rust"},7:{name:"punctuation.brackets.curly.rust"}},comment:"less than, greater than (special case)",match:"(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))"},{comment:"namespace operator",match:"::",name:"keyword.operator.namespace.rust"},{captures:{1:{name:"keyword.operator.dereference.rust"}},comment:"dereference asterisk",match:"(\\*)(?=\\w+)"},{comment:"subpattern binding",match:"@",name:"keyword.operator.subpattern.rust"},{comment:"dot access",match:"\\.(?!\\.)",name:"keyword.operator.access.dot.rust"},{comment:"ranges, range patterns",match:"\\.{2}(=|\\.)?",name:"keyword.operator.range.rust"},{comment:"colon",match:":(?!:)",name:"keyword.operator.key-value.rust"},{comment:"dashrocket, skinny arrow",match:"->",name:"keyword.operator.arrow.skinny.rust"},{comment:"hashrocket, fat arrow",match:"=>",name:"keyword.operator.arrow.fat.rust"},{comment:"dollar macros",match:"\\$",name:"keyword.operator.macro.dollar.rust"},{comment:"question mark operator, questionably sized, macro kleene matcher",match:"\\?",name:"keyword.operator.question.rust"}]},lifetimes:{patterns:[{captures:{1:{name:"punctuation.definition.lifetime.rust"},2:{name:"entity.name.type.lifetime.rust"}},comment:"named lifetime parameters",match:"(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b"},{captures:{1:{name:"keyword.operator.borrow.rust"},2:{name:"punctuation.definition.lifetime.rust"},3:{name:"entity.name.type.lifetime.rust"}},comment:"borrowing references to named lifetimes",match:"(\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b"}]},lvariables:{patterns:[{comment:"self",match:"\\b[Ss]elf\\b",name:"variable.language.self.rust"},{comment:"super",match:"\\bsuper\\b",name:"variable.language.super.rust"}]},macros:{patterns:[{captures:{2:{name:"entity.name.function.macro.rust"},3:{name:"entity.name.type.macro.rust"}},comment:"macros",match:"(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))",name:"meta.macro.rust"}]},namespaces:{patterns:[{captures:{1:{name:"entity.name.namespace.rust"},2:{name:"keyword.operator.namespace.rust"}},comment:"namespace (non-type, non-function path segment)",match:"(?<![A-Za-z0-9_])([A-Za-z0-9_]+)((?<!super|self)::)"}]},punctuation:{patterns:[{comment:"comma",match:",",name:"punctuation.comma.rust"},{comment:"curly braces",match:"[{}]",name:"punctuation.brackets.curly.rust"},{comment:"parentheses, round brackets",match:"[()]",name:"punctuation.brackets.round.rust"},{comment:"semicolon",match:";",name:"punctuation.semi.rust"},{comment:"square brackets",match:"[\\[\\]]",name:"punctuation.brackets.square.rust"},{comment:"angle brackets",match:"(?<!=)[<>]",name:"punctuation.brackets.angle.rust"}]},strings:{patterns:[{begin:'(b?)(")',beginCaptures:{1:{name:"string.quoted.byte.raw.rust"},2:{name:"punctuation.definition.string.rust"}},comment:"double-quoted strings and byte strings",end:'"',endCaptures:{0:{name:"punctuation.definition.string.rust"}},name:"string.quoted.double.rust",patterns:[{include:"#escapes"},{include:"#interpolations"}]},{begin:'(b?r)(#*)(")',beginCaptures:{1:{name:"string.quoted.byte.raw.rust"},2:{name:"punctuation.definition.string.raw.rust"},3:{name:"punctuation.definition.string.rust"}},comment:"double-quoted raw strings and raw byte strings",end:'(")(\\2)',endCaptures:{1:{name:"punctuation.definition.string.rust"},2:{name:"punctuation.definition.string.raw.rust"}},name:"string.quoted.double.rust"},{begin:"(b)?(')",beginCaptures:{1:{name:"string.quoted.byte.raw.rust"},2:{name:"punctuation.definition.char.rust"}},comment:"characters and bytes",end:"'",endCaptures:{0:{name:"punctuation.definition.char.rust"}},name:"string.quoted.single.char.rust",patterns:[{include:"#escapes"}]}]},types:{patterns:[{captures:{1:{name:"entity.name.type.numeric.rust"}},comment:"numeric types",match:"(?<![A-Za-z])(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)\\b"},{begin:"\\b(_?[A-Z][A-Za-z0-9_]*)(<)",beginCaptures:{1:{name:"entity.name.type.rust"},2:{name:"punctuation.brackets.angle.rust"}},comment:"parameterized types",end:">",endCaptures:{0:{name:"punctuation.brackets.angle.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#types"},{include:"#variables"}]},{comment:"primitive types",match:"\\b(bool|char|str)\\b",name:"entity.name.type.primitive.rust"},{captures:{1:{name:"keyword.declaration.trait.rust storage.type.rust"},2:{name:"entity.name.type.trait.rust"}},comment:"trait declarations",match:"\\b(trait)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"keyword.declaration.struct.rust storage.type.rust"},2:{name:"entity.name.type.struct.rust"}},comment:"struct declarations",match:"\\b(struct)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"keyword.declaration.enum.rust storage.type.rust"},2:{name:"entity.name.type.enum.rust"}},comment:"enum declarations",match:"\\b(enum)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{captures:{1:{name:"keyword.declaration.type.rust storage.type.rust"},2:{name:"entity.name.type.declaration.rust"}},comment:"type declarations",match:"\\b(type)\\s+(_?[A-Z][A-Za-z0-9_]*)\\b"},{comment:"types",match:"\\b_?[A-Z][A-Za-z0-9_]*\\b(?!!)",name:"entity.name.type.rust"}]},variables:{patterns:[{comment:"variables",match:"\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b",name:"variable.other.rust"}]}},r="source.rust",s={displayName:e,name:t,patterns:n,repository:a,scopeName:r};export{s as default,e as displayName,t as name,n as patterns,a as repository,r as scopeName}; diff --git a/lib/dist/grammar/sas.mjs b/lib/dist/grammar/sas.mjs new file mode 100644 index 0000000..a2b7927 --- /dev/null +++ b/lib/dist/grammar/sas.mjs @@ -0,0 +1 @@ +var e="SAS",t=["sas"],n="(?i:(proc|data|%macro).*;$)",a="(?i:(run|quit|%mend)\\s?);",s="sas",o=[{include:"#starComment"},{include:"#blockComment"},{include:"#macro"},{include:"#constant"},{include:"#quote"},{include:"#operator"},{begin:"\\b(?i:(data))\\s+",beginCaptures:{1:{name:"keyword.other.sas"}},comment:"Begins a DATA step and provides names for any output SAS data sets, views, or programs.",end:"(;)",patterns:[{include:"#blockComment"},{include:"#dataSet"},{captures:{1:{name:"keyword.other.sas"},2:{name:"keyword.other.sas"}},match:"(?i:(?:(stack|pgm|view|source)\\s?=\\s?)|(debug|nesting|nolist))"}]},{begin:"\\b(?i:(set|update|modify|merge))\\s+",beginCaptures:{1:{name:"support.function.sas"},2:{name:"entity.name.class.sas"},3:{name:"entity.name.class.sas"}},comment:"DATA set File-Handling Statements for DATA step",end:"(;)",patterns:[{include:"#blockComment"},{include:"#dataSet"}]},{match:"(?i:\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\b)",name:"keyword.control.sas"},{captures:{1:{name:"support.class.sas"},3:{name:"entity.name.function.sas"}},match:"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\b))\\s*(\\w*)",name:"keyword.other.sas"},{begin:"(?i:\\b(proc\\s*(sql))\\b)",beginCaptures:{1:{name:"support.function.sas"},2:{name:"support.class.sas"}},comment:"Looks like for this to work there must be a *name* as well as the patterns/include bit.",end:"(?i:\\b(quit)\\s*;)",endCaptures:{1:{name:"keyword.control.sas"}},name:"meta.sql.sas",patterns:[{include:"#starComment"},{include:"#blockComment"},{include:"source.sql"}]},{match:"(?i:\\b(by|label|format)\\b)",name:"keyword.datastep.sas"},{captures:{1:{name:"support.function.sas"},2:{name:"support.class.sas"}},match:"(?i:\\b(proc (\\w+))\\b)",name:"meta.function-call.sas"},{match:"(?i:\\b(_n_|_error_)\\b)",name:"variable.language.sas"},{captures:{1:{name:"support.class.sas"}},match:"\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\b",name:"support.function.sas"}],r={blockComment:{patterns:[{begin:"\\/\\*",end:"\\*\\/",name:"comment.block.slashstar.sas"}]},constant:{patterns:[{comment:"numeric constant",match:"(?<![&\\}])\\b[0-9]*\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\b",name:"constant.numeric.sas"},{comment:"single quote numeric-type constant",match:"(')([^']+)(')(dt|[dt])",name:"constant.numeric.quote.single.sas"},{comment:"double quote numeric-type constant",match:'(")([^"]+)(")(dt|[dt])',name:"constant.numeric.quote.double.sas"}]},dataSet:{patterns:[{begin:"((\\w+)\\.)?(\\w+)\\s?\\(",beginCaptures:{2:{name:"entity.name.class.libref.sas"},3:{name:"entity.name.class.dsname.sas"}},comment:"data set with options",end:"\\)",patterns:[{include:"#dataSetOptions"},{include:"#blockComment"},{include:"#macro"},{include:"#constant"},{include:"#quote"},{include:"#operator"}]},{captures:{2:{name:"entity.name.class.libref.sas"},3:{name:"entity.name.class.dsname.sas"}},comment:"data set without options",match:"\\b((\\w+)\\.)?(\\w+)\\b"}]},dataSetOptions:{patterns:[{match:"(?<=\\s|\\(|\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\s?=",name:"keyword.other.sas"}]},macro:{patterns:[{match:"(&+(?i:[a-z_]([a-z0-9_]+)?)(\\.+)?)\\b",name:"variable.other.macro.sas"}]},operator:{patterns:[{match:"([\\+\\-\\*\\^\\/])",name:"keyword.operator.arithmetic.sas"},{match:"\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\b",name:"keyword.operator.comparison.sas"},{match:"([¬<>^~]?=(:)?|>|<|\\||!|¦|¬|^|~|<>|><|\\|\\|)",name:"keyword.operator.sas"}]},quote:{patterns:[{begin:"(?<!%)(')",comment:"single quoted string block",end:"(')([bx])?",name:"string.quoted.single.sas"},{begin:'(")',comment:"double quoted string block",end:'(")([bx])?',name:"string.quoted.double.sas"}]},starComment:{patterns:[{include:"#blockcomment"},{begin:"(?<=;)[\\s%]*\\*",end:";",name:"comment.line.inline.star.sas"},{begin:"^[\\s%]*\\*",end:";",name:"comment.line.start.sas"}]}},i="source.sas",m={displayName:"SAS",fileTypes:t,foldingStartMarker:n,foldingStopMarker:a,name:"sas",patterns:o,repository:r,scopeName:i};export{m as default,e as displayName,t as fileTypes,n as foldingStartMarker,a as foldingStopMarker,s as name,o as patterns,r as repository,i as scopeName}; diff --git a/lib/dist/grammar/sass.mjs b/lib/dist/grammar/sass.mjs new file mode 100644 index 0000000..6a81c0e --- /dev/null +++ b/lib/dist/grammar/sass.mjs @@ -0,0 +1 @@ +var e="Sass",n=["sass"],t="/\\*|^#|^\\*|^\\b|*#?region|^\\.",a="\\*/|*#?endregion|^\\s*$",s="sass",o=[{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)|\n*):[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"}],c={colon:{match:":",name:"meta.property-list.css.sass.colon"},comma:{match:"\\band\\b|\\bor\\b|,",name:"comment.punctuation.comma.sass"},"comment-param":{match:"\\@(\\w+)",name:"storage.type.class.jsdoc"},"comment-tag":{begin:"(?<={{)",end:"(?=}})",name:"comment.tag.sass"},"curly-brackets":{match:"{|}",name:"invalid"},dotdotdot:{match:"\\.\\.\\.",name:"variable.other"},"double-quoted":{begin:'"',end:'"',name:"string.quoted.double.css.sass",patterns:[{include:"#quoted-interpolation"}]},"double-slash":{begin:"//",end:"$\\n?",name:"comment.line.sass",patterns:[{include:"#comment-tag"}]},flag:{match:"!(important|default|optional|global)",name:"keyword.other.important.css.sass"},function:{match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()",name:"support.function.name.sass"},"function-content":{begin:"(?<=url\\(|format\\(|attr\\()",end:".(?=\\))",name:"string.quoted.double.css.sass"},"import-quotes":{match:"[\"']?\\.{0,2}[\\w/]+[\"']?",name:"constant.character.css.sass"},interpolation:{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"},{include:"#double-quoted"},{include:"#single-quoted"}]},module:{captures:{1:{name:"constant.character.module.name"},2:{name:"constant.numeric.module.dot"}},match:"([\\w-]+?)(\\.)",name:"constant.character.module"},numeric:{match:"(-|\\.)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.css.sass"},operator:{match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",name:"keyword.operator.sass"},"parent-selector":{match:"&",name:"entity.name.tag.css.sass"},"parenthesis-close":{match:"\\)",name:"entity.name.function.parenthesis.close"},"parenthesis-open":{match:"\\(",name:"entity.name.function.parenthesis.open"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",end:"$\\n?|\\s",name:"entity.other.inherited-class.placeholder-selector.css.sass"},"property-value":{match:"[a-zA-Z0-9_-]+",name:"meta.property-value.css.sass support.constant.property-value.css.sass"},"pseudo-class":{match:":[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.sass"},"quoted-interpolation":{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"}]},"reserved-words":{match:"\\b(false|from|in|not|null|through|to|true)\\b",name:"support.type.property-name.css.sass"},"rgb-value":{match:"(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.language.color.rgb-value.css.sass"},semicolon:{match:";",name:"invalid"},"single-quoted":{begin:"'",end:"'",name:"string.quoted.single.css.sass",patterns:[{include:"#quoted-interpolation"}]},unit:{match:"(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)",name:"keyword.control.unit.css.sass"},variable:{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.value"},"variable-root":{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.root"}},i="source.sass",r={displayName:e,fileTypes:n,foldingStartMarker:t,foldingStopMarker:a,name:s,patterns:o,repository:c,scopeName:i};export{r as default,e as displayName,n as fileTypes,t as foldingStartMarker,a as foldingStopMarker,s as name,o as patterns,c as repository,i as scopeName}; diff --git a/lib/dist/grammar/scala.mjs b/lib/dist/grammar/scala.mjs new file mode 100644 index 0000000..8048dec --- /dev/null +++ b/lib/dist/grammar/scala.mjs @@ -0,0 +1 @@ +var a="Scala",e=["scala"],t="^#!/.*\\b\\w*scala\\b",n="/\\*\\*|\\{\\s*$",p="\\*\\*/|^\\s*\\}",o="scala",c=[{include:"#code"}],l={backQuotedVariable:{match:"`[^`]+`"},"block-comments":{patterns:[{captures:{0:{name:"punctuation.definition.comment.scala"}},match:"/\\*\\*/",name:"comment.block.empty.scala"},{begin:"^\\s*(/\\*\\*)(?!/)",beginCaptures:{1:{name:"punctuation.definition.comment.scala"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.scala"}},name:"comment.block.documentation.scala",patterns:[{captures:{1:{name:"keyword.other.documentation.scaladoc.scala"},2:{name:"variable.parameter.scala"}},match:"(@param)\\s+(\\S+)"},{captures:{1:{name:"keyword.other.documentation.scaladoc.scala"},2:{name:"entity.name.class"}},match:"(@(?:tparam|throws))\\s+(\\S+)"},{match:"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b",name:"keyword.other.documentation.scaladoc.scala"},{captures:{1:{name:"punctuation.definition.documentation.link.scala"},2:{name:"string.other.link.title.markdown"},3:{name:"punctuation.definition.documentation.link.scala"}},match:"(\\[\\[)([^\\]]+)(\\]\\])"},{include:"#block-comments"}]},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.scala"}},end:"\\*/",name:"comment.block.scala",patterns:[{include:"#block-comments"}]}]},"char-literal":{patterns:[{captures:{1:{name:"punctuation.definition.character.begin.scala"},2:{name:"punctuation.definition.character.end.scala"}},match:"(')'(')",name:"string.quoted.other constant.character.literal.scala"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.character.begin.scala"}},end:"'|$",endCaptures:{0:{name:"punctuation.definition.character.end.scala"}},name:"string.quoted.other constant.character.literal.scala",patterns:[{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-character-escape.scala"},{match:"[^']{2,}",name:"invalid.illegal.character-literal-too-long"},{match:"(?<!')[^']",name:"invalid.illegal.character-literal-too-long"}]}]},code:{patterns:[{include:"#using-directive"},{include:"#script-header"},{include:"#storage-modifiers"},{include:"#declarations"},{include:"#inheritance"},{include:"#extension"},{include:"#imports"},{include:"#exports"},{include:"#comments"},{include:"#strings"},{include:"#initialization"},{include:"#xml-literal"},{include:"#keywords"},{include:"#using"},{include:"#constants"},{include:"#singleton-type"},{include:"#inline"},{include:"#scala-quoted-or-symbol"},{include:"#char-literal"},{include:"#empty-parentheses"},{include:"#parameter-list"},{include:"#qualifiedClassName"},{include:"#backQuotedVariable"},{include:"#curly-braces"},{include:"#meta-brackets"},{include:"#meta-bounds"},{include:"#meta-colons"}]},comments:{patterns:[{include:"#block-comments"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.scala"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.scala"}},end:"\\n",name:"comment.line.double-slash.scala"}]}]},constants:{patterns:[{match:"\\b(false|null|true)\\b",name:"constant.language.scala"},{match:"\\b(0[xX][0-9a-fA-F_]*)\\b",name:"constant.numeric.scala"},{match:"\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b",name:"constant.numeric.scala"},{match:"(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b",name:"constant.numeric.scala"},{match:"\\b0[bB][01]([01_]*[01])?[Ll]?\\b",name:"constant.numeric.scala"},{match:"\\b(this|super)\\b",name:"variable.language.scala"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.block.begin.scala"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.scala"}},patterns:[{include:"#code"}]},declarations:{patterns:[{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.function.declaration"}},match:"\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.class.declaration"}},match:"\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"keyword.declaration.scala"},3:{name:"entity.name.class.declaration"}},match:"\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.type.declaration"}},match:"(?<!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{captures:{1:{name:"keyword.declaration.stable.scala"},2:{name:"keyword.declaration.volatile.scala"}},match:"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()"},{captures:{1:{name:"keyword.declaration.stable.scala"},2:{name:"variable.stable.declaration.scala"}},match:'\\b(val)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?(?!")'},{captures:{1:{name:"keyword.declaration.volatile.scala"},2:{name:"variable.volatile.declaration.scala"}},match:'\\b(var)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?(?!")'},{captures:{1:{name:"keyword.other.package.scala"},2:{name:"keyword.declaration.scala"},3:{name:"entity.name.class.declaration"}},match:"\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?"},{begin:"\\b(package)\\s+",beginCaptures:{1:{name:"keyword.other.package.scala"}},end:"(?<=[\\n;])",name:"meta.package.scala",patterns:[{include:"#comments"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.package.scala"},{match:"\\.",name:"punctuation.definition.package"}]},{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.given.declaration"}},match:"\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?"}]},"empty-parentheses":{captures:{1:{name:"meta.bracket.scala"}},match:"(\\(\\))",name:"meta.parentheses.scala"},exports:{begin:"\\b(export)\\s+",beginCaptures:{1:{name:"keyword.other.export.scala"}},end:"(?<=[\\n;])",name:"meta.export.scala",patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.export.scala"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.export.scala"},{match:"\\.",name:"punctuation.definition.export"},{begin:"{",beginCaptures:{0:{name:"meta.bracket.scala"}},end:"}",endCaptures:{0:{name:"meta.bracket.scala"}},name:"meta.export.selector.scala",patterns:[{captures:{1:{name:"keyword.other.export.given.scala"},2:{name:"entity.name.class.export.renamed-from.scala"},3:{name:"entity.name.export.renamed-from.scala"},4:{name:"keyword.other.arrow.scala"},5:{name:"entity.name.class.export.renamed-to.scala"},6:{name:"entity.name.export.renamed-to.scala"}},match:"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*"},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{captures:{1:{name:"keyword.other.export.given.scala"},2:{name:"entity.name.class.export.scala"},3:{name:"entity.name.export.scala"}},match:"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))"}]}]},extension:{patterns:[{captures:{1:{name:"keyword.declaration.scala"}},match:"^\\s*(extension)\\s+(?=[\\[\\(])"}]},imports:{begin:"\\b(import)\\s+",beginCaptures:{1:{name:"keyword.other.import.scala"}},end:"(?<=[\\n;])",name:"meta.import.scala",patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{match:"\\s(as)\\s",name:"keyword.other.import.as.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.import.scala"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"},{begin:"{",beginCaptures:{0:{name:"meta.bracket.scala"}},end:"}",endCaptures:{0:{name:"meta.bracket.scala"}},name:"meta.import.selector.scala",patterns:[{captures:{1:{name:"keyword.other.import.given.scala"},2:{name:"entity.name.class.import.renamed-from.scala"},3:{name:"entity.name.import.renamed-from.scala"},4:{name:"keyword.other.arrow.scala"},5:{name:"entity.name.class.import.renamed-to.scala"},6:{name:"entity.name.import.renamed-to.scala"}},match:"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*"},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{captures:{1:{name:"keyword.other.import.given.scala"},2:{name:"entity.name.class.import.scala"},3:{name:"entity.name.import.scala"}},match:"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))"}]}]},inheritance:{patterns:[{captures:{1:{name:"keyword.declaration.scala"},2:{name:"entity.name.class"}},match:'\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=>)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))|(?="))?'}]},initialization:{captures:{1:{name:"keyword.declaration.scala"}},match:"\\b(new)\\b"},inline:{patterns:[{match:"\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)",name:"storage.modifier.other"},{match:"\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)",name:"keyword.control.flow.scala"}]},keywords:{patterns:[{match:"\\b(return|throw)\\b",name:"keyword.control.flow.jump.scala"},{match:"\\b(classOf|isInstanceOf|asInstanceOf)\\b",name:"support.function.type-of.scala"},{match:"\\b(else|if|then|do|while|for|yield|match|case)\\b",name:"keyword.control.flow.scala"},{match:"^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.flow.end.scala"},{match:"^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.stable.end.scala"},{match:"^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.volatile.end.scala"},{captures:{1:{name:"keyword.declaration.end.scala"},2:{name:"keyword.declaration.end.scala"},3:{name:"entity.name.type.declaration"}},match:"^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{match:"\\b(catch|finally|try)\\b",name:"keyword.control.exception.scala"},{match:"^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.exception.end.scala"},{captures:{1:{name:"keyword.declaration.end.scala"},2:{name:"entity.name.declaration"}},match:"^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)"},{match:"(==?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.scala"},{match:"(\\-|\\+|\\*|/(?![/*])|%|~)",name:"keyword.operator.arithmetic.scala"},{match:"(?<![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]|_)(!|&&|\\|\\|)(?![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}])",name:"keyword.operator.logical.scala"},{match:"(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+",name:"keyword.operator.scala"}]},"meta-bounds":{comment:"For themes: Matching view bounds",match:"<%|=:=|<:<|<%<|>:|<:",name:"meta.bounds.scala"},"meta-brackets":{comment:"For themes: Brackets look nice when colored.",patterns:[{comment:"The punctuation.section.*.begin is needed for return snippet in source bundle",match:"\\{",name:"punctuation.section.block.begin.scala"},{comment:"The punctuation.section.*.end is needed for return snippet in source bundle",match:"\\}",name:"punctuation.section.block.end.scala"},{match:"{|}|\\(|\\)|\\[|\\]",name:"meta.bracket.scala"}]},"meta-colons":{comment:"For themes: Matching type colons",patterns:[{match:"(?<!:):(?!:)",name:"meta.colon.scala"}]},"parameter-list":{patterns:[{captures:{1:{name:"variable.parameter.scala"},2:{name:"meta.colon.scala"}},match:"(?<=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+"}]},qualifiedClassName:{captures:{1:{name:"entity.name.class"}},match:"(\\b([A-Z][\\w]*)(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)"},"scala-quoted-or-symbol":{patterns:[{captures:{1:{name:"keyword.control.flow.staging.scala constant.other.symbol.scala"},2:{name:"constant.other.symbol.scala"}},match:"(')((?>(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))(?!')"},{match:"'(?=\\s*\\{(?!'))",name:"keyword.control.flow.staging.scala"},{match:"'(?=\\s*\\[(?!'))",name:"keyword.control.flow.staging.scala"},{match:"\\$(?=\\s*\\{)",name:"keyword.control.flow.staging.scala"}]},"script-header":{captures:{1:{name:"string.unquoted.shebang.scala"}},match:"^#!(.*)$",name:"comment.block.shebang.scala"},"singleton-type":{captures:{1:{name:"keyword.type.scala"}},match:"\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])"},"storage-modifiers":{patterns:[{match:"\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b",name:"storage.modifier.access"},{match:"\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b",name:"storage.modifier.other"},{match:"(?<=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)",name:"storage.modifier.other"}]},"string-interpolation":{patterns:[{match:"\\$\\$",name:"constant.character.escape.interpolation.scala"},{captures:{1:{name:"punctuation.definition.template-expression.begin.scala"}},match:"(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)",name:"meta.template.expression.scala"},{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.scala"}},contentName:"meta.embedded.line.scala",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.scala"}},name:"meta.template.expression.scala",patterns:[{include:"#code"}]}]},strings:{patterns:[{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.scala"}},end:'"""(?!")',endCaptures:{0:{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.triple.scala",patterns:[{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"}]},{begin:'\\b(raw)(""")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:'(""")(?!")|\\$\n|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])',endCaptures:{1:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:'\\$[\\$"]',name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.triple.interpolated.scala"}]},{begin:'\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(""")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},end:'(""")(?!")|\\$\n|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])',endCaptures:{1:{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{include:"#string-interpolation"},{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"},{match:".",name:"string.quoted.triple.interpolated.scala"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.scala"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.double.scala",patterns:[{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"}]},{begin:'\\b(raw)(")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:'(")|\\$\n|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])',endCaptures:{1:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:'\\$[\\$"]',name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.double.interpolated.scala"}]},{begin:'\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(")',beginCaptures:{1:{name:"keyword.interpolation.scala"},2:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},end:'(")|\\$\n|(\\$[^\\$"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])',endCaptures:{1:{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},2:{name:"invalid.illegal.unrecognized-string-escape.scala"}},patterns:[{match:'\\$[\\$"]',name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"},{match:".",name:"string.quoted.double.interpolated.scala"}]}]},using:{patterns:[{captures:{1:{name:"keyword.declaration.scala"}},match:"(?<=\\()\\s*(using)\\s"}]},"using-directive":{begin:"^\\s*(//>)\\s*(using)[^\\S\\n]+(?:(\\S+))?",beginCaptures:{1:{name:"punctuation.definition.comment.scala"},2:{name:"keyword.other.import.scala"},3:{patterns:[{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"}]}},end:"\\n",name:"comment.line.shebang.scala",patterns:[{include:"#constants"},{include:"#strings"},{match:"[^\\s,]+",name:"string.quoted.double.scala"}]},"xml-doublequotedString":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml",patterns:[{include:"#xml-entity"}]},"xml-embedded-content":{patterns:[{begin:"{",captures:{0:{name:"meta.bracket.scala"}},end:"}",name:"meta.source.embedded.scala",patterns:[{include:"#code"}]},{captures:{1:{name:"entity.other.attribute-name.namespace.xml"},2:{name:"entity.other.attribute-name.xml"},3:{name:"punctuation.separator.namespace.xml"},4:{name:"entity.other.attribute-name.localname.xml"}},match:" (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)="},{include:"#xml-doublequotedString"},{include:"#xml-singlequotedString"}]},"xml-entity":{captures:{1:{name:"punctuation.definition.constant.xml"},3:{name:"punctuation.definition.constant.xml"}},match:"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.xml"},"xml-literal":{patterns:[{begin:"(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.xml"},3:{name:"entity.name.tag.namespace.xml"},4:{name:"entity.name.tag.xml"},5:{name:"punctuation.separator.namespace.xml"},6:{name:"entity.name.tag.localname.xml"}},comment:"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator",end:"(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)",endCaptures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"meta.scope.between-tag-pair.xml"},3:{name:"entity.name.tag.namespace.xml"},4:{name:"entity.name.tag.xml"},5:{name:"punctuation.separator.namespace.xml"},6:{name:"entity.name.tag.localname.xml"},7:{name:"punctuation.definition.tag.xml"}},name:"meta.tag.no-content.xml",patterns:[{include:"#xml-embedded-content"}]},{begin:"(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)",captures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"entity.name.tag.namespace.xml"},3:{name:"entity.name.tag.xml"},4:{name:"punctuation.separator.namespace.xml"},5:{name:"entity.name.tag.localname.xml"}},end:"(/?>)",name:"meta.tag.xml",patterns:[{include:"#xml-embedded-content"}]},{include:"#xml-entity"}]},"xml-singlequotedString":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml",patterns:[{include:"#xml-entity"}]}},i="source.scala",s={displayName:a,fileTypes:e,firstLineMatch:t,foldingStartMarker:n,foldingStopMarker:p,name:o,patterns:c,repository:l,scopeName:i};export{s as default,a as displayName,e as fileTypes,t as firstLineMatch,n as foldingStartMarker,p as foldingStopMarker,o as name,c as patterns,l as repository,i as scopeName}; diff --git a/lib/dist/grammar/scheme.mjs b/lib/dist/grammar/scheme.mjs new file mode 100644 index 0000000..29b5c45 --- /dev/null +++ b/lib/dist/grammar/scheme.mjs @@ -0,0 +1 @@ +var e="Scheme",n=["scm","ss","sch","rkt"],t="scheme",a=[{include:"#comment"},{include:"#block-comment"},{include:"#sexp"},{include:"#string"},{include:"#language-functions"},{include:"#quote"},{include:"#illegal"}],s={"block-comment":{begin:"\\#\\|",contentName:"comment",end:"\\|\\#",name:"comment",patterns:[{include:"#block-comment",name:"comment"}]},comment:{begin:"(^[ \\t]+)?(?=;)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.scheme"}},end:"(?!\\G)",patterns:[{begin:";",beginCaptures:{0:{name:"punctuation.definition.comment.scheme"}},end:"\\n",name:"comment.line.semicolon.scheme"}]},constants:{patterns:[{match:"#[t|f]",name:"constant.language.boolean.scheme"},{match:"(?<=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'\",\\[\\]])",name:"constant.numeric.scheme"}]},illegal:{match:"[()\\[\\]]",name:"invalid.illegal.parenthesis.scheme"},"language-functions":{patterns:[{match:"(?x)\n(?<=(\\s|\\(|\\[))\n( do|or|and|else|quasiquote|begin|if|case|set!|\ncond|let|unquote|define|let\\*|unquote-splicing|delay|\nletrec)\n(?=(\\s|\\())",name:"keyword.control.scheme"},{comment:"\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t",match:"(?x)\n(?<=(\\s|\\())\n( char-alphabetic|char-lower-case|char-numeric|\nchar-ready|char-upper-case|char-whitespace|\n(?:char|string)(?:-ci)?(?:=|<=?|>=?)|\natom|boolean|bound-identifier=|char|complex|\nidentifier|integer|symbol|free-identifier=|inexact|\neof-object|exact|list|(?:input|output)-port|pair|\nreal|rational|zero|vector|negative|odd|null|string|\neq|equal|eqv|even|number|positive|procedure\n)\n(\\?)\n(?=(\\s|\\())\n",name:"support.function.boolean-test.scheme"},{comment:"\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t",match:"(?x)\n(?<=(\\s|\\())\n( char->integer|exact->inexact|inexact->exact|\ninteger->char|symbol->string|list->vector|\nlist->string|identifier->symbol|vector->list|\nstring->list|string->number|string->symbol|\nnumber->string\n)\n(?=(\\s|\\())\n",name:"support.function.convert-type.scheme"},{comment:"\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t",match:"(?x)\n(?<=(\\s|\\())\n( set-(?:car|cdr)|\n(?:vector|string)-(?:fill|set)\n)\n(!)\n(?=(\\s|\\())\n",name:"support.function.with-side-effects.scheme"},{comment:"\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t",match:"(?x)\n(?<=(\\s|\\())\n( >=?|<=?|=|[*/+-])\n(?=(\\s|\\())\n",name:"keyword.operator.arithmetic.scheme"},{match:"(?x)\n(?<=(\\s|\\())\n( append|apply|approximate|\ncall-with-current-continuation|call/cc|catch|\nconstruct-identifier|define-syntax|display|foo|\nfor-each|force|format|cd|gen-counter|gen-loser|\ngenerate-identifier|last-pair|length|let-syntax|\nletrec-syntax|list|list-ref|list-tail|load|log|\nmacro|magnitude|map|map-streams|max|member|memq|\nmemv|min|newline|nil|not|peek-char|rationalize|\nread|read-char|return|reverse|sequence|substring|\nsyntax|syntax-rules|transcript-off|transcript-on|\ntruncate|unwrap-syntax|values-list|write|write-char|\n\n\ncons|c(a|d){1,4}r|\n\n\nabs|acos|angle|asin|assoc|assq|assv|atan|ceiling|\ncos|floor|round|sin|sqrt|tan|\n(?:real|imag)-part|numerator|denominator\n\n\nmodulo|exp|expt|remainder|quotient|lcm|\n\n\ncall-with-(?:input|output)-file|\n(?:close|current)-(?:input|output)-port|\nwith-(?:input|output)-from-file|\nopen-(?:input|output)-file|\n\n\nchar-(?:downcase|upcase|ready)|\n\n\nmake-(?:polar|promise|rectangular|string|vector)\n\n\nstring(?:-(?:append|copy|length|ref))?|\nvector(?:-length|-ref)\n)\n(?=(\\s|\\())\n",name:"support.function.general.scheme"}]},quote:{comment:"\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t",patterns:[{captures:{1:{name:"punctuation.section.quoted.symbol.scheme"}},match:"(?x)\n(')\\s*\n([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n",name:"constant.other.symbol.scheme"},{captures:{1:{name:"punctuation.section.quoted.empty-list.scheme"},2:{name:"meta.expression.scheme"},3:{name:"punctuation.section.expression.begin.scheme"},4:{name:"punctuation.section.expression.end.scheme"}},match:"(?x)\n(')\\s*\n((\\()\\s*(\\)))\n",name:"constant.other.empty-list.schem"},{begin:"(')\\s*",beginCaptures:{1:{name:"punctuation.section.quoted.scheme"}},comment:"quoted double-quoted string or s-expression",end:"(?=[\\s()])|(?<=\\n)",name:"string.other.quoted-object.scheme",patterns:[{include:"#quoted"}]}]},"quote-sexp":{begin:"(?<=\\()\\s*(quote)\\s+",beginCaptures:{1:{name:"keyword.control.quote.scheme"}},comment:"\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t",contentName:"string.other.quote.scheme",end:"(?=[\\s)])|(?<=\\n)",patterns:[{include:"#quoted"}]},quoted:{patterns:[{include:"#string"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.scheme"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.expression.end.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#quoted"}]},{include:"#quote"},{include:"#illegal"}]},sexp:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.expression.begin.scheme"}},end:"(\\))(\\n)?",endCaptures:{1:{name:"punctuation.section.expression.end.scheme"},2:{name:"meta.after-expression.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#comment"},{begin:"(?x)\n(?<=\\()\n(define)\\s+\n(\\()\n([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n((\\s+\n([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n)*\n)\\s*\n(\\))\n",captures:{1:{name:"keyword.control.scheme"},2:{name:"punctuation.definition.function.scheme"},3:{name:"entity.name.function.scheme"},4:{name:"variable.parameter.function.scheme"},7:{name:"punctuation.definition.function.scheme"}},end:"(?=\\))",name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:"(?x)\n(?<=\\()\n(lambda)\\s+\n(\\()\n((?:\n([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\\s+\n)*(?:\n([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n)?)\n(\\))\n",captures:{1:{name:"keyword.control.scheme"},2:{name:"punctuation.definition.variable.scheme"},3:{name:"variable.parameter.scheme"},6:{name:"punctuation.definition.variable.scheme"}},comment:"\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t",end:"(?=\\))",name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:"(?<=\\()(define)\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\s*.*?",captures:{1:{name:"keyword.control.scheme"},2:{name:"variable.other.scheme"}},end:"(?=\\))",name:"meta.declaration.variable.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{include:"#quote-sexp"},{include:"#quote"},{include:"#language-functions"},{include:"#string"},{include:"#constants"},{match:"(?<=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])",name:"constant.character.named.scheme"},{match:"(?<=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])",name:"constant.character.hex-literal.scheme"},{match:"(?<=[\\(\\s])(#\\\\).(?=[\\s\\)])",name:"constant.character.escape.scheme"},{comment:"\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t",match:"(?<=[ ()])\\.(?=[ ()])",name:"punctuation.separator.cons.scheme"},{include:"#sexp"},{include:"#illegal"}]},string:{begin:'(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.scheme"}},end:'(")',endCaptures:{1:{name:"punctuation.definition.string.end.scheme"}},name:"string.quoted.double.scheme",patterns:[{match:"\\\\.",name:"constant.character.escape.scheme"}]}},c="source.scheme",i={displayName:e,fileTypes:n,name:t,patterns:a,repository:s,scopeName:c};export{i as default,e as displayName,n as fileTypes,t as name,a as patterns,s as repository,c as scopeName}; diff --git a/lib/dist/grammar/scss.mjs b/lib/dist/grammar/scss.mjs new file mode 100644 index 0000000..a643d14 --- /dev/null +++ b/lib/dist/grammar/scss.mjs @@ -0,0 +1 @@ +var e="SCSS",n="scss",t=[{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"}],s={at_rule_at_root:{begin:"\\s*((@)(at-root))(\\s+|$)",beginCaptures:{1:{name:"keyword.control.at-rule.at-root.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.at-root.scss",patterns:[{include:"#function_attributes"},{include:"#functions"},{include:"#selectors"}]},at_rule_charset:{begin:"\\s*((@)charset\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.charset.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;|$))",name:"meta.at-rule.charset.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"}]},at_rule_content:{begin:"\\s*((@)content\\b)\\s*",captures:{1:{name:"keyword.control.content.scss"}},end:"\\s*((?=;))",name:"meta.content.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_each:{begin:"\\s*((@)each\\b)\\s*",captures:{1:{name:"keyword.control.each.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=}))",name:"meta.at-rule.each.scss",patterns:[{match:"\\b(in|,)\\b",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_else:{begin:"\\s*((@)else(\\s*(if)?))\\s*",captures:{1:{name:"keyword.control.else.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.else.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_extend:{begin:"\\s*((@)extend\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.extend.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.extend.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_fontface:{patterns:[{begin:"^\\s*((@)font-face\\b)",beginCaptures:{1:{name:"keyword.control.at-rule.fontface.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.fontface.scss",patterns:[{include:"#function_attributes"}]}]},at_rule_for:{begin:"\\s*((@)for\\b)\\s*",captures:{1:{name:"keyword.control.for.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.for.scss",patterns:[{match:"(==|!=|<=|>=|<|>|from|to|through)",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_forward:{begin:"\\s*((@)forward\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.forward.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.forward.scss",patterns:[{match:"\\b(as|hide|show)\\b",name:"keyword.control.operator"},{captures:{1:{name:"entity.other.attribute-name.module.scss"},2:{name:"punctuation.definition.wildcard.scss"}},match:"\\b([\\w-]+)(\\*)"},{match:"\\b[\\w-]+\\b",name:"entity.name.function.scss"},{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"}]},at_rule_function:{patterns:[{begin:"\\s*((@)function\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.function.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.function.scss",patterns:[{include:"#function_attributes"}]},{captures:{1:{name:"keyword.control.at-rule.function.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},match:"\\s*((@)function\\b)\\s*",name:"meta.at-rule.function.scss"}]},at_rule_if:{begin:"\\s*((@)if\\b)\\s*",captures:{1:{name:"keyword.control.if.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.if.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_import:{begin:"\\s*((@)import\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.import.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;)|(?=}))",name:"meta.at-rule.import.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#functions"},{include:"#comment_line"}]},at_rule_include:{patterns:[{begin:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()",beginCaptures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"entity.name.function.scss"},4:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.include.scss",patterns:[{include:"#function_attributes"}]},{captures:{0:{name:"meta.at-rule.include.scss"},1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"entity.name.function.scss"}},match:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)"},{captures:{0:{name:"meta.at-rule.include.scss"},1:{name:"keyword.control.at-rule.include.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)include)\\b"}]},at_rule_keyframes:{begin:"(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b",beginCaptures:{0:{name:"keyword.control.at-rule.keyframes.scss"},1:{name:"punctuation.definition.keyword.scss"}},end:"(?<=})",name:"meta.at-rule.keyframes.scss",patterns:[{captures:{1:{name:"entity.name.function.scss"}},match:"(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)"},{begin:'(?<=@keyframes)\\s+(")',beginCaptures:{1:{name:"punctuation.definition.string.begin.scss"}},contentName:"entity.name.function.scss",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"(?<=@keyframes)\\s+(')",beginCaptures:{1:{name:"punctuation.definition.string.begin.scss"}},contentName:"entity.name.function.scss",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"{",beginCaptures:{0:{name:"punctuation.section.keyframes.begin.scss"}},end:"}",endCaptures:{0:{name:"punctuation.section.keyframes.end.scss"}},patterns:[{match:"\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)",name:"entity.other.attribute-name.scss"},{include:"#flow_control"},{include:"#interpolation"},{include:"#property_list"},{include:"#rules"}]}]},at_rule_media:{patterns:[{begin:"^\\s*((@)media)\\b",beginCaptures:{1:{name:"keyword.control.at-rule.media.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.media.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{match:"\\b(only)\\b",name:"keyword.control.operator.css.scss"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.media-query.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.media-query.end.bracket.round.scss"}},name:"meta.property-list.media-query.scss",patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.media-query.scss",patterns:[{include:"source.css#media-features"},{include:"source.css#property-names"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{1:{name:"punctuation.separator.key-value.scss"}},contentName:"meta.property-value.media-query.scss",end:"\\s*(;|(?=}|\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},{include:"#variable"},{include:"#conditional_operators"},{include:"source.css#media-types"}]}]},at_rule_mixin:{patterns:[{begin:"(?<=@mixin)\\s+([\\w-]+)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.scss"},2:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.mixin.scss",patterns:[{include:"#function_attributes"}]},{captures:{1:{name:"entity.name.function.scss"}},match:"(?<=@mixin)\\s+([\\w-]+)",name:"meta.at-rule.mixin.scss"},{captures:{1:{name:"keyword.control.at-rule.mixin.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)mixin)\\b",name:"meta.at-rule.mixin.scss"}]},at_rule_namespace:{patterns:[{begin:"(?<=@namespace)\\s+(?=url)",end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{begin:"(?<=@namespace)\\s+([\\w-]*)",captures:{1:{name:"entity.name.namespace-prefix.scss"}},end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#variables"},{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{captures:{1:{name:"keyword.control.at-rule.namespace.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"((@)namespace)\\b",name:"meta.at-rule.namespace.scss"}]},at_rule_option:{captures:{1:{name:"keyword.control.at-rule.charset.scss"},2:{name:"punctuation.definition.keyword.scss"}},match:"^\\s*((@)option\\b)\\s*",name:"meta.at-rule.option.scss"},at_rule_page:{patterns:[{begin:"^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)",captures:{1:{name:"keyword.control.at-rule.page.scss"},2:{name:"punctuation.definition.keyword.scss"},3:{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.page.scss"}]},at_rule_return:{begin:"\\s*((@)(return)\\b)",captures:{1:{name:"keyword.control.return.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;))",name:"meta.at-rule.return.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},at_rule_supports:{begin:"(?<=^|\\s)(@)supports\\b",captures:{0:{name:"keyword.control.at-rule.supports.scss"},1:{name:"punctuation.definition.keyword.scss"}},end:"(?={)|$",name:"meta.at-rule.supports.scss",patterns:[{include:"#logical_operators"},{include:"#properties"},{match:"\\(",name:"punctuation.definition.condition.begin.bracket.round.scss"},{match:"\\)",name:"punctuation.definition.condition.end.bracket.round.scss"}]},at_rule_use:{begin:"\\s*((@)use\\b)\\s*",captures:{1:{name:"keyword.control.at-rule.use.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.use.scss",patterns:[{match:"\\b(as|with)\\b",name:"keyword.control.operator"},{match:"\\b[\\w-]+\\b",name:"variable.scss"},{match:"\\*",name:"variable.language.expanded-namespace.scss"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]}]},at_rule_warn:{begin:"\\s*((@)(warn|debug|error)\\b)\\s*",captures:{1:{name:"keyword.control.warn.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.warn.scss",patterns:[{include:"#variable"},{include:"#string_double"},{include:"#string_single"}]},at_rule_while:{begin:"\\s*((@)while\\b)\\s*",captures:{1:{name:"keyword.control.while.scss"},2:{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=})",name:"meta.at-rule.while.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},comment_block:{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.scss"}},name:"comment.block.scss"},comment_docblock:{begin:"///",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"(?=$)",name:"comment.block.documentation.scss",patterns:[{include:"source.sassdoc"}]},comment_line:{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.scss"}},end:"\\n",name:"comment.line.scss"},comparison_operators:{match:"==|!=|<=|>=|<|>",name:"keyword.operator.comparison.scss"},conditional_operators:{patterns:[{include:"#comparison_operators"},{include:"#logical_operators"}]},constant_default:{match:"!default",name:"keyword.other.default.scss"},constant_functions:{begin:"(?:([\\w-]+)(\\.))?([\\w-]+)(\\()",beginCaptures:{1:{name:"variable.scss"},2:{name:"punctuation.access.module.scss"},3:{name:"support.function.misc.scss"},4:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},constant_important:{match:"!important",name:"keyword.other.important.scss"},constant_mathematical_symbols:{match:"\\b(\\+|-|\\*|/)\\b",name:"support.constant.mathematical-symbols.scss"},constant_optional:{match:"!optional",name:"keyword.other.optional.scss"},constant_sass_functions:{begin:"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()",beginCaptures:{1:{name:"support.function.misc.scss"},2:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},flow_control:{patterns:[{include:"#at_rule_if"},{include:"#at_rule_else"},{include:"#at_rule_warn"},{include:"#at_rule_for"},{include:"#at_rule_while"},{include:"#at_rule_each"},{include:"#at_rule_return"}]},function_attributes:{patterns:[{match:":",name:"punctuation.separator.key-value.scss"},{include:"#general"},{include:"#property_values"},{match:"[={}\\?;@]",name:"invalid.illegal.scss"}]},functions:{patterns:[{begin:"([\\w-]{1,})(\\()\\s*",beginCaptures:{1:{name:"support.function.misc.scss"},2:{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},{match:"([\\w-]{1,})",name:"support.function.misc.scss"}]},general:{patterns:[{include:"#variable"},{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"}]},interpolation:{begin:"#{",beginCaptures:{0:{name:"punctuation.definition.interpolation.begin.bracket.curly.scss"}},end:"}",endCaptures:{0:{name:"punctuation.definition.interpolation.end.bracket.curly.scss"}},name:"variable.interpolation.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},logical_operators:{match:"\\b(not|or|and)\\b",name:"keyword.operator.logical.scss"},map:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.map.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.map.end.bracket.round.scss"}},name:"meta.definition.variable.map.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{captures:{1:{name:"support.type.map.key.scss"},2:{name:"punctuation.separator.key-value.scss"}},match:"\\b([\\w-]+)\\s*(:)"},{match:",",name:"punctuation.separator.delimiter.scss"},{include:"#map"},{include:"#variable"},{include:"#property_values"}]},operators:{match:"[-+*/](?!\\s*[-+*/])",name:"keyword.operator.css"},parameters:{patterns:[{include:"#variable"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]},{include:"#property_values"},{include:"#comment_block"},{match:"[^'\",) \\t]+",name:"variable.parameter.url.scss"},{match:",",name:"punctuation.separator.delimiter.scss"}]},parent_selector_suffix:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:"(?x)\n(?<=&)\n(\n(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n| \\#\\{\n| \\$\n| }\n)+\n)\n(?= $\n| [\\s,.\\#)\\[:{>+~|]\n| /\\*\n)",name:"entity.other.attribute-name.parent-selector-suffix.css"},properties:{patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.scss",patterns:[{include:"source.css#property-names"},{include:"#at_rule_include"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{1:{name:"punctuation.separator.key-value.scss"}},contentName:"meta.property-value.scss",end:"\\s*(;|(?=}|\\)))",endCaptures:{1:{name:"punctuation.terminator.rule.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},property_list:{begin:"{",beginCaptures:{0:{name:"punctuation.section.property-list.begin.bracket.curly.scss"}},end:"}",endCaptures:{0:{name:"punctuation.section.property-list.end.bracket.curly.scss"}},name:"meta.property-list.scss",patterns:[{include:"#flow_control"},{include:"#rules"},{include:"#properties"},{include:"$self"}]},property_values:{patterns:[{include:"#string_single"},{include:"#string_double"},{include:"#constant_functions"},{include:"#constant_sass_functions"},{include:"#constant_important"},{include:"#constant_default"},{include:"#constant_optional"},{include:"source.css#numeric-values"},{include:"source.css#property-keywords"},{include:"source.css#color-keywords"},{include:"source.css#property-names"},{include:"#constant_mathematical_symbols"},{include:"#operators"},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},rules:{patterns:[{include:"#general"},{include:"#at_rule_extend"},{include:"#at_rule_content"},{include:"#at_rule_include"},{include:"#at_rule_media"},{include:"#selectors"}]},selector_attribute:{captures:{1:{name:"punctuation.definition.attribute-selector.begin.bracket.square.scss"},2:{name:"entity.other.attribute-name.attribute.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},3:{name:"keyword.operator.scss"},4:{name:"string.unquoted.attribute-value.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},5:{name:"string.quoted.double.attribute-value.scss"},6:{name:"punctuation.definition.string.begin.scss"},7:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},8:{name:"punctuation.definition.string.end.scss"},9:{name:"string.quoted.single.attribute-value.scss"},10:{name:"punctuation.definition.string.begin.scss"},11:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},12:{name:"punctuation.definition.string.end.scss"},13:{name:"punctuation.definition.attribute-selector.end.bracket.square.scss"}},match:"(?xi)\n(\\[)\n\\s*\n(\n(?:\n[-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n| \\#\\{\n| \\.?\\$\n| }\n)+?\n)\n(?:\n\\s*([~|^$*]?=)\\s*\n(?:\n(\n(?:\n[-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n| \\#\\{\n| \\.?\\$\n| }\n)+\n)\n|\n((\")(.*?)(\"))\n|\n((')(.*?)('))\n)\n)?\n\\s*\n(\\])",name:"meta.attribute-selector.scss"},selector_class:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]}},match:"(?x)\n(\\.)\n(\n(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n| \\#\\{\n| \\.?\\$\n| }\n)+\n)\n(?= $\n| [\\s,\\#)\\[:{>+~|]\n| \\.[^$]\n| /\\*\n| ;\n)",name:"entity.other.attribute-name.class.css"},selector_custom:{match:"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)",name:"entity.name.tag.custom.scss"},selector_id:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:"(?x)\n(\\#)\n(\n(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n| \\#\\{\n| \\.?\\$\n| }\n)+\n)\n(?= $\n| [\\s,\\#)\\[:{>+~|]\n| \\.[^$]\n| /\\*\n)",name:"entity.other.attribute-name.id.css"},selector_placeholder:{captures:{1:{name:"punctuation.definition.entity.css"},2:{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}},match:"(?x)\n(%)\n(\n(?: [-a-zA-Z_0-9]|[^\\x00-\\x7F]\n| \\\\(?:[0-9a-fA-F]{1,6}|.)\n| \\#\\{\n| \\.\\$\n| \\$\n| }\n)+\n)\n(?= ;\n| $\n| [\\s,\\#)\\[:{>+~|]\n| \\.[^$]\n| /\\*\n)",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"}]}},a="source.css.scss",i={displayName:e,name:n,patterns:t,repository:s,scopeName:a};export{i as default,e as displayName,n as name,t as patterns,s as repository,a as scopeName}; diff --git a/lib/dist/grammar/shaderlab.mjs b/lib/dist/grammar/shaderlab.mjs new file mode 100644 index 0000000..5897ef1 --- /dev/null +++ b/lib/dist/grammar/shaderlab.mjs @@ -0,0 +1 @@ +var a="ShaderLab",e="shaderlab",r=[{begin:"//",end:"$",name:"comment.line.double-slash.shaderlab"},{match:"\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b",name:"support.type.basic.shaderlab"},{include:"#numbers"},{match:"\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b",name:"storage.type.structure.shaderlab"},{match:"\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b",name:"support.type.propertyname.shaderlab"},{match:"\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b",name:"support.constant.property-value.shaderlab"},{match:"\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b",name:"support.constant.property-value.comparisonfunction.shaderlab"},{match:"\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b",name:"support.constant.property-value.stenciloperation.shaderlab"},{match:"\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b",name:"support.constant.property-value.texturecombiners.shaderlab"},{match:"\\b(?i:Global|Linear|Exp2|Exp)\\b",name:"support.constant.property-value.fog.shaderlab"},{match:"\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b",name:"support.constant.property-value.bindchannels.shaderlab"},{match:"\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b",name:"support.constant.property-value.blendoperations.shaderlab"},{match:"\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b",name:"support.constant.property-value.blendfactors.shaderlab"},{match:'\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(")',name:"support.variable.reference.shaderlab"},{begin:"(\\[)",end:"(\\])",name:"meta.attribute.shaderlab",patterns:[{match:"\\G([a-zA-Z]+)\\b",name:"support.type.attributename.shaderlab"},{include:"#numbers"}]},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(",name:"support.variable.declaration.shaderlab"},{begin:"\\b(CGPROGRAM|CGINCLUDE)\\b",beginCaptures:{1:{name:"keyword.other"}},end:"\\b(ENDCG)\\b",endCaptures:{1:{name:"keyword.other"}},name:"meta.cgblock",patterns:[{include:"#hlsl-embedded"}]},{begin:"\\b(HLSLPROGRAM|HLSLINCLUDE)\\b",beginCaptures:{1:{name:"keyword.other"}},end:"\\b(ENDHLSL)\\b",endCaptures:{1:{name:"keyword.other"}},name:"meta.hlslblock",patterns:[{include:"#hlsl-embedded"}]},{begin:'"',end:'"',name:"string.quoted.double.shaderlab"}],t={"hlsl-embedded":{patterns:[{include:"source.hlsl"},{match:"\\b(fixed([1-4](x[1-4])?)?)\\b",name:"storage.type.basic.shaderlab"},{match:"\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b",name:"support.variable.transformations.shaderlab"},{match:"\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b",name:"support.variable.camera.shaderlab"},{match:"\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b",name:"support.variable.time.shaderlab"},{match:"\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b",name:"support.variable.lighting.shaderlab"},{match:"\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b",name:"support.variable.fog.shaderlab"},{match:"\\b(unity_LODFade)\\b",name:"support.variable.various.shaderlab"},{match:"\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b",name:"support.variable.preprocessor.targetplatform.shaderlab"},{match:"\\b(SHADER_TARGET)\\b",name:"support.variable.preprocessor.targetmodel.shaderlab"},{match:"\\b(UNITY_VERSION)\\b",name:"support.variable.preprocessor.unityversion.shaderlab"},{match:"\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b",name:"support.variable.preprocessor.platformdifference.shaderlab"},{match:"\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b",name:"support.variable.preprocessor.texture2D.shaderlab"},{match:"\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b",name:"support.class.structures.shaderlab"},{match:"\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b",name:"support.class.surface.shaderlab"}]},numbers:{patterns:[{match:"\\b([0-9]+\\.?[0-9]*)\\b",name:"constant.numeric.shaderlab"}]}},n="source.shaderlab",o={displayName:a,name:e,patterns:r,repository:t,scopeName:n};export{o as default,a as displayName,e as name,r as patterns,t as repository,n as scopeName}; diff --git a/lib/dist/grammar/shellscript.mjs b/lib/dist/grammar/shellscript.mjs new file mode 100644 index 0000000..51a6d2c --- /dev/null +++ b/lib/dist/grammar/shellscript.mjs @@ -0,0 +1 @@ +var e="Shell",n="shellscript",t=[{include:"#initial_context"}],a={alias_statement:{begin:"(?:(?:[ \\t]*+)(alias)(?:[ \\t]*+)((?:(?:((?<!\\w)-\\w+\\b)(?:[ \\t]*+))*))(?:(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))))",beginCaptures:{1:{name:"storage.type.alias.shell"},2:{patterns:[{match:"(?<!\\w)-\\w+\\b",name:"string.unquoted.argument.shell constant.other.option.shell"}]},3:{name:"string.unquoted.argument.shell constant.other.option.shell"},4:{name:"variable.other.assignment.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"variable.other.assignment.shell"},7:{name:"constant.numeric.shell constant.numeric.integer.shell"},8:{name:"punctuation.definition.array.access.shell"},9:{name:"keyword.operator.assignment.shell"},10:{name:"keyword.operator.assignment.compound.shell"},11:{name:"keyword.operator.assignment.compound.shell"}},end:"(?:(?= |\\t|$)|(?:(?:(?:(;)|(&&))|(\\|\\|))|(&)))",endCaptures:{1:{name:"punctuation.terminator.statement.semicolon.shell"},2:{name:"punctuation.separator.statement.and.shell"},3:{name:"punctuation.separator.statement.or.shell"},4:{name:"punctuation.separator.statement.background.shell"}},name:"meta.expression.assignment.alias.shell",patterns:[{include:"#normal_context"}]},argument:{begin:"(?:[ \\t]++)(?!(?:&|\\||\\(|\\[|#|\\n|$|;))",beginCaptures:{},end:"(?= |\\t|;|\\||&|$|\\n|\\)|\\`)",endCaptures:{},name:"meta.argument.shell",patterns:[{include:"#argument_context"},{include:"#line_continuation"}]},argument_context:{patterns:[{captures:{1:{name:"string.unquoted.argument.shell",patterns:[{match:"\\*",name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{captures:{1:{name:"constant.language.$1.shell"}},match:"(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)"}]}},match:"(?:[ \\t]*+)((?:[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+)(?!>))"},{include:"#normal_context"}]},arithmetic_double:{patterns:[{begin:"\\(\\(",beginCaptures:{0:{name:"punctuation.section.arithmetic.double.shell"}},end:"\\)(?:\\s*)\\)",endCaptures:{0:{name:"punctuation.section.arithmetic.double.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},arithmetic_no_dollar:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.arithmetic.single.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.arithmetic.single.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"},{include:"#string"}]}]},array_access_inline:{captures:{1:{name:"punctuation.section.array.shell"},2:{patterns:[{include:"#special_expansion"},{include:"#string"},{include:"#variable"}]},3:{name:"punctuation.section.array.shell"}},match:"(?:(\\[)([^\\[\\]]+)(\\]))"},array_value:{begin:"(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))(?:[ \\t]*+)(\\()",beginCaptures:{1:{name:"variable.other.assignment.shell"},2:{name:"punctuation.definition.array.access.shell"},3:{name:"variable.other.assignment.shell"},4:{name:"constant.numeric.shell constant.numeric.integer.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"keyword.operator.assignment.shell"},7:{name:"keyword.operator.assignment.compound.shell"},8:{name:"keyword.operator.assignment.compound.shell"},9:{name:"punctuation.definition.array.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.array.shell"}},patterns:[{include:"#comment"},{captures:{1:{name:"variable.other.assignment.array.shell entity.other.attribute-name.shell"},2:{name:"keyword.operator.assignment.shell punctuation.definition.assignment.shell"}},match:"(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(\\=))"},{captures:{1:{name:"punctuation.definition.bracket.named-array.shell"},2:{name:"string.unquoted.shell entity.other.attribute-name.bracket.shell"},3:{name:"punctuation.definition.bracket.named-array.shell"},4:{name:"punctuation.definition.assignment.shell"}},match:"(?:(\\[)(.+?)(\\])(\\=))"},{include:"#normal_context"},{include:"#simple_unquoted"}]},assignment_statement:{patterns:[{include:"#array_value"},{include:"#modified_assignment_statement"},{include:"#normal_assignment_statement"}]},basic_command_name:{captures:{1:{name:"storage.modifier.$1.shell"},2:{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:"(?<!\\w)(?:continue|return|break)(?!\\w)",name:"keyword.control.$0.shell"},{match:"(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)",name:"support.function.builtin.shell"},{include:"#variable"}]}},match:"(?:(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect\t|nocorrect$|readonly |readonly\t|readonly$|function |function\t|function$|foreach |foreach\t|foreach$|coproc |coproc\t|coproc$|logout |logout\t|logout$|export |export\t|export$|select |select\t|select$|repeat |repeat\t|repeat$|pushd |pushd\t|pushd$|until |until\t|until$|while |while\t|while$|local |local\t|local$|case |case\t|case$|done |done\t|done$|elif |elif\t|elif$|else |else\t|else$|esac |esac\t|esac$|popd |popd\t|popd$|then |then\t|then$|time |time\t|time$|for |for\t|for$|end |end\t|end$|fi |fi\t|fi$|do |do\t|do$|in |in\t|in$|if |if\t|if$))(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))|((?!\"|'|\\\\\\n?$)(?:[^!'\"<> \\t\\n\\r]+?)))(?:(?= |\\t)|(?:(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))))",name:"meta.statement.command.name.basic.shell"},block_comment:{begin:"(?:(?:\\s*+)(\\/\\*))",beginCaptures:{1:{name:"punctuation.definition.comment.begin.shell"}},end:"\\*\\/",endCaptures:{0:{name:"punctuation.definition.comment.end.shell"}},name:"comment.block.shell"},boolean:{match:"\\b(?:true|false)\\b",name:"constant.language.$0.shell"},case_statement:{begin:"(?:(\\bcase\\b)(?:[ \\t]*+)(.+?)(?:[ \\t]*+)(\\bin\\b))",beginCaptures:{1:{name:"keyword.control.case.shell"},2:{patterns:[{include:"#initial_context"}]},3:{name:"keyword.control.in.shell"}},end:"\\besac\\b",endCaptures:{0:{name:"keyword.control.esac.shell"}},name:"meta.case.shell",patterns:[{include:"#comment"},{captures:{1:{name:"keyword.operator.pattern.case.default.shell"}},match:"(?:[ \\t]*+)(\\* *\\))"},{begin:"(?<!\\))(?!(?:[ \\t]*+)(?:esac\\b|$))",beginCaptures:{},end:"(?:(?=\\besac\\b)|(\\)))",endCaptures:{1:{name:"keyword.operator.pattern.case.shell"}},name:"meta.case.entry.pattern.shell",patterns:[{include:"#case_statement_context"}]},{begin:"(?<=\\))",beginCaptures:{},end:"(?:(;;)|(?=\\besac\\b))",endCaptures:{1:{name:"punctuation.terminator.statement.case.shell"}},name:"meta.case.entry.body.shell",patterns:[{include:"#typical_statements"},{include:"#initial_context"}]}]},case_statement_context:{patterns:[{match:"\\*",name:"variable.language.special.quantifier.star.shell keyword.operator.quantifier.star.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:"\\+",name:"variable.language.special.quantifier.plus.shell keyword.operator.quantifier.plus.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:"\\?",name:"variable.language.special.quantifier.question.shell keyword.operator.quantifier.question.shell punctuation.definition.arbitrary-repetition.shell punctuation.definition.regex.arbitrary-repetition.shell"},{match:"@",name:"variable.language.special.at.shell keyword.operator.at.shell punctuation.definition.regex.at.shell"},{match:"\\|",name:"keyword.operator.orvariable.language.special.or.shell keyword.operator.alternation.ruby.shell punctuation.definition.regex.alternation.shell punctuation.separator.regex.alternation.shell"},{match:"\\\\.",name:"constant.character.escape.shell"},{match:"(?<=\\tin| in| |\\t|;;)\\(",name:"keyword.operator.pattern.case.shell"},{begin:"(?<=\\S)(\\()",beginCaptures:{1:{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.shell punctuation.definition.regex.group.shell"}},name:"meta.parenthese.shell",patterns:[{include:"#case_statement_context"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.character-class.shell"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.shell"}},name:"string.regexp.character-class.shell",patterns:[{match:"\\\\.",name:"constant.character.escape.shell"}]},{include:"#string"},{match:"[^) \\t\\n\\[\\?\\*\\|\\@]",name:"string.unquoted.pattern.shell string.regexp.unquoted.shell"}]},command_name_range:{begin:"\\G",beginCaptures:{},end:"(?:(?= |\\t|;|\\||&|$|\\n|\\)|\\`)|(?=<))",endCaptures:{},name:"meta.statement.command.name.shell",patterns:[{match:"(?<!\\w)(?:continue|return|break)(?!\\w)",name:"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell"},{match:"(?<!\\w)(?:(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/))(?!\\w)(?!-)",name:"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell"},{include:"#variable"},{captures:{1:{name:"entity.name.function.call.shell entity.name.command.shell"}},match:"(?:(?<!\\w)(?<=\\G|'|\"|\\}|\\))([^ \\n\\t\\r\"'=;&\\|`\\)\\{<>]+))"},{begin:"(?:(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))(?:(\\$?)((?:(\")|(')))))",beginCaptures:{1:{name:"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell"},2:{},3:{name:"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},4:{name:"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"}},end:"(?<!\\G)(?<=(?:\\2))",endCaptures:{},patterns:[{include:"#continuation_of_single_quoted_command_name"},{include:"#continuation_of_double_quoted_command_name"}]},{include:"#line_continuation"},{include:"#simple_unquoted"}]},command_statement:{begin:"(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect\t|nocorrect$|readonly |readonly\t|readonly$|function |function\t|function$|foreach |foreach\t|foreach$|coproc |coproc\t|coproc$|logout |logout\t|logout$|export |export\t|export$|select |select\t|select$|repeat |repeat\t|repeat$|pushd |pushd\t|pushd$|until |until\t|until$|while |while\t|while$|local |local\t|local$|case |case\t|case$|done |done\t|done$|elif |elif\t|elif$|else |else\t|else$|esac |esac\t|esac$|popd |popd\t|popd$|then |then\t|then$|time |time\t|time$|for |for\t|for$|end |end\t|end$|fi |fi\t|fi$|do |do\t|do$|in |in\t|in$|if |if\t|if$)(?!\\\\\\n?$)))",beginCaptures:{},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.command.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"},{include:"#heredoc"}]},comment:{captures:{1:{name:"comment.line.number-sign.shell meta.shebang.shell"},2:{name:"punctuation.definition.comment.shebang.shell"},3:{name:"comment.line.number-sign.shell"},4:{name:"punctuation.definition.comment.shell"}},match:"(?:(?:^|(?:[ \\t]++))(?:((?:(#!)(?:.*)))|((?:(#)(?:.*)))))"},comments:{patterns:[{include:"#block_comment"},{include:"#line_comment"}]},"compound-command":{patterns:[{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical-expression"},{include:"#initial_context"}]},{begin:"(?<=\\s|^){(?=\\s|$)",beginCaptures:{0:{name:"punctuation.definition.group.shell"}},end:"(?<=^|;)\\s*(})",endCaptures:{1:{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},continuation_of_double_quoted_command_name:{begin:'(?:\\G(?<="))',beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command",end:'"',endCaptures:{0:{name:"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},patterns:[{match:'\\\\[\\$\\n`"\\\\]',name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},continuation_of_single_quoted_command_name:{begin:"(?:\\G(?<='))",beginCaptures:{},contentName:"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command",end:"'",endCaptures:{0:{name:"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}}},custom_command_names:{patterns:[]},custom_commands:{patterns:[]},double_quote_context:{patterns:[{match:'\\\\[\\$`"\\\\\\n]',name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},double_quote_escape_char:{match:'\\\\[\\$`"\\\\\\n]',name:"constant.character.escape.shell"},floating_keyword:{patterns:[{match:"(?<=^|;|&| |\\t)(?:then|elif|else|done|end|do|if|fi)(?= |\\t|;|&|$)",name:"keyword.control.$0.shell"}]},for_statement:{patterns:[{begin:"(?:(\\bfor\\b)(?:(?:[ \\t]*+)((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:[ \\t]*+)(\\bin\\b)))",beginCaptures:{1:{name:"keyword.control.for.shell"},2:{name:"variable.other.for.shell"},3:{name:"keyword.control.in.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.for.in.shell",patterns:[{include:"#string"},{include:"#simple_unquoted"},{include:"#normal_context"}]},{begin:"(\\bfor\\b)",beginCaptures:{1:{name:"keyword.control.for.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.for.shell",patterns:[{include:"#arithmetic_double"},{include:"#normal_context"}]}]},function_definition:{applyEndPatternLast:1,begin:"(?:[ \\t]*+)(?:(?:(\\bfunction\\b)(?:[ \\t]*+)([^ \\t\\n\\r\\(\\)=\"']+)(?:(?:(\\()(?:[ \\t]*+)(\\)))?))|(?:([^ \\t\\n\\r\\(\\)=\"']+)(?:[ \\t]*+)(\\()(?:[ \\t]*+)(\\))))",beginCaptures:{1:{name:"storage.type.function.shell"},2:{name:"entity.name.function.shell"},3:{name:"punctuation.definition.arguments.shell"},4:{name:"punctuation.definition.arguments.shell"},5:{name:"entity.name.function.shell"},6:{name:"punctuation.definition.arguments.shell"},7:{name:"punctuation.definition.arguments.shell"}},end:"(?<=\\}|\\))",endCaptures:{},name:"meta.function.shell",patterns:[{match:"(?:\\G(?:\\t| |\\n))"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{include:"#initial_context"}]},heredoc:{patterns:[{begin:"(?:((?<!<)(?:<<-))(?:[ \\t]*+)(\"|')(?:[ \\t]*+)([^\"']+?)(?=\\s|;|&|<|\"|')((?:\\2))(.*))",beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.quote.shell"},3:{name:"punctuation.definition.string.heredoc.delimiter.shell"},4:{name:"punctuation.definition.string.heredoc.quote.shell"},5:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.indent.$3",end:"(?:(?:^\\t*)(?:\\3)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.$0.shell"}},patterns:[]},{begin:"(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)(\"|')(?:[ \\t]*+)([^\"']+?)(?=\\s|;|&|<|\"|')((?:\\2))(.*))",beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.quote.shell"},3:{name:"punctuation.definition.string.heredoc.delimiter.shell"},4:{name:"punctuation.definition.string.heredoc.quote.shell"},5:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.quoted.heredoc.no-indent.$3",end:"(?:^(?:\\3)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[]},{begin:"(?:((?<!<)(?:<<-))(?:[ \\t]*+)([^\"' \\t]+)(?=\\s|;|&|<|\"|')(.*))",beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.delimiter.shell"},3:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.indent.$2",end:"(?:(?:^\\t*)(?:\\2)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]},{begin:"(?:((?<!<)(?:<<)(?!<))(?:[ \\t]*+)([^\"' \\t]+)(?=\\s|;|&|<|\"|')(.*))",beginCaptures:{1:{name:"keyword.operator.heredoc.shell"},2:{name:"punctuation.definition.string.heredoc.delimiter.shell"},3:{patterns:[{include:"#redirect_fix"},{include:"#typical_statements"}]}},contentName:"string.unquoted.heredoc.no-indent.$2",end:"(?:^(?:\\2)(?=\\s|;|&|$))",endCaptures:{0:{name:"punctuation.definition.string.heredoc.delimiter.shell"}},patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]}]},herestring:{patterns:[{begin:"(<<<)\\s*(('))",beginCaptures:{1:{name:"keyword.operator.herestring.shell"},2:{name:"string.quoted.single.shell"},3:{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.single.shell",end:"(')",endCaptures:{0:{name:"string.quoted.single.shell"},1:{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell"},{begin:'(<<<)\\s*(("))',beginCaptures:{1:{name:"keyword.operator.herestring.shell"},2:{name:"string.quoted.double.shell"},3:{name:"punctuation.definition.string.begin.shell"}},contentName:"string.quoted.double.shell",end:'(")',endCaptures:{0:{name:"string.quoted.double.shell"},1:{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell",patterns:[{include:"#double_quote_context"}]},{captures:{1:{name:"keyword.operator.herestring.shell"},2:{name:"string.unquoted.herestring.shell",patterns:[{include:"#initial_context"}]}},match:"(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)",name:"meta.herestring.shell"}]},initial_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#logical_expression_double"},{include:"#logical_expression_single"},{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#loop"},{include:"#function_definition"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#misc_ranges"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#alias_statement"},{include:"#normal_statement"},{include:"#string"},{include:"#support"}]},inline_comment:{captures:{1:{name:"comment.block.shell punctuation.definition.comment.begin.shell"},2:{name:"comment.block.shell"},3:{patterns:[{match:"\\*\\/",name:"comment.block.shell punctuation.definition.comment.end.shell"},{match:"\\*",name:"comment.block.shell"}]}},match:"(\\/\\*)((?:(?:[^\\*]|(?:(?:\\*++)[^\\/]))*+)((?:(?:\\*++)\\/)))"},interpolation:{patterns:[{include:"#arithmetic_dollar"},{include:"#subshell_dollar"},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.evaluation.backticks.shell"}},end:"`",endCaptures:{0:{name:"punctuation.definition.evaluation.backticks.shell"}},name:"string.interpolated.backtick.shell",patterns:[{match:"\\\\[`\\\\$]",name:"constant.character.escape.shell"},{begin:"(?<=\\W)(?=#)(?!#{)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.shell"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.shell"}},end:"(?=`)",name:"comment.line.number-sign.shell"}]},{include:"#initial_context"}]}]},keyword:{patterns:[{match:"(?<=^|;|&|\\s)(then|else|elif|fi|for|in|do|done|select|continue|esac|while|until|return)(?=\\s|;|&|$)",name:"keyword.control.shell"},{match:"(?<=^|;|&|\\s)(?:export|declare|typeset|local|readonly)(?=\\s|;|&|$)",name:"storage.modifier.shell"}]},line_comment:{begin:"(?:\\s*+)(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.shell"}},end:"(?<=\\n)(?<!\\\\\\n)",endCaptures:{},name:"comment.line.double-slash.shell",patterns:[{include:"#line_continuation_character"}]},line_continuation:{match:"\\\\(?=\\n)",name:"constant.character.escape.line-continuation.shell"},"logical-expression":{patterns:[{include:"#arithmetic_no_dollar"},{comment:"do we want a special rule for ( expr )?",match:"=[=~]?|!=?|<|>|&&|\\|\\|",name:"keyword.operator.logical.shell"},{match:"(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b",name:"keyword.operator.logical.shell"}]},logical_expression_context:{patterns:[{include:"#regex_comparison"},{include:"#arithmetic_no_dollar"},{include:"#logical-expression"},{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#comment"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},logical_expression_double:{begin:"\\[\\[",beginCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},end:"\\]\\]",endCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},logical_expression_single:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},loop:{patterns:[{begin:"(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)",beginCaptures:{1:{name:"keyword.control.shell"},2:{name:"variable.other.loop.shell",patterns:[{include:"#string"}]},3:{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{0:{name:"keyword.control.shell"}},name:"meta.scope.for-in-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)",beginCaptures:{1:{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{0:{name:"keyword.control.shell"}},name:"meta.scope.while-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)",beginCaptures:{1:{name:"keyword.control.shell"},2:{name:"variable.other.loop.shell"}},end:"(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))",endCaptures:{1:{name:"keyword.control.shell"}},name:"meta.scope.select-block.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)if(?=\\s|;|&|$)",beginCaptures:{0:{name:"keyword.control.if.shell"}},end:"(?<=^|;|&|\\s)fi(?=\\s|;|&|$)",endCaptures:{0:{name:"keyword.control.fi.shell"}},name:"meta.scope.if-block.shell",patterns:[{include:"#initial_context"}]}]},math:{patterns:[{include:"#variable"},{match:"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=",name:"keyword.operator.arithmetic.shell"},{match:"0[xX][0-9A-Fa-f]+",name:"constant.numeric.hex.shell"},{match:";",name:"punctuation.separator.semicolon.range"},{match:"0\\d+",name:"constant.numeric.octal.shell"},{match:"\\d{1,2}#[0-9a-zA-Z@_]+",name:"constant.numeric.other.shell"},{match:"\\d+",name:"constant.numeric.integer.shell"},{match:"(?<!\\w)(?:[a-zA-Z_0-9]+)(?!\\w)",name:"variable.other.normal.shell"}]},math_operators:{patterns:[{match:"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=",name:"keyword.operator.arithmetic.shell"},{match:"0[xX][0-9A-Fa-f]+",name:"constant.numeric.hex.shell"},{match:"0\\d+",name:"constant.numeric.octal.shell"},{match:"\\d{1,2}#[0-9a-zA-Z@_]+",name:"constant.numeric.other.shell"},{match:"\\d+",name:"constant.numeric.integer.shell"}]},misc_ranges:{patterns:[{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#subshell_dollar"},{begin:"(?<![^ \\t])({)(?!\\w|\\$)",beginCaptures:{1:{name:"punctuation.definition.group.shell"}},end:"}",endCaptures:{0:{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},modified_assignment_statement:{begin:"(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)",beginCaptures:{0:{name:"storage.modifier.$0.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.shell meta.expression.assignment.modified.shell",patterns:[{match:"(?<!\\w)-\\w+\\b",name:"string.unquoted.argument.shell constant.other.option.shell"},{include:"#array_value"},{captures:{1:{name:"variable.other.assignment.shell"},2:{name:"punctuation.definition.array.access.shell"},3:{name:"variable.other.assignment.shell"},4:{name:"constant.numeric.shell constant.numeric.integer.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"keyword.operator.assignment.shell"},7:{name:"keyword.operator.assignment.compound.shell"},8:{name:"keyword.operator.assignment.compound.shell"},9:{name:"constant.numeric.shell constant.numeric.hex.shell"},10:{name:"constant.numeric.shell constant.numeric.octal.shell"},11:{name:"constant.numeric.shell constant.numeric.other.shell"},12:{name:"constant.numeric.shell constant.numeric.decimal.shell"},13:{name:"constant.numeric.shell constant.numeric.version.shell"},14:{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:"(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?)(?:(?:(?:(\\=)|(\\+\\=))|(\\-\\=))?)(?:(?:(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;))?))"},{include:"#normal_context"}]},modifiers:{match:"(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)",name:"storage.modifier.$0.shell"},normal_assignment_statement:{begin:"(?:[ \\t]*+)(?:((?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))(?:(?:(\\[)((?:(?:(?:(?:\\$?)(?:(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w))|@)|\\*)|(-?\\d+)))(\\]))?))(?:(?:(\\=)|(\\+\\=))|(\\-\\=))",beginCaptures:{1:{name:"variable.other.assignment.shell"},2:{name:"punctuation.definition.array.access.shell"},3:{name:"variable.other.assignment.shell"},4:{name:"constant.numeric.shell constant.numeric.integer.shell"},5:{name:"punctuation.definition.array.access.shell"},6:{name:"keyword.operator.assignment.shell"},7:{name:"keyword.operator.assignment.compound.shell"},8:{name:"keyword.operator.assignment.compound.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.expression.assignment.shell",patterns:[{include:"#comment"},{include:"#string"},{include:"#normal_assignment_statement"},{begin:"(?<= |\\t)(?! |\\t|\\w+=)",beginCaptures:{},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.command.env.shell",patterns:[{include:"#command_name_range"},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#string"}]},{include:"#simple_unquoted"},{include:"#normal_context"}]},normal_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#misc_ranges"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"},{include:"#parenthese"}]},normal_statement:{begin:"(?:(?!^[ \\t]*+$)(?:(?<=^until | until |\\tuntil |^while | while |\\twhile |^elif | elif |\\telif |^else | else |\\telse |^then | then |\\tthen |^do | do |\\tdo |^if | if |\\tif )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))(?:[ \\t]*+)(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$))",beginCaptures:{},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.statement.shell",patterns:[{include:"#typical_statements"}]},normal_statement_seperator:{captures:{1:{name:"punctuation.terminator.statement.semicolon.shell"},2:{name:"punctuation.separator.statement.and.shell"},3:{name:"punctuation.separator.statement.or.shell"},4:{name:"punctuation.separator.statement.background.shell"}},match:"(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))"},numeric_literal:{captures:{1:{name:"constant.numeric.shell constant.numeric.hex.shell"},2:{name:"constant.numeric.shell constant.numeric.octal.shell"},3:{name:"constant.numeric.shell constant.numeric.other.shell"},4:{name:"constant.numeric.shell constant.numeric.decimal.shell"},5:{name:"constant.numeric.shell constant.numeric.version.shell"},6:{name:"constant.numeric.shell constant.numeric.integer.shell"}},match:"(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+(?:\\.\\d+)))|(-?\\d+(?:\\.\\d+)+))|(-?\\d+))(?= |\\t|$|\\}|\\)|;)"},option:{begin:"(?:(?:[ \\t]++)(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))))",beginCaptures:{1:{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},2:{name:"string.unquoted.argument.shell constant.other.option.shell"}},contentName:"string.unquoted.argument constant.other.option",end:"(?:(?=[ \\t])|(?:(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)))",endCaptures:{},patterns:[{include:"#option_context"}]},option_context:{patterns:[{include:"#misc_ranges"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#floating_keyword"},{include:"#support"}]},parenthese:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parenthese.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parenthese.shell"}},name:"meta.parenthese.group.shell",patterns:[{include:"#initial_context"}]}]},pathname:{patterns:[{match:"(?<=\\s|:|=|^)~",name:"keyword.operator.tilde.shell"},{match:"\\*|\\?",name:"keyword.operator.glob.shell"},{begin:"([?*+@!])(\\()",beginCaptures:{1:{name:"keyword.operator.extglob.shell"},2:{name:"punctuation.definition.extglob.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.extglob.shell"}},name:"meta.structure.extglob.shell",patterns:[{include:"#initial_context"}]}]},pipeline:{patterns:[{match:"(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)",name:"keyword.other.shell"},{match:"[|!]",name:"keyword.operator.pipe.shell"}]},redirect_fix:{captures:{1:{name:"keyword.operator.redirect.shell"},2:{name:"string.unquoted.argument.shell"}},match:"(?:(>>?)(?:[ \\t]*+)([^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]+))"},redirect_number:{captures:{1:{name:"keyword.operator.redirect.stdout.shell"},2:{name:"keyword.operator.redirect.stderr.shell"},3:{name:"keyword.operator.redirect.$3.shell"}},match:"(?<=[ \\t])(?:(?:(1)|(2)|(\\d+))(?=>))"},redirection:{patterns:[{begin:"[><]\\(",beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.interpolated.process-substitution.shell",patterns:[{include:"#initial_context"}]},{match:"(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])",name:"keyword.operator.redirect.shell"}]},regex_comparison:{match:"\\=~",name:"keyword.operator.logical.regex.shell"},regexp:{patterns:[{match:"(?:.+)"}]},simple_options:{captures:{0:{patterns:[{captures:{1:{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},2:{name:"string.unquoted.argument.shell constant.other.option.shell"}},match:"(?:[ \\t]++)(\\-)(\\w+)"}]}},match:"(?:(?:[ \\t]++)\\-(?:\\w+))*"},simple_unquoted:{match:"[^ \\t\\n>&;<>\\(\\)\\$`\\\\\"'<\\|]",name:"string.unquoted.shell"},special_expansion:{match:"!|:[-=?]?|\\*|@|##|#|%%|%|\\/",name:"keyword.operator.expansion.shell"},start_of_command:{match:"(?:(?:[ \\t]*+)(?:(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!nocorrect |nocorrect\t|nocorrect$|readonly |readonly\t|readonly$|function |function\t|function$|foreach |foreach\t|foreach$|coproc |coproc\t|coproc$|logout |logout\t|logout$|export |export\t|export$|select |select\t|select$|repeat |repeat\t|repeat$|pushd |pushd\t|pushd$|until |until\t|until$|while |while\t|while$|local |local\t|local$|case |case\t|case$|done |done\t|done$|elif |elif\t|elif$|else |else\t|else$|esac |esac\t|esac$|popd |popd\t|popd$|then |then\t|then$|time |time\t|time$|for |for\t|for$|end |end\t|end$|fi |fi\t|fi$|do |do\t|do$|in |in\t|in$|if |if\t|if$)(?!\\\\\\n?$)))"},string:{patterns:[{match:"\\\\.",name:"constant.character.escape.shell"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.shell"},{begin:'\\$?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.double.shell",patterns:[{match:'\\\\[\\$\\n`"\\\\]',name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},{begin:"\\$'",beginCaptures:{0:{name:"punctuation.definition.string.begin.shell"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.dollar.shell",patterns:[{match:"\\\\(?:a|b|e|f|n|r|t|v|\\\\|')",name:"constant.character.escape.ansi-c.shell"},{match:'\\\\[0-9]{3}"',name:"constant.character.escape.octal.shell"},{match:'\\\\x[0-9a-fA-F]{2}"',name:"constant.character.escape.hex.shell"},{match:'\\\\c."',name:"constant.character.escape.control-char.shell"}]}]},subshell_dollar:{patterns:[{begin:"(?:\\$\\()",beginCaptures:{0:{name:"punctuation.definition.subshell.single.shell"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.subshell.single.shell"}},name:"meta.scope.subshell",patterns:[{include:"#parenthese"},{include:"#initial_context"}]}]},support:{patterns:[{match:"(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)",name:"support.function.builtin.shell"}]},typical_statements:{patterns:[{include:"#assignment_statement"},{include:"#case_statement"},{include:"#for_statement"},{include:"#while_statement"},{include:"#function_definition"},{include:"#command_statement"},{include:"#line_continuation"},{include:"#arithmetic_double"},{include:"#normal_context"}]},variable:{patterns:[{captures:{1:{name:"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},2:{name:"variable.parameter.positional.all.shell"}},match:"(?:(\\$)(\\@(?!\\w)))"},{captures:{1:{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},2:{name:"variable.parameter.positional.shell"}},match:"(?:(\\$)([0-9](?!\\w)))"},{captures:{1:{name:"punctuation.definition.variable.shell variable.language.special.shell"},2:{name:"variable.language.special.shell"}},match:"(?:(\\$)([-*#?$!0_](?!\\w)))"},{begin:"(?:(\\$)(\\{)(?:[ \\t]*+)(?=\\d))",beginCaptures:{1:{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},2:{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},contentName:"meta.parameter-expansion",end:"\\}",endCaptures:{0:{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:"[0-9]+",name:"variable.parameter.positional.shell"},{match:"(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)",name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{begin:"(?:(\\$)(\\{))",beginCaptures:{1:{name:"punctuation.definition.variable.shell"},2:{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell"}},contentName:"meta.parameter-expansion",end:"\\}",endCaptures:{0:{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell"}},patterns:[{include:"#special_expansion"},{include:"#array_access_inline"},{match:"(?<!\\w)(?:[a-zA-Z_0-9-]+)(?!\\w)",name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{captures:{1:{name:"punctuation.definition.variable.shell variable.other.normal.shell"},2:{name:"variable.other.normal.shell"}},match:"(?:(\\$)((?:\\w+)(?!\\w)))"}]},while_statement:{patterns:[{begin:"(\\bwhile\\b)",beginCaptures:{1:{name:"keyword.control.while.shell"}},end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",endCaptures:{},name:"meta.while.shell",patterns:[{include:"#line_continuation"},{include:"#math_operators"},{include:"#option"},{include:"#simple_unquoted"},{include:"#normal_context"},{include:"#string"}]}]}},i="source.shell",l={displayName:e,name:n,patterns:t,repository:a,scopeName:i};export{l as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/shellsession.mjs b/lib/dist/grammar/shellsession.mjs new file mode 100644 index 0000000..eabf0cd --- /dev/null +++ b/lib/dist/grammar/shellsession.mjs @@ -0,0 +1 @@ +var s="Shell Session",e=["sh-session"],t="shellsession",a=[{captures:{1:{name:"entity.other.prompt-prefix.shell-session"},2:{name:"punctuation.separator.prompt.shell-session"},3:{name:"source.shell",patterns:[{include:"source.shell"}]}},match:"(?x) ^ (?: ( (?:\\(\\S+\\)\\s*)? (?: sh\\S*? | \\w+\\S+[@:]\\S+(?:\\s+\\S+)? | \\[\\S+?[@:][^\\n]+?\\].*? ) ) \\s* )? ( [>$#%❯➜] | \\p{Greek} ) \\s+ (.*) $"},{match:"^.+$",name:"meta.output.shell-session"}],l="text.shell-session",n={displayName:s,fileTypes:e,name:t,patterns:a,scopeName:l};export{n as default,s as displayName,e as fileTypes,t as name,a as patterns,l as scopeName}; diff --git a/lib/dist/grammar/smalltalk.mjs b/lib/dist/grammar/smalltalk.mjs new file mode 100644 index 0000000..6d0d7e0 --- /dev/null +++ b/lib/dist/grammar/smalltalk.mjs @@ -0,0 +1 @@ +var a="Smalltalk",t=["st"],e="\\[",n="^\\s*\\]|^\\s\\]",l="smalltalk",m=[{match:"\\$.",name:"constant.character.smalltalk"},{match:"\\b(class)\\b",name:"storage.type.$1.smalltalk"},{match:"\\b(extend|super|self)\\b",name:"storage.modifier.$1.smalltalk"},{match:"\\b(yourself|new|Smalltalk)\\b",name:"keyword.control.$1.smalltalk"},{match:":=",name:"keyword.operator.assignment.smalltalk"},{comment:"Parse the variable declaration like: |a b c|",match:"/^:\\w*\\s*\\|/",name:"constant.other.block.smalltalk"},{captures:{1:{name:"punctuation.definition.instance-variables.begin.smalltalk"},2:{patterns:[{match:"\\w+",name:"support.type.variable.declaration.smalltalk"}]},3:{name:"punctuation.definition.instance-variables.end.smalltalk"}},match:"(\\|)(\\s*\\w[\\w ]*)(\\|)"},{captures:{1:{patterns:[{match:":\\w+",name:"entity.name.function.block.smalltalk"}]}},comment:"Parse the blocks like: [ :a :b | ...... ]",match:"\\[((\\s+|:\\w+)*)\\|"},{include:"#numeric"},{match:"<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\^",name:"keyword.operator.comparison.smalltalk"},{match:"(\\*|\\+|\\-|/|\\\\)",name:"keyword.operator.arithmetic.smalltalk"},{match:"(?<=[ \\t])!+|\\bnot\\b|&|\\band\\b|\\||\\bor\\b",name:"keyword.operator.logical.smalltalk"},{comment:"Fake reserved word -> main Smalltalk messages",match:"(?<!\\.)\\b(ensure|resume|retry|signal)\\b(?![?!])",name:"keyword.control.smalltalk"},{comment:"Fake conditionals. Smalltalk Methods.",match:"ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:",name:"keyword.control.conditionals.smalltalk"},{captures:{1:{name:"entity.other.inherited-class.smalltalk"},3:{name:"keyword.control.smalltalk"},4:{name:"entity.name.type.class.smalltalk"}},match:"(\\w+)(\\s+(subclass:))\\s*(\\w*)",name:"meta.class.smalltalk"},{begin:'"',beginCaptures:[{name:"punctuation.definition.comment.begin.smalltalk"}],end:'"',endCaptures:[{name:"punctuation.definition.comment.end.smalltalk"}],name:"comment.block.smalltalk"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.smalltalk"},{match:"\\b(nil)\\b",name:"constant.language.nil.smalltalk"},{captures:{1:{name:"punctuation.definition.constant.smalltalk"}},comment:"messages/methods",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.messages.smalltalk"},{captures:{1:{name:"punctuation.definition.constant.smalltalk"}},comment:"symbols",match:"(#)[a-zA-Z_][a-zA-Z0-9_:]*",name:"constant.other.symbol.smalltalk"},{begin:"#\\[",beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],end:"\\]",endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"meta.array.byte.smalltalk",patterns:[{match:"[0-9]+(r[a-zA-Z0-9]+)?",name:"constant.numeric.integer.smalltalk"},{match:"[^\\s\\]]+",name:"invalid.illegal.character-not-allowed-here.smalltalk"}]},{begin:"#\\(",beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],comment:"Array Constructor",end:"\\)",endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"constant.other.array.smalltalk"},{begin:"'",beginCaptures:[{name:"punctuation.definition.string.begin.smalltalk"}],end:"'",endCaptures:[{name:"punctuation.definition.string.end.smalltalk"}],name:"string.quoted.single.smalltalk"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.smalltalk"}],s={numeric:{patterns:[{match:"(?<!\\w)[0-9]+\\.[0-9]+s[0-9]*",name:"constant.numeric.float.scaled.smalltalk"},{match:"(?<!\\w)[0-9]+\\.[0-9]+([edq]-?[0-9]+)?",name:"constant.numeric.float.smalltalk"},{match:"(?<!\\w)-?[0-9]+r[a-zA-Z0-9]+",name:"constant.numeric.integer.radix.smalltalk"},{match:"(?<!\\w)-?[0-9]+([edq]-?[0-9]+)?",name:"constant.numeric.integer.smalltalk"}]}},o="source.smalltalk",i={displayName:a,fileTypes:t,foldingStartMarker:"\\[",foldingStopMarker:n,name:l,patterns:m,repository:s,scopeName:o};export{i as default,a as displayName,t as fileTypes,e as foldingStartMarker,n as foldingStopMarker,l as name,m as patterns,s as repository,o as scopeName}; diff --git a/lib/dist/grammar/solidity.mjs b/lib/dist/grammar/solidity.mjs new file mode 100644 index 0000000..3101766 --- /dev/null +++ b/lib/dist/grammar/solidity.mjs @@ -0,0 +1 @@ +var e="Solidity",t=["sol"],n="solidity",a=[{include:"#natspec"},{include:"#declaration-userType"},{include:"#comment"},{include:"#operator"},{include:"#global"},{include:"#control"},{include:"#constant"},{include:"#primitive"},{include:"#type-primitive"},{include:"#type-modifier-extended-scope"},{include:"#declaration"},{include:"#function-call"},{include:"#assembly"},{include:"#punctuation"}],i={assembly:{patterns:[{match:"\\b(assembly)\\b",name:"keyword.control.assembly"},{match:"\\b(let)\\b",name:"storage.type.assembly"}]},comment:{patterns:[{include:"#comment-line"},{include:"#comment-block"}]},"comment-block":{begin:"/\\*",end:"\\*/",name:"comment.block",patterns:[{include:"#comment-todo"}]},"comment-line":{begin:"(?<!tp:)//",end:"$",name:"comment.line",patterns:[{include:"#comment-todo"}]},"comment-todo":{match:"(?i)\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\w+-disable|\\w+-suppress)\\b(?-i)",name:"keyword.comment.todo"},constant:{patterns:[{include:"#constant-boolean"},{include:"#constant-time"},{include:"#constant-currency"}]},"constant-boolean":{match:"\\b(true|false)\\b",name:"constant.language.boolean"},"constant-currency":{match:"\\b(ether|wei|gwei|finney|szabo)\\b",name:"constant.language.currency"},"constant-time":{match:"\\b(seconds|minutes|hours|days|weeks|years)\\b",name:"constant.language.time"},control:{patterns:[{include:"#control-flow"},{include:"#control-using"},{include:"#control-import"},{include:"#control-pragma"},{include:"#control-underscore"},{include:"#control-unchecked"},{include:"#control-other"}]},"control-flow":{patterns:[{match:"\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\b",name:"keyword.control.flow"},{begin:"\\b(returns)\\b",beginCaptures:{1:{name:"keyword.control.flow.return"}},end:"(?=\\))",patterns:[{include:"#declaration-function-parameters"}]}]},"control-import":{patterns:[{begin:"\\b(import)\\b",beginCaptures:{1:{name:"keyword.control.import"}},end:"(?=\\;)",patterns:[{begin:"((?=\\{))",end:"((?=\\}))",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.interface"}]},{match:"\\b(from)\\b",name:"keyword.control.import.from"},{include:"#string"},{include:"#punctuation"}]},{match:"\\b(import)\\b",name:"keyword.control.import"}]},"control-other":{match:"\\b(new|delete|emit)\\b",name:"keyword.control"},"control-pragma":{captures:{1:{name:"keyword.control.pragma"},2:{name:"entity.name.tag.pragma"},3:{name:"constant.other.pragma"}},match:"\\b(pragma)(?:\\s+([A-Za-z_]\\w+)\\s+([^\\s]+))?\\b"},"control-unchecked":{match:"\\b(unchecked)\\b",name:"keyword.control.unchecked"},"control-underscore":{match:"\\b(_)\\b",name:"constant.other.underscore"},"control-using":{patterns:[{captures:{1:{name:"keyword.control.using"},2:{name:"entity.name.type.library"},3:{name:"keyword.control.for"},4:{name:"entity.name.type"}},match:"\\b(using)\\b\\s+\\b([A-Za-z\\d_]+)\\b\\s+\\b(for)\\b\\s+\\b([A-Za-z\\d_]+)"},{match:"\\b(using)\\b",name:"keyword.control.using"}]},declaration:{patterns:[{include:"#declaration-contract"},{include:"#declaration-userType"},{include:"#declaration-interface"},{include:"#declaration-library"},{include:"#declaration-function"},{include:"#declaration-modifier"},{include:"#declaration-constructor"},{include:"#declaration-event"},{include:"#declaration-storage"},{include:"#declaration-error"}]},"declaration-constructor":{patterns:[{begin:"\\b(constructor)\\b",beginCaptures:{1:{name:"storage.type.constructor"}},end:"(?=\\{)",patterns:[{begin:"\\G\\s*(?=\\()",end:"(?=\\))",patterns:[{include:"#declaration-function-parameters"}]},{begin:"(?<=\\))",end:"(?=\\{)",patterns:[{include:"#type-modifier-access"},{include:"#function-call"}]}]},{captures:{1:{name:"storage.type.constructor"}},match:"\\b(constructor)\\b"}]},"declaration-contract":{patterns:[{begin:"\\b(contract)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+",beginCaptures:{1:{name:"storage.type.contract"},2:{name:"entity.name.type.contract"},3:{name:"storage.modifier.is"}},end:"(?=\\{)",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.contract.extend"}]},{captures:{1:{name:"storage.type.contract"},2:{name:"entity.name.type.contract"}},match:"\\b(contract)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-enum":{patterns:[{begin:"\\b(enum)\\s+(\\w+)\\b",beginCaptures:{1:{name:"storage.type.enum"},2:{name:"entity.name.type.enum"}},end:"(?=\\})",patterns:[{match:"\\b(\\w+)\\b",name:"variable.other.enummember"},{include:"#punctuation"},{include:"#comment"}]},{captures:{1:{name:"storage.type.enum"},3:{name:"entity.name.type.enum"}},match:"\\b(enum)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-error":{captures:{1:{name:"storage.type.error"},3:{name:"entity.name.type.error"}},match:"\\b(error)(\\s+([A-Za-z_]\\w*))?\\b"},"declaration-event":{patterns:[{begin:"\\b(event)\\b(?:\\s+(\\w+)\\b)?",beginCaptures:{1:{name:"storage.type.event"},2:{name:"entity.name.type.event"}},end:"(?=\\))",patterns:[{include:"#type-primitive"},{captures:{1:{name:"storage.type.modifier.indexed"},2:{name:"variable.parameter.event"}},match:"\\b(?:(indexed)\\s)?(\\w+)(?:,\\s*|)"},{include:"#punctuation"}]},{captures:{1:{name:"storage.type.event"},3:{name:"entity.name.type.event"}},match:"\\b(event)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-function":{patterns:[{begin:"\\b(function)\\s+(\\w+)\\b",beginCaptures:{1:{name:"storage.type.function"},2:{name:"entity.name.function"}},end:"(?=\\{|;)",patterns:[{include:"#natspec"},{include:"#global"},{include:"#declaration-function-parameters"},{include:"#type-modifier-access"},{include:"#type-modifier-payable"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extended-scope"},{include:"#control-flow"},{include:"#function-call"},{include:"#modifier-call"},{include:"#punctuation"}]},{captures:{1:{name:"storage.type.function"},2:{name:"entity.name.function"}},match:"\\b(function)\\s+([A-Za-z_]\\w*)\\b"}]},"declaration-function-parameters":{begin:"\\G\\s*(?=\\()",end:"(?=\\))",patterns:[{include:"#type-primitive"},{include:"#type-modifier-extended-scope"},{captures:{1:{name:"storage.type.struct"}},match:"\\b([A-Z]\\w*)\\b"},{include:"#variable"},{include:"#punctuation"},{include:"#comment"}]},"declaration-interface":{patterns:[{begin:"\\b(interface)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+",beginCaptures:{1:{name:"storage.type.interface"},2:{name:"entity.name.type.interface"},3:{name:"storage.modifier.is"}},end:"(?=\\{)",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.interface.extend"}]},{captures:{1:{name:"storage.type.interface"},2:{name:"entity.name.type.interface"}},match:"\\b(interface)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-library":{captures:{1:{name:"storage.type.library"},3:{name:"entity.name.type.library"}},match:"\\b(library)(\\s+([A-Za-z_]\\w*))?\\b"},"declaration-modifier":{patterns:[{begin:"\\b(modifier)\\b\\s*(\\w+)",beginCaptures:{1:{name:"storage.type.function.modifier"},2:{name:"entity.name.function.modifier"}},end:"(?=\\{)",patterns:[{include:"#declaration-function-parameters"},{begin:"(?<=\\))",end:"(?=\\{)",patterns:[{include:"#declaration-function-parameters"},{include:"#type-modifier-access"},{include:"#type-modifier-payable"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extended-scope"},{include:"#function-call"},{include:"#modifier-call"},{include:"#control-flow"}]}]},{captures:{1:{name:"storage.type.modifier"},3:{name:"entity.name.function"}},match:"\\b(modifier)(\\s+([A-Za-z_]\\w*))?\\b"}]},"declaration-storage":{patterns:[{include:"#declaration-storage-mapping"},{include:"#declaration-struct"},{include:"#declaration-enum"},{include:"#declaration-storage-field"}]},"declaration-storage-field":{patterns:[{include:"#comment"},{include:"#control"},{include:"#type-primitive"},{include:"#type-modifier-access"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extend-scope"},{include:"#type-modifier-payable"},{include:"#type-modifier-constant"},{include:"#primitive"},{include:"#constant"},{include:"#operator"},{include:"#punctuation"}]},"declaration-storage-mapping":{patterns:[{begin:"\\b(mapping)\\b",beginCaptures:{1:{name:"storage.type.mapping"}},end:"(?=\\))",patterns:[{include:"#declaration-storage-mapping"},{include:"#type-primitive"},{include:"#punctuation"},{include:"#operator"}]},{match:"\\b(mapping)\\b",name:"storage.type.mapping"}]},"declaration-struct":{patterns:[{captures:{1:{name:"storage.type.struct"},3:{name:"entity.name.type.struct"}},match:"\\b(struct)(\\s+([A-Za-z_]\\w*))?\\b"},{begin:"\\b(struct)\\b\\s*(\\w+)?\\b\\s*(?=\\{)",beginCaptures:{1:{name:"storage.type.struct"},2:{name:"entity.name.type.struct"}},end:"(?=\\})",patterns:[{include:"#type-primitive"},{include:"#variable"},{include:"#punctuation"},{include:"#comment"}]}]},"declaration-userType":{captures:{1:{name:"storage.type.userType"},2:{name:"entity.name.type.userType"},3:{name:"storage.modifier.is"}},match:"\\b(type)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b"},"function-call":{captures:{1:{name:"entity.name.function"},2:{name:"punctuation.parameters.begin"}},match:"\\b([A-Za-z_]\\w*)\\s*(\\()"},global:{patterns:[{include:"#global-variables"},{include:"#global-functions"}]},"global-functions":{patterns:[{match:"\\b(require|assert|revert)\\b",name:"keyword.control.exceptions"},{match:"\\b(selfdestruct|suicide)\\b",name:"keyword.control.contract"},{match:"\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\b",name:"support.function.math"},{match:"\\b(unicode)\\b",name:"support.function.string"},{match:"\\b(blockhash|gasleft)\\b",name:"variable.language.transaction"},{match:"\\b(type)\\b",name:"variable.language.type"}]},"global-variables":{patterns:[{match:"\\b(this)\\b",name:"variable.language.this"},{match:"\\b(super)\\b",name:"variable.language.super"},{match:"\\b(abi)\\b",name:"variable.language.builtin.abi"},{match:"\\b(msg\\.sender|msg|block|tx|now)\\b",name:"variable.language.transaction"},{match:"\\b(tx\\.origin|tx\\.gasprice|msg\\.data|msg\\.sig|msg\\.value)\\b",name:"variable.language.transaction"}]},"modifier-call":{patterns:[{include:"#function-call"},{match:"\\b(\\w+)\\b",name:"entity.name.function.modifier"}]},natspec:{patterns:[{begin:"/\\*\\*",end:"\\*/",name:"comment.block.documentation",patterns:[{include:"#natspec-tags"}]},{begin:"///",end:"$",name:"comment.block.documentation",patterns:[{include:"#natspec-tags"}]}]},"natspec-tag-author":{match:"(@author)\\b",name:"storage.type.author.natspec"},"natspec-tag-custom":{match:"(@custom:\\w*)\\b",name:"storage.type.dev.natspec"},"natspec-tag-dev":{match:"(@dev)\\b",name:"storage.type.dev.natspec"},"natspec-tag-inheritdoc":{match:"(@inheritdoc)\\b",name:"storage.type.author.natspec"},"natspec-tag-notice":{match:"(@notice)\\b",name:"storage.type.dev.natspec"},"natspec-tag-param":{captures:{1:{name:"storage.type.param.natspec"},3:{name:"variable.other.natspec"}},match:"(@param)(\\s+([A-Za-z_]\\w*))?\\b"},"natspec-tag-return":{captures:{1:{name:"storage.type.return.natspec"},3:{name:"variable.other.natspec"}},match:"(@return)(\\s+([A-Za-z_]\\w*))?\\b"},"natspec-tag-title":{match:"(@title)\\b",name:"storage.type.title.natspec"},"natspec-tags":{patterns:[{include:"#comment-todo"},{include:"#natspec-tag-title"},{include:"#natspec-tag-author"},{include:"#natspec-tag-notice"},{include:"#natspec-tag-dev"},{include:"#natspec-tag-param"},{include:"#natspec-tag-return"},{include:"#natspec-tag-custom"},{include:"#natspec-tag-inheritdoc"}]},number:{patterns:[{include:"#number-decimal"},{include:"#number-hex"},{include:"#number-scientific"}]},"number-decimal":{match:"\\b([0-9_]+(\\.[0-9_]+)?)\\b",name:"constant.numeric.decimal"},"number-hex":{match:"\\b(0[xX][a-fA-F0-9]+)\\b",name:"constant.numeric.hexadecimal"},"number-scientific":{match:"\\b(?:0\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\.\\d{1,2})?)(?:e[+-]?[0-9_]+)?",name:"constant.numeric.scientific"},operator:{patterns:[{include:"#operator-logic"},{include:"#operator-mapping"},{include:"#operator-arithmetic"},{include:"#operator-binary"},{include:"#operator-assignment"}]},"operator-arithmetic":{match:"(\\+|\\-|\\/|\\*)",name:"keyword.operator.arithmetic"},"operator-assignment":{match:"(\\:?=)",name:"keyword.operator.assignment"},"operator-binary":{match:"(\\^|\\&|\\||<<|>>)",name:"keyword.operator.binary"},"operator-logic":{match:"(==|\\!=|<(?!<)|<=|>(?!>)|>=|\\&\\&|\\|\\||\\:(?!=)|\\?|\\!)",name:"keyword.operator.logic"},"operator-mapping":{match:"(=>)",name:"keyword.operator.mapping"},primitive:{patterns:[{include:"#number-decimal"},{include:"#number-hex"},{include:"#number-scientific"},{include:"#string"}]},punctuation:{patterns:[{match:";",name:"punctuation.terminator.statement"},{match:"\\.",name:"punctuation.accessor"},{match:",",name:"punctuation.separator"},{match:"\\{",name:"punctuation.brace.curly.begin"},{match:"\\}",name:"punctuation.brace.curly.end"},{match:"\\[",name:"punctuation.brace.square.begin"},{match:"\\]",name:"punctuation.brace.square.end"},{match:"\\(",name:"punctuation.parameters.begin"},{match:"\\)",name:"punctuation.parameters.end"}]},string:{patterns:[{match:'\\"(?:\\\\"|[^\\"])*\\"',name:"string.quoted.double"},{match:"\\'(?:\\\\'|[^\\'])*\\'",name:"string.quoted.single"}]},"type-modifier-access":{match:"\\b(internal|external|private|public)\\b",name:"storage.type.modifier.access"},"type-modifier-constant":{match:"\\b(constant)\\b",name:"storage.type.modifier.readonly"},"type-modifier-extended-scope":{match:"\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\b",name:"storage.type.modifier.extendedscope"},"type-modifier-immutable":{match:"\\b(immutable)\\b",name:"storage.type.modifier.readonly"},"type-modifier-payable":{match:"\\b(nonpayable|payable)\\b",name:"storage.type.modifier.payable"},"type-primitive":{patterns:[{begin:"\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b(?:\\[\\])(\\()",beginCaptures:{1:{name:"support.type.primitive"}},end:"(\\))",patterns:[{include:"#primitive"},{include:"#punctuation"},{include:"#global"},{include:"#variable"}]},{match:"\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b",name:"support.type.primitive"}]},variable:{patterns:[{captures:{1:{name:"variable.parameter.function"}},match:"\\b(\\_\\w+)\\b"},{captures:{1:{name:"support.variable.property"}},match:"(?:\\.)(\\w+)\\b"},{captures:{1:{name:"variable.parameter.other"}},match:"\\b(\\w+)\\b"}]}},r="source.solidity",c={displayName:e,fileTypes:t,name:n,patterns:a,repository:i,scopeName:r};export{c as default,e as displayName,t as fileTypes,n as name,a as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/soy.mjs b/lib/dist/grammar/soy.mjs new file mode 100644 index 0000000..ebe6a9b --- /dev/null +++ b/lib/dist/grammar/soy.mjs @@ -0,0 +1 @@ +var e="Closure Templates",n=["soy"],t={"meta.tag":{patterns:[{include:"#body"}]}},a="soy",s=[{include:"#alias"},{include:"#delpackage"},{include:"#namespace"},{include:"#template"},{include:"#comment"}],r={alias:{captures:{1:{name:"storage.type.soy"},2:{name:"entity.name.type.soy"},3:{name:"storage.type.soy"},4:{name:"entity.name.type.soy"}},match:"{(alias)\\s+([\\w\\.]+)(?:\\s+(as)\\s+(\\w+))?}"},attribute:{captures:{1:{name:"storage.other.attribute.soy"},2:{name:"string.double.quoted.soy"}},match:'(\\w+)=("(?:\\\\?.)*?")'},body:{patterns:[{include:"#comment"},{include:"#let"},{include:"#call"},{include:"#css"},{include:"#xid"},{include:"#condition"},{include:"#condition-control"},{include:"#for"},{include:"#literal"},{include:"#msg"},{include:"#special-character"},{include:"#print"},{include:"text.html.basic"}]},boolean:{match:"true|false",name:"language.constant.boolean.soy"},call:{patterns:[{begin:"{((?:del)?call)\\s+([\\w\\.]+)(?=[^/]*?})",beginCaptures:{1:{name:"storage.type.function.soy"},2:{name:"entity.name.function.soy"}},end:"{/(\\1)}",endCaptures:{1:{name:"storage.type.function.soy"}},patterns:[{include:"#comment"},{include:"#variant"},{include:"#attribute"},{include:"#param"}]},{begin:"{((?:del)?call)(\\s+[\\w\\.]+)",beginCaptures:{1:{name:"storage.type.function.soy"},2:{name:"entity.name.function.soy"}},end:"/}",patterns:[{include:"#variant"},{include:"#attribute"}]}]},comment:{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.documentation.soy",patterns:[{captures:{1:{name:"keyword.parameter.soy"},2:{name:"variable.parameter.soy"}},match:"(@param\\??)\\s+(\\S+)"}]},{match:"^\\s*(\\/\\/.*)$",name:"comment.line.double-slash.soy"}]},condition:{begin:"{/?(if|elseif|switch|case)\\s*",beginCaptures:{1:{name:"keyword.control.soy"}},end:"}",patterns:[{include:"#attribute"},{include:"#expression"}]},"condition-control":{captures:{1:{name:"keyword.control.soy"}},match:"{(else|ifempty|default)}"},css:{begin:"{(css)\\s+",beginCaptures:{1:{name:"keyword.other.soy"}},end:"}",patterns:[{include:"#expression"}]},delpackage:{captures:{1:{name:"storage.type.soy"},2:{name:"entity.name.type.soy"}},match:"{(delpackage)\\s+([\\w\\.]+)}"},expression:{patterns:[{include:"#boolean"},{include:"#number"},{include:"#function"},{include:"#null"},{include:"#string"},{include:"#variable-ref"},{include:"#operator"}]},for:{begin:"{/?(foreach|for)(?=\\s|})",beginCaptures:{1:{name:"keyword.control.soy"}},end:"}",patterns:[{match:"in",name:"keyword.control.soy"},{include:"#expression"},{include:"#body"}]},function:{begin:"(\\w+)\\(",beginCaptures:{1:{name:"support.function.soy"}},end:"\\)",patterns:[{include:"#expression"}]},let:{patterns:[{begin:"{(let)\\s+(\\$\\w+\\s*:)",beginCaptures:{1:{name:"storage.type.soy"},2:{name:"variable.soy"}},end:"/}",patterns:[{include:"#comment"},{include:"#expression"}]},{begin:"{(let)\\s+(\\$\\w+)",beginCaptures:{1:{name:"storage.type.soy"},2:{name:"variable.soy"}},end:"{/(\\1)}",endCaptures:{1:{name:"storage.type.soy"}},patterns:[{include:"#attribute"},{include:"#body"}]}]},literal:{begin:"{(literal)}",beginCaptures:{1:{name:"keyword.other.soy"}},end:"{/(\\1)}",endCaptures:{1:{name:"keyword.other.soy"}},name:"meta.literal"},msg:{captures:{1:{name:"keyword.other.soy"}},end:"}",match:"{/?(msg|fallbackmsg)",patterns:[{include:"#attribute"}]},namespace:{captures:{1:{name:"storage.type.soy"},2:{name:"entity.name.type.soy"}},match:"{(namespace)\\s+([\\w\\.]+)}"},null:{match:"null",name:"language.constant.null.soy"},number:{match:"-?\\.?\\d+|\\d[\\.\\d]*",name:"language.constant.numeric"},operator:{match:"-|not|\\*|\\/|%|\\+|<=|>=|<|>|==|!=|and|or|\\?:|\\?|:",name:"keyword.operator.soy"},param:{patterns:[{begin:"{(param)\\s+(\\w+\\s*\\:)",beginCaptures:{1:{name:"storage.type.soy"},2:{name:"variable.parameter.soy"}},end:"/}",patterns:[{include:"#expression"}]},{begin:"{(param)\\s+(\\w+)",beginCaptures:{1:{name:"storage.type.soy"},2:{name:"variable.parameter.soy"}},end:"{/(\\1)}",endCaptures:{1:{name:"storage.type.soy"}},patterns:[{include:"#attribute"},{include:"#body"}]}]},print:{begin:"{(print)?\\s*",beginCaptures:{1:{name:"keyword.other.soy"}},end:"}",patterns:[{captures:{1:{name:"support.function.soy"}},match:"\\|\\s*(changeNewlineToBr|truncate|bidiSpanWrap|bidiUnicodeWrap)"},{include:"#expression"}]},"special-character":{captures:{1:{name:"language.support.constant"}},match:"{(sp|nil|\\\\r|\\\\n|\\\\t|lb|rb)}"},string:{begin:"'",end:"'",name:"string.quoted.single.soy",patterns:[{match:"\\\\(?:[\\\\'\"nrtbf]|u[0-9a-fA-F]{4})",name:"constant.character.escape.soy"}]},template:{begin:"{(template|deltemplate)\\s([\\w\\.]+)",beginCaptures:{1:{name:"storage.type.soy"},2:{name:"entity.name.function.soy"}},end:"{(/\\1)}",endCaptures:{1:{name:"storage.type.soy"}},patterns:[{begin:"{(@param)(\\??)\\s+(\\S+\\s*:)",beginCaptures:{1:{name:"keyword.parameter.soy"},2:{name:"storage.modifier.keyword.operator.soy"},3:{name:"variable.parameter.soy"}},end:"}",name:"meta.parameter.soy",patterns:[{include:"#type"}]},{include:"#variant"},{include:"#body"},{include:"#attribute"}]},type:{patterns:[{match:"any|null|\\?|string|bool|int|float|number|html|uri|js|css|attributes",name:"support.type.soy"},{begin:"(list|map)(<)",beginCaptures:{1:{name:"support.type.soy"},2:{name:"support.type.punctuation.soy"}},end:"(>)",endCaptures:{1:{name:"support.type.modifier.soy"}},patterns:[{include:"#type"}]}]},"variable-ref":{match:"\\$[\\a-zA-Z_][\\w\\.]*",name:"variable.other.soy"},variant:{begin:'(variant)=(")',beginCaptures:{1:{name:"storage.other.attribute.soy"},2:{name:"string.double.quoted.soy"}},contentName:"string.double.quoted.soy",end:'(")',endCaptures:{1:{name:"string.double.quoted.soy"}},patterns:[{include:"#expression"}]},xid:{begin:"{(xid)\\s+",beginCaptures:{1:{name:"keyword.other.soy"}},end:"}",patterns:[{include:"#expression"}]}},o="text.html.soy",i={displayName:e,fileTypes:n,injections:t,name:"soy",patterns:s,repository:r,scopeName:o};export{i as default,e as displayName,n as fileTypes,t as injections,a as name,s as patterns,r as repository,o as scopeName}; diff --git a/lib/dist/grammar/sparql.mjs b/lib/dist/grammar/sparql.mjs new file mode 100644 index 0000000..4b03469 --- /dev/null +++ b/lib/dist/grammar/sparql.mjs @@ -0,0 +1 @@ +var e="SPARQL",s=["rq","sparql","sq"],r="sparql",a=[{include:"source.turtle"},{include:"#query-keyword-operators"},{include:"#functions"},{include:"#variables"},{include:"#expression-operators"}],t={"expression-operators":{match:"(?:\\|\\||&&|=|!=|<|>|<=|>=|\\*|/|\\+|-|\\||\\^|\\?|\\!)",name:"support.class.sparql"},functions:{match:"\\b(?i:concat|regex|asc|desc|bound|isiri|isuri|isblank|isliteral|isnumeric|str|lang|datatype|sameterm|langmatches|avg|count|group_concat|separator|max|min|sample|sum|iri|uri|bnode|strdt|uuid|struuid|strlang|strlen|substr|ucase|lcase|strstarts|strends|contains|strbefore|strafter|encode_for_uri|replace|abs|round|ceil|floor|rand|now|year|month|day|hours|minutes|seconds|timezone|tz|md5|sha1|sha256|sha384|sha512|coalesce|if)\\b",name:"support.function.sparql"},"query-keyword-operators":{match:"\\b(?i:define|select|distinct|reduced|from|named|construct|ask|describe|where|graph|having|bind|as|filter|optional|union|order|by|group|limit|offset|values|insert data|delete data|with|delete|insert|clear|silent|default|all|create|drop|copy|move|add|to|using|service|not exists|exists|not in|in|minus|load)\\b",name:"keyword.control.sparql"},variables:{match:"(?<!\\w)[?$]\\w+",name:"constant.variable.sparql.turtle"}},n="source.sparql",i={displayName:e,fileTypes:s,name:r,patterns:a,repository:t,scopeName:n};export{i as default,e as displayName,s as fileTypes,r as name,a as patterns,t as repository,n as scopeName}; diff --git a/lib/dist/grammar/splunk.mjs b/lib/dist/grammar/splunk.mjs new file mode 100644 index 0000000..35fb893 --- /dev/null +++ b/lib/dist/grammar/splunk.mjs @@ -0,0 +1 @@ +var e="Splunk Query Language",a=["splunk","spl"],t="splunk",n=[{comment:"Splunk Built-in functions",match:"(?<=(\\||\\[))([\\s]*)\\b(abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|append|appendcols|appendpipe|arules|associate|audit|autoregress|bucket|bucketdir|chart|cluster|collect|concurrency|contingency|convert|correlate|crawl|datamodel|dbinspect|dbxquery|dbxlookup|dedup|delete|delta|diff|dispatch|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|file|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geostats|head|highlight|history|input|inputcsv|inputlookup|iplocation|join|kmeans|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|metadata|metasearch|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b(?=[\\s])",name:"support.class.splunk_search"},{comment:"Splunk Eval functions",match:"\\b(abs|acos|acosh|asin|asinh|atan|atan2|atanh|case|cidrmatch|ceiling|coalesce|commands|cos|cosh|exact|exp|floor|hypot|if|in|isbool|isint|isnotnull|isnull|isnum|isstr|len|like|ln|log|lower|ltrim|match|max|md5|min|mvappend|mvcount|mvdedup|mvfilter|mvfind|mvindex|mvjoin|mvrange|mvsort|mvzip|now|null|nullif|pi|pow|printf|random|relative_time|replace|round|rtrim|searchmatch|sha1|sha256|sha512|sigfig|sin|sinh|spath|split|sqrt|strftime|strptime|substr|tan|tanh|time|tonumber|tostring|trim|typeof|upper|urldecode|validate)(?=\\()\\b",name:"support.function.splunk_search"},{comment:"Splunk Transforming functions",match:"\\b(avg|count|distinct_count|estdc|estdc_error|eval|max|mean|median|min|mode|percentile|range|stdev|stdevp|sum|sumsq|var|varp|first|last|list|values|earliest|earliest_time|latest|latest_time|per_day|per_hour|per_minute|per_second|rate)\\b",name:"support.function.splunk_search"},{comment:"Splunk Macro Names",match:"(?<=\\`)[\\w]+(?=\\(|\\`)",name:"entity.name.function.splunk_search"},{comment:"Digits",match:"\\b(\\d+)\\b",name:"constant.numeric.splunk_search"},{comment:"Escape Characters",match:"(\\\\\\\\|\\\\\\||\\\\\\*|\\\\\\=)",name:"contant.character.escape.splunk_search"},{comment:"Splunk Operators",match:"(\\|,)",name:"keyword.operator.splunk_search"},{comment:"Splunk Language Constants",match:"(?i)\\b(as|by|or|and|over|where|output|outputnew)\\b|(?-i)\\b(NOT|true|false)\\b",name:"constant.language.splunk_search"},{comment:"Splunk Macro Parameters",match:'(?<=\\(|,|[^=]\\s{300})([^\\(\\)\\",=]+)(?=\\)|,)',name:"variable.parameter.splunk_search"},{comment:"Splunk Variables",match:"([\\w\\.]+)(\\[\\]|\\{\\})?([\\s]*)(?=\\=)",name:"variable.splunk_search"},{comment:"Comparison or assignment",match:"=",name:"keyword.operator.splunk_search"},{begin:'(?<!\\\\)"',end:'(?<!\\\\)"',name:"string.quoted.double.splunk_search"},{begin:"(?<!\\\\)'",end:"(?<!\\\\)'",name:"string.quoted.single.splunk_search"},{begin:'query=\\"',end:'(?<!\\\\)"',name:"meta.embedded.block.sql"},{begin:"(?<!\\\\)```",end:"(?<!\\\\)```",name:"comment.block.splunk_search"},{begin:"`comment\\(",end:"\\)`",name:"comment.block.splunk_search"}],s="source.splunk_search",r={displayName:e,fileTypes:a,name:t,patterns:n,scopeName:s};export{r as default,e as displayName,a as fileTypes,t as name,n as patterns,s as scopeName}; diff --git a/lib/dist/grammar/sql.mjs b/lib/dist/grammar/sql.mjs new file mode 100644 index 0000000..5065794 --- /dev/null +++ b/lib/dist/grammar/sql.mjs @@ -0,0 +1 @@ +var e="SQL",t="sql",a=[{match:"((?<!@)@)\\b(\\w+)\\b",name:"text.variable"},{match:"(\\[)[^\\]]*(\\])",name:"text.bracketed"},{include:"#comments"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.sql"},5:{name:"entity.name.function.sql"}},match:"(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4",name:"meta.create.sql"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.sql"}},match:"(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))",name:"meta.drop.sql"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.table.sql"},3:{name:"entity.name.function.sql"},4:{name:"keyword.other.cascade.sql"}},match:"(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)",name:"meta.drop.sql"},{captures:{1:{name:"keyword.other.create.sql"},2:{name:"keyword.other.table.sql"}},match:"(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)",name:"meta.alter.sql"},{captures:{1:{name:"storage.type.sql"},2:{name:"storage.type.sql"},3:{name:"constant.numeric.sql"},4:{name:"storage.type.sql"},5:{name:"constant.numeric.sql"},6:{name:"storage.type.sql"},7:{name:"constant.numeric.sql"},8:{name:"constant.numeric.sql"},9:{name:"storage.type.sql"},10:{name:"constant.numeric.sql"},11:{name:"storage.type.sql"},12:{name:"storage.type.sql"},13:{name:"storage.type.sql"},14:{name:"constant.numeric.sql"},15:{name:"storage.type.sql"}},match:"(?xi)\n\n\n\\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\n|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\n|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\n|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\n|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)?\n\n\n|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)?\n\n"},{match:"(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)",name:"storage.modifier.sql"},{match:"\\b\\d+\\b",name:"constant.numeric.sql"},{match:"(?i:\\b(select(\\s+(all|distinct))?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\s+by|or|like|and|union(\\s+all)?|having|order\\s+by|limit|cross\\s+join|join|straight_join|(inner|(left|right|full)(\\s+outer)?)\\s+join|natural(\\s+(inner|(left|right|full)(\\s+outer)?))?\\s+join)\\b)",name:"keyword.other.DML.sql"},{match:"(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)",name:"keyword.other.DDL.create.II.sql"},{match:"(?i:\\bvalues\\b)",name:"keyword.other.DML.II.sql"},{match:"(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)",name:"keyword.other.LUW.sql"},{match:"(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)",name:"keyword.other.authorization.sql"},{match:"(?i:\\bin\\b)",name:"keyword.other.data-integrity.sql"},{match:"(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)",name:"keyword.other.object-comments.sql"},{match:"(?i)\\bAS\\b",name:"keyword.other.alias.sql"},{match:"(?i)\\b(DESC|ASC)\\b",name:"keyword.other.order.sql"},{match:"\\*",name:"keyword.operator.star.sql"},{match:"[!<>]?=|<>|<|>",name:"keyword.operator.comparison.sql"},{match:"-|\\+|/",name:"keyword.operator.math.sql"},{match:"\\|\\|",name:"keyword.operator.concatenator.sql"},{captures:{1:{name:"support.function.aggregate.sql"}},match:"(?i)\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b\\s*\\("},{captures:{1:{name:"support.function.analytic.sql"}},match:"(?i)\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\b\\s*\\("},{captures:{1:{name:"support.function.bitmanipulation.sql"}},match:"(?i)\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\b\\s*\\("},{captures:{1:{name:"support.function.conversion.sql"}},match:"(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b\\s*\\("},{captures:{1:{name:"support.function.collation.sql"}},match:"(?i)\\b(collationproperty|tertiary_weights)\\b\\s*\\("},{captures:{1:{name:"support.function.cryptographic.sql"}},match:"(?i)\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\b\\s*\\("},{captures:{1:{name:"support.function.cursor.sql"}},match:"(?i)\\b(cursor_status)\\b\\s*\\("},{captures:{1:{name:"support.function.datetime.sql"}},match:"(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\b\\s*\\("},{captures:{1:{name:"support.function.datatype.sql"}},match:"(?i)\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\b\\s*\\("},{captures:{1:{name:"support.function.expression.sql"}},match:"(?i)\\b(coalesce|nullif)\\b\\s*\\("},{captures:{1:{name:"support.function.globalvar.sql"}},match:"(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b\\s*\\("},{captures:{1:{name:"support.function.json.sql"}},match:"(?i)\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\b\\s*\\("},{captures:{1:{name:"support.function.logical.sql"}},match:"(?i)\\b(choose|iif|greatest|least)\\b\\s*\\("},{captures:{1:{name:"support.function.mathematical.sql"}},match:"(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b\\s*\\("},{captures:{1:{name:"support.function.metadata.sql"}},match:"(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b\\s*\\("},{captures:{1:{name:"support.function.ranking.sql"}},match:"(?i)\\b(rank|dense_rank|ntile|row_number)\\b\\s*\\("},{captures:{1:{name:"support.function.rowset.sql"}},match:"(?i)\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\b\\s*\\("},{captures:{1:{name:"support.function.security.sql"}},match:"(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b\\s*\\("},{captures:{1:{name:"support.function.string.sql"}},match:"(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b\\s*\\("},{captures:{1:{name:"support.function.system.sql"}},match:"(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b\\s*\\("},{captures:{1:{name:"support.function.textimage.sql"}},match:"(?i)\\b(patindex|textptr|textvalid)\\b\\s*\\("},{captures:{1:{name:"constant.other.database-name.sql"},2:{name:"constant.other.table-name.sql"}},match:"(\\w+?)\\.(\\w+)"},{include:"#strings"},{include:"#regexps"},{match:"\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|connection|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|match|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|shortest_path|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b",name:"keyword.other.sql"},{captures:{1:{name:"punctuation.section.scope.begin.sql"},2:{name:"punctuation.section.scope.end.sql"}},comment:"Allow for special ↩ behavior",match:"(\\()(\\))",name:"meta.block.sql"}],n={"comment-block":{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.sql"}},end:"\\*/",name:"comment.block",patterns:[{include:"#comment-block"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=--)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.sql"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{0:{name:"punctuation.definition.comment.sql"}},end:"\\n",name:"comment.line.double-dash.sql"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.sql"}},end:"(?!\\G)",patterns:[]},{include:"#comment-block"}]},regexps:{patterns:[{begin:"/(?=\\S.*/)",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"/",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.sql",patterns:[{include:"#string_interpolation"},{match:"\\\\/",name:"constant.character.escape.slash.sql"}]},{begin:"%r\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},comment:"We should probably handle nested bracket pairs!?! -- Allan",end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.modr.sql",patterns:[{include:"#string_interpolation"}]}]},string_escape:{match:"\\\\.",name:"constant.character.escape.sql"},string_interpolation:{captures:{1:{name:"punctuation.definition.string.begin.sql"},3:{name:"punctuation.definition.string.end.sql"}},match:"(#\\{)([^\\}]*)(\\})",name:"string.interpolated.sql"},strings:{patterns:[{captures:{2:{name:"punctuation.definition.string.begin.sql"},3:{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(N)?(')[^']*(')",name:"string.quoted.single.sql"},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.single.sql",patterns:[{include:"#string_escape"}]},{captures:{1:{name:"punctuation.definition.string.begin.sql"},2:{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(`)[^`\\\\]*(`)",name:"string.quoted.other.backtick.sql"},{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.other.backtick.sql",patterns:[{include:"#string_escape"}]},{captures:{1:{name:"punctuation.definition.string.begin.sql"},2:{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:'(")[^"#]*(")',name:"string.quoted.double.sql"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.double.sql",patterns:[{include:"#string_interpolation"}]},{begin:"%\\{",beginCaptures:{0:{name:"punctuation.definition.string.begin.sql"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.sql"}},name:"string.other.quoted.brackets.sql",patterns:[{include:"#string_interpolation"}]}]}},r="source.sql",s={displayName:"SQL",name:"sql",patterns:a,repository:n,scopeName:r};export{s as default,e as displayName,t as name,a as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/ssh-config.mjs b/lib/dist/grammar/ssh-config.mjs new file mode 100644 index 0000000..9b0fe80 --- /dev/null +++ b/lib/dist/grammar/ssh-config.mjs @@ -0,0 +1 @@ +var e="SSH Config",n=["ssh_config",".ssh/config","sshd_config"],t="ssh-config",s=[{match:"\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\b",name:"keyword.other.ssh-config"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ssh-config"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.ssh-config"}},end:"\\n",name:"comment.line.number-sign.ssh-config"}]},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ssh-config"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.ssh-config"}},end:"\\n",name:"comment.line.double-slash.ssh-config"}]},{captures:{1:{name:"storage.type.ssh-config"},2:{name:"entity.name.section.ssh-config"},3:{name:"meta.toc-list.ssh-config"}},match:"(?:^| |\\t)(Host)\\s+((.*))$"},{match:"\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b",name:"constant.numeric.ssh-config"},{match:"\\b[0-9]+\\b",name:"constant.numeric.ssh-config"},{match:"\\b(yes|no)\\b",name:"constant.language.ssh-config"},{match:"\\b[A-Z_]+\\b",name:"constant.language.ssh-config"}],o="source.ssh-config",i={displayName:e,fileTypes:n,name:t,patterns:s,scopeName:o};export{i as default,e as displayName,n as fileTypes,t as name,s as patterns,o as scopeName}; diff --git a/lib/dist/grammar/stata.mjs b/lib/dist/grammar/stata.mjs new file mode 100644 index 0000000..057d818 --- /dev/null +++ b/lib/dist/grammar/stata.mjs @@ -0,0 +1 @@ +var t="Stata",e=["do","ado","mata"],a="\\{\\s*$",n="^\\s*\\}",i="stata",r=[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#constants"},{include:"#functions"},{include:"#comments"},{include:"#subscripts"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{comment:"keywords that delimit flow conditionals",match:"\\b(if|else if|else)\\b",name:"keyword.control.conditional.stata"},{captures:{1:{name:"storage.type.scalar.stata"}},match:"^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)"},{begin:"\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)",beginCaptures:{1:{name:"keyword.control.flow.stata"},3:{patterns:[{include:"#constants"},{match:"m|n",name:""}]},4:{name:"punctuation.separator.key-value"},5:{patterns:[{include:"#constants"},{match:"m|n",name:""}]}},end:"using",patterns:[{include:"#builtin_variables"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments"}]},{captures:{1:{name:"keyword.control.flow.stata"},2:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},3:{name:"keyword.control.flow.stata"}},match:"\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b"},{begin:"\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*",beginCaptures:{1:{name:"keyword.control.flow.stata"},2:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},3:{name:"keyword.control.flow.stata"}},end:"(?=\\s*\\{)",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*",beginCaptures:{1:{name:"keyword.control.flow.stata"}},end:"\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)",endCaptures:{1:{name:"keyword.operator.assignment.stata"},2:{patterns:[{include:"#constants"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"}]}},patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{comment:"keywords that delimit loops",match:"\\b(while|continue)\\b",name:"keyword.control.flow.stata"},{captures:{1:{name:"keyword.other.stata"}},comment:"keywords that haven't fit into other groups (yet).",match:"\\b(as|ass|asse|asser|assert)\\b"},{comment:"prefixes that require a colon",match:"\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b",name:"storage.type.function.stata"},{comment:"prefixes that don't need a colon",match:"\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?",name:"keyword.control.flow.stata"},{captures:{1:{name:"storage.type.function.stata"},3:{name:"storage.type.function.stata"},7:{name:"entity.name.function.stata"}},match:"\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})"},{begin:"^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?",beginCaptures:{1:{name:"storage.type.function.stata"},3:{name:"storage.type.function.stata"}},end:"(?=,|\\n|/)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"entity.name.function.stata"},{match:"[^A-za-z_0-9,\\n/ ]+",name:"invalid.illegal.name.stata"}]},{captures:{1:"keyword.functions.data.stata.test"},match:"\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?"},{include:"#braces-with-error"},{begin:"(?=syntax)",end:"\\n",patterns:[{begin:"syntax",beginCaptures:{0:{name:"keyword.functions.program.stata"}},comment:"color before the comma",end:"(?=,|\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:"\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b",name:"entity.name.type.class.stata"},{captures:{2:{name:"entity.name.type.class.stata"},3:{name:"keyword.operator.arithmetic.stata"}},match:"\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?"},{captures:{1:{name:"keyword.operator.arithmetic.stata"},2:{name:"entity.name.type.class.stata"}},match:"(/)?(exp)"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{begin:",",beginCaptures:{0:{name:"punctuation.definition.variable.begin.stata"}},comment:"things to color after the comma",end:"(?=\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:"([^\\s\\[\\]]+)(\\()",beginCaptures:{1:{comment:"these are the names that become macros",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},2:{name:"keyword.operator.parentheses.stata"}},comment:"color options with parentheses",end:"\\)",endCaptures:{0:{name:"keyword.operator.parentheses.stata"}},patterns:[{captures:{0:{name:"support.type.stata"}},comment:"the first word is often a type",match:"\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{include:"#macro-local-identifiers"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]}]},{captures:{1:{name:"keyword.functions.data.stata"}},comment:"one-word commands",match:"\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b"},{comment:"programming commands",match:"\\b(exit|end)\\b",name:"keyword.functions.data.stata"},{captures:{1:{name:"keyword.functions.data.stata"},2:{patterns:[{include:"#macro-local"}]},4:{name:"invalid.illegal.name.stata"},5:{name:"keyword.operator.assignment.stata"}},match:"\\b(replace)\\s+([^=]+)\\s*((==)|(=))"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"support.type.stata"},5:{patterns:[{include:"#reserved-names"},{include:"#macro-local"}]},7:{name:"invalid.illegal.name.stata"},8:{name:"keyword.operator.assignment.stata"}},match:"\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"support.type.stata"}},match:"\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b"},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"},6:{name:"punctuation.definition.string.begin.stata"},7:{patterns:[{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.compound.stata"}]},8:{name:"punctuation.definition.string.begin.stata"}},match:'\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`")(.+)("\')'},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"},6:{name:"punctuation.definition.string.begin.stata"},7:{patterns:[{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.stata"}]},8:{name:"punctuation.definition.string.begin.stata"}},match:'\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(")(.+)(")'},{captures:{1:{name:"keyword.functions.data.stata"},3:{name:"keyword.functions.data.stata"}},match:"\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b"},{begin:"\\b(drop|keep)\\b(?!\\s+(if|in)\\b)",beginCaptures:{1:{name:"keyword.functions.data.stata"}},end:"\\n",patterns:[{match:"\\b(if|in)\\b",name:"invalid.illegal.name.stata"},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"#operators"}]},{captures:{1:{name:"keyword.functions.data.stata"},2:{name:"keyword.functions.data.stata"}},match:"\\b(drop|keep)\\s+(if|in)\\b"},{begin:"^\\s*mata:?\\s*$",comment:"won't match single-line Mata statements",end:"^\\s*end\\s*$\\n?",name:"meta.embedded.block.mata",patterns:[{match:"(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)",name:"keyword.control.mata"},{captures:{1:{name:"storage.type.eltype.mata"},4:{name:"storage.type.orgtype.mata"}},match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.mata"},{comment:"need to end with whitespace character here or last group doesn't match",match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s",name:"storage.type.eltype.mata"},{match:"\\b(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.orgtype.mata"},{match:"\\!|\\+\\+|\\-\\-|\\&|\\'|\\?|\\\\|\\:\\:|\\,|\\.\\.|\\||\\=|\\=\\=|\\>\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/",name:"keyword.operator.mata"},{include:"$self"}]},{begin:"\\b(odbc)\\b",beginCaptures:{0:{name:"keyword.control.flow.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:'(exec?)(\\(")',beginCaptures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"}},end:'"\\)',endCaptures:{0:{name:"punctuation.definition.parameters.end.stata"}},patterns:[{include:"source.sql"}]},{include:"$self"}]},{include:"#commands-other"}],s={"ascii-regex-character-class":{patterns:[{match:"\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]",name:"constant.character.escape.backslash.stata"},{match:"\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"illegal.invalid.character-class.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.stata"},2:{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#ascii-regex-character-class"},{captures:{2:{name:"constant.character.escape.backslash.stata"},4:{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"ascii-regex-functions":{patterns:[{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexm with regular quotes i.e. " ',match:'\\b(regexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(\')?)\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"punctuation.definition.parameters.end.stata"}},comment:"color regexm with compound quotes",match:'\\b(regexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with regular quotes i.e. " ',match:'\\b(regexr)(\\()([^,]+)(,)\\s*(")([^"]+)("(\')?)\\s*([^\\)]*)(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#ascii-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with compound quotes i.e. `"text"\' ',match:'\\b(regexr)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))'}]},"ascii-regex-internals":{patterns:[{match:"\\^",name:"keyword.control.anchor.stata"},{comment:"matched when not a global, but must be ascii",match:"\\$(?![a-zA-Z_\\{])",name:"keyword.control.anchor.stata"},{match:"[\\?\\+\\*]",name:"keyword.control.quantifier.stata"},{match:"\\|",name:"keyword.control.or.stata"},{begin:"(\\()(?=\\?|\\*|\\+)",beginCaptures:{1:{name:"keyword.operator.group.stata"}},contentName:"invalid.illegal.regexm.stata",end:"\\)",endCaptures:{0:{name:"keyword.operator.group.stata"}}},{begin:"(\\()",beginCaptures:{1:{name:"keyword.operator.group.stata"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.group.stata"}},patterns:[{include:"#ascii-regex-internals"}]},{include:"#ascii-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]},"braces-with-error":{patterns:[{begin:"(\\{)\\s*([^\\n]*)(?=\\n)",beginCaptures:{1:{name:"keyword.control.block.begin.stata"},2:{patterns:[{include:"#comments"},{match:"[^\\n]+",name:"illegal.invalid.name.stata"}]}},comment:"correct with nothing else on the line but whitespace; before and after; before; after; correct",end:'^\\s*(\\})\\s*$|^\\s*([^\\*"\\}]+)\\s+(\\})\\s*([^\\*"\\}/\\n]+)|^\\s*([^"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^"\\*\\}/\\n]+)|(\\})$',endCaptures:{1:{name:"keyword.control.block.end.stata"},2:{name:"invalid.illegal.name.stata"},3:{name:"keyword.control.block.end.stata"},4:{name:"invalid.illegal.name.stata"},5:{name:"invalid.illegal.name.stata"},6:{name:"keyword.control.block.end.stata"},7:{name:"keyword.control.block.end.stata"},8:{name:"invalid.illegal.name.stata"},9:{name:"keyword.control.block.end.stata"}},patterns:[{include:"$self"}]}]},"braces-without-error":{patterns:[{begin:"\\{",beginCaptures:{0:{name:"keyword.control.block.begin.stata"}},end:"\\}",endCaptures:{0:{name:"keyword.control.block.end.stata"}}}]},builtin_types:{patterns:[{match:"\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b",name:"support.type.stata"}]},builtin_variables:{patterns:[{match:"\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b",name:"variable.object.stata"}]},"commands-other":{patterns:[{comment:"Add on commands",match:"\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b",name:"keyword.control.flow.stata"},{comment:"Built in commands",match:"\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b",name:"keyword.control.flow.stata"}]},comments:{patterns:[{include:"#comments-double-slash"},{include:"#comments-star"},{include:"#comments-block"},{include:"#comments-triple-slash"}]},"comments-block":{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.stata"}},end:"(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))",endCaptures:{0:{name:"punctuation.definition.comment.end.stata"}},name:"comment.block.stata",patterns:[{comment:"this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks",match:"\\*/\\*"},{include:"#docblockr-comment"},{include:"#comments-block"},{include:"#docstring"}]}]},"comments-double-slash":{patterns:[{begin:"(^//|(?<=\\s)//)(?!/)",captures:{0:{name:"punctuation.definition.comment.stata"}},end:"(?=\\n)",name:"comment.line.double-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},"comments-star":{patterns:[{begin:"^\\s*(\\*)",captures:{0:{name:"punctuation.definition.comment.stata"}},comment:"TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below",end:"(?=\\n)",name:"comment.line.star.stata",patterns:[{include:"#docblockr-comment"},{begin:"///",end:"\\n",name:"comment.line-continuation.stata"},{include:"#comments"}]}]},"comments-triple-slash":{patterns:[{begin:"(^///|(?<=\\s)///)",captures:{0:{name:"punctuation.definition.comment.stata"}},end:"(?=\\n)",name:"comment.line.triple-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},constants:{patterns:[{include:"#factorvariables"},{match:"\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])",name:"constant.numeric.float.stata"},{match:"(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))",name:"constant.numeric.float.stata"},{match:"\\b(?i:(\\d+e[\\-\\+]?\\d+))",name:"constant.numeric.float.stata"},{match:"\\b(\\d+)\\b",name:"constant.numeric.integer.decimal.stata"},{match:"(?<![\\w])(\\.(?![\\./]))(?![\\w])",name:"constant.language.missing.stata"},{match:"\\b_all\\b",name:"constant.language.allvars.stata"}]},"docblockr-comment":{patterns:[{captures:{1:{name:"invalid.illegal.name.stata"}},match:"(?<!\\w)(@(error|ERROR|Error))\\b"},{captures:{1:{name:"keyword.docblockr.stata"}},match:"(?<!\\w)(@\\w+)\\b"}]},docstring:{patterns:[{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"},{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"}]},factorvariables:{patterns:[{match:"\\b(i|c|o)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",name:"constant.language.factorvars.stata"},{captures:{0:{name:"constant.language.factorvars.stata"},3:{patterns:[{include:"#constants"}]}},match:"\\b(i?b)((\\d+)|n)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{0:{name:"constant.language.factorvars.stata"},2:{name:"keyword.operator.parentheses.stata"},3:{patterns:[{include:"#constants"},{include:"#operators"}]},4:{name:"keyword.operator.parentheses.stata"}},match:"\\b(i?b)(\\()(#\\d+|first|last|freq)(\\))\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{0:{name:"constant.language.factorvars.stata"},2:{patterns:[{include:"#constants"}]}},match:"\\b(i?o?)(\\d+)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"},{captures:{1:{name:"constant.language.factorvars.stata"},2:{name:"keyword.operator.parentheses.stata"},3:{patterns:[{include:"$self"}]},4:{name:"keyword.operator.parentheses.stata"},5:{name:"constant.language.factorvars.stata"}},match:"\\b(i?o?)(\\()(.*?)(\\))(\\.)(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])"}]},functions:{patterns:[{begin:"\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\w&&[^0-9]]\\w{0,31}))(\\()",beginCaptures:{2:{name:"support.function.builtin.stata"},3:{name:"support.function.custom.stata"},4:{name:"punctuation.definition.parameters.begin.stata"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.stata"}},patterns:[{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{begin:"\\(",beginCaptures:{0:{name:"keyword.operator.parentheses.stata"}},end:"\\)",endCaptures:{0:{name:"keyword.operator.parentheses.stata"}},patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"}]},{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"}]}]},"macro-commands":{patterns:[{begin:"\\b(loc(al|a)?)\\s+([\\w'`\\$\\(\\)\\{\\}]+)\\s*(?=:|=)",beginCaptures:{1:{name:"keyword.macro.stata"},3:{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]}},end:"\\n",patterns:[{begin:"=",beginCaptures:{0:{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"$self"}]},{begin:":",beginCaptures:{0:{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"#macro-extended-functions"}]}]},{begin:"\\b(gl(obal|oba|ob|o)?)\\s+(?=[\\w`\\$])",beginCaptures:{1:{name:"keyword.macro.stata"}},end:'(\\})|(?=\\"|\\s|\\n|/|,|=)',patterns:[{include:"#reserved-names"},{match:"[\\w&&[^0-9_]]\\w{0,31}",name:"entity.name.type.class.stata"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(loc(al|a)?)\\s+(\\+\\+|\\-\\-)?(?=[\\w`\\$])",beginCaptures:{1:{name:"keyword.macro.stata"},3:{name:"keyword.operator.arithmetic.stata"}},end:'(?=\\"|\\s|\\n|/|,|=)',patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(tempvar|tempname|tempfile)\\s*(?=\\s)",beginCaptures:{1:{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(ma(cro|cr|c)?)\\s+(drop|l(ist|is|i)?)\\s*(?=\\s)",beginCaptures:{0:{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\*",name:"keyword.operator.arithmetic.stata"},{include:"#constants"},{include:"#macro-global"},{include:"#macro-local"},{include:"#comments"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-extended-functions":{patterns:[{match:"\\b(properties)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\s+l(abel|abe|ab|a)?|data\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(permname)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(all\\s+(globals|scalars|matrices)|((numeric|string)\\s+scalars))\\b",name:"keyword.macro.extendedfcn.stata"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"keyword.macro.extendedfcn.stata"},3:{name:"entity.name.type.class.stata"}},match:"\\b(list)\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\s+(\\w{1,32})"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"entity.name.type.class.stata"},3:{name:"keyword.operator.list.stata"},4:{name:"entity.name.type.class.stata"}},match:"\\b(list)\\s+(\\w{1,32})\\s+(\\||&|\\-|===|==|in)\\s+(\\w{1,32})"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{name:"punctuation.definition.string.begin.stata"},3:{name:"string.quoted.double.stata"},4:{name:"punctuation.definition.string.end.stata"},5:{name:"keyword.macro.extendedfcn.stata"},6:{name:"entity.name.type.class.stata"}},match:'\\b(list\\s+posof)\\s+(")(\\w+)(")\\s+(in)\\s+(\\w{1,32})'},{match:"\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(tsnorm)\\b",name:"keyword.macro.extendedfcn.stata"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},7:{patterns:[{include:"#macro-local"},{include:"#macro-global"}]}},match:"\\b((copy|(ud|u)?strlen)\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+([^']+)"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"}},match:"\\b(word\\s+count)"},{captures:{1:{name:"keyword.macro.extendedfcn.stata"},2:{patterns:[{include:"#macro-local"},{include:"#constants"}]},3:{name:"keyword.macro.extendedfcn.stata"}},match:"(word|piece)\\s+([\\s`'\\w]+)\\s+(of)"},{begin:"\\b(subinstr\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+(\\w{1,32})",beginCaptures:{1:{name:"keyword.macro.extendedfcn.stata"},5:{name:"entity.name.type.class.stata"}},end:"(?=//|\\n)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{name:"keyword.macro.extendedfcn.stata"},4:{name:"entity.name.type.class.stata"},5:{name:"punctuation.definition.parameters.end.stata"}},match:"(count|coun|cou|co|c)(\\()(local|loca|loc|global|globa|glob|glo|gl)\\s+(\\w{1,32})(\\))"}]},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"$self"}]},"macro-global":{patterns:[{begin:"(\\$)(\\{)",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=})",name:"comment.line.stata"},{match:"\\w{1,32}",name:"entity.name.type.class.stata"}]},{begin:"\\$",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"(?!\\w)",endCaptures:{1:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-global-escaped":{patterns:[{begin:"(\\\\\\$)(\\\\\\{)?",beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:'(\\\\\\})|(?=\\"|\\s|\\n|/|,)',endCaptures:{1:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local":{patterns:[{begin:"(`)(=)",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"keyword.operator.comparison.stata"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"$self"}]},{begin:"(`)(:)",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"keyword.operator.comparison.stata"}},contentName:"meta.macro-extended-function.stata",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-extended-functions"},{include:"#constants"},{include:"#string-compound"},{include:"#string-regular"}]},{begin:"(`)(macval)(\\()",beginCaptures:{1:{name:"punctuation.definition.string.begin.stata"},2:{name:"support.function.builtin.stata"},3:{name:"punctuation.definition.parameters.begin.stata"}},contentName:"meta.macro-extended-function.stata",end:"(\\))(')",endCaptures:{1:{name:"punctuation.definition.parameters.begin.stata"},2:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},{begin:'`(?!")',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{match:"\\+\\+|\\-\\-",name:"keyword.operator.arithmetic.stata"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=')",name:"comment.line.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local-escaped":{patterns:[{begin:'\\\\`(?!")',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},comment:"appropriately color macros that have embedded escaped `,', and $ characters for lazy evaluation",end:"\\\\'|'",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local-identifiers":{patterns:[{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"\\w{32,}",name:"invalid.illegal.name.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},operators:{patterns:[{comment:"++ and -- must come first to support ligatures",match:"\\+\\+|\\-\\-|\\+|\\-|\\*|\\^",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])/(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])\\\\(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.matrix.addrow.stata"},{match:"\\|\\|",name:"keyword.operator.graphcombine.stata"},{match:"\\&|\\|",name:"keyword.operator.logical.stata"},{match:"(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)",name:"keyword.operator.comparison.stata"},{match:"\\(|\\)",name:"keyword.operator.parentheses.stata"},{match:"(##|#)",name:"keyword.operator.factor-variables.stata"},{match:"%",name:"keyword.operator.format.stata"},{match:":",name:"punctuation.separator.key-value"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:",",name:"punctuation.definition.variable.begin.stata"},{match:";",name:"keyword.operator.delimiter.stata"}]},"reserved-names":{patterns:[{match:"\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\b",name:"invalid.illegal.name.stata"},{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"[0-9][\\w]{31,}",name:"invalid.illegal.name.stata"},{match:"\\w{33,}",name:"invalid.illegal.name.stata"}]},"string-compound":{patterns:[{begin:'`"',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"\"'|(?=\n)",endCaptures:{0:{name:"punctuation.definition.string.end.stata"}},name:"string.quoted.double.compound.stata",patterns:[{comment:'This must come before #string-regular and #string-compound to accurately color `"""\' in strings',match:'"',name:"string.quoted.double.compound.stata"},{comment:"see https://github.com/kylebarron/language-stata/issues/53",match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata"},{include:"#string-regular"},{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},"string-regular":{patterns:[{begin:'(?<!`)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.stata"}},end:"(\")(')?|(?=\n)",endCaptures:{1:{name:"punctuation.definition.string.end.stata"},2:{name:"invalid.illegal.punctuation.stata"}},name:"string.quoted.double.stata",patterns:[{comment:"see https://github.com/kylebarron/language-stata/issues/53",match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},subscripts:{patterns:[{begin:"(?<=[\\w'])(\\[)",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.stata"}},comment:"highlight expressions, like [_n], when using subscripts on a variable",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.parameters.end.stata"}},name:"meta.subscripts.stata",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"},{include:"#operators"},{include:"#constants"},{include:"#functions"}]}]},"unicode-regex-character-class":{patterns:[{match:"\\\\[wWsSdD]|\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"constant.character.escape.backslash.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.stata"},2:{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#unicode-regex-character-class"},{captures:{2:{name:"constant.character.escape.backslash.stata"},4:{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"unicode-regex-functions":{patterns:[{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexm with regular quotes i.e. " ',match:'\\b(ustrregexm)(\\()([^,]+)(,)\\s*(")([^"]+)("(\')?)([,0-9\\s]*)?\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:"color regexm with compound quotes",match:'\\b(ustrregexm)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')([,0-9\\s]*)?\\s*(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{name:"invalid.illegal.punctuation.stata"},9:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},10:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with regular quotes i.e. " ',match:'\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(")([^"]+)("(\')?)\\s*([^\\)]*)(\\))'},{captures:{1:{name:"support.function.builtin.stata"},2:{name:"punctuation.definition.parameters.begin.stata"},3:{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},4:{name:"punctuation.definition.variable.begin.stata"},5:{name:"punctuation.definition.string.begin.stata"},6:{patterns:[{include:"#unicode-regex-internals"}]},7:{name:"punctuation.definition.string.end.stata"},8:{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},9:{name:"punctuation.definition.parameters.end.stata"}},comment:'color regexr with compound quotes i.e. `"text"\' ',match:'\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(`")([^"]+)("\')\\s*([^\\)]*)(\\))'}]},"unicode-regex-internals":{patterns:[{match:"\\\\[bBAZzG]|\\^",name:"keyword.control.anchor.stata"},{comment:"matched when not a global",match:"\\$(?![[\\w&&[^0-9_]][\\w]{0,31}|_[\\w]{1,31}\\{])",name:"keyword.control.anchor.stata"},{match:"\\\\[1-9][0-9]?",name:"keyword.other.back-reference.stata"},{match:"[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.stata"},{match:"\\|",name:"keyword.operator.or.stata"},{begin:"\\((?!\\?\\#|\\?=|\\?!|\\?<=|\\?<!)",end:"\\)",name:"keyword.operator.group.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"\\(\\?\\#",end:"\\)",name:"comment.block.stata"},{comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.stata"},{match:"\\(\\?[iLmsux]+\\)",name:"keyword.other.option-toggle.stata"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"keyword.operator.group.stata"},2:{name:"punctuation.definition.group.assertion.stata"},3:{name:"keyword.assertion.look-ahead.stata"},4:{name:"keyword.assertion.negative-look-ahead.stata"},5:{name:"keyword.assertion.look-behind.stata"},6:{name:"keyword.assertion.negative-look-behind.stata"}},end:"(\\))",endCaptures:{1:{name:"keyword.operator.group.stata"}},name:"meta.group.assertion.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"(\\()(\\?\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\))",beginCaptures:{1:{name:"punctuation.definition.group.stata"},2:{name:"punctuation.definition.group.assertion.conditional.stata"},3:{name:"entity.name.section.back-reference.stata"}},comment:"we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.",end:"(\\))",name:"meta.group.assertion.conditional.stata",patterns:[{include:"#unicode-regex-internals"}]},{include:"#unicode-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]}},o="source.stata",c={displayName:t,fileTypes:e,foldingStartMarker:a,foldingStopMarker:n,name:i,patterns:r,repository:s,scopeName:o};export{c as default,t as displayName,e as fileTypes,a as foldingStartMarker,n as foldingStopMarker,i as name,r as patterns,s as repository,o as scopeName}; diff --git a/lib/dist/grammar/stylus.mjs b/lib/dist/grammar/stylus.mjs new file mode 100644 index 0000000..94f0847 --- /dev/null +++ b/lib/dist/grammar/stylus.mjs @@ -0,0 +1 @@ +var e="Stylus",t=["styl","stylus","css.styl","css.stylus"],n="stylus",a=[{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"}],i={at_rule:{patterns:[{begin:"\\s*((@)(import|require))\\b\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.import.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.import.css",patterns:[{include:"#string"}]},{begin:"\\s*((@)(extend[s]?)\\b)\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.extend.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.extend.css",patterns:[{include:"#selector"}]},{captures:{1:{name:"keyword.control.at-rule.fontface.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)font-face)\\b",name:"meta.at-rule.fontface.stylus"},{captures:{1:{name:"keyword.control.at-rule.css.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)css)\\b",name:"meta.at-rule.css.stylus"},{begin:"\\s*((@)charset)\\b\\s*",beginCaptures:{1:{name:"keyword.control.at-rule.charset.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",name:"meta.at-rule.charset.stylus",patterns:[{include:"#string"}]},{begin:"\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)",beginCaptures:{1:{name:"keyword.control.at-rule.keyframes.stylus"},2:{name:"punctuation.definition.keyword.stylus"},3:{name:"entity.name.function.keyframe.stylus"}},end:"\\s*((?=\\{|$|\\n))",name:"meta.at-rule.keyframes.stylus"},{begin:"(?=(\\b(\\d+%|from\\b|to\\b)))",end:"(?=(\\{|\\n))",name:"meta.at-rule.keyframes.stylus",patterns:[{match:"(\\b(\\d+%|from\\b|to\\b))",name:"entity.other.attribute-name.stylus"}]},{captures:{1:{name:"keyword.control.at-rule.media.stylus"},2:{name:"punctuation.definition.keyword.stylus"}},match:"^\\s*((@)media)\\b",name:"meta.at-rule.media.stylus"},{match:"(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))",name:"support.type.property-name.media-feature.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.media-type.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.media-property.media.css"}]},char_escape:{match:"\\\\(.)",name:"constant.character.escape.stylus"},color:{patterns:[{begin:"\\b(rgb|rgba|hsl|hsla)(\\()",beginCaptures:{1:{name:"support.function.color.css"},2:{name:"punctuation.section.function.css"}},end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.css"}},name:"meta.function.color.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#property_variable"}]},{captures:{1:{name:"punctuation.definition.constant.css"}},match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",name:"constant.other.color.rgb-value.css"},{comment:"http://www.w3.org/TR/CSS21/syndata.html#value-def-color",match:"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",name:"support.constant.color.w3c-standard-color-name.css"},{comment:"http://www.w3.org/TR/css3-color/#svg-color",match:"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",name:"support.constant.color.w3c-extended-color-name.css"}]},comment:{patterns:[{include:"#comment_block"},{include:"#comment_line"}]},comment_block:{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},comment_line:{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.stylus"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.stylus"}},end:"(?=\\n)",name:"comment.line.double-slash.stylus"}]},declaration:{begin:"((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)",end:"(?=\\n)|(;)|(?=\\})|(\\n)",endCaptures:{2:{name:"punctuation.terminator.rule.css"}},name:"meta.property-list.css",patterns:[{match:"(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F])\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]\n|\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",name:"variable.css"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?<=^)[^\\S\\n]+(\\n))"},{captures:{1:{name:"support.type.property-name.css"},2:{name:"punctuation.separator.key-value.css"},3:{name:"variable.section.css"}},match:"\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)",name:"meta.property.counter.css"},{begin:"\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*",beginCaptures:{1:{name:"support.type.property-name.css"},2:{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\}|$)",name:"meta.property.filter.css",patterns:[{include:"#function"},{include:"#property_values"}]},{include:"#property"},{include:"#interpolation"},{include:"$self"}]},font_name:{match:"(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)",name:"support.constant.font-name.css"},function:{begin:"(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.section.function.css"}},patterns:[{begin:"(format|url|local)(\\()",beginCaptures:{1:{name:"support.function.misc.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.css",patterns:[{match:"(?<=\\()[^\\)\\s]*(?=\\))",name:"string.css"},{include:"#string"},{include:"#variable"},{include:"#operator"},{match:"\\s*"}]},{captures:{1:{name:"support.function.misc.counter.css"},2:{name:"punctuation.section.function.css"},3:{name:"variable.section.css"}},match:"(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))",name:"meta.function.misc.counter.css"},{begin:"(counters)(\\()",beginCaptures:{1:{name:"support.function.misc.counters.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.counters.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"variable.section.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(attr)(\\()",beginCaptures:{1:{name:"support.function.misc.attr.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.attr.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.attribute.css"},{match:"(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b",name:"support.type.attr.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(calc)(\\()",beginCaptures:{1:{name:"support.function.misc.calc.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.calc.css",patterns:[{include:"#property_values"}]},{begin:"(cubic-bezier)(\\()",beginCaptures:{1:{name:"support.function.timing.cubic-bezier.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.cubic-bezier.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#interpolation"}]},{begin:"(steps)(\\()",beginCaptures:{1:{name:"support.function.timing.steps.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.steps.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{match:"\\b(start|end)\\b",name:"support.constant.timing.steps.direction.css"},{include:"#interpolation"}]},{begin:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()",beginCaptures:{1:{name:"support.function.gradient.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.gradient.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#color"},{match:"\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b",name:"support.constant.gradient.css"},{include:"#interpolation"}]},{begin:"(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()",beginCaptures:{1:{name:"support.function.filter.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(drop-shadow)(\\()",beginCaptures:{1:{name:"support.function.filter.drop-shadow.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.drop-shadow.css",patterns:[{include:"#numeric"},{include:"#color"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()",beginCaptures:{1:{name:"support.function.transform.css"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.transform.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{match:"(url|local|format|counter|counters|attr|calc)(?=\\()",name:"support.function.misc.css"},{match:"(cubic-bezier|steps)(?=\\()",name:"support.function.timing.css"},{match:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()",name:"support.function.gradient.css"},{match:"(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()",name:"support.function.filter.css"},{match:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()",name:"support.function.transform.css"},{begin:"([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()",beginCaptures:{1:{name:"entity.name.function.stylus"},2:{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.stylus",patterns:[{match:"(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F])\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]\n|\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",name:"variable.argument.stylus"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#interpolation"},{include:"#property_values"}]},{match:"\\(",name:"punctuation.section.function.css"}]},interpolation:{begin:"(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})",beginCaptures:{1:{name:"meta.brace.curly"}},end:"(?:[^\\S\\n]*(\\}))|\\n|$",endCaptures:{1:{name:"meta.brace.curly"}},name:"meta.interpolation.stylus",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#string"},{include:"#operator"}]},language_constants:{match:"\\b(true|false|null)\\b",name:"constant.language.stylus"},language_keywords:{patterns:[{match:"(\\b|\\s)(return|else|for|unless|if|else)\\b",name:"keyword.control.stylus"},{match:"(\\b|\\s)(!important|in|is defined|is a)\\b",name:"keyword.other.stylus"},{match:"\\barguments\\b",name:"variable.language.stylus"}]},numeric:{patterns:[{captures:{1:{name:"keyword.other.unit.css"}},match:"(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?",name:"constant.numeric.css"}]},operator:{patterns:[{match:"((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)",name:"keyword.operator.stylus"},{include:"#char_escape"}]},property:{begin:"(?x:\\G\\s*(?:\n(-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)|\n(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)|\n([a-zA-Z_-][a-zA-Z0-9_-]*)\n)(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))",beginCaptures:{1:{name:"support.type.property-name.css"},2:{name:"support.type.property-name.svg.css"},3:{name:"support.function.mixin.stylus"}},end:"(;)|(?=\\n|\\}|$)",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_value"}]},property_value:{begin:"\\G(?:(:)|(\\s))(\\s*)(?!&)",beginCaptures:{1:{name:"punctuation.separator.key-value.css"},2:{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\})",endCaptures:{1:{name:"punctuation.terminator.rule.css"}},name:"meta.property-value.css",patterns:[{include:"#property_values"},{match:"[^\\n]+?"}]},property_values:{patterns:[{include:"#function"},{include:"#comment"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.css"},{match:"(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.svg.css"},{include:"#font_name"},{include:"#numeric"},{include:"#color"},{include:"#string"},{match:"\\!\\s*important",name:"keyword.other.important.css"},{include:"#operator"},{include:"#stylus_keywords"},{include:"#property_variable"}]},property_variable:{patterns:[{include:"#variable"},{match:"(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.property.stylus"}]},selector:{patterns:[{match:"(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.css"},{match:"(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.svg.css"},{match:"\\s*(\\,)\\s*",name:"meta.selector.stylus"},{match:"\\*",name:"meta.selector.stylus"},{captures:{2:{name:"entity.other.attribute-name.parent-selector-suffix.stylus"}},match:"\\s*(\\&)([a-zA-Z0-9_-]+)\\s*",name:"meta.selector.stylus"},{match:"\\s*(\\&)\\s*",name:"meta.selector.stylus"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(\\.)[a-zA-Z0-9_-]+",name:"entity.other.attribute-name.class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(#)[a-zA-Z][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.id.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b",name:"entity.other.attribute-name.pseudo-element.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b",name:"entity.other.attribute-name.pseudo-class.ui-state.css"},{begin:"((:)not)(\\()",beginCaptures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.section.function.css"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.function.css"}},patterns:[{include:"#selector"}]},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"punctuation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.numeric.css"},5:{name:"punctuation.section.function.css"}},match:"((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))"},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"puncutation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.language.css"},5:{name:"punctuation.section.function.css"}},match:"((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?"},{captures:{1:{name:"entity.other.attribute-name.pseudo-class.css"},2:{name:"puncutation.definition.entity.css"},3:{name:"punctuation.section.function.css"},4:{name:"constant.language.css"},6:{name:"punctuation.section.function.css"}},match:"((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(:)(active|hover|link|visited|focus)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"}},match:"(::)(shadow)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{1:{name:"punctuation.definition.entity.css"},2:{name:"entity.other.attribute-name.attribute.css"},3:{name:"punctuation.separator.operator.css"},4:{name:"string.unquoted.attribute-value.css"},5:{name:"string.quoted.double.attribute-value.css"},6:{name:"punctuation.definition.string.begin.css"},7:{name:"punctuation.definition.string.end.css"},8:{name:"punctuation.definition.entity.css"}},match:"(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])",name:"meta.attribute-selector.css"},{include:"#interpolation"},{include:"#variable"}]},string:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.css"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.css"}},name:"string.quoted.double.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.css"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.css"}},name:"string.quoted.single.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]}]},variable:{match:"(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.stylus"},variable_declaration:{begin:"^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)",beginCaptures:{1:{name:"variable.stylus"},2:{name:"keyword.operator.stylus"}},end:"(\\n)|(;)|(?=\\})",endCaptures:{2:{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_values"}]}},r="source.stylus",s={displayName:e,fileTypes:t,name:n,patterns:a,repository:i,scopeName:r};export{s as default,e as displayName,t as fileTypes,n as name,a as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/svelte.mjs b/lib/dist/grammar/svelte.mjs new file mode 100644 index 0000000..2e402aa --- /dev/null +++ b/lib/dist/grammar/svelte.mjs @@ -0,0 +1 @@ +var e="Svelte",t=["svelte"],n={"L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.js",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.js"}]}]},"L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.ts",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.ts"}]}]},"L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.coffee",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.coffee"}]}]},"L:(source.ts, source.js, source.coffee)":{patterns:[{match:"(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)",name:"punctuation.definition.variable.svelte"},{match:"(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)",name:"punctuation.definition.variable.svelte"}]},"L:meta.script.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.js",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.js"}]}]},"L:meta.style.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css"}]}]},"L:meta.style.svelte meta.lang.css - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css"}]}]},"L:meta.style.svelte meta.lang.less - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css.less",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css.less"}]}]},"L:meta.style.svelte meta.lang.postcss - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css.postcss",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css.postcss"}]}]},"L:meta.style.svelte meta.lang.sass - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.sass",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.sass"}]}]},"L:meta.style.svelte meta.lang.scss - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.css.scss",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.css.scss"}]}]},"L:meta.style.svelte meta.lang.stylus - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"source.stylus",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"source.stylus"}]}]},"L:meta.template.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)\\s",end:"(?=</template)",patterns:[{include:"#scope"}]}]},"L:meta.template.svelte meta.lang.pug - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",contentName:"text.pug",end:"(?=</)",name:"meta.embedded.block.svelte",patterns:[{include:"text.pug"}]}]}},a="svelte",s=[{include:"#scope"}],i={attributes:{patterns:[{include:"#attributes-directives"},{include:"#attributes-keyvalue"},{include:"#attributes-interpolated"}]},"attributes-directives":{begin:"(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",beginCaptures:{1:{patterns:[{include:"#attributes-directives-keywords"}]},2:{name:"punctuation.definition.keyword.svelte"},3:{patterns:[{include:"#attributes-directives-types-assigned"}]},4:{patterns:[{include:"#attributes-directives-types"}]},5:{patterns:[{match:"\\w+",name:"support.function.svelte"},{match:"\\|",name:"punctuation.separator.svelte"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.directive.$1.svelte",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.svelte"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{include:"#attributes-value"}]}]},"attributes-directives-keywords":{patterns:[{match:"on|use|bind",name:"keyword.control.svelte"},{match:"transition|in|out|animate",name:"keyword.other.animation.svelte"},{match:"let",name:"storage.type.svelte"},{match:"class|style",name:"entity.other.attribute-name.svelte"}]},"attributes-directives-types":{patterns:[{match:"(?<=(on):).*$",name:"entity.name.type.svelte"},{match:"(?<=(bind):).*$",name:"variable.parameter.svelte"},{match:"(?<=(use|transition|in|out|animate):).*$",name:"variable.function.svelte"},{match:"(?<=(let|class|style):).*$",name:"variable.parameter.svelte"}]},"attributes-directives-types-assigned":{patterns:[{match:"(?<=(bind):)this$",name:"variable.language.svelte"},{match:"(?<=(bind):).*$",name:"entity.name.type.svelte"},{match:"(?<=(class):).*$",name:"entity.other.attribute-name.class.svelte"},{match:"(?<=(style):).*$",name:"support.type.property-name.svelte"},{include:"#attributes-directives-types"}]},"attributes-generics":{begin:"(generics)(=)([\"'])",beginCaptures:{1:{name:"entity.other.attribute-name.svelte"},2:{name:"punctuation.separator.key-value.svelte"},3:{name:"punctuation.definition.string.begin.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.svelte"}},patterns:[{include:"#type-parameters"}]},"attributes-interpolated":{begin:"(?<!:|=)\\s*({)",captures:{1:{name:"entity.other.attribute-name.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"(\\})",patterns:[{include:"source.ts"}]},"attributes-keyvalue":{begin:"((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",beginCaptures:{0:{patterns:[{match:"--.*",name:"support.type.property-name.svelte"},{match:".*",name:"entity.other.attribute-name.svelte"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.svelte",patterns:[{begin:"=",beginCaptures:{0:{name:"punctuation.separator.key-value.svelte"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{include:"#attributes-value"}]}]},"attributes-value":{patterns:[{include:"#interpolation"},{captures:{1:{name:"punctuation.definition.string.begin.svelte"},2:{name:"constant.numeric.decimal.svelte"},3:{name:"punctuation.definition.string.end.svelte"},4:{name:"constant.numeric.decimal.svelte"}},match:"(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))"},{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.svelte",patterns:[{include:"#interpolation"}]},{begin:"(['\"])",beginCaptures:{0:{name:"punctuation.definition.string.begin.svelte"}},end:"\\1",endCaptures:{0:{name:"punctuation.definition.string.end.svelte"}},name:"string.quoted.svelte",patterns:[{include:"#interpolation"}]}]},comments:{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.svelte"}},end:"--\x3e",name:"comment.block.svelte",patterns:[{begin:"(@)(component)",beginCaptures:{1:{name:"punctuation.definition.keyword.svelte"},2:{name:"storage.type.class.component.svelte keyword.declaration.class.component.svelte"}},contentName:"comment.block.documentation.svelte",end:"(?=--\x3e)",patterns:[{captures:{0:{patterns:[{include:"text.html.markdown"}]}},match:".*?(?=--\x3e)"},{include:"text.html.markdown"}]},{match:"\\G-?>|\x3c!--(?!>)|<!-(?=--\x3e)|--!>",name:"invalid.illegal.characters-not-allowed-here.svelte"}]},destructuring:{patterns:[{begin:"(?={)",end:"(?<=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#object-binding-pattern"}]},{begin:"(?=\\[)",end:"(?<=\\])",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#array-binding-pattern"}]}]},"destructuring-const":{patterns:[{begin:"(?={)",end:"(?<=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#object-binding-pattern-const"}]},{begin:"(?=\\[)",end:"(?<=\\])",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#array-binding-pattern-const"}]}]},interpolation:{patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.svelte"}},patterns:[{begin:"\\G\\s*(?={)",end:"(?<=})",patterns:[{include:"source.ts#object-literal"}]},{include:"source.ts"}]}]},scope:{patterns:[{include:"#comments"},{include:"#special-tags"},{include:"#tags"},{include:"#interpolation"},{begin:"(?<=>|})",end:"(?=<|{)",name:"text.svelte"}]},"special-tags":{patterns:[{include:"#special-tags-void"},{include:"#special-tags-block-begin"},{include:"#special-tags-block-end"}]},"special-tags-block-begin":{begin:"({)\\s*(#([a-z]*))",beginCaptures:{1:{name:"punctuation.definition.block.begin.svelte"},2:{patterns:[{include:"#special-tags-keywords"}]}},end:"(})",endCaptures:{0:{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte meta.special.start.svelte",patterns:[{include:"#special-tags-modes"}]},"special-tags-block-end":{begin:"({)\\s*(/([a-z]*))",beginCaptures:{1:{name:"punctuation.definition.block.begin.svelte"},2:{patterns:[{include:"#special-tags-keywords"}]}},end:"(})",endCaptures:{1:{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte meta.special.end.svelte"},"special-tags-keywords":{captures:{1:{name:"punctuation.definition.keyword.svelte"},2:{patterns:[{match:"if|else\\s+if|else",name:"keyword.control.conditional.svelte"},{match:"each|key",name:"keyword.control.svelte"},{match:"await|then|catch",name:"keyword.control.flow.svelte"},{match:"snippet",name:"keyword.control.svelte"},{match:"html",name:"keyword.other.svelte"},{match:"render",name:"keyword.other.svelte"},{match:"debug",name:"keyword.other.debugger.svelte"},{match:"const",name:"storage.type.svelte"}]}},match:"([#@/:])(else\\s+if|[a-z]*)"},"special-tags-modes":{patterns:[{begin:"(?<=(if|key|then|catch|snippet|html|render).*?)\\G",end:"(?=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},{begin:"(?<=const.*?)\\G",end:"(?=})",patterns:[{include:"#destructuring-const"},{begin:"\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",beginCaptures:{1:{name:"variable.other.constant.svelte"}},end:"(?=\\=)"},{begin:"(?=\\=)",end:"(?=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}]},{begin:"(?<=each.*?)\\G",end:"(?=})",patterns:[{begin:"\\G\\s*?(?=\\S)",contentName:"meta.embedded.expression.svelte source.ts",end:"(?=(?:^\\s*|\\s+)(as))",patterns:[{include:"source.ts"}]},{begin:"(as)",beginCaptures:{1:{name:"keyword.control.as.svelte"}},end:"(?=})",patterns:[{include:"#destructuring"},{begin:"\\(",captures:{0:{name:"meta.brace.round.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",end:"\\)|(?=})",patterns:[{include:"source.ts"}]},{captures:{1:{name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}},match:"(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)"},{match:",",name:"punctuation.separator.svelte"}]}]},{begin:"(?<=await.*?)\\G",end:"(?=})",patterns:[{begin:"\\G\\s*?(?=\\S)",contentName:"meta.embedded.expression.svelte source.ts",end:"\\s+(then)|(?=})",endCaptures:{1:{name:"keyword.control.flow.svelte"}},patterns:[{include:"source.ts"}]},{begin:"(?<=then\\b)",contentName:"meta.embedded.expression.svelte source.ts",end:"(?=})",patterns:[{include:"source.ts"}]}]},{begin:"(?<=debug.*?)\\G",end:"(?=})",patterns:[{captures:{0:{name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{match:",",name:"punctuation.separator.svelte"}]}]},"special-tags-void":{begin:"({)\\s*((?:[@:])(else\\s+if|[a-z]*))",beginCaptures:{1:{name:"punctuation.definition.block.begin.svelte"},2:{patterns:[{include:"#special-tags-keywords"}]}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte",patterns:[{include:"#special-tags-modes"}]},tags:{patterns:[{include:"#tags-lang"},{include:"#tags-void"},{include:"#tags-general-end"},{include:"#tags-general-start"}]},"tags-end-node":{captures:{1:{name:"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},2:{name:"meta.tag.end.svelte",patterns:[{include:"#tags-name"}]},3:{name:"meta.tag.end.svelte punctuation.definition.tag.end.svelte"},4:{name:"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},match:"(</)(.*?)\\s*(>)|(/>)"},"tags-general-end":{begin:"(</)([^/\\s>]*)",beginCaptures:{1:{name:"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},2:{name:"meta.tag.end.svelte",patterns:[{include:"#tags-name"}]}},end:"(>)",endCaptures:{1:{name:"meta.tag.end.svelte punctuation.definition.tag.end.svelte"}},name:"meta.scope.tag.$2.svelte"},"tags-general-start":{begin:"(<)([^/\\s>/]*)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"(/?>)",endCaptures:{1:{name:"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},name:"meta.scope.tag.$2.svelte",patterns:[{include:"#tags-start-attributes"}]},"tags-lang":{begin:"<(script|style|template)",beginCaptures:{0:{patterns:[{include:"#tags-start-node"}]}},end:"</\\1\\s*>|/>",endCaptures:{0:{patterns:[{include:"#tags-end-node"}]}},name:"meta.$1.svelte",patterns:[{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)",end:"(?=</|/>)",name:"meta.lang.$3.svelte",patterns:[{include:"#tags-lang-start-attributes"}]},{include:"#tags-lang-start-attributes"}]},"tags-lang-start-attributes":{begin:"\\G",end:"(?=/>)|>",endCaptures:{0:{name:"punctuation.definition.tag.end.svelte"}},name:"meta.tag.start.svelte",patterns:[{include:"#attributes-generics"},{include:"#attributes"}]},"tags-name":{patterns:[{captures:{1:{name:"keyword.control.svelte"},2:{name:"punctuation.definition.keyword.svelte"},3:{name:"entity.name.tag.svelte"}},match:"(svelte)(:)([a-z][\\w0-9:-]*)"},{match:"slot",name:"keyword.control.svelte"},{match:"[A-Z][a-zA-Z0-9_]*",name:"support.class.component.svelte"},{match:"[a-z][\\w0-9:]*-[\\w0-9:-]*",name:"meta.tag.custom.svelte entity.name.tag.svelte"},{match:"[a-z][\\w0-9:-]*",name:"entity.name.tag.svelte"}]},"tags-start-attributes":{begin:"\\G",end:"(?=/?>)",name:"meta.tag.start.svelte",patterns:[{include:"#attributes"}]},"tags-start-node":{captures:{1:{name:"punctuation.definition.tag.begin.svelte"},2:{patterns:[{include:"#tags-name"}]}},match:"(<)([^/\\s>/]*)",name:"meta.tag.start.svelte"},"tags-void":{begin:"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.svelte"},2:{name:"entity.name.tag.svelte"}},end:"/?>",endCaptures:{0:{name:"punctuation.definition.tag.begin.svelte"}},name:"meta.tag.void.svelte",patterns:[{include:"#attributes"}]},"type-parameters":{name:"meta.type.parameters.ts",patterns:[{include:"source.ts#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]}},r="source.svelte",c={displayName:e,fileTypes:t,injections:n,name:a,patterns:s,repository:i,scopeName:r};export{c as default,e as displayName,t as fileTypes,n as injections,a as name,s as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/swift.mjs b/lib/dist/grammar/swift.mjs new file mode 100644 index 0000000..75d8c53 --- /dev/null +++ b/lib/dist/grammar/swift.mjs @@ -0,0 +1 @@ +var e="Swift",n="swift",t=[{include:"#root"}],i={"async-throws":{captures:{1:{name:"invalid.illegal.await-must-precede-throws.swift"},2:{name:"storage.modifier.exception.swift"},3:{name:"storage.modifier.async.swift"}},match:"\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b"},attributes:{patterns:[{begin:"((@)available)(\\()",beginCaptures:{1:{name:"storage.modifier.attribute.swift"},2:{name:"punctuation.definition.attribute.swift"},3:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.attribute.available.swift",patterns:[{captures:{1:{name:"keyword.other.platform.os.swift"},2:{name:"constant.numeric.swift"}},match:"\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?"},{begin:"\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*",beginCaptures:{1:{name:"keyword.other.swift"},2:{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{match:"\\b[0-9]+(?:\\.[0-9]+)*\\b",name:"constant.numeric.swift"}]},{begin:'\\b(message|renamed)\\s*(:)\\s*(?=")',beginCaptures:{1:{name:"keyword.other.swift"},2:{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{include:"#literals"}]},{captures:{1:{name:"keyword.other.platform.all.swift"},2:{name:"keyword.other.swift"},3:{name:"invalid.illegal.character-not-allowed-here.swift"}},match:"(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])"}]},{begin:"((@)objc)(\\()",beginCaptures:{1:{name:"storage.modifier.attribute.swift"},2:{name:"punctuation.definition.attribute.swift"},3:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.attribute.objc.swift",patterns:[{captures:{1:{name:"invalid.illegal.missing-colon-after-selector-piece.swift"}},match:"\\w*(?::(?:\\w*:)*(\\w*))?",name:"entity.name.function.swift"}]},{begin:"(@)(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)",beginCaptures:{0:{name:"storage.modifier.attribute.swift"},1:{name:"punctuation.definition.attribute.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},comment:"any other attribute",end:"(?!\\G\\()",name:"meta.attribute.swift",patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.arguments.attribute.swift",patterns:[{include:"#expressions"}]}]}]},"builtin-functions":{patterns:[{comment:"Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses",match:"(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b",name:"support.function.swift"},{comment:"Member functions in the standard library in Swift 3",match:"(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()",name:"support.function.swift"},{comment:"Member functions in the standard library in Swift 2 only",match:"(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()",name:"support.function.swift"}]},"builtin-global-functions":{patterns:[{begin:"\\b(type)(\\()\\s*(of)(:)",beginCaptures:{1:{name:"support.function.dynamic-type.swift"},2:{name:"punctuation.definition.arguments.begin.swift"},3:{name:"support.variable.parameter.swift"},4:{name:"punctuation.separator.argument-label.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},patterns:[{include:"#expressions"}]},{comment:"Global functions available in Swift 3 which may be used with trailing closures and no parentheses",match:"\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b",name:"support.function.swift"},{comment:"Global functions available in Swift 3",match:"\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()",name:"support.function.swift"},{comment:"Global functions available in Swift 2 only",match:"\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()",name:"support.function.swift"}]},"builtin-properties":{patterns:[{comment:"The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29",match:"(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)",name:"support.variable.swift"},{comment:"Properties in the standard library in Swift 3",match:"(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b",name:"support.variable.swift"},{comment:"Properties in the standard library in Swift 2 only",match:"(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b",name:"support.variable.swift"},{comment:"Enum cases in the standard library - note that there is some overlap between these and the properties",match:"(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b",name:"support.variable.swift"}]},"builtin-types":{comment:"Types provided in the standard library",patterns:[{include:"#builtin-types-builtin-class-type"},{include:"#builtin-types-builtin-enum-type"},{include:"#builtin-types-builtin-protocol-type"},{include:"#builtin-types-builtin-struct-type"},{include:"#builtin-types-builtin-typealias"},{match:"\\bAny\\b",name:"support.type.any.swift"}]},"builtin-types-builtin-class-type":{comment:"Builtin class types",match:"\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b",name:"support.class.swift"},"builtin-types-builtin-enum-type":{patterns:[{comment:"CommandLine is an enum, but it acts like a constant",match:"\\b(?:CommandLine|Process(?=\\.))\\b",name:"support.constant.swift"},{comment:"The return type of a function that never returns",match:"\\bNever\\b",name:"support.constant.never.swift"},{comment:"Enum types in the standard library in Swift 3",match:"\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b",name:"support.type.swift"},{comment:"Enum types in the standard library in Swift 2 only",match:"\\b(?:MirrorDisposition|QuickLookObject)\\b",name:"support.type.swift"}]},"builtin-types-builtin-protocol-type":{patterns:[{comment:"Protocols in the standard library in Swift 3",match:"\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b",name:"support.type.swift"},{comment:"Protocols in the standard library in Swift 2 only",match:"\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b",name:"support.type.swift"}]},"builtin-types-builtin-struct-type":{patterns:[{comment:"Structs in the standard library in Swift 3",match:"\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b",name:"support.type.swift"},{comment:"Structs in the standard library in Swift 2 only",match:"\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b",name:"support.type.swift"}]},"builtin-types-builtin-typealias":{patterns:[{comment:"Typealiases in the standard library in Swift 3",match:"\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b",name:"support.type.swift"},{comment:"Typealiases in the standard library in Swift 2 only",match:"\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b",name:"support.type.swift"}]},"code-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.scope.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.scope.end.swift"}},patterns:[{include:"$self"}]},comments:{patterns:[{captures:{1:{name:"punctuation.definition.comment.swift"}},match:"\\A^(#!).*$\\n?",name:"comment.line.number-sign.swift"},{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.documentation.swift",patterns:[{include:"#comments-nested"}]},{begin:"/\\*:",beginCaptures:{0:{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.documentation.playground.swift",patterns:[{include:"#comments-nested"}]},{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.swift",patterns:[{include:"#comments-nested"}]},{match:"\\*/",name:"invalid.illegal.unexpected-end-of-block-comment.swift"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.swift"}},end:"(?!\\G)",patterns:[{begin:"///",beginCaptures:{0:{name:"punctuation.definition.comment.swift"}},end:"$",name:"comment.line.triple-slash.documentation.swift"},{begin:"//:",beginCaptures:{0:{name:"punctuation.definition.comment.swift"}},end:"$",name:"comment.line.double-slash.documentation.swift"},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.swift"}},end:"$",name:"comment.line.double-slash.swift"}]}]},"comments-nested":{begin:"/\\*",end:"\\*/",patterns:[{include:"#comments-nested"}]},"compiler-control":{patterns:[{begin:"^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)",beginCaptures:{0:{name:"meta.preprocessor.conditional.swift"},1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.conditional.swift"},3:{name:"constant.language.boolean.swift"}},contentName:"comment.block.preprocessor.swift",end:"(?=^\\s*(#(elseif|else|endif)\\b))"},{begin:"^\\s*(#)(if|elseif)\\s+",captures:{1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.conditional.swift"}},end:"(?=\\s*(?://|/\\*))|$",name:"meta.preprocessor.conditional.swift",patterns:[{match:"(&&|\\|\\|)",name:"keyword.operator.logical.swift"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.swift"},{captures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"},3:{name:"support.constant.platform.architecture.swift"},4:{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))"},{captures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"},3:{name:"support.constant.platform.os.swift"},4:{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|visionOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))"},{captures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"},3:{name:"entity.name.type.module.swift"},4:{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))"},{begin:"\\b(targetEnvironment)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))|$",endCaptures:{1:{name:"punctuation.definition.parameters.end.swift"}},patterns:[{match:"\\b(simulator|UIKitForMac)\\b",name:"support.constant.platform.environment.swift"}]},{begin:"\\b(swift|compiler)\\s*(\\()",beginCaptures:{1:{name:"keyword.other.condition.swift"},2:{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))|$",endCaptures:{1:{name:"punctuation.definition.parameters.end.swift"}},patterns:[{match:">=|<",name:"keyword.operator.comparison.swift"},{match:"\\b[0-9]+(?:\\.[0-9]+)*\\b",name:"constant.numeric.swift"}]}]},{captures:{1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.conditional.swift"},3:{patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},match:"^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)",name:"meta.preprocessor.conditional.swift"},{captures:{1:{name:"punctuation.definition.preprocessor.swift"},2:{name:"keyword.control.import.preprocessor.sourcelocation.swift"},4:{name:"punctuation.definition.parameters.begin.swift"},5:{patterns:[{begin:'(file)\\s*(:)\\s*(?=")',beginCaptures:{1:{name:"support.variable.parameter.swift"},2:{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{include:"#literals"}]},{captures:{1:{name:"support.variable.parameter.swift"},2:{name:"punctuation.separator.key-value.swift"},3:{name:"constant.numeric.integer.swift"}},match:"(line)\\s*(:)\\s*([0-9]+)"},{match:",",name:"punctuation.separator.parameters.swift"},{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]},6:{name:"punctuation.definition.parameters.begin.swift"},7:{patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},match:"^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)",name:"meta.preprocessor.sourcelocation.swift"}]},conditionals:{patterns:[{begin:"(?<!\\.)\\b(if|guard|switch|for)\\b",beginCaptures:{1:{patterns:[{include:"#keywords"}]}},end:"(?=\\{)",patterns:[{include:"#expressions-without-trailing-closures"}]},{begin:"(?<!\\.)\\b(while)\\b",beginCaptures:{1:{patterns:[{include:"#keywords"}]}},comment:"while can be the end of a repeat-while statement so doesn't necessarily have braces after it",end:"(?=\\{)|$",patterns:[{include:"#expressions-without-trailing-closures"}]}]},declarations:{patterns:[{include:"#declarations-function"},{include:"#declarations-function-initializer"},{include:"#declarations-function-subscript"},{include:"#declarations-typed-variable-declaration"},{include:"#declarations-import"},{include:"#declarations-operator"},{include:"#declarations-precedencegroup"},{include:"#declarations-protocol"},{include:"#declarations-type"},{include:"#declarations-extension"},{include:"#declarations-typealias"},{include:"#declarations-macro"}]},"declarations-available-types":{patterns:[{include:"#comments"},{include:"#builtin-types"},{include:"#attributes"},{match:"\\basync\\b",name:"storage.modifier.async.swift"},{match:"\\b(?:throws|rethrows)\\b",name:"storage.modifier.exception.swift"},{match:"\\bsome\\b",name:"keyword.other.operator.type.opaque.swift"},{match:"\\bany\\b",name:"keyword.other.operator.type.existential.swift"},{match:"\\b(?:repeat|each)\\b",name:"keyword.control.loop.swift"},{match:"\\b(?:inout|isolated|borrowing|consuming)\\b",name:"storage.modifier.swift"},{match:"\\bSelf\\b",name:"variable.language.swift"},{captures:{1:{name:"keyword.operator.type.function.swift"}},match:"(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])"},{captures:{1:{name:"keyword.operator.type.composition.swift"}},comment:"Swift 3: A & B",match:"(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])"},{match:"[?!]",name:"keyword.operator.type.optional.swift"},{match:"\\.\\.\\.",name:"keyword.operator.function.variadic-parameter.swift"},{comment:"Swift 2: protocol<A, B>",match:"\\bprotocol\\b",name:"keyword.other.type.composition.swift"},{match:"(?<=\\.)(?:Protocol|Type)\\b",name:"keyword.other.type.metatype.swift"},{include:"#declarations-available-types-tuple-type"},{include:"#declarations-available-types-collection-type"},{include:"#declarations-generic-argument-clause"}]},"declarations-available-types-collection-type":{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.collection-type.begin.swift"}},comment:"array and dictionary types [Value] and [Key: Value]",end:"\\]|(?=[>){}])",endCaptures:{0:{name:"punctuation.section.collection-type.end.swift"}},patterns:[{include:"#declarations-available-types"},{begin:":",beginCaptures:{0:{name:"punctuation.separator.key-value.swift"}},end:"(?=\\]|[>){}])",patterns:[{match:":",name:"invalid.illegal.extra-colon-in-dictionary-type.swift"},{include:"#declarations-available-types"}]}]},"declarations-available-types-tuple-type":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tuple-type.begin.swift"}},end:"\\)|(?=[>\\]{}])",endCaptures:{0:{name:"punctuation.section.tuple-type.end.swift"}},patterns:[{include:"#declarations-available-types"}]},"declarations-extension":{begin:"\\b(extension)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.swift",patterns:[{include:"#declarations-available-types"}]},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{comment:"SE-0143: Conditional Conformances",include:"#declarations-generic-where-clause"},{include:"#declarations-inheritance-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"$self"}]}]},"declarations-function":{begin:"(?x)\n\\b\n(func)\n\\s+\n(\n(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n| (?:\n(\n(?<oph>\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n)\n(\n\\g<oph>\n| (?<opc>\n[\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)*\n)\n| ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\n)\n)\n\\s*\n(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)",name:"meta.definition.function.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"declarations-function-initializer":{begin:"(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift",patterns:[{match:"(?<=[?!])[?!]+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},end:"(?<=\\})|$",name:"meta.definition.function.initializer.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"declarations-function-result":{begin:"(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*",beginCaptures:{1:{name:"keyword.operator.function-result.swift"}},end:"(?!\\G)(?=\\{|\\bwhere\\b|;|=)|$",name:"meta.function-result.swift",patterns:[{include:"#declarations-available-types"}]},"declarations-function-subscript":{begin:"(?<!\\.)\\b(subscript)\\s*(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift"}},end:"(?<=\\})|$",name:"meta.definition.function.subscript.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{include:"#declarations-generic-where-clause"},{begin:"(\\{)",beginCaptures:{1:{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"declarations-generic-argument-clause":{begin:"<",beginCaptures:{0:{name:"punctuation.separator.generic-argument-clause.begin.swift"}},end:">|(?=[)\\]{}])",endCaptures:{0:{name:"punctuation.separator.generic-argument-clause.end.swift"}},name:"meta.generic-argument-clause.swift",patterns:[{include:"#declarations-available-types"}]},"declarations-generic-parameter-clause":{begin:"<",beginCaptures:{0:{name:"punctuation.separator.generic-parameter-clause.begin.swift"}},end:">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)",endCaptures:{0:{name:"punctuation.separator.generic-parameter-clause.end.swift"}},name:"meta.generic-parameter-clause.swift",patterns:[{include:"#comments"},{comment:"Swift 2: constraints inside the generic param list",include:"#declarations-generic-where-clause"},{match:"\\beach\\b",name:"keyword.control.loop.swift"},{captures:{1:{name:"variable.language.generic-parameter.swift"}},match:"\\b((?!\\d)\\w[\\w\\d]*)\\b"},{match:",",name:"punctuation.separator.generic-parameters.swift"},{begin:"(:)\\s*",beginCaptures:{1:{name:"punctuation.separator.generic-parameter-constraint.swift"}},end:"(?=[,>]|(?!\\G)\\bwhere\\b)",name:"meta.generic-parameter-constraint.swift",patterns:[{begin:"\\G",end:"(?=[,>]|(?!\\G)\\bwhere\\b)",name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-type-identifier"},{include:"#declarations-type-operators"}]}]}]},"declarations-generic-where-clause":{begin:"\\b(where)\\b\\s*",beginCaptures:{1:{name:"keyword.other.generic-constraint-introducer.swift"}},end:"(?!\\G)$|(?=[>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-where-clause-requirement-list"}]},"declarations-generic-where-clause-requirement-list":{begin:"\\G|,\\s*",end:"(?=[,>{};\\n]|//|/\\*)",patterns:[{include:"#comments"},{include:"#constraint"},{include:"#declarations-available-types"},{begin:"(?<![/=\\-+!*%<>&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])",beginCaptures:{1:{name:"keyword.operator.generic-constraint.same-type.swift"}},end:"(?=\\s*[,>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.same-type-requirement.swift",patterns:[{include:"#declarations-available-types"}]},{begin:"(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])",beginCaptures:{1:{name:"keyword.operator.generic-constraint.conforms-to.swift"}},end:"(?=\\s*[,>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.conformance-requirement.swift",patterns:[{begin:"\\G\\s*",contentName:"entity.other.inherited-class.swift",end:"(?=\\s*[,>{};\\n]|//|/\\*)",patterns:[{include:"#declarations-available-types"}]}]}]},"declarations-import":{begin:"(?<!\\.)\\b(import)\\s+",beginCaptures:{1:{name:"keyword.control.import.swift"}},end:"(;)|$\\n?|(?=//|/\\*)",endCaptures:{1:{name:"punctuation.terminator.statement.swift"}},name:"meta.import.swift",patterns:[{begin:"\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?",beginCaptures:{1:{name:"storage.modifier.swift"}},end:"(?=;|$|//|/\\*)",patterns:[{captures:{1:{name:"punctuation.definition.identifier.swift"},2:{name:"punctuation.definition.identifier.swift"}},match:"(?x)\n(?<=\\G|\\.)\n(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)",name:"entity.name.type.swift"},{match:"(?x)\n(?<=\\G|\\.)\n\\$[0-9]+",name:"entity.name.type.swift"},{captures:{1:{patterns:[{match:"\\.",name:"invalid.illegal.dot-not-allowed-here.swift"}]}},match:"(?x)\n(?<=\\G|\\.)\n(?:\n(\n(?<oph>\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n)\n(\n\\g<oph>\n| (?<opc>\n[\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)*\n)\n| ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\n)\n(?=\\.|;|$|//|/\\*|\\s)",name:"entity.name.type.swift"},{match:"\\.",name:"punctuation.separator.import.swift"},{begin:"(?!\\s*(;|$|//|/\\*))",end:"(?=\\s*(;|$|//|/\\*))",name:"invalid.illegal.character-not-allowed-here.swift"}]}]},"declarations-inheritance-clause":{begin:"(:)(?=\\s*\\{)|(:)\\s*",beginCaptures:{1:{name:"invalid.illegal.empty-inheritance-clause.swift"},2:{name:"punctuation.separator.inheritance-clause.swift"}},end:"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",name:"meta.inheritance-clause.swift",patterns:[{begin:"\\bclass\\b",beginCaptures:{0:{name:"storage.type.class.swift"}},end:"(?=[={}]|(?!\\G)\\bwhere\\b)",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause-more-types"}]},{begin:"\\G",end:"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause-inherited-type"},{include:"#declarations-inheritance-clause-more-types"},{include:"#declarations-type-operators"}]}]},"declarations-inheritance-clause-inherited-type":{begin:"(?=[`\\p{L}_])",end:"(?!\\G)",name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-type-identifier"}]},"declarations-inheritance-clause-more-types":{begin:",\\s*",end:"(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)",name:"meta.inheritance-list.more-types",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause-inherited-type"},{include:"#declarations-inheritance-clause-more-types"},{include:"#declarations-type-operators"}]},"declarations-macro":{begin:"(?x)\n\\b\n(macro)\n\\s+\n((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\n\\s*\n(?=\\(|<|=)",beginCaptures:{1:{name:"storage.type.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"$|(?=;|//|/\\*|\\}|=)",name:"meta.definition.macro.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"}]},"declarations-operator":{begin:"(?x)\n(?:\n\\b(prefix|infix|postfix)\n\\s+\n)?\n\\b\n(operator)\n\\s+\n(\n(\n(?<oph>\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n)\n(\n\\g<oph>\n| \\.\n| (?<opc>\n[\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)*+\n)\n| ( \\. ( \\g<oph> | \\g<opc> | \\. )++ )\n)\n\\s*",beginCaptures:{1:{name:"storage.modifier.swift"},2:{name:"storage.type.function.operator.swift"},3:{name:"entity.name.function.operator.swift"},4:{comment:"workaround for https://github.com/microsoft/vscode-textmate/issues/140#issuecomment-1793610346",name:"entity.name.function.operator.swift",patterns:[{match:"\\.",name:"invalid.illegal.dot-not-allowed-here.swift"}]}},end:"(;)|$\\n?|(?=//|/\\*)",endCaptures:{1:{name:"punctuation.terminator.statement.swift"}},name:"meta.definition.operator.swift",patterns:[{include:"#declarations-operator-swift2"},{include:"#declarations-operator-swift3"},{match:"((?!$|;|//|/\\*)\\S)+",name:"invalid.illegal.character-not-allowed-here.swift"}]},"declarations-operator-swift2":{begin:"\\G(\\{)",beginCaptures:{1:{name:"punctuation.definition.operator.begin.swift"}},end:"(\\})",endCaptures:{1:{name:"punctuation.definition.operator.end.swift"}},patterns:[{include:"#comments"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"keyword.other.operator.associativity.swift"}},match:"\\b(associativity)\\s+(left|right)\\b"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"constant.numeric.integer.swift"}},match:"\\b(precedence)\\s+([0-9]+)\\b"},{captures:{1:{name:"storage.modifier.swift"}},match:"\\b(assignment)\\b"}]},"declarations-operator-swift3":{captures:{2:{name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-types-precedencegroup"}]},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},match:"\\G(:)\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"},"declarations-parameter-clause":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))(?:\\s*(async)\\b)?",endCaptures:{1:{name:"punctuation.definition.parameters.end.swift"},2:{name:"storage.modifier.async.swift"}},name:"meta.parameter-clause.swift",patterns:[{include:"#declarations-parameter-list"}]},"declarations-parameter-list":{patterns:[{captures:{1:{name:"entity.name.function.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"variable.parameter.function.swift"},5:{name:"punctuation.definition.identifier.swift"},6:{name:"punctuation.definition.identifier.swift"}},comment:"External parameter labels are considered part of the function name",match:"((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>))\\s+((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>))(?=\\s*:)"},{captures:{1:{name:"variable.parameter.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},comment:"If no external label is given, the name is both the external label and the internal variable name",match:"(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)))(?=\\s*:)"},{begin:":\\s*(?!\\s)",end:"(?=[,)])",patterns:[{include:"#declarations-available-types"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.swift"},{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.swift"}},comment:"a parameter's default value",end:"(?=[,)])",patterns:[{include:"#expressions"}]}]}]},"declarations-precedencegroup":{begin:"\\b(precedencegroup)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(?=\\{)",beginCaptures:{1:{name:"storage.type.precedencegroup.swift"},2:{name:"entity.name.type.precedencegroup.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)",name:"meta.definition.precedencegroup.swift",patterns:[{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.precedencegroup.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.precedencegroup.end.swift"}},patterns:[{include:"#comments"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"entity.other.inherited-class.swift",patterns:[{include:"#declarations-types-precedencegroup"}]},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},match:"\\b(higherThan|lowerThan)\\s*:\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"keyword.other.operator.associativity.swift"}},match:"\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?"},{captures:{1:{name:"storage.modifier.swift"},2:{name:"constant.language.boolean.swift"}},match:"\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?"}]}]},"declarations-protocol":{begin:"\\b(protocol)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.$1.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.protocol.swift",patterns:[{include:"#comments"},{include:"#declarations-inheritance-clause"},{comment:"SE-0142: Permit where clauses to constrain associated types",include:"#declarations-generic-where-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"#declarations-protocol-protocol-method"},{include:"#declarations-protocol-protocol-initializer"},{include:"#declarations-protocol-associated-type"},{include:"$self"}]}]},"declarations-protocol-associated-type":{begin:"\\b(associatedtype)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"keyword.other.declaration-specifier.swift"},2:{name:"variable.language.associatedtype.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)$|(?=[;}]|$)",name:"meta.definition.associatedtype.swift",patterns:[{include:"#declarations-inheritance-clause"},{comment:"SE-0142: Permit where clauses to constrain associated types",include:"#declarations-generic-where-clause"},{include:"#declarations-typealias-assignment"}]},"declarations-protocol-protocol-initializer":{begin:"(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift",patterns:[{match:"(?<=[?!])[?!]+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},end:"$|(?=;|//|/\\*|\\})",name:"meta.definition.function.initializer.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.swift"}},name:"invalid.illegal.function-body-not-allowed-in-protocol.swift",patterns:[{include:"$self"}]}]},"declarations-protocol-protocol-method":{begin:"(?x)\n\\b\n(func)\n\\s+\n(\n(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n| (?:\n(\n(?<oph>\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n)\n(\n\\g<oph>\n| (?<opc>\n[\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)*\n)\n| ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\n)\n)\n\\s*\n(?=\\(|<)",beginCaptures:{1:{name:"storage.type.function.swift"},2:{name:"entity.name.function.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"$|(?=;|//|/\\*|\\})",name:"meta.definition.function.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{include:"#declarations-parameter-clause"},{include:"#declarations-function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#declarations-generic-where-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.function.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.function.end.swift"}},name:"invalid.illegal.function-body-not-allowed-in-protocol.swift",patterns:[{include:"$self"}]}]},"declarations-type":{patterns:[{begin:"\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\b\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.$1.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{comment:"Swift 3: generic constraints after the generic param list",include:"#declarations-generic-where-clause"},{include:"#declarations-inheritance-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"$self"}]}]},{include:"#declarations-type-enum"}]},"declarations-type-enum":{begin:"\\b(enum)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{1:{name:"storage.type.$1.swift"},2:{name:"entity.name.type.$1.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{include:"#declarations-generic-parameter-clause"},{comment:"Swift 3: generic constraints after the generic param list",include:"#declarations-generic-where-clause"},{include:"#declarations-inheritance-clause"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"#declarations-type-enum-enum-case-clause"},{include:"$self"}]}]},"declarations-type-enum-associated-values":{begin:"\\G\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.swift"}},patterns:[{include:"#comments"},{begin:"(?x)\n(?:(_)|((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q1>))\n\\s+\n(((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q2>))\n\\s*(:)",beginCaptures:{1:{name:"entity.name.function.swift"},2:{name:"invalid.illegal.distinct-labels-not-allowed.swift"},5:{name:"variable.parameter.function.swift"},7:{name:"punctuation.separator.argument-label.swift"}},end:"(?=[,)\\]])",patterns:[{include:"#declarations-available-types"}]},{begin:"(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q>))\\s*(:)",beginCaptures:{1:{name:"entity.name.function.swift"},2:{name:"variable.parameter.function.swift"},4:{name:"punctuation.separator.argument-label.swift"}},end:"(?=[,)\\]])",patterns:[{include:"#declarations-available-types"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#declarations-available-types"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.swift"}]}]},"declarations-type-enum-enum-case":{begin:"(?x)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"variable.other.enummember.swift"}},end:"(?<=\\))|(?![=(])",patterns:[{include:"#comments"},{include:"#declarations-type-enum-associated-values"},{include:"#declarations-type-enum-raw-value-assignment"}]},"declarations-type-enum-enum-case-clause":{begin:"\\b(case)\\b\\s*",beginCaptures:{1:{name:"storage.type.enum.case.swift"}},end:"(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])",patterns:[{include:"#comments"},{include:"#declarations-type-enum-enum-case"},{include:"#declarations-type-enum-more-cases"}]},"declarations-type-enum-more-cases":{begin:",\\s*",end:"(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])",name:"meta.enum-case.more-cases",patterns:[{include:"#comments"},{include:"#declarations-type-enum-enum-case"},{include:"#declarations-type-enum-more-cases"}]},"declarations-type-enum-raw-value-assignment":{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.swift"}},end:"(?!\\G)",patterns:[{include:"#comments"},{include:"#literals"}]},"declarations-type-identifier":{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"meta.type-name.swift",patterns:[{include:"#builtin-types"}]},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},end:"(?!<)",patterns:[{begin:"(?=<)",end:"(?!\\G)",patterns:[{include:"#declarations-generic-argument-clause"}]}]},"declarations-type-operators":{patterns:[{captures:{1:{name:"keyword.operator.type.composition.swift"}},comment:"Swift 3: A & B",match:"(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])"},{captures:{1:{name:"keyword.operator.type.requirement-suppression.swift"}},comment:"SE-0390: Noncopyable structs and enums",match:"(?<![/=\\-+!*%<>&|\\^~.])(~)(?![/=\\-+!*%<>&|\\^~.])"}]},"declarations-typealias":{begin:"\\b(typealias)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{1:{name:"keyword.other.declaration-specifier.swift"},2:{name:"entity.name.type.typealias.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)$|(?=;|//|/\\*|$)",name:"meta.definition.typealias.swift",patterns:[{begin:"\\G(?=<)",end:"(?!\\G)",patterns:[{include:"#declarations-generic-parameter-clause"}]},{include:"#declarations-typealias-assignment"}]},"declarations-typealias-assignment":{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.swift"}},end:"(?!\\G)$|(?=;|//|/\\*|$)",patterns:[{include:"#declarations-available-types"}]},"declarations-typed-variable-declaration":{begin:"(?x)\n\\b(?:(async)\\s+)?(let|var)\\b\\s+\n(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\\s*\n:",beginCaptures:{1:{name:"storage.modifier.async.swift"},2:{name:"keyword.other.declaration-specifier.swift"}},end:"(?=$|[={])",patterns:[{include:"#declarations-available-types"}]},"declarations-types-precedencegroup":{patterns:[{comment:"Precedence groups in the standard library",match:"\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b",name:"support.type.swift"}]},expressions:{comment:"trailing closures need to be parsed before other member references",patterns:[{include:"#expressions-without-trailing-closures-or-member-references"},{include:"#expressions-trailing-closure"},{include:"#member-reference"}]},"expressions-trailing-closure":{patterns:[{captures:{1:{name:"support.function.any-method.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},comment:"foo { body } -- a call with a trailing closure and no argument clause",match:"(#?(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))(?=\\s*\\{)",name:"meta.function-call.trailing-closure-only.swift"},{captures:{1:{name:"support.function.any-method.trailing-closure-label.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.separator.argument-label.swift"}},comment:"foo: { body } -- labeled-trailing-closure (SE-0279)",match:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)(?=\\s*\\{)"}]},"expressions-without-trailing-closures":{patterns:[{include:"#expressions-without-trailing-closures-or-member-references"},{include:"#member-references"}]},"expressions-without-trailing-closures-or-member-references":{patterns:[{include:"#comments"},{include:"#code-block"},{include:"#attributes"},{include:"#expressions-without-trailing-closures-or-member-references-closure-parameter"},{include:"#literals"},{include:"#operators"},{include:"#builtin-types"},{include:"#builtin-functions"},{include:"#builtin-global-functions"},{include:"#builtin-properties"},{include:"#expressions-without-trailing-closures-or-member-references-compound-name"},{include:"#conditionals"},{include:"#keywords"},{include:"#expressions-without-trailing-closures-or-member-references-availability-condition"},{include:"#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression"},{include:"#expressions-without-trailing-closures-or-member-references-macro-expansion"},{include:"#expressions-without-trailing-closures-or-member-references-subscript-expression"},{include:"#expressions-without-trailing-closures-or-member-references-parenthesized-expression"},{match:"\\b_\\b",name:"support.variable.discard-value.swift"}]},"expressions-without-trailing-closures-or-member-references-availability-condition":{begin:"\\B(#(?:un)?available)(\\()",beginCaptures:{1:{name:"support.function.availability-condition.swift"},2:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},patterns:[{captures:{1:{name:"keyword.other.platform.os.swift"},2:{name:"constant.numeric.swift"}},match:"\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))"},{captures:{1:{name:"keyword.other.platform.all.swift"},2:{name:"invalid.illegal.character-not-allowed-here.swift"}},match:"(\\*)\\s*(.*?)(?=[,)])"},{match:"[^\\s,)]+",name:"invalid.illegal.character-not-allowed-here.swift"}]},"expressions-without-trailing-closures-or-member-references-closure-parameter":{match:"\\$[0-9]+",name:"variable.language.closure-parameter.swift"},"expressions-without-trailing-closures-or-member-references-compound-name":{captures:{1:{name:"entity.name.function.compound-name.swift"},2:{name:"punctuation.definition.entity.swift"},3:{name:"punctuation.definition.entity.swift"},4:{patterns:[{captures:{1:{name:"punctuation.definition.entity.swift"},2:{name:"punctuation.definition.entity.swift"}},match:"(?<q>`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>):",name:"entity.name.function.compound-name.swift"}]}},comment:"a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.",match:"(?x)\n((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>))\n\\(\n(\n(\n((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>))\n:\n)+\n)\n\\)"},"expressions-without-trailing-closures-or-member-references-expression-element-list":{patterns:[{include:"#comments"},{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)",beginCaptures:{1:{name:"support.function.any-method.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.separator.argument-label.swift"}},comment:"an element with a label",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]}]},"expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression":{patterns:[{begin:"(#?(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(\\()",beginCaptures:{1:{name:"support.function.any-method.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"},4:{name:"punctuation.definition.arguments.begin.swift"}},comment:"foo(args) -- a call whose callee is a highlightable name",end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.function-call.swift",patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},{begin:"(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.swift"}},comment:"[Int](args) -- a call whose callee is a more complicated expression",end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.function-call.swift",patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]}]},"expressions-without-trailing-closures-or-member-references-macro-expansion":{match:"(#(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",name:"support.function.any-method.swift"},"expressions-without-trailing-closures-or-member-references-parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tuple.begin.swift"}},comment:'correctly matching closure expressions is too hard (depends on trailing "in") so we just tack on some basics to the end of parenthesized-expression',end:"(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)",endCaptures:{1:{name:"punctuation.section.tuple.end.swift"},2:{patterns:[{match:"\\brethrows\\b",name:"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift"},{include:"#async-throws"}]}},patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},"expressions-without-trailing-closures-or-member-references-subscript-expression":{begin:"(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.swift"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},name:"meta.subscript-expression.swift",patterns:[{include:"#expressions-without-trailing-closures-or-member-references-expression-element-list"}]},keywords:{patterns:[{match:"(?<!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b",name:"keyword.control.branch.swift"},{match:"(?<!\\.)\\b(?:continue|break|fallthrough|return)\\b",name:"keyword.control.transfer.swift"},{match:"(?<!\\.)\\b(?:while|for|in|each)\\b",name:"keyword.control.loop.swift"},{match:"\\bany\\b(?=\\s*`?[\\p{L}_])",name:"keyword.other.operator.type.existential.swift"},{captures:{1:{name:"keyword.control.loop.swift"},2:{name:"punctuation.whitespace.trailing.repeat.swift"}},comment:"extra scopes for repeat-while snippet",match:"(?<!\\.)\\b(repeat)\\b(\\s*)"},{match:"(?<!\\.)\\bdefer\\b",name:"keyword.control.defer.swift"},{captures:{1:{name:"invalid.illegal.try-must-precede-await.swift"},2:{name:"keyword.control.await.swift"}},match:"(?<!\\.)\\b(?:(await\\s+try)|(await))\\b"},{match:"(?<!\\.)\\b(?:catch|throw|try)\\b|\\btry[?!]\\B",name:"keyword.control.exception.swift"},{match:"(?<!\\.)\\b(?:throws|rethrows)\\b",name:"storage.modifier.exception.swift"},{captures:{1:{name:"keyword.control.exception.swift"},2:{name:"punctuation.whitespace.trailing.do.swift"}},comment:"extra scopes for do-catch snippet",match:"(?<!\\.)\\b(do)\\b(\\s*)"},{captures:{1:{name:"storage.modifier.async.swift"},2:{name:"keyword.other.declaration-specifier.swift"}},match:"(?<!\\.)\\b(?:(async)\\s+)?(let|var)\\b"},{match:"(?<!\\.)\\b(?:associatedtype|operator|typealias)\\b",name:"keyword.other.declaration-specifier.swift"},{match:"(?<!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b(?=\\s*`?[\\p{L}_])",name:"storage.type.$1.swift"},{match:"(?<!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix|distributed|nonisolated|borrowing|consuming)\\b",name:"storage.modifier.swift"},{match:"\\binit[?!]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b",name:"storage.type.function.swift"},{match:"(?<!\\.)\\b(?:fileprivate|private|internal|public|open|package)\\b",name:"keyword.other.declaration-specifier.accessibility.swift"},{comment:"matches weak, unowned, unowned(safe), unowned(unsafe)",match:"(?<!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?<!\\.)\\b(?:weak|unowned)\\b",name:"keyword.other.capture-specifier.swift"},{captures:{1:{name:"keyword.other.type.swift"},2:{name:"keyword.other.type.metatype.swift"}},match:"(?<=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b"},{match:"(?<!\\.)\\b(?:super|self|Self)\\b",name:"variable.language.swift"},{match:"\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b",name:"support.variable.swift"},{match:"(?<!\\.)\\bimport\\b",name:"keyword.control.import.swift"},{comment:'SE-0366: "consume behaves as a contextual keyword. In order to avoid interfering with existing code that calls functions named consume, the operand to consume must begin with another identifier, and must consist of an identifier or postfix expression"',match:"(?<!\\.)\\bconsume(?=\\s+`?[\\p{L}_])",name:"keyword.control.consume.swift"},{comment:'SE-0377: "copy is a contextual keyword, parsed as an operator if it is immediately followed by an identifier on the same line, like the consume x operator before it"',match:"(?<!\\.)\\bcopy(?=\\s+`?[\\p{L}_])",name:"keyword.control.copy.swift"}]},literals:{patterns:[{include:"#literals-boolean"},{include:"#literals-numeric"},{include:"#literals-string"},{match:"\\bnil\\b",name:"constant.language.nil.swift"},{comment:'object "literals" used in playgrounds',match:"\\B#(colorLiteral|imageLiteral|fileLiteral)\\b",name:"support.function.object-literal.swift"},{match:"\\B#externalMacro\\b",name:"support.function.builtin-macro.swift"},{match:"\\B#keyPath\\b",name:"support.function.key-path.swift"},{begin:"\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?",beginCaptures:{1:{name:"support.function.selector-reference.swift"},2:{name:"punctuation.definition.arguments.begin.swift"},3:{name:"support.variable.parameter.swift"},4:{name:"punctuation.separator.argument-label.swift"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.arguments.end.swift"}},patterns:[{include:"#expressions"}]},{include:"#literals-regular-expression-literal"}]},"literals-boolean":{match:"\\b(true|false)\\b",name:"constant.language.boolean.swift"},"literals-numeric":{patterns:[{comment:"0.1, -4_2.5, 6.022e23, 10E-5",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])",name:"constant.numeric.float.decimal.swift"},{comment:"-0x1.ap2_3, 0x31p-4",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])",name:"constant.numeric.float.hexadecimal.swift"},{comment:"0x1p, 0x1p_2, 0x1.5pa, 0x1.1p+1f, 0x1pz",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])",name:"invalid.illegal.numeric.float.invalid-exponent.swift"},{comment:"0x1.5w (note that 0x1.f may be a valid expression)",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*",name:"invalid.illegal.numeric.float.missing-exponent.swift"},{comment:"-.5, .2f (note that 1.-.5 may be a valid expression)",match:"(?<=\\s|^)\\-?\\.[0-9][\\w.]*",name:"invalid.illegal.numeric.float.missing-leading-zero.swift"},{comment:"0b_0_1, 0x_1p+3q",match:"(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+",name:"invalid.illegal.numeric.leading-underscore.swift"},{comment:"tuple positional member: not really a numeric literal, but not invalid",match:"(?<=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b"},{comment:"0b010, 0b1_0",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.binary.swift"},{comment:"0o1, 0o7_3",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.octal.swift"},{comment:"02, 3_456",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.decimal.swift"},{comment:"0x4, 0xF_7",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.hexadecimal.swift"},{match:"(\\B\\-|\\b)[0-9][\\w.]*",name:"invalid.illegal.numeric.other.swift"}]},"literals-regular-expression-literal":{comment:"SE-0354 & SE-0355",patterns:[{begin:"(#+)/\\n",end:"/\\1",name:"string.regexp.block.swift",patterns:[{include:"#literals-regular-expression-literal-regex-guts"},{include:"#literals-regular-expression-literal-line-comment"}]},{captures:{0:{patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]},1:{name:"punctuation.definition.string.begin.regexp.swift"},12:{name:"punctuation.definition.string.end.regexp.swift"},13:{name:"invalid.illegal.returns-not-allowed.regexp"}},comment:"Single-line regular expression literals must be matched all in one go\n in order to avoid ambiguities with operators, and to adhere to certain\n parsing rules in SE-0354/SE-0355, such as:\n - A regex literal will not be parsed if it contains an unbalanced ).\n - A regex may end with a space only if it began with an escaped space",match:"(?x)\n(((\\#+)?)/)\n(?(3)|(?!/))\n(?(3)|(?!\\s))\n(\\\\\\s)?\n(?<guts>\n(?>\n(?:\n\\\\Q\n(?:(?!\\\\E)(?!/\\2).)*+\n(?:\\\\E\n\n| (?(3)|(?<!\\s))(?=/\\2)\n)\n| \\\\.\n| \\(\\?\\#[^)]*\\)\n| \\(\\?\n\n\\{(?<g1>\\{)?+(?<g2>\\{)?+(?<g3>\\{)?+(?<g4>\\{)?+(?<g5>\\{)?+\n.+?\n\\}(?(<g1>)\\})(?(<g2>)\\})(?(<g3>)\\})(?(<g4>)\\})(?(<g5>)\\})\n(?:\\[(?!\\d)\\w+\\])?\n[X<>]?\n\\)\n| (?<class>\\[ (?:\\\\. | [^\\[\\]] | \\g<class>)+ \\])\n| \\(\\g<guts>?+\\)\n| (?:(?!/\\2)[^()\\[\\\\])+\n)+\n)\n)?+\n# may end with a space only if it is an extended literal or contains only a single escaped space\n(?(3)|(?(5)(?<!\\s)))\n(/\\2)\n| \\#+/.+(\\n)",name:"string.regexp.line.swift"}]},"literals-regular-expression-literal-backreference-or-subpattern":{comment:"These patterns are separated to work around issues like https://github.com/microsoft/vscode-textmate/issues/164",patterns:[{captures:{1:{name:"constant.character.escape.backslash.regexp"},2:{name:"variable.other.group-name.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"constant.numeric.integer.decimal.regexp"},6:{name:"keyword.operator.recursion-level.regexp"},7:{name:"constant.numeric.integer.decimal.regexp"},8:{name:"constant.character.escape.backslash.regexp"}},comment:"'\\g{' NamedOrNumberRef '}'",match:"(?x)(\\\\g\\{) (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (\\})"},{captures:{1:{name:"constant.character.escape.backslash.regexp"},2:{name:"constant.numeric.integer.decimal.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"}},comment:"'\\g' NumberRef",match:"(?x)(\\\\g) ([+-]?\\d+) (?:([+-])(\\d+))?"},{captures:{1:{name:"constant.character.escape.backslash.regexp"},3:{name:"variable.other.group-name.regexp"},4:{name:"keyword.operator.recursion-level.regexp"},5:{name:"constant.numeric.integer.decimal.regexp"},6:{name:"constant.numeric.integer.decimal.regexp"},7:{name:"keyword.operator.recursion-level.regexp"},8:{name:"constant.numeric.integer.decimal.regexp"},9:{name:"constant.character.escape.backslash.regexp"}},comment:"'\\k<' NamedOrNumberRef '>'\n \"\\k'\" NamedOrNumberRef \"'\"\n '\\g<' NamedOrNumberRef '>'\n \"\\g'\" NamedOrNumberRef \"'\"",match:"(?x)(\\\\[gk](<)|\\\\[gk]') (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) ((?(2)>|'))"},{captures:{1:{name:"constant.character.escape.backslash.regexp"},2:{name:"variable.other.group-name.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"constant.character.escape.backslash.regexp"}},comment:"'\\k{' NamedRef '}'",match:"(?x)(\\\\k\\{) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\})"},{match:"\\\\[1-9][0-9]+",name:"keyword.other.back-reference.regexp"},{captures:{1:{name:"keyword.other.back-reference.regexp"},2:{name:"variable.other.group-name.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"keyword.other.back-reference.regexp"}},comment:"'(?P=' NamedRef ')'",match:"(?x)(\\(\\?(?:P[=>]|&)) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\))"},{match:"\\(\\?R\\)",name:"keyword.other.back-reference.regexp"},{captures:{1:{name:"keyword.other.back-reference.regexp"},2:{name:"constant.numeric.integer.decimal.regexp"},3:{name:"keyword.operator.recursion-level.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"keyword.other.back-reference.regexp"}},comment:"'(?' NumberRef ')'",match:"(?x)(\\(\\?) ([+-]?\\d+) (?:([+-])(\\d+))? (\\))"}]},"literals-regular-expression-literal-backtracking-directive-or-global-matching-option":{captures:{1:{name:"keyword.control.directive.regexp"},2:{name:"keyword.control.directive.regexp"},3:{name:"keyword.control.directive.regexp"},4:{name:"variable.language.tag.regexp"},5:{name:"keyword.control.directive.regexp"},6:{name:"keyword.operator.assignment.regexp"},7:{name:"constant.numeric.integer.decimal.regexp"},8:{name:"keyword.control.directive.regexp"},9:{name:"keyword.control.directive.regexp"}},match:"(?x)\n(\\(\\*)\n(?:\n(ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN)\n(?:(:)([^)]+))?\n| (?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\d+))\n| (\nCRLF | CR | ANYCRLF | ANY | LF | NUL\n| BSR_ANYCRLF | BSR_UNICODE\n| NOTEMPTY_ATSTART | NOTEMPTY\n| NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR\n| NO_JIT | NO_START_OPT | UTF | UCP\n)\n)\n(\\))"},"literals-regular-expression-literal-callout":{captures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.control.callout.regexp"},3:{name:"constant.numeric.integer.decimal.regexp"},4:{name:"entity.name.function.callout.regexp"},5:{name:"entity.name.function.callout.regexp"},6:{name:"entity.name.function.callout.regexp"},7:{name:"entity.name.function.callout.regexp"},8:{name:"entity.name.function.callout.regexp"},9:{name:"entity.name.function.callout.regexp"},10:{name:"entity.name.function.callout.regexp"},11:{name:"entity.name.function.callout.regexp"},12:{name:"punctuation.definition.group.regexp"},13:{name:"punctuation.definition.group.regexp"},14:{name:"keyword.control.callout.regexp"},15:{name:"entity.name.function.callout.regexp"},16:{name:"variable.language.tag-name.regexp"},17:{name:"punctuation.definition.group.regexp"},18:{name:"punctuation.definition.group.regexp"},19:{name:"keyword.control.callout.regexp"},26:{name:"variable.language.tag-name.regexp"},27:{name:"keyword.control.callout.regexp"},28:{name:"punctuation.definition.group.regexp"}},match:"(?x)\n# PCRECallout\n(\\()(?<keyw>\\?C)\n(?:\n(?<num>\\d+)\n| `(?<name>(?:[^`]|``)*)`\n| '(?<name>(?:[^']|'')*)'\n| \"(?<name>(?:[^\"]|\"\")*)\"\n| \\^(?<name>(?:[^\\^]|\\^\\^)*)\\^\n| %(?<name>(?:[^%]|%%)*)%\n| \\#(?<name>(?:[^#]|\\#\\#)*)\\#\n| \\$(?<name>(?:[^$]|\\$\\$)*)\\$\n| \\{(?<name>(?:[^}]|\\}\\})*)\\}\n)?\n(\\))\n# NamedCallout\n| (\\()(?<keyw>\\*)\n(?<name>(?!\\d)\\w+)\n(?:\\[(?<tag>(?!\\d)\\w+)\\])?\n(?:\\{ [^,}]+ (?:,[^,}]+)* \\})?\n(\\))\n# InterpolatedCallout\n| (\\()(?<keyw>\\?)\n\n(\\{(?<g1>\\{)?+(?<g2>\\{)?+(?<g3>\\{)?+(?<g4>\\{)?+(?<g5>\\{)?+) .+? \\}(?(<g1>)\\})(?(<g2>)\\})(?(<g3>)\\})(?(<g4>)\\})(?(<g5>)\\})\n(?:\\[(?<tag>(?!\\d)\\w+)\\])?\n(?<keyw>[X<>]?)\n(\\))",name:"meta.callout.regexp"},"literals-regular-expression-literal-character-properties":{captures:{1:{name:"support.variable.character-property.regexp"},2:{name:"punctuation.definition.character-class.regexp"},3:{name:"support.variable.character-property.regexp"},4:{name:"punctuation.definition.character-class.regexp"}},match:"(?x)\n\\\\[pP]\\{ ([\\s\\w-]+(?:=[\\s\\w-]+)?) \\}\n| (\\[:) ([\\s\\w-]+(?:=[\\s\\w-]+)?) (:\\])",name:"constant.other.character-class.set.regexp"},"literals-regular-expression-literal-custom-char-class":{patterns:[{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{include:"#literals-regular-expression-literal-custom-char-class-members"}]}]},"literals-regular-expression-literal-custom-char-class-members":{comment:"TODO: should also include atoms?",patterns:[{comment:"\\b inside a character class represents a backspace",match:"\\\\b",name:"constant.character.escape.backslash.regexp"},{include:"#literals-regular-expression-literal-custom-char-class"},{include:"#literals-regular-expression-literal-quote"},{include:"#literals-regular-expression-literal-set-operators"},{include:"#literals-regular-expression-literal-unicode-scalars"},{include:"#literals-regular-expression-literal-character-properties"}]},"literals-regular-expression-literal-group-option-toggle":{comment:'A matching option sequence may be part of an "isolated group" which has an implicit scope that wraps the remaining elements of the current group',match:"(?x)\n\\(\\?\n(?:\n\\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n)\n\\)",name:"keyword.other.option-toggle.regexp"},"literals-regular-expression-literal-group-or-conditional":{patterns:[{begin:"(\\()(\\?~)",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.control.conditional.absent.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.absent.regexp",patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]},{begin:"(?x)\n# KnownConditionalStart\n(\\() (?<cond>\\?\\()\n(?:\n(?<NumberRef> (?<num>[+-]?\\d+)(?:(?<op>[+-])(?<num>\\d+))? )\n| (?<cond>R) \\g<NumberRef>?\n| (?<cond>R&) (?<NamedRef> (?<name>(?!\\d)\\w+) (?:(?<op>[+-])(?<num>\\d+))? )\n| (?<cond><) (?:\\g<NamedRef>|\\g<NumberRef>) (?<cond>>)\n| (?<cond>') (?:\\g<NamedRef>|\\g<NumberRef>) (?<cond>')\n| (?<cond>DEFINE)\n| (?<cond>VERSION)(?<compar>>?=)(?<num>\\d+\\.\\d+)\n)\n(?<cond>\\))\n| (\\()(?<cond>\\?)(?=\\()",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.control.conditional.regexp"},4:{name:"constant.numeric.integer.decimal.regexp"},5:{name:"keyword.operator.recursion-level.regexp"},6:{name:"constant.numeric.integer.decimal.regexp"},7:{name:"keyword.control.conditional.regexp"},8:{name:"keyword.control.conditional.regexp"},10:{name:"variable.other.group-name.regexp"},11:{name:"keyword.operator.recursion-level.regexp"},12:{name:"constant.numeric.integer.decimal.regexp"},13:{name:"keyword.control.conditional.regexp"},14:{name:"keyword.control.conditional.regexp"},15:{name:"keyword.control.conditional.regexp"},16:{name:"keyword.control.conditional.regexp"},17:{name:"keyword.control.conditional.regexp"},18:{name:"keyword.control.conditional.regexp"},19:{name:"keyword.operator.comparison.regexp"},20:{name:"constant.numeric.integer.decimal.regexp"},21:{name:"keyword.control.conditional.regexp"},22:{name:"punctuation.definition.group.regexp"},23:{name:"keyword.control.conditional.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.conditional.regexp",patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]},{begin:"(?x)\n(\\()\n(\n\n(\\?)\n(?:\n([:|>=!*] | <[=!*])\n\n| P?< (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) >\n| ' (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) '\n\n| (?:\n\\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n| (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n):\n)\n\n| \\*(\natomic\n|pla|positive_lookahead\n|nla|negative_lookahead\n|plb|positive_lookbehind\n|nlb|negative_lookbehind\n|napla|non_atomic_positive_lookahead\n|naplb|non_atomic_positive_lookbehind\n|sr|script_run\n|asr|atomic_script_run\n):\n)?+",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"keyword.other.group-options.regexp"},3:{name:"punctuation.definition.group.regexp"},4:{name:"punctuation.definition.group.regexp"},5:{name:"variable.other.group-name.regexp"},6:{name:"keyword.operator.balancing-group.regexp"},7:{name:"variable.other.group-name.regexp"},8:{name:"variable.other.group-name.regexp"},9:{name:"keyword.operator.balancing-group.regexp"},10:{name:"variable.other.group-name.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#literals-regular-expression-literal-regex-guts"}]}]},"literals-regular-expression-literal-line-comment":{captures:{1:{name:"punctuation.definition.comment.regexp"}},match:"(\\#).*$",name:"comment.line.regexp"},"literals-regular-expression-literal-quote":{begin:"\\\\Q",beginCaptures:{0:{name:"constant.character.escape.backslash.regexp"}},end:"\\\\E|(\\n)",endCaptures:{0:{name:"constant.character.escape.backslash.regexp"},1:{name:"invalid.illegal.returns-not-allowed.regexp"}},name:"string.quoted.other.regexp.swift"},"literals-regular-expression-literal-regex-guts":{patterns:[{include:"#literals-regular-expression-literal-quote"},{begin:"\\(\\?\\#",beginCaptures:{0:{name:"punctuation.definition.comment.begin.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.comment.end.regexp"}},name:"comment.block.regexp"},{begin:"<\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.regexp"}},end:"\\}>",endCaptures:{0:{name:"punctuation.section.embedded.end.regexp"}},name:"meta.embedded.expression.regexp"},{include:"#literals-regular-expression-literal-unicode-scalars"},{include:"#literals-regular-expression-literal-character-properties"},{match:"[$^]|\\\\[AbBGyYzZ]|\\\\K",name:"keyword.control.anchor.regexp"},{include:"#literals-regular-expression-literal-backtracking-directive-or-global-matching-option"},{include:"#literals-regular-expression-literal-callout"},{include:"#literals-regular-expression-literal-backreference-or-subpattern"},{match:"\\.|\\\\[CdDhHNORsSvVwWX]",name:"constant.character.character-class.regexp"},{match:"\\\\c.",name:"constant.character.entity.control-character.regexp"},{match:"\\\\[^c]",name:"constant.character.escape.backslash.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{match:"[*+?]",name:"keyword.operator.quantifier.regexp"},{match:"\\{\\s*\\d+\\s*(?:,\\s*\\d*\\s*)?\\}|\\{\\s*,\\s*\\d+\\s*\\}",name:"keyword.operator.quantifier.regexp"},{include:"#literals-regular-expression-literal-custom-char-class"},{include:"#literals-regular-expression-literal-group-option-toggle"},{include:"#literals-regular-expression-literal-group-or-conditional"}]},"literals-regular-expression-literal-set-operators":{patterns:[{match:"&&",name:"keyword.operator.intersection.regexp.swift"},{match:"--",name:"keyword.operator.subtraction.regexp.swift"},{match:"\\~\\~",name:"keyword.operator.symmetric-difference.regexp.swift"}]},"literals-regular-expression-literal-unicode-scalars":{match:"(?x)\n\\\\u\\{\\s*(?:[0-9a-fA-F]+\\s*)+\\}\n| \\\\u[0-9a-fA-F]{4}\n| \\\\x\\{[0-9a-fA-F]+\\}\n| \\\\x[0-9a-fA-F]{0,2}\n| \\\\U[0-9a-fA-F]{8}\n| \\\\o\\{[0-7]+\\}\n| \\\\0[0-7]{0,3}\n| \\\\N\\{(?:U\\+[0-9a-fA-F]{1,8} | [\\s\\w-]+)\\}",name:"constant.character.numeric.regexp"},"literals-string":{patterns:[{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},comment:"SE-0168: Multi-Line String Literals",end:'"""(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.swift",patterns:[{match:'\\G.+(?=""")|\\G.+',name:"invalid.illegal.content-after-opening-delimiter.swift"},{match:"\\\\\\s*\\n",name:"constant.character.escape.newline.swift"},{include:"#literals-string-string-guts"},{comment:'Allow \\("""...""") to appear inside a block string',match:'\\S((?!\\\\\\().)*(?=""")',name:"invalid.illegal.content-before-closing-delimiter.swift"}]},{begin:'#"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},end:'"""#(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.raw.swift",patterns:[{match:'\\G.+(?=""")|\\G.+',name:"invalid.illegal.content-after-opening-delimiter.swift"},{match:"\\\\#\\s*\\n",name:"constant.character.escape.newline.swift"},{include:"#literals-string-raw-string-guts"},{comment:'Allow \\("""...""") to appear inside a block string',match:'\\S((?!\\\\#\\().)*(?=""")',name:"invalid.illegal.content-before-closing-delimiter.swift"}]},{begin:'(##+)"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},end:'"""\\1(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.raw.swift",patterns:[{match:'\\G.+(?=""")|\\G.+',name:"invalid.illegal.content-after-opening-delimiter.swift"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.swift"}},end:'"(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"},{include:"#literals-string-string-guts"}]},{begin:'(##+)"',beginCaptures:{0:{name:"punctuation.definition.string.begin.raw.swift"}},comment:"SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)",end:'"\\1(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.raw.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.raw.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"}]},{begin:'#"',beginCaptures:{0:{name:"punctuation.definition.string.begin.raw.swift"}},comment:"SE-0168: raw string literals (one #, escapes supported)",end:'"#(#*)',endCaptures:{0:{name:"punctuation.definition.string.end.raw.swift"},1:{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.raw.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"},{include:"#literals-string-raw-string-guts"}]}]},"literals-string-raw-string-guts":{comment:"the same as #string-guts but with # in escapes",patterns:[{match:"\\\\#[0\\\\tnr\"']",name:"constant.character.escape.swift"},{match:"\\\\#u\\{[0-9a-fA-F]{1,8}\\}",name:"constant.character.escape.unicode.swift"},{begin:"\\\\#\\(",beginCaptures:{0:{name:"punctuation.section.embedded.begin.swift"}},contentName:"source.swift",end:"(\\))",endCaptures:{0:{name:"punctuation.section.embedded.end.swift"},1:{name:"source.swift"}},name:"meta.embedded.line.swift",patterns:[{include:"$self"},{begin:"\\(",comment:"Nested parens",end:"\\)"}]},{match:"\\\\#.",name:"invalid.illegal.escape-not-recognized"}]},"literals-string-string-guts":{patterns:[{match:"\\\\[0\\\\tnr\"']",name:"constant.character.escape.swift"},{match:"\\\\u\\{[0-9a-fA-F]{1,8}\\}",name:"constant.character.escape.unicode.swift"},{begin:"\\\\\\(",beginCaptures:{0:{name:"punctuation.section.embedded.begin.swift"}},contentName:"source.swift",end:"(\\))",endCaptures:{0:{name:"punctuation.section.embedded.end.swift"},1:{name:"source.swift"}},name:"meta.embedded.line.swift",patterns:[{include:"$self"},{begin:"\\(",comment:"Nested parens",end:"\\)"}]},{match:"\\\\.",name:"invalid.illegal.escape-not-recognized"}]},"member-reference":{patterns:[{captures:{1:{name:"variable.other.swift"},2:{name:"punctuation.definition.identifier.swift"},3:{name:"punctuation.definition.identifier.swift"}},match:"(?<=\\.)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"}]},operators:{patterns:[{comment:"Type casting",match:"\\b(is\\b|as([!?]\\B|\\b))",name:"keyword.operator.type-casting.swift"},{begin:"(?x)\n(?=\n(?<oph>\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n)\n| \\.\n(\n\\g<oph>\n| \\.\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)",comment:"This rule helps us speed up the matching.",end:"(?!\\G)",patterns:[{captures:{0:{patterns:[{match:"\\G(\\+\\+|\\-\\-)$",name:"keyword.operator.increment-or-decrement.swift"},{match:"\\G(\\+|\\-)$",name:"keyword.operator.arithmetic.unary.swift"},{match:"\\G!$",name:"keyword.operator.logical.not.swift"},{match:"\\G~$",name:"keyword.operator.bitwise.not.swift"},{match:".+",name:"keyword.operator.custom.prefix.swift"}]}},comment:"Prefix unary operator",match:"(?x)\n\\G\n\n(?<=^|[\\s(\\[{,;:])\n(\n(?!(//|/\\*|\\*/))\n(\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)++\n(?![\\s)\\]},;:]|\\z)"},{captures:{0:{patterns:[{match:"\\G(\\+\\+|\\-\\-)$",name:"keyword.operator.increment-or-decrement.swift"},{match:"\\G!$",name:"keyword.operator.increment-or-decrement.swift"},{match:".+",name:"keyword.operator.custom.postfix.swift"}]}},comment:"Postfix unary operator",match:"(?x)\n\\G\n\n(?<!^|[\\s(\\[{,;:])\n(\n(?!(//|/\\*|\\*/))\n(\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)++\n(?=[\\s)\\]},;:]|\\z)"},{captures:{0:{patterns:[{match:"\\G=$",name:"keyword.operator.assignment.swift"},{match:"\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$",name:"keyword.operator.assignment.compound.swift"},{match:"\\G(\\+|\\-|\\*|/)$",name:"keyword.operator.arithmetic.swift"},{match:"\\G&(\\+|\\-|\\*)$",name:"keyword.operator.arithmetic.overflow.swift"},{match:"\\G%$",name:"keyword.operator.arithmetic.remainder.swift"},{match:"\\G(==|!=|>|<|>=|<=|~=)$",name:"keyword.operator.comparison.swift"},{match:"\\G\\?\\?$",name:"keyword.operator.coalescing.swift"},{match:"\\G(&&|\\|\\|)$",name:"keyword.operator.logical.swift"},{match:"\\G(&|\\||\\^|<<|>>)$",name:"keyword.operator.bitwise.swift"},{match:"\\G(===|!==)$",name:"keyword.operator.bitwise.swift"},{match:"\\G\\?$",name:"keyword.operator.ternary.swift"},{match:".+",name:"keyword.operator.custom.infix.swift"}]}},comment:"Infix operator",match:"(?x)\n\\G\n\n(\n(?!(//|/\\*|\\*/))\n(\n[/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)++"},{captures:{0:{patterns:[{match:".+",name:"keyword.operator.custom.prefix.dot.swift"}]}},comment:"Dot prefix unary operator",match:"(?x)\n\\G\n\n(?<=^|[\\s(\\[{,;:])\n\\.\n(\n(?!(//|/\\*|\\*/))\n(\n\\.\n| [/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)++\n(?![\\s)\\]},;:]|\\z)"},{captures:{0:{patterns:[{match:".+",name:"keyword.operator.custom.postfix.dot.swift"}]}},comment:"Dot postfix unary operator",match:"(?x)\n\\G\n\n(?<!^|[\\s(\\[{,;:])\n\\.\n(\n(?!(//|/\\*|\\*/))\n(\n\\.\n| [/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)++\n(?=[\\s)\\]},;:]|\\z)"},{captures:{0:{patterns:[{match:"\\G\\.\\.[.<]$",name:"keyword.operator.range.swift"},{match:".+",name:"keyword.operator.custom.infix.dot.swift"}]}},comment:"Dot infix operator",match:"(?x)\n\\G\n\n\\.\n(\n(?!(//|/\\*|\\*/))\n(\n\\.\n| [/=\\-+!*%<>&|^~?]\n| [\\x{00A1}-\\x{00A7}]\n| [\\x{00A9}\\x{00AB}]\n| [\\x{00AC}\\x{00AE}]\n| [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n| [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n| [\\x{2030}-\\x{203E}]\n| [\\x{2041}-\\x{2053}]\n| [\\x{2055}-\\x{205E}]\n| [\\x{2190}-\\x{23FF}]\n| [\\x{2500}-\\x{2775}]\n| [\\x{2794}-\\x{2BFF}]\n| [\\x{2E00}-\\x{2E7F}]\n| [\\x{3001}-\\x{3003}]\n| [\\x{3008}-\\x{3030}]\n\n| [\\x{0300}-\\x{036F}]\n| [\\x{1DC0}-\\x{1DFF}]\n| [\\x{20D0}-\\x{20FF}]\n| [\\x{FE00}-\\x{FE0F}]\n| [\\x{FE20}-\\x{FE2F}]\n| [\\x{E0100}-\\x{E01EF}]\n)\n)++"}]},{match:":",name:"keyword.operator.ternary.swift"}]},root:{patterns:[{include:"#compiler-control"},{include:"#declarations"},{include:"#expressions"}]}},a="source.swift",r={displayName:e,name:n,patterns:t,repository:i,scopeName:a};export{r as default,e as displayName,n as name,t as patterns,i as repository,a as scopeName}; diff --git a/lib/dist/grammar/system-verilog.mjs b/lib/dist/grammar/system-verilog.mjs new file mode 100644 index 0000000..1a3a085 --- /dev/null +++ b/lib/dist/grammar/system-verilog.mjs @@ -0,0 +1 @@ +var e="SystemVerilog",t=["v","vh","sv","svh"],n="system-verilog",r=[{include:"#comments"},{include:"#strings"},{include:"#typedef-enum-struct-union"},{include:"#typedef"},{include:"#functions"},{include:"#keywords"},{include:"#tables"},{include:"#function-task"},{include:"#module-declaration"},{include:"#class-declaration"},{include:"#enum-struct-union"},{include:"#sequence"},{include:"#all-types"},{include:"#module-parameters"},{include:"#module-no-parameters"},{include:"#port-net-parameter"},{include:"#system-tf"},{include:"#assertion"},{include:"#bind-directive"},{include:"#cast-operator"},{include:"#storage-scope"},{include:"#attributes"},{include:"#imports"},{include:"#operators"},{include:"#constants"},{include:"#identifiers"},{include:"#selects"}],a={"all-types":{patterns:[{include:"#built-ins"},{include:"#modifiers"}]},assertion:{captures:{1:{name:"entity.name.goto-label.php"},2:{name:"keyword.operator.systemverilog"},3:{name:"keyword.sva.systemverilog"}},match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*(:)[ \\t\\r\\n]*(assert|assume|cover|restrict)\\b"},attributes:{begin:"(?<!@[ \\t\\r\\n]?)\\(\\*",beginCaptures:{0:{name:"punctuation.attribute.rounds.begin"}},end:"\\*\\)",endCaptures:{0:{name:"punctuation.attribute.rounds.end"}},name:"meta.attribute.systemverilog",patterns:[{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"keyword.operator.assignment.systemverilog"}},match:"([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\t\\r\\n]*(=)[ \\t\\r\\n]*)?"},{include:"#constants"},{include:"#strings"}]},"base-grammar":{patterns:[{include:"#all-types"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{captures:{1:{name:"storage.type.interface.systemverilog"}},match:"[ \\t\\r\\n]*\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]+[a-zA-Z_][a-zA-Z0-9_,= \\t\\n]*"},{include:"#storage-scope"}]},"bind-directive":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.module.systemverilog"}},match:"[ \\t\\r\\n]*\\b(bind)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$\\.]*)\\b",name:"meta.definition.systemverilog"},"built-ins":{patterns:[{match:"[ \\t\\r\\n]*\\b(bit|logic|reg)\\b",name:"storage.type.vector.systemverilog"},{match:"[ \\t\\r\\n]*\\b(byte|shortint|int|longint|integer|time|genvar)\\b",name:"storage.type.atom.systemverilog"},{match:"[ \\t\\r\\n]*\\b(shortreal|real|realtime)\\b",name:"storage.type.notint.systemverilog"},{match:"[ \\t\\r\\n]*\\b(supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\b",name:"storage.type.net.systemverilog"},{match:"[ \\t\\r\\n]*\\b(genvar|var|void|signed|unsigned|string|const|process)\\b",name:"storage.type.built-in.systemverilog"},{match:"[ \\t\\r\\n]*\\b(uvm_(?:root|transaction|component|monitor|driver|test|env|object|agent|sequence_base|sequence_item|sequence_state|sequencer|sequencer_base|sequence|component_registry|analysis_imp|analysis_port|analysis_export|config_db|active_passive_enum|phase|verbosity|tlm_analysis_fifo|tlm_fifo|report_server|objection|recorder|domain|reg_field|reg_block|reg|bitstream_t|radix_enum|printer|packer|comparer|scope_stack))\\b",name:"storage.type.uvm.systemverilog"}]},"cast-operator":{captures:{1:{patterns:[{include:"#built-ins"},{include:"#constants"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"storage.type.user-defined.systemverilog"}]},2:{name:"keyword.operator.cast.systemverilog"}},match:"[ \\t\\r\\n]*([0-9]+|[a-zA-Z_][a-zA-Z0-9_$]*)(')(?=\\()",name:"meta.cast.systemverilog"},"class-declaration":{begin:"[ \\t\\r\\n]*\\b(virtual[ \\t\\r\\n]+)?(class)(?:[ \\t\\r\\n]+(static|automatic))?[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*)(?:[ \\t\\r\\n]+(extends|implements)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*))?",beginCaptures:{1:{name:"storage.modifier.systemverilog"},2:{name:"storage.type.class.systemverilog"},3:{name:"storage.modifier.systemverilog"},4:{name:"entity.name.type.class.systemverilog"},5:{name:"keyword.control.systemverilog"},6:{name:"entity.name.type.class.systemverilog"}},end:";",endCaptures:{0:{name:"punctuation.definition.class.end.systemverilog"}},name:"meta.class.systemverilog",patterns:[{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.class.systemverilog"},3:{name:"entity.name.type.class.systemverilog"}},match:"[ \\t\\r\\n]+\\b(extends|implements)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$:]*)(?:[ \\t\\r\\n]*,[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$:]*))*"},{captures:{1:{name:"storage.type.userdefined.systemverilog"},2:{name:"keyword.operator.param.systemverilog"}},match:"[ \\t\\r\\n]+\\b([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*(#)\\(",name:"meta.typedef.class.systemverilog"},{include:"#port-net-parameter"},{include:"#base-grammar"},{include:"#module-binding"},{include:"#identifiers"}]},comments:{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.systemverilog"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.systemverilog"}},name:"comment.block.systemverilog",patterns:[{include:"#fixme-todo"}]},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.systemverilog"}},end:"$\\n?",name:"comment.line.double-slash.systemverilog",patterns:[{include:"#fixme-todo"}]}]},"compiler-directives":{name:"meta.preprocessor.systemverilog",patterns:[{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},match:"(`)(else|endif|endcelldefine|celldefine|nounconnected_drive|resetall|undefineall|end_keywords|__FILE__|__LINE__)\\b"},{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"},3:{name:"variable.other.constant.preprocessor.systemverilog"}},match:"(`)(ifdef|ifndef|elsif|define|undef|pragma)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\b"},{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},match:"(`)(include|timescale|default_nettype|unconnected_drive|line|begin_keywords)\\b"},{begin:"(`)(protected)\\b",beginCaptures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},end:"(`)(endprotected)\\b",endCaptures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"string.regexp.systemverilog"}},name:"meta.crypto.systemverilog"},{captures:{1:{name:"punctuation.definition.directive.systemverilog"},2:{name:"variable.other.constant.preprocessor.systemverilog"}},match:"(`)([a-zA-Z_][a-zA-Z0-9_$]*)\\b"}]},constants:{patterns:[{match:"(\\b[1-9][0-9_]*)?'([sS]?[bB][ \\t\\r\\n]*[0-1xXzZ?][0-1_xXzZ?]*|[sS]?[oO][ \\t\\r\\n]*[0-7xXzZ?][0-7_xXzZ?]*|[sS]?[dD][ \\t\\r\\n]*[0-9xXzZ?][0-9_xXzZ?]*|[sS]?[hH][ \\t\\r\\n]*[0-9a-fA-FxXzZ?][0-9a-fA-F_xXzZ?]*)((e|E)(\\+|-)?[0-9]+)?(?!'|\\w)",name:"constant.numeric.systemverilog"},{match:"'[01xXzZ]",name:"constant.numeric.bit.systemverilog"},{match:"\\b(?:\\d[\\d_\\.]*(?<!\\.)(?:e|E)(?:\\+|-)?[0-9]+)\\b",name:"constant.numeric.exp.systemverilog"},{match:"\\b(?:\\d[\\d_\\.]*(?!(?:[\\d\\.]|[ \\t\\r\\n]*(?:e|E|fs|ps|ns|us|ms|s))))\\b",name:"constant.numeric.decimal.systemverilog"},{match:"\\b(?:\\d[\\d\\.]*[ \\t\\r\\n]*(?:fs|ps|ns|us|ms|s))\\b",name:"constant.numeric.time.systemverilog"},{include:"#compiler-directives"},{match:"\\b(?:this|super|null)\\b",name:"constant.language.systemverilog"},{match:"\\b([A-Z][A-Z0-9_]*)\\b",name:"constant.other.net.systemverilog"},{match:"\\b(?<!\\.)([A-Z0-9_]+)(?!\\.)\\b",name:"constant.numeric.parameter.uppercase.systemverilog"},{match:"\\.\\*",name:"keyword.operator.quantifier.regexp"}]},"enum-struct-union":{begin:"[ \\t\\r\\n]*\\b(enum|struct|union(?:[ \\t\\r\\n]+tagged)?|class|interface[ \\t\\r\\n]+class)(?:[ \\t\\r\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?))?(?:[ \\t\\r\\n]+(packed))?(?:[ \\t\\r\\n]+(signed|unsigned))?(?=[ \\t\\r\\n]*(?:{|$))",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{patterns:[{include:"#built-ins"}]},3:{patterns:[{include:"#selects"}]},4:{name:"storage.modifier.systemverilog"},5:{name:"storage.modifier.systemverilog"}},end:"(?<=})[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\t\\r\\n])\\\\[!-~]+(?=$|[ \\t\\r\\n]))(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?)[ \\t\\r\\n]*[,;]",endCaptures:{1:{patterns:[{include:"#identifiers"}]},2:{patterns:[{include:"#selects"}]}},name:"meta.enum-struct-union.systemverilog",patterns:[{include:"#keywords"},{include:"#base-grammar"},{include:"#identifiers"}]},"fixme-todo":{patterns:[{match:"(?i:fixme)",name:"invalid.broken.fixme.systemverilog"},{match:"(?i:todo)",name:"invalid.unimplemented.todo.systemverilog"}]},"function-task":{begin:"[ \\t\\r\\n]*(?:\\b(virtual)[ \\t\\r\\n]+)?(?:\\b(function|task)\\b)(?:[ \\t\\r\\n]+\\b(static|automatic)\\b)?",beginCaptures:{1:{name:"storage.modifier.systemverilog"},2:{name:"storage.type.function.systemverilog"},3:{name:"storage.modifier.systemverilog"}},end:";",endCaptures:{0:{name:"punctuation.definition.function.end.systemverilog"}},name:"meta.function.systemverilog",patterns:[{captures:{1:{name:"support.type.scope.systemverilog"},2:{name:"keyword.operator.scope.systemverilog"},3:{patterns:[{include:"#built-ins"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"storage.type.user-defined.systemverilog"}]},4:{patterns:[{include:"#modifiers"}]},5:{patterns:[{include:"#selects"}]},6:{name:"entity.name.function.systemverilog"}},match:"[ \\t\\r\\n]*(?:\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?([a-zA-Z_][a-zA-Z0-9_$]*\\b[ \\t\\r\\n]+)?(?:\\b(signed|unsigned)\\b[ \\t\\r\\n]*)?(?:(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])[ \\t\\r\\n]*)?(?:\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b[ \\t\\r\\n]*)(?=\\(|;)"},{include:"#keywords"},{include:"#port-net-parameter"},{include:"#base-grammar"},{include:"#identifiers"}]},functions:{match:"[ \\t\\r\\n]*\\b(?!while|for|if|iff|else|case|casex|casez)([a-zA-Z_][a-zA-Z0-9_$]*)(?=[ \\t\\r\\n]*\\()",name:"entity.name.function.systemverilog"},identifiers:{patterns:[{match:"\\b[a-zA-Z_][a-zA-Z0-9_$]*\\b",name:"variable.other.identifier.systemverilog"},{match:"(?<=^|[ \\t\\r\\n])\\\\[!-~]+(?=$|[ \\t\\r\\n])",name:"string.regexp.identifier.systemverilog"}]},imports:{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"support.type.scope.systemverilog"},3:{name:"keyword.operator.scope.systemverilog"},4:{patterns:[{include:"#operators"},{include:"#identifiers"}]}},match:"[ \\t\\r\\n]*\\b(import|export)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*|\\*)[ \\t\\r\\n]*(::)[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|\\*)[ \\t\\r\\n]*(,|;)",name:"meta.import.systemverilog"},keywords:{patterns:[{captures:{1:{name:"keyword.other.systemverilog"}},match:"[ \\t\\r\\n]*\\b(edge|negedge|posedge|cell|config|defparam|design|disable|endgenerate|endspecify|event|generate|ifnone|incdir|instance|liblist|library|noshowcancelled|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|use|vectored)\\b"},{include:"#sv-control"},{include:"#sv-control-begin"},{include:"#sv-control-end"},{include:"#sv-definition"},{include:"#sv-cover-cross"},{include:"#sv-std"},{include:"#sv-option"},{include:"#sv-local"},{include:"#sv-rand"}]},modifiers:{match:"[ \\t\\r\\n]*\\b(?:(?:un)?signed|packed|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b",name:"storage.modifier.systemverilog"},"module-binding":{begin:"\\.([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*\\(",beginCaptures:{1:{name:"support.function.port.systemverilog"}},end:"\\),?",name:"meta.port.binding.systemverilog",patterns:[{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#strings"},{include:"#constants"},{include:"#storage-scope"},{include:"#cast-operator"},{include:"#system-tf"},{match:"\\bvirtual\\b",name:"storage.modifier.systemverilog"},{include:"#identifiers"}]},"module-declaration":{begin:"[ \\t\\r\\n]*\\b((?:macro)?module|interface|program|package|modport)[ \\t\\r\\n]+(?:(static|automatic)[ \\t\\r\\n]+)?([a-zA-Z_][a-zA-Z0-9_$]*)\\b",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"storage.modifier.systemverilog"},3:{name:"entity.name.type.module.systemverilog"}},end:";",endCaptures:{0:{name:"punctuation.definition.module.end.systemverilog"}},name:"meta.module.systemverilog",patterns:[{include:"#parameters"},{include:"#port-net-parameter"},{include:"#imports"},{include:"#base-grammar"},{include:"#system-tf"},{include:"#identifiers"}]},"module-no-parameters":{begin:"[ \\t\\r\\n]*\\b(?:(bind|pullup|pulldown)[ \\t\\r\\n]+(?:([a-zA-Z_][a-zA-Z0-9_$\\.]*)[ \\t\\r\\n]+)?)?((?:\\b(?:and|nand|or|nor|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|r?tran|r?tranif[01])\\b|[a-zA-Z_][a-zA-Z0-9_$]*))[ \\t\\r\\n]+(?!intersect|and|or|throughout|within)([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?)[ \\t\\r\\n]*(?=\\(|$)(?!;)",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.module.systemverilog"},3:{name:"entity.name.type.module.systemverilog"},4:{name:"variable.other.module.systemverilog"},5:{patterns:[{include:"#selects"}]}},end:"\\)(?:[ \\t\\r\\n]*(;))?",endCaptures:{1:{name:"punctuation.module.instantiation.end.systemverilog"}},name:"meta.module.no_parameters.systemverilog",patterns:[{include:"#module-binding"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{include:"#port-net-parameter"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b(?=[ \\t\\r\\n]*(\\(|$))",name:"variable.other.module.systemverilog"},{include:"#identifiers"}]},"module-parameters":{begin:"[ \\t\\r\\n]*\\b(?:(bind)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$\\.]*)[ \\t\\r\\n]+)?([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]+(?!intersect|and|or|throughout|within)(?=#[^#])",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.module.systemverilog"},3:{name:"entity.name.type.module.systemverilog"}},end:"\\)(?:[ \\t\\r\\n]*(;))?",endCaptures:{1:{name:"punctuation.module.instantiation.end.systemverilog"}},name:"meta.module.parameters.systemverilog",patterns:[{match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b(?=[ \\t\\r\\n]*\\()",name:"variable.other.module.systemverilog"},{include:"#module-binding"},{include:"#parameters"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{include:"#port-net-parameter"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b(?=[ \\t\\r\\n]*$)",name:"variable.other.module.systemverilog"},{include:"#identifiers"}]},operators:{patterns:[{match:"\\+=|-=|/=|\\*=|%=|&=|\\|=|\\^=|>>>=|>>=|<<<=|<<=|<=|=",name:"keyword.operator.assignment.systemverilog"},{match:"\\+\\+",name:"keyword.operator.increment.systemverilog"},{match:"--",name:"keyword.operator.decrement.systemverilog"},{match:"\\+|-|\\*\\*|\\*|/|%",name:"keyword.operator.arithmetic.systemverilog"},{match:"!|&&|\\|\\|",name:"keyword.operator.logical.systemverilog"},{match:"<<<|<<|>>>|>>",name:"keyword.operator.bitwise.shift.systemverilog"},{match:"~&|~\\||~|\\^~|~\\^|&|\\||\\^|{|'{|}|:|\\?",name:"keyword.operator.bitwise.systemverilog"},{match:"<=|<|>=|>|==\\?|!=\\?|===|!==|==|!=",name:"keyword.operator.comparison.systemverilog"},{match:"@|##|#|->|<->",name:"keyword.operator.channel.systemverilog"},{match:"\\b(?:dist|inside|with|intersect|and|or|throughout|within|first_match)\\b|:=|:/|\\|->|\\|=>|->>|\\*>|#-#|#=#|&&&",name:"keyword.operator.logical.systemverilog"}]},parameters:{begin:"[ \\t\\r\\n]*(#)[ \\t\\r\\n]*(\\()",beginCaptures:{1:{name:"keyword.operator.channel.systemverilog"},2:{name:"punctuation.section.parameters.begin"}},end:"(\\))[ \\t\\r\\n]*(?=;|\\(|[a-zA-Z_]|\\\\|$)",endCaptures:{1:{name:"punctuation.section.parameters.end"}},name:"meta.parameters.systemverilog",patterns:[{include:"#port-net-parameter"},{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#strings"},{include:"#system-tf"},{include:"#functions"},{match:"\\bvirtual\\b",name:"storage.modifier.systemverilog"},{include:"#module-binding"}]},"port-net-parameter":{patterns:[{captures:{1:{name:"support.type.direction.systemverilog"},2:{name:"storage.type.net.systemverilog"},3:{name:"support.type.scope.systemverilog"},4:{name:"keyword.operator.scope.systemverilog"},5:{patterns:[{include:"#built-ins"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"storage.type.user-defined.systemverilog"}]},6:{patterns:[{include:"#modifiers"}]},7:{patterns:[{include:"#selects"}]},8:{patterns:[{include:"#constants"},{include:"#identifiers"}]},9:{patterns:[{include:"#selects"}]}},match:",?[ \\t\\r\\n]*(?:\\b(output|input|inout|ref)\\b[ \\t\\r\\n]*)?(?:\\b(localparam|parameter|var|supply[01]|tri|triand|trior|trireg|tri[01]|uwire|wire|wand|wor)\\b[ \\t\\r\\n]*)?(?:\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?(?:([a-zA-Z_][a-zA-Z0-9_$]*)\\b[ \\t\\r\\n]*)?(?:\\b(signed|unsigned)\\b[ \\t\\r\\n]*)?(?:(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])[ \\t\\r\\n]*)?(?<!(?<!#)[:&|=+\\-*/%?><^!~\\(][ \\t\\r\\n]*)\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?[ \\t\\r\\n]*(?=,|;|=|\\)|/|$)",name:"meta.port-net-parameter.declaration.systemverilog"}]},selects:{begin:"\\[",beginCaptures:{0:{name:"punctuation.slice.brackets.begin"}},end:"\\]",endCaptures:{0:{name:"punctuation.slice.brackets.end"}},name:"meta.brackets.select.systemverilog",patterns:[{match:"\\$(?![a-z])",name:"constant.language.systemverilog"},{include:"#system-tf"},{include:"#constants"},{include:"#operators"},{include:"#cast-operator"},{include:"#storage-scope"},{match:"[a-zA-Z_][a-zA-Z0-9_$]*",name:"variable.other.identifier.systemverilog"}]},sequence:{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.function.systemverilog"}},match:"[ \\t\\r\\n]*\\b(sequence)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)\\b",name:"meta.sequence.systemverilog"},"storage-scope":{captures:{1:{name:"support.type.scope.systemverilog"},2:{name:"keyword.operator.scope.systemverilog"}},match:"\\b([a-zA-Z_][a-zA-Z0-9_$]*)(::)",name:"meta.scope.systemverilog"},strings:{patterns:[{begin:'`?"',beginCaptures:{0:{name:"punctuation.definition.string.begin.systemverilog"}},end:'"`?',endCaptures:{0:{name:"punctuation.definition.string.end.systemverilog"}},name:"string.quoted.double.systemverilog",patterns:[{match:'\\\\(?:[nt\\\\"vfa]|[0-7]{3}|x[0-9a-fA-F]{2})',name:"constant.character.escape.systemverilog"},{match:"(?x)%\n(\\d+\\$)?\n['\\-+0\n[,;:_]?\n((-?\\d+)|\\*(-?\\d+\\$)?)?\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\n(hh|h|ll|l|j|z|t|L)?\n[xXhHdDoObBcClLvVmMpPsStTuUzZeEfFgG%]",name:"constant.character.format.placeholder.systemverilog"},{match:"%",name:"invalid.illegal.placeholder.systemverilog"},{include:"#fixme-todo"}]},{begin:"(?<=include)[ \\t\\r\\n]*(<)",beginCaptures:{1:{name:"punctuation.definition.string.begin.systemverilog"}},end:">",endCaptures:{0:{name:"punctuation.definition.string.end.systemverilog"}},name:"string.quoted.other.lt-gt.include.systemverilog"}]},"sv-control":{captures:{1:{name:"keyword.control.systemverilog"}},match:"[ \\t\\r\\n]*\\b(initial|always|always_comb|always_ff|always_latch|final|assign|deassign|force|release|wait|forever|repeat|alias|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|clocking|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|matches|solve|before|expect|cross|ref|srandom|struct|chandle|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|wait_order|triggered|randsequence|context|pure|wildcard|new|forkjoin|unique|unique0|priority)\\b"},"sv-control-begin":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"punctuation.definition.label.systemverilog"},3:{name:"entity.name.section.systemverilog"}},match:"[ \\t\\r\\n]*\\b(begin|fork)\\b(?:[ \\t\\r\\n]*(:)[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?",name:"meta.item.begin.systemverilog"},"sv-control-end":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"punctuation.definition.label.systemverilog"},3:{name:"entity.name.section.systemverilog"}},match:"[ \\t\\r\\n]*\\b(end|endmodule|endinterface|endprogram|endchecker|endclass|endpackage|endconfig|endfunction|endtask|endproperty|endsequence|endgroup|endprimitive|endclocking|endgenerate|join|join_any|join_none)\\b(?:[ \\t\\r\\n]*(:)[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*))?",name:"meta.item.end.systemverilog"},"sv-cover-cross":{captures:{2:{name:"entity.name.type.class.systemverilog"},3:{name:"keyword.operator.other.systemverilog"},4:{name:"keyword.control.systemverilog"}},match:"(([a-zA-Z_][a-zA-Z0-9_$]*)[ \\t\\r\\n]*(:))?[ \\t\\r\\n]*(coverpoint|cross)[ \\t\\r\\n]+([a-zA-Z_][a-zA-Z0-9_$]*)",name:"meta.definition.systemverilog"},"sv-definition":{captures:{1:{name:"keyword.control.systemverilog"},2:{name:"entity.name.type.class.systemverilog"}},match:"[ \\t\\r\\n]*\\b(primitive|package|constraint|interface|covergroup|program)[ \\t\\r\\n]+\\b([a-zA-Z_][a-zA-Z0-9_$]*)\\b",name:"meta.definition.systemverilog"},"sv-local":{captures:{1:{name:"keyword.other.systemverilog"}},match:"[ \\t\\r\\n]*\\b(const|static|protected|virtual|localparam|parameter|local)\\b"},"sv-option":{captures:{1:{name:"keyword.cover.systemverilog"}},match:"[ \\t\\r\\n]*\\b(option)\\."},"sv-rand":{match:"[ \\t\\r\\n]*\\b(?:rand|randc)\\b",name:"storage.type.rand.systemverilog"},"sv-std":{match:"\\b(std)\\b::",name:"support.class.systemverilog"},"system-tf":{match:"\\$[a-zA-Z0-9_$][a-zA-Z0-9_$]*\\b",name:"support.function.systemverilog"},tables:{begin:"[ \\t\\r\\n]*\\b(table)\\b",beginCaptures:{1:{name:"keyword.table.systemverilog.begin"}},end:"[ \\t\\r\\n]*\\b(endtable)\\b",endCaptures:{1:{name:"keyword.table.systemverilog.end"}},name:"meta.table.systemverilog",patterns:[{include:"#comments"},{match:"\\b[01xXbBrRfFpPnN]\\b",name:"constant.language.systemverilog"},{match:"[-*?]",name:"constant.language.systemverilog"},{captures:{1:{name:"constant.language.systemverilog"}},match:"\\(([01xX?]{2})\\)"},{match:":",name:"punctuation.definition.label.systemverilog"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{include:"#identifiers"}]},typedef:{begin:"[ \\t\\r\\n]*\\b(?:(typedef)[ \\t\\r\\n]+)(?:([a-zA-Z_][a-zA-Z0-9_$]*)(?:[ \\t\\r\\n]+\\b(signed|unsigned)\\b)?(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?))?(?=[ \\t\\r\\n]*[a-zA-Z_\\\\])",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{patterns:[{include:"#built-ins"},{match:"\\bvirtual\\b",name:"storage.modifier.systemverilog"}]},3:{patterns:[{include:"#modifiers"}]},4:{patterns:[{include:"#selects"}]}},end:";",endCaptures:{0:{name:"punctuation.definition.typedef.end.systemverilog"}},name:"meta.typedef.systemverilog",patterns:[{include:"#identifiers"},{include:"#selects"}]},"typedef-enum-struct-union":{begin:"[ \\t\\r\\n]*\\b(typedef)[ \\t\\r\\n]+(enum|struct|union(?:[ \\t\\r\\n]+tagged)?|class|interface[ \\t\\r\\n]+class)(?:[ \\t\\r\\n]+(?!packed|signed|unsigned)([a-zA-Z_][a-zA-Z0-9_$]*)?(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?))?(?:[ \\t\\r\\n]+(packed))?(?:[ \\t\\r\\n]+(signed|unsigned))?(?=[ \\t\\r\\n]*(?:{|$))",beginCaptures:{1:{name:"keyword.control.systemverilog"},2:{name:"keyword.control.systemverilog"},3:{patterns:[{include:"#built-ins"}]},4:{patterns:[{include:"#selects"}]},5:{name:"storage.modifier.systemverilog"},6:{name:"storage.modifier.systemverilog"}},end:"(?<=})[ \\t\\r\\n]*([a-zA-Z_][a-zA-Z0-9_$]*|(?<=^|[ \\t\\r\\n])\\\\[!-~]+(?=$|[ \\t\\r\\n]))(?:[ \\t\\r\\n]*(\\[[a-zA-Z0-9_:$\\.\\-\\+\\*/%`' \\t\\r\\n\\[\\]\\(\\)]*\\])?)[ \\t\\r\\n]*[,;]",endCaptures:{1:{name:"storage.type.systemverilog"},2:{patterns:[{include:"#selects"}]}},name:"meta.typedef-enum-struct-union.systemverilog",patterns:[{include:"#port-net-parameter"},{include:"#keywords"},{include:"#base-grammar"},{include:"#identifiers"}]}},s="source.systemverilog",i={displayName:e,fileTypes:t,name:n,patterns:r,repository:a,scopeName:s};export{i as default,e as displayName,t as fileTypes,n as name,r as patterns,a as repository,s as scopeName}; diff --git a/lib/dist/grammar/systemd.mjs b/lib/dist/grammar/systemd.mjs new file mode 100644 index 0000000..af60acc --- /dev/null +++ b/lib/dist/grammar/systemd.mjs @@ -0,0 +1 @@ +var e="Systemd Units",n="systemd",a=[{include:"#comments"},{begin:"^\\s*(InaccessableDirectories|InaccessibleDirectories|ReadOnlyDirectories|ReadWriteDirectories|Capabilities|TableId|UseDomainName|IPv6AcceptRouterAdvertisements|SysVStartPriority|StartLimitInterval|RequiresOverridable|RequisiteOverridable|PropagateReloadTo|PropagateReloadFrom|OnFailureIsolate|BindTo)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"invalid.deprecated"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",patterns:[{include:"#comments"},{include:"#variables"},{include:"#quotedString"},{include:"#booleans"},{include:"#timeSpans"},{include:"#sizes"},{include:"#numbers"}]},{begin:"^\\s*(Environment)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{captures:{1:{name:"variable.parameter"},2:{name:"keyword.operator.assignment"}},match:"(?<=\\G|[\\s\"'])([A-Za-z0-9\\_]+)(=)(?=[^\\s\"'])"},{include:"#variables"},{include:"#booleans"},{include:"#numbers"}]},{begin:"^\\s*(OnCalendar)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#calendarShorthands"},{include:"#numbers"}]},{begin:"^\\s*(CapabilityBoundingSet|AmbientCapabilities|AddCapability|DropCapability)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#capabilities"}]},{begin:"^\\s*(Restart)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#restartOptions"}]},{begin:"^\\s*(Type)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#typeOptions"}]},{begin:"^\\s*(Exec(?:Start(?:Pre|Post)?|Reload|Stop(?:Post)?))\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#executablePrefixes"},{include:"#variables"},{include:"#quotedString"},{include:"#booleans"},{include:"#numbers"}]},{begin:"^\\s*([\\w\\-\\.]+)\\s*(=)[ \\t]*",beginCaptures:{1:{name:"entity.name.tag"},2:{name:"keyword.operator.assignment"}},end:"(?<!\\\\)\\n",name:"meta.config-entry.systemd",patterns:[{include:"#comments"},{include:"#variables"},{include:"#quotedString"},{include:"#booleans"},{include:"#timeSpans"},{include:"#sizes"},{include:"#numbers"}]},{include:"#sections"}],t={booleans:{patterns:[{match:"\\b(?<![-\\/\\.])(true|false|on|off|yes|no)(?![-\\/\\.])\\b",name:"constant.language"}]},calendarShorthands:{patterns:[{match:"\\b(?:minute|hour|dai|month|week|quarter|semiannual)ly\\b",name:"constant.language"}]},capabilities:{patterns:[{match:"\\b(?:CAP_(?:AUDIT_CONTROL|AUDIT_READ|AUDIT_WRITE|BLOCK_SUSPEND|BPF|CHECKPOINT_RESTORE|CHOWN|DAC_OVERRIDE|DAC_READ_SEARCH|FOWNER|FSETID|IPC_LOCK|IPC_OWNER|KILL|LEASE|LINUX_IMMUTABLE|MAC_ADMIN|MAC_OVERRIDE|MKNOD|NET_ADMIN|NET_BIND_SERVICE|NET_BROADCAST|NET_RAW|PERFMON|SETFCAP|SETGID|SETPCAP|SETUID|SYS_ADMIN|SYS_BOOT|SYS_CHROOT|SYS_MODULE|SYS_NICE|SYS_PACCT|SYS_PTRACE|SYS_RAWIO|SYS_RESOURCE|SYS_TIME|SYS_TTY_CONFIG|SYSLOG|WAKE_ALARM))\\b",name:"constant.other.systemd"}]},comments:{patterns:[{match:"^\\s*[#;].*\\n",name:"comment.line.number-sign"}]},executablePrefixes:{patterns:[{match:"\\G([@\\-\\:]+(?:\\+|\\!\\!?)?|(?:\\+|\\!\\!?)[@\\-\\:]*)",name:"keyword.operator.prefix.systemd"}]},numbers:{patterns:[{match:"(?<=\\s|=)\\d+(?:\\.\\d+)?(?=[\\s:]|$)",name:"constant.numeric"}]},quotedString:{patterns:[{begin:"(?<=\\G|\\s)'",end:"['\\n]",name:"string.quoted.single",patterns:[{match:"\\\\(?:[abfnrtvs\\\\\"'\\n]|x[0-9A-Fa-f]{2}|[0-8]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",name:"constant.character.escape"}]},{begin:'(?<=\\G|\\s)"',end:'["\\n]',name:"string.quoted.double",patterns:[{match:"\\\\(?:[abfnrtvs\\\\\"'\\n]|x[0-9A-Fa-f]{2}|[0-8]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",name:"constant.character.escape"}]}]},restartOptions:{patterns:[{match:"\\b(no|always|on\\-(?:success|failure|abnormal|abort|watchdog))\\b",name:"constant.language"}]},sections:{patterns:[{match:"^\\s*\\[(Address|Automount|BFIFO|BareUDP|BatmanAdvanced|Bond|Bridge|BridgeFDB|BridgeMDB|BridgeVLAN|CAKE|CAN|Container|Content|ControlledDelay|Coredump|D-BUS Service|DHCP|DHCPPrefixDelegation|DHCPServer|DHCPServerStaticLease|DHCPv4|DHCPv6|DHCPv6PrefixDelegation|DeficitRoundRobinScheduler|DeficitRoundRobinSchedulerClass|Distribution|EnhancedTransmissionSelection|Exec|FairQueueing|FairQueueingControlledDelay|Files|FlowQueuePIE|FooOverUDP|GENEVE|GenericRandomEarlyDetection|HeavyHitterFilter|HierarchyTokenBucket|HierarchyTokenBucketClass|Home|IOCost|IPVLAN|IPVTAP|IPoIB|IPv6AcceptRA|IPv6AddressLabel|IPv6PREF64Prefix|IPv6Prefix|IPv6PrefixDelegation|IPv6RoutePrefix|IPv6SendRA|Image|Install|Journal|Kube|L2TP|L2TPSession|LLDP|Link|Login|MACVLAN|MACVTAP|MACsec|MACsecReceiveAssociation|MACsecReceiveChannel|MACsecTransmitAssociation|Manager|Match|Mount|Neighbor|NetDev|Network|NetworkEmulator|NextHop|OOM|Output|PFIFO|PFIFOFast|PFIFOHeadDrop|PIE|PStore|Packages|Partition|Path|Peer|Pod|QDisc|QuickFairQueueing|QuickFairQueueingClass|Remote|Resolve|Route|RoutingPolicyRule|SR-IOV|Scope|Service|Sleep|Socket|Source|StochasticFairBlue|StochasticFairnessQueueing|Swap|Tap|Target|Time|Timer|TokenBucketFilter|TrafficControlQueueingDiscipline|Transfer|TrivialLinkEqualizer|Tun|Tunnel|UKI|Unit|Upload|VLAN|VRF|VXCAN|VXLAN|Volume|WLAN|WireGuard|WireGuardPeer|Xfrm)\\]",name:"entity.name.section"},{match:"\\s*\\[[\\w-]+\\]",name:"entity.name.unknown-section"}]},sizes:{patterns:[{match:"(?<=\\s|=)\\d+(?:\\.\\d+)?[KMGT](?=[\\s:]|$)",name:"constant.numeric"},{match:"(?<==)infinity(?=[\\s:]|$)",name:"constant.numeric"}]},timeSpans:{patterns:[{match:"\\b(?:\\d+(?:[uμ]s(?:ec)?|ms(?:ec)?|s(?:ec|econds?)?|m(?:in|inutes?)?|h(?:r|ours?)?|d(?:ays?)?|w(?:eeks)?|M|months?|y(?:ears?)?)){1,}\\b",name:"constant.numeric"}]},typeOptions:{patterns:[{match:"\\b(?:simple|exec|forking|oneshot|dbus|notify(?:-reload)?|idle|unicast|local|broadcast|anycast|multicast|blackhole|unreachable|prohibit|throw|nat|xresolve|blackhole|unreachable|prohibit|ad-hoc|station|ap(?:-vlan)?|wds|monitor|mesh-point|p2p-(?:client|go|device)|ocb|nan)\\b",name:"constant.language"}]},variables:{patterns:[{captures:{1:{name:"punctuation.definition.variable.systemd"},2:{name:"variable.other"}},match:"(\\$)([A-Za-z0-9\\_]+)\\b"},{captures:{1:{name:"punctuation.definition.variable.systemd"},2:{name:"variable.other"},3:{name:"punctuation.definition.variable.systemd"}},match:"(\\$\\{)([A-Za-z0-9\\_]+)(\\})"},{match:"%%",name:"constant.other.placeholder"},{match:"%[aAbBCEfgGhHiIjJlLmMnNopPsStTuUvVwW]\\b",name:"constant.other.placeholder"}]}},i="source.systemd",s={displayName:e,name:n,patterns:a,repository:t,scopeName:i};export{s as default,e as displayName,n as name,a as patterns,t as repository,i as scopeName}; diff --git a/lib/dist/grammar/tasl.mjs b/lib/dist/grammar/tasl.mjs new file mode 100644 index 0000000..ac7999b --- /dev/null +++ b/lib/dist/grammar/tasl.mjs @@ -0,0 +1 @@ +var e="Tasl",n=["tasl"],a="tasl",t=[{include:"#comment"},{include:"#namespace"},{include:"#type"},{include:"#class"},{include:"#edge"}],i={class:{begin:"(?:^\\s*)(class)\\b",beginCaptures:{1:{name:"keyword.control.tasl.class"}},end:"$",patterns:[{include:"#key"},{include:"#export"},{include:"#expression"}]},comment:{captures:{1:{name:"punctuation.definition.comment.tasl"}},match:"(#).*$",name:"comment.line.number-sign.tasl"},component:{begin:"->",beginCaptures:{0:{name:"punctuation.separator.tasl.component"}},end:"$",patterns:[{include:"#expression"}]},coproduct:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.block.tasl.coproduct"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.block.tasl.coproduct"}},patterns:[{include:"#comment"},{include:"#term"},{include:"#option"}]},datatype:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"string.regexp"},edge:{begin:"(?:^\\s*)(edge)\\b",beginCaptures:{1:{name:"keyword.control.tasl.edge"}},end:"$",patterns:[{include:"#key"},{include:"#export"},{match:"=/",name:"punctuation.separator.tasl.edge.source"},{match:"/=>",name:"punctuation.separator.tasl.edge.target"},{match:"=>",name:"punctuation.separator.tasl.edge"},{include:"#expression"}]},export:{match:"::",name:"keyword.operator.tasl.export"},expression:{patterns:[{include:"#literal"},{include:"#uri"},{include:"#product"},{include:"#coproduct"},{include:"#reference"},{include:"#optional"},{include:"#identifier"}]},identifier:{captures:{1:{name:"variable"}},match:"([a-zA-Z][a-zA-Z0-9]*)\\b"},key:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"markup.bold entity.name.class"},literal:{patterns:[{include:"#datatype"}]},namespace:{captures:{1:{name:"keyword.control.tasl.namespace"},2:{patterns:[{include:"#namespaceURI"},{match:"[a-zA-Z][a-zA-Z0-9]*\\b",name:"entity.name"}]}},match:"(?:^\\s*)(namespace)\\b(.*)"},namespaceURI:{match:"[a-z]+:[a-zA-Z0-9-._~:\\/?#\\[\\]@!$&'()*+,;%=]+",name:"markup.underline.link"},option:{begin:"<-",beginCaptures:{0:{name:"punctuation.separator.tasl.option"}},end:"$",patterns:[{include:"#expression"}]},optional:{begin:"\\?",beginCaptures:{0:{name:"keyword.operator"}},end:"$",patterns:[{include:"#expression"}]},product:{begin:"{",beginCaptures:{0:{name:"punctuation.definition.block.tasl.product"}},end:"}",endCaptures:{0:{name:"punctuation.definition.block.tasl.product"}},patterns:[{include:"#comment"},{include:"#term"},{include:"#component"}]},reference:{captures:{1:{name:"markup.bold keyword.operator"},2:{patterns:[{include:"#key"}]}},match:"(\\*)\\s*(.*)"},term:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"entity.other.tasl.key"},type:{begin:"(?:^\\s*)(type)\\b",beginCaptures:{1:{name:"keyword.control.tasl.type"}},end:"$",patterns:[{include:"#expression"}]},uri:{match:"<>",name:"variable.other.constant"}},c="source.tasl",r={displayName:e,fileTypes:n,name:a,patterns:t,repository:i,scopeName:c};export{r as default,e as displayName,n as fileTypes,a as name,t as patterns,i as repository,c as scopeName}; diff --git a/lib/dist/grammar/tcl.mjs b/lib/dist/grammar/tcl.mjs new file mode 100644 index 0000000..f07e92f --- /dev/null +++ b/lib/dist/grammar/tcl.mjs @@ -0,0 +1 @@ +var e="Tcl",t=["tcl"],n="\\{\\s*$",a="^\\s*\\}",c="tcl",r=[{begin:"(?<=^|;)\\s*((#))",beginCaptures:{1:{name:"comment.line.number-sign.tcl"},2:{name:"punctuation.definition.comment.tcl"}},contentName:"comment.line.number-sign.tcl",end:"\\n",patterns:[{match:"(\\\\\\\\|\\\\\\n)"}]},{captures:{1:{name:"keyword.control.tcl"}},match:"(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b"},{captures:{1:{name:"keyword.control.tcl"}},match:"(?<=^|})\\s*(then|elseif|else)\\b"},{captures:{1:{name:"keyword.other.tcl"},2:{name:"entity.name.function.tcl"}},match:"(?<=^|{)\\s*(proc)\\s+([^\\s]+)"},{captures:{1:{name:"keyword.other.tcl"}},match:"(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b"},{begin:"(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*",beginCaptures:{1:{name:"keyword.other.tcl"}},comment:"special-case regexp/regsub keyword in order to handle the expression",end:"[\\n;\\]]",patterns:[{match:"\\\\(?:.|\\n)",name:"constant.character.escape.tcl"},{comment:"switch for regexp",match:"-\\w+\\s*"},{applyEndPatternLast:1,begin:"--\\s*",comment:"end of switches",end:"",patterns:[{include:"#regexp"}]},{include:"#regexp"}]},{include:"#escape"},{include:"#variable"},{include:"#operator"},{include:"#numeric"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tcl"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.tcl"}},name:"string.quoted.double.tcl",patterns:[{include:"#escape"},{include:"#variable"},{include:"#embedded"}]}],s={"bare-string":{begin:'(?:^|(?<=\\s))"',comment:"matches a single quote-enclosed word without scoping",end:'"([^\\s\\]]*)',endCaptures:{1:{name:"invalid.illegal.tcl"}},patterns:[{include:"#escape"},{include:"#variable"}]},braces:{begin:"(?:^|(?<=\\s))\\{",comment:"matches a single brace-enclosed word",end:"\\}([^\\s\\]]*)",endCaptures:{1:{name:"invalid.illegal.tcl"}},patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},embedded:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.embedded.end.tcl"}},name:"source.tcl.embedded",patterns:[{include:"source.tcl"}]},escape:{match:"\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)",name:"constant.character.escape.tcl"},"inner-braces":{begin:"\\{",comment:"matches a nested brace in a brace-enclosed word",end:"\\}",patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},numeric:{match:"(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])",name:"constant.numeric.tcl"},operator:{match:"(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)",name:"keyword.operator.tcl"},regexp:{begin:"(?=\\S)(?![\\n;\\]])",comment:"matches a single word, named as a regexp, then swallows the rest of the command",end:"(?=[\\n;\\]])",patterns:[{begin:"(?=[^ \\t\\n;])",end:"(?=[ \\t\\n;])",name:"string.regexp.tcl",patterns:[{include:"#braces"},{include:"#bare-string"},{include:"#escape"},{include:"#variable"}]},{begin:"[ \\t]",comment:"swallow the rest of the command",end:"(?=[\\n;\\]])",patterns:[{include:"#variable"},{include:"#embedded"},{include:"#escape"},{include:"#braces"},{include:"#string"}]}]},string:{applyEndPatternLast:1,begin:'(?:^|(?<=\\s))(?=")',comment:"matches a single quote-enclosed word with scoping",end:"",name:"string.quoted.double.tcl",patterns:[{include:"#bare-string"}]},variable:{captures:{1:{name:"punctuation.definition.variable.tcl"}},match:"(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})",name:"support.function.tcl"}},i="source.tcl",l={displayName:"Tcl",fileTypes:t,foldingStartMarker:n,foldingStopMarker:a,name:"tcl",patterns:r,repository:s,scopeName:i};export{l as default,e as displayName,t as fileTypes,n as foldingStartMarker,a as foldingStopMarker,c as name,r as patterns,s as repository,i as scopeName}; diff --git a/lib/dist/grammar/templ.mjs b/lib/dist/grammar/templ.mjs new file mode 100644 index 0000000..a640302 --- /dev/null +++ b/lib/dist/grammar/templ.mjs @@ -0,0 +1 @@ +var e="Templ",t="templ",n=[{include:"#script-template"},{include:"#css-template"},{include:"#html-template"},{include:"source.go"}],i={"block-element":{begin:"(</?)((?i:address|blockquote|dd|div|section|article|aside|header|footer|nav|menu|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|pre)(?=\\s|\\\\|>))",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},"call-expression":{begin:"({\\!)\\s+",beginCaptures:{0:{name:"start.call-expression.templ"},1:{name:"punctuation.brace.open"}},end:"(})",endCaptures:{0:{name:"end.call-expression.templ"},1:{name:"punctuation.brace.close"}},name:"call-expression.templ",patterns:[{include:"source.go"}]},"case-expression":{begin:"^\\s*case .+?:$",captures:{0:{name:"case.switch.html-template.templ",patterns:[{include:"source.go"}]}},end:"(^\\s*case .+?:$)|(^\\s*default:$)|(\\s*$)",patterns:[{include:"#template-node"}]},"close-element":{begin:"(</?)([a-zA-Z0-9:\\-]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.other.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},"css-template":{begin:"^(css) ([A-z_][A-z_0-9]*\\()",beginCaptures:{1:{name:"keyword.control.go"},2:{patterns:[{include:"source.go"}]}},end:"(?<=^}$)",name:"css-template.templ",patterns:[{begin:"(?<=\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.end.bracket.round.go"}},name:"params.css-template.templ",patterns:[{include:"source.go"}]},{begin:"(?<=\\)) ({)$",beginCaptures:{1:{name:"punctuation.definition.begin.bracket.curly.go"}},end:"^(})$",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"}},name:"block.css-template.templ",patterns:[{begin:"\\s*((?:-(?:webkit|moz|o|ms|khtml)-)?(?:zoom|z-index|y|x|writing-mode|wrap|wrap-through|wrap-inside|wrap-flow|wrap-before|wrap-after|word-wrap|word-spacing|word-break|word|will-change|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|vector-effect|variant|user-zoom|user-select|up|unicode-(bidi|range)|trim|translate|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform-box|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-underline-position|text-transform|text-spacing|text-space-trim|text-space-collapse|text-size-adjust|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-orientation|text-justify|text-indent|text-height|text-emphasis-style|text-emphasis-skip|text-emphasis-position|text-emphasis-color|text-emphasis|text-decoration-style|text-decoration-stroke|text-decoration-skip|text-decoration-line|text-decoration-fill|text-decoration-color|text-decoration|text-combine-upright|text-anchor|text-align-last|text-align-all|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|system|symbols|suffix|style-type|style-position|style-image|style|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|string-set|stretch|stress|stop-opacity|stop-color|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak-as|speak|span|spacing|space-collapse|space|solid-opacity|solid-color|sizing|size-adjust|size|shape-rendering|shape-padding|shape-outside|shape-margin|shape-inside|shape-image-threshold|shadow|scroll-snap-type|scroll-snap-points-y|scroll-snap-points-x|scroll-snap-destination|scroll-snap-coordinate|scroll-behavior|scale|ry|rx|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-merge|ruby-align|ruby|rows|rotation-point|rotation|rotate|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|region-fragment|rate|range|radius|r|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|prefix|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective-origin|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-inline-start|padding-inline-end|padding-bottom|padding-block-start|padding-block-end|padding|pad|pack|overhang|overflow-y|overflow-x|overflow-wrap|overflow-style|overflow-inline|overflow-block|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset-start|offset-inline-start|offset-inline-end|offset-end|offset-block-start|offset-block-end|offset-before|offset-after|offset|object-position|object-fit|numeral|new|negative|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|motion-rotation|motion-path|motion-offset|motion|model|mix-blend-mode|min-zoom|min-width|min-inline-size|min-height|min-block-size|min|max-zoom|max-width|max-lines|max-inline-size|max-height|max-block-size|max|mask-type|mask-size|mask-repeat|mask-position|mask-origin|mask-mode|mask-image|mask-composite|mask-clip|mask-border-width|mask-border-source|mask-border-slice|mask-border-repeat|mask-border-outset|mask-border-mode|mask-border|mask|marquee-style|marquee-speed|marquee-play-count|marquee-loop|marquee-direction|marquee|marks|marker-start|marker-side|marker-mid|marker-end|marker|margin-top|margin-right|margin-left|margin-inline-start|margin-inline-end|margin-bottom|margin-block-start|margin-block-end|margin|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-snap|line-height|line-grid|line-break|line|lighting-color|level|letter-spacing|length|left-width|left-style|left-color|left|label|kerning|justify-self|justify-items|justify-content|justify|iteration-count|isolation|inline-size|inline-box-align|initial-value|initial-size|initial-letter-wrap|initial-letter-align|initial-letter|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-rendering|image-resolution|image-orientation|image|icon|hyphens|hyphenate-limit-zone|hyphenate-limit-lines|hyphenate-limit-last|hyphenate-limit-chars|hyphenate-character|hyphenate|height|header|hanging-punctuation|grid-template-rows|grid-template-columns|grid-template-areas|grid-template|grid-row-start|grid-row-gap|grid-row-end|grid-row|grid-rows|grid-gap|grid-column-start|grid-column-gap|grid-column-end|grid-column|grid-columns|grid-auto-rows|grid-auto-flow|grid-auto-columns|grid-area|grid|glyph-orientation-vertical|glyph-orientation-horizontal|gap|font-weight|font-variant-position|font-variant-numeric|font-variant-ligatures|font-variant-east-asian|font-variant-caps|font-variant-alternates|font-variant|font-synthesis|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|flow-into|flow-from|flow|flood-opacity|flood-color|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|filter|fill-rule|fill-opacity|fill|family|fallback|enable-background|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|cy|cx|cursor|cue-before|cue-after|cue|crop|counter-set|counter-reset|counter-increment|counter|count|corner-shape|corners|continue|content|contain|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-rendering|color-profile|color-interpolation-filters|color-interpolation|color-adjust|color|collapse|clip-rule|clip-path|clip|clear|character|caret-shape|caret-color|caret|caption-side|buffered-rendering|break-inside|break-before|break-after|break|box-suppress|box-snap|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-limit|border-length|border-left-width|border-left-style|border-left-color|border-left|border-inline-start-width|border-inline-start-style|border-inline-start-color|border-inline-start|border-inline-end-width|border-inline-end-style|border-inline-end-color|border-inline-end|border-image-width|border-image-transform|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-clip-top|border-clip-right|border-clip-left|border-clip-bottom|border-clip|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border-block-start-width|border-block-start-style|border-block-start-color|border-block-start|border-block-end-width|border-block-end-style|border-block-end-color|border-block-end|border|bookmark-target|bookmark-level|bookmark-label|bookmark|block-size|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position-y|background-position-x|background-position-inline|background-position-block|background-position|background-origin|background-image|background-color|background-clip|background-blend-mode|background-attachment|background|backface-visibility|backdrop-filter|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|alt|all|alignment-baseline|alignment-adjust|alignment|align-last|align-self|align-items|align-content|align|after|adjust|additive-symbols)):\\s+",beginCaptures:{1:{name:"support.type.property-name.css"}},end:"(?<=;$)",name:"property.css-template.templ",patterns:[{begin:"({)",beginCaptures:{1:{name:"punctuation.definition.begin.bracket.curly.go"}},end:"(})(;)$",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"},2:{name:"punctuation.terminator.rule.css"}},name:"expression.property.css-template.templ",patterns:[{include:"source.go"}]},{captures:{1:{name:"support.type.property-value.css"},2:{name:"punctuation.terminator.rule.css"}},match:"(.*)(;)$",name:"constant.property.css-template.templ"}]}]}]},"default-expression":{begin:"^\\s*default:$",captures:{0:{name:"default.switch.html-template.templ",patterns:[{include:"source.go"}]}},end:"(^\\s*case .+?:$)|(^\\s*default:$)|(\\s*$)",patterns:[{include:"#template-node"}]},element:{begin:"(<)([a-zA-Z0-9:\\-]++)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(>(<)/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"meta.scope.between-tag-pair.html"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},"else-expression":{begin:"\\s+(else)\\s+({)\\s*$",beginCaptures:{1:{name:"keyword.control.go"},2:{name:"punctuation.definition.begin.bracket.curly.go"}},end:"^\\s*(})$",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"}},name:"else.html-template.templ",patterns:[{include:"#template-node"}]},"else-if-expression":{begin:"\\s(else if)\\s",beginCaptures:{1:{name:"keyword.control.go"}},end:"(?<=})",name:"else-if.html-template.templ",patterns:[{begin:"(?<=if\\s)",end:"({)$",endCaptures:{1:{name:"punctuation.definition.begin.bracket.curly.go"}},name:"expression.else-if.html-template.templ",patterns:[{include:"source.go"}]},{begin:"(?<={)$",end:"^\\s*(})",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"}},name:"block.else-if.html-template.templ",patterns:[{include:"#template-node"}]}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#[xX][0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},"for-expression":{begin:"^\\s*for .+{",captures:{0:{name:"meta.embedded.block.go",patterns:[{include:"source.go"}]}},end:"\\s*}\\s*\n",name:"for.html-template.templ",patterns:[{include:"#template-node"}]},"go-comment-block":{begin:"(\\/\\*)",beginCaptures:{1:{name:"punctuation.definition.comment.go"}},end:"(\\*\\/)",endCaptures:{1:{name:"punctuation.definition.comment.go"}},name:"comment.block.go"},"go-comment-double-slash":{begin:"(\\/\\/)",beginCaptures:{1:{name:"punctuation.definition.comment.go"}},end:"(?:\\n|$)",name:"comment.line.double-slash.go"},"html-comment":{begin:"\x3c!--",beginCaptures:{0:{name:"punctuation.definition.comment.html"}},end:"--\x3e",endCaptures:{0:{name:"punctuation.definition.comment.html"}},name:"comment.block.html"},"html-template":{begin:"^(templ) ((?:\\([A-z_][A-z_0-9]* \\*?[A-z_][A-z_0-9]*\\) )?[A-z_][A-z_0-9]*(\\(|\\[))",beginCaptures:{1:{name:"keyword.control.go"},2:{patterns:[{include:"source.go"}]}},end:"(?<=^}$)",name:"html-template.templ",patterns:[{begin:"(?<=\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.end.bracket.round.go"}},name:"params.html-template.templ",patterns:[{include:"source.go"}]},{begin:"(?<=\\[)",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.end.bracket.square.go"}},name:"type-params.html-template.templ",patterns:[{include:"source.go"}]},{begin:"(?<=\\)) ({)$",beginCaptures:{1:{name:"punctuation.definition.begin.bracket.curly.go"}},end:"^(})$",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"}},name:"block.html-template.templ",patterns:[{include:"#template-node"}]}]},"if-expression":{begin:"^\\s*(if)\\s",beginCaptures:{1:{name:"keyword.control.go"}},end:"(?<=})",name:"if.html-template.templ",patterns:[{begin:"(?<=if\\s)",end:"({)$",endCaptures:{1:{name:"punctuation.definition.begin.bracket.curly.go"}},name:"expression.if.html-template.templ",patterns:[{include:"source.go"}]},{begin:"(?<={)$",end:"^\\s*(})",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"}},name:"block.if.html-template.templ",patterns:[{include:"#template-node"}]}]},"import-expression":{patterns:[{begin:"(@)((?:[A-z_][A-z_0-9]*\\.)?[A-z_][A-z_0-9]*(?:\\(|{|$))",beginCaptures:{1:{name:"keyword.control.go"},2:{patterns:[{include:"source.go"}]}},end:"(?<=\\))$|(?<=})$|(?<=$)",name:"import-expression.templ",patterns:[{begin:"(?<=[A-z_0-9]{)",end:"\\s*(})(\\.[A-z_][A-z_0-9]*\\()",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"},2:{patterns:[{include:"source.go"}]}},name:"struct-method.import-expression.templ",patterns:[{include:"source.go"}]},{begin:"(?<=\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.end.bracket.round.go"}},name:"params.import-expression.templ",patterns:[{include:"source.go"}]},{begin:"(?<=\\))\\s({)$",beginCaptures:{1:{name:"punctuation.brace.open"}},end:"^\\s*(})$",endCaptures:{1:{name:"punctuation.brace.close"}},name:"children.import-expression.templ",patterns:[{include:"#template-node"}]}]}]},"inline-element":{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?=\\s|\\\\|>))",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.inline.any.html"}},end:"((?: ?/)?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},"script-element":{begin:"(<)(script)([^>]*)(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#tag-stuff"}]},4:{name:"punctuation.definition.tag.html"}},end:"<\/script>",endCaptures:{0:{patterns:[{include:"#close-element"}]}},name:"meta.tag.script.html",patterns:[{include:"source.js"}]},"script-template":{begin:"^(script) ([A-z_][A-z_0-9]*\\()",beginCaptures:{1:{name:"keyword.control.go"},2:{patterns:[{include:"source.go"}]}},end:"(?<=^}$)",name:"script-template.templ",patterns:[{begin:"(?<=\\()",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.end.bracket.round.go"}},name:"params.script-template.templ",patterns:[{include:"source.go"}]},{begin:"(?<=\\)) ({)$",beginCaptures:{1:{name:"punctuation.definition.begin.bracket.curly.go"}},end:"^(})$",endCaptures:{1:{name:"punctuation.definition.end.bracket.curly.go"}},name:"block.script-template.templ",patterns:[{include:"source.js"}]}]},sgml:{begin:"<!",captures:{0:{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(?i:DOCTYPE)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},"string-expression":{begin:"{\\s+",beginCaptures:{0:{name:"start.string-expression.templ"}},end:"}",endCaptures:{0:{name:"end.string-expression.templ"}},name:"expression.html-template.templ",patterns:[{include:"source.go"}]},"style-element":{begin:"(<)(style)([^>]*)(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"},3:{patterns:[{include:"#tag-stuff"}]},4:{name:"punctuation.definition.tag.html"}},end:"</style>",endCaptures:{0:{patterns:[{include:"#close-element"}]}},name:"meta.tag.style.html",patterns:[{include:"source.css"}]},"switch-expression":{begin:"^\\s*switch .+?{$",captures:{0:{name:"meta.embedded.block.go",patterns:[{include:"source.go"}]}},end:"^\\s*}$",name:"switch.html-template.templ",patterns:[{include:"#template-node"},{include:"#case-expression"},{include:"#default-expression"}]},"tag-else-attribute":{begin:"\\s(else)\\s({)$",beginCaptures:{1:{name:"keyword.control.go"},2:{name:"punctuation.brace.open"}},end:"^\\s*(})$",endCaptures:{1:{name:"punctuation.brace.close"}},name:"else.attribute.html",patterns:[{include:"#tag-stuff"}]},"tag-else-if-attribute":{begin:"\\s(else if)\\s",beginCaptures:{1:{name:"keyword.control.go"}},end:"(?<=})",name:"else-if.attribute.html",patterns:[{begin:"(?<=if\\s)",end:"({)$",endCaptures:{1:{name:"punctuation.brace.open"}},name:"expression.else-if.attribute.html",patterns:[{include:"source.go"}]},{begin:"(?<={)$",end:"^\\s*(})",endCaptures:{1:{name:"punctuation.brace.close"}},name:"block.else-if.attribute.html",patterns:[{include:"#tag-stuff"}]}]},"tag-generic-attribute":{match:"(?<=[^=])\\b([a-zA-Z0-9:-]+)",name:"entity.other.attribute-name.html"},"tag-id-attribute":{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:"(?!\\G)(?<='|\"|[^\\s<>/])",name:"meta.attribute-with-value.id.html",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#entities"}]},{captures:{0:{name:"meta.toc-list.id.html"}},match:"(?<==)(?:[^\\s{}<>/'\"]|/(?!>))+",name:"string.unquoted.html"}]},"tag-if-attribute":{begin:"^\\s*(if)\\s",beginCaptures:{1:{name:"keyword.control.go"}},end:"(?<=})",name:"if.attribute.html",patterns:[{begin:"(?<=if\\s)",end:"({)$",endCaptures:{1:{name:"punctuation.brace.open"}},name:"expression.if.attribute.html",patterns:[{include:"source.go"}]},{begin:"(?<={)$",end:"^\\s*(})",endCaptures:{1:{name:"punctuation.brace.close"}},name:"block.if.attribute.html",patterns:[{include:"#tag-stuff"}]}]},"tag-stuff":{patterns:[{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-expression"},{include:"#tag-if-attribute"},{include:"#tag-else-if-attribute"},{include:"#tag-else-attribute"}]},"template-node":{patterns:[{include:"#string-expression"},{include:"#call-expression"},{include:"#import-expression"},{include:"#script-element"},{include:"#style-element"},{include:"#element"},{include:"#html-comment"},{include:"#go-comment-block"},{include:"#go-comment-double-slash"},{include:"#sgml"},{include:"#block-element"},{include:"#inline-element"},{include:"#close-element"},{include:"#else-if-expression"},{include:"#if-expression"},{include:"#else-expression"},{include:"#for-expression"},{include:"#switch-expression"}]}},a="source.templ",o={displayName:e,name:t,patterns:n,repository:i,scopeName:a};export{o as default,e as displayName,t as name,n as patterns,i as repository,a as scopeName}; diff --git a/lib/dist/grammar/terraform.mjs b/lib/dist/grammar/terraform.mjs new file mode 100644 index 0000000..a780f73 --- /dev/null +++ b/lib/dist/grammar/terraform.mjs @@ -0,0 +1 @@ +var e="Terraform",n=["tf","tfvars"],t="terraform",a=[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}],c={attribute_access:{begin:"\\.(?!\\*)",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Matches traversal attribute access such as .attr",end:"[[:alpha:]][\\w-]*|\\d*",endCaptures:{0:{patterns:[{comment:"Attribute name",match:"(?!null|false|true)[[:alpha:]][\\w-]*",name:"variable.other.member.hcl"},{comment:"Optional attribute index",match:"\\d+",name:"constant.numeric.integer.hcl"}]}}},attribute_definition:{captures:{1:{name:"punctuation.section.parens.begin.hcl"},2:{name:"variable.other.readwrite.hcl"},3:{name:"punctuation.section.parens.end.hcl"},4:{name:"keyword.operator.assignment.hcl"}},comment:'Identifier "=" with optional parens',match:"(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*",name:"variable.declaration.hcl"},attribute_splat:{begin:"\\.",beginCaptures:{0:{name:"keyword.operator.accessor.hcl"}},comment:"Legacy attribute-only splat",end:"\\*",endCaptures:{0:{name:"keyword.operator.splat.hcl"}}},block:{begin:'([\\w][\\-\\w]*)([\\s\\"\\-\\w]*)(\\{)',beginCaptures:{1:{patterns:[{comment:"Known block type",match:"\\bdata|check|import|locals|module|output|provider|resource|terraform|variable\\b",name:"entity.name.type.terraform"},{comment:"Unknown block type",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"entity.name.type.hcl"}]},2:{patterns:[{comment:"Block label",match:'[\\"\\-\\w]+',name:"variable.other.enummember.hcl"}]},3:{name:"punctuation.section.block.begin.hcl"}},comment:'This will match Terraform blocks like `resource "aws_instance" "web" {` or `module {`',end:"\\}",endCaptures:{0:{name:"punctuation.section.block.end.hcl"}},name:"meta.block.hcl",patterns:[{include:"#comments"},{include:"#attribute_definition"},{include:"#block"},{include:"#expressions"}]},block_inline_comments:{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence",end:"\\*/",name:"comment.block.hcl"},brackets:{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{comment:"Splat operator",match:"\\*",name:"keyword.operator.splat.hcl"},{include:"#comma"},{include:"#comments"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{include:"#expressions"},{include:"#local_identifiers"}]},char_escapes:{comment:"Character Escapes",match:'\\\\[nrt"\\\\]|\\\\u(\\h{8}|\\h{4})',name:"constant.character.escape.hcl"},comma:{comment:"Commas - used in certain expressions",match:"\\,",name:"punctuation.separator.hcl"},comments:{patterns:[{include:"#hash_line_comments"},{include:"#double_slash_line_comments"},{include:"#block_inline_comments"}]},double_slash_line_comments:{begin:"//",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.double-slash.hcl"},expressions:{patterns:[{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#brackets"},{include:"#objects"},{include:"#attribute_access"},{include:"#attribute_splat"},{include:"#functions"},{include:"#parens"}]},for_expression_body:{patterns:[{comment:"in keyword",match:"\\bin\\b",name:"keyword.operator.word.hcl"},{comment:"if keyword",match:"\\bif\\b",name:"keyword.control.conditional.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},functions:{begin:"([:\\-\\w]+)(\\()",beginCaptures:{1:{patterns:[{match:"\\b(core::)?(abs|abspath|alltrue|anytrue|base64decode|base64encode|base64gzip|base64sha256|base64sha512|basename|bcrypt|can|ceil|chomp|chunklist|cidrhost|cidrnetmask|cidrsubnet|cidrsubnets|coalesce|coalescelist|compact|concat|contains|csvdecode|dirname|distinct|element|endswith|file|filebase64|filebase64sha256|filebase64sha512|fileexists|filemd5|fileset|filesha1|filesha256|filesha512|flatten|floor|format|formatdate|formatlist|indent|index|join|jsondecode|jsonencode|keys|length|log|lookup|lower|matchkeys|max|md5|merge|min|nonsensitive|one|parseint|pathexpand|plantimestamp|pow|range|regex|regexall|replace|reverse|rsadecrypt|sensitive|setintersection|setproduct|setsubtract|setunion|sha1|sha256|sha512|signum|slice|sort|split|startswith|strcontains|strrev|substr|sum|templatefile|textdecodebase64|textencodebase64|timeadd|timecmp|timestamp|title|tobool|tolist|tomap|tonumber|toset|tostring|transpose|trim|trimprefix|trimspace|trimsuffix|try|upper|urlencode|uuid|uuidv5|values|yamldecode|yamlencode|zipmap)\\b",name:"support.function.builtin.terraform"},{match:"\\bprovider::[[:alpha:]][\\w_-]*::[[:alpha:]][\\w_-]*\\b",name:"support.function.provider.terraform"}]},2:{name:"punctuation.section.parens.begin.hcl"}},comment:"Built-in function calls",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},name:"meta.function-call.hcl",patterns:[{include:"#comments"},{include:"#expressions"},{include:"#comma"}]},hash_line_comments:{begin:"#",captures:{0:{name:"punctuation.definition.comment.hcl"}},comment:"Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence",end:"$\\n?",name:"comment.line.number-sign.hcl"},hcl_type_keywords:{comment:"Type keywords known to HCL.",match:"\\b(any|string|number|bool|list|set|map|tuple|object)\\b",name:"storage.type.hcl"},heredoc:{begin:"(\\<\\<\\-?)\\s*(\\w+)\\s*$",beginCaptures:{1:{name:"keyword.operator.heredoc.hcl"},2:{name:"keyword.control.heredoc.hcl"}},comment:"String Heredoc",end:"^\\s*\\2\\s*$",endCaptures:{0:{name:"keyword.control.heredoc.hcl"}},name:"string.unquoted.heredoc.hcl",patterns:[{include:"#string_interpolation"}]},inline_for_expression:{captures:{1:{name:"keyword.control.hcl"},2:{patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]}},match:"(for)\\b(.*)\\n"},inline_if_expression:{begin:"(if)\\b",beginCaptures:{1:{name:"keyword.control.conditional.hcl"}},end:"\\n",patterns:[{include:"#expressions"},{include:"#comments"},{include:"#comma"},{include:"#local_identifiers"}]},language_constants:{comment:"Language Constants",match:"\\b(true|false|null)\\b",name:"constant.language.hcl"},literal_values:{patterns:[{include:"#numeric_literals"},{include:"#language_constants"},{include:"#string_literals"},{include:"#heredoc"},{include:"#hcl_type_keywords"},{include:"#named_value_references"}]},local_identifiers:{comment:"Local Identifiers",match:"\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b",name:"variable.other.readwrite.hcl"},named_value_references:{comment:"Constant values available only to Terraform.",match:"\\b(var|local|module|data|path|terraform)\\b",name:"variable.other.readwrite.terraform"},numeric_literals:{patterns:[{captures:{1:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, no fraction, optional exponent",match:"\\b\\d+([Ee][+-]?)\\d+\\b",name:"constant.numeric.float.hcl"},{captures:{1:{name:"punctuation.separator.decimal.hcl"},2:{name:"punctuation.separator.exponent.hcl"}},comment:"Integer, fraction, optional exponent",match:"\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b",name:"constant.numeric.float.hcl"},{comment:"Integers",match:"\\b\\d+\\b",name:"constant.numeric.integer.hcl"}]},object_for_expression:{begin:"(\\{)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.braces.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"},{include:"#for_expression_body"}]},object_key_values:{patterns:[{include:"#comments"},{include:"#literal_values"},{include:"#operators"},{include:"#tuple_for_expression"},{include:"#object_for_expression"},{include:"#heredoc"},{include:"#functions"}]},objects:{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.hcl"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.hcl"}},name:"meta.braces.hcl",patterns:[{include:"#comments"},{include:"#objects"},{include:"#inline_for_expression"},{include:"#inline_if_expression"},{captures:{1:{name:"meta.mapping.key.hcl variable.other.readwrite.hcl"},2:{name:"keyword.operator.assignment.hcl",patterns:[{match:"\\=\\>",name:"storage.type.function.hcl"}]}},comment:"Literal, named object key",match:"\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\>?)\\s*"},{captures:{0:{patterns:[{include:"#named_value_references"}]},1:{name:"meta.mapping.key.hcl string.quoted.double.hcl"},2:{name:"punctuation.definition.string.begin.hcl"},3:{name:"punctuation.definition.string.end.hcl"},4:{name:"keyword.operator.hcl"}},comment:"String object key",match:'\\b((").*("))\\s*(\\=)\\s*'},{begin:"^\\s*\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Computed object key (any expression between parens)",end:"(\\))\\s*(=|:)\\s*",endCaptures:{1:{name:"punctuation.section.parens.end.hcl"},2:{name:"keyword.operator.hcl"}},name:"meta.mapping.key.hcl",patterns:[{include:"#named_value_references"},{include:"#attribute_access"}]},{include:"#object_key_values"}]},operators:{patterns:[{match:"\\>\\=",name:"keyword.operator.hcl"},{match:"\\<\\=",name:"keyword.operator.hcl"},{match:"\\=\\=",name:"keyword.operator.hcl"},{match:"\\!\\=",name:"keyword.operator.hcl"},{match:"\\+",name:"keyword.operator.arithmetic.hcl"},{match:"\\-",name:"keyword.operator.arithmetic.hcl"},{match:"\\*",name:"keyword.operator.arithmetic.hcl"},{match:"\\/",name:"keyword.operator.arithmetic.hcl"},{match:"\\%",name:"keyword.operator.arithmetic.hcl"},{match:"\\&\\&",name:"keyword.operator.logical.hcl"},{match:"\\|\\|",name:"keyword.operator.logical.hcl"},{match:"\\!",name:"keyword.operator.logical.hcl"},{match:"\\>",name:"keyword.operator.hcl"},{match:"\\<",name:"keyword.operator.hcl"},{match:"\\?",name:"keyword.operator.hcl"},{match:"\\.\\.\\.",name:"keyword.operator.hcl"},{match:"\\:",name:"keyword.operator.hcl"},{match:"\\=\\>",name:"keyword.operator.hcl"}]},parens:{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.hcl"}},comment:"Parens - matched *after* function syntax",end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.hcl"}},patterns:[{include:"#comments"},{include:"#expressions"}]},string_interpolation:{begin:"(?<![%$])([%$]{)",beginCaptures:{1:{name:"keyword.other.interpolation.begin.hcl"}},comment:"String interpolation",end:"\\}",endCaptures:{0:{name:"keyword.other.interpolation.end.hcl"}},name:"meta.interpolation.hcl",patterns:[{comment:"Trim left whitespace",match:"\\~\\s",name:"keyword.operator.template.left.trim.hcl"},{comment:"Trim right whitespace",match:"\\s\\~",name:"keyword.operator.template.right.trim.hcl"},{comment:"if/else/endif and for/in/endfor directives",match:"\\b(if|else|endif|for|in|endfor)\\b",name:"keyword.control.hcl"},{include:"#expressions"},{include:"#local_identifiers"}]},string_literals:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.hcl"}},comment:"Strings",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.hcl"}},name:"string.quoted.double.hcl",patterns:[{include:"#string_interpolation"},{include:"#char_escapes"}]},tuple_for_expression:{begin:"(\\[)\\s?(for)\\b",beginCaptures:{1:{name:"punctuation.section.brackets.begin.hcl"},2:{name:"keyword.control.hcl"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.hcl"}},patterns:[{include:"#for_expression_body"}]}},o="source.hcl.terraform",r={displayName:e,fileTypes:n,name:t,patterns:a,repository:c,scopeName:o};export{r as default,e as displayName,n as fileTypes,t as name,a as patterns,c as repository,o as scopeName}; diff --git a/lib/dist/grammar/tex.mjs b/lib/dist/grammar/tex.mjs new file mode 100644 index 0000000..ca7302a --- /dev/null +++ b/lib/dist/grammar/tex.mjs @@ -0,0 +1 @@ +var e="TeX",t="tex",a=[{begin:"(?<=^\\s*)((\\\\)iffalse)",beginCaptures:{1:{name:"keyword.control.tex"},2:{name:"punctuation.definition.keyword.tex"}},contentName:"comment.line.percentage.tex",end:"(?<=^\\s*)((\\\\)(?:else|fi))",endCaptures:{1:{name:"keyword.control.tex"},2:{name:"punctuation.definition.keyword.tex"}},patterns:[{include:"#comment"},{include:"#conditionals"}]},{captures:{1:{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",name:"keyword.control.tex"},{captures:{1:{name:"keyword.control.catcode.tex"},2:{name:"punctuation.definition.keyword.tex"},3:{name:"punctuation.separator.key-value.tex"},4:{name:"constant.numeric.category.tex"}},match:"((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)",name:"meta.catcode.tex"},{include:"#comment"},{match:"[\\[\\]]",name:"punctuation.definition.brackets.tex"},{begin:"(\\$\\$|\\$)",beginCaptures:{1:{name:"punctuation.definition.string.begin.tex"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.tex"}},name:"meta.math.block.tex support.class.math.block.tex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.tex"},{include:"#math"},{include:"$self"}]},{match:"\\\\\\\\",name:"keyword.control.newline.tex"},{captures:{1:{name:"punctuation.definition.function.tex"}},match:"(\\\\)_*[\\p{Alphabetic}@]+(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*",name:"support.class.general.latex3.tex"},{captures:{1:{name:"punctuation.definition.function.tex"}},match:"(\\.)[\\p{Alphabetic}@]+(?:_[\\p{Alphabetic}@]+)*:[NncVvoxefTFpwD]*",name:"support.class.general.latex3.tex"},{captures:{1:{name:"punctuation.definition.function.tex"}},match:"(\\\\)(?:[,;]|(?:[\\p{Alphabetic}@]+))",name:"support.function.general.tex"},{captures:{1:{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)[^a-zA-Z@]",name:"constant.character.escape.tex"}],n={braces:{begin:"(?<!\\\\)\\{",beginCaptures:{0:{name:"punctuation.group.begin.tex"}},end:"(?<!\\\\)\\}",endCaptures:{0:{name:"punctuation.group.end.tex"}},name:"meta.group.braces.tex",patterns:[{include:"#braces"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tex"}},end:"(?!\\G)",patterns:[{begin:"%:?",beginCaptures:{0:{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.tex"},{begin:"^(%!TEX) (\\S*) =",beginCaptures:{1:{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.directive.tex"}]},conditionals:{begin:"(?<=^\\s*)\\\\if[a-z]*",end:"(?<=^\\s*)\\\\fi",patterns:[{include:"#comment"},{include:"#conditionals"}]},math:{patterns:[{begin:"((\\\\)(?:text|mbox))(\\{)",beginCaptures:{1:{name:"constant.other.math.tex"},2:{name:"punctuation.definition.function.tex"},3:{name:"punctuation.definition.arguments.begin.tex meta.text.normal.tex"}},contentName:"meta.text.normal.tex",end:"\\}",endCaptures:{0:{name:"punctuation.definition.arguments.end.tex meta.text.normal.tex"}},patterns:[{include:"#math"},{include:"$self"}]},{match:"\\\\{|\\\\}",name:"punctuation.math.bracket.pair.tex"},{match:"\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\(\\[\\<\\>\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)",name:"punctuation.math.bracket.pair.big.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z@])",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b",name:"constant.character.math.tex"},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b",name:"constant.other.math.tex"},{begin:"((\\\\)Sexpr(\\{))",beginCaptures:{1:{name:"support.function.sexpr.math.tex"},2:{name:"punctuation.definition.function.math.tex"},3:{name:"punctuation.section.embedded.begin.math.tex"}},contentName:"support.function.sexpr.math.tex",end:"(((\\})))",endCaptures:{1:{name:"support.function.sexpr.math.tex"},2:{name:"punctuation.section.embedded.end.math.tex"},3:{name:"source.r"}},name:"meta.embedded.line.r",patterns:[{begin:"\\G(?!\\})",end:"(?=\\})",name:"source.r",patterns:[{include:"source.r"}]}]},{captures:{1:{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(?!begin\\{|verb)([A-Za-z]+)",name:"constant.other.general.math.tex"},{match:"(?<!\\\\)\\{",name:"punctuation.math.begin.bracket.curly.tex"},{match:"(?<!\\\\)\\}",name:"punctuation.math.end.bracket.curly.tex"},{match:"(?<!\\\\)\\(",name:"punctuation.math.begin.bracket.round.tex"},{match:"(?<!\\\\)\\)",name:"punctuation.math.end.bracket.round.tex"},{match:"(([0-9]*[\\.][0-9]+)|[0-9]+)",name:"constant.numeric.math.tex"},{match:"[\\+\\*/_\\^-]",name:"punctuation.math.operator.tex"}]}},r="text.tex",o={displayName:"TeX",name:"tex",patterns:a,repository:n,scopeName:r};export{o as default,e as displayName,t as name,a as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/toml.mjs b/lib/dist/grammar/toml.mjs new file mode 100644 index 0000000..0110a2a --- /dev/null +++ b/lib/dist/grammar/toml.mjs @@ -0,0 +1 @@ +var n="TOML",e=["toml"],t="toml",a=[{include:"#comments"},{include:"#groups"},{include:"#key_pair"},{include:"#invalid"}],i={comments:{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.toml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.toml"}},end:"\\n",name:"comment.line.number-sign.toml"}]},groups:{patterns:[{captures:{1:{name:"punctuation.definition.section.begin.toml"},2:{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},3:{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[)([^\\[\\]]*)(\\])",name:"meta.group.toml"},{captures:{1:{name:"punctuation.definition.section.begin.toml"},2:{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},3:{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])",name:"meta.group.double.toml"}]},invalid:{match:"\\S+(\\s*(?=\\S))?",name:"invalid.illegal.not-allowed-here.toml"},key_pair:{patterns:[{begin:"([A-Za-z0-9_-]+)\\s*(=)\\s*",captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:'((")(.*?)("))\\s*(=)\\s*',captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.definition.variable.begin.toml"},3:{patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"},{match:'"',name:"invalid.illegal.not-allowed-here.toml"}]},4:{name:"punctuation.definition.variable.end.toml"},5:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"((')([^']*)('))\\s*(=)\\s*",captures:{1:{name:"variable.other.key.toml"},2:{name:"punctuation.definition.variable.begin.toml"},4:{name:"punctuation.definition.variable.end.toml"},5:{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"(?x)\n(\n(\n(?:\n[A-Za-z0-9_-]+\n| \" (?:[^\"\\\\]|\\\\.)* \"\n| ' [^']* '\n)\n(?:\n\\s* \\. \\s*\n| (?= \\s* =)\n)\n){2,}\n)\n\\s*(=)\\s*\n",captures:{1:{name:"variable.other.key.toml",patterns:[{match:"\\.",name:"punctuation.separator.variable.toml"},{captures:{1:{name:"punctuation.definition.variable.begin.toml"},2:{patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"}]},3:{name:"punctuation.definition.variable.end.toml"}},match:'(")((?:[^"\\\\]|\\\\.)*)(")'},{captures:{1:{name:"punctuation.definition.variable.begin.toml"},2:{name:"punctuation.definition.variable.end.toml"}},match:"(')[^']*(')"}]},3:{name:"punctuation.separator.key-value.toml"}},comment:"Dotted key",end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]}]},primatives:{patterns:[{begin:'\\G"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:'"{3,5}',endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.double.toml",patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\\\n]',name:"invalid.illegal.escape.toml"}]},{begin:'\\G"',beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.double.toml",patterns:[{match:'\\\\([btnfr"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',name:"constant.character.escape.toml"},{match:'\\\\[^btnfr"\\\\]',name:"invalid.illegal.escape.toml"}]},{begin:"\\G'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:"'{3,5}",endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.single.toml"},{begin:"\\G'",beginCaptures:{0:{name:"punctuation.definition.string.begin.toml"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.single.toml"},{match:"\\G(?x)\n[0-9]{4}\n-\n(0[1-9]|1[012])\n-\n(?!00|3[2-9])[0-3][0-9]\n(\n[Tt ]\n(?!2[5-9])[0-2][0-9]\n:\n[0-5][0-9]\n:\n(?!6[1-9])[0-6][0-9]\n(\\.[0-9]+)?\n(\nZ\n| [+-](?!2[5-9])[0-2][0-9]:[0-5][0-9]\n)?\n)?\n",name:"constant.other.date.toml"},{match:"\\G(?x)\n(?!2[5-9])[0-2][0-9]\n:\n[0-5][0-9]\n:\n(?!6[1-9])[0-6][0-9]\n(\\.[0-9]+)?\n",name:"constant.other.time.toml"},{match:"\\G(true|false)",name:"constant.language.boolean.toml"},{match:"\\G0x\\h(\\h|_\\h)*",name:"constant.numeric.hex.toml"},{match:"\\G0o[0-7]([0-7]|_[0-7])*",name:"constant.numeric.octal.toml"},{match:"\\G0b[01]([01]|_[01])*",name:"constant.numeric.binary.toml"},{match:"\\G[+-]?(inf|nan)",name:"constant.numeric.toml"},{match:"(?x)\n\\G\n(\n[+-]?\n(\n0\n| ([1-9](([0-9]|_[0-9])+)?)\n)\n)\n(?=[.eE])\n(\n\\.\n([0-9](([0-9]|_[0-9])+)?)\n)?\n(\n[eE]\n([+-]?[0-9](([0-9]|_[0-9])+)?)\n)?\n",name:"constant.numeric.float.toml"},{match:"(?x)\n\\G\n(\n[+-]?\n(\n0\n| ([1-9](([0-9]|_[0-9])+)?)\n)\n)\n",name:"constant.numeric.integer.toml"},{begin:"\\G\\[",beginCaptures:{0:{name:"punctuation.definition.array.begin.toml"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.array.end.toml"}},name:"meta.array.toml",patterns:[{begin:"(?=[\"'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\[|\\{)",end:",|(?=])",endCaptures:{0:{name:"punctuation.separator.array.toml"}},patterns:[{include:"#primatives"},{include:"#comments"},{include:"#invalid"}]},{include:"#comments"},{include:"#invalid"}]},{begin:"\\G\\{",beginCaptures:{0:{name:"punctuation.definition.inline-table.begin.toml"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.inline-table.end.toml"}},name:"meta.inline-table.toml",patterns:[{begin:"(?=\\S)",end:",|(?=})",endCaptures:{0:{name:"punctuation.separator.inline-table.toml"}},patterns:[{include:"#key_pair"}]},{include:"#comments"}]}]}},m="source.toml",o={displayName:n,fileTypes:e,name:t,patterns:a,repository:i,scopeName:m};export{o as default,n as displayName,e as fileTypes,t as name,a as patterns,i as repository,m as scopeName}; diff --git a/lib/dist/grammar/ts-tags.mjs b/lib/dist/grammar/ts-tags.mjs new file mode 100644 index 0000000..407db4a --- /dev/null +++ b/lib/dist/grammar/ts-tags.mjs @@ -0,0 +1 @@ +var s="TypeScript with Tags",a="ts-tags",e=[{include:"source.ts"}],t="source.ts.tags",p={displayName:s,name:a,patterns:e,scopeName:t};export{p as default,s as displayName,a as name,e as patterns,t as scopeName}; diff --git a/lib/dist/grammar/tsv.mjs b/lib/dist/grammar/tsv.mjs new file mode 100644 index 0000000..bb25166 --- /dev/null +++ b/lib/dist/grammar/tsv.mjs @@ -0,0 +1 @@ +var t="TSV",a=["tsv","tab"],n="tsv",e=[{captures:{1:{name:"rainbow1"},2:{name:"keyword.rainbow2"},3:{name:"entity.name.function.rainbow3"},4:{name:"comment.rainbow4"},5:{name:"string.rainbow5"},6:{name:"variable.parameter.rainbow6"},7:{name:"constant.numeric.rainbow7"},8:{name:"entity.name.type.rainbow8"},9:{name:"markup.bold.rainbow9"},10:{name:"invalid.rainbow10"}},match:"([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)([^\\t]*\\t?)",name:"rainbowgroup"}],r="text.tsv",m={displayName:"TSV",fileTypes:a,name:"tsv",patterns:e,scopeName:r};export{m as default,t as displayName,a as fileTypes,n as name,e as patterns,r as scopeName}; diff --git a/lib/dist/grammar/tsx.mjs b/lib/dist/grammar/tsx.mjs new file mode 100644 index 0000000..58f99b7 --- /dev/null +++ b/lib/dist/grammar/tsx.mjs @@ -0,0 +1 @@ +var e="TSX",n="tsx",t=[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],a={"access-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.objectliteral.tsx",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},name:"meta.array.literal.tsx",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.tsx"},2:{name:"variable.parameter.tsx"}},match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",name:"meta.arrow.tsx"},{begin:"(?x) (?:\n(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n(?=\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n)\n)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.tsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"arrow-return-type":{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.tsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.tsx"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.tsx"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{include:"#jsx"}]},"class-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.class.tsx"}},end:"(?<=\\})",name:"meta.class.tsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.class.tsx"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.type.class.tsx"}},end:"(?<=\\})",name:"meta.class.tsx",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},name:"comment.block.documentation.tsx",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"},2:{name:"storage.type.internaldeclaration.tsx"},3:{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.tsx"}},name:"comment.block.tsx"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},contentName:"comment.line.double-slash.tsx",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.tsx"},{captures:{1:{name:"keyword.control.loop.tsx"},2:{name:"entity.name.label.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.tsx"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.tsx"},{include:"#if-statement"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.tsx"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.block.tsx",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"}]},decorator:{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",name:"meta.decorator.tsx",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.tsx",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.tsx",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},name:"meta.parameter.object-binding-pattern.tsx",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},name:"meta.paramter.array-binding-pattern.tsx",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"variable.parameter.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.tsx",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.tsx",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.tsx"}},end:"(?=$)",name:"comment.line.triple-slash.directive.tsx",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.tsx"},2:{name:"entity.name.tag.directive.tsx"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.tsx"}},name:"meta.tag.tsx",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.tsx"},{match:"=",name:"keyword.operator.assignment.tsx"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"(?x)\n((@)author)\n\\s+\n(\n[^@\\s<>*/]\n(?:[^@<>*/]|\\*[^/])*\n)\n(?:\n\\s*\n(<)\n([^>\\s]+)\n(>)\n)?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)\n\\s+ (as) \\s+\n((?:[^@\\s*/]|\\*[^/])+)"},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"(</)caption(>)|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.tsx"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)see)\n\\s+\n(?:\n\n(\n(?=https?://)\n(?:[^\\s*]|\\*[^/])+\n)\n|\n\n(\n(?!\n\nhttps?://\n|\n\n(?:\\[[^\\[\\]]*\\])?\n{@(?:link|linkcode|linkplain|tutorial)\\b\n)\n\n(?:[^@\\s*/]|\\*[^/])+\n)\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n(?:\n\\s* , \\s*\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)*\n)"},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n(\n(@)\n(?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)"},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.tsx"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n(?:\\[\\])?\n\\.\n[\\w$]+\n)*\n(?:\n\\s*\n(=)\n\\s*\n(\n\n(?>\n\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |\n'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |\n\\[ (?:(?:\\*(?!/))|[^*])*? \\] |\n(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*\n)*\n)\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",name:"variable.other.jsdoc"}]},{begin:"(?x)\n(\n(@)\n(?:define|enum|exception|export|extends|lends|implements|modifies\n|namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n|yields?)\n)\n\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n(\n(@)\n(?:alias|augments|callback|constructs|emits|event|fires|exports?\n|extends|external|function|func|host|lends|listens|interface|memberof!?\n|method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n(?:\n[^{}@\\s*] | \\*[^/]\n)+\n)"},{begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.enum.tsx"},5:{name:"entity.name.type.enum.tsx"}},end:"(?<=\\})",name:"meta.enum.declaration.tsx",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{0:{name:"variable.other.enummember.tsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"export-declaration":{patterns:[{captures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.as.tsx"},3:{name:"storage.type.namespace.tsx"},4:{name:"entity.name.type.module.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"},3:{name:"keyword.operator.assignment.tsx"},4:{name:"keyword.control.default.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.default.tsx",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.tsx",patterns:[{include:"#import-export-declaration"}]}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.tsx"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.tsx"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.tsx"},2:{name:"keyword.generator.asterisk.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.tsx"},{include:"#typeof-operator"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.tsx"},{captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.tsx"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.tsx"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.tsx"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.tsx"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.tsx"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.tsx"},{captures:{1:{name:"keyword.operator.logical.tsx"},2:{name:"keyword.operator.assignment.compound.tsx"},3:{name:"keyword.operator.arithmetic.tsx"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.tsx"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.tsx"},{match:"\\=",name:"keyword.operator.assignment.tsx"},{match:"--",name:"keyword.operator.decrement.tsx"},{match:"\\+\\+",name:"keyword.operator.increment.tsx"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.tsx"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.tsx"},2:{name:"keyword.operator.arithmetic.tsx"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",name:"meta.field.declaration.tsx",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.tsx entity.name.function.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"keyword.operator.definiteassignment.tsx"}},match:"(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.tsx variable.object.property.tsx"},{match:"\\?",name:"keyword.operator.optional.tsx"},{match:"\\!",name:"keyword.operator.definiteassignment.tsx"}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.tsx"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{match:"\\*",name:"keyword.generator.asterisk.tsx"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.tsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.tsx",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.tsx punctuation.accessor.optional.tsx"},{match:"\\!",name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tsx"}]},"function-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.async.tsx"},4:{name:"storage.type.function.tsx"},5:{name:"keyword.generator.asterisk.tsx"},6:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.tsx",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.function.tsx"},3:{name:"keyword.generator.asterisk.tsx"},4:{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.tsx",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.function.tsx entity.name.function.tsx"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.tsx"}},name:"meta.parameters.tsx",patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.tsx"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"entity.name.function.tsx"}},match:"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n))"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.property.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.tsx"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.tsx"}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",name:"meta.import.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:"(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])",end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.tsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"},7:{name:"keyword.control.require.tsx"},8:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"meta.import-equals.external.tsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"keyword.control.import.tsx"},4:{name:"keyword.control.type.tsx"},5:{name:"variable.other.readwrite.alias.tsx"},6:{name:"keyword.operator.assignment.tsx"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.tsx",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.readwrite.tsx"}]}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.tsx"},2:{name:"keyword.control.assert.tsx"},3:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.tsx"},{match:":",name:"punctuation.separator.key-value.tsx"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.block.tsx",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.tsx"},2:{name:"keyword.control.default.tsx"},3:{name:"constant.language.import-export-all.tsx"},4:{name:"variable.other.readwrite.tsx"},5:{name:"keyword.control.as.tsx"},6:{name:"keyword.control.default.tsx"},7:{name:"variable.other.readwrite.alias.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.tsx"},{match:"\\b(default)\\b",name:"keyword.control.default.tsx"},{captures:{1:{name:"keyword.control.type.tsx"},2:{name:"variable.other.readwrite.alias.tsx"}},match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.tsx"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"meta.brace.square.tsx"},3:{name:"variable.parameter.tsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.optional.tsx"}},name:"meta.indexer.declaration.tsx",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"meta.brace.square.tsx"},4:{name:"entity.name.type.tsx"},5:{name:"keyword.operator.expression.in.tsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.tsx"},2:{name:"keyword.operator.type.modifier.tsx"},3:{name:"keyword.operator.optional.tsx"}},name:"meta.indexer.mappedtype.declaration.tsx",patterns:[{captures:{1:{name:"keyword.control.as.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.type.interface.tsx"}},end:"(?<=\\})",name:"meta.interface.tsx",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.tsx"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-entities":{patterns:[{captures:{1:{name:"punctuation.definition.entity.tsx"},3:{name:"punctuation.definition.entity.tsx"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.tsx"}]},"jsx-evaluated-code":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.embedded.begin.tsx"}},contentName:"meta.embedded.expression.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},name:"string.quoted.double.tsx",patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.tsx"}},name:"string.quoted.single.tsx",patterns:[{include:"#jsx-entities"}]},"jsx-tag":{begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",endCaptures:{1:{name:"punctuation.definition.tag.end.tsx"},2:{name:"punctuation.definition.tag.begin.tsx"},3:{name:"entity.name.tag.namespace.tsx"},4:{name:"punctuation.separator.namespace.tsx"},5:{name:"entity.name.tag.tsx"},6:{name:"support.class.component.tsx"},7:{name:"punctuation.definition.tag.end.tsx"}},name:"meta.tag.tsx",patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",end:"(?=</)",patterns:[{include:"#jsx-children"}]}]},"jsx-tag-attribute-assignment":{match:"=(?=\\s*(?:'|\"|{|/\\*|//|\\n))",name:"keyword.operator.assignment.tsx"},"jsx-tag-attribute-name":{captures:{1:{name:"entity.other.attribute-name.namespace.tsx"},2:{name:"punctuation.separator.namespace.tsx"},3:{name:"entity.other.attribute-name.tsx"}},match:"(?x)\n\\s*\n(?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n([_$[:alpha:]][-_$[:alnum:]]*)\n(?=\\s|=|/?>|/\\*|//)"},"jsx-tag-attributes":{begin:"\\s+",end:"(?=[/]?>)",name:"meta.tag.attributes.tsx",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attributes-illegal":{match:"\\S+",name:"invalid.illegal.attribute.tsx"},"jsx-tag-in-expression":{begin:"(?x)\n(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n(?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,))\n(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag-without-attributes":{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",end:"(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",endCaptures:{1:{name:"punctuation.definition.tag.begin.tsx"},2:{name:"entity.name.tag.namespace.tsx"},3:{name:"punctuation.separator.namespace.tsx"},4:{name:"entity.name.tag.tsx"},5:{name:"support.class.component.tsx"},6:{name:"punctuation.definition.tag.end.tsx"}},name:"meta.tag.without-attributes.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.tsx"},2:{name:"punctuation.separator.label.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"keyword.operator.new.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.modifier.tsx"},4:{name:"storage.modifier.async.tsx"},5:{name:"storage.type.property.tsx"},6:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.method.tsx entity.name.function.tsx"},{match:"\\?",name:"keyword.operator.optional.tsx"}]},"namespace-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.namespace.tsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.namespace.declaration.tsx",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.type.module.tsx"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",name:"new.expr.tsx",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.tsx"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.tsx"},{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.tsx"},{captures:{1:{name:"storage.type.numeric.bigint.tsx"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.tsx"},{captures:{0:{name:"constant.numeric.decimal.tsx"},1:{name:"meta.delimiter.decimal.period.tsx"},2:{name:"storage.type.numeric.bigint.tsx"},3:{name:"meta.delimiter.decimal.period.tsx"},4:{name:"storage.type.numeric.bigint.tsx"},5:{name:"meta.delimiter.decimal.period.tsx"},6:{name:"storage.type.numeric.bigint.tsx"},7:{name:"storage.type.numeric.bigint.tsx"},8:{name:"meta.delimiter.decimal.period.tsx"},9:{name:"storage.type.numeric.bigint.tsx"},10:{name:"meta.delimiter.decimal.period.tsx"},11:{name:"storage.type.numeric.bigint.tsx"},12:{name:"meta.delimiter.decimal.period.tsx"},13:{name:"storage.type.numeric.bigint.tsx"},14:{name:"storage.type.numeric.bigint.tsx"}},match:"(?x)\n(?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$)"}]},"numericConstant-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.tsx"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.object.property.tsx"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.tsx"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"variable.other.constant.object.property.tsx"},4:{name:"variable.other.object.property.tsx"}},match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n(\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n(\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{captures:{1:{name:"variable.other.constant.object.tsx"},2:{name:"variable.other.object.tsx"}},match:"(?x)(?:\n([[:upper:]][_$[:digit:][:upper:]]*) |\n([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.objectliteral.tsx",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"storage.type.property.tsx"},3:{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.tsx meta.object-literal.key.tsx",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.tsx",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"constant.numeric.decimal.tsx"}},match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.tsx"},{captures:{0:{name:"meta.object-literal.key.tsx"},1:{name:"entity.name.function.tsx"}},match:"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",name:"meta.object.member.tsx"},{captures:{0:{name:"meta.object-literal.key.tsx"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.tsx"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",name:"meta.object.member.tsx",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.tsx"},{captures:{1:{name:"keyword.control.as.tsx"},2:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.tsx"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.tsx"},2:{name:"keyword.control.satisfies.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.tsx",patterns:[{include:"#type"}]},{begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.tsx",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",name:"meta.object.member.tsx",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"parameter-name":{patterns:[{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.tsx"},2:{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},contentName:"meta.arrow.tsx meta.return.type.arrow.tsx",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.tsx"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.tsx"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.tsx"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},name:"string.quoted.double.tsx",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"invalid.illegal.newline.tsx"}},name:"string.quoted.single.tsx",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]},{begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.tsx"},2:{name:"keyword.other.tsx"}},name:"string.regexp.tsx",patterns:[{include:"#regexp"}]}]},"regex-character-class":{patterns:[{match:"\\\\[wWsSdDtrnvf]|\\.",name:"constant.other.character-class.regexp"},{match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",name:"constant.character.numeric.regexp"},{match:"\\\\c[A-Z]",name:"constant.character.control.regexp"},{match:"\\\\.",name:"constant.character.escape.backslash.regexp"}]},regexp:{patterns:[{match:"\\\\[bB]|\\^|\\$",name:"keyword.control.anchor.regexp"},{captures:{0:{name:"keyword.other.back-reference.regexp"},1:{name:"variable.other.regexp"}},match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{1:{name:"punctuation.definition.group.regexp"},2:{name:"punctuation.definition.group.assertion.regexp"},3:{name:"meta.assertion.look-ahead.regexp"},4:{name:"meta.assertion.negative-look-ahead.regexp"},5:{name:"meta.assertion.look-behind.regexp"},6:{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.group.regexp"}},name:"meta.group.assertion.regexp",patterns:[{include:"#regexp"}]},{begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"return-type":{patterns:[{begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.tsx",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.tsx",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.tsx"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.tsx"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.tsx"},2:{name:"comment.line.double-slash.tsx"},3:{name:"punctuation.definition.comment.tsx"},4:{name:"storage.type.internaldeclaration.tsx"},5:{name:"punctuation.decorator.internaldeclaration.tsx"}},contentName:"comment.line.double-slash.tsx",end:"(?=^)"},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.tsx"},"super-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.tsx"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.tsx"}]},"support-objects":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.tsx"},{captures:{1:{name:"keyword.control.import.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.importmeta.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"support.variable.property.target.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.tsx"},2:{name:"punctuation.accessor.optional.tsx"},3:{name:"support.variable.property.tsx"},4:{name:"support.constant.tsx"}},match:"(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n|\n(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.tsx"},2:{name:"support.type.object.module.tsx"},3:{name:"punctuation.accessor.tsx"},4:{name:"punctuation.accessor.optional.tsx"},5:{name:"support.type.object.module.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"switch-statement.expr.tsx",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.tsx"},2:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"switch-expression.expr.tsx",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",name:"switch-block.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.tsx"}},end:"(?=:)",name:"case-clause.expr.tsx",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"},2:{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",end:"\\}",endCaptures:{0:{name:"meta.block.tsx punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},contentName:"string.template.tsx",end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.tsx"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},contentName:"meta.embedded.line.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},name:"meta.template.expression.tsx",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.tsx"},2:{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},contentName:"string.template.tsx",end:"`",endCaptures:{0:{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsx"}},contentName:"meta.embedded.line.tsx",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsx"}},name:"meta.template.expression.tsx",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.tsx"},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{captures:{1:{name:"storage.modifier.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.type.tsx"},4:{name:"entity.name.type.alias.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.type.declaration.tsx",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"},2:{name:"keyword.control.intrinsic.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.tsx",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsx"}},name:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.tsx"},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.tsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.tsx"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.tsx storage.modifier.tsx"},2:{name:"meta.type.constructor.tsx keyword.control.new.tsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.control.new.tsx"}},end:"(?<=\\))",name:"meta.type.constructor.tsx",patterns:[{include:"#function-parameters"}]},{begin:"(?x)(\n(?=\n[(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n)\n)\n)",end:"(?<=\\))",name:"meta.type.function.tsx",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.tsx",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.tsx",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-infer":{patterns:[{captures:{1:{name:"keyword.operator.expression.infer.tsx"},2:{name:"entity.name.type.tsx"},3:{name:"keyword.operator.expression.extends.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"},4:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},contentName:"meta.type.parameters.tsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.tsx"},2:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},contentName:"meta.type.parameters.tsx",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.tsx"},2:{name:"punctuation.accessor.tsx"},3:{name:"punctuation.accessor.optional.tsx"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.tsx"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.tsx"}},name:"meta.object.type.tsx",patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.tsx"}},end:"(?=\\S)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.tsx"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.tsx"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.tsx"}},name:"meta.type.parameters.tsx",patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.tsx"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.tsx"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.tsx"}},name:"meta.type.paren.cover.tsx",patterns:[{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"entity.name.function.tsx variable.language.this.tsx"},4:{name:"entity.name.function.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.tsx"},2:{name:"keyword.operator.rest.tsx"},3:{name:"variable.parameter.tsx variable.language.this.tsx"},4:{name:"variable.parameter.tsx"},5:{name:"keyword.operator.optional.tsx"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.tsx"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"},4:{name:"keyword.operator.expression.is.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.tsx"},2:{name:"variable.parameter.tsx variable.language.this.tsx"},3:{name:"variable.parameter.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.tsx"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.tsx"}]},"type-primitive":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.tsx"}},name:"meta.type.tuple.tsx",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.tsx"},{captures:{1:{name:"entity.name.label.tsx"},2:{name:"keyword.operator.optional.tsx"},3:{name:"punctuation.separator.label.tsx"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.tsx"},"var-expr":{patterns:[{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.tsx",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.tsx"},2:{name:"storage.modifier.tsx"},3:{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n(\n[<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>]\n) |\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.tsx entity.name.function.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.constant.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"},2:{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.tsx",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.tsx"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},s="source.tsx",i={displayName:"TSX",name:"tsx",patterns:t,repository:a,scopeName:s};export{i as default,e as displayName,n as name,t as patterns,a as repository,s as scopeName}; diff --git a/lib/dist/grammar/turtle.mjs b/lib/dist/grammar/turtle.mjs new file mode 100644 index 0000000..09cee74 --- /dev/null +++ b/lib/dist/grammar/turtle.mjs @@ -0,0 +1 @@ +var e="Turtle",t=["turtle","ttl","acl"],n="turtle",i=[{include:"#rule-constraint"},{include:"#iriref"},{include:"#prefix"},{include:"#prefixed-name"},{include:"#comment"},{include:"#special-predicate"},{include:"#literals"},{include:"#language-tag"}],r={boolean:{match:"\\b(?i:true|false)\\b",name:"constant.language.sparql"},comment:{match:"#.*$",name:"comment.line.number-sign.turtle"},integer:{match:"[+-]?(?:\\d+|[0-9]+\\.[0-9]*|\\.[0-9]+(?:[eE][+-]?\\d+)?)",name:"constant.numeric.turtle"},iriref:{match:'<[^\\x20-\\x20<>"{}|^`\\\\]*>',name:"entity.name.type.iriref.turtle"},"language-tag":{captures:{1:{name:"entity.name.class.turtle"}},match:"@(\\w+)",name:"meta.string-literal-language-tag.turtle"},literals:{patterns:[{include:"#string"},{include:"#numeric"},{include:"#boolean"}]},numeric:{patterns:[{include:"#integer"}]},prefix:{match:"(?i:@?base|@?prefix)\\s",name:"keyword.operator.turtle"},"prefixed-name":{captures:{1:{name:"storage.type.PNAME_NS.turtle"},2:{name:"support.variable.PN_LOCAL.turtle"}},match:"(\\w*:)(\\w*)",name:"constant.complex.turtle"},"rule-constraint":{begin:'(rule:content) (""")',beginCaptures:{1:{patterns:[{include:"#prefixed-name"}]},2:{name:"string.quoted.triple.turtle"}},end:'"""',endCaptures:{0:{name:"string.quoted.triple.turtle"}},name:"meta.rule-constraint.turtle",patterns:[{include:"source.srs"}]},"single-dquote-string-literal":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.double.turtle",patterns:[{include:"#string-character-escape"}]},"single-squote-string-literal":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:"'",endCaptures:{1:{name:"punctuation.definition.string.end.turtle"},2:{name:"invalid.illegal.newline.turtle"}},name:"string.quoted.single.turtle",patterns:[{include:"#string-character-escape"}]},"special-predicate":{captures:{1:{name:"keyword.control.turtle"}},match:"\\s(a)\\s",name:"meta.specialPredicate.turtle"},string:{patterns:[{include:"#triple-squote-string-literal"},{include:"#triple-dquote-string-literal"},{include:"#single-squote-string-literal"},{include:"#single-dquote-string-literal"},{include:"#triple-tick-string-literal"}]},"string-character-escape":{match:"\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.turtle"},"triple-dquote-string-literal":{begin:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:'"""',endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.triple.turtle",patterns:[{include:"#string-character-escape"}]},"triple-squote-string-literal":{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.triple.turtle",patterns:[{include:"#string-character-escape"}]},"triple-tick-string-literal":{begin:"```",beginCaptures:{0:{name:"punctuation.definition.string.begin.turtle"}},end:"```",endCaptures:{0:{name:"punctuation.definition.string.end.turtle"}},name:"string.quoted.triple.turtle",patterns:[{include:"#string-character-escape"}]}},a="source.turtle",l={displayName:e,fileTypes:t,name:n,patterns:i,repository:r,scopeName:a};export{l as default,e as displayName,t as fileTypes,n as name,i as patterns,r as repository,a as scopeName}; diff --git a/lib/dist/grammar/twig.mjs b/lib/dist/grammar/twig.mjs new file mode 100644 index 0000000..3f3ca01 --- /dev/null +++ b/lib/dist/grammar/twig.mjs @@ -0,0 +1 @@ +var t="Twig",e=["twig","html.twig"],n="<!(?i:DOCTYPE)|<(?i:html)|<\\?(?i:php)|\\{\\{|\\{%|\\{#",i="(?x)\n (<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\b.*?>\n |\x3c!--(?!.*--\\s*>)\n |^\x3c!--\\ \\#tminclude\\ (?>.*?--\x3e)$\n |\\{%\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )",a="(?x)\n (</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>\n |^(?!.*?\x3c!--).*?--\\s*>\n |^\x3c!--\\ end\\ tminclude\\ --\x3e$\n |\\{%\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )",s="twig",r=[{begin:"(<)([a-zA-Z0-9:]++)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.html"}},end:"(>(<)/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"meta.scope.between-tag-pair.html"},3:{name:"entity.name.tag.html"},4:{name:"punctuation.definition.tag.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"}]},{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"},{include:"#embedded-code"}]},{begin:"<!",captures:{0:{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(?i:DOCTYPE)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{include:"#embedded-code"},{begin:"(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.style.html"},3:{name:"punctuation.definition.tag.html"}},end:"(</)((?i:style))(>)(?:\\s*\\n)?",name:"source.css.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"}},end:"(?=</(?i:style))",patterns:[{include:"#embedded-code"},{include:"source.css"}]}]},{begin:"(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)",beginCaptures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",endCaptures:{2:{name:"punctuation.definition.tag.html"}},name:"source.js.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?<!</(?:script|SCRIPT))(>)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.script.html"}},end:"(</)((?i:script))",patterns:[{captures:{1:{name:"punctuation.definition.comment.js"}},match:"(//).*?((?=</script)|$\\n?)",name:"comment.line.double-slash.js"},{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.js"}},end:"\\*/|(?=</script)",name:"comment.block.js"},{include:"#php"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"},{include:"source.js"}]}]},{begin:"(?ix)\n\n(?<=\\{\\%\\sjs\\s\\%\\}|\\{\\%\\sincludejs\\s\\%\\})\n",comment:'Add JS support to set tags that use the pattern "css" in their name',end:"(?ix)(?=\\{\\%\\sendjs\\s\\%\\}|\\{\\%\\sendincludejs\\s\\%\\})",name:"source.js.embedded.twig",patterns:[{include:"source.js"}]},{begin:"(?ix)\n(?<=\\{\\%\\scss\\s\\%\\}|\\{\\%\\sincludecss\\s\\%\\}|\\{\\%\\sincludehirescss\\s\\%\\})\n",comment:'Add CSS support to set tags that use the pattern "css" in their name',end:"(?ix)(?=\\{\\%\\sendcss\\s\\%\\}|\\{\\%\\sendincludecss\\s\\%\\}|\\{\\%\\sendincludehirescss\\s\\%\\})",name:"source.css.embedded.twig",patterns:[{include:"source.css"}]},{begin:"(?ix)\n(?<=\\{\\%\\sscss\\s\\%\\}|\\{\\%\\sincludescss\\s\\%\\}|\\{\\%\\sincludehiresscss\\s\\%\\})\n",comment:'Add SCSS support to set tags that use the pattern "scss" in their name',end:"(?ix)(?=\\{\\%\\sendscss\\s\\%\\}|\\{\\%\\sendincludescss\\s\\%\\}|\\{\\%\\sendincludehiresscss\\s\\%\\})",name:"source.css.scss.embedded.twig",patterns:[{include:"source.css.scss"}]},{begin:"(</?)((?i:body|head|html)\\b)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.structure.any.html"}},end:"(>)",name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.inline.any.html"}},end:"((?: ?/)?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9:]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.other.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"}],u={"embedded-code":{patterns:[{include:"#ruby"},{include:"#php"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"},{include:"#python"}]},entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},php:{begin:"(?=(^\\s*)?<\\?)",end:"(?!(^\\s*)?<\\?)",patterns:[{include:"source.php"}]},python:{begin:"(?:^\\s*)<\\?python(?!.*\\?>)",end:"\\?>(?:\\s*$\\n)?",name:"source.python.embedded.html",patterns:[{include:"source.python"}]},ruby:{patterns:[{begin:"<%+#",captures:{0:{name:"punctuation.definition.comment.erb"}},end:"%>",name:"comment.block.erb"},{begin:"<%+(?!>)=?",captures:{0:{name:"punctuation.section.embedded.ruby"}},end:"-?%>",name:"source.ruby.embedded.html",patterns:[{captures:{1:{name:"punctuation.definition.comment.ruby"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.ruby"},{include:"source.ruby"}]},{begin:"<\\?r(?!>)=?",captures:{0:{name:"punctuation.section.embedded.ruby.nitro"}},end:"-?\\?>",name:"source.ruby.nitro.embedded.html",patterns:[{captures:{1:{name:"punctuation.definition.comment.ruby.nitro"}},match:"(#).*?(?=-?\\?>)",name:"comment.line.number-sign.ruby.nitro"},{include:"source.ruby"}]}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},"tag-generic-attribute":{match:"\\b([a-zA-Z\\-:]+)",name:"entity.other.attribute-name.html"},"tag-id-attribute":{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:"(?<='|\")",name:"meta.attribute-with-value.id.html",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]}]},"tag-stuff":{patterns:[{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"},{include:"#embedded-code"}]},"twig-arrays":{begin:"(?<=[\\s\\(\\{\\[:,])\\[",beginCaptures:{0:{name:"punctuation.section.array.begin.twig"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.array.end.twig"}},name:"meta.array.twig",patterns:[{include:"#twig-arrays"},{include:"#twig-hashes"},{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-strings"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{match:",",name:"punctuation.separator.object.twig"}]},"twig-comment-tag":{begin:"\\{#-?",beginCaptures:{0:{name:"punctuation.definition.comment.begin.twig"}},end:"-?#\\}",endCaptures:{0:{name:"punctuation.definition.comment.end.twig"}},name:"comment.block.twig"},"twig-constants":{patterns:[{match:"(?i)(?<=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])",name:"constant.language.twig"},{match:"(?<=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)",name:"constant.numeric.twig"}]},"twig-filters":{captures:{1:{name:"support.function.twig"}},match:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)"},"twig-filters-ud":{captures:{1:{name:"meta.function-call.other.twig"}},match:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)"},"twig-filters-warg":{begin:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()",beginCaptures:{1:{name:"support.function.twig"},2:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-filters-warg-ud":{begin:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()",beginCaptures:{1:{name:"meta.function-call.other.twig"},2:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-functions":{captures:{1:{name:"support.function.twig"}},match:"(?<=is\\s)(defined|empty|even|iterable|odd)"},"twig-functions-warg":{begin:"(?<=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()",beginCaptures:{1:{name:"support.function.twig"},2:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"}]},"twig-hashes":{begin:"(?<=[\\s\\(\\{\\[:,])\\{",beginCaptures:{0:{name:"punctuation.section.hash.begin.twig"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.hash.end.twig"}},name:"meta.hash.twig",patterns:[{include:"#twig-hashes"},{include:"#twig-arrays"},{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-strings"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{match:":",name:"punctuation.separator.key-value.twig"},{match:",",name:"punctuation.separator.object.twig"}]},"twig-keywords":{match:"(?<=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)",name:"keyword.control.twig"},"twig-macros":{begin:"(?x)\n(?<=[\\s\\(\\[\\{:,])\n([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n(?:\n(\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)?\n(\\()\n",beginCaptures:{1:{name:"meta.function-call.twig"},2:{name:"punctuation.separator.property.twig"},3:{name:"variable.other.property.twig"},4:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-objects":{captures:{1:{name:"variable.other.twig"}},match:"(?<=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])"},"twig-operators":{patterns:[{captures:{1:{name:"keyword.operator.arithmetic.twig"}},match:"(?<=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)"},{captures:{1:{name:"keyword.operator.assignment.twig"}},match:"(?<=\\s)(=|~)(?=\\s)"},{captures:{1:{name:"keyword.operator.bitwise.twig"}},match:"(?<=\\s)(b-(?:and|or|xor))(?=\\s)"},{captures:{1:{name:"keyword.operator.comparison.twig"}},match:"(?<=\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)"},{captures:{1:{name:"keyword.operator.logical.twig"}},match:"(?<=\\s)(\\?|:|\\?:|\\?\\?|and|not|or)(?=\\s)"},{captures:{0:{name:"keyword.operator.other.twig"}},match:"(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'\"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'\"])"},{captures:{0:{name:"keyword.operator.other.twig"}},match:"(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'\"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])"}]},"twig-print-tag":{begin:"\\{\\{-?",beginCaptures:{0:{name:"punctuation.section.tag.twig"}},end:"-?\\}\\}",endCaptures:{0:{name:"punctuation.section.tag.twig"}},name:"meta.tag.template.value.twig",patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-properties":{patterns:[{captures:{1:{name:"punctuation.separator.property.twig"},2:{name:"variable.other.property.twig"}},match:"(?x)\n(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n(\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n(?=[\\.\\s\\|\\[\\)\\]\\}:,])\n"},{begin:"(?x)\n(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n(\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n(\\()\n",beginCaptures:{1:{name:"punctuation.separator.property.twig"},2:{name:"variable.other.property.twig"},3:{name:"punctuation.definition.parameters.begin.twig"}},contentName:"meta.function.arguments.twig",end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"}]},{captures:{1:{name:"punctuation.section.array.begin.twig"},2:{name:"variable.other.property.twig"},3:{name:"punctuation.section.array.end.twig"},4:{name:"punctuation.section.array.begin.twig"},5:{name:"variable.other.property.twig"},6:{name:"punctuation.section.array.end.twig"},7:{name:"punctuation.section.array.begin.twig"},8:{name:"variable.other.property.twig"},9:{name:"punctuation.section.array.end.twig"}},match:"(?x)\n(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]])\n(?:\n(\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\])\n|(\\[)(\"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\")(\\])\n|(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\])\n)\n"}]},"twig-statement-tag":{begin:"\\{%-?",beginCaptures:{0:{name:"punctuation.section.tag.twig"}},end:"-?%\\}",endCaptures:{0:{name:"punctuation.section.tag.twig"}},name:"meta.tag.template.block.twig",patterns:[{include:"#twig-constants"},{include:"#twig-keywords"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-strings":{patterns:[{begin:"(?:(?<!\\\\)|(?<=\\\\\\\\))'",beginCaptures:{0:{name:"punctuation.definition.string.begin.twig"}},end:"(?:(?<!\\\\)|(?<=\\\\\\\\))'",endCaptures:{0:{name:"punctuation.definition.string.end.twig"}},name:"string.quoted.single.twig"},{begin:'(?:(?<!\\\\)|(?<=\\\\\\\\))"',beginCaptures:{0:{name:"punctuation.definition.string.begin.twig"}},end:'(?:(?<!\\\\)|(?<=\\\\\\\\))"',endCaptures:{0:{name:"punctuation.definition.string.end.twig"}},name:"string.quoted.double.twig"}]}},c="text.html.twig",d={displayName:t,fileTypes:e,firstLineMatch:n,foldingStartMarker:i,foldingStopMarker:a,name:s,patterns:r,repository:u,scopeName:c};export{d as default,t as displayName,e as fileTypes,n as firstLineMatch,i as foldingStartMarker,a as foldingStopMarker,s as name,r as patterns,u as repository,c as scopeName}; diff --git a/lib/dist/grammar/typescript.mjs b/lib/dist/grammar/typescript.mjs new file mode 100644 index 0000000..6e06905 --- /dev/null +++ b/lib/dist/grammar/typescript.mjs @@ -0,0 +1 @@ +var e="TypeScript",n="typescript",a=[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],t={"access-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},"after-operator-block-as-object-literal":{begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{1:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.array.literal.ts",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"arrow-function":{patterns:[{captures:{1:{name:"storage.modifier.async.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",name:"meta.arrow.ts"},{begin:"(?x) (?:\n(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n(?=\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n)\n)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.arrow.ts",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.ts"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",name:"meta.arrow.ts",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.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",name:"meta.return.type.arrow.ts",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"async-modifier":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.async.ts"},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"boolean-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.true.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.boolean.false.ts"}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},cast:{patterns:[{captures:{1:{name:"meta.brace.angle.ts"},2:{name:"storage.modifier.ts"},3:{name:"meta.brace.angle.ts"}},match:"\\s*(<)\\s*(const)\\s*(>)",name:"cast.expr.ts"},{begin:"(?:(?<!\\+\\+|--)(?<=^return|[^\\._$[:alnum:]]return|^throw|[^\\._$[:alnum:]]throw|^yield|[^\\._$[:alnum:]]yield|^await|[^\\._$[:alnum:]]await|^default|[^\\._$[:alnum:]]default|[=(,:>*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]},{begin:"(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)",beginCaptures:{1:{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{1:{name:"meta.brace.angle.ts"}},name:"cast.expr.ts",patterns:[{include:"#type"}]}]},"class-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.class.ts"}},end:"(?<=\\})",name:"meta.class.ts",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.ts"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.type.class.ts"}},end:"(?<=\\})",name:"meta.class.ts",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)"},{captures:{1:{name:"entity.other.inherited-class.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#expressionPunctuations"}]},comment:{patterns:[{begin:"/\\*\\*(?!/)",beginCaptures:{0:{name:"punctuation.definition.comment.ts"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.ts"}},name:"comment.block.documentation.ts",patterns:[{include:"#docblock"}]},{begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{1:{name:"punctuation.definition.comment.ts"},2:{name:"storage.type.internaldeclaration.ts"},3:{name:"punctuation.decorator.internaldeclaration.ts"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.ts"}},name:"comment.block.ts"},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ts"},2:{name:"comment.line.double-slash.ts"},3:{name:"punctuation.definition.comment.ts"},4:{name:"storage.type.internaldeclaration.ts"},5:{name:"punctuation.decorator.internaldeclaration.ts"}},contentName:"comment.line.double-slash.ts",end:"(?=$)"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.trycatch.ts"},{captures:{1:{name:"keyword.control.loop.ts"},2:{name:"entity.name.label.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.loop.ts"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.control.flow.ts"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.switch.ts"},{include:"#if-statement"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.conditional.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.with.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.other.debugger.ts"}]},"decl-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.block.ts",patterns:[{include:"#statements"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"}]},decorator:{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{0:{name:"punctuation.decorator.ts"}},end:"(?=\\s)",name:"meta.decorator.ts",patterns:[{include:"#expression"}]},"destructuring-const":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.ts",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.ts",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-parameter":{patterns:[{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},name:"meta.parameter.object-binding-pattern.ts",patterns:[{include:"#parameter-object-binding-element"}]},{begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},name:"meta.paramter.array-binding-pattern.ts",patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"destructuring-parameter-rest":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"variable.parameter.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable":{patterns:[{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.object-binding-pattern-variable.ts",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",name:"meta.array-binding-pattern-variable.ts",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-variable-rest":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"meta.definition.variable.ts variable.other.readwrite.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},"destructuring-variable-rest-const":{captures:{1:{name:"keyword.operator.rest.ts"},2:{name:"meta.definition.variable.ts variable.other.constant.ts"}},match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)"},directives:{begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.ts"}},end:"(?=$)",name:"comment.line.triple-slash.directive.ts",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.ts"},2:{name:"entity.name.tag.directive.ts"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.ts"}},name:"meta.tag.ts",patterns:[{match:"path|types|no-default-lib|lib|name|resolution-mode",name:"entity.other.attribute-name.directive.ts"},{match:"=",name:"keyword.operator.assignment.ts"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:"(?x)\n((@)author)\n\\s+\n(\n[^@\\s<>*/]\n(?:[^@<>*/]|\\*[^/])*\n)\n(?:\n\\s*\n(<)\n([^>\\s]+)\n(>)\n)?"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+)\n\\s+ (as) \\s+\n((?:[^@\\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.ts"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n((@)see)\n\\s+\n(?:\n\n(\n(?=https?://)\n(?:[^\\s*]|\\*[^/])+\n)\n|\n\n(\n(?!\n\nhttps?://\n|\n\n(?:\\[[^\\[\\]]*\\])?\n{@(?:link|linkcode|linkplain|tutorial)\\b\n)\n\n(?:[^@\\s*/]|\\*[^/])+\n)\n)"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n(?:\n\\s* , \\s*\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)*\n)"},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"(?x)\n(\n(@)\n(?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n[A-Za-z_$]\n[\\w$.\\[\\]]*\n)"},{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.ts"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n(?:\\[\\])?\n\\.\n[\\w$]+\n)*\n(?:\n\\s*\n(=)\n\\s*\n(\n\n(?>\n\"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" |\n'(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' |\n\\[ (?:(?:\\*(?!/))|[^*])*? \\] |\n(?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])*\n)*\n)\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",name:"variable.other.jsdoc"}]},{begin:"(?x)\n(\n(@)\n(?:define|enum|exception|export|extends|lends|implements|modifies\n|namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n|yields?)\n)\n\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:"(?x)\n(\n(@)\n(?:alias|augments|callback|constructs|emits|event|fires|exports?\n|extends|external|function|func|host|lends|listens|interface|memberof!?\n|method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n(?:\n[^{}@\\s*] | \\*[^/]\n)+\n)"},{begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)"}]},"enum-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.enum.ts"},5:{name:"entity.name.type.enum.ts"}},end:"(?<=\\})",name:"meta.enum.declaration.ts",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{0:{name:"variable.other.enummember.ts"}},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.ts"},2:{name:"keyword.control.as.ts"},3:{name:"storage.type.namespace.ts"},4:{name:"entity.name.type.module.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.type.ts"},3:{name:"keyword.operator.assignment.ts"},4:{name:"keyword.control.default.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.default.ts",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"keyword.control.type.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.export.ts",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.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)"},{include:"#type-annotation"},{include:"#variable-initializer"},{match:",",name:"punctuation.separator.parameter.ts"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"expression-operators":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.control.flow.ts"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{1:{name:"keyword.control.flow.ts"}},end:"\\*",endCaptures:{0:{name:"keyword.generator.asterisk.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.control.flow.ts"},2:{name:"keyword.generator.asterisk.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.delete.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.in.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()",name:"keyword.operator.expression.of.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.instanceof.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.new.ts"},{include:"#typeof-operator"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.void.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.ts"},2:{name:"keyword.control.satisfies.ts"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{match:"\\.\\.\\.",name:"keyword.operator.spread.ts"},{match:"\\*=|(?<!\\()/=|%=|\\+=|\\-=",name:"keyword.operator.assignment.compound.ts"},{match:"\\&=|\\^=|<<=|>>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.ts"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.ts"},{match:"===|!==|==|!=",name:"keyword.operator.comparison.ts"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.ts"},{captures:{1:{name:"keyword.operator.logical.ts"},2:{name:"keyword.operator.assignment.compound.ts"},3:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))"},{match:"\\!|&&|\\|\\||\\?\\?",name:"keyword.operator.logical.ts"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.bitwise.ts"},{match:"\\=",name:"keyword.operator.assignment.ts"},{match:"--",name:"keyword.operator.decrement.ts"},{match:"\\+\\+",name:"keyword.operator.increment.ts"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.ts"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},patterns:[{include:"#comment"}]},{captures:{1:{name:"keyword.operator.assignment.compound.ts"},2:{name:"keyword.operator.arithmetic.ts"}},match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},"field-declaration":{begin:"(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",name:"meta.field.declaration.ts",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{captures:{1:{name:"meta.definition.property.ts entity.name.function.ts"},2:{name:"keyword.operator.optional.ts"},3:{name:"keyword.operator.definiteassignment.ts"}},match:"(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{match:"\\#?[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.property.ts variable.object.property.ts"},{match:"\\?",name:"keyword.operator.optional.ts"},{match:"\\!",name:"keyword.operator.definiteassignment.ts"}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{0:{name:"keyword.control.loop.ts"}},end:"(?<=\\))",patterns:[{include:"#comment"},{match:"await",name:"keyword.control.loop.ts"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},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.ts"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",name:"meta.function-call.ts",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-optionals":{patterns:[{match:"\\?\\.",name:"meta.function-call.ts punctuation.accessor.optional.ts"},{match:"\\!",name:"meta.function-call.ts keyword.operator.definiteassignment.ts"}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.ts"}]},"function-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.async.ts"},4:{name:"storage.type.function.ts"},5:{name:"keyword.generator.asterisk.ts"},6:{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})",name:"meta.function.ts",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.function.ts"},3:{name:"keyword.generator.asterisk.ts"},4:{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;)|(?<=\\})",name:"meta.function.expression.ts",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.function.ts entity.name.function.ts"},"function-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.parameters.begin.ts"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.parameters.end.ts"}},name:"meta.parameters.ts",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.ts"}]},identifiers:{patterns:[{include:"#object-identifiers"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"entity.name.function.ts"}},match:"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n))"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.property.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.ts"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ts"}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.conditional.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},{begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"import-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",name:"meta.import.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:"(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])",end:"\\bfrom\\b",endCaptures:{0:{name:"keyword.control.from.ts"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"import-equals-declaration":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"},5:{name:"variable.other.readwrite.alias.ts"},6:{name:"keyword.operator.assignment.ts"},7:{name:"keyword.control.require.ts"},8:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.import-equals.external.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"keyword.control.import.ts"},4:{name:"keyword.control.type.ts"},5:{name:"variable.other.readwrite.alias.ts"},6:{name:"keyword.operator.assignment.ts"}},end:"(?=;|$|^)",name:"meta.import-equals.internal.ts",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.readwrite.ts"}]}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(with)|(assert))\\s*(\\{)",beginCaptures:{1:{name:"keyword.control.with.ts"},2:{name:"keyword.control.assert.ts"},3:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#string"},{match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object-literal.key.ts"},{match:":",name:"punctuation.separator.key-value.ts"}]},"import-export-block":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.block.ts",patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{captures:{1:{name:"keyword.control.type.ts"},2:{name:"keyword.control.default.ts"},3:{name:"constant.language.import-export-all.ts"},4:{name:"variable.other.readwrite.ts"},5:{name:"keyword.control.as.ts"},6:{name:"keyword.control.default.ts"},7:{name:"variable.other.readwrite.alias.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))"},{include:"#punctuation-comma"},{match:"\\*",name:"constant.language.import-export-all.ts"},{match:"\\b(default)\\b",name:"keyword.control.default.ts"},{captures:{1:{name:"keyword.control.type.ts"},2:{name:"variable.other.readwrite.alias.ts"}},match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)"}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{match:"\\bfrom\\b",name:"keyword.control.from.ts"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"indexer-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"meta.brace.square.ts"},3:{name:"variable.parameter.ts"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.ts"},2:{name:"keyword.operator.optional.ts"}},name:"meta.indexer.declaration.ts",patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{1:{name:"keyword.operator.type.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"meta.brace.square.ts"},4:{name:"entity.name.type.ts"},5:{name:"keyword.operator.expression.in.ts"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{1:{name:"meta.brace.square.ts"},2:{name:"keyword.operator.type.modifier.ts"},3:{name:"keyword.operator.optional.ts"}},name:"meta.indexer.mappedtype.declaration.ts",patterns:[{captures:{1:{name:"keyword.control.as.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+"},{include:"#type"}]},"inline-tags":{patterns:[{captures:{1:{name:"punctuation.definition.bracket.square.begin.jsdoc"},2:{name:"punctuation.definition.bracket.square.end.jsdoc"}},match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",name:"constant.other.description.jsdoc"},{begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"},2:{name:"storage.type.class.jsdoc"},3:{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},name:"entity.name.type.instance.jsdoc",patterns:[{captures:{1:{name:"variable.other.link.underline.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?"},{captures:{1:{name:"variable.other.description.jsdoc"},2:{name:"punctuation.separator.pipe.jsdoc"}},match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?"}]}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.expression.instanceof.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"interface-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.type.interface.ts"}},end:"(?<=\\})",name:"meta.interface.ts",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{captures:{0:{name:"entity.name.type.interface.ts"}},match:"[_$[:alpha:]][_$[:alnum:]]*"},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},jsdoctype:{patterns:[{begin:"\\G({)",beginCaptures:{0:{name:"entity.name.type.instance.jsdoc"},1:{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},contentName:"entity.name.type.instance.jsdoc",end:"((}))\\s*|(?=\\*/)",endCaptures:{1:{name:"entity.name.type.instance.jsdoc"},2:{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{1:{name:"entity.name.label.ts"},2:{name:"punctuation.separator.label.ts"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{captures:{1:{name:"entity.name.label.ts"},2:{name:"punctuation.separator.label.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"method-declaration":{patterns:[{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"keyword.operator.new.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.modifier.ts"},4:{name:"storage.modifier.async.ts"},5:{name:"storage.type.property.ts"},6:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"meta.definition.method.ts entity.name.function.ts"},{match:"\\?",name:"keyword.operator.optional.ts"}]},"namespace-declaration":{begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.namespace.ts"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.namespace.declaration.ts",patterns:[{include:"#comment"},{include:"#string"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.type.module.ts"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"new-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.new.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",name:"new.expr.ts",patterns:[{include:"#expression"}]},"null-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.null.ts"},"numeric-literal":{patterns:[{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",name:"constant.numeric.hex.ts"},{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",name:"constant.numeric.binary.ts"},{captures:{1:{name:"storage.type.numeric.bigint.ts"}},match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",name:"constant.numeric.octal.ts"},{captures:{0:{name:"constant.numeric.decimal.ts"},1:{name:"meta.delimiter.decimal.period.ts"},2:{name:"storage.type.numeric.bigint.ts"},3:{name:"meta.delimiter.decimal.period.ts"},4:{name:"storage.type.numeric.bigint.ts"},5:{name:"meta.delimiter.decimal.period.ts"},6:{name:"storage.type.numeric.bigint.ts"},7:{name:"storage.type.numeric.bigint.ts"},8:{name:"meta.delimiter.decimal.period.ts"},9:{name:"storage.type.numeric.bigint.ts"},10:{name:"meta.delimiter.decimal.period.ts"},11:{name:"storage.type.numeric.bigint.ts"},12:{name:"meta.delimiter.decimal.period.ts"},13:{name:"storage.type.numeric.bigint.ts"},14:{name:"storage.type.numeric.bigint.ts"}},match:"(?x)\n(?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$)"}]},"numericConstant-literal":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.nan.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.infinity.ts"}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{0:{name:"punctuation.destructuring.ts"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.object.property.ts"}]},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element-const"}]},"object-identifiers":{patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))",name:"support.class.ts"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"variable.other.constant.object.property.ts"},4:{name:"variable.other.object.property.ts"}},match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n(\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n(\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)"},{captures:{1:{name:"variable.other.constant.object.ts"},2:{name:"variable.other.object.ts"}},match:"(?x)(?:\n([[:upper:]][_$[:digit:][:upper:]]*) |\n([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"object-literal":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.objectliteral.ts",patterns:[{include:"#object-member"}]},"object-literal-method-declaration":{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{1:{name:"storage.modifier.async.ts"},2:{name:"storage.type.property.ts"},3:{name:"keyword.generator.asterisk.ts"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#array-literal"}]},{begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#string"}]},{begin:"(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",name:"meta.object.member.ts meta.object-literal.key.ts",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",name:"meta.method.declaration.ts",patterns:[{include:"#function-body"}]},{captures:{0:{name:"meta.object-literal.key.ts"},1:{name:"constant.numeric.decimal.ts"}},match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"},1:{name:"entity.name.function.ts"}},match:"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",name:"meta.object.member.ts"},{captures:{0:{name:"meta.object-literal.key.ts"}},match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",name:"meta.object.member.ts"},{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{captures:{1:{name:"variable.other.readwrite.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts"},{captures:{1:{name:"keyword.control.as.ts"},2:{name:"storage.modifier.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",name:"meta.object.member.ts"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{1:{name:"keyword.control.as.ts"},2:{name:"keyword.control.satisfies.ts"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",name:"meta.object.member.ts",patterns:[{include:"#type"}]},{begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",name:"meta.object.member.ts",patterns:[{include:"#expression"}]},{begin:":",beginCaptures:{0:{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:"(?=,|\\})",name:"meta.object.member.ts",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},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.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},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.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},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.ts"},2:{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.binding-pattern.array.ts"}},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.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)"}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|\n(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|\n(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.))\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{1:{name:"keyword.operator.rest.ts"},2:{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-type-annotation":{patterns:[{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?=[,)])|(?==[^>])",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"paren-expression":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{1:{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{1:{name:"storage.modifier.async.ts"}},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.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{1:{name:"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},contentName:"meta.arrow.ts meta.return.type.arrow.ts",end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"property-accessor":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.type.property.ts"},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"}},match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.ts"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.ts"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"invalid.illegal.newline.ts"}},name:"string.quoted.double.ts",patterns:[{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"invalid.illegal.newline.ts"}},name:"string.quoted.single.ts",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",patterns:[{include:"#regexp"}]},{begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{0:{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.ts"},2:{name:"keyword.other.ts"}},name:"string.regexp.ts",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.ts"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",name:"meta.return.type.ts",patterns:[{include:"#return-type-core"}]},{begin:"(?<=\\))\\s*(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.return.type.ts",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.ts"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.ts"},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.ts"},2:{name:"comment.line.double-slash.ts"},3:{name:"punctuation.definition.comment.ts"},4:{name:"storage.type.internaldeclaration.ts"},5:{name:"punctuation.decorator.internaldeclaration.ts"}},contentName:"comment.line.double-slash.ts",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.ts"},"super-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)",name:"variable.language.super.ts"},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))",name:"keyword.operator.expression.import.ts"}]},"support-objects":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)",name:"variable.language.arguments.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)",name:"support.class.promise.ts"},{captures:{1:{name:"keyword.control.import.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"support.variable.property.importmeta.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)"},{captures:{1:{name:"keyword.operator.new.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"support.variable.property.target.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)"},{captures:{1:{name:"punctuation.accessor.ts"},2:{name:"punctuation.accessor.optional.ts"},3:{name:"support.variable.property.ts"},4:{name:"support.constant.ts"}},match:"(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n(?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n|\n(?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))"},{captures:{1:{name:"support.type.object.module.ts"},2:{name:"support.type.object.module.ts"},3:{name:"punctuation.accessor.ts"},4:{name:"punctuation.accessor.optional.ts"},5:{name:"support.type.object.module.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)"}]},"switch-statement":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"switch-statement.expr.ts",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{1:{name:"keyword.control.switch.ts"},2:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"switch-expression.expr.ts",patterns:[{include:"#expression"}]},{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"(?=\\})",name:"switch-block.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.control.switch.ts"}},end:"(?=:)",name:"case-clause.expr.ts",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{1:{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"},2:{name:"meta.block.ts punctuation.definition.block.ts"}},contentName:"meta.block.ts",end:"\\}",endCaptures:{0:{name:"meta.block.ts punctuation.definition.block.ts"}},patterns:[{include:"#statements"}]},{captures:{0:{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"}},match:"(:)"},{include:"#statements"}]}]},template:{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)",name:"entity.name.function.tagged-template.ts"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#expression"}]},"template-type":{patterns:[{include:"#template-call"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.ts"},2:{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},contentName:"string.template.ts",end:"`",endCaptures:{0:{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.ts"}},contentName:"meta.embedded.line.ts",end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.ts"}},name:"meta.template.expression.ts",patterns:[{include:"#type"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{1:{name:"keyword.operator.ternary.ts"}},end:"\\s*(:)",endCaptures:{1:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#expression"}]},"this-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)",name:"variable.language.this.ts"},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.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*"},{include:"#type-name"}]},"type-alias-declaration":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.type.ts"},4:{name:"entity.name.type.alias.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",name:"meta.type.declaration.ts",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{1:{name:"keyword.operator.assignment.ts"},2:{name:"keyword.control.intrinsic.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"type-annotation":{patterns:[{begin:"(:)(?=\\s*\\S)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]},{begin:"(:)",beginCaptures:{1:{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",name:"meta.type.annotation.ts",patterns:[{include:"#type"}]}]},"type-arguments":{begin:"\\<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{captures:{0:{name:"keyword.operator.type.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"}]},"type-builtin-literals":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.builtin.ts"},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{1:{name:"storage.modifier.ts"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{0:{name:"keyword.operator.ternary.ts"}},end:":",endCaptures:{0:{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{1:{name:"meta.type.constructor.ts storage.modifier.ts"},2:{name:"meta.type.constructor.ts keyword.control.new.ts"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.control.new.ts"}},end:"(?<=\\))",name:"meta.type.constructor.ts",patterns:[{include:"#function-parameters"}]},{begin:"(?x)(\n(?=\n[(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n)\n)\n)",end:"(?<=\\))",name:"meta.type.function.ts",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{begin:"(=>)(?=\\s*\\S)",beginCaptures:{1:{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",name:"meta.type.function.return.ts",patterns:[{include:"#type-function-return-type-core"}]},{begin:"=>",beginCaptures:{0:{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",name:"meta.type.function.return.ts",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.ts"},2:{name:"entity.name.type.ts"},3:{name:"keyword.operator.expression.extends.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.ts"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"},4:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{1:{name:"entity.name.type.ts"},2:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},contentName:"meta.type.parameters.ts",end:"(>)",endCaptures:{1:{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},{captures:{1:{name:"entity.name.type.module.ts"},2:{name:"punctuation.accessor.ts"},3:{name:"punctuation.accessor.optional.ts"}},match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"entity.name.type.ts"}]},"type-object":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.block.ts"}},name:"meta.object.type.ts",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.ts"}},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.ts"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{0:{name:"keyword.operator.type.ts"}},end:"(?=\\S)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.keyof.ts"},{match:"(\\?|\\:)",name:"keyword.operator.ternary.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()",name:"keyword.operator.expression.import.ts"}]},"type-parameters":{begin:"(<)",beginCaptures:{1:{name:"punctuation.definition.typeparameters.begin.ts"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.typeparameters.end.ts"}},name:"meta.type.parameters.ts",patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"#type"},{include:"#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]},"type-paren-or-function-parameters":{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.ts"}},name:"meta.type.paren.cover.ts",patterns:[{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"entity.name.function.ts variable.language.this.ts"},4:{name:"entity.name.function.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))"},{captures:{1:{name:"storage.modifier.ts"},2:{name:"keyword.operator.rest.ts"},3:{name:"variable.parameter.ts variable.language.this.ts"},4:{name:"variable.parameter.ts"},5:{name:"keyword.operator.optional.ts"}},match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)"},{include:"#type-annotation"},{match:",",name:"punctuation.separator.parameter.ts"},{include:"#type"}]},"type-predicate-operator":{patterns:[{captures:{1:{name:"keyword.operator.type.asserts.ts"},2:{name:"variable.parameter.ts variable.language.this.ts"},3:{name:"variable.parameter.ts"},4:{name:"keyword.operator.expression.is.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{captures:{1:{name:"keyword.operator.type.asserts.ts"},2:{name:"variable.parameter.ts variable.language.this.ts"},3:{name:"variable.parameter.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.type.asserts.ts"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.expression.is.ts"}]},"type-primitive":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"support.type.primitive.ts"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"type-tuple":{begin:"\\[",beginCaptures:{0:{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.ts"}},name:"meta.type.tuple.ts",patterns:[{match:"\\.\\.\\.",name:"keyword.operator.rest.ts"},{captures:{1:{name:"entity.name.label.ts"},2:{name:"keyword.operator.optional.ts"},3:{name:"punctuation.separator.label.ts"}},match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)"},{include:"#type"},{include:"#punctuation-comma"}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{0:{name:"keyword.operator.expression.typeof.ts"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},"undefined-literal":{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"constant.language.undefined.ts"},"var-expr":{patterns:[{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))",name:"meta.var.expr.ts",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{1:{name:"keyword.control.export.ts"},2:{name:"storage.modifier.ts"},3:{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{1:{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-const":{patterns:[{begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable":{patterns:[{begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n(<) |\n([(]\\s*(\n([)]) |\n(\\.\\.\\.) |\n([_$[:alnum:]]+\\s*(\n([:,?=])|\n([)]\\s*=>)\n))\n))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n((async\\s+)?(\n(function\\s*[(<*]) |\n(function\\s+) |\n([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n)) |\n((async\\s*)?(\n((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n[(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n(\n([)]\\s*:) |\n((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:)\n)\n) |\n\n# arrow function possible to detect only with => on same line\n(\n(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n\\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\)\n(\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)?\n\\s*=>\n)\n))\n)))",beginCaptures:{1:{name:"meta.definition.variable.ts entity.name.function.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.constant.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",patterns:[{include:"#var-single-variable-type-annotation"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{1:{name:"meta.definition.variable.ts variable.other.readwrite.ts"},2:{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",name:"meta.var-single-variable.expr.ts",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.ts"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{1:{name:"keyword.operator.assignment.ts"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]}},s="source.ts",i={displayName:e,name:n,patterns:a,repository:t,scopeName:s};export{i as default,e as displayName,n as name,a as patterns,t as repository,s as scopeName}; diff --git a/lib/dist/grammar/typespec.mjs b/lib/dist/grammar/typespec.mjs new file mode 100644 index 0000000..0921bac --- /dev/null +++ b/lib/dist/grammar/typespec.mjs @@ -0,0 +1 @@ +var e="TypeSpec",n=["tsp"],t="typespec",a=[{include:"#statement"}],i={"alias-id":{begin:"(=)\\s*",beginCaptures:{1:{name:"keyword.operator.assignment.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.alias-id.typespec",patterns:[{include:"#expression"}]},"alias-statement":{begin:"\\b(alias)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.type.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.alias-statement.typespec",patterns:[{include:"#alias-id"},{include:"#type-parameters"}]},"augment-decorator-statement":{begin:"((@@)\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\.[_$[:alpha:]])*\\b)",beginCaptures:{1:{name:"entity.name.tag.tsp"},2:{name:"entity.name.tag.tsp"}},end:"(?=[_$[:alpha:]])|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.augment-decorator-statement.typespec",patterns:[{include:"#token"},{include:"#parenthesized-expression"}]},"block-comment":{begin:"/\\*",end:"\\*/",name:"comment.block.tsp"},"boolean-literal":{match:"\\b(true|false)\\b",name:"constant.language.tsp"},callExpression:{begin:"(\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\.[_$[:alpha:]])*\\b)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.tsp"},2:{name:"punctuation.parenthesis.open.tsp"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.tsp"}},name:"meta.callExpression.typespec",patterns:[{include:"#token"},{include:"#expression"},{include:"#punctuation-comma"}]},"const-statement":{begin:"\\b(const)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"variable.name.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.const-statement.typespec",patterns:[{include:"#type-annotation"},{include:"#operator-assignment"},{include:"#expression"}]},decorator:{begin:"((@)\\b[_$[:alpha:]](?:[_$[:alnum:]]|\\.[_$[:alpha:]])*\\b)",beginCaptures:{1:{name:"entity.name.tag.tsp"},2:{name:"entity.name.tag.tsp"}},end:"(?=[_$[:alpha:]])|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.decorator.typespec",patterns:[{include:"#token"},{include:"#parenthesized-expression"}]},"decorator-declaration-statement":{begin:"(?:(extern)\\s+)?\\b(dec)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"keyword.other.tsp"},3:{name:"entity.name.function.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.decorator-declaration-statement.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"}]},directive:{begin:"\\s*(#\\b[_$[:alpha:]][_$[:alnum:]]*\\b)",beginCaptures:{1:{name:"keyword.directive.name.tsp"}},end:"$|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.directive.typespec",patterns:[{include:"#string-literal"},{include:"#identifier-expression"}]},"doc-comment":{begin:"/\\*\\*",beginCaptures:{0:{name:"comment.block.tsp"}},end:"\\*/",endCaptures:{0:{name:"comment.block.tsp"}},name:"comment.block.tsp",patterns:[{include:"#doc-comment-block"}]},"doc-comment-block":{patterns:[{include:"#doc-comment-param"},{include:"#doc-comment-return-tag"},{include:"#doc-comment-unknown-tag"}]},"doc-comment-param":{captures:{1:{name:"keyword.tag.tspdoc"},2:{name:"keyword.tag.tspdoc"},3:{name:"variable.name.tsp"}},match:"(?x)((@)(?:param|template|prop))\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\b",name:"comment.block.tsp"},"doc-comment-return-tag":{captures:{1:{name:"keyword.tag.tspdoc"},2:{name:"keyword.tag.tspdoc"}},match:"(?x)((@)(?:returns))\\b",name:"comment.block.tsp"},"doc-comment-unknown-tag":{captures:{1:{name:"entity.name.tag.tsp"},2:{name:"entity.name.tag.tsp"}},match:"(?x)((@)(?:\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`))\\b",name:"comment.block.tsp"},"else-expression":{begin:"\\b(else)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.else-expression.typespec",patterns:[{include:"#projection-expression"},{include:"#projection-body"}]},"else-if-expression":{begin:"\\b(else)\\s+(if)\\b",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"keyword.other.tsp"}},end:"((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.else-if-expression.typespec",patterns:[{include:"#projection-expression"},{include:"#projection-body"}]},"enum-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.enum-body.typespec",patterns:[{include:"#enum-member"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#punctuation-comma"}]},"enum-member":{begin:"(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:?))",beginCaptures:{1:{name:"variable.name.tsp"},2:{name:"keyword.operator.type.annotation.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.enum-member.typespec",patterns:[{include:"#token"},{include:"#type-annotation"}]},"enum-statement":{begin:"\\b(enum)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.type.tsp"}},end:"(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.enum-statement.typespec",patterns:[{include:"#token"},{include:"#enum-body"}]},"escape-character":{match:"\\\\.",name:"constant.character.escape.tsp"},expression:{patterns:[{include:"#token"},{include:"#directive"},{include:"#parenthesized-expression"},{include:"#valueof"},{include:"#typeof"},{include:"#type-arguments"},{include:"#object-literal"},{include:"#tuple-literal"},{include:"#tuple-expression"},{include:"#model-expression"},{include:"#callExpression"},{include:"#identifier-expression"}]},"function-call":{begin:"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(\\()",beginCaptures:{1:{name:"entity.name.function.tsp"},2:{name:"punctuation.parenthesis.open.tsp"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.tsp"}},name:"meta.function-call.typespec",patterns:[{include:"#expression"}]},"function-declaration-statement":{begin:"(?:(extern)\\s+)?\\b(fn)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"keyword.other.tsp"},3:{name:"entity.name.function.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.function-declaration-statement.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"},{include:"#type-annotation"}]},"identifier-expression":{match:"\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`",name:"entity.name.type.tsp"},"if-expression":{begin:"\\b(if)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.if-expression.typespec",patterns:[{include:"#projection-expression"},{include:"#projection-body"}]},"import-statement":{begin:"\\b(import)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.import-statement.typespec",patterns:[{include:"#token"}]},"interface-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.interface-body.typespec",patterns:[{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#interface-member"},{include:"#punctuation-semicolon"}]},"interface-heritage":{begin:"\\b(extends)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"((?=\\{)|(?=;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.interface-heritage.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"interface-member":{begin:"(?:\\b(op)\\b\\s+)?(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.function.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.interface-member.typespec",patterns:[{include:"#token"},{include:"#operation-signature"}]},"interface-statement":{begin:"\\b(interface)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.interface-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#interface-heritage"},{include:"#interface-body"},{include:"#expression"}]},"line-comment":{match:"//.*$",name:"comment.line.double-slash.tsp"},"model-expression":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.model-expression.typespec",patterns:[{include:"#model-property"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#spread-operator"},{include:"#punctuation-semicolon"}]},"model-heritage":{begin:"\\b(extends|is)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"((?=\\{)|(?=;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.model-heritage.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"model-property":{begin:'(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)|(\\"(?:[^\\"\\\\]|\\\\.)*\\"))',beginCaptures:{1:{name:"variable.name.tsp"},2:{name:"string.quoted.double.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.model-property.typespec",patterns:[{include:"#token"},{include:"#type-annotation"},{include:"#operator-assignment"},{include:"#expression"}]},"model-statement":{begin:"\\b(model)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.model-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#model-heritage"},{include:"#expression"}]},"namespace-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.namespace-body.typespec",patterns:[{include:"#statement"}]},"namespace-name":{begin:"(?=[_$[:alpha:]])",end:"((?=\\{)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.namespace-name.typespec",patterns:[{include:"#identifier-expression"},{include:"#punctuation-accessor"}]},"namespace-statement":{begin:"\\b(namespace)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.namespace-statement.typespec",patterns:[{include:"#token"},{include:"#namespace-name"},{include:"#namespace-body"}]},"numeric-literal":{match:"(?:\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)|\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)|(?<!\\$)(?:(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(\\.)(n)?\\B)|(?:\\B(\\.)[0-9][0-9_]*(n)?\\b)|(?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)))(?!\\$))",name:"constant.numeric.tsp"},"object-literal":{begin:"#\\{",beginCaptures:{0:{name:"punctuation.hashcurlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.object-literal.typespec",patterns:[{include:"#token"},{include:"#object-literal-property"},{include:"#directive"},{include:"#spread-operator"},{include:"#punctuation-comma"}]},"object-literal-property":{begin:"(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:))",beginCaptures:{1:{name:"variable.name.tsp"},2:{name:"keyword.operator.type.annotation.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.object-literal-property.typespec",patterns:[{include:"#token"},{include:"#expression"}]},"operation-heritage":{begin:"\\b(is)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.operation-heritage.typespec",patterns:[{include:"#expression"}]},"operation-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.tsp"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.tsp"}},name:"meta.operation-parameters.typespec",patterns:[{include:"#token"},{include:"#decorator"},{include:"#model-property"},{include:"#spread-operator"},{include:"#punctuation-comma"}]},"operation-signature":{patterns:[{include:"#type-parameters"},{include:"#operation-heritage"},{include:"#operation-parameters"},{include:"#type-annotation"}]},"operation-statement":{begin:"\\b(op)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.function.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.operation-statement.typespec",patterns:[{include:"#token"},{include:"#operation-signature"}]},"operator-assignment":{match:"=",name:"keyword.operator.assignment.tsp"},"parenthesized-expression":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.tsp"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.tsp"}},name:"meta.parenthesized-expression.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},projection:{begin:"(from|to)",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.projection.typespec",patterns:[{include:"#projection-parameters"},{include:"#projection-body"}]},"projection-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.projection-body.typespec",patterns:[{include:"#projection-expression"},{include:"#punctuation-semicolon"}]},"projection-expression":{patterns:[{include:"#else-if-expression"},{include:"#if-expression"},{include:"#else-expression"},{include:"#function-call"}]},"projection-parameter":{begin:"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"variable.name.tsp"}},end:"(?=\\))|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.projection-parameter.typespec",patterns:[]},"projection-parameters":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.open.tsp"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.close.tsp"}},name:"meta.projection-parameters.typespec",patterns:[{include:"#token"},{include:"#projection-parameter"}]},"projection-statement":{begin:"\\b(projection)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)(#)(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"keyword.other.tsp"},3:{name:"keyword.operator.selector.tsp"},4:{name:"variable.name.tsp"}},end:"((?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b))",name:"meta.projection-statement.typespec",patterns:[{include:"#projection-statement-body"}]},"projection-statement-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.projection-statement-body.typespec",patterns:[{include:"#projection"}]},"punctuation-accessor":{match:"\\.",name:"punctuation.accessor.tsp"},"punctuation-comma":{match:",",name:"punctuation.comma.tsp"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.tsp"},"scalar-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.scalar-body.typespec",patterns:[{include:"#token"},{include:"#directive"},{include:"#scalar-constructor"},{include:"#punctuation-semicolon"}]},"scalar-constructor":{begin:"\\b(init)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.function.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.scalar-constructor.typespec",patterns:[{include:"#token"},{include:"#operation-parameters"}]},"scalar-extends":{begin:"\\b(extends)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?=;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.scalar-extends.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"scalar-statement":{begin:"\\b(scalar)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.type.tsp"}},end:"(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.scalar-statement.typespec",patterns:[{include:"#token"},{include:"#type-parameters"},{include:"#scalar-extends"},{include:"#scalar-body"}]},"spread-operator":{begin:"\\.\\.\\.",beginCaptures:{0:{name:"keyword.operator.spread.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.spread-operator.typespec",patterns:[{include:"#expression"}]},statement:{patterns:[{include:"#token"},{include:"#directive"},{include:"#augment-decorator-statement"},{include:"#decorator"},{include:"#model-statement"},{include:"#scalar-statement"},{include:"#union-statement"},{include:"#interface-statement"},{include:"#enum-statement"},{include:"#alias-statement"},{include:"#const-statement"},{include:"#namespace-statement"},{include:"#operation-statement"},{include:"#import-statement"},{include:"#using-statement"},{include:"#decorator-declaration-statement"},{include:"#function-declaration-statement"},{include:"#projection-statement"},{include:"#punctuation-semicolon"}]},"string-literal":{begin:'"',end:'"|$',name:"string.quoted.double.tsp",patterns:[{include:"#template-expression"},{include:"#escape-character"}]},"template-expression":{begin:"\\$\\{",beginCaptures:{0:{name:"punctuation.definition.template-expression.begin.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.template-expression.end.tsp"}},name:"meta.template-expression.typespec",patterns:[{include:"#expression"}]},token:{patterns:[{include:"#doc-comment"},{include:"#line-comment"},{include:"#block-comment"},{include:"#triple-quoted-string-literal"},{include:"#string-literal"},{include:"#boolean-literal"},{include:"#numeric-literal"}]},"triple-quoted-string-literal":{begin:'"""',end:'"""',name:"string.quoted.triple.tsp",patterns:[{include:"#template-expression"},{include:"#escape-character"}]},"tuple-expression":{begin:"\\[",beginCaptures:{0:{name:"punctuation.squarebracket.open.tsp"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.tsp"}},name:"meta.tuple-expression.typespec",patterns:[{include:"#expression"}]},"tuple-literal":{begin:"#\\[",beginCaptures:{0:{name:"punctuation.hashsquarebracket.open.tsp"}},end:"\\]",endCaptures:{0:{name:"punctuation.squarebracket.close.tsp"}},name:"meta.tuple-literal.typespec",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"type-annotation":{begin:"\\s*(\\??)\\s*(:)",beginCaptures:{1:{name:"keyword.operator.optional.tsp"},2:{name:"keyword.operator.type.annotation.tsp"}},end:"(?=,|;|@|\\)|\\}|=|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.type-annotation.typespec",patterns:[{include:"#expression"}]},"type-argument":{begin:"(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(=))",beginCaptures:{1:{name:"entity.name.type.tsp"},2:{name:"keyword.operator.assignment.tsp"}},end:"=",endCaptures:{0:{name:"keyword.operator.assignment.tsp"}},name:"meta.type-argument.typespec",patterns:[{include:"#token"},{include:"#expression"},{include:"#punctuation-comma"}]},"type-arguments":{begin:"<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsp"}},end:">",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsp"}},name:"meta.type-arguments.typespec",patterns:[{include:"#type-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"type-parameter":{begin:"(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"entity.name.type.tsp"}},end:"(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.type-parameter.typespec",patterns:[{include:"#token"},{include:"#type-parameter-constraint"},{include:"#type-parameter-default"}]},"type-parameter-constraint":{begin:"extends",beginCaptures:{0:{name:"keyword.other.tsp"}},end:"(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.type-parameter-constraint.typespec",patterns:[{include:"#expression"}]},"type-parameter-default":{begin:"=",beginCaptures:{0:{name:"keyword.operator.assignment.tsp"}},end:"(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.type-parameter-default.typespec",patterns:[{include:"#expression"}]},"type-parameters":{begin:"<",beginCaptures:{0:{name:"punctuation.definition.typeparameters.begin.tsp"}},end:">",endCaptures:{0:{name:"punctuation.definition.typeparameters.end.tsp"}},name:"meta.type-parameters.typespec",patterns:[{include:"#type-parameter"},{include:"#punctuation-comma"}]},typeof:{begin:"\\b(typeof)",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.typeof.typespec",patterns:[{include:"#expression"}]},"union-body":{begin:"\\{",beginCaptures:{0:{name:"punctuation.curlybrace.open.tsp"}},end:"\\}",endCaptures:{0:{name:"punctuation.curlybrace.close.tsp"}},name:"meta.union-body.typespec",patterns:[{include:"#union-variant"},{include:"#token"},{include:"#directive"},{include:"#decorator"},{include:"#expression"},{include:"#punctuation-comma"}]},"union-statement":{begin:"\\b(union)\\b\\s+(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)",beginCaptures:{1:{name:"keyword.other.tsp"},2:{name:"entity.name.type.tsp"}},end:"(?<=\\})|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.union-statement.typespec",patterns:[{include:"#token"},{include:"#union-body"}]},"union-variant":{begin:"(?:(\\b[_$[:alpha:]][_$[:alnum:]]*\\b|`(?:[^`\\\\]|\\\\.)*`)\\s*(:))",beginCaptures:{1:{name:"variable.name.tsp"},2:{name:"keyword.operator.type.annotation.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.union-variant.typespec",patterns:[{include:"#token"},{include:"#expression"}]},"using-statement":{begin:"\\b(using)\\b",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.using-statement.typespec",patterns:[{include:"#token"},{include:"#identifier-expression"},{include:"#punctuation-accessor"}]},valueof:{begin:"\\b(valueof)",beginCaptures:{1:{name:"keyword.other.tsp"}},end:"(?=>)|(?=,|;|@|\\)|\\}|\\b(?:extern)\\b|\\b(?:namespace|model|op|using|import|enum|alias|union|interface|dec|fn)\\b)",name:"meta.valueof.typespec",patterns:[{include:"#expression"}]}},p="source.tsp",s={displayName:e,fileTypes:n,name:t,patterns:a,repository:i,scopeName:p};export{s as default,e as displayName,n as fileTypes,t as name,a as patterns,i as repository,p as scopeName}; diff --git a/lib/dist/grammar/typst.mjs b/lib/dist/grammar/typst.mjs new file mode 100644 index 0000000..6a07180 --- /dev/null +++ b/lib/dist/grammar/typst.mjs @@ -0,0 +1 @@ +var t="Typst",n="typst",e=[{include:"#markup"}],a={arguments:{patterns:[{match:"\\b[[:alpha:]_][[:alnum:]_-]*(?=:)",name:"variable.parameter.typst"},{include:"#code"}]},code:{patterns:[{include:"#common"},{begin:"{",captures:{0:{name:"punctuation.definition.block.code.typst"}},end:"}",name:"meta.block.code.typst",patterns:[{include:"#code"}]},{begin:"\\[",captures:{0:{name:"punctuation.definition.block.content.typst"}},end:"\\]",name:"meta.block.content.typst",patterns:[{include:"#markup"}]},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.typst"}},end:"\n",name:"comment.line.double-slash.typst"},{match:":",name:"punctuation.separator.colon.typst"},{match:",",name:"punctuation.separator.comma.typst"},{match:"=>|\\.\\.",name:"keyword.operator.typst"},{match:"==|!=|<=|<|>=|>",name:"keyword.operator.relational.typst"},{match:"\\+=|-=|\\*=|/=|=",name:"keyword.operator.assignment.typst"},{match:"\\+|\\*|/|(?<![[:alpha:]_][[:alnum:]_-]*)-(?![:alnum:]_-]*[[:alpha:]_])",name:"keyword.operator.arithmetic.typst"},{match:"\\b(and|or|not)\\b",name:"keyword.operator.word.typst"},{match:"\\b(let|as|in|set|show)\\b",name:"keyword.other.typst"},{match:"\\b(if|else)\\b",name:"keyword.control.conditional.typst"},{match:"\\b(for|while|break|continue)\\b",name:"keyword.control.loop.typst"},{match:"\\b(import|include|export)\\b",name:"keyword.control.import.typst"},{match:"\\b(return)\\b",name:"keyword.control.flow.typst"},{include:"#constants"},{comment:"Function name",match:"\\b[[:alpha:]_][[:alnum:]_-]*!?(?=\\[|\\()",name:"entity.name.function.typst"},{comment:"Function name",match:"(?<=\\bshow\\s*)\\b[[:alpha:]_][[:alnum:]_-]*(?=\\s*[:.])",name:"entity.name.function.typst"},{begin:"(?<=\\b[[:alpha:]_][[:alnum:]_-]*!?)\\(",captures:{0:{name:"punctuation.definition.group.typst"}},comment:"Function arguments",end:"\\)",patterns:[{include:"#arguments"}]},{match:"\\b[[:alpha:]_][[:alnum:]_-]*\\b",name:"variable.other.typst"},{begin:"\\(",captures:{0:{name:"punctuation.definition.group.typst"}},end:"\\)|(?=;)",name:"meta.group.typst",patterns:[{include:"#code"}]}]},comments:{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.typst"}},end:"\\*/",name:"comment.block.typst",patterns:[{include:"#comments"}]},{begin:"(?<!:)//",beginCaptures:{0:{name:"punctuation.definition.comment.typst"}},end:"\n",name:"comment.line.double-slash.typst",patterns:[{include:"#comments"}]}]},common:{patterns:[{include:"#comments"}]},constants:{patterns:[{match:"\\bnone\\b",name:"constant.language.none.typst"},{match:"\\bauto\\b",name:"constant.language.auto.typst"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?(mm|pt|cm|in|em)\\b",name:"constant.numeric.length.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?(rad|deg)\\b",name:"constant.numeric.angle.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?%",name:"constant.numeric.percentage.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?fr",name:"constant.numeric.fr.typst"},{match:"\\b\\d+\\b",name:"constant.numeric.integer.typst"},{match:"\\b(\\d*)?\\.?\\d+([eE][+-]?\\d+)?\\b",name:"constant.numeric.float.typst"},{begin:'"',captures:{0:{name:"punctuation.definition.string.typst"}},end:'"',name:"string.quoted.double.typst",patterns:[{match:'\\\\([\\\\"nrt]|u\\{?[0-9a-zA-Z]*\\}?)',name:"constant.character.escape.string.typst"}]},{begin:"\\$",captures:{0:{name:"punctuation.definition.string.math.typst"}},end:"\\$",name:"string.other.math.typst"}]},markup:{patterns:[{include:"#common"},{match:"\\\\([\\\\/\\[\\]{}#*_=~`$-.]|u\\{[0-9a-zA-Z]*\\}?)",name:"constant.character.escape.content.typst"},{match:"\\\\",name:"punctuation.definition.linebreak.typst"},{match:"~",name:"punctuation.definition.nonbreaking-space.typst"},{match:"-\\?",name:"punctuation.definition.shy.typst"},{match:"---",name:"punctuation.definition.em-dash.typst"},{match:"--",name:"punctuation.definition.en-dash.typst"},{match:"\\.\\.\\.",name:"punctuation.definition.ellipsis.typst"},{match:":([a-zA-Z0-9]+:)+",name:"constant.symbol.typst"},{begin:"(^\\*|\\*$|((?<=\\W|_)\\*)|(\\*(?=\\W|_)))",captures:{0:{name:"punctuation.definition.bold.typst"}},end:"(^\\*|\\*$|((?<=\\W|_)\\*)|(\\*(?=\\W|_)))|\n|(?=\\])",name:"markup.bold.typst",patterns:[{include:"#markup"}]},{begin:"(^_|_$|((?<=\\W|_)_)|(_(?=\\W|_)))",captures:{0:{name:"punctuation.definition.italic.typst"}},end:"(^_|_$|((?<=\\W|_)_)|(_(?=\\W|_)))|\n|(?=\\])",name:"markup.italic.typst",patterns:[{include:"#markup"}]},{match:"https?://[0-9a-zA-Z~/%#&=',;\\.\\+\\?]*",name:"markup.underline.link.typst"},{begin:"`{3,}",captures:{0:{name:"punctuation.definition.raw.typst"}},end:"\\0",name:"markup.raw.block.typst"},{begin:"`",captures:{0:{name:"punctuation.definition.raw.typst"}},end:"`",name:"markup.raw.inline.typst"},{begin:"\\$",captures:{0:{name:"punctuation.definition.string.math.typst"}},end:"\\$",name:"string.other.math.typst"},{begin:"^\\s*=+\\s+",beginCaptures:{0:{name:"punctuation.definition.heading.typst"}},contentName:"entity.name.section.typst",end:"\n|(?=<)",name:"markup.heading.typst",patterns:[{include:"#markup"}]},{match:"^\\s*-\\s+",name:"punctuation.definition.list.unnumbered.typst"},{match:"^\\s*([0-9]*\\.|\\+)\\s+",name:"punctuation.definition.list.numbered.typst"},{captures:{1:{name:"punctuation.definition.list.description.typst"},2:{name:"markup.list.term.typst"}},match:"^\\s*(/)\\s+([^:]*:)"},{captures:{1:{name:"punctuation.definition.label.typst"}},match:"<[[:alpha:]_][[:alnum:]_-]*>",name:"entity.other.label.typst"},{captures:{1:{name:"punctuation.definition.reference.typst"}},match:"(@)[[:alpha:]_][[:alnum:]_-]*",name:"entity.other.reference.typst"},{begin:"(#)(let|set|show)\\b",beginCaptures:{0:{name:"keyword.other.typst"},1:{name:"punctuation.definition.keyword.typst"}},end:"\n|(;)|(?=])",endCaptures:{1:{name:"punctuation.terminator.statement.typst"}},patterns:[{include:"#code"}]},{captures:{1:{name:"punctuation.definition.keyword.typst"}},match:"(#)(as|in)\\b",name:"keyword.other.typst"},{begin:"((#)if|(?<=(}|])\\s*)else)\\b",beginCaptures:{0:{name:"keyword.control.conditional.typst"},2:{name:"punctuation.definition.keyword.typst"}},end:"\n|(?=])|(?<=}|])",patterns:[{include:"#code"}]},{begin:"(#)(for|while)\\b",beginCaptures:{0:{name:"keyword.control.loop.typst"},1:{name:"punctuation.definition.keyword.typst"}},end:"\n|(?=])|(?<=}|])",patterns:[{include:"#code"}]},{captures:{1:{name:"punctuation.definition.keyword.typst"}},match:"(#)(break|continue)\\b",name:"keyword.control.loop.typst"},{begin:"(#)(import|include|export)\\b",beginCaptures:{0:{name:"keyword.control.import.typst"},1:{name:"punctuation.definition.keyword.typst"}},end:"\n|(;)|(?=])",endCaptures:{1:{name:"punctuation.terminator.statement.typst"}},patterns:[{include:"#code"}]},{captures:{1:{name:"punctuation.definition.keyword.typst"}},match:"(#)(return)\\b",name:"keyword.control.flow.typst"},{captures:{2:{name:"punctuation.definition.function.typst"}},comment:"Function name",match:"((#)[[:alpha:]_][[:alnum:]_-]*!?)(?=\\[|\\()",name:"entity.name.function.typst"},{begin:"(?<=#[[:alpha:]_][[:alnum:]_-]*!?)\\(",captures:{0:{name:"punctuation.definition.group.typst"}},comment:"Function arguments",end:"\\)",patterns:[{include:"#arguments"}]},{captures:{1:{name:"punctuation.definition.variable.typst"}},match:"(#)[[:alpha:]_][.[:alnum:]_-]*",name:"entity.other.interpolated.typst"},{begin:"#",end:"\\s",name:"meta.block.content.typst",patterns:[{include:"#code"}]}]}},i="source.typst",o={displayName:t,name:n,patterns:e,repository:a,scopeName:i};export{o as default,t as displayName,n as name,e as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/v.mjs b/lib/dist/grammar/v.mjs new file mode 100644 index 0000000..6877178 --- /dev/null +++ b/lib/dist/grammar/v.mjs @@ -0,0 +1 @@ +var e="V",n=[".v",".vh",".vsh",".vv","v.mod"],t="v",a=[{include:"#comments"},{include:"#function-decl"},{include:"#as-is"},{include:"#attributes"},{include:"#assignment"},{include:"#module-decl"},{include:"#import-decl"},{include:"#hash-decl"},{include:"#brackets"},{include:"#builtin-fix"},{include:"#escaped-fix"},{include:"#operators"},{include:"#function-limited-overload-decl"},{include:"#function-extend-decl"},{include:"#function-exist"},{include:"#generic"},{include:"#constants"},{include:"#type"},{include:"#enum"},{include:"#interface"},{include:"#struct"},{include:"#keywords"},{include:"#storage"},{include:"#numbers"},{include:"#strings"},{include:"#types"},{include:"#punctuations"},{include:"#variable-assign"},{include:"#function-decl"}],i={"as-is":{begin:"\\s+(as|is)\\s+",beginCaptures:{1:{name:"keyword.$1.v"}},end:"([\\w.]*)",endCaptures:{1:{name:"entity.name.alias.v"}}},assignment:{captures:{1:{patterns:[{include:"#operators"}]}},match:"\\s+((?:\\:|\\+|\\-|\\*|/|\\%|\\&|\\||\\^)?=)\\s+",name:"meta.definition.variable.v"},attributes:{captures:{1:{name:"meta.function.attribute.v"},2:{name:"punctuation.definition.begin.bracket.square.v"},3:{name:"storage.modifier.attribute.v"},4:{name:"punctuation.definition.end.bracket.square.v"}},match:"^\\s*((\\[)(deprecated|unsafe|console|heap|manualfree|typedef|live|inline|flag|ref_only|direct_array_access|callconv)(\\]))",name:"meta.definition.attribute.v"},brackets:{patterns:[{begin:"{",beginCaptures:{0:{name:"punctuation.definition.bracket.curly.begin.v"}},end:"}",endCaptures:{0:{name:"punctuation.definition.bracket.curly.end.v"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.bracket.round.begin.v"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.bracket.round.end.v"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.bracket.square.begin.v"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.bracket.square.end.v"}},patterns:[{include:"$self"}]}]},"builtin-fix":{patterns:[{patterns:[{match:"(const)(?=\\s*\\()",name:"storage.modifier.v"},{match:"\\b(fn|type|enum|struct|union|interface|map|assert|sizeof|typeof|__offsetof)\\b(?=\\s*\\()",name:"keyword.$1.v"}]},{patterns:[{match:"(\\$if|\\$else)(?=\\s*\\()",name:"keyword.control.v"},{match:"\\b(as|in|is|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b(?=\\s*\\()",name:"keyword.control.v"}]},{patterns:[{captures:{1:{name:"storage.type.numeric.v"}},match:"(?<!.)(i?(?:8|16|nt|64|128)|u?(?:16|32|64|128)|f?(?:32|64))(?=\\s*\\()",name:"meta.expr.numeric.cast.v"},{captures:{1:{name:"storage.type.$1.v"}},match:"(bool|byte|byteptr|charptr|voidptr|string|rune|size_t|[ui]size)(?=\\s*\\()",name:"meta.expr.bool.cast.v"}]}]},comments:{patterns:[{begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.begin.v"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.end.v"}},name:"comment.block.documentation.v",patterns:[{include:"#comments"}]},{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.begin.v"}},end:"$",name:"comment.line.double-slash.v"}]},constants:{match:"\\b(true|false|none)\\b",name:"constant.language.v"},enum:{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.enum.v"},3:{name:"entity.name.enum.v"}},match:"^\\s*(?:(pub)?\\s+)?(enum)\\s+(?:\\w+\\.)?(\\w*)",name:"meta.definition.enum.v"},"function-decl":{captures:{1:{name:"storage.modifier.v"},2:{name:"keyword.fn.v"},3:{name:"entity.name.function.v"},4:{patterns:[{include:"#generic"}]}},match:"^(\\bpub\\b\\s+)?(\\bfn\\b)\\s+(?:\\([^\\)]+\\)\\s+)?(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?",name:"meta.definition.function.v"},"function-exist":{captures:{0:{name:"meta.function.call.v"},1:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]},2:{patterns:[{include:"#generic"}]}},match:"(\\w+)((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?(?=\\s*\\()",name:"meta.support.function.v"},"function-extend-decl":{captures:{1:{name:"storage.modifier.v"},2:{name:"keyword.fn.v"},3:{name:"punctuation.definition.bracket.round.begin.v"},4:{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},5:{name:"punctuation.definition.bracket.round.end.v"},6:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]},7:{patterns:[{include:"#generic"}]}},match:"^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?",name:"meta.definition.function.v"},"function-limited-overload-decl":{captures:{1:{name:"storage.modifier.v"},2:{name:"keyword.fn.v"},3:{name:"punctuation.definition.bracket.round.begin.v"},4:{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},5:{name:"punctuation.definition.bracket.round.end.v"},6:{patterns:[{include:"#operators"}]},7:{name:"punctuation.definition.bracket.round.begin.v"},8:{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},9:{name:"punctuation.definition.bracket.round.end.v"},10:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]}},match:"^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*([\\+\\-\\*\\/])?\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)",name:"meta.definition.function.v"},generic:{patterns:[{captures:{1:{name:"punctuation.definition.bracket.angle.begin.v"},2:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.generic.v"}]},3:{name:"punctuation.definition.bracket.angle.end.v"}},match:"(?<=[\\w\\s+])(\\<)(\\w+)(\\>)",name:"meta.definition.generic.v"}]},"hash-decl":{begin:"^\\s*(#)",end:"$",name:"markup.bold.v"},"illegal-name":{match:"\\d\\w+",name:"invalid.illegal.v"},"import-decl":{begin:"^\\s*(import)\\s+",beginCaptures:{1:{name:"keyword.import.v"}},end:"([\\w.]+)",endCaptures:{1:{name:"entity.name.import.v"}},name:"meta.import.v"},interface:{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"keyword.interface.v"},3:{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.interface.v"}]}},match:"^\\s*(?:(pub)?\\s+)?(interface)\\s+(\\w*)",name:"meta.definition.interface.v"},keywords:{patterns:[{match:"(\\$if|\\$else)",name:"keyword.control.v"},{match:"(?<!@)\\b(as|it|is|in|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b",name:"keyword.control.v"},{match:"(?<!@)\\b(fn|type|typeof|enum|struct|interface|map|assert|sizeof|__offsetof)\\b",name:"keyword.$1.v"}]},"module-decl":{begin:"^\\s*(module)\\s+",beginCaptures:{1:{name:"keyword.module.v"}},end:"([\\w.]+)",endCaptures:{1:{name:"entity.name.module.v"}},name:"meta.module.v"},numbers:{patterns:[{match:"([0-9]+(_?))+(\\.)([0-9]+[eE][-+]?[0-9]+)",name:"constant.numeric.exponential.v"},{match:"([0-9]+(_?))+(\\.)([0-9]+)",name:"constant.numeric.float.v"},{match:"(?:0b)(?:(?:[0-1]+)(?:_?))+",name:"constant.numeric.binary.v"},{match:"(?:0o)(?:(?:[0-7]+)(?:_?))+",name:"constant.numeric.octal.v"},{match:"(?:0x)(?:(?:[0-9a-fA-F]+)(?:_?))+",name:"constant.numeric.hex.v"},{match:"(?:(?:[0-9]+)(?:[_]?))+",name:"constant.numeric.integer.v"}]},operators:{patterns:[{match:"(\\+|\\-|\\*|\\/|\\%|\\+\\+|\\-\\-|\\>\\>|\\<\\<)",name:"keyword.operator.arithmetic.v"},{match:"(\\=\\=|\\!\\=|\\>|\\<|\\>\\=|\\<\\=)",name:"keyword.operator.relation.v"},{match:"(\\:\\=|\\=|\\+\\=|\\-\\=|\\*\\=|\\/\\=|\\%\\=|\\&\\=|\\|\\=|\\^\\=|\\~\\=|\\&\\&\\=|\\|\\|\\=|\\>\\>\\=|\\<\\<\\=)",name:"keyword.operator.assignment.v"},{match:"(\\&|\\||\\^|\\~|<(?!<)|>(?!>))",name:"keyword.operator.bitwise.v"},{match:"(\\&\\&|\\|\\||\\!)",name:"keyword.operator.logical.v"},{match:"\\?",name:"keyword.operator.optional.v"}]},punctuation:{patterns:[{match:"\\.",name:"punctuation.delimiter.period.dot.v"},{match:",",name:"punctuation.delimiter.comma.v"},{match:":",name:"punctuation.separator.key-value.colon.v"},{match:";",name:"punctuation.definition.other.semicolon.v"},{match:"\\?",name:"punctuation.definition.other.questionmark.v"},{match:"#",name:"punctuation.hash.v"}]},punctuations:{patterns:[{match:"(?:\\.)",name:"punctuation.accessor.v"},{match:"(?:,)",name:"punctuation.separator.comma.v"}]},storage:{match:"\\b(const|mut|pub)\\b",name:"storage.modifier.v"},"string-escaped-char":{patterns:[{match:"\\\\([0-7]{3}|[\\$abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})",name:"constant.character.escape.v"},{match:"\\\\[^0-7\\$xuUabfnrtv\\'\"]",name:"invalid.illegal.unknown-escape.v"}]},"string-interpolation":{captures:{1:{patterns:[{match:"\\$\\d[\\.\\w]+",name:"invalid.illegal.v"},{match:"\\$([\\.\\w]+|\\{.*?\\})",name:"variable.other.interpolated.v"}]}},match:"(\\$([\\w.]+|\\{.*?\\}))",name:"meta.string.interpolation.v"},"string-placeholder":{match:"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]",name:"constant.other.placeholder.v"},strings:{patterns:[{begin:"`",end:"`",name:"string.quoted.rune.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(r)'",beginCaptures:{1:{name:"storage.type.string.v"}},end:"'",name:"string.quoted.raw.v",patterns:[{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:'(r)"',beginCaptures:{1:{name:"storage.type.string.v"}},end:'"',name:"string.quoted.raw.v",patterns:[{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(c?)'",beginCaptures:{1:{name:"storage.type.string.v"}},end:"'",name:"string.quoted.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:'(c?)"',beginCaptures:{1:{name:"storage.type.string.v"}},end:'"',name:"string.quoted.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]}]},struct:{patterns:[{begin:"^\\s*(?:(mut|pub(?:\\s+mut)?|__global)\\s+)?(struct|union)\\s+([\\w.]+)\\s*|({)",beginCaptures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.struct.v"},3:{name:"entity.name.type.v"},4:{name:"punctuation.definition.bracket.curly.begin.v"}},end:"\\s*|(})",endCaptures:{1:{name:"punctuation.definition.bracket.curly.end.v"}},name:"meta.definition.struct.v",patterns:[{include:"#struct-access-modifier"},{captures:{1:{name:"variable.other.property.v"},2:{patterns:[{include:"#numbers"},{include:"#brackets"},{include:"#types"},{match:"\\w+",name:"storage.type.other.v"}]},3:{name:"keyword.operator.assignment.v"},4:{patterns:[{include:"$self"}]}},match:"\\b(\\w+)\\s+([\\w\\[\\]\\*&.]+)(?:\\s*(=)\\s*((?:.(?=$|//|/\\*))*+))?"},{include:"#types"},{include:"$self"}]},{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.struct.v"},3:{name:"entity.name.struct.v"}},match:"^\\s*(?:(mut|pub(?:\\s+mut)?|__global))\\s+?(struct)\\s+(?:\\s+([\\w.]+))?",name:"meta.definition.struct.v"}]},"struct-access-modifier":{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"punctuation.separator.struct.key-value.v"}},match:"(?<=\\s|^)(mut|pub(?:\\s+mut)?|__global)(:|\\b)"},type:{captures:{1:{name:"storage.modifier.$1.v"},2:{name:"storage.type.type.v"},3:{patterns:[{include:"#illegal-name"},{include:"#types"},{match:"\\w+",name:"entity.name.type.v"}]},4:{patterns:[{include:"#illegal-name"},{include:"#types"},{match:"\\w+",name:"entity.name.type.v"}]}},match:"^\\s*(?:(pub)?\\s+)?(type)\\s+(\\w*)\\s+(?:\\w+\\.+)?(\\w*)",name:"meta.definition.type.v"},types:{patterns:[{match:"(?<!\\.)\\b(i(8|16|nt|64|128)|u(8|16|32|64|128)|f(32|64))\\b",name:"storage.type.numeric.v"},{match:"(?<!\\.)\\b(bool|byte|byteptr|charptr|voidptr|string|ustring|rune)\\b",name:"storage.type.$1.v"}]},"variable-assign":{captures:{0:{patterns:[{match:"[a-zA-Z_]\\w*",name:"variable.other.assignment.v"},{include:"#punctuation"}]}},match:"[a-zA-Z_]\\w*(?:,\\s*[a-zA-Z_]\\w*)*(?=\\s*(?:=|:=))"}},r="source.v",c={displayName:"V",fileTypes:n,name:"v",patterns:a,repository:i,scopeName:r};export{c as default,e as displayName,n as fileTypes,t as name,a as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/vala.mjs b/lib/dist/grammar/vala.mjs new file mode 100644 index 0000000..044e291 --- /dev/null +++ b/lib/dist/grammar/vala.mjs @@ -0,0 +1 @@ +var a="Vala",e=["vala","vapi","gs"],t="vala",n=[{include:"#code"}],i={code:{patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#keywords"},{include:"#types"},{include:"#functions"},{include:"#variables"}]},comments:{patterns:[{captures:{0:{name:"punctuation.definition.comment.vala"}},match:"/\\*\\*/",name:"comment.block.empty.vala"},{include:"text.html.javadoc"},{include:"#comments-inline"}]},"comments-inline":{patterns:[{begin:"/\\*",captures:{0:{name:"punctuation.definition.comment.vala"}},end:"\\*/",name:"comment.block.vala"},{captures:{1:{name:"comment.line.double-slash.vala"},2:{name:"punctuation.definition.comment.vala"}},match:"\\s*((//).*$\\n?)"}]},constants:{patterns:[{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",name:"constant.numeric.vala"},{match:"\\b([A-Z][A-Z0-9_]+)\\b",name:"variable.other.constant.vala"}]},functions:{patterns:[{match:"(\\w+)(?=\\s*(<[\\s\\w.]+>\\s*)?\\()",name:"entity.name.function.vala"}]},keywords:{patterns:[{match:"(?<=^|[^@\\w\\.])(as|do|if|in|is|not|or|and|for|get|new|out|ref|set|try|var|base|case|else|enum|lock|null|this|true|void|weak|async|break|catch|class|const|false|owned|throw|using|while|with|yield|delete|extern|inline|params|public|return|sealed|signal|sizeof|static|struct|switch|throws|typeof|unlock|default|dynamic|ensures|finally|foreach|private|unowned|virtual|abstract|continue|delegate|internal|override|requires|volatile|construct|interface|namespace|protected|errordomain)\\b",name:"keyword.vala"},{match:"(?<=^|[^@\\w\\.])(bool|double|float|unichar|unichar2|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|string16|string32|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64|va_list|time_t)\\b",name:"keyword.vala"},{match:"(#if|#elif|#else|#endif)",name:"keyword.vala"}]},strings:{patterns:[{begin:'"""',end:'"""',name:"string.quoted.triple.vala"},{begin:'@"',end:'"',name:"string.quoted.interpolated.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"},{match:"\\$\\w+",name:"constant.character.escape.vala"},{match:"\\$\\(([^)(]|\\(([^)(]|\\([^)]*\\))*\\))*\\)",name:"constant.character.escape.vala"}]},{begin:'"',end:'"',name:"string.quoted.double.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"}]},{begin:"'",end:"'",name:"string.quoted.single.vala",patterns:[{match:"\\\\.",name:"constant.character.escape.vala"}]},{match:"/((\\\\/)|([^/]))*/(?=\\s*[,;)\\.\\n])",name:"string.regexp.vala"}]},types:{patterns:[{match:"(?<=^|[^@\\w\\.])(bool|double|float|unichar|unichar2|char|uchar|int|uint|long|ulong|short|ushort|size_t|ssize_t|string|string16|string32|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64|va_list|time_t)\\b",name:"storage.type.primitive.vala"},{match:"\\b([A-Z]+\\w*)\\b",name:"entity.name.type.vala"}]},variables:{patterns:[{match:"\\b([_a-z]+\\w*)\\b",name:"variable.other.vala"}]}},s="source.vala",c={displayName:a,fileTypes:e,name:t,patterns:n,repository:i,scopeName:s};export{c as default,a as displayName,e as fileTypes,t as name,n as patterns,i as repository,s as scopeName}; diff --git a/lib/dist/grammar/vb.mjs b/lib/dist/grammar/vb.mjs new file mode 100644 index 0000000..e820130 --- /dev/null +++ b/lib/dist/grammar/vb.mjs @@ -0,0 +1 @@ +var e="Visual Basic",a="vb",t=[{match:"\\n",name:"meta.ending-space"},{include:"#round-brackets"},{begin:"^(?=\\t)",end:"(?=[^\\t])",name:"meta.leading-space",patterns:[{captures:{1:{name:"meta.odd-tab.tabs"},2:{name:"meta.even-tab.tabs"}},match:"(\\t)(\\t)?"}]},{begin:"^(?= )",end:"(?=[^ ])",name:"meta.leading-space",patterns:[{captures:{1:{name:"meta.odd-tab.spaces"},2:{name:"meta.even-tab.spaces"}},match:"( )( )?"}]},{captures:{1:{name:"storage.type.function.asp"},2:{name:"entity.name.function.asp"},3:{name:"punctuation.definition.parameters.asp"},4:{name:"variable.parameter.function.asp"},5:{name:"punctuation.definition.parameters.asp"}},match:"^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?",name:"meta.function.asp"},{begin:"(^[ \\t]+)?(?=')",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.asp"}},end:"(?!\\G)",patterns:[{begin:"'",beginCaptures:{0:{name:"punctuation.definition.comment.asp"}},end:"\\n",name:"comment.line.apostrophe.asp"}]},{match:"(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)",name:"keyword.control.asp"},{match:"(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)",name:"keyword.operator.asp"},{captures:{1:{name:"storage.type.asp"},2:{name:"variable.other.bfeac.asp"},3:{name:"meta.separator.comma.asp"}},match:"(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))",name:"variable.other.dim.asp"},{match:"(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)",name:"storage.type.asp"},{match:"(?i:\\b(Private|Public|Default)\\b)",name:"storage.modifier.asp"},{match:"(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)",name:"constant.language.asp"},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.asp"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.asp"}},name:"string.quoted.double.asp",patterns:[{match:'""',name:"constant.character.escape.apostrophe.asp"}]},{captures:{1:{name:"punctuation.definition.variable.asp"}},match:"(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*",name:"variable.other.asp"},{match:"(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)",name:"support.class.asp"},{match:"(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)",name:"support.class.collection.asp"},{match:"(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)",name:"support.constant.asp"},{match:"(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)",name:"support.function.asp"},{match:"(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)",name:"support.function.event.asp"},{match:"(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))",name:"support.type.vb.asp"},{match:"(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)",name:"support.function.vb.asp"},{match:"-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.asp"},{match:"(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)",name:"support.type.vb.asp"},{captures:{1:{name:"entity.name.function.asp"}},match:"(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))",name:"support.function.asp"},{match:"(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))",name:"variable.other.asp"},{match:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b",name:"keyword.operator.js"}],n={"round-brackets":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.round-brackets.begin.asp"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.round-brackets.end.asp"}},name:"meta.round-brackets",patterns:[{include:"source.asp.vb.net"}]}},r="source.asp.vb.net",i={displayName:e,name:"vb",patterns:t,repository:n,scopeName:r};export{i as default,e as displayName,a as name,t as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/verilog.mjs b/lib/dist/grammar/verilog.mjs new file mode 100644 index 0000000..7e1f8d4 --- /dev/null +++ b/lib/dist/grammar/verilog.mjs @@ -0,0 +1 @@ +var e="Verilog",n=["v","vh"],t="verilog",a=[{include:"#comments"},{include:"#module_pattern"},{include:"#keywords"},{include:"#constants"},{include:"#strings"},{include:"#operators"}],i={comments:{patterns:[{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.verilog"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.verilog"}},end:"\\n",name:"comment.line.double-slash.verilog"}]},{begin:"/\\*",end:"\\*/",name:"comment.block.c-style.verilog"}]},constants:{patterns:[{match:"`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[a-z_A-Z][a-zA-Z0-9_$]*",name:"variable.other.constant.verilog"},{match:"[0-9]*'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\b",name:"constant.numeric.sized_integer.verilog"},{captures:{1:{name:"constant.numeric.integer.verilog"},2:{name:"punctuation.separator.range.verilog"},3:{name:"constant.numeric.integer.verilog"}},match:"\\b(\\d+)(:)(\\d+)\\b",name:"meta.block.numeric.range.verilog"},{match:"\\b\\d[\\d_]*(?i:e\\d+)?\\b",name:"constant.numeric.integer.verilog"},{match:"\\b\\d+\\.\\d+(?i:e\\d+)?\\b",name:"constant.numeric.real.verilog"},{match:"#\\d+",name:"constant.numeric.delay.verilog"},{match:"\\b[01xXzZ]+\\b",name:"constant.numeric.logic.verilog"}]},instantiation_patterns:{patterns:[{include:"#keywords"},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\s*(?=\\(|$)",beginCaptures:{1:{name:"entity.name.tag.module.reference.verilog"},2:{name:"entity.name.tag.module.identifier.verilog"}},end:";",endCaptures:{0:{name:"punctuation.terminator.expression.verilog"}},name:"meta.block.instantiation.parameterless.verilog",patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"}]},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()",beginCaptures:{1:{name:"entity.name.tag.module.reference.verilog"}},end:";",endCaptures:{0:{name:"punctuation.terminator.expression.verilog"}},name:"meta.block.instantiation.with.parameters.verilog",patterns:[{include:"#parenthetical_list"},{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"entity.name.tag.module.identifier.verilog"}]}]},keywords:{patterns:[{match:"\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case[xz]?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\b",name:"keyword.other.verilog"},{match:"^\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|ifndef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\b",name:"keyword.other.compiler.directive.verilog"},{match:"\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\b",name:"support.function.system.console.tasks.verilog"},{match:"\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\b",name:"support.function.system.random_number.tasks.verilog"},{match:"\\$((a)?sync\\$((n)?and|(n)or)\\$(array|plane))\\b",name:"support.function.system.pld_modeling.tasks.verilog"},{match:"\\$(q_(initialize|add|remove|full|exam))\\b",name:"support.function.system.stochastic.tasks.verilog"},{match:"\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\b",name:"support.function.system.timing.tasks.verilog"},{match:"\\$(dump(file|vars|off|on|all|limit|flush))\\b",name:"support.function.system.vcd.tasks.verilog"},{match:"\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)",name:"support.function.non-standard.tasks.verilog"}]},module_pattern:{patterns:[{begin:"\\b(module)\\s+([a-zA-Z][a-zA-Z0-9_]*)",beginCaptures:{1:{name:"storage.type.module.verilog"},2:{name:"entity.name.type.module.verilog"}},end:"\\bendmodule\\b",endCaptures:{0:{name:"storage.type.module.verilog"}},name:"meta.block.module.verilog",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#constants"},{include:"#strings"},{include:"#instantiation_patterns"},{include:"#operators"}]}]},operators:{patterns:[{match:"\\+|-|\\*|/|%|(<|>)=?|(!|=)?==?|!|&&?|\\|\\|?|\\^?~|~\\^?",name:"keyword.operator.verilog"}]},parenthetical_list:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.list.verilog"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.list.verilog"}},name:"meta.block.parenthetical_list.verilog",patterns:[{include:"#parenthetical_list"},{include:"#comments"},{include:"#keywords"},{include:"#constants"},{include:"#strings"}]}]},strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.verilog",patterns:[{match:"\\\\.",name:"constant.character.escape.verilog"}]}]}},r="source.verilog",o={displayName:e,fileTypes:n,name:t,patterns:a,repository:i,scopeName:r};export{o as default,e as displayName,n as fileTypes,t as name,a as patterns,i as repository,r as scopeName}; diff --git a/lib/dist/grammar/vhdl.mjs b/lib/dist/grammar/vhdl.mjs new file mode 100644 index 0000000..c03016c --- /dev/null +++ b/lib/dist/grammar/vhdl.mjs @@ -0,0 +1 @@ +var n="VHDL",e=["vhd","vhdl","vho","vht"],t="vhdl",a=[{include:"#block_processing"},{include:"#cleanup"}],i={architecture_pattern:{patterns:[{begin:"(?x)\n\n\n\\b((?i:architecture))\\s+\n\n\n(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n\n((?i:of))\\s+\n\n\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.architecture.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"},7:{name:"entity.name.type.entity.reference.vhdl"},8:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\n\\b((?i:end))\n\n\n(\\s+((?i:architecture)))?\n\n\n(\\s+((\\3)|(.+?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.type.architecture.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},name:"support.block.architecture",patterns:[{include:"#block_pattern"},{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#component_pattern"},{include:"#if_pattern"},{include:"#process_pattern"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#for_pattern"},{include:"#entity_instantiation_pattern"},{include:"#component_instantiation_pattern"},{include:"#cleanup"}]}]},attribute_list:{patterns:[{begin:"\\'\\(",beginCaptures:{0:{name:"punctuation.vhdl"}},end:"\\)",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},block_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n(\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n)?\n\n(\\s*(?i:block))\n",beginCaptures:{2:{name:"meta.block.block.name"},3:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"}},end:"(?x)\n\n((?i:end\\s+block))\n\n\n(\\s+((\\2)|(.+?)))?\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},2:{name:"meta.block.block.end"},5:{name:"invalid.illegal.mismatched.identifier.vhdl"}},name:"meta.block.block",patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},block_processing:{patterns:[{include:"#package_pattern"},{include:"#package_body_pattern"},{include:"#entity_pattern"},{include:"#architecture_pattern"}]},case_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n\n(\n(\n([a-zA-Z][a-zA-Z0-9_]*)\n|(.+?)\n)\n\\s*:\\s*\n)?\n\n\n\\b((?i:case))\\b\n",beginCaptures:{3:{name:"entity.name.tag.case.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end))\\s*\n\n\n(\\s+(((?i:case))|(.*?)))\n\n\n(\\s+((\\2)|(.*?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"},5:{name:"invalid.illegal.case.required.vhdl"},8:{name:"entity.name.tag.case.end.vhdl"},9:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},cleanup:{patterns:[{include:"#comments"},{include:"#constants_numeric"},{include:"#strings"},{include:"#attribute_list"},{include:"#syntax_highlighting"}]},comments:{patterns:[{match:"--.*$\\n?",name:"comment.line.double-dash.vhdl"}]},component_instantiation_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n\n\n([a-zA-Z][a-zA-Z0-9_]*)\\b\n\n\n\n(?=\\s*($|generic|port))\n",beginCaptures:{1:{name:"entity.name.section.component_instantiation.vhdl"},2:{name:"punctuation.vhdl"},3:{name:"entity.name.tag.component.reference.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},component_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n\n\\b((?i:component))\\s+\n\n\n(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--)\n\n\n(\\b((?i:is\\b)))?\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.component.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},6:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end))\\s+\n\n\n(((?i:component\\b))|(.+?))(?=\\s*|;)\n\n\n(\\s+((\\3)|(.+?)))?(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"invalid.illegal.component.keyword.required.vhdl"},7:{name:"entity.name.type.component.end.vhdl"},8:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#generic_list_pattern"},{include:"#port_list_pattern"},{include:"#comments"}]}]},constants_numeric:{patterns:[{match:"\\b([+\\-]?[\\d_]+\\.[\\d_]+([eE][+\\-]?[\\d_]+)?)\\b",name:"constant.numeric.floating_point.vhdl"},{match:"\\b\\d+#[\\h_]+#\\b",name:"constant.numeric.base_pound_number_pound.vhdl"},{match:"\\b[\\d_]+([eE][\\d_]+)?\\b",name:"constant.numeric.integer.vhdl"},{match:'[xX]"[0-9a-fA-F_uUxXzZwWlLhH\\-]+"',name:"constant.numeric.quoted.double.string.hex.vhdl"},{match:'[oO]"[0-7_uUxXzZwWlLhH\\-]+"',name:"constant.numeric.quoted.double.string.octal.vhdl"},{match:'[bB]?"[01_uUxXzZwWlLhH\\-]+"',name:"constant.numeric.quoted.double.string.binary.vhdl"},{captures:{1:{name:"invalid.illegal.quoted.double.string.vhdl"}},match:'([bBoOxX]".+?")',name:"constant.numeric.quoted.double.string.illegal.vhdl"},{match:"'[01uUxXzZwWlLhH\\-]'",name:"constant.numeric.quoted.single.std_logic"}]},control_patterns:{patterns:[{include:"#case_pattern"},{include:"#if_pattern"},{include:"#for_pattern"},{include:"#while_pattern"}]},entity_instantiation_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n\n\n(((?i:use))\\s+)?\n\n\n((?i:entity))\\s+\n\n\n(\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n(\\.)\n)?\n\n\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\n(?=\\s*(\\(|$|(?i:port|generic)))\n\n\n(\n\n\\s*(\\()\\s*\n\n\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\))\n\n\n\\s*(\\))\n)?\n",beginCaptures:{1:{name:"entity.name.section.entity_instantiation.vhdl"},2:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"},5:{name:"keyword.language.vhdl"},8:{name:"entity.name.tag.library.reference.vhdl"},9:{name:"invalid.illegal.invalid.identifier.vhdl"},10:{name:"punctuation.vhdl"},12:{name:"entity.name.tag.entity.reference.vhdl"},13:{name:"invalid.illegal.invalid.identifier.vhdl"},16:{name:"punctuation.vhdl"},18:{name:"entity.name.tag.architecture.reference.vhdl"},19:{name:"invalid.illegal.invalid.identifier.vhdl"},21:{name:"punctuation.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},entity_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n\n((?i:entity\\b))\\s+\n\n\n(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s)\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.entity.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\n\n\\b((?i:end\\b))\n\n\n(\\s+((?i:entity)))?\n\n\n(\\s+((\\3)|(.+?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.type.entity.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#comments"},{include:"#generic_list_pattern"},{include:"#port_list_pattern"},{include:"#cleanup"}]}]},for_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n(\n\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n)?\n\n\n(?!(?i:wait\\s*))\n\n\n\\b((?i:for))\\b\n\n\n(?!\\s*(?i:all))\n\n",beginCaptures:{2:{name:"entity.name.tag.for.generate.begin.vhdl"},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end))\\s+\n(\n\n((?i:generate|loop))\n\n\n|(\\S+)\n)\\b\n\n\n(\\s+((\\2)|(.+?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"invalid.illegal.loop.or.generate.required.vhdl"},7:{name:"entity.name.tag.for.generate.end.vhdl"},8:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#entity_instantiation_pattern"},{include:"#component_pattern"},{include:"#component_instantiation_pattern"},{include:"#process_pattern"},{include:"#cleanup"}]}]},function_definition_pattern:{patterns:[{begin:'(?x)\n\n^\\s*\n\n\n((?i:impure)?\\s*(?i:function))\\s+\n\n(\n\n([a-zA-Z][a-zA-Z\\d_]*)\n\n|("\\S+")\n\n|(\\\\.+\\\\)\n\n|(.+?)\n)\n\n\n(?=\\s*\n(\n\\(\n|(?i:\\breturn\\b)\n)\n)\n',beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.function.begin.vhdl"},4:{name:"entity.name.function.function.begin.vhdl"},5:{name:"entity.name.function.function.begin.vhdl"},6:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\n^\\s*\n\n\n((?i:end))\n\n\n(\\s+((?i:function)))?\n\n\n(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.function.function.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#parenthetical_list"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},function_prototype_pattern:{patterns:[{begin:'(?x)\n\n^\\s*\n\n\n((?i:impure)?\\s*(?i:function))\\s+\n\n(\n\n([a-zA-Z][a-zA-Z\\d_]*)\n\n|("\\S+")\n\n|(\\\\.+\\\\)\n\n|(.+?)\n)\n\n\n(?=\\s*\n(\n\\(\n|(?i:\\breturn\\b)\n)\n)\n',beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.function.prototype.vhdl"},4:{name:"entity.name.function.function.prototype.vhdl"},5:{name:"entity.name.function.function.prototype.vhdl"},6:{name:"invalid.illegal.function.name.vhdl"}},end:"(?<=;)",patterns:[{begin:"\\b(?i:return)(?=\\s+[^;]+\\s*;)",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:"\\;",endCaptures:{0:{name:"punctuation.terminator.function_prototype.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]},{include:"#parenthetical_list"},{include:"#cleanup"}]}]},generic_list_pattern:{patterns:[{begin:"\\b(?i:generic)\\b",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},if_pattern:{patterns:[{begin:"(?x)\n(\n\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n)?\n\n\n\\b((?i:if))\\b\n",beginCaptures:{2:{name:"entity.name.tag.if.generate.begin.vhdl"},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end))\\s+\n\n(\n(\n\n((?i:generate|if))\n\n\n|(\\S+)\n)\\b\n(\n\\s+\n(\n\n(\\2)\n\n\n|(.+?)\n)\n)?\n)?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"},5:{name:"invalid.illegal.if.or.generate.required.vhdl"},8:{name:"entity.name.tag.if.generate.end.vhdl"},9:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#process_pattern"},{include:"#entity_instantiation_pattern"},{include:"#component_pattern"},{include:"#component_instantiation_pattern"},{include:"#cleanup"}]}]},keywords:{patterns:[{match:"'(?i:active|ascending|base|delayed|driving|driving_value|event|high|image|instance|instance_name|last|last_value|left|leftof|length|low|path|path_name|pos|pred|quiet|range|reverse|reverse_range|right|rightof|simple|simple_name|stable|succ|transaction|val|value)\\b",name:"keyword.attributes.vhdl"},{match:"\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|context|deallocate|disconnect|downto|else|elsif|end|entity|exit|file|for|force|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|protected|pure|range|record|register|reject|release|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b",name:"keyword.language.vhdl"},{match:"\\b(?i:std|ieee|work|standard|textio|std_logic_1164|std_logic_arith|std_logic_misc|std_logic_signed|std_logic_textio|std_logic_unsigned|numeric_bit|numeric_std|math_complex|math_real|vital_primitives|vital_timing)\\b",name:"standard.library.language.vhdl"},{match:"(\\+|\\-|<=|=|=>|:=|>=|>|<|/|\\||&|(\\*{1,2}))",name:"keyword.operator.vhdl"}]},package_body_pattern:{patterns:[{begin:"(?x)\n\n\\b((?i:package))\\s+\n\n\n((?i:body))\\s+\n\n\n(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\n((?i:is))\\b\n",beginCaptures:{1:{name:"keyword.language.vhdl"},2:{name:"keyword.language.vhdl"},4:{name:"entity.name.section.package_body.begin.vhdl"},5:{name:"invalid.illegal.invalid.identifier.vhdl"},6:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end\\b))\n\n\n(\\s+((?i:package))\\s+((?i:body)))?\n\n\n(\\s+((\\4)|(.+?)))?(?=\\s*;)",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"keyword.language.vhdl"},7:{name:"entity.name.section.package_body.end.vhdl"},8:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#protected_body_pattern"},{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},package_pattern:{patterns:[{begin:"(?x)\n\n\\b((?i:package))\\s+\n\n\n(?!(?i:body))\n\n\n(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\n((?i:is))\\b\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.section.package.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end\\b))\n\n\n(\\s+((?i:package)))?\n\n\n(\\s+((\\2)|(.+?)))?(?=\\s*;)",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.section.package.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#protected_pattern"},{include:"#function_prototype_pattern"},{include:"#procedure_prototype_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#component_pattern"},{include:"#cleanup"}]}]},parenthetical_list:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.vhdl"}},end:"(?<=\\))",patterns:[{begin:"(?=['\"a-zA-Z0-9])",end:"(;|\\)|,)",endCaptures:{0:{name:"punctuation.vhdl"}},name:"source.vhdl",patterns:[{include:"#comments"},{include:"#parenthetical_pair"},{include:"#cleanup"}]},{match:"\\)",name:"invalid.illegal.unexpected.parenthesis.vhdl"},{include:"#cleanup"}]}]},parenthetical_pair:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"punctuation.vhdl"}},end:"\\)",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_pair"},{include:"#cleanup"}]}]},port_list_pattern:{patterns:[{begin:"\\b(?i:port)\\b",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:"(?<=\\))\\s*;",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},procedure_definition_pattern:{patterns:[{begin:'(?x)\n\n^\\s*\n\n\n((?i:procedure))\\s+\n\n(\n\n([a-zA-Z][a-zA-Z\\d_]*)\n\n|("\\S+")\n\n|(.+?)\n)\n\n\n(?=\\s*(\\(|(?i:is)))\n',beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.procedure.begin.vhdl"},4:{name:"entity.name.function.procedure.begin.vhdl"},5:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\n^\\s*\n\n\n((?i:end))\n\n\n(\\s+((?i:procedure)))?\n\n\n(\\s+((\\3|\\4)|(.+?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.function.procedure.end.vhdl"},7:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#control_patterns"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},procedure_prototype_pattern:{patterns:[{begin:"(?x)\n\\b((?i:procedure))\\s+\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n(?=\\s*(\\(|;))\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.function.procedure.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"}},end:";",endCaptures:{0:{name:"punctual.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},process_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n\n(\n\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n)?\n\n\n(\n(?:postponed\\s+)?\n(?i:process\\b)\n)\n",beginCaptures:{2:{name:"entity.name.section.process.begin.vhdl"},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:"(?x)\n\n((?i:end))\n\n\n(\\s+(\n(?:postponed\\s+)?\n(?i:process)\n))\n\n\n(\\s+((\\2)|(.+?)))?\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},6:{name:"entity.name.section.process.end.vhdl"},7:{name:"invalid.illegal.invalid.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},protected_body_pattern:{patterns:[{begin:"(?x)\n\\b((?i:type))\\s+\n\n\n(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\\b((?i:is\\s+protected\\s+body))\\s+\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.section.protected_body.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:"(?x)\n\\b((?i:end\\s+protected\\s+body))\n\n\n(\\s+((\\3)|(.+?)))?\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"entity.name.section.protected_body.end.vhdl"},5:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},protected_pattern:{patterns:[{begin:"(?x)\n\\b((?i:type))\\s+\n\n\n(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\\b((?i:is\\s+protected))\\s+\n\n\n(?!(?i:body))\n",beginCaptures:{1:{name:"keyword.language.vhdls"},3:{name:"entity.name.section.protected.begin.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:"(?x)\n\\b((?i:end\\s+protected))\n\n\n(\\s+((\\3)|(.+?)))?\n\n\n(?!(?i:body))\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},4:{name:"entity.name.section.protected.end.vhdl"},5:{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#function_prototype_pattern"},{include:"#procedure_prototype_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#component_pattern"},{include:"#cleanup"}]}]},punctuation:{patterns:[{match:"(\\.|,|:|;|\\(|\\))",name:"punctuation.vhdl"}]},record_pattern:{patterns:[{begin:"\\b(?i:record)\\b",beginCaptures:{0:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end))\n\n\n\\s+((?i:record))\n\n\n(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},2:{name:"keyword.language.vhdl"},5:{name:"entity.name.type.record.vhdl"},6:{name:"invalid.illegal.invalid.identifier.vhdl"}},patterns:[{include:"#cleanup"}]},{include:"#cleanup"}]},strings:{patterns:[{match:"'.'",name:"string.quoted.single.vhdl"},{begin:'"',end:'"',name:"string.quoted.double.vhdl",patterns:[{match:"\\\\.",name:"constant.character.escape.vhdl"}]},{begin:"\\\\",end:"\\\\",name:"string.other.backslash.vhdl"}]},subtype_pattern:{patterns:[{begin:"(?x)\n\n\\b((?i:subtype))\\s+\n\n\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+\n\n\n((?i:is))\\b\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.subtype.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},5:{name:"keyword.language.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#cleanup"}]}]},support_constants:{patterns:[{match:"\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\b",name:"support.constant.ieee.math_real.vhdl"},{match:"\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\b",name:"support.constant.ieee.math_complex.vhdl"},{match:"\\b(?i:true|false)\\b",name:"support.constant.std.standard.vhdl"}]},support_functions:{patterns:[{match:"\\b(?i:finish|stop|resolution_limit)\\b",name:"support.function.std.env.vhdl"},{match:"\\b(?i:readline|read|writeline|write|endfile|endline)\\b",name:"support.function.std.textio.vhdl"},{match:"\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\b",name:"support.function.ieee.std_logic_1164.vhdl"},{match:"\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\b",name:"support.function.ieee.numeric_std.vhdl"},{match:"\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",name:"support.function.ieee.math_real.vhdl"},{match:"\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\b",name:"support.function.ieee.math_complex.vhdl"}]},support_types:{patterns:[{match:"\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\b",name:"support.type.std.standard.vhdl"},{match:"\\b(?i:line|text|side|width|input|output)\\b",name:"support.type.std.textio.vhdl"},{match:"\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\b",name:"support.type.ieee.std_logic_1164.vhdl"},{match:"\\b(?i:signed|unsigned)\\b",name:"support.type.ieee.numeric_std.vhdl"},{match:"\\b(?i:complex|complex_polar)\\b",name:"support.type.ieee.math_complex.vhdl"}]},syntax_highlighting:{patterns:[{include:"#keywords"},{include:"#punctuation"},{include:"#support_constants"},{include:"#support_types"},{include:"#support_functions"}]},type_pattern:{patterns:[{begin:"(?x)\n\n\\b((?i:type))\\s+\n\n\n(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n(\n\n(?=\\s*;)\n\n\n|(\\s+((?i:is)))\n)\\b\n",beginCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"entity.name.type.type.vhdl"},4:{name:"invalid.illegal.invalid.identifier.vhdl"},7:{name:"keyword.language.vhdl"}},end:";",endCaptures:{0:{name:"punctuation.vhdl"}},patterns:[{include:"#record_pattern"},{include:"#cleanup"}]}]},while_pattern:{patterns:[{begin:"(?x)\n\n^\\s*\n(\n\n([a-zA-Z][a-zA-Z0-9_]*)\n\n\n\\s*(:)\\s*\n)?\n\n\n\\b((?i:while))\\b\n",beginCaptures:{2:{name:""},3:{name:"punctuation.vhdl"},4:{name:"keyword.language.vhdl"}},end:"(?x)\n\n\\b((?i:end))\\s+\n(\n\n((?i:loop))\n\n\n|(\\S+)\n)\\b\n\n\n(\\s+((\\2)|(.+?)))?\n\n\n(?=\\s*;)\n",endCaptures:{1:{name:"keyword.language.vhdl"},3:{name:"keyword.language.vhdl"},4:{name:"invalid.illegal.loop.keyword.required.vhdl"},7:{name:"entity.name.tag.while.loop.vhdl"},8:{name:"invalid.illegal.mismatched.identifier"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]}},l="source.vhdl",d={displayName:n,fileTypes:e,name:t,patterns:a,repository:i,scopeName:l};export{d as default,n as displayName,e as fileTypes,t as name,a as patterns,i as repository,l as scopeName}; diff --git a/lib/dist/grammar/viml.mjs b/lib/dist/grammar/viml.mjs new file mode 100644 index 0000000..1ab1422 --- /dev/null +++ b/lib/dist/grammar/viml.mjs @@ -0,0 +1 @@ +var e="Vim Script",n="viml",t=[{include:"#comment"},{include:"#constant"},{include:"#entity"},{include:"#keyword"},{include:"#punctuation"},{include:"#storage"},{include:"#strings"},{include:"#support"},{include:"#variable"},{include:"#syntax"},{include:"#commands"},{include:"#option"},{include:"#map"}],o={commands:{patterns:[{match:"\\bcom(\\s|\\!)",name:"storage.other.command.viml"},{match:"\\bau(\\s|\\!)",name:"storage.other.command.viml"},{match:"-bang",name:"storage.other.command.bang.viml"},{match:"-nargs=[*+0-9]+",name:"storage.other.command.args.viml"},{match:"-complete=\\S+",name:"storage.other.command.completion.viml"},{begin:"(aug(roup)?)",end:"(augroup\\sEND|$)",name:"support.function.augroup.viml"}]},comment:{patterns:[{begin:'((\\s+)?""")',end:'^(?!")',name:"comment.block.documentation.viml"},{match:'^"\\svim:.*',name:"comment.block.modeline.viml"},{begin:'(\\s+"\\s+)(?!")',end:"$",name:"comment.line.viml",patterns:[{match:"\\{\\{\\{\\d?$",name:"comment.line.foldmarker.viml"},{match:"\\}\\}\\}\\d?",name:"comment.line.foldmarker.viml"}]},{begin:'^(\\s+)?"',end:"$",name:"comment.line.viml",patterns:[{match:"\\{\\{\\{\\d?$",name:"comment.line.foldmarker.viml"},{match:"\\}\\}\\}\\d?",name:"comment.line.foldmarker.viml"}]}]},constant:{patterns:[{match:"\\b(true|false)\\b",name:"constant.language.boolean.viml"},{match:"\\b([0-9]+)\\b",name:"constant.numeric.viml"}]},entity:{patterns:[{match:"(([absg]\\:)?[a-zA-Z0-9_#.]{2,})\\b(?=\\()",name:"entity.name.function.viml"}]},keyword:{patterns:[{match:"\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\b",name:"keyword.control.viml"},{match:"\\b(end|endif|endfor|endwhile)\\s|$",name:"keyword.control.viml"},{match:"\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\b",name:"keyword.control.viml"},{match:"\\b(fun|func|function|endfunction|endfunc)\\b",name:"keyword.function.viml"},{match:"\\b(normal|silent)\\b",name:"keyword.other.viml"},{include:"#operators"}]},map:{patterns:[{begin:"(\\<)",beginCaptures:{1:{name:"punctuation.definition.map.viml"}},end:"(\\>|\\s)",endCaptures:{1:{name:"punctuation.definition.map.viml"}},patterns:[{match:"(?<=:\\s)(.+)",name:"constant.character.map.rhs.viml"},{match:"(?i:(bang|buffer|expr|nop|plug|sid|silent))",name:"constant.character.map.special.viml"},{match:"(?i:([adcms]-\\w))",name:"constant.character.map.key.viml"},{match:"(?i:(F[0-9]+))",name:"constant.character.map.key.fn.viml"},{match:"(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))",name:"constant.character.map.viml"}]},{match:"(\\b([cinostvx]?(nore)?map)\\b)",name:"storage.type.map.viml"}]},operators:{patterns:[{match:"([#+?!=~\\\\])",name:"keyword.operator.viml"},{match:" ([:\\-.]|[&|]{2})( |$)",name:"keyword.operator.viml"},{match:"([.]{3})",name:"keyword.operator.viml"},{match:"( [<>] )",name:"keyword.operator.viml"},{match:"(>=)",name:"keyword.operator.viml"}]},option:{patterns:[{match:"&?\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\b",name:"support.type.option.viml"},{match:"&?\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\b",name:"support.type.option.viml"},{match:"&?\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\b",name:"support.type.option.shortname.viml"},{match:"\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\b",name:"support.type.option.off.viml"}]},punctuation:{patterns:[{match:"([()])",name:"punctuation.parens.viml"},{match:"([,])",name:"punctuation.comma.viml"}]},storage:{patterns:[{match:"\\b(call|let|unlet)\\b",name:"storage.viml"},{match:"\\b(abort|autocmd)\\b",name:"storage.viml"},{match:"\\b(set(l|local)?)\\b",name:"storage.viml"},{match:"\\b(com(mand)?)\\b",name:"storage.viml"},{match:"\\b(color(scheme)?)\\b",name:"storage.viml"},{match:"\\b(Plug|Plugin)\\b",name:"storage.plugin.viml"}]},strings:{patterns:[{begin:'"',end:'("|$)',name:"string.quoted.double.viml",patterns:[]},{begin:"'",end:"('|$)",name:"string.quoted.single.viml",patterns:[]},{match:"/(\\\\\\\\|\\\\/|[^\\n/])*/",name:"string.regexp.viml"}]},support:{patterns:[{match:"(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\()",name:"support.function.viml"},{match:"\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\b",name:"support.function.viml"},{match:"(v\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))",name:"support.type.builtin.vim-variable.viml"},{match:"(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))",name:"support.type.builtin.viml"},{match:"(&(shell(cmdflag|redir)?))",name:"support.type.builtin.viml"},{match:"\\<args\\>",name:"support.variable.args.viml"},{match:"\\b(None|ErrorMsg|WarningMsg)\\b",name:"support.type.syntax.viml"},{match:"\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\b",name:"support.type.event.viml"},{match:"\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\b",name:"support.type.syntax-group.viml"}]},syntax:{patterns:[{match:"syn(tax)? case (ignore|match)",name:"keyword.control.syntax.viml"},{match:"syn(tax)? (clear|enable|include|off|on|manual|sync)",name:"keyword.control.syntax.viml"},{match:"\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\b",name:"keyword.other.syntax.viml"},{match:"\\b(add|containedin|contains|matchgroup|nextgroup)\\=",name:"keyword.other.syntax.viml"},{captures:{1:{name:"keyword.other.syntax-range.viml"},3:{name:"string.regexp.viml"}},match:"((start|skip|end)\\=)(\\+\\S+\\+\\s)?"},{captures:{0:{name:"support.type.syntax.viml"},1:{name:"storage.syntax.viml"},3:{name:"variable.other.syntax-scope.viml"},4:{name:"storage.modifier.syntax.viml"}},match:"(syn|syntax)\\s+(cluster|keyword|match|region)(\\s+\\w+\\s+)(contained)?",patterns:[]},{captures:{1:{name:"storage.highlight.viml"},2:{name:"storage.modifier.syntax.viml"},3:{name:"support.function.highlight.viml"},4:{name:"variable.other.viml"},5:{name:"variable.other.viml"}},match:"(hi|highlight)(?:\\s+)(def|default)(?:\\s+)(link)(?:\\s+)(\\w+)(?:\\s+)(\\w+)",patterns:[]}]},variable:{patterns:[{match:"https?://\\S+",name:"variable.other.link.viml"},{match:"(?<=\\()([a-zA-Z]+)(?=\\))",name:"variable.parameter.viml"},{match:"\\b([absgl]:[a-zA-Z0-9_.#]+)\\b(?!\\()",name:"variable.other.viml"}]}},i="source.viml",a={displayName:e,name:n,patterns:t,repository:o,scopeName:i};export{a as default,e as displayName,n as name,t as patterns,o as repository,i as scopeName}; diff --git a/lib/dist/grammar/vue-html.mjs b/lib/dist/grammar/vue-html.mjs new file mode 100644 index 0000000..a6d4d43 --- /dev/null +++ b/lib/dist/grammar/vue-html.mjs @@ -0,0 +1 @@ +var t="Vue HTML",e=[],n="vue-html",i=[{include:"source.vue#vue-interpolations"},{begin:"(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"support.class.component.html"}},end:"(>)(<)(/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"},2:{name:"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"support.class.component.html"},5:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.html"}},end:"(>)(<)(/)(\\2)(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"},2:{name:"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},3:{name:"punctuation.definition.tag.begin.html"},4:{name:"entity.name.tag.html"},5:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{1:{name:"punctuation.definition.tag.html"},2:{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"}]},{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.html"}},end:"--\x3e",name:"comment.block.html"},{begin:"<!",captures:{0:{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(?i:DOCTYPE)",captures:{1:{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:'"[^">]*"',name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{begin:"(</?)([A-Z][a-zA-Z0-9:-]*\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"support.class.component.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-z][a-zA-Z0-9:-]*\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:body|head|html)\\b)",captures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.structure.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)(?!-)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?!-)\\b)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.inline.any.html"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9:-]+)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html"},2:{name:"entity.name.tag.other.html"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"}],a={entities:{patterns:[{captures:{1:{name:"punctuation.definition.entity.html"},3:{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},"string-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},"string-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},"tag-generic-attribute":{match:"(?<=[^=])\\b([a-zA-Z0-9:\\-_]+)",name:"entity.other.attribute-name.html"},"tag-id-attribute":{begin:"\\b(id)\\b\\s*(=)",captures:{1:{name:"entity.other.attribute-name.id.html"},2:{name:"punctuation.separator.key-value.html"}},end:"(?!\\G)(?<='|\"|[^\\s<>/])",name:"meta.attribute-with-value.id.html",patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},{captures:{0:{name:"meta.toc-list.id.html"}},match:"(?<==)(?:[^\\s<>/'\"]|/(?!>))+",name:"string.unquoted.html"}]},"tag-stuff":{patterns:[{include:"#vue-directives"},{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"},{include:"#unquoted-attribute"}]},"unquoted-attribute":{match:"(?<==)(?:[^\\s<>/'\"]|/(?!>))+",name:"string.unquoted.html"},"vue-directives":{begin:"(?:\\b(v-)|(:|@|#))([a-zA-Z0-9\\-_]+)(?:\\:([a-zA-Z\\-_]+))?(?:\\.([a-zA-Z\\-_]+))*\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html"},2:{name:"punctuation.separator.key-value.html"},3:{name:"entity.other.attribute-name.html"},4:{name:"entity.other.attribute-name.html"},5:{name:"entity.other.attribute-name.html"},6:{name:"punctuation.separator.key-value.html"}},end:"(?<='|\")|(?=[\\s<>`])",name:"meta.directive.vue",patterns:[{begin:"`",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"source.directive.vue",patterns:[{include:"source.js#expression"}]},{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"source.directive.vue",patterns:[{include:"source.js#expression"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.html"}},name:"source.directive.vue",patterns:[{include:"source.js#expression"}]}]}},m="text.html.vue-html",u={displayName:t,fileTypes:e,name:n,patterns:i,repository:a,scopeName:m};export{u as default,t as displayName,e as fileTypes,n as name,i as patterns,a as repository,m as scopeName}; diff --git a/lib/dist/grammar/vue.mjs b/lib/dist/grammar/vue.mjs new file mode 100644 index 0000000..c015681 --- /dev/null +++ b/lib/dist/grammar/vue.mjs @@ -0,0 +1 @@ +var e="Vue",t="vue",n=[{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"}]}]}],a={"html-stuff":{patterns:[{include:"#template-tag"},{include:"text.html.derivative"},{include:"text.html.basic"}]},"self-closing-tag":{begin:"(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"self-closing-tag",patterns:[{include:"#tag-stuff"}]},"tag-stuff":{begin:"\\G",end:"(?=/>)|(>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.tag-stuff",patterns:[{include:"#vue-directives"},{include:"text.html.basic#attribute"}]},"template-tag":{patterns:[{include:"#template-tag-1"},{include:"#template-tag-2"}]},"template-tag-1":{begin:"(<)(template)\\b(>)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"},3:{name:"punctuation.definition.tag.end.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#html-stuff"}]}]},"template-tag-2":{begin:"(<)(template)\\b",beginCaptures:{1:{name:"punctuation.definition.tag.begin.html.vue"},2:{name:"entity.name.tag.$2.html.vue"}},end:"(/?>)",endCaptures:{1:{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{2:{name:"punctuation.definition.tag.begin.html.vue"},3:{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#tag-stuff"},{include:"#html-stuff"}]}]},"vue-directives":{patterns:[{include:"#vue-directives-control"},{include:"#vue-directives-style-attr"},{include:"#vue-directives-original"},{include:"#vue-directives-generic-attr"}]},"vue-directives-control":{begin:"(v-for)|(v-if|v-else-if|v-else)",captures:{1:{name:"keyword.control.loop.vue"},2:{name:"keyword.control.conditional.vue"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.directive.control.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-expression":{patterns:[{begin:"(=)\\s*('|\"|`)",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"},2:{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},patterns:[{begin:"(?<=('|\"|`))",end:"(?=\\1)",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts#expression"}]}]},{begin:"(=)\\s*(?=[^'\"`])",beginCaptures:{1:{name:"punctuation.separator.key-value.html.vue"}},end:"(?=(\\s|>|\\/>))",patterns:[{begin:"(?=[^'\"`])",end:"(?=(\\s|>|\\/>))",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts#expression"}]}]}]},"vue-directives-generic-attr":{begin:"\\b(generic)\\s*(=)",captures:{1:{name:"entity.other.attribute-name.html.vue"},2:{name:"punctuation.separator.key-value.html.vue"}},end:"(?<='|\")",name:"meta.attribute.generic.vue",patterns:[{begin:"('|\")",beginCaptures:{1:{name:"punctuation.definition.string.begin.html.vue"}},comment:"https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.html.vue"}},name:"meta.type.parameters.vue",patterns:[{include:"source.ts#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"storage.modifier.ts"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{match:"(=)(?!>)",name:"keyword.operator.assignment.ts"}]}]},"vue-directives-original":{begin:"(?:(?:(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:"(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F])\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]\n|\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",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"}]}]}]}},i="source.vue",u={displayName:"Vue",name:"vue",patterns:n,repository:a,scopeName:i};export{u as default,e as displayName,t as name,n as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/vyper.mjs b/lib/dist/grammar/vyper.mjs new file mode 100644 index 0000000..4485143 --- /dev/null +++ b/lib/dist/grammar/vyper.mjs @@ -0,0 +1 @@ +var e="Vyper",n="vyper",t=[{include:"#statement"},{include:"#expression"},{include:"#reserved-names-vyper"}],a={"annotated-parameter":{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (:)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.annotation.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{match:"=(?!=)",name:"keyword.operator.assignment.python"}]},"assignment-operator":{match:"(?x)\n<<= | >>= | //= | \\*\\*=\n| \\+= | -= | /= | @=\n| \\*= | %= | ~= | \\^= | &= | \\|=\n| =(?!=)\n",name:"keyword.operator.assignment.python"},backticks:{begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",name:"invalid.deprecated.backtick.python",patterns:[{include:"#expression"}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-exceptions":{match:"(?x) (?<!\\.) \\b(\n(\nArithmetic | Assertion | Attribute | Buffer | BlockingIO\n| BrokenPipe | ChildProcess\n| (Connection (Aborted | Refused | Reset)?)\n| EOF | Environment | FileExists | FileNotFound\n| FloatingPoint | IO | Import | Indentation | Index | Interrupted\n| IsADirectory | NotADirectory | Permission | ProcessLookup\n| Timeout\n| Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n| Reference | Runtime | Recursion | Syntax | System\n| Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n| Value | Windows | ZeroDivision | ModuleNotFound\n) Error\n|\n((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n| Unicode | Bytes | Resource\n)? Warning\n|\nSystemExit | Stop(Async)?Iteration\n| KeyboardInterrupt\n| GeneratorExit | (Base)?Exception\n)\\b\n",name:"support.type.exception.python"},"builtin-functions":{patterns:[{match:"(?x)\n(?<!\\.) \\b(\n__import__ | abs | aiter | all | any | anext | ascii | bin\n| breakpoint | callable | chr | compile | copyright | credits\n| delattr | dir | divmod | enumerate | eval | exec | exit\n| filter | format | getattr | globals | hasattr | hash | help\n| hex | id | input | isinstance | issubclass | iter | len\n| license | locals | map | max | memoryview | min | next\n| oct | open | ord | pow | print | quit | range | reload | repr\n| reversed | round | setattr | sorted | sum | vars | zip\n)\\b\n",name:"support.function.builtin.python"},{match:"(?x)\n(?<!\\.) \\b(\nfile | reduce | intern | raw_input | unicode | cmp | basestring\n| execfile | long | xrange\n)\\b\n",name:"variable.legacy.builtin.python"},{match:"(?x)\n(?<!\\.) \\b(\nabi_encode | abi_decode | _abi_encode | _abi_decode | floor | ceil | convert | slice | len | concat | sha256 | method_id | keccak256 | ecrecover | ecadd | ecmul | extract32 | as_wei_value | raw_call | blockhash | blobhash | bitwise_and | bitwise_or | bitwise_xor | bitwise_not | uint256_addmod | uint256_mulmod | unsafe_add | unsafe_sub | unsafe_mul | unsafe_div | pow_mod256 | uint2str | isqrt | sqrt | shift | create_minimal_proxy_to | create_forwarder_to | create_copy_of | create_from_blueprint | min | max | empty | abs | min_value | max_value | epsilon)\\b\n",name:"support.function.builtin.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nsend | print | breakpoint | selfdestruct | raw_call | raw_log | raw_revert | create_minimal_proxy_to | create_forwarder_to | create_copy_of | create_from_blueprint)\\b\n",name:"support.function.builtin.lowlevel.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nstruct | enum | flag | event | interface | HashMap | DynArray | Bytes | String)\\b\n",name:"support.type.reference.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nnonreentrant | internal | view | pure | private | immutable | constant)\\b\n",name:"support.function.builtin.modifiers.safe.vyper"},{match:"(?x)\n(?<!\\.) \\b(\ndeploy | nonpayable | payable | external | modifying)\\b\n",name:"support.function.builtin.modifiers.unsafe.vyper"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-types":{patterns:[{match:"(?x)\n(?<!\\.) \\b(\nbool | bytearray | bytes | classmethod | complex | dict\n| float | frozenset | int | list | object | property\n| set | slice | staticmethod | str | tuple | type\n\n(?# Although 'super' is not a type, it's related to types,\nand is special enough to be highlighted differently from\nother built-ins)\n| super\n)\\b\n",name:"support.type.python"},{match:"(?x)\n(?<!\\.) \\b(\nuint248 | HashMap | bytes22 | int88 | bytes24 | bytes11 | int24 | bytes28 | bytes19 | uint136 | decimal | uint40 | uint168 | uint120 | int112 | bytes4 | uint192 | String | int104 | bytes29 | int120 | uint232 | bytes8 | bool | bytes14 | int56 | uint32 | int232 | uint48 | bytes17 | bytes12 | uint24 | int160 | int72 | int256 | uint56 | uint80 | uint104 | uint144 | uint200 | bytes20 | uint160 | bytes18 | bytes16 | uint8 | int40 | Bytes | uint72 | bytes2 | bytes23 | int48 | bytes6 | bytes13 | int192 | bytes15 | uint96 | address | uint64 | uint88 | bytes7 | int64 | bytes32 | bytes30 | int176 | int248 | uint128 | int8 | int136 | int216 | bytes31 | int144 | bytes1 | int168 | bytes5 | uint216 | int200 | bytes25 | uint112 | int128 | bytes10 | uint16 | DynArray | int16 | int32 | int208 | int184 | bytes9 | int224 | bytes3 | int80 | uint152 | bytes21 | int96 | uint256 | uint176 | uint240 | bytes27 | bytes26 | int240 | uint224 | uint184 | uint208 | int152)\\b\n",name:"support.type.basetype.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nmax_int128 | min_int128 | nonlocal | babbage | _default_ | ___init___ | await | indexed | ____init____ | true | constant | with | from | nonpayable | finally | enum | zero_wei | del | for | ____default____ | if | none | or | global | def | not | class | twei | struct | mwei | empty_bytes32 | nonreentrant | transient | false | assert | event | pass | finney | init | lovelace | min_decimal | shannon | public | external | internal | flagunreachable | _init_ | return | in | and | raise | try | gwei | break | zero_address | pwei | range | wei | while | ada | yield | as | immutable | continue | async | lambda | default | is | szabo | kwei | import | max_uint256 | elif | ___default___ | else | except | max_decimal | interface | payable | ether)\\b\n",name:"support.type.keywords.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nZERO_ADDRESS | EMPTY_BYTES32 | MAX_INT128 | MIN_INT128 | MAX_DECIMAL | MIN_DECIMAL | MIN_UINT256 | MAX_UINT256\n\n(?# Although 'super' is not a type, it's related to types,\nand is special enough to be highlighted differently from\nother built-ins)\n| super\n)\\b\n",name:"support.type.constant.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nimplements | uses | initializes | exports)\\b\n",name:"entity.other.inherited-class.modules.vyper"}]},"call-wrapper-inheritance":{begin:"(?x)\n\\b(?=\n([[:alpha:]_]\\w*) \\s* (\\()\n)\n",comment:"same as a function call, but in inheritance context",end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"class-declaration":{patterns:[{begin:"(?x)\n\\s*(class)\\s+\n(?=\n[[:alpha:]_]\\w* \\s* (:|\\()\n)\n",beginCaptures:{1:{name:"storage.type.class.python"}},end:"(:)",endCaptures:{1:{name:"punctuation.section.class.begin.python"}},name:"meta.class.python",patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-inheritance":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.inheritance.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.inheritance.end.python"}},name:"meta.class.inheritance.python",patterns:[{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.arguments.python"},{match:",",name:"punctuation.separator.inheritance.python"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{match:"\\bmetaclass\\b",name:"support.type.metaclass.python"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{captures:{1:{name:"entity.other.inherited-class.python variable.parameter.class.python"},2:{name:"keyword.operator.assignment.python"}},match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n"},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"entity.name.type.class.python"}]},codetags:{captures:{1:{name:"keyword.codetag.notation.python"}},match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)"},comments:{patterns:[{begin:"(?x)\n(?:\n\\# \\s* (type:)\n\\s*+ (?# we want `\\s*+` which is possessive quantifier since\nwe do not actually want to backtrack when matching\nwhitespace here)\n(?! $ | \\#)\n)\n",beginCaptures:{0:{name:"meta.typehint.comment.python"},1:{name:"comment.typehint.directive.notation.python"}},contentName:"meta.typehint.comment.python",end:"(?:$|(?=\\#))",name:"comment.line.number-sign.python",patterns:[{match:"(?x)\n\\G ignore\n(?= \\s* (?: $ | \\#))\n",name:"comment.typehint.ignore.notation.python"},{match:"(?x)\n(?<!\\.)\\b(\nbool | bytes | float | int | object | str\n| List | Dict | Iterable | Sequence | Set\n| FrozenSet | Callable | Union | Tuple\n| Any | None\n)\\b\n",name:"comment.typehint.type.notation.python"},{match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))",name:"comment.typehint.punctuation.notation.python"},{match:"([[:alpha:]_]\\w*)",name:"comment.typehint.variable.notation.python"}]},{include:"#comments-base"}]},"comments-base":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($)",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-double-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:'($|(?="""))',name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"comments-string-single-three":{begin:"(\\#)",beginCaptures:{1:{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",name:"comment.line.number-sign.python",patterns:[{include:"#codetags"}]},"curly-braces":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.dict.begin.python"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.dict.end.python"}},patterns:[{match:":",name:"punctuation.separator.dict.python"},{include:"#expression"}]},decorator:{begin:"(?x)\n^\\s*\n((@)) \\s* (?=[[:alpha:]_]\\w*)\n",beginCaptures:{1:{name:"entity.name.function.decorator.python"},2:{name:"punctuation.definition.decorator.python"}},end:"(?x)\n( \\) )\n\n(?: (.*?) (?=\\s*(?:\\#|$)) )\n| (?=\\n|\\#)\n",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"invalid.illegal.decorator.python"}},name:"meta.function.decorator.python",patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{captures:{2:{name:"punctuation.separator.period.python"}},match:"(?x)\n([[:alpha:]_]\\w*) | (\\.)\n",name:"entity.name.function.decorator.python"},{include:"#line-continuation"},{captures:{1:{name:"invalid.illegal.decorator.python"}},match:"(?x)\n\\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",name:"invalid.illegal.decorator.python"}]},docstring:{patterns:[{begin:"(\\'\\'\\'|\\\"\\\"\\\")",beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.multi.python",patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:"([rR])(\\'\\'\\'|\\\"\\\"\\\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"}},name:"string.quoted.docstring.raw.multi.python",patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{begin:"(\\'|\\\")",beginCaptures:{1:{name:"punctuation.definition.string.begin.python"}},end:"(\\1)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.single.python",patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{begin:"([rR])(\\'|\\\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.docstring.raw.single.python",patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{captures:{1:{name:"keyword.control.flow.python"}},match:"(?x)\n(?:\n(?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n)\n"},"docstring-statement":{begin:"^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:"((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",patterns:[{include:"#docstring"}]},"double-one-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="))|((?=(?<!\\\\)\\n))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:'(\\]|(?="""))',endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"double-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:'(\\)|(?="""))',endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},ellipsis:{match:"\\.\\.\\.",name:"constant.other.ellipsis.python"},"escape-sequence":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| [0-7]{1,3}\n| [\\\\\"'abfnrtv]\n)\n",name:"constant.character.escape.python"},"escape-sequence-unicode":{patterns:[{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n| N\\{[\\w\\s]+?\\}\n)\n",name:"constant.character.escape.python"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"},{include:"#special-variables-types"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fregexp-quantifier":{match:"(?x)\n\\{\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\\}\n",name:"keyword.operator.quantifier.regexp"},"fstring-fnorm-quoted-multi-line":{begin:"(\\b[fF])([bBuU])?('''|\"\"\")",beginCaptures:{1:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-fnorm-quoted-single-line":{begin:"(\\b[fF])([bBuU])?((['\"]))",beginCaptures:{1:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},2:{name:"invalid.illegal.prefix.python"},3:{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-braces":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},2:{name:"invalid.illegal.brace.python"},3:{name:"constant.character.format.placeholder.other.python"}},comment:"empty braces are illegal",match:"({)(\\s*?)(})"},{match:"({{|}})",name:"constant.character.escape.python"}]},"fstring-formatting-singe-brace":{match:"(}(?!}))",name:"invalid.illegal.brace.python"},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"fstring-illegal-single-brace":{begin:"(\\{)(?=[^\\n}]*$\\n?)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"it is illegal to have a multiline brace inside a single-line string",end:"(\\})|(?=\\n)",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-multi-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:"(?x)\n(\\})\n",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-multi-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|'''|\"\"\")\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.multi.python"},"fstring-normf-quoted-multi-line":{begin:"(\\b[bBuU])([fF])('''|\"\"\")",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-single-line":{begin:"(\\b[bBuU])([fF])((['\"]))",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-raw-multi-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|'''|\"\"\")\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.raw.multi.python"},"fstring-raw-quoted-multi-line":{begin:"(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")",beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-raw-quoted-single-line":{begin:"(\\b(?:[rR][fF]|[fF][rR]))((['\"]))",beginCaptures:{1:{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},2:{name:"invalid.illegal.newline.python"}},name:"meta.fstring.python",patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-raw-single-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.raw.single.python"},"fstring-single-brace":{begin:"(\\{)",beginCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},comment:"value interpolation using { ... }",end:"(?x)\n(\\})|(?=\\n)\n",endCaptures:{1:{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-single-core":{match:"(?x)\n(.+?)\n(\n(?# .* and .*? in multi-line match need special handling of\nnewlines otherwise SublimeText and Atom will match slightly\ndifferently.\n\nThe guard for newlines has to be separate from the\nlookahead because of special $ matching rule.)\n($\\n?)\n|\n(?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n)\n(?# due to how multiline regexps are matched we need a special case\nfor matching a newline character)\n| \\n\n",name:"string.interpolated.python string.quoted.single.python"},"fstring-terminator-multi":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:"(?x)\n( (?: =?) (?: ![rsa])? )\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n"},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})",patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"fstring-terminator-single":{patterns:[{match:"(=(![rsa])?)(?=})",name:"storage.type.format.python"},{match:"(=?![rsa])(?=})",name:"storage.type.format.python"},{captures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},match:"(?x)\n( (?: =?) (?: ![rsa])? )\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n"},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",beginCaptures:{1:{name:"storage.type.format.python"},2:{name:"storage.type.format.python"}},end:"(?=})|(?=\\n)",patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{match:"([bcdeEfFgGnosxX%])(?=})",name:"storage.type.format.python"},{match:"(\\.\\d+)",name:"storage.type.format.python"},{match:"(,)",name:"storage.type.format.python"},{match:"(\\d+)",name:"storage.type.format.python"},{match:"(\\#)",name:"storage.type.format.python"},{match:"([-+ ])",name:"storage.type.format.python"},{match:"([<>=^])",name:"storage.type.format.python"},{match:"(\\w)",name:"storage.type.format.python"}]},"function-arguments":{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",end:"(?=\\))(?!\\)\\s*\\()",patterns:[{match:"(,)",name:"punctuation.separator.arguments.python"},{captures:{1:{name:"keyword.operator.unpacking.arguments.python"}},match:"(?x)\n(?:(?<=[,(])|^) \\s* (\\*{1,2})\n"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function-call.python"},2:{name:"keyword.operator.assignment.python"}},match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)"},{match:"=(?!=)",name:"keyword.operator.assignment.python"},{include:"#expression"},{captures:{1:{name:"punctuation.definition.arguments.end.python"},2:{name:"punctuation.definition.arguments.begin.python"}},match:"\\s*(\\))\\s*(\\()"}]},"function-call":{begin:"(?x)\n\\b(?=\n([[:alpha:]_]\\w*) \\s* (\\()\n)\n",comment:'Regular function call of the type "name(args)"',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.function-call.python",patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-declaration":{begin:"(?x)\n\\s*\n(?:\\b(async) \\s+)? \\b(def)\\s+\n(?=\n[[:alpha:]_][[:word:]]* \\s* \\(\n)\n",beginCaptures:{1:{name:"storage.type.function.async.python"},2:{name:"storage.type.function.python"}},end:"(:|(?=[#'\"\\n]))",endCaptures:{1:{name:"punctuation.section.function.begin.python"}},name:"meta.function.python",patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{match:"(?x)\n\\b (__default__) \\b\n",name:"entity.name.function.fallback.vyper"},{match:"(?x)\n\\b (__init__) \\b\n",name:"entity.name.function.constructor.vyper"},{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"entity.name.function.python"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.function-call.generic.python"}]},generator:{begin:"\\bfor\\b",beginCaptures:{0:{name:"keyword.control.flow.python"}},comment:'Match "for ... in" construct used in generators and for loops to\ncorrectly identify the "in" as a control flow keyword.\n',end:"\\bin\\b",endCaptures:{0:{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"illegal-anno":{match:"->",name:"invalid.illegal.annotation.python"},"illegal-names":{captures:{1:{name:"keyword.control.flow.python"},2:{name:"keyword.control.import.python"}},match:"(?x)\n\\b(?:\n(\nand | assert | async | await | break | class | continue | def\n| del | elif | else | except | finally | for | from | global\n| if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n| nonlocal | not | or | pass | raise | return | try | while | with\n| yield\n) | (\nas | import\n)\n)\\b\n"},"illegal-object-name":{comment:'It\'s illegal to name class or function "True"',match:"\\b(True|False|None)\\b",name:"keyword.illegal.name.python"},"illegal-operator":{patterns:[{match:"&&|\\|\\||--|\\+\\+",name:"invalid.illegal.operator.python"},{match:"[?$]",name:"invalid.illegal.operator.python"},{comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b",name:"invalid.illegal.operator.python"}]},import:{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$|(?=import)",patterns:[{match:"\\.+",name:"punctuation.separator.period.python"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",beginCaptures:{1:{name:"keyword.control.import.python"}},end:"$",patterns:[{match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{include:"#expression"}]}]},impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},"inheritance-identifier":{captures:{1:{name:"entity.other.inherited-class.python"}},match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n"},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"item-access":{patterns:[{begin:"(?x)\n\\b(?=\n[[:alpha:]_]\\w* \\s* \\[\n)\n",end:"(\\])",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},name:"meta.item-access.python",patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-index":{begin:"(\\[)",beginCaptures:{1:{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",end:"(?=\\])",patterns:[{match:":",name:"punctuation.separator.slice.python"},{include:"#expression"}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.indexed-name.python"},{include:"#special-variables-types"}]},lambda:{patterns:[{captures:{1:{name:"keyword.control.flow.python"}},match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))"},{captures:{1:{name:"storage.type.function.lambda.python"}},match:"\\b(lambda)\\s*?(?=[,\\n]|$)"},{begin:"(?x)\n\\b (lambda) \\b\n",beginCaptures:{1:{name:"storage.type.function.lambda.python"}},contentName:"meta.function.lambda.parameters.python",end:"(:)|(\\n)",endCaptures:{1:{name:"punctuation.section.function.lambda.begin.python"}},name:"meta.lambda-function.python",patterns:[{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))"},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{match:"\\blambda(?=\\s*[,)])",name:"storage.type.function.lambda.python"},"lambda-nested-incomplete":{match:"\\blambda(?=\\s*[:,)])",name:"storage.type.function.lambda.python"},"lambda-parameter-with-default":{begin:"(?x)\n\\b\n([[:alpha:]_]\\w*) \\s* (=)\n",beginCaptures:{1:{name:"variable.parameter.function.language.python"},2:{name:"keyword.operator.python"}},end:"(,)|(?=:|$)",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{captures:{1:{name:"punctuation.separator.continuation.line.python"},2:{name:"invalid.illegal.line.continuation.python"}},match:"(\\\\)\\s*(\\S.*$\\n?)"},{begin:"(\\\\)\\s*$\\n?",beginCaptures:{1:{name:"punctuation.separator.continuation.line.python"}},end:"(?x)\n(?=^\\s*$)\n|\n(?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n|\n(\\G $) (?# '\\G' is necessary for ST)\n)\n",patterns:[{include:"#regexp"},{include:"#string"}]}]},list:{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.list.begin.python"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},literal:{patterns:[{match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b",name:"constant.language.python"},{include:"#number"}]},"loose-default":{begin:"(=)",beginCaptures:{1:{name:"keyword.operator.python"}},end:"(,)|(?=\\))",endCaptures:{1:{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"magic-function-names":{captures:{1:{name:"support.function.magic.python"}},comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:"(?x)\n\\b(\n__(?:\nabs | add | aenter | aexit | aiter | and | anext\n| await | bool | call | ceil | class_getitem\n| cmp | coerce | complex | contains | copy\n| deepcopy | del | delattr | delete | delitem\n| delslice | dir | div | divmod | enter | eq\n| exit | float | floor | floordiv | format | ge\n| get | getattr | getattribute | getinitargs\n| getitem | getnewargs | getslice | getstate | gt\n| hash | hex | iadd | iand | idiv | ifloordiv |\n| ilshift | imod | imul | index | init\n| instancecheck | int | invert | ior | ipow\n| irshift | isub | iter | itruediv | ixor | le\n| len | long | lshift | lt | missing | mod | mul\n| ne | neg | new | next | nonzero | oct | or | pos\n| pow | radd | rand | rdiv | rdivmod | reduce\n| reduce_ex | repr | reversed | rfloordiv |\n| rlshift | rmod | rmul | ror | round | rpow\n| rrshift | rshift | rsub | rtruediv | rxor | set\n| setattr | setitem | set_name | setslice\n| setstate | sizeof | str | sub | subclasscheck\n| truediv | trunc | unicode | xor | matmul\n| rmatmul | imatmul | init_subclass | set_name\n| fspath | bytes | prepare | length_hint\n)__\n)\\b\n"},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"magic-variable-names":{captures:{1:{name:"support.variable.magic.python"}},comment:"magic variables which a class/module may have.",match:"(?x)\n\\b(\n__(?:\nall | annotations | bases | builtins | class\n| closure | code | debug | defaults | dict | doc | file | func\n| globals | kwdefaults | match_args | members | metaclass | methods\n| module | mro | mro_entries | name | qualname | post_init | self\n| signature | slots | subclasses | version | weakref | wrapped\n| classcell | spec | path | package | future | traceback\n)__\n)\\b\n"},"member-access":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?x)\n\n\n(?<=\\S)(?=\\W) |\n\n\n(^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n$\n",name:"meta.member.access.python",patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",match:"(?x)\n\\b ([[:alpha:]_]\\w*) \\b\n",name:"meta.attribute.python"},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"},{include:"#special-variables-types"}]},"member-access-class":{begin:"(\\.)\\s*(?!\\.)",beginCaptures:{1:{name:"punctuation.separator.period.python"}},end:"(?<=\\S)(?=\\W)|$",name:"meta.member.access.python",patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{match:"\\b[0-9]+\\w+",name:"invalid.illegal.name.python"}]},"number-bin":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[bB]) (_?[01])+\n\\b\n",name:"constant.numeric.bin.python"},"number-dec":{captures:{1:{name:"storage.type.imaginary.number.python"},2:{name:"invalid.illegal.dec.python"}},match:"(?x)\n(?<![\\w\\.])(?:\n[1-9](?: _?[0-9] )*\n|\n0+\n|\n[0-9](?: _?[0-9] )* ([jJ])\n|\n0 ([0-9]+)(?![eE\\.])\n)\\b\n",name:"constant.numeric.dec.python"},"number-float":{captures:{1:{name:"storage.type.imaginary.number.python"}},match:"(?x)\n(?<! \\w)(?:\n(?:\n\\.[0-9](?: _?[0-9] )*\n|\n[0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n|\n[0-9](?: _?[0-9] )* \\.\n) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n|\n[0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n)([jJ])?\\b\n",name:"constant.numeric.float.python"},"number-hex":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[xX]) (_?[0-9a-fA-F])+\n\\b\n",name:"constant.numeric.hex.python"},"number-long":{captures:{2:{name:"storage.type.number.python"}},comment:"this is to support python2 syntax for long ints",match:"(?x)\n(?<![\\w\\.])\n([1-9][0-9]* | 0) ([lL])\n\\b\n",name:"constant.numeric.bin.python"},"number-oct":{captures:{1:{name:"storage.type.number.python"}},match:"(?x)\n(?<![\\w\\.])\n(0[oO]) (_?[0-7])+\n\\b\n",name:"constant.numeric.oct.python"},"odd-function-call":{begin:"(?x)\n(?<= \\] | \\) ) \\s*\n(?=\\()\n",comment:'A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. "arr[idx](args)"\n',end:"(\\))",endCaptures:{1:{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},operator:{captures:{1:{name:"keyword.operator.logical.python"},2:{name:"keyword.control.flow.python"},3:{name:"keyword.operator.bitwise.python"},4:{name:"keyword.operator.arithmetic.python"},5:{name:"keyword.operator.comparison.python"},6:{name:"keyword.operator.assignment.python"}},match:"(?x)\n\\b(?<!\\.)\n(?:\n(and | or | not | in | is) (?# 1)\n|\n(for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n)\n(?!\\s*:)\\b\n\n| (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n| (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n| (!= | == | >= | <= | < | >) (?# 5)\n\n| (:=) (?# 6)\n"},"parameter-special":{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"variable.parameter.function.language.special.self.python"},3:{name:"variable.parameter.function.language.special.cls.python"},4:{name:"punctuation.separator.parameters.python"}},match:"(?x)\n\\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n"},parameters:{begin:"(\\()",beginCaptures:{1:{name:"punctuation.definition.parameters.begin.python"}},end:"(\\))",endCaptures:{1:{name:"punctuation.definition.parameters.end.python"}},name:"meta.function.parameters.python",patterns:[{match:"/",name:"keyword.operator.positional.parameter.python"},{match:"(\\*\\*|\\*)",name:"keyword.operator.unpacking.parameter.python"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{captures:{1:{name:"variable.parameter.function.language.python"},2:{name:"punctuation.separator.parameters.python"}},match:"(?x)\n([[:alpha:]_]\\w*)\n\\s* (?: (,) | (?=[)#\\n=]))\n"},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},punctuation:{patterns:[{match:":",name:"punctuation.separator.colon.python"},{match:",",name:"punctuation.separator.element.python"}]},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},"regexp-backreference":{captures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},2:{name:"entity.name.tag.named.backreference.regexp"},3:{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}},match:"(?x)\n(\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",name:"meta.backreference.named.regexp"},"regexp-backreference-number":{captures:{1:{name:"entity.name.tag.backreference.regexp"}},match:"(\\\\[1-9]\\d?)",name:"meta.backreference.regexp"},"regexp-base-common":{patterns:[{match:"\\.",name:"support.other.match.any.regexp"},{match:"\\^",name:"support.other.match.begin.regexp"},{match:"\\$",name:"support.other.match.end.regexp"},{match:"[+*?]\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.disjunction.regexp"},{include:"#regexp-escape-sequence"}]},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"regexp-charecter-set-escapes":{patterns:[{match:"\\\\[abfnrtv\\\\]",name:"constant.character.escape.regexp"},{include:"#regexp-escape-special"},{match:"\\\\([0-7]{1,3})",name:"constant.character.escape.regexp"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},"regexp-double-one-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(")|(?<!\\\\)(\\n)',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{begin:'\\b(([uU]r)|([bB]r)|(r[bB]?))(""")',beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:'(""")',endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#double-three-regexp-expression"}]},"regexp-escape-catchall":{match:"\\\\(.|\\n)",name:"constant.character.escape.regexp"},"regexp-escape-character":{match:"(?x)\n\\\\ (\nx[0-9A-Fa-f]{2}\n| 0[0-7]{1,2}\n| [0-7]{3}\n)\n",name:"constant.character.escape.regexp"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-escape-special":{match:"\\\\([AbBdDsSwWZ])",name:"support.other.escape.special.regexp"},"regexp-escape-unicode":{match:"(?x)\n\\\\ (\nu[0-9A-Fa-f]{4}\n| U[0-9A-Fa-f]{8}\n)\n",name:"constant.character.unicode.regexp"},"regexp-flags":{match:"\\(\\?[aiLmsux]+\\)",name:"storage.modifier.flag.regexp"},"regexp-quantifier":{match:"(?x)\n\\{(\n\\d+ | \\d+,(\\d+)? | ,\\d+\n)\\}\n",name:"keyword.operator.quantifier.regexp"},"regexp-single-one-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\')|(?<!\\\\)(\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.single.python",patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"storage.type.string.python"},5:{name:"punctuation.definition.string.begin.python"}},end:"(\\'\\'\\')",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.regexp.quoted.multi.python",patterns:[{include:"#single-three-regexp-expression"}]},"reserved-names-vyper":{match:"(?x)\n\\b (max_int128 | min_int128 | nonlocal | babbage | _default_ | ___init___ | await | indexed | ____init____ | true | constant | with | from | nonpayable | finally | enum | zero_wei | del | for | ____default____ | if | none | or | global | def | not | class | twei | struct | mwei | empty_bytes32 | nonreentrant | transient | false | assert | event | pass | finney | init | lovelace | min_decimal | shannon | public | external | internal | flagunreachable | _init_ | return | in | and | raise | try | gwei | break | zero_address | pwei | range | wei | while | ada | yield | as | immutable | continue | async | lambda | default | is | szabo | kwei | import | max_uint256 | elif | ___default___ | else | except | max_decimal | interface | payable | ether) \\b\n",name:"name.reserved.vyper"},"return-annotation":{begin:"(->)",beginCaptures:{1:{name:"punctuation.separator.annotation.result.python"}},end:"(?=:)",patterns:[{include:"#expression"}]},"round-braces":{begin:"\\(",beginCaptures:{0:{name:"punctuation.parenthesis.begin.python"}},end:"\\)",endCaptures:{0:{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},semicolon:{patterns:[{match:"\\;$",name:"invalid.deprecated.semicolon.python"}]},"single-one-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-one-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-character-set":{patterns:[{match:"(?x)\n\\[ \\^? \\] (?! .*?\\])\n"},{begin:"(\\[)(\\^)?(\\])?",beginCaptures:{1:{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},2:{name:"keyword.operator.negation.regexp"},3:{name:"constant.character.set.regexp"}},end:"(\\]|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.character.set.regexp",patterns:[{include:"#regexp-charecter-set-escapes"},{match:"[^\\n]",name:"constant.character.set.regexp"}]}]},"single-three-regexp-comments":{begin:"\\(\\?#",beginCaptures:{0:{name:"punctuation.comment.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"punctuation.comment.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"comment.regexp",patterns:[{include:"#codetags"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",beginCaptures:{0:{name:"keyword.operator.conditional.regexp"},1:{name:"punctuation.parenthesis.conditional.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",beginCaptures:{0:{name:"keyword.operator.lookahead.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",beginCaptures:{0:{name:"keyword.operator.lookahead.negative.regexp"},1:{name:"punctuation.parenthesis.lookahead.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",beginCaptures:{0:{name:"keyword.operator.lookbehind.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",beginCaptures:{0:{name:"keyword.operator.lookbehind.negative.regexp"},1:{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-named-group":{begin:"(?x)\n(\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",beginCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},2:{name:"entity.name.tag.named.group.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},2:{name:"invalid.illegal.newline.python"}},name:"meta.named.regexp",patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",beginCaptures:{0:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},end:"(\\)|(?=\\'\\'\\'))",endCaptures:{1:{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},2:{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"special-names":{match:"(?x)\n\\b\n\n\n\n\n\n(\n_* [[:upper:]] [_\\d]* [[:upper:]]\n)\n[[:upper:]\\d]* (_\\w*)?\n\\b\n",name:"constant.other.caps.python"},"special-variables":{captures:{1:{name:"variable.language.special.self.python"},2:{name:"variable.language.special.cls.python"}},match:"(?x)\n\\b (?<!\\.) (?:\n(self) | (cls)\n)\\b\n"},"special-variables-types":{patterns:[{match:"(?x)\n(?<!\\.) \\b(\nlog)\\b\n",name:"variable.language.special.log.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nmsg)\\b\n",name:"variable.language.special.msg.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nblock)\\b\n",name:"variable.language.special.block.vyper"},{match:"(?x)\n(?<!\\.) \\b(\ntx)\\b\n",name:"variable.language.special.tx.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nchain)\\b\n",name:"variable.language.special.chain.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nextcall)\\b\n",name:"variable.language.special.extcall.vyper"},{match:"(?x)\n(?<!\\.) \\b(\nstaticcall)\\b\n",name:"variable.language.special.staticcall.vyper"},{match:"(?x)\n\\b (__interface__) \\b\n",name:"variable.language.special.__interface__.vyper"}]},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},"statement-keyword":{patterns:[{match:"\\b((async\\s+)?\\s*def)\\b",name:"storage.type.function.python"},{comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])",name:"keyword.control.flow.python"},{comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b",name:"keyword.control.import.python"},{match:"(?x)\n\\b(?<!\\.)(\nasync | continue | del | assert | break | finally | for\n| from | elif | else | if | except | pass | raise\n| return | try | while | with\n)\\b\n",name:"keyword.control.flow.python"},{match:"(?x)\n\\b(?<!\\.)(\nglobal | nonlocal\n)\\b\n",name:"storage.modifier.declaration.python"},{match:"\\b(?<!\\.)(class)\\b",name:"storage.type.class.python"},{captures:{1:{name:"keyword.control.flow.python"}},match:"(?x)\n^\\s*(\ncase | match\n)(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-bin-quoted-multi-line":{begin:"(\\b[bB])('''|\"\"\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.multi.python",patterns:[{include:"#string-entity"}]},"string-bin-quoted-single-line":{begin:"(\\b[bB])((['\"]))",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.binary.single.python",patterns:[{include:"#string-entity"}]},"string-brace-formatting":{patterns:[{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:"(?x)\n(\n{{ | }}\n| (?:\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n( : \\w? [<>=^]? [-+ ]? \\#?\n\\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n})\n)\n",name:"meta.format.brace.python"},{captures:{1:{name:"constant.character.format.placeholder.other.python"},3:{name:"storage.type.format.python"},4:{name:"storage.type.format.python"}},match:"(?x)\n(\n{\n\\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n(![rsa])?\n(:)\n[^'\"{}\\n]* (?:\n\\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n)*\n}\n)\n",name:"meta.format.brace.python"}]},"string-consume-escape":{match:"\\\\['\"\\n\\\\]"},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"string-formatting":{captures:{1:{name:"constant.character.format.placeholder.other.python"}},match:"(?x)\n(\n% (\\([\\w\\s]*\\))?\n[-+#0 ]*\n(\\d+|\\*)? (\\.(\\d+|\\*))?\n([hlL])?\n[diouxXeEfFgGcrsab%]\n)\n",name:"meta.format.percent.python"},"string-line-continuation":{match:"\\\\$",name:"constant.language.python"},"string-multi-bad-brace1-formatting-raw":{begin:"(?x)\n(?= \\{%\n( .*? (?!'''|\"\"\") )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace1-formatting-unicode":{begin:"(?x)\n(?= \\{%\n( .*? (?!'''|\"\"\") )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace2-formatting-raw":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n)\n.*?(?!'''|\"\"\")\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-multi-bad-brace2-formatting-unicode":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n)\n.*?(?!'''|\"\"\")\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-quoted-multi-line":{begin:"(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-quoted-single-line":{begin:"(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))",beginCaptures:{1:{name:"invalid.illegal.prefix.python"},2:{name:"storage.type.string.python"},3:{name:"punctuation.definition.string.begin.python"}},end:"(\\3)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-bin-quoted-multi-line":{begin:"(\\b(?:R[bB]|[bB]R))('''|\"\"\")",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.multi.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-bin-quoted-single-line":{begin:"(\\b(?:R[bB]|[bB]R))((['\"]))",beginCaptures:{1:{name:"storage.type.string.python"},2:{name:"punctuation.definition.string.begin.python"}},end:"(\\2)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.binary.single.python",patterns:[{include:"#string-raw-bin-guts"}]},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-quoted-multi-line":{begin:"\\b(([uU]R)|(R))('''|\"\"\")",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.multi.python",patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-raw-quoted-single-line":{begin:"\\b(([uU]R)|(R))((['\"]))",beginCaptures:{2:{name:"invalid.deprecated.prefix.python"},3:{name:"storage.type.string.python"},4:{name:"punctuation.definition.string.begin.python"}},end:"(\\4)|((?<!\\\\)\\n)",endCaptures:{1:{name:"punctuation.definition.string.end.python"},2:{name:"invalid.illegal.newline.python"}},name:"string.quoted.raw.single.python",patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-single-bad-brace1-formatting-raw":{begin:"(?x)\n(?= \\{%\n( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace1-formatting-unicode":{begin:"(?x)\n(?= \\{%\n( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n%\\}\n)\n",comment:"template using {% ... %}",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace2-formatting-raw":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n)\n.*?(?!(['\"])|((?<!\\\\)\\n))\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-single-bad-brace2-formatting-unicode":{begin:"(?x)\n(?!\\{\\{)\n(?= \\{ (\n\\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n)\n.*?(?!(['\"])|((?<!\\\\)\\n))\n\\}\n)\n",comment:"odd format or format-like syntax",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]}},i="source.vyper",r={displayName:e,name:n,patterns:t,repository:a,scopeName:i};export{r as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/wasm.mjs b/lib/dist/grammar/wasm.mjs new file mode 100644 index 0000000..fc8607a --- /dev/null +++ b/lib/dist/grammar/wasm.mjs @@ -0,0 +1 @@ +var t="WebAssembly",e="wasm",a=[{include:"#comments"},{include:"#strings"},{include:"#instructions"},{include:"#types"},{include:"#modules"},{include:"#constants"},{include:"#invalid"}],n={comments:{patterns:[{captures:{1:{name:"punctuation.definition.comment.wat"}},comment:"Line comment",match:"(;;).*$",name:"comment.line.wat"},{begin:"\\(;",beginCaptures:{0:{name:"punctuation.definition.comment.wat"}},comment:"Block comment",end:";\\)",endCaptures:{0:{name:"punctuation.definition.comment.wat"}},name:"comment.block.wat"}]},constants:{patterns:[{comment:"Fixed-width SIMD",patterns:[{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i8x16) [simd]",match:"\\b(i8x16)(?:\\s+0x[0-9a-fA-F]{1,2}){16}\\b",name:"constant.numeric.vector.wat"},{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i16x8) [simd]",match:"\\b(i16x8)(?:\\s+0x[0-9a-fA-F]{1,4}){8}\\b",name:"constant.numeric.vector.wat"},{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i32x4) [simd]",match:"\\b(i32x4)(?:\\s+0x[0-9a-fA-F]{1,8}){4}\\b",name:"constant.numeric.vector.wat"},{captures:{1:{name:"support.type.wat"}},comment:"Vector literal (i64x2) [simd]",match:"\\b(i64x2)(?:\\s+0x[0-9a-fA-F]{1,16}){2}\\b",name:"constant.numeric.vector.wat"}]},{comment:"MVP",patterns:[{comment:"Floating point literal",match:"[+-]?\\b[0-9][0-9]*(?:\\.[0-9][0-9]*)?(?:[eE][+-]?[0-9]+)?\\b",name:"constant.numeric.float.wat"},{comment:"Floating point hexadecimal literal",match:"[+-]?\\b0x([0-9a-fA-F]*\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\.?)[Pp][+-]?[0-9]+\\b",name:"constant.numeric.float.wat"},{comment:"Floating point infinity",match:"[+-]?\\binf\\b",name:"constant.numeric.float.wat"},{comment:"Floating point literal (NaN)",match:"[+-]?\\bnan:0x[0-9a-fA-F][0-9a-fA-F]*\\b",name:"constant.numeric.float.wat"},{comment:"Integer literal",match:"[+-]?\\b(?:0x[0-9a-fA-F][0-9a-fA-F]*|\\d[\\d]*)\\b",name:"constant.numeric.integer.wat"}]}]},instructions:{patterns:[{comment:"Non-trapping float-to-int conversions",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Conversion instruction [nontrapping-float-to-int-conversions]",match:"\\b(i32|i64)\\.trunc_sat_f(?:32|64)_[su]\\b",name:"keyword.operator.word.wat"}]},{comment:"Sign-extension operators",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Numeric instruction (i32) [sign-extension-ops]",match:"\\b(i32)\\.(?:extend(?:8|16)_s)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Numeric instruction (i64) [sign-extension-ops]",match:"\\b(i64)\\.(?:extend(?:8|16|32)_s)\\b",name:"keyword.operator.word.wat"}]},{comment:"Bulk memory operations",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Memory instruction [bulk-memory-operations]",match:"\\b(memory)\\.(?:copy|fill|init|drop)\\b",name:"keyword.operator.word.wat"}]},{comment:"Fixed-width SIMD",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v128) [simd]",match:"\\b(v128)\\.(?:const|and|or|xor|not|andnot|bitselect|load|store)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i8x16) [simd]",match:"\\b(i8x16)\\.(?:shuffle|swizzle|splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|narrow_i16x8_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i16x8) [simd]",match:"\\b(i16x8)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|load8x8_[su]|narrow_i32x4_[su]|widen_(low|high)_i8x16_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i32x4) [simd]",match:"\\b(i32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane|load16x4_[su]|trunc_sat_f32x4_[su]|widen_(low|high)_i16x8_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (i64x2) [simd]",match:"\\b(i64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|extract_lane|load32x2_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (f32x4) [simd]",match:"\\b(f32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt|convert_i32x4_[su])\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (f64x2) [simd]",match:"\\b(f64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v8x16) [simd]",match:"\\b(v8x16)\\.(?:load_splat|shuffle|swizzle)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v16x8) [simd]",match:"\\b(v16x8)\\.load_splat\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v32x4) [simd]",match:"\\b(v32x4)\\.load_splat\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Vector instruction (v64x2) [simd]",match:"\\b(v64x2)\\.load_splat\\b",name:"keyword.operator.word.wat"}]},{comment:"Threads",patterns:[{captures:{1:{name:"support.class.wat"},2:{name:"support.class.wat"},3:{name:"support.class.wat"},4:{name:"support.class.wat"}},comment:"Atomic instruction (i32) [threads]",match:"\\b(i32)\\.(atomic)\\.(?:load(?:8_u|16_u)?|store(?:8|16)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"},2:{name:"support.class.wat"},3:{name:"support.class.wat"},4:{name:"support.class.wat"}},comment:"Atomic instruction (i64) [threads]",match:"\\b(i64)\\.(atomic)\\.(?:load(?:8_u|16_u|32_u)?|store(?:8|16|32)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16|rmw32)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Atomic instruction [threads]",match:"\\b(atomic)\\.(?:notify|fence)\\b",name:"keyword.operator.word.wat"},{comment:"Shared modifier [threads]",match:"\\bshared\\b",name:"storage.modifier.wat"}]},{comment:"Reference types",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Reference instruction [reference-types]",match:"\\b(ref)\\.(?:null|is_null|func|extern)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Table instruction [reference-types]",match:"\\b(table)\\.(?:get|size|grow|fill|init|copy)\\b",name:"keyword.operator.word.wat"},{comment:"Type name [reference-types]",match:"\\b(?:externref|funcref|nullref)\\b",name:"entity.name.type.wat"}]},{comment:"Tail Call",patterns:[{comment:"Control instruction [tail-call]",match:"\\breturn_call(?:_indirect)?\\b",name:"keyword.control.wat"}]},{comment:"Exception handling",patterns:[{comment:"Control instruction [exception-handling]",match:"\\b(?:try|catch|throw|rethrow|br_on_exn)\\b",name:"keyword.control.wat"},{comment:"Module element [exception-handling]",match:"(?<=\\()event\\b",name:"storage.type.wat"}]},{comment:"Binaryen extensions",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Pseudo stack instruction [binaryen]",match:"\\b(i32|i64|f32|f64|externref|funcref|nullref|exnref)\\.(?:push|pop)\\b",name:"keyword.operator.word.wat"}]},{comment:"MVP",patterns:[{captures:{1:{name:"support.class.type.wat"}},comment:"Memory instruction (i32) [mvp]",match:"\\b(i32)\\.(?:load|load(?:8|16)(?:_[su])?|store(?:8|16)?)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Memory instruction (i64) [mvp]",match:"\\b(i64)\\.(?:load|load(?:8|16|32)(?:_[su])?|store(?:8|16|32)?)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Memory instruction (f32/f64) [mvp]",match:"\\b(f32|f64)\\.(?:load|store)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.memory.wat"}},comment:"Memory instruction [mvp]",match:"\\b(memory)\\.(?:size|grow)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"entity.other.attribute-name.wat"}},comment:"Memory instruction attribute [mvp]",match:"\\b(offset|align)=\\b"},{captures:{1:{name:"support.class.local.wat"}},comment:"Variable instruction (local) [mvp]",match:"\\b(local)\\.(?:get|set|tee)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.global.wat"}},comment:"Variable instruction (global) [mvp]",match:"\\b(global)\\.(?:get|set)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Numeric instruction (i32/i64) [mvp]",match:"\\b(i32|i64)\\.(const|eqz|eq|ne|lt_[su]|gt_[su]|le_[su]|ge_[su]|clz|ctz|popcnt|add|sub|mul|div_[su]|rem_[su]|and|or|xor|shl|shr_[su]|rotl|rotr)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Numeric instruction (f32/f64) [mvp]",match:"\\b(f32|f64)\\.(const|eq|ne|lt|gt|le|ge|abs|neg|ceil|floor|trunc|nearest|sqrt|add|sub|mul|div|min|max|copysign)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (i32) [mvp]",match:"\\b(i32)\\.(wrap_i64|trunc_(f32|f64)_[su]|reinterpret_f32)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (i64) [mvp]",match:"\\b(i64)\\.(extend_i32_[su]|trunc_f(32|64)_[su]|reinterpret_f64)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (f32) [mvp]",match:"\\b(f32)\\.(convert_i(32|64)_[su]|demote_f64|reinterpret_i32)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.type.wat"}},comment:"Conversion instruction (f64) [mvp]",match:"\\b(f64)\\.(convert_i(32|64)_[su]|promote_f32|reinterpret_i64)\\b",name:"keyword.operator.word.wat"},{comment:"Control instruction [mvp]",match:"\\b(?:unreachable|nop|block|loop|if|then|else|end|br|br_if|br_table|return|call|call_indirect)\\b",name:"keyword.control.wat"},{comment:"Parametric instruction [mvp]",match:"\\b(?:drop|select)\\b",name:"keyword.operator.word.wat"}]},{comment:"GC Instructions",patterns:[{captures:{1:{name:"support.class.wat"}},comment:"Reference Instructions [GC]",match:"\\b(ref)\\.(?:eq|test|cast)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Struct Instructions [GC]",match:"\\b(struct)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Array Instructions [GC]",match:"\\b(array)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set|len|new_canon_fixed|new_canon_data|new_canon_elem)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"i31 Instructions [GC]",match:"\\b(i31)\\.(?:new|get_s|get_u)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Branch Instructions [GC]",match:"\\b(?:br_on_non_null|br_on_cast|br_on_cast_fail)\\b",name:"keyword.operator.word.wat"},{captures:{1:{name:"support.class.wat"}},comment:"Reference Instructions [GC]",match:"\\b(extern)\\.(?:internalize|externalize)\\b",name:"keyword.operator.word.wat"}]}]},invalid:{patterns:[{match:"[^\\s()]+",name:"invalid.wat"}]},modules:{patterns:[{comment:"Bulk memory operations",patterns:[{captures:{1:{name:"storage.modifier.wat"}},comment:"Passive modifier [bulk-memory-operations]",match:"(?<=\\(data)\\s+(passive)\\b"}]},{comment:"MVP",patterns:[{comment:"Module element [mvp]",match:"(?<=\\()(?:module|import|export|memory|data|table|elem|start|func|type|param|result|global|local)\\b",name:"storage.type.wat"},{captures:{1:{name:"storage.modifier.wat"}},comment:"Mutable global modifier [mvp]",match:"(?<=\\()\\s*(mut)\\b",name:"storage.modifier.wat"},{captures:{1:{name:"entity.name.function.wat"}},comment:"Function name [mvp]",match:"(?<=\\(func|\\(start|call|return_call|ref\\.func)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)"},{begin:"\\)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)",beginCaptures:{1:{name:"entity.name.function.wat"}},comment:"Function name(s) (elem) [mvp]",end:"\\)",patterns:[{match:"(?<=\\s)\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*",name:"entity.name.function.wat"}]},{captures:{1:{name:"support.type.function.wat"}},comment:"Function type [mvp]",match:"(?<=\\(type)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)"},{comment:"Variable name or branch label [mvp]",match:"\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*\\b",name:"variable.other.wat"}]}]},strings:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},comment:"String literal",end:'"',endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double.wat",patterns:[{match:"\\\\(n|t|\\\\|'|\"|[0-9a-fA-F]{2})",name:"constant.character.escape.wat"}]},types:{patterns:[{comment:"Fixed-width SIMD",patterns:[{comment:"Type name [simd]",match:"\\bv128\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"Reference types",patterns:[{comment:"Type name [reference-types]",match:"\\b(?:externref|funcref|nullref)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"Exception handling",patterns:[{comment:"Type name [exception-handling]",match:"\\bexnref\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"MVP",patterns:[{comment:"Type name [mvp]",match:"\\b(?:i32|i64|f32|f64)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"GC Types",patterns:[{comment:"Type name [GC]",match:"\\b(?:i8|i16|ref|funcref|externref|anyref|eqref|i31ref|nullfuncref|nullexternref|structref|arrayref|nullref)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"GC Heap Types",patterns:[{comment:"Type name [GC]",match:"\\b(?:type|func|extern|any|eq|nofunc|noextern|struct|array|none)\\b(?!\\.)",name:"entity.name.type.wat"}]},{comment:"GC Structured and sub Types",patterns:[{comment:"Type name [GC]",match:"\\b(?:struct|array|sub|final|rec|field|mut)\\b(?!\\.)",name:"entity.name.type.wat"}]}]}},r="source.wat",o={displayName:t,name:e,patterns:a,repository:n,scopeName:r};export{o as default,t as displayName,e as name,a as patterns,n as repository,r as scopeName}; diff --git a/lib/dist/grammar/wenyan.mjs b/lib/dist/grammar/wenyan.mjs new file mode 100644 index 0000000..accea08 --- /dev/null +++ b/lib/dist/grammar/wenyan.mjs @@ -0,0 +1 @@ +var e="Wenyan",n="wenyan",a=[{include:"#keywords"},{include:"#constants"},{include:"#operators"},{include:"#symbols"},{include:"#expression"},{include:"#comment-blocks"},{include:"#comment-lines"}],t={"comment-blocks":{begin:"(注曰|疏曰|批曰)。?(「「|『)",end:"(」」|』)",name:"comment.block",patterns:[{match:"\\\\.",name:"constant.character"}]},"comment-lines":{begin:"注曰|疏曰|批曰",end:"$",name:"comment.line",patterns:[{match:"\\\\.",name:"constant.character"}]},constants:{patterns:[{match:"負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠",name:"constant.numeric"},{match:"其|陰|陽",name:"constant.language"},{begin:"「「|『",end:"」」|』",name:"string.quoted",patterns:[{match:"\\\\.",name:"constant.character"}]}]},expression:{patterns:[{include:"#variables"}]},keywords:{patterns:[{match:"數|列|言|術|爻|物|元",name:"storage.type"},{match:"乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘",name:"keyword.control"},{match:"或云|蓋謂",name:"keyword.control"},{match:"中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於",name:"keyword.operator"},{match:"不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈",name:"keyword.other"},{match:"也|凡|遍|若|者|之|充|銜",name:"keyword.control"}]},symbols:{patterns:[{match:"。|、",name:"punctuation.separator"}]},variables:{begin:"「",end:"」",name:"variable.other",patterns:[{match:"\\\\.",name:"constant.character"}]}},c="source.wenyan",o={displayName:e,name:n,patterns:a,repository:t,scopeName:c};export{o as default,e as displayName,n as name,a as patterns,t as repository,c as scopeName}; diff --git a/lib/dist/grammar/wgsl.mjs b/lib/dist/grammar/wgsl.mjs new file mode 100644 index 0000000..fd74a4a --- /dev/null +++ b/lib/dist/grammar/wgsl.mjs @@ -0,0 +1 @@ +var e="WGSL",t="wgsl",n=[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#functions"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}],a={attributes:{patterns:[{captures:{1:{name:"keyword.operator.attribute.at"},2:{name:"entity.name.attribute.wgsl"}},comment:"attribute declaration",match:"(@)([A-Za-z_]+)",name:"meta.attribute.wgsl"}]},block_comments:{patterns:[{comment:"empty block comments",match:"/\\*\\*/",name:"comment.block.wgsl"},{begin:"/\\*\\*",comment:"block documentation comments",end:"\\*/",name:"comment.block.documentation.wgsl",patterns:[{include:"#block_comments"}]},{begin:"/\\*(?!\\*)",comment:"block comments",end:"\\*/",name:"comment.block.wgsl",patterns:[{include:"#block_comments"}]}]},constants:{patterns:[{comment:"decimal float literal",match:"(-?\\b[0-9][0-9]*\\.[0-9][0-9]*)([eE][+-]?[0-9]+)?\\b",name:"constant.numeric.float.wgsl"},{comment:"int literal",match:"-?\\b0x[0-9a-fA-F]+\\b|\\b0\\b|-?\\b[1-9][0-9]*\\b",name:"constant.numeric.decimal.wgsl"},{comment:"uint literal",match:"\\b0x[0-9a-fA-F]+u\\b|\\b0u\\b|\\b[1-9][0-9]*u\\b",name:"constant.numeric.decimal.wgsl"},{comment:"boolean constant",match:"\\b(true|false)\\b",name:"constant.language.boolean.wgsl"}]},function_calls:{patterns:[{begin:"([A-Za-z0-9_]+)(\\()",beginCaptures:{1:{name:"entity.name.function.wgsl"},2:{name:"punctuation.brackets.round.wgsl"}},comment:"function/method calls",end:"\\)",endCaptures:{0:{name:"punctuation.brackets.round.wgsl"}},name:"meta.function.call.wgsl",patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}]}]},functions:{patterns:[{begin:"\\b(fn)\\s+([A-Za-z0-9_]+)((\\()|(<))",beginCaptures:{1:{name:"keyword.other.fn.wgsl"},2:{name:"entity.name.function.wgsl"},4:{name:"punctuation.brackets.round.wgsl"}},comment:"function definition",end:"\\{",endCaptures:{0:{name:"punctuation.brackets.curly.wgsl"}},name:"meta.function.definition.wgsl",patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}]}]},keywords:{patterns:[{comment:"other keywords",match:"\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\b",name:"keyword.control.wgsl"},{comment:"reserved keywords",match:"\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\b",name:"keyword.control.wgsl"},{comment:"storage keywords",match:"\\b(let|var)\\b",name:"keyword.other.wgsl storage.type.wgsl"},{comment:"type keyword",match:"\\b(type)\\b",name:"keyword.declaration.type.wgsl storage.type.wgsl"},{comment:"enum keyword",match:"\\b(enum)\\b",name:"keyword.declaration.enum.wgsl storage.type.wgsl"},{comment:"struct keyword",match:"\\b(struct)\\b",name:"keyword.declaration.struct.wgsl storage.type.wgsl"},{comment:"fn",match:"\\bfn\\b",name:"keyword.other.fn.wgsl"},{comment:"logical operators",match:"(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)",name:"keyword.operator.logical.wgsl"},{comment:"logical AND, borrow references",match:"&(?![&=])",name:"keyword.operator.borrow.and.wgsl"},{comment:"assignment operators",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)",name:"keyword.operator.assignment.wgsl"},{comment:"single equal",match:"(?<![<>])=(?!=|>)",name:"keyword.operator.assignment.equal.wgsl"},{comment:"comparison operators",match:"(=(=)?(?!>)|!=|<=|(?<!=)>=)",name:"keyword.operator.comparison.wgsl"},{comment:"math operators",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))",name:"keyword.operator.math.wgsl"},{comment:"dot access",match:"\\.(?!\\.)",name:"keyword.operator.access.dot.wgsl"},{comment:"dashrocket, skinny arrow",match:"->",name:"keyword.operator.arrow.skinny.wgsl"}]},line_comments:{comment:"single line comment",match:"\\s*//.*",name:"comment.line.double-slash.wgsl"},punctuation:{patterns:[{comment:"comma",match:",",name:"punctuation.comma.wgsl"},{comment:"curly braces",match:"[{}]",name:"punctuation.brackets.curly.wgsl"},{comment:"parentheses, round brackets",match:"[()]",name:"punctuation.brackets.round.wgsl"},{comment:"semicolon",match:";",name:"punctuation.semi.wgsl"},{comment:"square brackets",match:"[\\[\\]]",name:"punctuation.brackets.square.wgsl"},{comment:"angle brackets",match:"(?<![=-])[<>]",name:"punctuation.brackets.angle.wgsl"}]},types:{comment:"types",name:"storage.type.wgsl",patterns:[{comment:"scalar Types",match:"\\b(bool|i32|u32|f32)\\b",name:"storage.type.wgsl"},{comment:"reserved scalar Types",match:"\\b(i64|u64|f64)\\b",name:"storage.type.wgsl"},{comment:"vector type aliasses",match:"\\b(vec2i|vec3i|vec4i|vec2u|vec3u|vec4u|vec2f|vec3f|vec4f|vec2h|vec3h|vec4h)\\b",name:"storage.type.wgsl"},{comment:"matrix type aliasses",match:"\\b(mat2x2f|mat2x3f|mat2x4f|mat3x2f|mat3x3f|mat3x4f|mat4x2f|mat4x3f|mat4x4f|mat2x2h|mat2x3h|mat2x4h|mat3x2h|mat3x3h|mat3x4h|mat4x2h|mat4x3h|mat4x4h)\\b",name:"storage.type.wgsl"},{comment:"vector/matrix types",match:"\\b(vec[2-4]|mat[2-4]x[2-4])\\b",name:"storage.type.wgsl"},{comment:"atomic types",match:"\\b(atomic)\\b",name:"storage.type.wgsl"},{comment:"array types",match:"\\b(array)\\b",name:"storage.type.wgsl"},{comment:"Custom type",match:"\\b([A-Z][A-Za-z0-9]*)\\b",name:"entity.name.type.wgsl"}]},variables:{patterns:[{comment:"variables",match:"\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b",name:"variable.other.wgsl"}]}},m="source.wgsl",c={displayName:e,name:t,patterns:n,repository:a,scopeName:m};export{c as default,e as displayName,t as name,n as patterns,a as repository,m as scopeName}; diff --git a/lib/dist/grammar/wikitext.mjs b/lib/dist/grammar/wikitext.mjs new file mode 100644 index 0000000..c0bf918 --- /dev/null +++ b/lib/dist/grammar/wikitext.mjs @@ -0,0 +1 @@ +var t="Wikitext",e="wikitext",i=[{include:"#wikitext"},{include:"text.html.basic"}],n={wikitext:{patterns:[{include:"#signature"},{include:"#redirect"},{include:"#magic-words"},{include:"#argument"},{include:"#template"},{include:"#convert"},{include:"#list"},{include:"#table"},{include:"#font-style"},{include:"#internal-link"},{include:"#external-link"},{include:"#heading"},{include:"#break"},{include:"#wikixml"},{include:"#extension-comments"}],repository:{argument:{begin:"({{{)",end:"(}}})",name:"variable.parameter.wikitext",patterns:[{captures:{1:{name:"variable.other.wikitext"},2:{name:"keyword.operator.wikitext"}},match:"(?:^|\\G)([^#:\\|\\[\\]\\{\\}\\|]*)(\\|)"},{include:"$self"}]},break:{match:"^-{4,}",name:"markup.changed.wikitext"},convert:{begin:"(-\\{(?!\\{))([a-zA-Z](\\|))?",captures:{1:{name:"punctuation.definition.tag.template.wikitext"},2:{name:"entity.name.function.type.wikitext"},3:{name:"keyword.operator.wikitext"}},end:"(\\}-)",patterns:[{include:"$self"},{captures:{1:{name:"entity.name.tag.language.wikitext"},2:{name:"punctuation.separator.key-value.wikitext"},3:{name:"string.unquoted.text.wikitext",patterns:[{include:"$self"}]},4:{name:"punctuation.terminator.rule.wikitext"}},match:"(?:([a-zA-Z\\-]*)(:))?(.*?)(?:(;)|(?=\\}-))"}]},"extension-comments":{begin:"(<%--)\\s*(\\[)([A-Z_]*)(\\])",beginCaptures:{1:{name:"punctuation.definition.comment.extension.wikitext"},2:{name:"punctuation.definition.tag.extension.wikitext"},3:{name:"storage.type.extension.wikitext"},4:{name:"punctuation.definition.tag.extension.wikitext"}},end:"(\\[)([A-Z_]*)(\\])\\s*(--%>)",endCaptures:{1:{name:"punctuation.definition.tag.extension.wikitext"},2:{name:"storage.type.extension.wikitext"},3:{name:"punctuation.definition.tag.extension.wikitext"},4:{name:"punctuation.definition.comment.extension.wikitext"}},name:"comment.block.documentation.special.extension.wikitext",patterns:[{captures:{0:{name:"meta.object.member.extension.wikitext"},1:{name:"meta.object-literal.key.extension.wikitext"},2:{name:"punctuation.separator.dictionary.key-value.extension.wikitext"},3:{name:"punctuation.definition.string.begin.extension.wikitext"},4:{name:"string.quoted.other.extension.wikitext"},5:{name:"punctuation.definition.string.end.extension.wikitext"}},match:"(\\w*)\\s*(=)\\s*(#)(.*?)(#)"}]},"external-link":{patterns:[{captures:{1:{name:"punctuation.definition.tag.link.external.wikitext"},2:{name:"entity.name.tag.url.wikitext"},3:{name:"string.other.link.external.title.wikitext",patterns:[{include:"$self"}]},4:{name:"punctuation.definition.tag.link.external.wikitext"}},match:"(\\[)((?:(?:(?:http(?:s)?)|(?:ftp(?:s)?)):\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\.~:\\/?#%@!\\$&'\\(\\)\\*\\+,;=.]+)\\s*?([^\\]]*)(\\])",name:"meta.link.external.wikitext"},{captures:{1:{name:"punctuation.definition.tag.link.external.wikitext"},2:{name:"invalid.illegal.bad-url.wikitext"},3:{name:"string.other.link.external.title.wikitext",patterns:[{include:"$self"}]},4:{name:"punctuation.definition.tag.link.external.wikitext"}},match:"(\\[)([\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\.~:\\/?#%@!\\$&'\\(\\)\\*\\+,;=.]+)\\s*?([^\\]]*)(\\])",name:"invalid.illegal.bad-link.wikitext"}]},"font-style":{patterns:[{include:"#bold"},{include:"#italic"}],repository:{bold:{begin:"(''')",end:"(''')|$",name:"markup.bold.wikitext",patterns:[{include:"#italic"},{include:"$self"}]},italic:{begin:"('')",end:"((?=[^'])|(?=''))''((?=[^'])|(?=''))|$",name:"markup.italic.wikitext",patterns:[{include:"#bold"},{include:"$self"}]}}},heading:{captures:{2:{name:"string.quoted.other.heading.wikitext",patterns:[{include:"$self"}]}},match:"^(={1,6})\\s*(.+?)\\s*(\\1)$",name:"markup.heading.wikitext"},"internal-link":{TODO:"SINGLE LINE",begin:"(\\[\\[)(([^#:\\|\\[\\]\\{\\}]*:)*)?([^\\|\\[\\]]*)?",captures:{1:{name:"punctuation.definition.tag.link.internal.wikitext"},2:{name:"entity.name.tag.namespace.wikitext"},4:{name:"entity.other.attribute-name.wikitext"}},end:"(\\]\\])",name:"string.quoted.internal-link.wikitext",patterns:[{include:"$self"},{captures:{1:{name:"keyword.operator.wikitext"},5:{name:"entity.other.attribute-name.localname.wikitext"}},match:"(\\|)|(?:\\s*)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*(=)"}]},list:{name:"markup.list.wikitext",patterns:[{captures:{1:{name:"punctuation.definition.list.begin.markdown.wikitext"}},match:"^([#*;:]+)"}]},"magic-words":{patterns:[{include:"#behavior-switches"},{include:"#outdated-behavior-switches"},{include:"#variables"}],repository:{"behavior-switches":{match:"(?x) # turn on extended mode\n(?i) # ignore case\n (__) # start: __\n (\n NOTOC|FORCETOC|TOC|NOEDITSECTION|NEWSECTIONLINK|NOGALLERY|\n HIDDENCAT|EXPECTUNUSEDCATEGORY|NOCONTENTCONVERT|NOCC|\n NOTITLECONVERT|NOTC|INDEX|NOINDEX|STATICREDIRECT|NOGLOBAL|\n DISAMBIG\n )\n (__)",name:"constant.language.behavior-switcher.wikitext"},"outdated-behavior-switches":{match:"(?x)\n(?i)\n (__)\n (\n START|END\n )\n (__)",name:"invalid.deprecated.behavior-switcher.wikitext"},variables:{patterns:[{match:"(?x)\n(?i)\n (\\{\\{)\n (\n CURRENTYEAR|CURRENTMONTH|CURRENTMONTH1|CURRENTMONTHNAME|\n CURRENTMONTHNAMEGEN|CURRENTMONTHABBREV|CURRENTDAY|\n CURRENTDAY2|CURRENTDOW|CURRENTDAYNAME|CURRENTTIME|\n CURRENTHOUR|CURRENTWEEK|CURRENTTIMESTAMP|LOCALYEAR|\n LOCALMONTH|LOCALMONTH1|LOCALMONTHNAME|LOCALMONTHNAMEGEN|\n LOCALMONTHABBREV|LOCALDAY|LOCALDAY2|LOCALDOW|\n LOCALDAYNAME|LOCALTIME|LOCALHOUR|LOCALWEEK|\n LOCALTIMESTAMP\n )\n (\\}\\})",name:"constant.language.variables.time.wikitext"},{match:"(?x)\n(?i)\n (\\{\\{)\n (\n SITENAME|SERVER|SERVERNAME|DIRMARK|DIRECTIONMARK|\n SCRIPTPATH|STYLEPATH|CURRENTVERSION|CONTENTLANGUAGE|\n CONTENTLANG|PAGEID|PAGELANGUAGE|CASCADINGSOURCES|\n REVISIONID|REVISIONDAY|REVISIONDAY2|REVISIONMONTH|\n REVISIONMONTH1|REVISIONYEAR|REVISIONTIMESTAMP|\n REVISIONUSER|REVISIONSIZE\n )\n (\\}\\})",name:"constant.language.variables.metadata.wikitext"},{match:"ISBN\\s+((9[\\-\\s]?7[\\-\\s]?[89][\\-\\s]?)?([0-9][\\-\\s]?){10})",name:"constant.language.variables.isbn.wikitext"},{match:"RFC\\s+[0-9]+",name:"constant.language.variables.rfc.wikitext"},{match:"PMID\\s+[0-9]+",name:"constant.language.variables.pmid.wikitext"}]}}},redirect:{patterns:[{captures:{1:{name:"keyword.control.redirect.wikitext"},2:{name:"punctuation.definition.tag.link.internal.begin.wikitext"},3:{name:"entity.name.tag.namespace.wikitext"},4:null,5:{name:"entity.other.attribute-name.wikitext"},6:{name:"invalid.deprecated.ineffective.wikitext"},7:{name:"punctuation.definition.tag.link.internal.end.wikitext"}},match:"(?i)(^\\s*?#REDIRECT)\\s*(\\[\\[)(([^#:\\|\\[\\]\\{\\}]*?:)*)?([^\\|\\[\\]]*)?(\\|[^\\[\\]]*?)?(\\]\\])"}]},signature:{patterns:[{match:"~{3,5}",name:"keyword.other.signature.wikitext"}]},table:{patterns:[{begin:"^\\s*(\\{\\|)(.*)$",captures:{1:{name:"punctuation.definition.tag.table.wikitext"},2:{patterns:[{include:"text.html.basic#attribute"}]}},end:"^\\s*(\\|\\})",name:"meta.tag.block.table.wikitext",patterns:[{include:"$self"},{begin:"^\\s*(\\|-)\\s*",beginCaptures:{1:{name:"punctuation.definition.tag.begin.wikitext"}},end:"$",name:"meta.tag.block.table-row.wikitext",patterns:[{include:"$self"},{include:"text.html.basic#attribute"},{match:"\\|.*",name:"invalid.illegal.bad-table-context.wikitext"}]},{begin:"^\\s*(!)(([^\\[]*?)(\\|))?(.*?)(?=(!!)|$)",beginCaptures:{1:{name:"punctuation.definition.tag.begin.wikitext"},2:null,3:{patterns:[{include:"$self"},{include:"text.html.basic#attribute"}]},4:{name:"punctuation.definition.tag.wikitext"},5:{name:"markup.bold.style.wikitext"}},end:"$",name:"meta.tag.block.th.heading",patterns:[{captures:{1:{name:"punctuation.definition.tag.begin.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.wikitext"},5:{name:"markup.bold.style.wikitext"}},match:"(!!)(([^\\[]*?)(\\|))?(.*?)(?=(!!)|$)",name:"meta.tag.block.th.inline.wikitext"},{include:"$self"}]},{captures:{1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"string.unquoted.caption.wikitext"}},end:"$",match:"^\\s*(\\|\\+)(.*?)$",name:"meta.tag.block.caption.wikitext",patterns:[{include:"$self"}]},{begin:"^\\s*(\\|)",beginCaptures:{1:{name:"punctuation.definition.tag.wikitext"}},end:"$",patterns:[{include:"$self"},{match:"\\|\\|",name:"keyword.operator.wikitext"}]}]}]},template:{begin:"(\\{\\{)\\s*(([^#:\\|\\[\\]\\{\\}]*(:))*)\\s*((#[^#:\\|\\[\\]\\{\\}]+(:))*)([^#:\\|\\[\\]\\{\\}]*)",captures:{1:{name:"punctuation.definition.tag.template.wikitext"},2:{name:"entity.name.tag.local-name.wikitext"},4:{name:"punctuation.separator.namespace.wikitext"},5:{name:"entity.name.function.wikitext"},7:{name:"punctuation.separator.namespace.wikitext"},8:{name:"entity.name.tag.local-name.wikitext"}},end:"(\\}\\})",patterns:[{include:"$self"},{match:"(\\|)",name:"keyword.operator.wikitext"},{captures:{1:{name:"entity.other.attribute-name.namespace.wikitext"},2:{name:"punctuation.separator.namespace.wikitext"},3:{name:"entity.other.attribute-name.local-name.wikitext"},4:{name:"keyword.operator.equal.wikitext"}},match:"(?<=\\|)\\s*(?:([-\\w.]+)(:))?([-\\w\\s\\.:]+)\\s*(=)"}]},wikixml:{patterns:[{include:"#wiki-self-closed-tags"},{include:"#normal-wiki-tags"},{include:"#nowiki"},{include:"#ref"},{include:"#jsonin"},{include:"#math"},{include:"#syntax-highlight"}],repository:{jsonin:{begin:"(?i)(<)(graph|templatedata)(\\s+[^>]+)?\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},contentName:"meta.embedded.block.json",end:"(?i)(</)(\\2)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{include:"source.json"}]},math:{begin:"(?i)(<)(math|chem|ce)(\\s+[^>]+)?\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},contentName:"meta.embedded.block.latex",end:"(?i)(</)(\\2)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{include:"text.html.markdown.math#math"}]},"normal-wiki-tags":{captures:{1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},match:"(?i)(</?)(includeonly|onlyinclude|noinclude)(\\s+[^>]+)?\\s*(>)",name:"meta.tag.metedata.normal.wikitext"},nowiki:{begin:"(?i)(<)(nowiki)(\\s+[^>]+)?\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.nowiki.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},contentName:"meta.embedded.block.plaintext",end:"(?i)(</)(nowiki)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.nowiki.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}}},ref:{begin:"(?i)(<)(ref)(\\s+[^>]+)?\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.ref.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},contentName:"meta.block.ref.wikitext",end:"(?i)(</)(ref)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.ref.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{include:"$self"}]},"syntax-highlight":{patterns:[{include:"#hl-css"},{include:"#hl-html"},{include:"#hl-ini"},{include:"#hl-java"},{include:"#hl-lua"},{include:"#hl-makefile"},{include:"#hl-perl"},{include:"#hl-r"},{include:"#hl-ruby"},{include:"#hl-php"},{include:"#hl-sql"},{include:"#hl-vb-net"},{include:"#hl-xml"},{include:"#hl-xslt"},{include:"#hl-yaml"},{include:"#hl-bat"},{include:"#hl-clojure"},{include:"#hl-coffee"},{include:"#hl-c"},{include:"#hl-cpp"},{include:"#hl-diff"},{include:"#hl-dockerfile"},{include:"#hl-go"},{include:"#hl-groovy"},{include:"#hl-pug"},{include:"#hl-js"},{include:"#hl-json"},{include:"#hl-less"},{include:"#hl-objc"},{include:"#hl-swift"},{include:"#hl-scss"},{include:"#hl-perl6"},{include:"#hl-powershell"},{include:"#hl-python"},{include:"#hl-julia"},{include:"#hl-rust"},{include:"#hl-scala"},{include:"#hl-shell"},{include:"#hl-ts"},{include:"#hl-csharp"},{include:"#hl-fsharp"},{include:"#hl-dart"},{include:"#hl-handlebars"},{include:"#hl-markdown"},{include:"#hl-erlang"},{include:"#hl-elixir"},{include:"#hl-latex"},{include:"#hl-bibtex"}],repository:{"hl-bat":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(['\"]?)(?:batch|bat|dosbatch|winbatch)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.bat",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.batchfile"}]}]},"hl-bibtex":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:bibtex|bib)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.bibtex",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.bibtex"}]}]},"hl-c":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)c\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.c",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.c"}]}]},"hl-clojure":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:clojure|clj)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.clojure",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.clojure"}]}]},"hl-coffee":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:coffeescript|coffee-script|coffee)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.coffee",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.coffee"}]}]},"hl-cpp":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:cpp|c\\+\\+)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.cpp",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.cpp"}]}]},"hl-csharp":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:csharp|c#|cs)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.csharp",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.cs"}]}]},"hl-css":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)css\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.css",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.css"}]}]},"hl-dart":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)dart\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.dart",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.dart"}]}]},"hl-diff":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:diff|udiff)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.diff",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.diff"}]}]},"hl-dockerfile":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:docker|dockerfile)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.dockerfile",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.dockerfile"}]}]},"hl-elixir":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:elixir|ex|exs)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.elixir",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.elixir"}]}]},"hl-erlang":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)erlang\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.erlang",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.erlang"}]}]},"hl-fsharp":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:fsharp|f#)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.fsharp",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.fsharp"}]}]},"hl-go":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:go|golang)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.go",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.go"}]}]},"hl-groovy":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)groovy\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.groovy",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.groovy"}]}]},"hl-handlebars":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)handlebars\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.handlebars",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.html.handlebars"}]}]},"hl-html":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)html\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.html",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.html.basic"}]}]},"hl-ini":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:ini|cfg|dosini)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.ini",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.ini"}]}]},"hl-java":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)java\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.java",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.java"}]}]},"hl-js":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:javascript|js)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.js",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.js"}]}]},"hl-json":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"json\"|'json'|\"json-object\"|'json-object'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.json",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.json.comments"}]}]},"hl-julia":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"julia\"|'julia'|\"jl\"|'jl'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.julia",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.julia"}]}]},"hl-latex":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:tex|latex)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.latex",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.tex.latex"}]}]},"hl-less":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"less\"|'less'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.less",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.css.less"}]}]},"hl-lua":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)lua\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.lua",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.lua"}]}]},"hl-makefile":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:make|makefile|mf|bsdmake)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.makefile",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.makefile"}]}]},"hl-markdown":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:markdown|md)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.markdown",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.html.markdown"}]}]},"hl-objc":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"objective-c\"|'objective-c'|\"objectivec\"|'objectivec'|\"obj-c\"|'obj-c'|\"objc\"|'objc'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.objc",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.objc"}]}]},"hl-perl":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:perl|ple)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.perl",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.perl"}]}]},"hl-perl6":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"perl6\"|'perl6'|\"pl6\"|'pl6'|\"raku\"|'raku'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.perl6",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.perl.6"}]}]},"hl-php":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:php|php3|php4|php5)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.php",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.php"}]}]},"hl-powershell":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"powershell\"|'powershell'|\"pwsh\"|'pwsh'|\"posh\"|'posh'|\"ps1\"|'ps1'|\"psm1\"|'psm1'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.powershell",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.powershell"}]}]},"hl-pug":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:pug|jade)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.pug",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.pug"}]}]},"hl-python":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"python\"|'python'|\"py\"|'py'|\"sage\"|'sage'|\"python3\"|'python3'|\"py3\"|'py3'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.python",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.python"}]}]},"hl-r":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:splus|s|r)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.r",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.r"}]}]},"hl-ruby":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:ruby|rb|duby)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.ruby",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.ruby"}]}]},"hl-rust":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"rust\"|'rust'|\"rs\"|'rs'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:null,end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.rust"}]}]},"hl-scala":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"scala\"|'scala'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.scala",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.scala"}]}]},"hl-scss":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"scss\"|'scss'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.scss",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.css.scss"}]}]},"hl-shell":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"bash\"|'bash'|\"sh\"|'sh'|\"ksh\"|'ksh'|\"zsh\"|'zsh'|\"shell\"|'shell'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.shell",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.shell"}]}]},"hl-sql":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)sql\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.sql",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.sql"}]}]},"hl-swift":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"swift\"|'swift'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.swift",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.swift"}]}]},"hl-ts":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:\"typescript\"|'typescript'|\"ts\"|'ts'))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.ts",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.ts"}]}]},"hl-vb-net":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)(?:vb\\.net|vbnet|lobas|oobas|sobas)\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.vb-net",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.asp.vb.net"}]}]},"hl-xml":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)xml\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.xml",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.xml"}]}]},"hl-xslt":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)xslt\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.xslt",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"text.xml.xsl"}]}]},"hl-yaml":{begin:"(?i)(<)(syntaxhighlight)((?:\\s+[^>]+)?(?:\\s+lang=(?:(['\"]?)yaml\\4))(?:\\s+[^>]+)?)\\s*(>)",beginCaptures:{0:{name:"meta.tag.metadata.start.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},5:{name:"punctuation.definition.tag.end.wikitext"}},end:"(?i)(</)(syntaxhighlight)\\s*(>)",endCaptures:{0:{name:"meta.tag.metadata.end.wikitext"},1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{name:"punctuation.definition.tag.end.wikitext"}},patterns:[{begin:"(^|\\G)",contentName:"meta.embedded.block.yaml",end:"(?i)(?=</syntaxhighlight\\s*>)",patterns:[{include:"source.yaml"}]}]}}},"wiki-self-closed-tags":{captures:{1:{name:"punctuation.definition.tag.begin.wikitext"},2:{name:"entity.name.tag.wikitext"},3:{patterns:[{include:"text.html.basic#attribute"},{include:"$self"}]},4:{name:"punctuation.definition.tag.end.wikitext"}},match:"(?i)(<)(templatestyles|ref|nowiki|onlyinclude|includeonly)(\\s+[^>]+)?\\s*(/>)",name:"meta.tag.metedata.void.wikitext"}}}}}},a="source.wikitext",s={displayName:t,name:e,patterns:i,repository:n,scopeName:a};export{s as default,t as displayName,e as name,i as patterns,n as repository,a as scopeName}; diff --git a/lib/dist/grammar/wolfram.mjs b/lib/dist/grammar/wolfram.mjs new file mode 100644 index 0000000..6d35547 --- /dev/null +++ b/lib/dist/grammar/wolfram.mjs @@ -0,0 +1 @@ +var e="Wolfram",t=["wl","m","wls","wlt","mt"],a="wolfram",i=[{include:"#main"}],o={"association-group":{begin:"<\\|",beginCaptures:{0:{name:"punctuation.section.associations.begin.wolfram"}},end:"\\|>",endCaptures:{0:{name:"punctuation.section.associations.end.wolfram"}},name:"meta.associations.wolfram",patterns:[{include:"#expressions"}]},"brace-group":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.braces.begin.wolfram"}},end:"\\}",endCaptures:{0:{name:"punctuation.section.braces.end.wolfram"}},name:"meta.braces.wolfram",patterns:[{include:"#expressions"}]},"bracket-group":{begin:"::\\[|\\[",beginCaptures:{0:{name:"punctuation.section.brackets.begin.wolfram"}},end:"\\]",endCaptures:{0:{name:"punctuation.section.brackets.end.wolfram"}},name:"meta.brackets.wolfram",patterns:[{include:"#expressions"}]},comments:{patterns:[{begin:"\\(\\*",beginCaptures:{0:{name:"punctuation.definition.comment.wolfram"}},end:"\\*\\)",endCaptures:{0:{name:"punctuation.definition.comment.wolfram"}},name:"comment.block",patterns:[{include:"#comments"}]},{match:"\\*\\)",name:"invalid.illegal.stray-comment-end.wolfram"}]},escaped_character_symbols:{patterns:[{match:"System`\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:D(?:egree))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:E(?:xponentialE))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:I(?:maginaryI|maginaryJ|nfinity))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:P(?:i))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"}]},escaped_characters:{patterns:[{match:"\\\\[!%&()*+/@^_` ]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:A(?:kuz|ndy))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:C(?:ontinuedFractionK|url))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:D(?:ivergence|ivisionSlash))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:E(?:xpectationE))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:F(?:reeformPrompt))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:G(?:radient))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:L(?:aplacian))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:M(?:inus|oon))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:N(?:umberComma))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:P(?:ageBreakAbove|ageBreakBelow|robabilityPr))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:S(?:pooky|tepperDown|tepperLeft|tepperRight|tepperUp|un))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:U(?:nknownGlyph))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:V(?:illa))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:W(?:olframAlphaPrompt))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:C(?:OMPATIBILITYKanjiSpace|OMPATIBILITYNoBreak))\\]",name:"invalid.illegal.unsupported"},{match:"\\\\\\[(?:I(?:nlinePart))\\]",name:"invalid.illegal.unsupported"},{match:"\\\\\\[(?:A(?:Acute|Bar|Cup|DoubleDot|E|Grave|Hat|Ring|Tilde|leph|liasDelimiter|liasIndicator|lignmentMarker|lpha|ltKey|nd|ngle|ngstrom|pplication|quariusSign|riesSign|scendingEllipsis|utoLeftMatch|utoOperand|utoPlaceholder|utoRightMatch|utoSpace))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:B(?:ackslash|eamedEighthNote|eamedSixteenthNote|ecause|et|eta|lackBishop|lackKing|lackKnight|lackPawn|lackQueen|lackRook|reve|ullet))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:C(?:Acute|Cedilla|Hacek|ancerSign|ap|apitalAAcute|apitalABar|apitalACup|apitalADoubleDot|apitalAE|apitalAGrave|apitalAHat|apitalARing|apitalATilde|apitalAlpha|apitalBeta|apitalCAcute|apitalCCedilla|apitalCHacek|apitalChi|apitalDHacek|apitalDelta|apitalDifferentialD|apitalDigamma|apitalEAcute|apitalEBar|apitalECup|apitalEDoubleDot|apitalEGrave|apitalEHacek|apitalEHat|apitalEpsilon|apitalEta|apitalEth|apitalGamma|apitalIAcute|apitalICup|apitalIDoubleDot|apitalIGrave|apitalIHat|apitalIota|apitalKappa|apitalKoppa|apitalLSlash|apitalLambda|apitalMu|apitalNHacek|apitalNTilde|apitalNu|apitalOAcute|apitalODoubleAcute|apitalODoubleDot|apitalOE|apitalOGrave|apitalOHat|apitalOSlash|apitalOTilde|apitalOmega|apitalOmicron|apitalPhi|apitalPi|apitalPsi|apitalRHacek|apitalRho|apitalSHacek|apitalSampi|apitalSigma|apitalStigma|apitalTHacek|apitalTau|apitalTheta|apitalThorn|apitalUAcute|apitalUDoubleAcute|apitalUDoubleDot|apitalUGrave|apitalUHat|apitalURing|apitalUpsilon|apitalXi|apitalYAcute|apitalZHacek|apitalZeta|apricornSign|edilla|ent|enterDot|enterEllipsis|heckedBox|heckmark|heckmarkedBox|hi|ircleDot|ircleMinus|irclePlus|ircleTimes|lockwiseContourIntegral|loseCurlyDoubleQuote|loseCurlyQuote|loverLeaf|lubSuit|olon|ommandKey|onditioned|ongruent|onjugate|onjugateTranspose|onstantC|ontinuation|ontourIntegral|ontrolKey|oproduct|opyright|ounterClockwiseContourIntegral|ross|ubeRoot|up|upCap|urlyCapitalUpsilon|urlyEpsilon|urlyKappa|urlyPhi|urlyPi|urlyRho|urlyTheta|urrency))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:D(?:Hacek|agger|alet|ash|egree|el|eleteKey|elta|escendingEllipsis|iameter|iamond|iamondSuit|ifferenceDelta|ifferentialD|igamma|irectedEdge|iscreteRatio|iscreteShift|iscretionaryHyphen|iscretionaryLineSeparator|iscretionaryPageBreakAbove|iscretionaryPageBreakBelow|iscretionaryParagraphSeparator|istributed|ivide|ivides|otEqual|otlessI|otlessJ|ottedSquare|oubleContourIntegral|oubleDagger|oubleDot|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oublePrime|oubleRightArrow|oubleRightTee|oubleStruckA|oubleStruckB|oubleStruckC|oubleStruckCapitalA|oubleStruckCapitalB|oubleStruckCapitalC|oubleStruckCapitalD|oubleStruckCapitalE|oubleStruckCapitalF|oubleStruckCapitalG|oubleStruckCapitalH|oubleStruckCapitalI|oubleStruckCapitalJ|oubleStruckCapitalK|oubleStruckCapitalL|oubleStruckCapitalM|oubleStruckCapitalN|oubleStruckCapitalO|oubleStruckCapitalP|oubleStruckCapitalQ|oubleStruckCapitalR|oubleStruckCapitalS|oubleStruckCapitalT|oubleStruckCapitalU|oubleStruckCapitalV|oubleStruckCapitalW|oubleStruckCapitalX|oubleStruckCapitalY|oubleStruckCapitalZ|oubleStruckD|oubleStruckE|oubleStruckEight|oubleStruckF|oubleStruckFive|oubleStruckFour|oubleStruckG|oubleStruckH|oubleStruckI|oubleStruckJ|oubleStruckK|oubleStruckL|oubleStruckM|oubleStruckN|oubleStruckNine|oubleStruckO|oubleStruckOne|oubleStruckP|oubleStruckQ|oubleStruckR|oubleStruckS|oubleStruckSeven|oubleStruckSix|oubleStruckT|oubleStruckThree|oubleStruckTwo|oubleStruckU|oubleStruckV|oubleStruckW|oubleStruckX|oubleStruckY|oubleStruckZ|oubleStruckZero|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|oubledGamma|oubledPi|ownArrow|ownArrowBar|ownArrowUpArrow|ownBreve|ownExclamation|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownPointer|ownQuestion|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:E(?:Acute|Bar|Cup|DoubleDot|Grave|Hacek|Hat|arth|ighthNote|lement|llipsis|mptyCircle|mptyDiamond|mptyDownTriangle|mptyRectangle|mptySet|mptySmallCircle|mptySmallSquare|mptySquare|mptyUpTriangle|mptyVerySmallSquare|nterKey|ntityEnd|ntityStart|psilon|qual|qualTilde|quilibrium|quivalent|rrorIndicator|scapeKey|ta|th|uro|xists|xponentialE))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:F(?:iLigature|illedCircle|illedDiamond|illedDownTriangle|illedLeftTriangle|illedRectangle|illedRightTriangle|illedSmallCircle|illedSmallSquare|illedSquare|illedUpTriangle|illedVerySmallSquare|inalSigma|irstPage|ivePointedStar|lLigature|lat|lorin|orAll|ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta|reakedSmiley|unction))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:G(?:amma|eminiSign|imel|othicA|othicB|othicC|othicCapitalA|othicCapitalB|othicCapitalC|othicCapitalD|othicCapitalE|othicCapitalF|othicCapitalG|othicCapitalH|othicCapitalI|othicCapitalJ|othicCapitalK|othicCapitalL|othicCapitalM|othicCapitalN|othicCapitalO|othicCapitalP|othicCapitalQ|othicCapitalR|othicCapitalS|othicCapitalT|othicCapitalU|othicCapitalV|othicCapitalW|othicCapitalX|othicCapitalY|othicCapitalZ|othicD|othicE|othicEight|othicF|othicFive|othicFour|othicG|othicH|othicI|othicJ|othicK|othicL|othicM|othicN|othicNine|othicO|othicOne|othicP|othicQ|othicR|othicS|othicSeven|othicSix|othicT|othicThree|othicTwo|othicU|othicV|othicW|othicX|othicY|othicZ|othicZero|rayCircle|raySquare|reaterEqual|reaterEqualLess|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterTilde))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:H(?:Bar|acek|appySmiley|eartSuit|ermitianConjugate|orizontalLine|umpDownHump|umpEqual|yphen))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:I(?:Acute|Cup|DoubleDot|Grave|Hat|maginaryI|maginaryJ|mplicitPlus|mplies|ndentingNewLine|nfinity|ntegral|ntersection|nvisibleApplication|nvisibleComma|nvisiblePostfixScriptBase|nvisiblePrefixScriptBase|nvisibleSpace|nvisibleTimes|ota))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:J(?:upiter))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:K(?:appa|ernelIcon|eyBar|oppa))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:L(?:Slash|ambda|astPage|eftAngleBracket|eftArrow|eftArrowBar|eftArrowRightArrow|eftAssociation|eftBracketingBar|eftCeiling|eftDoubleBracket|eftDoubleBracketingBar|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftFloor|eftGuillemet|eftModified|eftPointer|eftRightArrow|eftRightVector|eftSkeleton|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|eoSign|essEqual|essEqualGreater|essFullEqual|essGreater|essLess|essSlantEqual|essTilde|etterSpace|ibraSign|ightBulb|imit|ineSeparator|ongDash|ongEqual|ongLeftArrow|ongLeftRightArrow|ongRightArrow|owerLeftArrow|owerRightArrow))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:M(?:ars|athematicaIcon|axLimit|easuredAngle|ediumSpace|ercury|ho|icro|inLimit|inusPlus|od1Key|od2Key|u))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:N(?:Hacek|Tilde|and|atural|egativeMediumSpace|egativeThickSpace|egativeThinSpace|egativeVeryThinSpace|eptune|estedGreaterGreater|estedLessLess|eutralSmiley|ewLine|oBreak|onBreakingSpace|or|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqual|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|u|ull|umberSign))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:O(?:Acute|DoubleAcute|DoubleDot|E|Grave|Hat|Slash|Tilde|mega|micron|penCurlyDoubleQuote|penCurlyQuote|ptionKey|r|verBrace|verBracket|verParenthesis))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:P(?:aragraph|aragraphSeparator|artialD|ermutationProduct|erpendicular|hi|i|iecewise|iscesSign|laceholder|lusMinus|luto|recedes|recedesEqual|recedesSlantEqual|recedesTilde|rime|roduct|roportion|roportional|si))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Q(?:uarterNote))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:R(?:Hacek|awAmpersand|awAt|awBackquote|awBackslash|awColon|awComma|awDash|awDollar|awDot|awDoubleQuote|awEqual|awEscape|awExclamation|awGreater|awLeftBrace|awLeftBracket|awLeftParenthesis|awLess|awNumberSign|awPercent|awPlus|awQuestion|awQuote|awReturn|awRightBrace|awRightBracket|awRightParenthesis|awSemicolon|awSlash|awSpace|awStar|awTab|awTilde|awUnderscore|awVerticalBar|awWedge|egisteredTrademark|eturnIndicator|eturnKey|everseDoublePrime|everseElement|everseEquilibrium|eversePrime|everseUpEquilibrium|ho|ightAngle|ightAngleBracket|ightArrow|ightArrowBar|ightArrowLeftArrow|ightAssociation|ightBracketingBar|ightCeiling|ightDoubleBracket|ightDoubleBracketingBar|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightFloor|ightGuillemet|ightModified|ightPointer|ightSkeleton|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|oundImplies|oundSpaceIndicator|ule|uleDelayed|upee))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:S(?:Hacek|Z|adSmiley|agittariusSign|ampi|aturn|corpioSign|criptA|criptB|criptC|criptCapitalA|criptCapitalB|criptCapitalC|criptCapitalD|criptCapitalE|criptCapitalF|criptCapitalG|criptCapitalH|criptCapitalI|criptCapitalJ|criptCapitalK|criptCapitalL|criptCapitalM|criptCapitalN|criptCapitalO|criptCapitalP|criptCapitalQ|criptCapitalR|criptCapitalS|criptCapitalT|criptCapitalU|criptCapitalV|criptCapitalW|criptCapitalX|criptCapitalY|criptCapitalZ|criptD|criptDotlessI|criptDotlessJ|criptE|criptEight|criptF|criptFive|criptFour|criptG|criptH|criptI|criptJ|criptK|criptL|criptM|criptN|criptNine|criptO|criptOne|criptP|criptQ|criptR|criptS|criptSeven|criptSix|criptT|criptThree|criptTwo|criptU|criptV|criptW|criptX|criptY|criptZ|criptZero|ection|electionPlaceholder|hah|harp|hiftKey|hortDownArrow|hortLeftArrow|hortRightArrow|hortUpArrow|igma|ixPointedStar|keletonIndicator|mallCircle|paceIndicator|paceKey|padeSuit|panFromAbove|panFromBoth|panFromLeft|phericalAngle|qrt|quare|quareIntersection|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|tar|terling|tigma|ubset|ubsetEqual|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uchThat|um|uperset|upersetEqual|ystemEnterKey|ystemsModelDelay))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:T(?:Hacek|abKey|au|aurusSign|ensorProduct|ensorWedge|herefore|heta|hickSpace|hinSpace|horn|ilde|ildeEqual|ildeFullEqual|ildeTilde|imes|rademark|ranspose|ripleDot|woWayRule))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:U(?:Acute|DoubleAcute|DoubleDot|Grave|Hat|Ring|nderBrace|nderBracket|nderParenthesis|ndirectedEdge|nion|nionPlus|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pPointer|pTee|pTeeArrow|pperLeftArrow|pperRightArrow|psilon|ranus))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:V(?:ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ee|enus|erticalBar|erticalEllipsis|erticalLine|erticalSeparator|erticalTilde|eryThinSpace|irgoSign))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:W(?:arningSign|atchIcon|edge|eierstrassP|hiteBishop|hiteKing|hiteKnight|hitePawn|hiteQueen|hiteRook|olf|olframLanguageLogo|olframLanguageLogoCircle))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:X(?:i|nor|or))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Y(?:Acute|DoubleDot|en))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Z(?:Hacek|eta))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:[$[:alpha:]][$[:alnum:]]*)?\\]?",name:"invalid.illegal.BadLongName"},{match:"\\\\(?:[$[:alpha:]][$[:alnum:]]*)\\]",name:"invalid.illegal.BadLongName"},{match:"\\\\:\\h{4}",name:"donothighlight.constant.character.escape"},{match:"\\\\:\\h{1,3}",name:"invalid.illegal"},{match:"\\\\\\.\\h{2}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\.\\h{1}",name:"invalid.illegal"},{match:"\\\\\\|0\\h{5}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\|10\\h{4}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\|\\h{1,6}",name:"invalid.illegal"},{match:"\\\\[0-7]{3}",name:"donothighlight.constant.character.escape"},{match:"\\\\[0-7]{1,2}",name:"invalid.illegal"},{match:"\\\\$",name:"donothighlight.constant.character.escape punctuation.separator.continuation"},{match:"\\\\.",name:"invalid.illegal"}]},expressions:{patterns:[{include:"#comments"},{include:"#escaped_character_symbols"},{include:"#escaped_characters"},{include:"#out"},{include:"#slot"},{include:"#literals"},{include:"#groups"},{include:"#stringifying-operators"},{include:"#operators"},{include:"#pattern-operators"},{include:"#symbols"},{match:"(?:!|&|'|\\*|\\+|,|-|\\.|/|:|;|<|=|>|\\?|@|\\\\|\\^|\\||~)",name:"invalid.illegal"}]},groups:{patterns:[{match:"\\\\\\)",name:"invalid.illegal.stray-linearsyntaxparens-end.wolfram"},{match:"\\)",name:"invalid.illegal.stray-parens-end.wolfram"},{match:"\\[\\s+\\[",name:"invalid.whitespace.Part.wolfram"},{match:"\\]\\s+\\]",name:"invalid.whitespace.Part.wolfram"},{match:"\\]\\]",name:"invalid.illegal.stray-parts-end.wolfram"},{match:"\\]",name:"invalid.illegal.stray-brackets-end.wolfram"},{match:"\\}",name:"invalid.illegal.stray-braces-end.wolfram"},{match:"\\|>",name:"invalid.illegal.stray-associations-end.wolfram"},{include:"#linearsyntaxparen-group"},{include:"#paren-group"},{include:"#part-group"},{include:"#bracket-group"},{include:"#brace-group"},{include:"#association-group"}]},"linearsyntaxparen-group":{begin:"\\\\\\(",beginCaptures:{0:{name:"punctuation.section.linearsyntaxparens.begin.wolfram"}},end:"\\\\\\)",endCaptures:{0:{name:"punctuation.section.linearsyntaxparens.end.wolfram"}},name:"meta.linearsyntaxparens.wolfram",patterns:[{include:"#expressions"}]},literals:{patterns:[{include:"#numbers"},{include:"#strings"}]},main:{patterns:[{include:"#shebang"},{include:"#simple-toplevel-definitions"},{include:"#expressions"}]},numbers:{patterns:[{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)``",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)``",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)``",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)``",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)",name:"constant.numeric.wolfram"}]},operators:{patterns:[{match:"(?:\\^:=)",name:"keyword.operator.assignment.UpSetDelayed.wolfram"},{match:"(?:\\^:)",name:"invalid.illegal"},{match:"(?:===)",name:"keyword.operator.SameQ.wolfram"},{match:"(?:=!=|\\.\\.\\.|//\\.|@@@|<->|//@)",name:"keyword.operator.wolfram"},{match:"(?:\\|->)",name:"keyword.operator.Function.wolfram"},{match:"(?://=)",name:"keyword.operator.assignment.ApplyTo.wolfram"},{match:"(?:--|\\+\\+)",name:"keyword.operator.arithmetic.wolfram"},{match:"(?:\\|\\||&&)",name:"keyword.operator.logical.wolfram"},{match:"(?::=)",name:"keyword.operator.assignment.SetDelayed.wolfram"},{match:"(?:\\^=)",name:"keyword.operator.assignment.UpSet.wolfram"},{match:"(?:/=)",name:"keyword.operator.assignment.DivideBy.wolfram"},{match:"(?:\\+=)",name:"keyword.operator.assignment.AddTo.wolfram"},{match:"(?:=\\s+\\.(?![0-9]))",name:"invalid.whitespace.Unset.wolfram"},{match:"(?:=\\.(?![0-9]))",name:"keyword.operator.assignment.Unset.wolfram"},{match:"(?:\\*=)",name:"keyword.operator.assignment.TimesBy.wolfram"},{match:"(?:-=)",name:"keyword.operator.assignment.SubtractFrom.wolfram"},{match:"(?:/:)",name:"keyword.operator.assignment.Tag.wolfram"},{match:"(?:;;)$",name:"invalid.endofline.Span.wolfram"},{match:"(?:;;)",name:"keyword.operator.Span.wolfram"},{match:"(?:!=)",name:"keyword.operator.Unequal.wolfram"},{match:"(?:==)",name:"keyword.operator.Equal.wolfram"},{match:"(?:!!)",name:"keyword.operator.BangBang.wolfram"},{match:"(?:\\?\\?)",name:"invalid.illegal.Information.wolfram"},{match:"(?:<=|>=|\\.\\.|:>|<>|->|/@|/;|/\\.|//|/\\*|@@|@\\*|~~|\\*\\*)",name:"keyword.operator.wolfram"},{match:"(?:-|\\+|/|\\*)",name:"keyword.operator.arithmetic.wolfram"},{match:"(?:=)",name:"keyword.operator.assignment.Set.wolfram"},{match:"(?:<)",name:"keyword.operator.Less.wolfram"},{match:"(?:\\|)",name:"keyword.operator.Alternatives.wolfram"},{match:"(?:!)",name:"keyword.operator.Bang.wolfram"},{match:"(?:;)",name:"keyword.operator.CompoundExpression.wolfram punctuation.terminator"},{match:"(?:,)",name:"keyword.operator.Comma.wolfram punctuation.separator"},{match:"^(?:\\?)",name:"invalid.startofline.Information.wolfram"},{match:"(?:\\?)",name:"keyword.operator.PatternTest.wolfram"},{match:"(?:')",name:"keyword.operator.Derivative.wolfram"},{match:"(?:&)",name:"keyword.operator.Function.wolfram"},{match:"(?:>|\\^|\\.|:|@|~)",name:"keyword.operator.wolfram"}]},out:{patterns:[{match:"%\\d+",name:"keyword.other.Out.wolfram"},{match:"%+",name:"keyword.other.Out.wolfram"}]},"paren-group":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.parens.begin.wolfram"}},end:"\\)",endCaptures:{0:{name:"punctuation.section.parens.end.wolfram"}},name:"meta.parens.wolfram",patterns:[{include:"#expressions"}]},"part-group":{begin:"\\[\\[",beginCaptures:{0:{name:"punctuation.section.parts.begin.wolfram"}},end:"\\]\\]",endCaptures:{0:{name:"punctuation.section.parts.end.wolfram"}},name:"meta.parts.wolfram",patterns:[{include:"#expressions"}]},"pattern-operators":{patterns:[{match:"___",name:"keyword.operator.BlankNullSequence.wolfram"},{match:"__",name:"keyword.operator.BlankSequence.wolfram"},{match:"_\\.",name:"keyword.operator.Optional.wolfram"},{match:"_",name:"keyword.operator.Blank.wolfram"}]},shebang:{captures:{1:{name:"punctuation.definition.comment.wolfram"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.wolfram"},"simple-toplevel-definitions":{patterns:[{captures:{1:{name:"support.function.builtin.wolfram"},2:{name:"punctuation.section.brackets.begin.wolfram"},3:{name:"meta.function.wolfram entity.name.Context.wolfram"},4:{name:"meta.function.wolfram entity.name.function.wolfram"},5:{name:"punctuation.section.brackets.end.wolfram"},6:{name:"keyword.operator.assignment.wolfram"}},match:"^\\s*(Attributes|Format|Options)\\s*(\\[)(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(\\])\\s*(:=|=(?!!|=|\\.))"},{captures:{1:{name:"meta.function.wolfram entity.name.Context.wolfram"},2:{name:"meta.function.wolfram entity.name.function.wolfram"}},match:"^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(\\[(?>[^\\[\\]]+|\\g<-1>)*\\])\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))"},{captures:{1:{name:"meta.function.wolfram entity.name.Context.wolfram"},2:{name:"meta.function.wolfram entity.name.constant.wolfram"}},match:"^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))"}]},slot:{patterns:[{match:"#[[:alpha:]][[:alnum:]]*",name:"keyword.other.Slot.wolfram"},{match:"##\\d*",name:"keyword.other.SlotSequence.wolfram"},{match:"#\\d*",name:"keyword.other.Slot.wolfram"}]},string_escaped_characters:{patterns:[{match:'\\\\[bfnrt\\"\\\\<>]',name:"donothighlight.constant.character.escape"},{include:"#escaped_characters"}]},"stringifying-operators":{patterns:[{captures:{1:{name:"keyword.operator.PutAppend.wolfram"}},match:'(>>>)(?=\\s*")'},{captures:{1:{name:"keyword.operator.PutAppend.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(>>>)\\s*(\\w+)"},{match:">>>",name:"invalid.illegal"},{captures:{1:{name:"keyword.operator.MessageName.wolfram"}},match:'(::)(?=\\s*")'},{captures:{1:{name:"keyword.operator.MessageName.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(::)([[:alpha:]][[:alnum:]]*)"},{match:"::",name:"invalid.illegal"},{captures:{1:{name:"keyword.operator.Get.wolfram"}},match:'(<<)(?=\\s*")'},{captures:{1:{name:"keyword.operator.Get.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(<<)\\s*([`[:alpha:]][`[:alnum:]]*)"},{match:"<<",name:"invalid.illegal"},{captures:{1:{name:"keyword.operator.Put.wolfram"}},match:'(>>)(?=\\s*")'},{captures:{1:{name:"keyword.operator.Put.wolfram"},2:{name:"string.unquoted.wolfram"}},match:"(>>)\\s*(\\w*)"},{match:">>",name:"invalid.illegal"}]},strings:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double",patterns:[{include:"#string_escaped_characters"}]}]},symbols:{patterns:[{match:"System`(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:J(?:oined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Q(?:uartics))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:K(?:hinchin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Y(?:ellow|esterday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:O(?:penTemporary))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:E(?:cho|xit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:I(?:n|nString))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:O(?:ut))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:P(?:rint))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:Q(?:uit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:[$[:alpha:]][$[:alnum:]]*)(?![`$[:alnum:]])",name:"invalid.illegal.system.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+",name:"symbol.unrecognized.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)`",name:"invalid.illegal.wolfram"},{match:"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+",name:"symbol.unrecognized.wolfram"},{match:"`",name:"invalid.illegal.wolfram"},{match:"(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:J(?:oined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Q(?:uartics))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:K(?:hinchin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Y(?:ellow|esterday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:O(?:penTemporary))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:A(?:llFalse|nyFalse))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:B(?:oolean))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:C(?:loudbase|omplexQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:D(?:ataSet))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:E(?:xpandFilename|xportPacket))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:F(?:ailed|alseQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:I(?:nterpolationFunction|nterpolationPolynomial))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:M(?:atch))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:O(?:ptionPattern|ptionsQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:R(?:ationalQ|ealQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:S(?:tringMatch|ymbolQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:U(?:nSameQ|rlExecute))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:\\$(?:PathNameSeparator|RegisteredUsername))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:E(?:cho|xit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:I(?:n|nString))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:O(?:ut))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:P(?:rint))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:Q(?:uit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)",name:"symbol.unrecognized.wolfram"}]}},n="source.wolfram",r={displayName:e,fileTypes:t,name:a,patterns:i,repository:o,scopeName:n};export{r as default,e as displayName,t as fileTypes,a as name,i as patterns,o as repository,n as scopeName}; diff --git a/lib/dist/grammar/xml.mjs b/lib/dist/grammar/xml.mjs new file mode 100644 index 0000000..87e3e45 --- /dev/null +++ b/lib/dist/grammar/xml.mjs @@ -0,0 +1 @@ +var e="XML",n="xml",t=[{begin:"(<\\?)\\s*([-_a-zA-Z0-9]+)",captures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"entity.name.tag.xml"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml",patterns:[{match:" ([a-zA-Z-]+)",name:"entity.other.attribute-name.xml"},{include:"#doublequotedString"},{include:"#singlequotedString"}]},{begin:"(<!)(DOCTYPE)\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)",captures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"keyword.other.doctype.xml"},3:{name:"variable.language.documentroot.xml"}},end:"\\s*(>)",name:"meta.tag.sgml.doctype.xml",patterns:[{include:"#internalSubset"}]},{include:"#comments"},{begin:"(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?></\\2>)",beginCaptures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"entity.name.tag.xml"},3:{name:"entity.name.tag.namespace.xml"},4:{name:"punctuation.separator.namespace.xml"},5:{name:"entity.name.tag.localname.xml"}},end:"(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)",endCaptures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"punctuation.definition.tag.xml"},3:{name:"entity.name.tag.xml"},4:{name:"entity.name.tag.namespace.xml"},5:{name:"punctuation.separator.namespace.xml"},6:{name:"entity.name.tag.localname.xml"},7:{name:"punctuation.definition.tag.xml"}},name:"meta.tag.no-content.xml",patterns:[{include:"#tagStuff"}]},{begin:"(</?)(?:([-\\w\\.]+)((:)))?([-\\w\\.:]+)",captures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"entity.name.tag.namespace.xml"},3:{name:"entity.name.tag.xml"},4:{name:"punctuation.separator.namespace.xml"},5:{name:"entity.name.tag.localname.xml"}},end:"(/?>)",name:"meta.tag.xml",patterns:[{include:"#tagStuff"}]},{include:"#entity"},{include:"#bare-ampersand"},{begin:"<%@",beginCaptures:{0:{name:"punctuation.section.embedded.begin.xml"}},end:"%>",endCaptures:{0:{name:"punctuation.section.embedded.end.xml"}},name:"source.java-props.embedded.xml",patterns:[{match:"page|include|taglib",name:"keyword.other.page-props.xml"}]},{begin:"<%[!=]?(?!--)",beginCaptures:{0:{name:"punctuation.section.embedded.begin.xml"}},end:"(?!--)%>",endCaptures:{0:{name:"punctuation.section.embedded.end.xml"}},name:"source.java.embedded.xml",patterns:[{include:"source.java"}]},{begin:"<!\\[CDATA\\[",beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:"]]>",endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.unquoted.cdata.xml"}],a={EntityDecl:{begin:"(<!)(ENTITY)\\s+(%\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?",captures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"keyword.other.entity.xml"},3:{name:"punctuation.definition.entity.xml"},4:{name:"variable.language.entity.xml"},5:{name:"keyword.other.entitytype.xml"}},end:"(>)",patterns:[{include:"#doublequotedString"},{include:"#singlequotedString"}]},"bare-ampersand":{match:"&",name:"invalid.illegal.bad-ampersand.xml"},comments:{patterns:[{begin:"<%--",captures:{0:{name:"punctuation.definition.comment.xml"},end:"--%>",name:"comment.block.xml"}},{begin:"\x3c!--",captures:{0:{name:"punctuation.definition.comment.xml"}},end:"--\x3e",name:"comment.block.xml",patterns:[{begin:"--(?!>)",captures:{0:{name:"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},doublequotedString:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml",patterns:[{include:"#entity"},{include:"#bare-ampersand"}]},entity:{captures:{1:{name:"punctuation.definition.constant.xml"},3:{name:"punctuation.definition.constant.xml"}},match:"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.xml"},internalSubset:{begin:"(\\[)",captures:{1:{name:"punctuation.definition.constant.xml"}},end:"(\\])",name:"meta.internalsubset.xml",patterns:[{include:"#EntityDecl"},{include:"#parameterEntity"},{include:"#comments"}]},parameterEntity:{captures:{1:{name:"punctuation.definition.constant.xml"},3:{name:"punctuation.definition.constant.xml"}},match:"(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)",name:"constant.character.parameter-entity.xml"},singlequotedString:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml",patterns:[{include:"#entity"},{include:"#bare-ampersand"}]},tagStuff:{patterns:[{captures:{1:{name:"entity.other.attribute-name.namespace.xml"},2:{name:"entity.other.attribute-name.xml"},3:{name:"punctuation.separator.namespace.xml"},4:{name:"entity.other.attribute-name.localname.xml"}},match:"(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*="},{include:"#doublequotedString"},{include:"#singlequotedString"}]}},i="text.xml",m={displayName:"XML",name:"xml",patterns:t,repository:a,scopeName:i};export{m as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/xsl.mjs b/lib/dist/grammar/xsl.mjs new file mode 100644 index 0000000..ffed688 --- /dev/null +++ b/lib/dist/grammar/xsl.mjs @@ -0,0 +1 @@ +var e="XSL",n="xsl",t=[{begin:"(<)(xsl)((:))(template)",captures:{1:{name:"punctuation.definition.tag.xml"},2:{name:"entity.name.tag.namespace.xml"},3:{name:"entity.name.tag.xml"},4:{name:"punctuation.separator.namespace.xml"},5:{name:"entity.name.tag.localname.xml"}},end:"(>)",name:"meta.tag.xml.template",patterns:[{captures:{1:{name:"entity.other.attribute-name.namespace.xml"},2:{name:"entity.other.attribute-name.xml"},3:{name:"punctuation.separator.namespace.xml"},4:{name:"entity.other.attribute-name.localname.xml"}},match:" (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)"},{include:"#doublequotedString"},{include:"#singlequotedString"}]},{include:"text.xml"}],a={doublequotedString:{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml"},singlequotedString:{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.xml"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml"}},i="text.xml.xsl",m={displayName:"XSL",name:"xsl",patterns:t,repository:a,scopeName:i};export{m as default,e as displayName,n as name,t as patterns,a as repository,i as scopeName}; diff --git a/lib/dist/grammar/yaml.mjs b/lib/dist/grammar/yaml.mjs new file mode 100644 index 0000000..f3c9349 --- /dev/null +++ b/lib/dist/grammar/yaml.mjs @@ -0,0 +1 @@ +var n="YAML",e=["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],a="^%YAML( ?1.\\d+)?",t="yaml",l=[{include:"#comment"},{include:"#property"},{include:"#directive"},{match:"^---",name:"entity.other.document.begin.yaml"},{match:"^\\.{3}",name:"entity.other.document.end.yaml"},{include:"#node"}],i={"block-collection":{patterns:[{include:"#block-sequence"},{include:"#block-mapping"}]},"block-mapping":{patterns:[{include:"#block-pair"}]},"block-node":{patterns:[{include:"#prototype"},{include:"#block-scalar"},{include:"#block-collection"},{include:"#flow-scalar-plain-out"},{include:"#flow-node"}]},"block-pair":{patterns:[{begin:"\\?",beginCaptures:{1:{name:"punctuation.definition.key-value.begin.yaml"}},end:"(?=\\?)|^ *(:)|(:)",endCaptures:{1:{name:"punctuation.separator.key-value.mapping.yaml"},2:{name:"invalid.illegal.expected-newline.yaml"}},name:"meta.block-mapping.yaml",patterns:[{include:"#block-node"}]},{begin:"(?x)\n(?=\n(?x:\n[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n| [?:-] \\S\n)\n(\n[^\\s:]\n| : \\S\n| \\s+ (?![#\\s])\n)*\n\\s*\n:\n(\\s|$)\n)\n",end:"(?x)\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n)\n",patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:"(?x)\n[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n| [?:-] \\S\n",beginCaptures:{0:{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:"(?x)\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n)\n",name:"string.unquoted.plain.out.yaml"}]},{match:":(?=\\s|$)",name:"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{begin:"(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)",beginCaptures:{1:{name:"keyword.control.flow.block-scalar.literal.yaml"},2:{name:"keyword.control.flow.block-scalar.folded.yaml"},3:{name:"constant.numeric.indentation-indicator.yaml"},4:{name:"storage.modifier.chomping-indicator.yaml"},5:{patterns:[{include:"#comment"},{match:".+",name:"invalid.illegal.expected-comment-or-newline.yaml"}]}},end:"^(?=\\S)|(?!\\G)",patterns:[{begin:"^([ ]+)(?! )",end:"^(?!\\1|\\s*$)",name:"string.unquoted.block.yaml"}]},"block-sequence":{match:"(-)(?!\\S)",name:"punctuation.definition.block.sequence.item.yaml"},comment:{begin:"(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.yaml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.yaml"}},end:"\\n",name:"comment.line.number-sign.yaml"}]},directive:{begin:"^%",beginCaptures:{0:{name:"punctuation.definition.directive.begin.yaml"}},end:"(?=$|[ \\t]+($|#))",name:"meta.directive.yaml",patterns:[{captures:{1:{name:"keyword.other.directive.yaml.yaml"},2:{name:"constant.numeric.yaml-version.yaml"}},match:"\\G(YAML)[ \\t]+(\\d+\\.\\d+)"},{captures:{1:{name:"keyword.other.directive.tag.yaml"},2:{name:"storage.type.tag-handle.yaml"},3:{name:"support.type.tag-prefix.yaml"}},match:"(?x)\n\\G\n(TAG)\n(?:[ \\t]+\n((?:!(?:[0-9A-Za-z\\-]*!)?))\n(?:[ \\t]+ (\n! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n| (?![,!\\[\\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n)\n)?\n)?\n"},{captures:{1:{name:"support.other.directive.reserved.yaml"},2:{name:"string.unquoted.directive-name.yaml"},3:{name:"string.unquoted.directive-parameter.yaml"}},match:"(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?"},{match:"\\S+",name:"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{captures:{1:{name:"keyword.control.flow.alias.yaml"},2:{name:"punctuation.definition.alias.yaml"},3:{name:"variable.other.alias.yaml"},4:{name:"invalid.illegal.character.anchor.yaml"}},match:"((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?"},"flow-collection":{patterns:[{include:"#flow-sequence"},{include:"#flow-mapping"}]},"flow-mapping":{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.mapping.begin.yaml"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.mapping.end.yaml"}},name:"meta.flow-mapping.yaml",patterns:[{include:"#prototype"},{match:",",name:"punctuation.separator.mapping.yaml"},{include:"#flow-pair"}]},"flow-node":{patterns:[{include:"#prototype"},{include:"#flow-alias"},{include:"#flow-collection"},{include:"#flow-scalar"}]},"flow-pair":{patterns:[{begin:"\\?",beginCaptures:{0:{name:"punctuation.definition.key-value.begin.yaml"}},end:"(?=[},\\]])",name:"meta.flow-pair.explicit.yaml",patterns:[{include:"#prototype"},{include:"#flow-pair"},{include:"#flow-node"},{begin:":(?=\\s|$|[\\[\\]{},])",beginCaptures:{0:{name:"punctuation.separator.key-value.mapping.yaml"}},end:"(?=[},\\]])",patterns:[{include:"#flow-value"}]}]},{begin:"(?x)\n(?=\n(?:\n[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n| [?:-] [^\\s[\\[\\]{},]]\n)\n(\n[^\\s:[\\[\\]{},]]\n| : [^\\s[\\[\\]{},]]\n| \\s+ (?![#\\s])\n)*\n\\s*\n:\n(\\s|$)\n)\n",end:"(?x)\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n| \\s* : [\\[\\]{},]\n| \\s* [\\[\\]{},]\n)\n",name:"meta.flow-pair.key.yaml",patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:"(?x)\n[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n| [?:-] [^\\s[\\[\\]{},]]\n",beginCaptures:{0:{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:"(?x)\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n| \\s* : [\\[\\]{},]\n| \\s* [\\[\\]{},]\n)\n",name:"string.unquoted.plain.in.yaml"}]},{include:"#flow-node"},{begin:":(?=\\s|$|[\\[\\]{},])",captures:{0:{name:"punctuation.separator.key-value.mapping.yaml"}},end:"(?=[},\\]])",name:"meta.flow-pair.yaml",patterns:[{include:"#flow-value"}]}]},"flow-scalar":{patterns:[{include:"#flow-scalar-double-quoted"},{include:"#flow-scalar-single-quoted"},{include:"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.yaml"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.yaml"}},name:"string.quoted.double.yaml",patterns:[{match:'\\\\([0abtnvfre "/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})',name:"constant.character.escape.yaml"},{match:"\\\\\\n",name:"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:"(?x)\n[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n| [?:-] [^\\s[\\[\\]{},]]\n",end:"(?x)\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n| \\s* : [\\[\\]{},]\n| \\s* [\\[\\]{},]\n)\n",name:"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{patterns:[{captures:{1:{name:"constant.language.null.yaml"},2:{name:"constant.language.boolean.yaml"},3:{name:"constant.numeric.integer.yaml"},4:{name:"constant.numeric.float.yaml"},5:{name:"constant.other.timestamp.yaml"},6:{name:"constant.language.value.yaml"},7:{name:"constant.language.merge.yaml"}},match:"(?x)\n(?x:\n(null|Null|NULL|~)\n| (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n| (\n(?:\n[-+]? 0b [0-1_]+\n| [-+]? 0 [0-7_]+\n| [-+]? (?: 0|[1-9][0-9_]*)\n| [-+]? 0x [0-9a-fA-F_]+\n| [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+\n)\n)\n| (\n(?x:\n[-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)?\n| [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]*\n| [-+]? \\. (?: inf|Inf|INF)\n| \\. (?: nan|NaN|NAN)\n)\n)\n| (\n(?x:\n\\d{4} - \\d{2} - \\d{2}\n| \\d{4}\n- \\d{1,2}\n- \\d{1,2}\n(?: [Tt] | [ \\t]+) \\d{1,2}\n: \\d{2}\n: \\d{2}\n(?: \\.\\d*)?\n(?:\n(?:[ \\t]*) Z\n| [-+] \\d{1,2} (?: :\\d{1,2})?\n)?\n)\n)\n| (=)\n| (<<)\n)\n(?:\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n| \\s* : [\\[\\]{},]\n| \\s* [\\[\\]{},]\n)\n)\n"}]},"flow-scalar-plain-out":{patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:"(?x)\n[^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n| [?:-] \\S\n",end:"(?x)\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n)\n",name:"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{patterns:[{captures:{1:{name:"constant.language.null.yaml"},2:{name:"constant.language.boolean.yaml"},3:{name:"constant.numeric.integer.yaml"},4:{name:"constant.numeric.float.yaml"},5:{name:"constant.other.timestamp.yaml"},6:{name:"constant.language.value.yaml"},7:{name:"constant.language.merge.yaml"}},match:"(?x)\n(?x:\n(null|Null|NULL|~)\n| (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n| (\n(?:\n[-+]? 0b [0-1_]+\n| [-+]? 0 [0-7_]+\n| [-+]? (?: 0|[1-9][0-9_]*)\n| [-+]? 0x [0-9a-fA-F_]+\n| [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+\n)\n)\n| (\n(?x:\n[-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)?\n| [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]*\n| [-+]? \\. (?: inf|Inf|INF)\n| \\. (?: nan|NaN|NAN)\n)\n)\n| (\n(?x:\n\\d{4} - \\d{2} - \\d{2}\n| \\d{4}\n- \\d{1,2}\n- \\d{1,2}\n(?: [Tt] | [ \\t]+) \\d{1,2}\n: \\d{2}\n: \\d{2}\n(?: \\.\\d*)?\n(?:\n(?:[ \\t]*) Z\n| [-+] \\d{1,2} (?: :\\d{1,2})?\n)?\n)\n)\n| (=)\n| (<<)\n)\n(?x:\n(?=\n\\s* $\n| \\s+ \\#\n| \\s* : (\\s|$)\n)\n)\n"}]},"flow-scalar-single-quoted":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.yaml"}},end:"'(?!')",endCaptures:{0:{name:"punctuation.definition.string.end.yaml"}},name:"string.quoted.single.yaml",patterns:[{match:"''",name:"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{begin:"\\[",beginCaptures:{0:{name:"punctuation.definition.sequence.begin.yaml"}},end:"\\]",endCaptures:{0:{name:"punctuation.definition.sequence.end.yaml"}},name:"meta.flow-sequence.yaml",patterns:[{include:"#prototype"},{match:",",name:"punctuation.separator.sequence.yaml"},{include:"#flow-pair"},{include:"#flow-node"}]},"flow-value":{patterns:[{begin:"\\G(?![},\\]])",end:"(?=[},\\]])",name:"meta.flow-pair.value.yaml",patterns:[{include:"#flow-node"}]}]},node:{patterns:[{include:"#block-node"}]},property:{begin:"(?=!|&)",end:"(?!\\G)",name:"meta.property.yaml",patterns:[{captures:{1:{name:"keyword.control.property.anchor.yaml"},2:{name:"punctuation.definition.anchor.yaml"},3:{name:"entity.name.type.anchor.yaml"},4:{name:"invalid.illegal.character.anchor.yaml"}},match:"\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?"},{match:"(?x)\n\\G\n(?:\n! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n| (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n| !\n)\n(?=\\ |\\t|$)\n",name:"storage.type.tag-handle.yaml"},{match:"\\S+",name:"invalid.illegal.tag-handle.yaml"}]},prototype:{patterns:[{include:"#comment"},{include:"#property"}]}},m="source.yaml",o={displayName:n,fileTypes:e,firstLineMatch:a,name:t,patterns:l,repository:i,scopeName:m};export{o as default,n as displayName,e as fileTypes,a as firstLineMatch,t as name,l as patterns,i as repository,m as scopeName}; diff --git a/lib/dist/grammar/zenscript.mjs b/lib/dist/grammar/zenscript.mjs new file mode 100644 index 0000000..472c3cc --- /dev/null +++ b/lib/dist/grammar/zenscript.mjs @@ -0,0 +1 @@ +var e="ZenScript",t=["zs"],n="zenscript",a=[{comment:"numbers",match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b",name:"constant.numeric.zenscript"},{comment:"prefixedNumbers",match:"\\b\\-?(0b|0x|0o|0B|0X|0O)(0|[1-9a-fA-F][0-9a-fA-F_]*)[a-zA-Z_]*\\b",name:"constant.numeric.zenscript"},{include:"#code"},{comment:"arrays",match:"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)",name:"storage.type.object.array.zenscript"}],c={brackets:{patterns:[{captures:{1:{name:"keyword.control.zenscript"},2:{name:"keyword.other.zenscript"},3:{name:"keyword.control.zenscript"},4:{name:"variable.other.zenscript"},5:{name:"keyword.control.zenscript"},6:{name:"constant.numeric.zenscript"},7:{name:"keyword.control.zenscript"}},comment:"items and blocks",match:"(<)\\b(.*?)(:(.*?(:(\\*|\\d+)?)?)?)(>)",name:"keyword.other.zenscript"}]},class:{captures:{1:{name:"storage.type.zenscript"},2:{name:"entity.name.type.class.zenscript"}},comment:"class",match:"(zenClass)\\s+(\\w+)",name:"meta.class.zenscript"},code:{patterns:[{include:"#class"},{include:"#functions"},{include:"#dots"},{include:"#quotes"},{include:"#brackets"},{include:"#comments"},{include:"#var"},{include:"#keywords"},{include:"#constants"},{include:"#operators"}]},comments:{patterns:[{comment:"inline comments",match:"//[^\n]*",name:"comment.line.double=slash"},{begin:"\\/\\*",beginCaptures:{0:{name:"comment.block"}},comment:"block comments",end:"\\*\\/",endCaptures:{0:{name:"comment.block"}},name:"comment.block"}]},dots:{captures:{1:{name:"storage.type.zenscript"},2:{name:"keyword.control.zenscript"},5:{name:"keyword.control.zenscript"}},comment:"dots",match:"\\b(\\w+)(\\.)(\\w+)((\\.)(\\w+))*",name:"plain.text.zenscript"},functions:{captures:{0:{name:"storage.type.function.zenscript"},1:{name:"entity.name.function.zenscript"}},comment:"functions",match:"function\\s+([A-Za-z_$][\\w$]*)\\s*(?=\\()",name:"meta.function.zenscript"},keywords:{patterns:[{comment:"statement keywords",match:"\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\b",name:"keyword.control.zenscript"},{comment:"storage keywords",match:"\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\b",name:"storage.type.zenscript"},{comment:"modifier keywords",match:"\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\b",name:"storage.modifier.zenscript"},{comment:"annotation keywords",match:"\\b(Native|Precondition)\\b",name:"entity.other.attribute-name"},{comment:"language keywords",match:"\\b(null|true|false)\\b",name:"constant.language"}]},operators:{patterns:[{comment:"math operators",match:"\\b(\\.|\\.\\.|\\.\\.\\.|,|\\+|\\+=|\\+\\+|-|-=|--|~|~=|\\*|\\*=|/|/=|%|%=|\\||\\|=|\\|\\||&|&=|&&|\\^|\\^=|\\?|\\?\\.|\\?\\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\\$|`)\\b",name:"keyword.control"},{comment:"colons",match:"\\b(;|:)\\b",name:"keyword.control"}]},quotes:{patterns:[{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.zenscript"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.zenscript"}},name:"string.quoted.double.zenscript",patterns:[{match:"\\\\.",name:"constant.character.escape.zenscript"}]},{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.zenscript"}},end:"'",endCaptures:{0:{name:"punctuation.definition.string.end.zenscript"}},name:"string.quoted.single.zenscript",patterns:[{match:"\\\\.",name:"constant.character.escape.zenscript"}]}]},var:{comment:"var",match:"\\b(val|var)\\b",name:"storage.type"}},r="source.zenscript",s={displayName:e,fileTypes:t,name:n,patterns:a,repository:c,scopeName:r};export{s as default,e as displayName,t as fileTypes,n as name,a as patterns,c as repository,r as scopeName}; diff --git a/lib/dist/grammar/zig.mjs b/lib/dist/grammar/zig.mjs new file mode 100644 index 0000000..0aaed4c --- /dev/null +++ b/lib/dist/grammar/zig.mjs @@ -0,0 +1 @@ +var e="Zig",n=["zig","zon"],t="zig",a=[{include:"#comments"},{include:"#strings"},{include:"#keywords"},{include:"#operators"},{include:"#punctuation"},{include:"#numbers"},{include:"#support"},{include:"#variables"}],i={commentContents:{patterns:[{match:"\\b(TODO|FIXME|XXX|NOTE)\\b:?",name:"keyword.todo.zig"}]},comments:{patterns:[{begin:"//[!/](?=[^/])",end:"$",name:"comment.line.documentation.zig",patterns:[{include:"#commentContents"}]},{begin:"//",end:"$",name:"comment.line.double-slash.zig",patterns:[{include:"#commentContents"}]}]},keywords:{patterns:[{match:"\\binline\\b(?!\\s*\\bfn\\b)",name:"keyword.control.repeat.zig"},{match:"\\b(while|for)\\b",name:"keyword.control.repeat.zig"},{match:"\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\b",name:"keyword.storage.zig"},{match:"\\b(struct|enum|union|opaque)\\b",name:"keyword.structure.zig"},{match:"\\b(asm|unreachable)\\b",name:"keyword.statement.zig"},{match:"\\b(break|return|continue|defer|errdefer)\\b",name:"keyword.control.flow.zig"},{match:"\\b(await|resume|suspend|async|nosuspend)\\b",name:"keyword.control.async.zig"},{match:"\\b(try|catch)\\b",name:"keyword.control.trycatch.zig"},{match:"\\b(if|else|switch|orelse)\\b",name:"keyword.control.conditional.zig"},{match:"\\b(null|undefined)\\b",name:"keyword.constant.default.zig"},{match:"\\b(true|false)\\b",name:"keyword.constant.bool.zig"},{match:"\\b(usingnamespace|test|and|or)\\b",name:"keyword.default.zig"},{match:"\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\b",name:"keyword.type.zig"},{match:"\\b(f16|f32|f64|f80|f128|u\\d+|i\\d+|isize|usize|comptime_int|comptime_float)\\b",name:"keyword.type.integer.zig"},{match:"\\b(c_char|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble)\\b",name:"keyword.type.c.zig"}]},numbers:{patterns:[{match:"\\b0x[0-9a-fA-F][0-9a-fA-F_]*(\\.[0-9a-fA-F][0-9a-fA-F_]*)?([pP][+-]?[0-9a-fA-F_]+)?\\b",name:"constant.numeric.hexfloat.zig"},{match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?\\b",name:"constant.numeric.float.zig"},{match:"\\b[0-9][0-9_]*\\b",name:"constant.numeric.decimal.zig"},{match:"\\b0x[a-fA-F0-9_]+\\b",name:"constant.numeric.hexadecimal.zig"},{match:"\\b0o[0-7_]+\\b",name:"constant.numeric.octal.zig"},{match:"\\b0b[01_]+\\b",name:"constant.numeric.binary.zig"},{match:"\\b[0-9](([eEpP][+-])|[0-9a-zA-Z_])*(\\.(([eEpP][+-])|[0-9a-zA-Z_])*)?([eEpP][+-])?[0-9a-zA-Z_]*\\b",name:"constant.numeric.invalid.zig"}]},operators:{patterns:[{match:"(?<=\\[)\\*c(?=\\])",name:"keyword.operator.c-pointer.zig"},{match:"(\\b(and|or)\\b)|(==|!=|<=|>=|<|>)",name:"keyword.operator.comparison.zig"},{match:"(-%?|\\+%?|\\*%?|/|%)=?",name:"keyword.operator.arithmetic.zig"},{match:"(<<%?|>>|!|~|&|\\^|\\|)=?",name:"keyword.operator.bitwise.zig"},{match:"(==|\\+\\+|\\*\\*|->)",name:"keyword.operator.special.zig"},{match:"=",name:"keyword.operator.assignment.zig"},{match:"\\?",name:"keyword.operator.question.zig"}]},punctuation:{patterns:[{match:"\\.",name:"punctuation.accessor.zig"},{match:",",name:"punctuation.comma.zig"},{match:":",name:"punctuation.separator.key-value.zig"},{match:";",name:"punctuation.terminator.statement.zig"}]},stringcontent:{patterns:[{match:"\\\\([nrt'\"\\\\]|(x[0-9a-fA-F]{2})|(u\\{[0-9a-fA-F]+\\}))",name:"constant.character.escape.zig"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.zig"}]},strings:{patterns:[{begin:'"',end:'"',name:"string.quoted.double.zig",patterns:[{include:"#stringcontent"}]},{begin:"\\\\\\\\",end:"$",name:"string.multiline.zig"},{match:"'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'",name:"string.quoted.single.zig"}]},support:{patterns:[{comment:"Built-in functions",match:"@[_a-zA-Z][_a-zA-Z0-9]*",name:"support.function.builtin.zig"}]},variables:{patterns:[{name:"meta.function.declaration.zig",patterns:[{captures:{1:{name:"storage.type.function.zig"},2:{name:"entity.name.type.zig"}},match:"\\b(fn)\\s+([A-Z][a-zA-Z0-9]*)\\b"},{captures:{1:{name:"storage.type.function.zig"},2:{name:"entity.name.function.zig"}},match:"\\b(fn)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\b"},{begin:'\\b(fn)\\s+@"',beginCaptures:{1:{name:"storage.type.function.zig"}},end:'"',name:"entity.name.function.string.zig",patterns:[{include:"#stringcontent"}]},{match:"\\b(const|var|fn)\\b",name:"keyword.default.zig"}]},{name:"meta.function.call.zig",patterns:[{match:"([A-Z][a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.type.zig"},{match:"([_a-zA-Z][_a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.function.zig"}]},{name:"meta.variable.zig",patterns:[{match:"\\b[_a-zA-Z][_a-zA-Z0-9]*\\b",name:"variable.zig"},{begin:'@"',end:'"',name:"variable.string.zig",patterns:[{include:"#stringcontent"}]}]}]}},o="source.zig",c={displayName:"Zig",fileTypes:n,name:"zig",patterns:a,repository:i,scopeName:o};export{c as default,e as displayName,n as fileTypes,t as name,a as patterns,i as repository,o as scopeName}; diff --git a/lib/grammars/abap.tmLanguage.json b/lib/grammars/abap.tmLanguage.json deleted file mode 100644 index b17a1d8..0000000 --- a/lib/grammars/abap.tmLanguage.json +++ /dev/null @@ -1,378 +0,0 @@ -{ - "fileTypes": ["abap", "ABAP"], - "foldingStartMarker": "/\\*\\*|\\{\\s*$", - "foldingStopMarker": "\\*\\*/|^\\s*\\}", - "keyEquivalent": "^~A", - "name": "abap", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.abap" - } - }, - "match": "^\\*.*\\n?", - "name": "comment.line.full.abap" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.abap" - } - }, - "match": "\".*\\n?", - "name": "comment.line.partial.abap" - }, - { - "match": "(?<![^\\s])##.*?(?=([\\.:,\\s]))", - "name": "comment.line.pragma.abap" - }, - { - "match": "(?i)(?<=(?:\\s|~|-))(?<=(?:->|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)", - "name": "variable.other.abap" - }, - { - "match": "\\b[0-9]+(\\b|\\.|,)", - "name": "constant.numeric.abap" - }, - { - "match": "(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)", - "name": "storage.modifier.class.abap" - }, - { - "begin": "(?<!\\\\)(\\|)(.*?)", - "end": "(?<!\\\\)(\\||(\\\\\\\\\\|))", - "name": "string.interpolated.abap", - "beginCaptures": { - "1": { - "name": "constant.character.escape.abap" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.escape.abap" - } - }, - "patterns": [ - { - "match": "({ )|( })", - "name": "constant.character.escape" - }, - { - "match": "(?<={ ).*?(?= })", - "name": "variable.other.abap" - }, - { - "match": "\\\\\\|", - "name": "constant.character.escape.abap" - } - ] - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.abap", - "patterns": [ - { - "match": "''", - "name": "constant.character.escape.abap" - } - ] - }, - { - "begin": "`", - "end": "`", - "name": "string.quoted.single.abap", - "patterns": [ - { - "match": "``", - "name": "constant.character.escape.abap" - } - ] - }, - { - "begin": "(?i)^\\s*(class)\\s([a-z_\\/][a-z_0-9\\/]*)", - "beginCaptures": { - "1": { - "name": "storage.type.block.abap" - }, - "2": { - "name": "entity.name.type.block.abap" - } - }, - "end": "\\s*\\.\\s*\\n?", - "name": "meta.block.begin.implementation.abap", - "patterns": [ - { - "match": "(?ix)(^|\\s+)(definition|implementation|public|inheriting\\s+from|final|deferred|abstract|shared\\s+memory\\s+enabled|(global|local)*\\s*friends|(create\\s+(public|protected|private))|for\\s+behavior\\s+of|for\\s+testing|risk\\s+level\\s+(critical|dangerous|harmless))|duration\\s(short|medium|long)(?=\\s+|\\.)", - "name": "storage.modifier.class.abap" - }, - { - "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)", - "contentName": "entity.name.type.block.abap", - "end": "(?![A-Za-z0-9_])", - "patterns": [ - { - "include": "#generic_names" - } - ] - } - ] - }, - { - "begin": "(?ix)^\\s*(method)\\s(?:([a-z_\\/][a-z_0-9\\/]*)~)?([a-z_\\/][a-z_0-9\\/]*)", - "beginCaptures": { - "1": { - "name": "storage.type.block.abap" - }, - "2": { - "name": "entity.name.type.abap" - }, - "3": { - "name": "entity.name.function.abap" - } - }, - "end": "\\s*\\.\\s*\\n?", - "patterns": [ - { - "match": "(?ix)(?<=^|\\s)(BY\\s+DATABASE(\\s+PROCEDURE|\\s+FUNCTION|\\s+GRAPH\\s+WORKSPACE)|BY\\s+KERNEL\\s+MODULE)(?=\\s+|\\.)", - "name": "storage.modifier.method.abap" - }, - { - "match": "(?ix)(?<=^|\\s)(FOR\\s+(HDB|LLANG))(?=\\s+|\\.)", - "name": "storage.modifier.method.abap" - }, - { - "match": "(?ix)(?<=\\s)(OPTIONS\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\s+SYNTAX\\s+ERRORS))(?=\\s+|\\.)", - "name": "storage.modifier.method.abap" - }, - { - "match": "(?ix)(?<=^|\\s)(LANGUAGE\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\s+|\\.)", - "name": "storage.modifier.method.abap" - }, - { - "match": "(?ix)(?<=\\s)(USING)\\s+([a-z_\\/][a-z_0-9\\/=\\>]*)+(?=\\s+|\\.)", - "captures": { - "1": { - "name": "storage.modifier.method.abap" - } - } - }, - { - "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)", - "end": "(?![A-Za-z0-9_])", - "patterns": [ - { - "include": "#generic_names" - } - ] - } - ] - }, - { - "begin": "(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)", - "beginCaptures": { - "1": { - "name": "storage.type.block.abap" - }, - "2": { - "name": "entity.name.type.abap" - } - }, - "end": "\\s*\\.\\s*\\n?", - "patterns": [ - { - "match": "(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)", - "name": "storage.modifier.method.abap" - } - ] - }, - { - "begin": "(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-\\?]*)", - "beginCaptures": { - "1": { - "name": "storage.type.block.abap" - }, - "2": { - "name": "entity.name.type.abap" - } - }, - "end": "\\s*\\.\\s*\\n?", - "patterns": [ - { - "match": "(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)", - "name": "storage.modifier.form.abap" - }, - { - "include": "#abaptypes" - }, - { - "include": "#keywords_followed_by_braces" - } - ] - }, - { - "match": "(?i)(endclass|endmethod|endform|endinterface)", - "name": "storage.type.block.end.abap" - }, - { - "match": "(?i)(<[A-Za-z_][A-Za-z0-9_]*>)", - "name": "variable.other.field.symbol.abap" - }, - { - "include": "#keywords" - }, - { - "include": "#abap_constants" - }, - { - "include": "#reserved_names" - }, - { - "include": "#operators" - }, - { - "include": "#builtin_functions" - }, - { - "include": "#abaptypes" - }, - { - "include": "#system_fields" - }, - { - "include": "#sql_functions" - }, - { - "include": "#sql_types" - } - ], - "repository": { - "abap_constants": { - "match": "(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|abap_undefined|table_line|\n\t\t\t\t%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|\n\t\t\t\tadabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\s|\\.|,)", - "name": "constant.language.abap" - }, - "reserved_names": { - "match": "(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)", - "name": "constant.language.abap" - }, - "abaptypes": { - "patterns": [ - { - "match": "(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)", - "name": "support.type.abap" - }, - { - "match": "(?ix)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)", - "name": "keyword.control.simple.abap" - } - ] - }, - "arithmetic_operator": { - "match": "(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)", - "name": "keyword.control.simple.abap" - }, - "comparison_operator": { - "match": "(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)", - "name": "keyword.control.simple.abap" - }, - "control_keywords": { - "match": "(?ix)(^|\\s)(\n\t at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|\n\t endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)", - "name": "keyword.control.flow.abap" - }, - "generic_names": { - "match": "[A-Za-z_][A-Za-z0-9_]*" - }, - "keywords": { - "patterns": [ - { - "include": "#main_keywords" - }, - { - "include": "#text_symbols" - }, - { - "include": "#control_keywords" - }, - { - "include": "#keywords_followed_by_braces" - } - ] - }, - "logical_operator": { - "match": "(?i)(?<=\\s)(not|or|and)(?=\\s)", - "name": "keyword.control.simple.abap" - }, - "system_fields": { - "match": "(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)", - "captures": { - "1": { - "name": "variable.language.abap" - }, - "2": { - "name": "variable.language.abap" - } - } - }, - "main_keywords": { - "match": "(?ix)(?<=^|\\s)(\nabap-source|\nabstract|\naccept|\naccepting|\naccess|\naction|\nactivation|\nactual|\nadd|\nadd-corresponding|\nadjacent|\nalias|\naliases|\nalign|\nall|\nallocate|\nalpha|\namdp|\nanalysis|\nanalyzer|\nappend|\nappending|\napplication|\narchive|\narea|\narithmetic|\nas|\nascending|\nassert|\nassign|\nassigned|\nassigning|\nassociation|\nasynchronous|\nat|\nattributes|\nauthority|\nauthority-check|\nauthorization|\nauto|\nback|\nbackground|\nbackward|\nbadi|\nbase|\nbefore|\nbegin|\nbehavior|\nbetween|\nbinary|\nbit|\nblank|\nblanks|\nblock|\nblocks|\nbound|\nboundaries|\nbounds|\nboxed|\nbreak|\nbreak-point|\nbuffer|\nby|\nbypassing|\nbyte|\nbyte-order|\ncall|\ncalling|\ncast|\ncasting|\ncds|\ncenter|\ncentered|\nchange|\nchanging|\nchannels|\nchar-to-hex|\ncharacter|\ncheck|\ncheckbox|\ncid|\ncircular|\nclass|\nclass-data|\nclass-events|\nclass-method|\nclass-methods|\nclass-pool|\ncleanup|\nclear|\nclient|\nclients|\nclock|\nclone|\nclose|\ncnt|\ncode|\ncollect|\ncolor|\ncolumn|\ncomment|\ncomments|\ncommit|\ncommon|\ncommunication|\ncomparing|\ncomponent|\ncomponents|\ncompression|\ncompute|\nconcatenate|\ncond|\ncondense|\ncondition|\nconnection|\nconstant|\nconstants|\ncontext|\ncontexts|\ncontrol|\ncontrols|\nconv|\nconversion|\nconvert|\ncopy|\ncorresponding|\ncount|\ncountry|\ncover|\ncreate|\ncurrency|\ncurrent|\ncursor|\ncustomer-function|\ndata|\ndatabase|\ndatainfo|\ndataset|\ndate|\ndaylight|\nddl|\ndeallocate|\ndecimals|\ndeclarations|\ndeep|\ndefault|\ndeferred|\ndefine|\ndelete|\ndeleting|\ndemand|\ndescending|\ndescribe|\ndestination|\ndetail|\ndetermine|\ndialog|\ndid|\ndirectory|\ndiscarding|\ndisplay|\ndisplay-mode|\ndistance|\ndistinct|\ndivide|\ndivide-corresponding|\ndummy|\nduplicate|\nduplicates|\nduration|\nduring|\ndynpro|\nedit|\neditor-call|\nempty|\nenabled|\nenabling|\nencoding|\nend|\nend-enhancement-section|\nend-of-definition|\nend-of-page|\nend-of-selection|\nend-test-injection|\nend-test-seam|\nendenhancement|\nendexec|\nendfunction|\nendian|\nending|\nendmodule|\nendprovide|\nendselect|\nendwith|\nengineering|\nenhancement|\nenhancement-point|\nenhancement-section|\nenhancements|\nentities|\nentity|\nentries|\nentry|\nenum|\nenvironment|\nequiv|\nerrors|\nescape|\nescaping|\nevent|\nevents|\nexact|\nexcept|\nexception|\nexception-table|\nexceptions|\nexcluding|\nexec|\nexecute|\nexists|\nexit|\nexit-command|\nexpanding|\nexplicit|\nexponent|\nexport|\nexporting|\nextended|\nextension|\nextract|\nfail|\nfailed|\nfeatures|\nfetch|\nfield|\nfield-groups|\nfield-symbols|\nfields|\nfile|\nfill|\nfilter|\nfilters|\nfinal|\nfind|\nfirst|\nfirst-line|\nfixed-point|\nflush|\nfor|\nformat|\nforward|\nfound|\nframe|\nframes|\nfree|\nfrom|\nfull|\nfunction|\nfunction-pool|\ngenerate|\nget|\ngiving|\ngraph|\ngroup|\ngroups|\nhandle|\nhandler|\nhashed|\nhaving|\nheader|\nheaders|\nheading|\nhelp-id|\nhelp-request|\nhide|\nhint|\nhold|\nhotspot|\nicon|\nid|\nidentification|\nidentifier|\nignore|\nignoring|\nimmediately|\nimplemented|\nimplicit|\nimport|\nimporting|\nin|\ninactive|\nincl|\ninclude|\nincludes|\nincrement|\nindex|\nindex-line|\ninfotypes|\ninheriting|\ninit|\ninitial|\ninitialization|\ninner|\ninput|\ninsert|\ninstance|\ninstances|\nintensified|\ninterface|\ninterface-pool|\ninterfaces|\ninternal|\nintervals|\ninto|\ninverse|\ninverted-date|\nis|\niso|\njob|\njoin|\nkeep|\nkeeping|\nkernel|\nkey|\nkeys|\nkeywords|\nkind|\nlanguage|\nlast|\nlate|\nlayout|\nleading|\nleave|\nleft|\nleft-justified|\nleftplus|\nleftspace|\nlegacy|\nlength|\nlet|\nlevel|\nlevels|\nlike|\nline|\nline-count|\nline-selection|\nline-size|\nlinefeed|\nlines|\nlink|\nlist|\nlist-processing|\nlistbox|\nload|\nload-of-program|\nlocal|\nlocale|\nlock|\nlocks|\nlog-point|\nlogical|\nlower|\nmapped|\nmapping|\nmargin|\nmark|\nmask|\nmatch|\nmatchcode|\nmaximum|\nmembers|\nmemory|\nmesh|\nmessage|\nmessage-id|\nmessages|\nmessaging|\nmethod|\nmethods|\nmode|\nmodif|\nmodifier|\nmodify|\nmodule|\nmove|\nmove-corresponding|\nmultiply|\nmultiply-corresponding|\nname|\nnametab|\nnative|\nnested|\nnesting|\nnew|\nnew-line|\nnew-page|\nnew-section|\nnext|\nno|\nno-display|\nno-extension|\nno-gap|\nno-gaps|\nno-grouping|\nno-heading|\nno-scrolling|\nno-sign|\nno-title|\nno-zero|\nnodes|\nnon-unicode|\nnon-unique|\nnumber|\nobject|\nobjects|\nobjmgr|\nobligatory|\noccurence|\noccurences|\noccurrence|\noccurrences|\noccurs|\nof|\noffset|\non|\nonly|\nopen|\noptional|\noption|\noptions|\norder|\nothers|\nout|\nouter|\noutput|\noutput-length|\noverflow|\noverlay|\npack|\npackage|\npad|\npadding|\npage|\nparameter|\nparameter-table|\nparameters|\npart|\npartially|\npcre|\nperform|\nperforming|\npermissions|\npf-status|\nplaces|\npool|\nposition|\npragmas|\nprecompiled|\npreferred|\npreserving|\nprimary|\nprint|\nprint-control|\nprivate|\nprivileged|\nprocedure|\nprogram|\nproperty|\nprotected|\nprovide|\npush|\npushbutton|\nput|\nquery|\nqueue-only|\nqueueonly|\nquickinfo|\nradiobutton|\nraising|\nrange|\nranges|\nread|\nread-only|\nreceive|\nreceived|\nreceiving|\nredefinition|\nreduce|\nref|\nreference|\nrefresh|\nregex|\nreject|\nrenaming|\nreplace|\nreplacement|\nreplacing|\nreport|\nreported|\nrequest|\nrequested|\nrequired|\nreserve|\nreset|\nresolution|\nrespecting|\nresponse|\nrestore|\nresult|\nresults|\nresumable|\nresume|\nretry|\nreturn|\nreturning|\nright|\nright-justified|\nrightplus|\nrightspace|\nrollback|\nrows|\nrp-provide-from-last|\nrun|\nsap|\nsap-spool|\nsave|\nsaving|\nscale_preserving|\nscale_preserving_scientific|\nscan|\nscientific|\nscientific_with_leading_zero|\nscreen|\nscroll|\nscroll-boundary|\nscrolling|\nsearch|\nseconds|\nsection|\nselect|\nselect-options|\nselection|\nselection-screen|\nselection-set|\nselection-sets|\nselection-table|\nselections|\nsend|\nseparate|\nseparated|\nsession|\nset|\nshared|\nshift|\nshortdump|\nshortdump-id|\nsign|\nsign_as_postfix|\nsimple|\nsimulation|\nsingle|\nsize|\nskip|\nskipping|\nsmart|\nsome|\nsort|\nsortable|\nsorted|\nsource|\nspecified|\nsplit|\nspool|\nspots|\nsql|\nstable|\nstamp|\nstandard|\nstart-of-selection|\nstarting|\nstate|\nstatement|\nstatements|\nstatic|\nstatics|\nstatusinfo|\nstep|\nstep-loop|\nstop|\nstructure|\nstructures|\nstyle|\nsubkey|\nsubmatches|\nsubmit|\nsubroutine|\nsubscreen|\nsubstring|\nsubtract|\nsubtract-corresponding|\nsuffix|\nsum|\nsummary|\nsupplied|\nsupply|\nsuppress|\nswitch|\nsymbol|\nsyntax-check|\nsyntax-trace|\nsystem-call|\nsystem-exceptions|\ntab|\ntabbed|\ntable|\ntables|\ntableview|\ntabstrip|\ntarget|\ntask|\ntasks|\ntest|\ntest-injection|\ntest-seam|\ntesting|\ntext|\ntextpool|\nthen|\nthrow|\ntime|\ntimes|\ntimestamp|\ntimezone|\ntitle|\ntitlebar|\nto|\ntokens|\ntop-lines|\ntop-of-page|\ntrace-file|\ntrace-table|\ntrailing|\ntransaction|\ntransfer|\ntransformation|\ntranslate|\ntransporting|\ntrmac|\ntruncate|\ntruncation|\ntype|\ntype-pool|\ntype-pools|\ntypes|\nuline|\nunassign|\nunder|\nunicode|\nunion|\nunique|\nunit|\nunix|\nunpack|\nuntil|\nunwind|\nup|\nupdate|\nupper|\nuser|\nuser-command|\nusing|\nutf-8|\nuuid|\nvalid|\nvalidate|\nvalue|\nvalue-request|\nvalues|\nvary|\nvarying|\nversion|\nvia|\nvisible|\nwait|\nwhen|\nwhere|\nwidth|\nwindow|\nwindows|\nwith|\nwith-heading|\nwith-title|\nwithout|\nword|\nwork|\nworkspace|\nwrite|\nxml|\nxsd|\nyes|\nzero|\nzone\n\t\t \t)(?=\\s|\\.|:|,)", - "name": "keyword.control.simple.abap" - }, - "text_symbols": { - "match": "(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)", - "captures": { - "1": { - "name": "keyword.control.simple.abap" - }, - "2": { - "name": "constant.numeric.abap" - } - } - }, - "keywords_followed_by_braces": { - "match": "(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((<?[a-z_\\/][a-z_0-9\\/]*>?)\\)", - "captures": { - "1": { - "name": "keyword.control.simple.abap" - }, - "2": { - "name": "variable.other.abap" - } - } - }, - "operators": { - "patterns": [ - { - "include": "#other_operator" - }, - { - "include": "#arithmetic_operator" - }, - { - "include": "#comparison_operator" - }, - { - "include": "#logical_operator" - } - ] - }, - "other_operator": { - "match": "(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)", - "name": "keyword.control.simple.abap" - }, - "builtin_functions": { - "match": "(?ix)(?<=\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\()", - "name": "entity.name.function.builtin.abap" - }, - "sql_types": { - "match": "(?ix)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))", - "name": "entity.name.type.sql.abap" - }, - "sql_functions": { - "match": "(?ix)(?<=\\s)(abs|ceil|div|division|floor|mod|round|concat|concat_with_space|instr|left|length|like_regexpr|lower|lpad|ltrim|occurrences_regexpr|replace|replace_regexpr|rigth|rpad|rtrim|substring|upper|coalesce|uuid|bintohex|hextobin|to_clob|to_blob|currency_conversion|datn_days_between|datn_add_days|datn_add_months|dats_is_valid|dats_days_between|dats_add_days|dats_add_months|tims_is_valid|utcl_current|utcl_add_seconds|utcl_seconds_between|tstmp_is_valid|tstmp_current_utctimestamp|tstmp_seconds_between|tstmp_add_seconds|abap_system_timezone|abap_user_timezone|tstmp_to_dats|tstmp_to_tims|tstmp_to_dst|dats_tims_to_tstmp|tstmpl_to_utcl|tstmpl_from_utcl|dats_to_datn|dats_from_datn|tims_to_timn|tims_from_timn|avg|median|max|min|sum|product|stddev|var|corr|corr_spearman|string_agg|count|grouping|allow_precision_loss|over|cast)(?=\\()", - "name": "entity.name.function.sql.abap" - } - }, - "scopeName": "source.abap", - "uuid": "0357FFB4-EFFF-4DE9-8371-B0F9C8DF1B21" -} diff --git a/lib/grammars/actionscript-3.tmLanguage.json b/lib/grammars/actionscript-3.tmLanguage.json deleted file mode 100644 index 75210d9..0000000 --- a/lib/grammars/actionscript-3.tmLanguage.json +++ /dev/null @@ -1,949 +0,0 @@ -{ - "fileTypes": ["as"], - "name": "actionscript-3", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#package" - }, - { - "include": "#class" - }, - { - "include": "#interface" - }, - { - "include": "#namespace_declaration" - }, - { - "include": "#import" - }, - { - "include": "#mxml" - }, - { - "include": "#strings" - }, - { - "include": "#regexp" - }, - { - "include": "#variable_declaration" - }, - { - "include": "#numbers" - }, - { - "include": "#primitive_types" - }, - { - "include": "#primitive_error_types" - }, - { - "include": "#dynamic_type" - }, - { - "include": "#primitive_functions" - }, - { - "include": "#language_constants" - }, - { - "include": "#language_variables" - }, - { - "include": "#guess_type" - }, - { - "include": "#guess_constant" - }, - { - "include": "#other_operators" - }, - { - "include": "#arithmetic_operators" - }, - { - "include": "#logical_operators" - }, - { - "include": "#array_access_operators" - }, - { - "include": "#vector_creation_operators" - }, - { - "include": "#control_keywords" - }, - { - "include": "#other_keywords" - }, - { - "include": "#use_namespace" - }, - { - "include": "#functions" - } - ], - "repository": { - "arithmetic_operators": { - "match": "(\\+|\\-|/|%|(?<!:)\\*)", - "name": "keyword.operator.actionscript.3" - }, - "array_access_operators": { - "match": "(\\[|\\])", - "name": "keyword.operator.actionscript.3" - }, - "class": { - "begin": "(?x) (^|\\s+|;) (\\b(dynamic|final|abstract)\\b\\s+)? (\\b(internal|public)\\b\\s+)? (\\b(dynamic|final|abstract)\\b\\s+)? (?=\\bclass\\b)", - "beginCaptures": { - "3": { - "name": "storage.modifier.actionscript.3" - }, - "5": { - "name": "storage.modifier.actionscript.3" - }, - "7": { - "name": "storage.modifier.actionscript.3" - } - }, - "end": "\\}", - "name": "meta.class.actionscript.3", - "patterns": [ - { - "include": "#class_declaration" - }, - { - "include": "#metadata" - }, - { - "include": "#method" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#regexp" - }, - { - "include": "#numbers" - }, - { - "include": "#primitive_types" - }, - { - "include": "#primitive_error_types" - }, - { - "include": "#dynamic_type" - }, - { - "include": "#primitive_functions" - }, - { - "include": "#language_constants" - }, - { - "include": "#language_variables" - }, - { - "include": "#other_operators" - }, - { - "include": "#other_keywords" - }, - { - "include": "#use_namespace" - }, - { - "include": "#guess_type" - }, - { - "include": "#guess_constant" - }, - { - "include": "#arithmetic_operators" - }, - { - "include": "#array_access_operators" - }, - { - "include": "#vector_creation_operators" - }, - { - "include": "#variable_declaration" - }, - { - "include": "#object_literal" - } - ] - }, - "namespace_declaration": { - "captures": { - "2": { - "name": "storage.modifier.actionscript.3" - }, - "3": { - "name": "storage.modifier.actionscript.3" - } - }, - "match": "(?x) ((\\w+)\\s+)? (namespace) \\s+ (?:[A-Za-z0-9_\\$]+)", - "name": "meta.namespace_declaration.actionscript.3" - }, - "class_declaration": { - "begin": "(?x) \\b(class)\\b \\s+ ([\\.\\w]+|\\*)", - "beginCaptures": { - "1": { - "name": "storage.type.class.actionscript.3" - }, - "2": { - "name": "entity.name.class.actionscript.3" - } - }, - "end": "\\{", - "name": "meta.class_declaration.actionscript.3", - "patterns": [ - { - "include": "#extends" - }, - { - "include": "#implements" - }, - { - "include": "#comments" - } - ] - }, - "code_block": { - "begin": "\\{", - "end": "\\}", - "name": "meta.code_block.actionscript.3", - "patterns": [ - { - "include": "#code_block" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#regexp" - }, - { - "include": "#variable_declaration" - }, - { - "include": "#numbers" - }, - { - "include": "#primitive_types" - }, - { - "include": "#primitive_error_types" - }, - { - "include": "#dynamic_type" - }, - { - "include": "#primitive_functions" - }, - { - "include": "#language_constants" - }, - { - "include": "#language_variables" - }, - { - "include": "#guess_type" - }, - { - "include": "#guess_constant" - }, - { - "include": "#other_operators" - }, - { - "include": "#arithmetic_operators" - }, - { - "include": "#logical_operators" - }, - { - "include": "#array_access_operators" - }, - { - "include": "#vector_creation_operators" - }, - { - "include": "#control_keywords" - }, - { - "include": "#other_keywords" - }, - { - "include": "#use_namespace" - }, - { - "include": "#functions" - }, - { - "include": "#import" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?!/)", - "end": "\\*/", - "name": "comment.block.documentation.actionscript.3", - "patterns": [ - { - "match": "@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\b", - "name": "keyword.other.documentation.actionscript.3.asdoc" - } - ] - }, - { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block.actionscript.3" - }, - { - "match": "//.*", - "name": "comment.line.actionscript.3" - } - ] - }, - "control_keywords": { - "match": "\\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\\b", - "name": "keyword.control.actionscript.3" - }, - "dynamic_type": { - "captures": { - "1": { - "name": "support.type.actionscript.3" - } - }, - "match": "(?<=:)\\s*(\\*)" - }, - "escapes": { - "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", - "name": "constant.character.escape.actionscript.3" - }, - "extends": { - "captures": { - "1": { - "name": "keyword.other.actionscript.3" - }, - "2": { - "name": "entity.other.inherited-class.actionscript.3" - }, - "3": { - "name": "entity.other.inherited-class.actionscript.3" - } - }, - "match": "(?x) \\b(extends)\\b \\s+ ([\\.\\w]+) \\s* (?:, \\s* ([\\.\\w]+))* \\s*", - "name": "meta.extends.actionscript.3" - }, - "function_arguments": { - "begin": "\\(", - "end": "\\)", - "name": "meta.function_arguments.actionscript.3", - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#comments" - } - ] - }, - "parameters": { - "begin": "(\\.\\.\\.)?\\s*([A-Za-z\\_\\$][A-Za-z0-9_\\$]*)(?:\\s*(\\:)\\s*(?:(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)))?(?:\\s*(=))?", - "end": ",|(?=\\))", - "beginCaptures": { - "1": { - "name": "keyword.operator.actionscript.3" - }, - "2": { - "name": "variable.parameter.actionscript.3" - }, - "3": { - "name": "keyword.operator.actionscript.3" - }, - "4": { - "name": "support.type.actionscript.3" - }, - "5": { - "name": "support.type.actionscript.3" - }, - "6": { - "name": "support.type.actionscript.3" - }, - "7": { - "name": "keyword.operator.actionscript.3" - } - }, - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#language_constants" - }, - { - "include": "#comments" - }, - { - "include": "#primitive_types" - }, - { - "include": "#primitive_error_types" - }, - { - "include": "#dynamic_type" - }, - { - "include": "#guess_type" - }, - { - "include": "#guess_constant" - } - ] - }, - "functions": { - "begin": "(?x) \\b(function)\\b (?:\\s+\\b(get|set)\\b\\s+)? \\s* ([a-zA-Z0-9_\\$]+\\b)?", - "beginCaptures": { - "1": { - "name": "storage.type.function.actionscript.3" - }, - "2": { - "name": "storage.modifier.actionscript.3" - }, - "3": { - "name": "entity.name.function.actionscript.3" - } - }, - "end": "($|;|(?=\\{))", - "name": "meta.function.actionscript.3", - "patterns": [ - { - "include": "#function_arguments" - }, - { - "include": "#return_type" - }, - { - "include": "#comments" - } - ] - }, - "guess_constant": { - "captures": { - "1": { - "name": "constant.other.actionscript.3" - } - }, - "comment": "Following convention, let's guess that anything in all caps/digits (possible underscores) is a constant.", - "match": "\\b([A-Z\\$][A-Z0-9_]+)\\b" - }, - "guess_type": { - "captures": { - "1": { - "name": "support.type.actionscript.3" - } - }, - "comment": "Following convention, let's guess that any word starting with one or more capital letters (that contains at least some lower-case letters so that constants aren't detected) refers to a class/type. May be fully-qualified.", - "match": "\\b((?:[A-Za-z0-9_\\$]+\\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_\\$]*)\\b" - }, - "implements": { - "captures": { - "1": { - "name": "keyword.other.actionscript.3" - }, - "2": { - "name": "entity.other.inherited-class.actionscript.3" - }, - "3": { - "name": "entity.other.inherited-class.actionscript.3" - } - }, - "match": "(?x) \\b(implements)\\b \\s+ ([\\.\\w]+) \\s* (?:, \\s* ([\\.\\w]+))* \\s*", - "name": "meta.implements.actionscript.3" - }, - "import": { - "captures": { - "2": { - "name": "keyword.control.import.actionscript.3" - }, - "3": { - "name": "support.type.actionscript.3" - } - }, - "match": "(?x) (^|\\s+|;) \\b(import)\\b \\s+ ([A-Za-z0-9\\$_\\.]+(?:\\.\\*)?) \\s* (?=;|$)", - "name": "meta.import.actionscript.3" - }, - "interface": { - "begin": "(?x) (^|\\s+|;) (\\b(internal|public)\\b\\s+)? (?=\\binterface\\b)", - "beginCaptures": { - "3": { - "name": "storage.modifier.actionscript.3" - } - }, - "end": "\\}", - "name": "meta.interface.actionscript.3", - "patterns": [ - { - "include": "#interface_declaration" - }, - { - "include": "#metadata" - }, - { - "include": "#functions" - }, - { - "include": "#comments" - } - ] - }, - "interface_declaration": { - "begin": "(?x) \\b(interface)\\b \\s+ ([\\.\\w]+)", - "beginCaptures": { - "1": { - "name": "storage.type.interface.actionscript.3" - }, - "2": { - "name": "entity.name.class.actionscript.3" - } - }, - "end": "\\{", - "name": "meta.class_declaration.actionscript.3", - "patterns": [ - { - "include": "#extends" - }, - { - "include": "#comments" - } - ] - }, - "language_constants": { - "match": "\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\b", - "name": "constant.language.actionscript.3" - }, - "language_variables": { - "match": "\\b(super|this|arguments)\\b", - "name": "variable.language.actionscript.3" - }, - "logical_operators": { - "match": "(&|<|~|\\||>|\\^|!|\\?)", - "name": "keyword.operator.actionscript.3" - }, - "metadata_info": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "variable.parameter.actionscript.3" - }, - "2": { - "name": "keyword.operator.actionscript.3" - } - }, - "match": "(\\w+)\\s*(=)" - } - ] - }, - "method": { - "begin": "(?x) (^|\\s+) ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? (?=\\bfunction\\b)", - "beginCaptures": { - "3": { - "name": "storage.modifier.actionscript.3" - }, - "5": { - "name": "storage.modifier.actionscript.3" - }, - "7": { - "name": "storage.modifier.actionscript.3" - }, - "8": { - "name": "storage.modifier.actionscript.3" - } - }, - "end": "(?<=(;|\\}))", - "name": "meta.method.actionscript.3", - "patterns": [ - { - "include": "#functions" - }, - { - "include": "#code_block" - } - ] - }, - "mxml": { - "begin": "<!\\[CDATA\\[", - "end": "\\]\\]>", - "name": "meta.cdata.actionscript.3", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#import" - }, - { - "include": "#metadata" - }, - { - "include": "#class" - }, - { - "include": "#namespace_declaration" - }, - { - "include": "#use_namespace" - }, - { - "include": "#class_declaration" - }, - { - "include": "#method" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#regexp" - }, - { - "include": "#numbers" - }, - { - "include": "#primitive_types" - }, - { - "include": "#primitive_error_types" - }, - { - "include": "#dynamic_type" - }, - { - "include": "#primitive_functions" - }, - { - "include": "#language_constants" - }, - { - "include": "#language_variables" - }, - { - "include": "#other_keywords" - }, - { - "include": "#guess_type" - }, - { - "include": "#guess_constant" - }, - { - "include": "#other_operators" - }, - { - "include": "#arithmetic_operators" - }, - { - "include": "#array_access_operators" - }, - { - "include": "#vector_creation_operators" - }, - { - "include": "#variable_declaration" - } - ] - }, - "numbers": { - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b", - "name": "constant.numeric.actionscript.3" - }, - "object_literal": { - "begin": "\\{", - "end": "\\}", - "name": "meta.object_literal.actionscript.3", - "patterns": [ - { - "include": "#object_literal" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#regexp" - }, - { - "include": "#numbers" - }, - { - "include": "#primitive_types" - }, - { - "include": "#primitive_error_types" - }, - { - "include": "#dynamic_type" - }, - { - "include": "#primitive_functions" - }, - { - "include": "#language_constants" - }, - { - "include": "#language_variables" - }, - { - "include": "#guess_type" - }, - { - "include": "#guess_constant" - }, - { - "include": "#array_access_operators" - }, - { - "include": "#vector_creation_operators" - }, - { - "include": "#functions" - } - ] - }, - "other_keywords": { - "match": "\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\b", - "name": "keyword.other.actionscript.3" - }, - "other_operators": { - "match": "(\\.|=)", - "name": "keyword.operator.actionscript.3" - }, - "package": { - "begin": "(^|\\s+)(package)\\b", - "beginCaptures": { - "2": { - "name": "keyword.other.actionscript.3" - } - }, - "end": "\\}", - "name": "meta.package.actionscript.3", - "patterns": [ - { - "include": "#package_name" - }, - { - "include": "#variable_declaration" - }, - { - "include": "#method" - }, - { - "include": "#comments" - }, - { - "include": "#return_type" - }, - { - "include": "#import" - }, - { - "include": "#use_namespace" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#language_constants" - }, - { - "include": "#metadata" - }, - { - "include": "#class" - }, - { - "include": "#interface" - }, - { - "include": "#namespace_declaration" - } - ] - }, - "package_name": { - "begin": "(?<=package)\\s+([\\w\\._]*)\\b", - "end": "\\{", - "name": "meta.package_name.actionscript.3" - }, - "primitive_types": { - "captures": { - "1": { - "name": "support.class.builtin.actionscript.3" - } - }, - "match": "\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\*(?<=a))\\b" - }, - "primitive_error_types": { - "captures": { - "1": { - "name": "support.class.error.actionscript.3" - } - }, - "match": "\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\b" - }, - "primitive_functions": { - "captures": { - "1": { - "name": "support.function.actionscript.3" - } - }, - "match": "\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()" - }, - "regexp": { - "begin": "(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])", - "end": "$|(/)[igm]*", - "name": "string.regex.actionscript.3", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.actionscript.3" - }, - { - "match": "\\[(\\\\\\]|[^\\]])*\\]", - "name": "constant.character.class.actionscript.3" - } - ] - }, - "return_type": { - "captures": { - "1": { - "name": "keyword.operator.actionscript.3" - }, - "2": { - "name": "support.type.actionscript.3" - }, - "3": { - "name": "support.type.actionscript.3" - }, - "4": { - "name": "support.type.actionscript.3" - } - }, - "match": "(\\:)\\s*(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)" - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.actionscript.3", - "patterns": [ - { - "include": "#escapes" - } - ] - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.actionscript.3", - "patterns": [ - { - "include": "#escapes" - } - ] - } - ] - }, - "metadata": { - "begin": "\\[\\s*\\b(\\w+)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.actionscript.3" - } - }, - "end": "\\]", - "name": "meta.metadata_info.actionscript.3", - "patterns": [ - { - "include": "#metadata_info" - } - ] - }, - "use_namespace": { - "captures": { - "2": { - "name": "keyword.other.actionscript.3" - }, - "3": { - "name": "keyword.other.actionscript.3" - }, - "4": { - "name": "storage.modifier.actionscript.3" - } - }, - "match": "(?x) (^|\\s+|;) (use\\s+)? (namespace) \\s+ (\\w+) \\s* (;|$)" - }, - "variable_declaration": { - "captures": { - "2": { - "name": "storage.modifier.actionscript.3" - }, - "4": { - "name": "storage.modifier.actionscript.3" - }, - "6": { - "name": "storage.modifier.actionscript.3" - }, - "7": { - "name": "storage.modifier.actionscript.3" - }, - "8": { - "name": "keyword.operator.actionscript.3" - } - }, - "match": "(?x) ((static)\\s+)? ((\\w+)\\s+)? ((static)\\s+)? (const|var) \\s+ (?:[A-Za-z0-9_\\$]+)(?:\\s*(:))?", - "name": "meta.variable_declaration.actionscript.3" - }, - "vector_creation_operators": { - "match": "(<|>)", - "name": "keyword.operator.actionscript.3" - } - }, - "scopeName": "source.actionscript.3", - "uuid": "aa6f75ba-ab10-466e-8c6f-28c69aca1e9d" -} diff --git a/lib/grammars/ada.tmLanguage.json b/lib/grammars/ada.tmLanguage.json deleted file mode 100644 index 2c7ddf5..0000000 --- a/lib/grammars/ada.tmLanguage.json +++ /dev/null @@ -1,3871 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "ada", - "patterns": [ - { - "include": "#library_unit" - }, - { - "include": "#comment" - }, - { - "include": "#use_clause" - }, - { - "include": "#with_clause" - }, - { - "include": "#pragma" - }, - { - "include": "#keyword" - } - ], - "repository": { - "abort_statement": { - "name": "meta.statement.abort.ada", - "begin": "(?i)\\babort\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "entity.name.task.ada", - "match": "\\b(\\w|\\d|\\.|_)+\\b" - } - ] - }, - "accept_statement": { - "name": "meta.statement.accept.ada", - "begin": "(?i)\\b(accept)\\s+((?:\\w|\\d|\\.|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "entity.name.accept.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "entity.name.accept.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bdo\\b", - "end": "(?i)\\b(?=end)\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - { - "include": "#parameter_profile" - } - ] - }, - "access_definition": { - "name": "meta.declaration.access.definition.ada", - "match": "(?i)(not\\s+null\\s+)?(access)\\s+(constant\\s+)?((?:\\w|\\d|\\.|_)+)\\b", - "captures": { - "1": { - "name": "storage.visibility.ada" - }, - "2": { - "name": "storage.visibility.ada" - }, - "3": { - "name": "storage.modifier.ada" - }, - "4": { - "name": "entity.name.type.ada" - } - } - }, - "access_type_definition": { - "name": "meta.declaration.type.definition.access.ada", - "begin": "(?i)\\b(not\\s+null\\s+)?(access)\\b", - "end": "(?i)(?=(with|;))", - "beginCaptures": { - "1": { - "name": "storage.visibility.ada" - }, - "2": { - "name": "storage.visibility.ada" - } - }, - "patterns": [ - { - "name": "storage.visibility.ada", - "match": "(?i)\\ball\\b" - }, - { - "name": "storage.modifier.ada", - "match": "(?i)\\bconstant\\b" - }, - { - "include": "#subtype_mark" - } - ] - }, - "actual_parameter_part": { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "include": "#parameter_association" - } - ] - }, - "adding_operator": { - "name": "keyword.operator.adding.ada", - "match": "(\\+|-|\\&)" - }, - "array_aggregate": { - "name": "meta.definition.array.aggregate.ada", - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "include": "#positional_array_aggregate" - }, - { - "include": "#array_component_association" - } - ] - }, - "array_component_association": { - "name": "meta.definition.array.aggregate.component.ada", - "match": "(?i)\\b([^(=>)]*)\\s*(=>)\\s*([^,\\)]+)", - "captures": { - "1": { - "name": "variable.name.ada" - }, - "2": { - "name": "keyword.other.ada" - }, - "3": { - "patterns": [ - { - "name": "keyword.modifier.unknown.ada", - "match": "<>" - }, - { - "include": "#expression" - } - ] - } - } - }, - "array_dimensions": { - "name": "meta.declaration.type.definition.array.dimensions.ada", - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "storage.modifier.ada", - "match": "(?i)\\brange\\b" - }, - { - "name": "keyword.modifier.unknown.ada", - "match": "<>" - }, - { - "name": "keyword.ada", - "match": "\\.\\." - }, - { - "include": "#expression" - }, - { - "patterns": [ - { - "include": "#subtype_mark" - } - ] - } - ] - }, - "array_type_definition": { - "name": "meta.declaration.type.definition.array.ada", - "begin": "(?i)\\barray\\b", - "end": "(?i)(?=(with|;))", - "beginCaptures": { - "0": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#array_dimensions" - }, - { - "name": "storage.modifier.ada", - "match": "(?i)\\bof\\b" - }, - { - "name": "storage.visibility.ada", - "match": "(?i)\\baliased\\b" - }, - { - "include": "#access_definition" - }, - { - "include": "#subtype_mark" - } - ] - }, - "aspect_clause": { - "name": "meta.aspect.clause.ada", - "begin": "(?i)\\b(for)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "patterns": [ - { - "include": "#subtype_mark" - } - ] - }, - "3": { - "name": "punctuation.ada" - }, - "5": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\buse\\b", - "end": "(?=;)", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#record_representation_clause" - }, - { - "include": "#array_aggregate" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?i)(?<=for)", - "end": "(?i)(?=use)", - "captures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "match": "((?:\\w|\\d|_)+)('((?:\\w|\\d|_)+))?", - "captures": { - "1": { - "patterns": [ - { - "include": "#subtype_mark" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attribute" - } - ] - } - } - } - ] - } - ] - }, - "aspect_definition": { - "name": "meta.aspect.definition.ada", - "begin": "=>", - "end": "(?i)(?=(,|;|\\bis\\b))", - "beginCaptures": { - "0": { - "name": "keyword.other.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "aspect_mark": { - "name": "meta.aspect.mark.ada", - "match": "(?i)\\b((?:\\w|\\d|\\.|_)+)(?:(')(class))?\\b", - "captures": { - "1": { - "name": "keyword.control.directive.ada" - }, - "2": { - "name": "punctuation.ada" - }, - "3": { - "name": "entity.other.attribute-name.ada" - } - } - }, - "aspect_specification": { - "name": "meta.aspect.specification.ada", - "begin": "(?i)\\bwith\\b", - "end": "(?i)(?=(;|\\bis\\b))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "match": "(?i)\\b(null)\\s+(record)\\b", - "captures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "storage.modifier.ada" - } - } - }, - { - "begin": "(?i)\\brecord\\b", - "end": "(?i)\\b(end)\\s+(record)\\b", - "beginCaptures": { - "0": { - "name": "storage.modifier.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#component_item" - } - ] - }, - { - "match": "(?i)\\bprivate\\b", - "captures": { - "0": { - "name": "storage.visibility.ada" - } - } - }, - { - "include": "#aspect_definition" - }, - { - "include": "#aspect_mark" - }, - { - "include": "#comment" - } - ] - }, - "assignment_statement": { - "name": "meta.statement.assignment.ada", - "begin": "\\b((?:\\w|\\d|\\.|_|\\(|\\)|\"|'|\\s)+)\\s*(:=)", - "end": ";", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "((?:\\w|\\d|\\.|_)+)", - "name": "variable.name.ada" - }, - { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "2": { - "name": "keyword.operator.new.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comment" - } - ] - }, - "attribute": { - "name": "meta.attribute.ada", - "match": "(')((?:\\w|\\d|_)+)\\b", - "captures": { - "1": { - "name": "punctuation.ada" - }, - "2": { - "name": "entity.other.attribute-name.ada" - } - } - }, - "based_literal": { - "name": "constant.numeric.ada", - "match": "(?i)(\\d(?:(_)?\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?", - "captures": { - "1": { - "name": "constant.numeric.base.ada" - }, - "2": { - "name": "punctuation.ada" - }, - "3": { - "name": "punctuation.ada" - }, - "4": { - "name": "punctuation.radix-point.ada" - }, - "5": { - "name": "punctuation.ada" - }, - "6": { - "name": "constant.numeric.base.ada" - }, - "7": { - "patterns": [ - { - "include": "#exponent_part" - } - ] - } - } - }, - "basic_declarative_item": { - "patterns": [ - { - "include": "#basic_declaration" - }, - { - "include": "#aspect_clause" - }, - { - "include": "#use_clause" - }, - { - "include": "#keyword" - } - ] - }, - "basic_declaration": { - "patterns": [ - { - "include": "#type_declaration" - }, - { - "include": "#subtype_declaration" - }, - { - "include": "#exception_declaration" - }, - { - "include": "#object_declaration" - }, - { - "include": "#single_protected_declaration" - }, - { - "include": "#single_task_declaration" - }, - { - "include": "#subprogram_specification" - }, - { - "include": "#package_declaration" - }, - { - "include": "#pragma" - }, - { - "include": "#comment" - } - ] - }, - "block_statement": { - "name": "meta.statement.block.ada", - "begin": "(?i)\\bdeclare\\b", - "end": "(?i)\\b(end)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.label.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)(?<=declare)", - "end": "(?i)\\bbegin\\b", - "endCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#body" - }, - { - "include": "#basic_declarative_item" - } - ] - }, - { - "begin": "(?i)(?<=begin)", - "end": "(?i)(?=end)", - "patterns": [ - { - "include": "#statement" - } - ] - } - ] - }, - "body": { - "patterns": [ - { - "include": "#subprogram_body" - }, - { - "include": "#package_body" - }, - { - "include": "#task_body" - }, - { - "include": "#protected_body" - } - ] - }, - "case_statement": { - "name": "meta.statement.case.ada", - "begin": "(?i)\\bcase\\b", - "end": "(?i)\\b(end)\\s+(case)\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)(?<=case)\\b", - "end": "(?i)\\bis\\b", - "endCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.statement.case.alternative.ada", - "begin": "(?i)\\bwhen\\b", - "end": "=>", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "keyword.modifier.unknown.ada", - "match": "(?i)\\bothers\\b" - }, - { - "name": "punctuation.ada", - "match": "\\|" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "character_literal": { - "name": "string.quoted.single.ada", - "match": "'.'", - "captures": { - "0": { - "patterns": [ - { - "name": "punctuation.definition.string.ada", - "match": "'" - } - ] - } - } - }, - "comment": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment-section" - }, - { - "include": "#comment-doc" - }, - { - "include": "#comment-line" - } - ] - }, - "comment-doc": { - "name": "comment.block.documentation.ada", - "match": "(--)\\s*(@)(\\w+)\\s+(.*)$", - "captures": { - "1": { - "name": "comment.line.double-dash.ada" - }, - "2": { - "name": "punctuation.definition.tag.ada" - }, - "3": { - "name": "entity.name.tag.ada" - }, - "4": { - "name": "comment.line.double-dash.ada" - } - } - }, - "comment-line": { - "name": "comment.line.double-dash.ada", - "match": "--.*$" - }, - "comment-section": { - "name": "comment.line.double-dash.ada", - "match": "--\\s*([^-].*?[^-])\\s*--\\s*$", - "captures": { - "1": { - "name": "entity.name.section.ada" - } - } - }, - "component_clause": { - "name": "meta.aspect.clause.record.representation.component.ada", - "begin": "(?i)\\b((?:\\w|\\d|_)+)\\b", - "beginCaptures": { - "0": { - "name": "variable.name.ada" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bat\\b", - "end": "(?i)\\b(?=range)\\b", - "beginCaptures": { - "0": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#range_constraint" - } - ] - }, - "component_declaration": { - "name": "meta.declaration.type.definition.record.component.ada", - "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)", - "end": ";", - "beginCaptures": { - "1": { - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "variable.name.ada", - "match": "\\b(\\w|\\d|_)+\\b" - } - ] - }, - "2": { - "name": "punctuation.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "patterns": [ - { - "name": "keyword.operator.new.ada", - "match": ":=" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#component_definition" - } - ] - }, - "component_definition": { - "patterns": [ - { - "name": "storage.visibility.ada", - "match": "(?i)\\baliased\\b" - }, - { - "name": "storage.modifier.ada", - "match": "(?i)\\brange\\b" - }, - { - "name": "keyword.ada", - "match": "\\.\\." - }, - { - "include": "#access_definition" - }, - { - "include": "#subtype_mark" - } - ] - }, - "component_item": { - "patterns": [ - { - "include": "#component_declaration" - }, - { - "include": "#variant_part" - }, - { - "include": "#comment" - }, - { - "include": "#aspect_clause" - }, - { - "match": "(?i)\\b(null)\\s*(;)", - "captures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "punctuation.ada" - } - } - } - ] - }, - "composite_constraint": { - "name": "meta.declaration.constraint.composite.ada", - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "keyword.ada", - "match": "\\.\\." - }, - { - "match": "(?i)\\b((?:\\w|\\d|_)+)\\s*(=>)\\s*([^,\\)])+\\b", - "captures": { - "1": { - "name": "variable.name.ada" - }, - "2": { - "name": "keyword.other.ada" - }, - "3": { - "patterns": [ - { - "include": "#expression" - } - ] - } - } - }, - { - "include": "#expression" - } - ] - }, - "decimal_literal": { - "name": "constant.numeric.ada", - "match": "\\d(?:(_)?\\d)*(?:(\\.)\\d(?:(_)?\\d)*)?([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?", - "captures": { - "1": { - "name": "punctuation.ada" - }, - "2": { - "name": "punctuation.radix-point.ada" - }, - "3": { - "name": "punctuation.ada" - }, - "4": { - "patterns": [ - { - "include": "#exponent_part" - } - ] - } - } - }, - "declarative_item": { - "patterns": [ - { - "include": "#body" - }, - { - "include": "#basic_declarative_item" - } - ] - }, - "delay_statement": { - "patterns": [ - { - "include": "#delay_until_statement" - }, - { - "include": "#delay_relative_statement" - } - ] - }, - "delay_until_statement": { - "name": "meta.statement.delay.until.ada", - "begin": "(?i)\\b(delay)\\s+(until)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "delay_relative_statement": { - "begin": "(?i)\\b(delay)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "derived_type_definition": { - "name": "meta.declaration.type.definition.derived.ada", - "patterns": [ - { - "begin": "(?i)\\bnew\\b", - "beginCaptures": { - "0": { - "name": "storage.modifier.ada" - } - }, - "end": "(?i)(?=(\\bwith\\b|;))", - "patterns": [ - { - "name": "storage.modifier.ada", - "match": "(?i)\\band\\b" - }, - { - "include": "#subtype_mark" - } - ] - }, - { - "name": "storage.modifier.ada", - "match": "(?i)\\b(abstract|and|limited|tagged)\\b" - }, - { - "name": "storage.visibility.ada", - "match": "(?i)\\bprivate\\b" - }, - { - "include": "#subtype_mark" - } - ] - }, - "discriminant_specification": { - "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)", - "end": "(?=(;|\\)))", - "beginCaptures": { - "1": { - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "variable.name.ada", - "match": "\\b(\\w|\\d|_)+\\b" - } - ] - }, - "2": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": ":=", - "end": "(?=(;|\\)))", - "beginCaptures": { - "0": { - "name": "keyword.operator.new.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "(?i)(not\\s+null\\s+)?((?:\\w|\\d|\\.|_)+)\\b", - "captures": { - "1": { - "name": "storage.visibility.ada" - }, - "2": { - "patterns": [ - { - "include": "#subtype_mark" - } - ] - } - } - }, - { - "include": "#access_definition" - } - ] - }, - "entry_body": { - "begin": "(?i)\\b(entry)\\s+((?:\\w|\\d|_)+)\\b", - "end": "(?i)\\b(end)\\s*(\\s\\2)\\s*(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.entry.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.entry.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)\\b(?=begin)\\b", - "patterns": [ - { - "include": "#declarative_item" - } - ] - }, - { - "begin": "(?i)\\bbegin\\b", - "end": "(?i)\\b(?=end)\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - { - "begin": "(?i)\\bwhen\\b", - "end": "(?i)\\b(?=is)\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#parameter_profile" - } - ] - }, - "entry_declaration": { - "begin": "(?i)\\b(?:(not)?\\s+(overriding)\\s+)?(entry)\\s+((?:\\w|\\d|_)+)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "storage.modifier.ada" - }, - "3": { - "name": "keyword.ada" - }, - "4": { - "name": "entity.name.entry.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#parameter_profile" - } - ] - }, - "enumeration_type_definition": { - "name": "meta.declaration.type.definition.enumeration.ada", - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "variable.name.ada", - "match": "\\b(\\w|\\d|_)+\\b" - }, - { - "include": "#comment" - } - ] - }, - "exception_declaration": { - "name": "meta.declaration.exception.ada", - "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)\\s*(exception)", - "beginCaptures": { - "1": { - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "entity.name.exception.ada", - "match": "\\b(\\w|\\d|_)+\\b" - } - ] - }, - "2": { - "name": "punctuation.ada" - }, - "3": { - "name": "storage.type.ada" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "match": "(?i)\\b(renames)\\s+((\\w|\\d|_|\\.)+)", - "name": "entity.name.exception.ada" - } - ] - }, - "exit_statement": { - "name": "meta.statement.exit.ada", - "begin": "(?i)\\bexit\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bwhen\\b", - "end": "(?=;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "(?:\\w|\\d|_)+", - "name": "entity.name.label.ada" - } - ] - }, - "exponent_part": { - "match": "([eE])(\\+|\\-)?\\d(?:(_)?\\d)*", - "captures": { - "1": { - "name": "punctuation.exponent-mark.ada" - }, - "2": { - "name": "keyword.operator.unary.ada" - }, - "3": { - "name": "punctuation.ada" - } - } - }, - "expression": { - "name": "meta.expression.ada", - "patterns": [ - { - "match": "(?i)\\bnull\\b", - "name": "constant.language.ada" - }, - { - "match": "=>(\\+)?", - "name": "keyword.other.ada" - }, - { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": ",", - "name": "punctuation.ada" - }, - { - "match": "\\.\\.", - "name": "keyword.ada" - }, - { - "include": "#value" - }, - { - "include": "#attribute" - }, - { - "include": "#comment" - }, - { - "include": "#operator" - }, - { - "match": "(?i)\\b(and|or|xor)\\b", - "name": "keyword.ada" - }, - { - "match": "(?i)\\b(if|then|else|elsif|in|for|(?<!\\.)all|some|\\.\\.|delta|with)\\b", - "name": "keyword.ada" - } - ] - }, - "for_loop_statement": { - "name": "meta.statement.loop.for.ada", - "begin": "(?i)\\bfor\\b", - "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - }, - "3": { - "name": "entity.name.label.ada" - }, - "4": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)(?<=for)", - "end": "(?i)\\bloop\\b", - "endCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "match": "(?i)\\b((?:\\w|\\d|_)+)\\s+(in)(\\s+reverse)?\\b", - "captures": { - "1": { - "name": "variable.name.ada" - }, - "2": { - "name": "keyword.control.ada" - }, - "3": { - "name": "keyword.control.ada" - } - } - }, - { - "match": "(?i)\\b((?:\\w|\\d|_)+)(?:\\s*(:)\\s*((?:\\w|\\d|\\.|_)+))?\\s+(of)(\\s+reverse)?\\b", - "captures": { - "1": { - "name": "variable.name.ada" - }, - "2": { - "name": "punctuation.ada" - }, - "3": { - "patterns": [ - { - "include": "#subtype_mark" - } - ] - }, - "4": { - "name": "keyword.control.ada" - }, - "5": { - "name": "keyword.control.ada" - } - } - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "full_type_declaration": { - "patterns": [ - { - "include": "#task_type_declaration" - }, - { - "include": "#regular_type_declaration" - } - ] - }, - "function_body": { - "name": "meta.declaration.function.body.ada", - "begin": "(?i)\\b(overriding\\s+)?(function)\\s+(?:((?:\\w|\\d|\\.|_)+\\b)|(\".+\"))", - "end": "(?i)(?:\\b(end)\\s+(\\3|\\4)\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "storage.visibility.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "name": "entity.name.function.ada" - }, - "4": { - "patterns": [ - { - "include": "#string_literal" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.function.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bbegin\\b", - "end": "(?i)(?=end)", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#handled_sequence_of_statements" - } - ] - }, - { - "include": "#aspect_specification" - }, - { - "include": "#result_profile" - }, - { - "include": "#subprogram_renaming_declaration" - }, - { - "include": "#parameter_profile" - }, - { - "name": "meta.function.body.spec_part.ada", - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)(?=(with|begin|;))", - "patterns": [ - { - "name": "meta.declaration.package.generic.ada", - "begin": "(?i)\\bnew\\b", - "beginCaptures": { - "0": { - "name": "keyword.operator.new.ada" - } - }, - "end": "(?=;)", - "patterns": [ - { - "match": "((?:\\w|\\d|\\.|_)+)", - "name": "entity.name.function.ada" - }, - { - "include": "#actual_parameter_part" - } - ] - }, - { - "name": "meta.declaration.function.abstract.ada", - "match": "(?i)\\babstract\\b", - "captures": { - "0": { - "name": "storage.modifier.ada" - } - } - }, - { - "include": "#declarative_item" - }, - { - "include": "#subprogram_renaming_declaration" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "function_specification": { - "patterns": [ - { - "include": "#function_body" - } - ] - }, - "goto_statement": { - "name": "meta.statement.goto.ada", - "begin": "(?i)\\bgoto\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.goto.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [{}] - }, - "guard": { - "begin": "(?i)\\bwhen\\b", - "end": "=>", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "keyword.other.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "handled_sequence_of_statements": { - "patterns": [ - { - "name": "meta.handler.exception.ada", - "begin": "(?i)\\bexception\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)\\b(?=end)\\b", - "patterns": [ - { - "begin": "(?i)\\bwhen\\b", - "end": "=>", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "0": { - "name": "keyword.other.ada" - } - }, - "patterns": [ - { - "match": "\\b((?:\\w|\\d|\\.|_)+)\\s*(:)", - "captures": { - "1": { - "name": "variable.name.ada" - }, - "2": { - "name": "punctuation.ada" - } - } - }, - { - "match": "\\|", - "name": "punctuation.ada" - }, - { - "match": "(?i)\\bothers\\b", - "name": "keyword.ada" - }, - { - "match": "(?:\\w|\\d|\\.|_)+", - "name": "entity.name.exception.ada" - } - ] - }, - { - "include": "#statement" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "highest_precedence_operator": { - "name": "keyword.operator.highest-precedence.ada", - "match": "(?i)(\\*\\*|\\babs\\b|\\bnot\\b)" - }, - "if_statement": { - "name": "meta.statement.if.ada", - "begin": "(?i)\\bif\\b", - "end": "(?i)\\b(end)\\s+(if)\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\belsif\\b", - "end": "(?i)(?:(?<!\\sand)\\s+(?=then))", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?i)\\belse\\b", - "end": "(?i)(?=end)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - { - "begin": "(?i)(?<=if)\\b", - "end": "(?i)(?:(?<!\\sand)\\s+(?=then))", - "endCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?i)\\bthen\\b", - "end": "(?i)(?=(elsif|else|end))", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - } - ] - }, - "integer_type_definition": { - "name": "meta.declaration.type.definition.integer.ada", - "patterns": [ - { - "include": "#signed_integer_type_definition" - }, - { - "include": "#modular_type_definition" - } - ] - }, - "interface_type_definition": { - "name": "meta.declaration.type.definition.interface.ada", - "begin": "(?i)\\b(?:(limited|task|protected|synchronized)\\s+)?(interface)", - "end": "(?i)(?=(with|;))", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "name": "storage.modifier.ada", - "match": "(?i)\\band\\b" - }, - { - "include": "#subtype_mark" - } - ] - }, - "keyword": { - "patterns": [ - { - "name": "keyword.ada", - "match": "(?i)\\b(abort|abs|accept|all|and|at|begin|body|declare|delay|end|entry|exception|function|generic|in|is|mod|new|not|null|of|or|others|out|package|pragma|procedure|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|then|type|use|when|with|xor)\\b" - }, - { - "name": "keyword.control.ada", - "match": "(?i)\\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\\b" - }, - { - "name": "storage.modifier.ada", - "match": "(?i)\\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\\b" - }, - { - "name": "storage.visibility.ada", - "match": "(?i)\\b(private|overriding)\\b" - }, - { - "name": "keyword.modifier.unknown.ada", - "match": "<>" - }, - { - "name": "keyword.operator.arithmetic.ada", - "match": "(\\+|-|\\*|/)" - }, - { - "name": "keyword.operator.assignment.ada", - "match": ":=" - }, - { - "name": "keyword.operator.logic.ada", - "match": "(=|/=|<|>|<=|>=)" - }, - { - "name": "keyword.operator.concatenation.ada", - "match": "\\&" - } - ] - }, - "known_discriminant_part": { - "name": "meta.declaration.type.discriminant.ada", - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": ";" - }, - { - "include": "#discriminant_specification" - } - ] - }, - "label": { - "name": "meta.label.ada", - "match": "(<<)?((?:\\w|\\d|_)+)\\s*(:[^=]|>>)", - "captures": { - "1": { - "name": "punctuation.label.ada" - }, - "2": { - "name": "entity.name.label.ada" - }, - "3": { - "name": "punctuation.label.ada" - } - } - }, - "library_unit": { - "name": "meta.library.unit.ada", - "patterns": [ - { - "include": "#package_body" - }, - { - "include": "#package_specification" - }, - { - "include": "#subprogram_body" - } - ] - }, - "loop_statement": { - "patterns": [ - { - "include": "#simple_loop_statement" - }, - { - "include": "#while_loop_statement" - }, - { - "include": "#for_loop_statement" - } - ] - }, - "modular_type_definition": { - "begin": "(?i)\\b(mod)\\b", - "end": "(?i)(?=(with|;))", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "name": "keyword.modifier.unknown.ada", - "match": "<>" - }, - { - "include": "#expression" - } - ] - }, - "multiplying_operator": { - "name": "keyword.operator.multiplying.ada", - "match": "(?i)(\\*|/|\\bmod\\b|\\brem\\b)" - }, - "null_statement": { - "name": "meta.statement.null.ada", - "match": "(?i)\\b(null)\\s*(;)", - "captures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "punctuation.ada" - } - } - }, - "object_declaration": { - "name": "meta.declaration.object.ada", - "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)*)\\s*(:)", - "end": "(;)", - "beginCaptures": { - "1": { - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "variable.name.ada", - "match": "\\b(\\w|\\d|_)+\\b" - } - ] - }, - "2": { - "name": "punctuation.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?<=:)", - "end": "(?:(?=;)|(:=)|(\\brenames\\b))", - "endCaptures": { - "1": { - "name": "keyword.operator.new.ada" - }, - "2": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "name": "storage.modifier.ada", - "match": "(?i)\\bconstant\\b" - }, - { - "name": "storage.visibility.ada", - "match": "(?i)\\baliased\\b" - }, - { - "include": "#aspect_specification" - }, - { - "include": "#subtype_mark" - } - ] - }, - { - "begin": "(?<=:=)", - "end": "(?=;)", - "patterns": [ - { - "include": "#aspect_specification" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<=renames)", - "end": "(?=;)", - "patterns": [ - { - "include": "#aspect_specification" - } - ] - } - ] - }, - "operator": { - "patterns": [ - { - "include": "#highest_precedence_operator" - }, - { - "include": "#multiplying_operator" - }, - { - "include": "#adding_operator" - }, - { - "include": "#relational_operator" - }, - { - "include": "#logical_operator" - } - ] - }, - "package_body": { - "name": "meta.declaration.package.body.ada", - "begin": "(?i)\\b(package)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b", - "end": "(?i)\\b(end)\\s+(\\3)\\s*(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "patterns": [ - { - "include": "#package_mark" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "patterns": [ - { - "include": "#package_mark" - } - ] - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bbegin\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)\\b(?=end)\\b", - "patterns": [ - { - "include": "#handled_sequence_of_statements" - } - ] - }, - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)(?=(\\bbegin\\b|\\bend\\b))", - "patterns": [ - { - "match": "(?i)\\bprivate\\b", - "name": "keyword.ada" - }, - { - "include": "#declarative_item" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "#aspect_specification" - } - ] - }, - "package_declaration": { - "patterns": [ - { - "include": "#package_specification" - } - ] - }, - "package_mark": { - "name": "entity.name.package.ada", - "match": "\\b(\\w|\\d|\\.|_)+\\b" - }, - "package_specification": { - "name": "meta.declaration.package.specification.ada", - "begin": "(?i)\\b(package)\\s+((?:\\w|\\d|\\.|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s+(\\2)\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "patterns": [ - { - "include": "#package_mark" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "patterns": [ - { - "include": "#package_mark" - } - ] - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?=(end|;))", - "patterns": [ - { - "name": "meta.declaration.package.generic.ada", - "begin": "(?i)\\bnew\\b", - "beginCaptures": { - "0": { - "name": "keyword.operator.new.ada" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#package_mark" - }, - { - "include": "#actual_parameter_part" - } - ] - }, - { - "match": "(?i)\\bprivate\\b", - "name": "keyword.ada" - }, - { - "include": "#basic_declarative_item" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "#aspect_specification" - } - ] - }, - "parameter_association": { - "patterns": [ - { - "match": "((?:\\w|\\d|_)+)\\s*(=>)", - "captures": { - "1": { - "name": "variable.parameter.ada" - }, - "2": { - "name": "keyword.other.ada" - } - } - }, - { - "include": "#expression" - } - ] - }, - "parameter_profile": { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": ";" - }, - { - "include": "#parameter_specification" - } - ] - }, - "parameter_specification": { - "patterns": [ - { - "name": "meta.type.annotation.ada", - "begin": ":(?!=)", - "end": "(?=[:;)])", - "beginCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "keyword.ada", - "match": "(?i)\\b(in|out)\\b" - }, - { - "include": "#subtype_mark" - } - ] - }, - { - "begin": ":=", - "end": "(?=[:;)])", - "beginCaptures": { - "0": { - "name": "keyword.operator.new.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "punctuation.ada", - "match": "," - }, - { - "name": "variable.parameter.ada", - "match": "\\b(?:\\w|\\d|\\.|_)+\\b" - }, - { - "include": "#comment" - } - ] - }, - "pragma": { - "name": "meta.pragma.ada", - "begin": "(?i)\\b(pragma)\\s+((?:\\w|\\d|_)+)\\b", - "end": "(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "keyword.control.directive.ada" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "preprocessor": { - "name": "meta.preprocessor.ada", - "patterns": [ - { - "match": "^\\s*(#)(if|elsif)\\s+(.*)$", - "captures": { - "1": { - "name": "punctuation.definition.directive.ada" - }, - "2": { - "name": "keyword.control.directive.conditional.ada" - }, - "3": { - "patterns": [ - { - "include": "#expression" - } - ] - } - } - }, - { - "match": "^\\s*(#)(end if)(;)", - "captures": { - "1": { - "name": "punctuation.definition.directive.ada" - }, - "2": { - "name": "keyword.control.directive.conditional" - }, - "3": { - "name": "punctuation.ada" - } - } - }, - { - "match": "^\\s*(#)(else)", - "captures": { - "1": { - "name": "punctuation.definition.directive.ada" - }, - "2": { - "name": "keyword.control.directive.conditional" - } - } - } - ] - }, - "procedure_body": { - "name": "meta.declaration.procedure.body.ada", - "begin": "(?i)\\b(overriding\\s+)?(procedure)\\s+((?:\\w|\\d|\\.|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s+(\\3)\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "storage.visibility.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "name": "entity.name.function.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.function.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "end": "(?i)(?=(with|begin|;))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "name": "meta.declaration.package.generic.ada", - "begin": "(?i)\\bnew\\b", - "beginCaptures": { - "0": { - "name": "keyword.operator.new.ada" - } - }, - "end": "(?=;)", - "patterns": [ - { - "match": "((?:\\w|\\d|\\.|_)+)", - "name": "entity.name.function.ada" - }, - { - "include": "#actual_parameter_part" - } - ] - }, - { - "match": "(?i)\\b(null|abstract)\\b", - "name": "storage.modifier.ada" - }, - { - "include": "#declarative_item" - } - ] - }, - { - "begin": "(?i)\\bbegin\\b", - "end": "(?i)(?=\\bend\\b)", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#handled_sequence_of_statements" - } - ] - }, - { - "include": "#subprogram_renaming_declaration" - }, - { - "include": "#aspect_specification" - }, - { - "include": "#parameter_profile" - }, - { - "include": "#comment" - } - ] - }, - "procedure_call_statement": { - "name": "meta.statement.call.ada", - "begin": "(?i)\\b((?:\\w|\\d|_|\\.)+)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "entity.name.function.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#attribute" - }, - { - "include": "#actual_parameter_part" - }, - { - "include": "#comment" - } - ] - }, - "procedure_specification": { - "patterns": [ - { - "include": "#procedure_body" - } - ] - }, - "protected_body": { - "name": "meta.declaration.procedure.body.ada", - "begin": "(?i)\\b(protected)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s*(\\s\\3)\\s*)(;)", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "name": "entity.name.body.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.body.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "end": "(?i)\\b(?=end)\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#protected_operation_item" - } - ] - } - ] - }, - "protected_element_declaration": { - "patterns": [ - { - "include": "#subprogram_specification" - }, - { - "include": "#aspect_clause" - }, - { - "include": "#entry_declaration" - }, - { - "include": "#component_declaration" - }, - { - "include": "#pragma" - } - ] - }, - "protected_operation_item": { - "patterns": [ - { - "include": "#subprogram_specification" - }, - { - "include": "#subprogram_body" - }, - { - "include": "#aspect_clause" - }, - { - "include": "#entry_body" - } - ] - }, - "positional_array_aggregate": { - "name": "meta.definition.array.aggregate.positional.ada", - "patterns": [ - { - "match": "(?i)\\b(others)\\s*(=>)\\s*([^,\\)]+)", - "captures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "keyword.other.ada" - }, - "3": { - "patterns": [ - { - "name": "keyword.modifier.unknown.ada", - "match": "<>" - }, - { - "include": "#expression" - } - ] - } - } - }, - { - "include": "#expression" - } - ] - }, - "raise_statement": { - "name": "meta.statement.raise.ada", - "begin": "(?i)\\braise\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bwith\\b", - "end": "(?=;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "entity.name.exception.ada", - "match": "\\b(\\w|\\d|\\.|_)+\\b" - } - ] - }, - "raise_expression": { - "name": "meta.expression.raise.ada", - "begin": "(?i)\\braise\\b", - "end": "(?=;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bwith\\b", - "end": "(?=(;|\\))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "entity.name.exception.ada", - "match": "\\b(\\w|\\d|_)+\\b" - } - ] - }, - "range_constraint": { - "begin": "(?i)\\brange\\b", - "end": "(?=(\\bwith\\b|;))", - "beginCaptures": { - "0": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "name": "keyword.ada", - "match": "\\.\\." - }, - { - "name": "keyword.modifier.unknown.ada", - "match": "<>" - }, - { - "include": "#expression" - } - ] - }, - "relational_operator": { - "name": "keyword.operator.relational.ada", - "match": "(=|/=|<|<=|>|>=)" - }, - "record_representation_clause": { - "name": "meta.aspect.clause.record.representation.ada", - "begin": "(?i)\\b(record)\\b", - "end": "(?i)\\b(end)\\s+(record)\\b", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#component_clause" - }, - { - "include": "#comment" - } - ] - }, - "real_type_definition": { - "name": "meta.declaration.type.definition.real-type.ada", - "patterns": [ - { - "include": "#scalar_constraint" - } - ] - }, - "record_type_definition": { - "patterns": [ - { - "name": "meta.declaration.type.definition.record.null.ada", - "match": "(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(null)\\s+(record)\\b", - "captures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "storage.modifier.ada" - }, - "3": { - "name": "storage.modifier.ada" - }, - "4": { - "name": "storage.modifier.ada" - }, - "5": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#component_item" - } - ] - }, - { - "name": "meta.declaration.type.definition.record.ada", - "begin": "(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(record)\\b", - "end": "(?i)\\b(end)\\s+(record)\\b", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "storage.modifier.ada" - }, - "3": { - "name": "storage.modifier.ada" - }, - "4": { - "name": "storage.modifier.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#component_item" - } - ] - } - ] - }, - "regular_type_declaration": { - "name": "meta.declaration.type.definition.regular.ada", - "begin": "(?i)\\b(type)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "end": "(?i)(?=(with(?!\\s+(private))|;))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#type_definition" - } - ] - }, - { - "begin": "(?i)\\b(?<=type)\\b", - "end": "(?i)(?=(is|;))", - "patterns": [ - { - "include": "#known_discriminant_part" - }, - { - "include": "#subtype_mark" - } - ] - }, - { - "include": "#aspect_specification" - } - ] - }, - "requeue_statement": { - "name": "meta.statement.requeue.ada", - "begin": "(?i)\\brequeue\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "keyword.control.ada", - "match": "(?i)\\b(with|abort)\\b" - }, - { - "name": "entity.name.function.ada", - "match": "\\b(\\w|\\d|\\.|_)+\\b" - } - ] - }, - "result_profile": { - "begin": "(?i)\\breturn\\b", - "end": "(?=(is|with|renames|;))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#subtype_mark" - } - ] - }, - "return_statement": { - "name": "meta.statement.return.ada", - "begin": "(?i)\\breturn\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bdo\\b", - "end": "(?i)\\b(end)\\s+(return)\\s*(?=;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#label" - }, - { - "include": "#statement" - } - ] - }, - { - "match": "\\b((?:\\w|\\d|_)+)\\s*(:)\\s*((?:\\w|\\d|\\.|_)+)\\b", - "captures": { - "1": { - "name": "variable.name.ada" - }, - "2": { - "name": "punctuation.ada" - }, - "3": { - "name": "entity.name.type.ada" - } - } - }, - { - "match": ":=", - "name": "keyword.operator.new.ada" - }, - { - "include": "#expression" - } - ] - }, - "scalar_constraint": { - "name": "meta.declaration.constraint.scalar.ada", - "patterns": [ - { - "begin": "(?i)\\b(digits|delta)\\b", - "end": "(?i)(?=\\brange\\b|\\bdigits\\b|\\bwith\\b|;)", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#range_constraint" - }, - { - "include": "#expression" - } - ] - }, - "select_alternative": { - "patterns": [ - { - "begin": "(?i)\\bterminate\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - } - }, - { - "include": "#statement" - } - ] - }, - "select_statement": { - "name": "meta.statement.select.ada", - "begin": "(?i)\\bselect\\b", - "end": "(?i)\\b(end)\\s+(select)\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\b(?:(or)|(?<=select))\\b", - "end": "(?i)\\b(?=(or|else|end))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#guard" - }, - { - "include": "#select_alternative" - } - ] - }, - { - "begin": "(?i)\\belse\\b", - "end": "(?i)\\b(?=end)\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - } - ] - }, - "signed_integer_type_definition": { - "patterns": [ - { - "include": "#range_constraint" - } - ] - }, - "simple_loop_statement": { - "name": "meta.statement.loop.ada", - "begin": "(?i)\\bloop\\b", - "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - }, - "3": { - "name": "entity.name.label.ada" - }, - "4": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - "single_protected_declaration": { - "name": "meta.declaration.protected.ada", - "begin": "(?i)\\b(protected)\\s+((?:\\w|\\d|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.protected.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.protected.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "end": "(?i)(?=(\\bend\\b|;))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bnew\\b", - "end": "(?i)\\bwith\\b", - "captures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "match": "(?i)\\band\\b", - "name": "keyword.ada" - }, - { - "include": "#subtype_mark" - }, - { - "include": "#comment" - } - ] - }, - { - "match": "(?i)\\bprivate\\b", - "name": "keyword.ada" - }, - { - "include": "#protected_element_declaration" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "single_task_declaration": { - "begin": "(?i)\\b(task)\\s+((?:\\w|\\d|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.task.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.task.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)\\b(?=end)\\b", - "patterns": [ - { - "begin": "(?i)\\bnew\\b", - "end": "(?i)\\bwith\\b", - "captures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "match": "(?i)\\band\\b", - "name": "keyword.ada" - }, - { - "include": "#subtype_mark" - }, - { - "include": "#comment" - } - ] - }, - { - "match": "(?i)\\bprivate\\b", - "name": "keyword.ada" - }, - { - "include": "#task_item" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "statement": { - "patterns": [ - { - "begin": "(?i)\\bbegin\\b", - "end": "(?i)\\b(end)\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#handled_sequence_of_statements" - } - ] - }, - { - "include": "#label" - }, - { - "include": "#null_statement" - }, - { - "include": "#return_statement" - }, - { - "include": "#assignment_statement" - }, - { - "include": "#exit_statement" - }, - { - "include": "#goto_statement" - }, - { - "include": "#requeue_statement" - }, - { - "include": "#delay_statement" - }, - { - "include": "#abort_statement" - }, - { - "include": "#raise_statement" - }, - { - "include": "#if_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "#loop_statement" - }, - { - "include": "#block_statement" - }, - { - "include": "#select_statement" - }, - { - "include": "#accept_statement" - }, - { - "include": "#pragma" - }, - { - "include": "#procedure_call_statement" - }, - { - "include": "#comment" - } - ] - }, - "string_literal": { - "name": "string.quoted.double.ada", - "match": "(\").*?(\")", - "captures": { - "1": { - "name": "punctuation.definition.string.ada" - }, - "2": { - "name": "punctuation.definition.string.ada" - } - } - }, - "subprogram_body": { - "name": "meta.declaration.subprogram.body.ada", - "patterns": [ - { - "include": "#procedure_body" - }, - { - "include": "#function_body" - } - ] - }, - "subprogram_renaming_declaration": { - "begin": "(?i)\\brenames\\b", - "end": "(?=(with|;))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "match": "(?:\\w|\\d|_|\\.)+", - "name": "entity.name.function.ada" - } - ] - }, - "subprogram_specification": { - "name": "meta.declaration.subprogram.specification.ada", - "patterns": [ - { - "include": "#procedure_specification" - }, - { - "include": "#function_specification" - } - ] - }, - "subtype_declaration": { - "name": "meta.declaration.subtype.ada", - "begin": "(?i)\\bsubtype\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "storage.modifier.ada", - "match": "(?i)\\b(not\\s+null)\\b" - }, - { - "include": "#composite_constraint" - }, - { - "include": "#aspect_specification" - }, - { - "include": "#subtype_indication" - } - ] - }, - { - "begin": "(?i)(?<=subtype)", - "end": "(?i)\\b(?=is)\\b", - "patterns": [ - { - "include": "#subtype_mark" - } - ] - } - ] - }, - "subtype_indication": { - "name": "meta.declaration.indication.subtype.ada", - "patterns": [ - { - "include": "#scalar_constraint" - }, - { - "include": "#subtype_mark" - } - ] - }, - "subtype_mark": { - "patterns": [ - { - "name": "storage.visibility.ada", - "match": "(?i)\\b(access|aliased|not\\s+null|constant)\\b" - }, - { - "include": "#attribute" - }, - { - "include": "#actual_parameter_part" - }, - { - "begin": "(?i)\\b(procedure|function)\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?=(;|\\)))", - "patterns": [ - { - "include": "#parameter_profile" - }, - { - "begin": "(?i)\\breturn\\b", - "end": "(?=(;|\\)))", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#subtype_mark" - } - ] - } - ] - }, - { - "name": "entity.name.type.ada", - "match": "\\b(?:\\w|\\d|\\.|_)+\\b", - "captures": { - "0": { - "patterns": [ - { - "name": "punctuation.ada", - "match": "[_.]" - } - ] - } - } - }, - { - "include": "#comment" - } - ] - }, - "task_body": { - "name": "meta.declaration.task.body.ada", - "begin": "(?i)\\b(task)\\s+(body)\\s+((\\w|\\d|\\.|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "name": "entity.name.task.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.task.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\bbegin\\b", - "end": "(?i)(?=end)", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "include": "#handled_sequence_of_statements" - } - ] - }, - { - "include": "#aspect_specification" - }, - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)(?=(with|begin))", - "patterns": [ - { - "include": "#declarative_item" - } - ] - } - ] - }, - "task_item": { - "patterns": [ - { - "include": "#aspect_clause" - }, - { - "include": "#entry_declaration" - } - ] - }, - "task_type_declaration": { - "name": "meta.declaration.type.task.ada", - "begin": "(?i)\\b(task)\\s+(type)\\s+((\\w|\\d|\\.|_)+)\\b", - "end": "(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)", - "beginCaptures": { - "1": { - "name": "storage.modifier.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "name": "entity.name.task.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "entity.name.task.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "include": "#known_discriminant_part" - }, - { - "begin": "(?i)\\bis\\b", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "end": "(?i)\\b(?=end)\\b", - "patterns": [ - { - "begin": "(?i)\\bnew\\b", - "end": "(?i)\\bwith\\b", - "captures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "match": "(?i)\\band\\b", - "name": "keyword.ada" - }, - { - "include": "#subtype_mark" - }, - { - "include": "#comment" - } - ] - }, - { - "match": "(?i)\\bprivate\\b", - "name": "keyword.ada" - }, - { - "include": "#task_item" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "type_declaration": { - "name": "meta.declaration.type.ada", - "patterns": [ - { - "include": "#full_type_declaration" - } - ] - }, - "type_definition": { - "name": "meta.declaration.type.definition.ada", - "patterns": [ - { - "include": "#enumeration_type_definition" - }, - { - "include": "#integer_type_definition" - }, - { - "include": "#real_type_definition" - }, - { - "include": "#array_type_definition" - }, - { - "include": "#record_type_definition" - }, - { - "include": "#access_type_definition" - }, - { - "include": "#interface_type_definition" - }, - { - "include": "#derived_type_definition" - } - ] - }, - "use_clause": { - "name": "meta.context.use.ada", - "patterns": [ - { - "include": "#use_type_clause" - }, - { - "include": "#use_package_clause" - } - ] - }, - "use_package_clause": { - "name": "meta.context.use.package.ada", - "begin": "(?i)\\buse\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.other.using.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "include": "#package_mark" - } - ] - }, - "use_type_clause": { - "name": "meta.context.use.type.ada", - "begin": "(?i)\\b(use)\\s+(?:(all)\\s+)?(type)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.other.using.ada" - }, - "2": { - "name": "keyword.modifier.ada" - }, - "3": { - "name": "keyword.modifier.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "include": "#subtype_mark" - } - ] - }, - "value": { - "patterns": [ - { - "include": "#based_literal" - }, - { - "include": "#decimal_literal" - }, - { - "include": "#character_literal" - }, - { - "include": "#string_literal" - } - ] - }, - "variant_part": { - "name": "meta.declaration.variant.ada", - "begin": "(?i)\\bcase\\b", - "end": "(?i)\\b(end)\\s+(case);", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.ada" - }, - "2": { - "name": "keyword.ada" - }, - "3": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)\\b(?<=case)\\b", - "end": "(?i)\\bis\\b", - "endCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "patterns": [ - { - "match": "(?:\\w|\\d|_)+", - "name": "variable.name.ada" - }, - { - "include": "#comment" - } - ] - }, - { - "begin": "(?i)\\b(?<=is)\\b", - "end": "(?i)\\b(?=end)\\b", - "patterns": [ - { - "begin": "(?i)\\bwhen\\b", - "end": "=>", - "beginCaptures": { - "0": { - "name": "keyword.ada" - } - }, - "endCaptures": { - "0": { - "name": "keyword.other.ada" - } - }, - "patterns": [ - { - "match": "\\|", - "name": "punctuation.ada" - }, - { - "match": "(?i)\\bothers\\b", - "name": "keyword.ada" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#component_item" - } - ] - } - ] - }, - "while_loop_statement": { - "name": "meta.statement.loop.while.ada", - "begin": "(?i)\\bwhile\\b", - "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", - "beginCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.ada" - }, - "2": { - "name": "keyword.control.ada" - }, - "3": { - "name": "entity.name.label.ada" - }, - "4": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "begin": "(?i)(?<=while)\\b", - "end": "(?i)\\bloop\\b", - "endCaptures": { - "0": { - "name": "keyword.control.ada" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "with_clause": { - "name": "meta.context.with.ada", - "begin": "(?i)\\b(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.modifier.ada" - }, - "2": { - "name": "storage.visibility.ada" - }, - "3": { - "name": "keyword.other.using.ada" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.ada" - } - }, - "patterns": [ - { - "name": "punctuation.ada", - "match": "," - }, - { - "include": "#package_mark" - } - ] - } - }, - "scopeName": "source.ada" -} diff --git a/lib/grammars/apache.tmLanguage.json b/lib/grammars/apache.tmLanguage.json deleted file mode 100644 index 0ed1954..0000000 --- a/lib/grammars/apache.tmLanguage.json +++ /dev/null @@ -1,562 +0,0 @@ -{ - "fileTypes": [ - "conf", - "CONF", - "envvars", - "htaccess", - "HTACCESS", - "htgroups", - "HTGROUPS", - "htpasswd", - "HTPASSWD", - ".htaccess", - ".HTACCESS", - ".htgroups", - ".HTGROUPS", - ".htpasswd", - ".HTPASSWD" - ], - "name": "apache", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.apacheconf" - } - }, - "match": "^(\\s)*(#).*$\\n?", - "name": "comment.line.hash.ini" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.tag.apacheconf" - }, - "2": { - "name": "entity.tag.apacheconf" - }, - "4": { - "name": "string.value.apacheconf" - }, - "5": { - "name": "punctuation.definition.tag.apacheconf" - } - }, - "match": "(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\\s(.+?))?(>)" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.tag.apacheconf" - }, - "2": { - "name": "entity.tag.apacheconf" - }, - "3": { - "name": "punctuation.definition.tag.apacheconf" - } - }, - "match": "(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(>)" - }, - { - "captures": { - "3": { - "name": "string.regexp.apacheconf" - }, - "4": { - "name": "string.replacement.apacheconf" - } - }, - "match": "(?<=(Rewrite(Rule|Cond)))\\s+(.+?)\\s+(.+?)($|\\s)" - }, - { - "captures": { - "2": { - "name": "entity.status.apacheconf" - }, - "3": { - "name": "string.regexp.apacheconf" - }, - "5": { - "name": "string.path.apacheconf" - } - }, - "match": "(?<=RedirectMatch)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?" - }, - { - "captures": { - "2": { - "name": "entity.status.apacheconf" - }, - "3": { - "name": "string.path.apacheconf" - }, - "5": { - "name": "string.path.apacheconf" - } - }, - "match": "(?<=Redirect)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?" - }, - { - "captures": { - "1": { - "name": "string.regexp.apacheconf" - }, - "3": { - "name": "string.path.apacheconf" - } - }, - "match": "(?<=ScriptAliasMatch|AliasMatch)\\s+(.+?)\\s+((.+?)\\s)?" - }, - { - "captures": { - "1": { - "name": "string.path.apacheconf" - }, - "3": { - "name": "string.path.apacheconf" - } - }, - "match": "(?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\\s+(.+?)\\s+((.+?)($|\\s))?" - }, - { - "captures": { - "1": { - "name": "keyword.core.apacheconf" - } - }, - "match": "\\b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\\w+|MaxRanges)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.mpm.apacheconf" - } - }, - "match": "\\b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.access.apacheconf" - } - }, - "match": "\\b(Allow|Deny|Order)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.actions.apacheconf" - } - }, - "match": "\\b(Action|Script)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.alias.apacheconf" - } - }, - "match": "\\b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.auth.apacheconf" - } - }, - "match": "\\b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.auth_anon.apacheconf" - } - }, - "match": "\\b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.auth_dbm.apacheconf" - } - }, - "match": "\\b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.auth_digest.apacheconf" - } - }, - "match": "\\b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.auth_ldap.apacheconf" - } - }, - "match": "\\b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.autoindex.apacheconf" - } - }, - "match": "\\b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.filter.apacheconf" - } - }, - "match": "\\b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.cache.apacheconf" - } - }, - "match": "\\b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.cern_meta.apacheconf" - } - }, - "match": "\\b(MetaDir|MetaFiles|MetaSuffix)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.cgi.apacheconf" - } - }, - "match": "\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.cgid.apacheconf" - } - }, - "match": "\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.charset_lite.apacheconf" - } - }, - "match": "\\b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.dav.apacheconf" - } - }, - "match": "\\b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.deflate.apacheconf" - } - }, - "match": "\\b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.dir.apacheconf" - } - }, - "match": "\\b(DirectoryIndex|DirectorySlash|FallbackResource)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.disk_cache.apacheconf" - } - }, - "match": "\\b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.dumpio.apacheconf" - } - }, - "match": "\\b(DumpIOInput|DumpIOOutput)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.env.apacheconf" - } - }, - "match": "\\b(PassEnv|SetEnv|UnsetEnv)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.expires.apacheconf" - } - }, - "match": "\\b(ExpiresActive|ExpiresByType|ExpiresDefault)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.ext_filter.apacheconf" - } - }, - "match": "\\b(ExtFilterDefine|ExtFilterOptions)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.file_cache.apacheconf" - } - }, - "match": "\\b(CacheFile|MMapFile)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.filter.apacheconf" - } - }, - "match": "\\b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.headers.apacheconf" - } - }, - "match": "\\b(Header|RequestHeader)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.imap.apacheconf" - } - }, - "match": "\\b(ImapBase|ImapDefault|ImapMenu)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.include.apacheconf" - } - }, - "match": "\\b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.isapi.apacheconf" - } - }, - "match": "\\b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.ldap.apacheconf" - } - }, - "match": "\\b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.log.apacheconf" - } - }, - "match": "\\b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.mem_cache.apacheconf" - } - }, - "match": "\\b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.mime.apacheconf" - } - }, - "match": "\\b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.misc.apacheconf" - } - }, - "match": "\\b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.negotiation.apacheconf" - } - }, - "match": "\\b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.nw_ssl.apacheconf" - } - }, - "match": "\\b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.proxy.apacheconf" - } - }, - "match": "\\b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.rewrite.apacheconf" - } - }, - "match": "\\b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.setenvif.apacheconf" - } - }, - "match": "\\b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.so.apacheconf" - } - }, - "match": "\\b(LoadFile|LoadModule)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.ssl.apacheconf" - } - }, - "match": "\\b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.substitute.apacheconf" - } - }, - "match": "\\b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.usertrack.apacheconf" - } - }, - "match": "\\b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.vhost_alias.apacheconf" - } - }, - "match": "\\b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.php.apacheconf" - }, - "3": { - "name": "entity.property.apacheconf" - }, - "5": { - "name": "string.value.apacheconf" - } - }, - "match": "\\b(php_value|php_flag|php_admin_value|php_admin_flag)\\b(\\s+(.+?)(\\s+(\".+?\"|.+?))?)?\\s" - }, - { - "captures": { - "1": { - "name": "punctuation.variable.apacheconf" - }, - "3": { - "name": "variable.env.apacheconf" - }, - "4": { - "name": "variable.misc.apacheconf" - }, - "5": { - "name": "punctuation.variable.apacheconf" - } - }, - "match": "(%\\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})" - }, - { - "captures": { - "1": { - "name": "entity.mime-type.apacheconf" - } - }, - "match": "\\b((text|image|application|video|audio)/.+?)\\s" - }, - { - "captures": { - "1": { - "name": "entity.helper.apacheconf" - } - }, - "match": "\\b(?i)(export|from|unset|set|on|off)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.decimal.apacheconf" - } - }, - "match": "\\b(\\d+)\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.flag.apacheconf" - }, - "2": { - "name": "string.flag.apacheconf" - }, - "3": { - "name": "punctuation.definition.flag.apacheconf" - } - }, - "match": "\\s(\\[)(.*?)(\\])\\s" - } - ], - "scopeName": "source.apacheconf", - "uuid": "8747d9e4-b308-4fc2-9aa1-66b6919bc7b9" -} diff --git a/lib/grammars/apex.tmLanguage.json b/lib/grammars/apex.tmLanguage.json deleted file mode 100644 index e3ce90d..0000000 --- a/lib/grammars/apex.tmLanguage.json +++ /dev/null @@ -1,3199 +0,0 @@ -{ - "name": "apex", - "scopeName": "source.apex", - "fileTypes": ["apex", "cls", "trigger"], - "uuid": "F5FC6824-F257-43B1-B53A-14E1CCD18631", - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#directives" - }, - { - "include": "#declarations" - }, - { - "include": "#script-top-level" - } - ], - "repository": { - "directives": { - "patterns": [ - { - "include": "#punctuation-semicolon" - } - ] - }, - "declarations": { - "patterns": [ - { - "include": "#type-declarations" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "script-top-level": { - "patterns": [ - { - "include": "#method-declaration" - }, - { - "include": "#statement" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "type-declarations": { - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#annotation-declaration" - }, - { - "include": "#storage-modifier" - }, - { - "include": "#sharing-modifier" - }, - { - "include": "#class-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#trigger-declaration" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "class-or-trigger-members": { - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#storage-modifier" - }, - { - "include": "#sharing-modifier" - }, - { - "include": "#type-declarations" - }, - { - "include": "#field-declaration" - }, - { - "include": "#property-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#constructor-declaration" - }, - { - "include": "#method-declaration" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "interface-members": { - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#property-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#method-declaration" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "statement": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#while-statement" - }, - { - "include": "#do-statement" - }, - { - "include": "#for-statement" - }, - { - "include": "#switch-statement" - }, - { - "include": "#when-else-statement" - }, - { - "include": "#when-sobject-statement" - }, - { - "include": "#when-statement" - }, - { - "include": "#when-multiple-statement" - }, - { - "include": "#if-statement" - }, - { - "include": "#else-part" - }, - { - "include": "#goto-statement" - }, - { - "include": "#return-statement" - }, - { - "include": "#break-or-continue-statement" - }, - { - "include": "#throw-statement" - }, - { - "include": "#try-statement" - }, - { - "include": "#soql-query-expression" - }, - { - "include": "#local-declaration" - }, - { - "include": "#block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#merge-expression" - }, - { - "include": "#support-expression" - }, - { - "include": "#throw-expression" - }, - { - "include": "#this-expression" - }, - { - "include": "#trigger-context-declaration" - }, - { - "include": "#conditional-operator" - }, - { - "include": "#expression-operators" - }, - { - "include": "#soql-query-expression" - }, - { - "include": "#object-creation-expression" - }, - { - "include": "#array-creation-expression" - }, - { - "include": "#invocation-expression" - }, - { - "include": "#member-access-expression" - }, - { - "include": "#element-access-expression" - }, - { - "include": "#cast-expression" - }, - { - "include": "#literal" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#initializer-expression" - }, - { - "include": "#identifier" - } - ] - }, - "annotation-declaration": { - "begin": "([@][_[:alpha:]]+)\\b", - "beginCaptures": { - "1": { - "name": "storage.type.annotation.apex" - } - }, - "end": "(?<=\\)|$)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "support-expression": { - "begin": "(?x)\n(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s) # supported apex namespaces", - "beginCaptures": { - "1": { - "name": "support.class.apex" - } - }, - "end": "(?<=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)", - "patterns": [ - { - "include": "#support-type" - }, - { - "match": "(?:(\\.))([[:alpha:]]*)(?=\\()", - "captures": { - "1": { - "name": "punctuation.accessor.apex" - }, - "2": { - "name": "support.function.apex" - } - } - }, - { - "match": "(?:(\\.))([[:alpha:]]+)", - "captures": { - "1": { - "name": "punctuation.accessor.apex" - }, - "2": { - "name": "support.type.apex" - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#statement" - } - ] - }, - "support-type": { - "name": "support.apex", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#support-class" - }, - { - "include": "#support-functions" - }, - { - "include": "#support-name" - } - ] - }, - "support-class": { - "match": "\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b", - "captures": { - "1": { - "name": "support.class.apex" - } - } - }, - "support-functions": { - "match": "\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b", - "captures": { - "1": { - "name": "support.function.apex" - } - } - }, - "support-name": { - "patterns": [ - { - "match": "(\\.)\\s*([[:alpha:]]*)(?=\\()", - "captures": { - "1": { - "name": "punctuation.accessor.apex" - }, - "2": { - "name": "support.function.apex" - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "match": "(\\.)\\s*([_[:alpha:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.apex" - }, - "2": { - "name": "support.type.apex" - } - } - } - ] - }, - "support-arguments": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.apex" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.apex" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#support-type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "merge-expression": { - "begin": "(merge)\\b\\s+", - "beginCaptures": { - "1": { - "name": "support.function.apex" - } - }, - "end": "(?<=\\;)", - "patterns": [ - { - "include": "#object-creation-expression" - }, - { - "include": "#merge-type-statement" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "merge-type-statement": { - "match": "([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)", - "captures": { - "1": { - "name": "variable.other.readwrite.apex" - }, - "2": { - "name": "variable.other.readwrite.apex" - }, - "3": { - "name": "punctuation.terminator.statement.apex" - } - } - }, - "sharing-modifier": { - "name": "sharing.modifier.apex", - "match": "(?<!\\.)\\b(with sharing|without sharing|inherited sharing)\\b" - }, - "storage-modifier": { - "name": "storage.modifier.apex", - "match": "(?<!\\.)\\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\\b" - }, - "class-declaration": { - "begin": "(?=\\bclass\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?x)\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.class.apex" - }, - "2": { - "name": "entity.name.type.class.apex" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#extends-class" - }, - { - "include": "#implements-class" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#class-or-trigger-members" - } - ] - }, - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - } - ] - }, - "trigger-declaration": { - "begin": "(?=\\btrigger\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?x)\n\\b(trigger)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n\\b(on)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.trigger.apex" - }, - "2": { - "name": "entity.name.type.trigger.apex" - }, - "3": { - "name": "keyword.operator.trigger.on.apex" - }, - "4": { - "name": "storage.type.apex" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#trigger-type-statement" - }, - { - "include": "#trigger-operator-statement" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#statement" - }, - { - "include": "#class-or-trigger-members" - } - ] - }, - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - } - ] - }, - "trigger-type-statement": { - "match": "\\b(?:(before)|(after))\\b", - "captures": { - "1": { - "name": "keyword.control.trigger.before.apex" - }, - "2": { - "name": "keyword.control.trigger.after.apex" - } - } - }, - "trigger-operator-statement": { - "name": "keyword.operator.trigger.apex", - "match": "\\b(insert|update|delete|merge|upsert|undelete)\\b" - }, - "trigger-context-declaration": { - "begin": "\\b(?:(Trigger))\\b(\\.)\\b", - "beginCaptures": { - "1": { - "name": "support.class.trigger.apex" - }, - "2": { - "name": "punctuation.accessor.apex" - } - }, - "end": "(?=\\})|(?=;)|(?=\\)|(?=\\]))", - "patterns": [ - { - "name": "support.type.trigger.apex", - "match": "\\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\\b" - }, - { - "match": "(?:(\\??\\.))([[:alpha:]]+)(?=\\()", - "captures": { - "1": { - "patterns": [ - { - "include": "#punctuation-accessor" - }, - { - "include": "#operator-safe-navigation" - } - ] - }, - "2": { - "name": "support.function.trigger.apex" - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#trigger-type-statement" - }, - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#expression" - } - ] - }, - "enum-declaration": { - "begin": "(?=\\benum\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?=enum)", - "end": "(?=\\{)", - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "match": "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.other.enum.apex" - }, - "2": { - "name": "entity.name.type.enum.apex" - } - } - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation-comma" - }, - { - "begin": "@?[_[:alpha:]][_[:alnum:]]*", - "beginCaptures": { - "0": { - "name": "entity.name.variable.enum-member.apex" - } - }, - "end": "(?=(,|\\}))", - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - } - ] - }, - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - } - ] - }, - "interface-declaration": { - "begin": "(?=\\binterface\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.interface.apex" - }, - "2": { - "name": "entity.name.type.interface.apex" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#extends-class" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#interface-members" - } - ] - }, - { - "include": "#javadoc-comment" - }, - { - "include": "#comment" - } - ] - }, - "extends-class": { - "begin": "(extends)\\b\\s+([_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.extends.apex" - }, - "2": { - "name": "entity.name.type.extends.apex" - } - }, - "end": "(?={|implements)" - }, - "implements-class": { - "begin": "(implements)\\b\\s+([_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.implements.apex" - }, - "2": { - "name": "entity.name.type.implements.apex" - } - }, - "end": "(?={|extends)" - }, - "soql-query-expression": { - "begin": "\\b(SELECT)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.query.select.apex" - } - }, - "end": "(?=;)|(?=\\])|(?=\\))", - "patterns": [ - { - "include": "#soql-query-body" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#operator-assignment" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#expression-operators" - }, - { - "include": "#literal" - }, - { - "match": "([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\,)?", - "captures": { - "1": { - "name": "keyword.query.field.apex" - }, - "2": { - "name": "punctuation.separator.comma.apex" - } - } - } - ] - }, - "soql-query-body": { - "patterns": [ - { - "include": "#trigger-context-declaration" - }, - { - "include": "#soql-colon-vars" - }, - { - "include": "#soql-functions" - }, - { - "include": "#from-clause" - }, - { - "include": "#where-clause" - }, - { - "include": "#query-operators" - }, - { - "include": "#date-literals" - }, - { - "include": "#date-literal-with-params" - }, - { - "include": "#using-scope" - }, - { - "include": "#soql-group-clauses" - }, - { - "include": "#orderby-clause" - }, - { - "include": "#ordering-direction" - }, - { - "include": "#ordering-nulls" - } - ] - }, - "soql-colon-vars": { - "begin": "(\\:)\\s*", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.colon.apex" - } - }, - "end": "(?![_[:alnum:]]|\\(|(\\?)?\\[|<)", - "patterns": [ - { - "include": "#trigger-context-declaration" - }, - { - "match": "([_[:alpha:]][_[:alnum:]]*)(\\??\\.)", - "captures": { - "1": { - "name": "variable.other.object.apex" - }, - "2": { - "patterns": [ - { - "include": "#punctuation-accessor" - }, - { - "include": "#operator-safe-navigation" - } - ] - } - } - }, - { - "include": "#soql-colon-method-statement" - }, - { - "name": "entity.name.variable.local.apex", - "match": "[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "soql-colon-method-statement": { - "begin": "(:?\\.)?([_[:alpha:]][_[:alnum:]]*)(?=\\()", - "beginCaptures": { - "1": { - "name": "punctuation.accessor.apex" - }, - "2": { - "name": "entity.name.function.apex" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "soql-group-clauses": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#soql-query-expression" - }, - { - "include": "#soql-colon-vars" - }, - { - "include": "#soql-group-clauses" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#operator-assignment" - }, - { - "include": "#literal" - }, - { - "include": "#query-operators" - }, - { - "include": "#date-literals" - }, - { - "include": "#date-literal-with-params" - }, - { - "include": "#using-scope" - }, - { - "name": "keyword.query.field.apex", - "match": "[_.[:alpha:]][_.[:alnum:]]*" - } - ] - }, - "soql-functions": { - "begin": "\\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.query.apex" - }, - "2": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#soql-functions" - }, - { - "name": "keyword.query.field.apex", - "match": "[_.[:alpha:]][_.[:alnum:]]*" - } - ] - }, - "from-clause": { - "match": "(FROM)\\b\\s*([_\\.[:alnum:]]+\\b)?", - "captures": { - "1": { - "name": "keyword.operator.query.from.apex" - }, - "2": { - "name": "storage.type.apex" - } - } - }, - "where-clause": { - "match": "\\b(WHERE)\\b\\s*", - "captures": { - "1": { - "name": "keyword.operator.query.where.apex" - } - } - }, - "orderby-clause": { - "match": "\\b(ORDER BY)\\b\\s*", - "captures": { - "1": { - "name": "keyword.operator.query.orderby.apex" - } - }, - "patterns": [ - { - "include": "#ordering-direction" - }, - { - "include": "#ordering-nulls" - } - ] - }, - "ordering-direction": { - "match": "\\b(?:(ASC)|(DESC))\\b", - "captures": { - "1": { - "name": "keyword.operator.query.ascending.apex" - }, - "2": { - "name": "keyword.operator.query.descending.apex" - } - } - }, - "ordering-nulls": { - "match": "\\b(?:(NULLS FIRST)|(NULLS LAST))\\b", - "captures": { - "1": { - "name": "keyword.operator.query.nullsfirst.apex" - }, - "2": { - "name": "keyword.operator.query.nullslast.apex" - } - } - }, - "query-operators": { - "match": "\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\b\\s*", - "captures": { - "1": { - "name": "keyword.operator.query.apex" - } - } - }, - "date-literals": { - "match": "\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\b\\s*", - "captures": { - "1": { - "name": "keyword.operator.query.date.apex" - } - } - }, - "date-literal-with-params": { - "match": "\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\s*\\:\\d+)\\b", - "captures": { - "1": { - "name": "keyword.operator.query.date.apex" - } - } - }, - "using-scope": { - "match": "((USING SCOPE)\\b\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\b\\s*", - "captures": { - "1": { - "name": "keyword.operator.query.using.apex" - } - } - }, - "type-parameter-list": { - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.apex" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.apex" - } - }, - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "entity.name.type.type-parameter.apex" - } - } - }, - { - "include": "#comment" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "field-declaration": { - "begin": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g<identifier>)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "5": { - "name": "entity.name.variable.field.apex" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "entity.name.variable.field.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#class-or-trigger-members" - } - ] - }, - "property-declaration": { - "begin": "(?x)\n(?!.*\\b(?:class|interface|enum)\\b)\\s*\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<property_name>\\g<identifier>)\\s*\n(?=\\{|=>|$)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "7": { - "name": "entity.name.variable.property.apex" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property-accessors" - }, - { - "include": "#expression-body" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#class-or-trigger-members" - } - ] - }, - "indexer-declaration": { - "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<indexer_name>this)\\s*\n(?=\\[)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "7": { - "name": "keyword.other.this.apex" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property-accessors" - }, - { - "include": "#expression-body" - }, - { - "include": "#variable-initializer" - } - ] - }, - "property-accessors": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "name": "storage.modifier.apex", - "match": "\\b(private|protected)\\b" - }, - { - "name": "keyword.other.get.apex", - "match": "\\b(get)\\b" - }, - { - "name": "keyword.other.set.apex", - "match": "\\b(set)\\b" - }, - { - "include": "#comment" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "method-declaration": { - "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#method-name-custom" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#type-parameter-list" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "method-name-custom": { - "name": "entity.name.function.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - "constructor-declaration": { - "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()", - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "entity.name.function.apex" - } - } - }, - { - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.colon.apex" - } - }, - "end": "(?=\\{|=>)", - "patterns": [ - { - "include": "#constructor-initializer" - } - ] - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#comment" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "constructor-initializer": { - "begin": "\\b(?:(this))\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.this.apex" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - "variable-initializer": { - "begin": "(?<!=|!)(=)(?!=|>)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.apex" - } - }, - "end": "(?=[,\\)\\];}])", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "expression-body": { - "begin": "=>", - "beginCaptures": { - "0": { - "name": "keyword.operator.arrow.apex" - } - }, - "end": "(?=[,\\);}])", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "goto-statement": { - "begin": "(?<!\\.)\\b(goto)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.goto.apex" - } - }, - "end": "(?=;)", - "patterns": [ - { - "begin": "\\b(case)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.case.apex" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "\\b(default)\\b", - "captures": { - "1": { - "name": "keyword.control.default.apex" - } - } - }, - { - "name": "entity.name.label.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "return-statement": { - "begin": "(?<!\\.)\\b(return)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.return.apex" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "break-or-continue-statement": { - "match": "(?<!\\.)\\b(?:(break)|(continue))\\b", - "captures": { - "1": { - "name": "keyword.control.flow.break.apex" - }, - "2": { - "name": "keyword.control.flow.continue.apex" - } - } - }, - "throw-statement": { - "begin": "(?<!\\.)\\b(throw)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.throw.apex" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "if-statement": { - "begin": "(?<!\\.)\\b(if)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.if.apex" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "else-part": { - "begin": "(?<!\\.)\\b(else)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.else.apex" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#statement" - } - ] - }, - "switch-statement": { - "begin": "(?x)\n(switch)\\b\\s+\n(on)\\b\\s+\n(?:([_.?\\'\\(\\)[:alnum:]]+)\\s*)?\n(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.apex" - }, - "2": { - "name": "keyword.control.switch.on.apex" - }, - "3": { - "patterns": [ - { - "include": "#statement" - }, - { - "include": "#parenthesized-expression" - } - ] - }, - "4": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "(\\})", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#when-string" - }, - { - "include": "#when-else-statement" - }, - { - "include": "#when-sobject-statement" - }, - { - "include": "#when-statement" - }, - { - "include": "#when-multiple-statement" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "when-statement": { - "begin": "(when)\\b\\s+([\\'_\\-[:alnum:]]+)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.when.apex" - }, - "2": { - "patterns": [ - { - "include": "#expression" - } - ] - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - }, - "when-string": { - "begin": "(when)(\\b\\s*)((\\')[_.\\,\\'\\s*[:alnum:]]+)", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.when.apex" - }, - "2": { - "name": "punctuation.whitespace.apex" - }, - "3": { - "patterns": [ - { - "include": "#when-string-statement" - }, - { - "include": "#punctuation-comma" - } - ] - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - }, - "when-string-statement": { - "patterns": [ - { - "name": "string.quoted.single.apex", - "begin": "\\'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.apex" - } - }, - "end": "\\'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.apex" - } - } - } - ] - }, - "when-else-statement": { - "begin": "(when)\\b\\s+(else)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.when.apex" - }, - "2": { - "name": "keyword.control.switch.else.apex" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - }, - "when-multiple-statement": { - "begin": "(when)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.when.apex" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - }, - "when-sobject-statement": { - "begin": "(when)\\b\\s+([_[:alnum:]]+)\\s+([_[:alnum:]]+)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.when.apex" - }, - "2": { - "name": "storage.type.apex" - }, - "3": { - "name": "entity.name.variable.local.apex" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - }, - "do-statement": { - "begin": "(?<!\\.)\\b(do)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.do.apex" - } - }, - "end": "(?=;|})", - "patterns": [ - { - "include": "#statement" - } - ] - }, - "while-statement": { - "begin": "(?<!\\.)\\b(while)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.while.apex" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "for-statement": { - "begin": "(?<!\\.)\\b(for)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.for.apex" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#for-apex-syntax" - }, - { - "include": "#local-variable-declaration" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#colon-expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "for-apex-syntax": { - "match": "([_.[:alpha:]][_.[:alnum:]]+)\\s+([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\:)", - "captures": { - "1": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "2": { - "name": "entity.name.variable.local.apex" - }, - "3": { - "name": "keyword.operator.iterator.colon.apex" - } - } - }, - "try-statement": { - "patterns": [ - { - "include": "#try-block" - }, - { - "include": "#catch-clause" - }, - { - "include": "#finally-clause" - } - ] - }, - "try-block": { - "begin": "(?<!\\.)\\b(try)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.apex" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "finally-clause": { - "begin": "(?<!\\.)\\b(finally)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.finally.apex" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "catch-clause": { - "begin": "(?<!\\.)\\b(catch)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.catch.apex" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "match": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "5": { - "name": "entity.name.variable.local.apex" - } - } - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "local-declaration": { - "patterns": [ - { - "include": "#local-constant-declaration" - }, - { - "include": "#local-variable-declaration" - } - ] - }, - "local-variable-declaration": { - "begin": "(?x)\n(?:\n (?:(\\bref)\\s+)?(\\bvar\\b)| # ref local\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref local\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=|\\))", - "beginCaptures": { - "1": { - "name": "storage.modifier.apex" - }, - "2": { - "name": "keyword.other.var.apex" - }, - "3": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.apex" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "name": "entity.name.variable.local.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "local-constant-declaration": { - "begin": "(?x)\n(?<const_keyword>\\b(?:const)\\b)\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=)", - "beginCaptures": { - "1": { - "name": "storage.modifier.apex" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.local.apex" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "entity.name.variable.local.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "throw-expression": { - "match": "(?<!\\.)\\b(throw)\\b", - "captures": { - "1": { - "name": "keyword.control.flow.throw.apex" - } - } - }, - "literal": { - "patterns": [ - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#string-literal" - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.apex", - "match": "(?<!\\.)\\btrue\\b" - }, - { - "name": "constant.language.boolean.false.apex", - "match": "(?<!\\.)\\bfalse\\b" - } - ] - }, - "null-literal": { - "name": "constant.language.null.apex", - "match": "(?<!\\.)\\bnull\\b" - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.datetime.apex", - "match": "\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(\\-|\\+)\\d{2}\\:\\d{2})\\b" - }, - { - "name": "constant.numeric.datetime.apex", - "match": "\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(Z)?)\\b" - }, - { - "name": "constant.numeric.date.apex", - "match": "\\b(\\d{4}\\-\\d{2}\\-\\d{2})\\b" - }, - { - "name": "constant.numeric.hex.apex", - "match": "\\b0(x|X)[0-9a-fA-F_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b" - }, - { - "name": "constant.numeric.binary.apex", - "match": "\\b0(b|B)[01_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b" - }, - { - "name": "constant.numeric.decimal.apex", - "match": "\\b([0-9_]+)?\\.[0-9_]+((e|E)[0-9]+)?(F|f|D|d|M|m)?\\b" - }, - { - "name": "constant.numeric.decimal.apex", - "match": "\\b[0-9_]+(e|E)[0-9_]+(F|f|D|d|M|m)?\\b" - }, - { - "name": "constant.numeric.decimal.apex", - "match": "\\b[0-9_]+(F|f|D|d|M|m)\\b" - }, - { - "name": "constant.numeric.decimal.apex", - "match": "\\b[0-9_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b" - } - ] - }, - "string-literal": { - "name": "string.quoted.single.apex", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.apex" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.apex" - }, - "2": { - "name": "invalid.illegal.newline.apex" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.apex", - "match": "\\\\." - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.operator.assignment.compound.apex", - "match": "\\*=|/=|%=|\\+=|-=" - }, - { - "name": "keyword.operator.assignment.compound.bitwise.apex", - "match": "\\&=|\\^=|<<=|>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.apex", - "match": "<<|>>" - }, - { - "name": "keyword.operator.comparison.apex", - "match": "==|!=" - }, - { - "name": "keyword.operator.relational.apex", - "match": "<=|>=|<|>" - }, - { - "name": "keyword.operator.logical.apex", - "match": "\\!|&&|\\|\\|" - }, - { - "name": "keyword.operator.bitwise.apex", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.apex", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.apex", - "match": "--" - }, - { - "name": "keyword.operator.increment.apex", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.apex", - "match": "%|\\*|/|-|\\+" - } - ] - }, - "conditional-operator": { - "begin": "(?<!\\?)\\?(?!\\?|\\.|\\[)", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.question-mark.apex" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.conditional.colon.apex" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "colon-expression": { - "name": "keyword.operator.conditional.colon.apex", - "match": ":" - }, - "parenthesized-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "initializer-expression": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.apex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.apex" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "identifier": { - "name": "variable.other.readwrite.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - "cast-expression": { - "match": "(?x)\n(\\()\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])", - "captures": { - "1": { - "name": "punctuation.parenthesis.open.apex" - }, - "2": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "6": { - "name": "punctuation.parenthesis.close.apex" - } - } - }, - "this-expression": { - "match": "\\b(?:(this))\\b", - "captures": { - "1": { - "name": "keyword.other.this.apex" - } - } - }, - "invocation-expression": { - "begin": "(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?<type_args>\\s*<([^<>]|\\g<type_args>)+>\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#punctuation-accessor" - }, - { - "include": "#operator-safe-navigation" - } - ] - }, - "2": { - "name": "entity.name.function.apex" - }, - "3": { - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "element-access-expression": { - "begin": "(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#punctuation-accessor" - }, - { - "include": "#operator-safe-navigation" - } - ] - }, - "2": { - "name": "variable.other.object.property.apex" - }, - "3": { - "name": "keyword.operator.null-conditional.apex" - } - }, - "end": "(?<=\\])(?!\\s*\\[)", - "patterns": [ - { - "include": "#bracketed-argument-list" - } - ] - }, - "member-access-expression": { - "patterns": [ - { - "match": "(?x)\n(\\??\\.)\\s* # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[", - "captures": { - "1": { - "patterns": [ - { - "include": "#punctuation-accessor" - }, - { - "include": "#operator-safe-navigation" - } - ] - }, - "2": { - "name": "variable.other.object.property.apex" - } - } - }, - { - "match": "(?x)\n(\\??\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?<type_params>\\s*<([^<>]|\\g<type_params>)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", - "captures": { - "1": { - "patterns": [ - { - "include": "#punctuation-accessor" - }, - { - "include": "#operator-safe-navigation" - } - ] - }, - "2": { - "name": "variable.other.object.apex" - }, - "3": { - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - } - }, - { - "match": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", - "captures": { - "1": { - "name": "variable.other.object.apex" - } - } - } - ] - }, - "object-creation-expression": { - "patterns": [ - { - "include": "#object-creation-expression-with-parameters" - }, - { - "include": "#object-creation-expression-with-no-parameters" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-creation-expression-with-parameters": { - "begin": "(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "name": "support.function.apex" - }, - "2": { - "name": "keyword.control.new.apex" - }, - "3": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "object-creation-expression-with-no-parameters": { - "match": "(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\{|$)", - "captures": { - "1": { - "name": "support.function.apex" - }, - "2": { - "name": "keyword.control.new.apex" - }, - "3": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - } - } - }, - "array-creation-expression": { - "begin": "(?x)\n\\b(new)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\\s*\n(?=\\[)", - "beginCaptures": { - "1": { - "name": "keyword.control.new.apex" - }, - "2": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\])", - "patterns": [ - { - "include": "#bracketed-argument-list" - } - ] - }, - "parenthesized-parameter-list": { - "begin": "(\\()", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "(\\))", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parameter" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#variable-initializer" - } - ] - }, - "parameter": { - "match": "(?x)\n(?:(?:\\b(this)\\b)\\s+)?\n(?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g<identifier>)", - "captures": { - "1": { - "name": "storage.modifier.apex" - }, - "2": { - "patterns": [ - { - "include": "#support-type" - }, - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.parameter.apex" - } - } - }, - "argument-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.apex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.apex" - } - }, - "patterns": [ - { - "include": "#named-argument" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "bracketed-argument-list": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.squarebracket.open.apex" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.squarebracket.close.apex" - } - }, - "patterns": [ - { - "include": "#soql-query-expression" - }, - { - "include": "#named-argument" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "named-argument": { - "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.parameter.apex" - }, - "2": { - "name": "punctuation.separator.colon.apex" - } - }, - "end": "(?=(,|\\)|\\]))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "type": { - "name": "meta.type.apex", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-builtin" - }, - { - "include": "#type-name" - }, - { - "include": "#type-arguments" - }, - { - "include": "#type-array-suffix" - }, - { - "include": "#type-nullable-suffix" - } - ] - }, - "type-builtin": { - "match": "\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b", - "captures": { - "1": { - "name": "keyword.type.apex" - } - } - }, - "type-name": { - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", - "captures": { - "1": { - "name": "storage.type.apex" - }, - "2": { - "name": "punctuation.accessor.apex" - } - } - }, - { - "match": "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.apex" - }, - "2": { - "name": "storage.type.apex" - } - } - }, - { - "name": "storage.type.apex", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "type-arguments": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.apex" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.apex" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#support-type" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-array-suffix": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.squarebracket.open.apex" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.squarebracket.close.apex" - } - }, - "patterns": [ - { - "include": "#punctuation-comma" - } - ] - }, - "type-nullable-suffix": { - "match": "\\?", - "captures": { - "0": { - "name": "punctuation.separator.question-mark.apex" - } - } - }, - "operator-assignment": { - "name": "keyword.operator.assignment.apex", - "match": "(?<!=|!)(=)(?!=)" - }, - "operator-safe-navigation": { - "name": "keyword.operator.safe-navigation.apex", - "match": "\\?\\." - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.apex", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.apex", - "match": ";" - }, - "punctuation-accessor": { - "name": "punctuation.accessor.apex", - "match": "\\." - }, - "comment": { - "patterns": [ - { - "name": "comment.block.apex", - "begin": "/\\*(\\*)?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - } - }, - { - "begin": "(^\\s+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.apex" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "comment.block.documentation.apex", - "begin": "(?<!/)///(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - }, - "end": "(?=$)", - "patterns": [ - { - "include": "#xml-doc-comment" - } - ] - }, - { - "name": "comment.line.double-slash.apex", - "begin": "(?<!/)//(?:(?!/)|(?=//))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - }, - "end": "(?=$)" - } - ] - } - ] - }, - "javadoc-comment": { - "patterns": [ - { - "name": "comment.block.javadoc.apex", - "begin": "^\\s*(/\\*\\*)(?!/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.apex" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - }, - "patterns": [ - { - "match": "@(deprecated|author|return|see|serial|since|version|usage|name|link)\\b", - "name": "keyword.other.documentation.javadoc.apex" - }, - { - "match": "(@param)\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.apex" - }, - "2": { - "name": "entity.name.variable.parameter.apex" - } - } - }, - { - "match": "(@(?:exception|throws))\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.apex" - }, - "2": { - "name": "entity.name.type.class.apex" - } - } - }, - { - "match": "(`([^`]+?)`)", - "captures": { - "1": { - "name": "string.quoted.single.apex" - } - } - } - ] - } - ] - }, - "xml-doc-comment": { - "patterns": [ - { - "include": "#xml-comment" - }, - { - "include": "#xml-character-entity" - }, - { - "include": "#xml-cdata" - }, - { - "include": "#xml-tag" - } - ] - }, - "xml-tag": { - "name": "meta.tag.apex", - "begin": "(?x)\n(</?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.apex" - }, - "2": { - "name": "entity.name.tag.apex" - }, - "3": { - "name": "entity.name.tag.namespace.apex" - }, - "4": { - "name": "punctuation.separator.colon.apex" - }, - "5": { - "name": "entity.name.tag.localname.apex" - } - }, - "end": "(/?>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.apex" - } - }, - "patterns": [ - { - "include": "#xml-attribute" - } - ] - }, - "xml-attribute": { - "patterns": [ - { - "match": "(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)", - "captures": { - "1": { - "name": "entity.other.attribute-name.apex" - }, - "2": { - "name": "entity.other.attribute-name.namespace.apex" - }, - "3": { - "name": "punctuation.separator.colon.apex" - }, - "4": { - "name": "entity.other.attribute-name.localname.apex" - }, - "5": { - "name": "punctuation.separator.equals.apex" - } - } - }, - { - "include": "#xml-string" - } - ] - }, - "xml-cdata": { - "name": "string.unquoted.cdata.apex", - "begin": "<!\\[CDATA\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.apex" - } - }, - "end": "\\]\\]>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.apex" - } - } - }, - "xml-string": { - "patterns": [ - { - "name": "string.quoted.single.apex", - "begin": "\\'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.apex" - } - }, - "end": "\\'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.apex" - } - }, - "patterns": [ - { - "include": "#xml-character-entity" - } - ] - }, - { - "name": "string.quoted.double.apex", - "begin": "\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.stringdoublequote.begin.apex" - } - }, - "end": "\\\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.stringdoublequote.end.apex" - } - }, - "patterns": [ - { - "include": "#xml-character-entity" - } - ] - } - ] - }, - "xml-character-entity": { - "patterns": [ - { - "name": "constant.character.entity.apex", - "match": "(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)", - "captures": { - "1": { - "name": "punctuation.definition.constant.apex" - }, - "3": { - "name": "punctuation.definition.constant.apex" - } - } - }, - { - "name": "invalid.illegal.bad-ampersand.apex", - "match": "&" - } - ] - }, - "xml-comment": { - "name": "comment.block.apex", - "begin": "<!--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - }, - "end": "-->", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.apex" - } - } - } - } -} diff --git a/lib/grammars/apl.tmLanguage.json b/lib/grammars/apl.tmLanguage.json deleted file mode 100644 index 4308635..0000000 --- a/lib/grammars/apl.tmLanguage.json +++ /dev/null @@ -1,1468 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "apl", - "scopeName": "source.apl", - "fileTypes": ["apl", "apla", "aplc", "aplf", "apli", "apln", "aplo", "dyalog", "dyapp", "mipage"], - "firstLineMatch": "(?x)\n# APL symbols\n[⌶-⍺]\n|\n\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\t(?:gnu[-._]?apl|aplx?|dyalog)\n(?:$|\\s)\n|\n\n# Modeline\n(?i:\n\t# Emacs\n\t-\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n\t\tapl\n\t(?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n\n\t|\n\n\t# Vim\n\t(?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s* set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\t\tapl\n\t(?=\\s|:|$)\n)", - "foldingStartMarker": "{", - "foldingStopMarker": "}", - "patterns": [ - { - "match": "\\A#!.*$", - "name": "comment.line.shebang.apl" - }, - { - "include": "#heredocs" - }, - { - "include": "#main" - }, - { - "contentName": "text.embedded.apl", - "begin": "^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$", - "end": "(?=N)A", - "beginCaptures": { - "1": { - "name": "entity.name.command.eof.apl" - }, - "2": { - "name": "punctuation.definition.command.apl" - }, - "3": { - "name": "punctuation.definition.command.apl" - }, - "4": { - "patterns": [ - { - "include": "#comment" - } - ] - } - } - }, - { - "name": "meta.round.bracketed.group.apl", - "patterns": [ - { - "include": "#main" - } - ], - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.round.bracket.begin.apl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.round.bracket.end.apl" - } - } - }, - { - "name": "meta.square.bracketed.group.apl", - "patterns": [ - { - "include": "#main" - } - ], - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.square.bracket.begin.apl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.square.bracket.end.apl" - } - } - }, - { - "name": "meta.system.command.apl", - "begin": "^\\s*((\\))\\S+)", - "end": "$", - "beginCaptures": { - "1": { - "name": "entity.name.command.apl" - }, - "2": { - "name": "punctuation.definition.command.apl" - } - }, - "patterns": [ - { - "include": "#command-arguments" - }, - { - "include": "#command-switches" - }, - { - "include": "#main" - } - ] - }, - { - "name": "meta.user.command.apl", - "begin": "^\\s*((\\])\\S+)", - "end": "$", - "beginCaptures": { - "1": { - "name": "entity.name.command.apl" - }, - "2": { - "name": "punctuation.definition.command.apl" - } - }, - "patterns": [ - { - "include": "#command-arguments" - }, - { - "include": "#command-switches" - }, - { - "include": "#main" - } - ] - } - ], - "repository": { - "main": { - "patterns": [ - { - "include": "#class" - }, - { - "include": "#definition" - }, - { - "include": "#comment" - }, - { - "include": "#label" - }, - { - "include": "#sck" - }, - { - "include": "#strings" - }, - { - "include": "#number" - }, - { - "include": "#lambda" - }, - { - "include": "#sysvars" - }, - { - "include": "#symbols" - }, - { - "include": "#name" - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.line.apl", - "begin": "⍝", - "end": "$", - "captures": { - "0": { - "name": "punctuation.definition.comment.apl" - } - } - } - ] - }, - "number": { - "patterns": [ - { - "name": "constant.numeric.apl", - "match": "¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*" - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.single.apl", - "begin": "'", - "end": "'|$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.apl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.apl" - } - }, - "patterns": [ - { - "match": "[^']*[^'\\n\\r\\\\]$", - "name": "invalid.illegal.string.apl" - } - ] - }, - { - "name": "string.quoted.double.apl", - "begin": "\"", - "end": "\"|$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.apl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.apl" - } - }, - "patterns": [ - { - "match": "[^\"]*[^\"\\n\\r\\\\]$", - "name": "invalid.illegal.string.apl" - } - ] - } - ] - }, - "name": { - "patterns": [ - { - "name": "variable.other.readwrite.apl", - "match": "(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*" - } - ] - }, - "label": { - "patterns": [ - { - "name": "meta.label.apl", - "match": "(?x)\n^\\s*\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(:)", - "captures": { - "1": { - "name": "entity.label.name.apl" - }, - "2": { - "name": "punctuation.definition.label.end.apl" - } - } - } - ] - }, - "symbols": { - "patterns": [ - { - "match": "(?<=\\s)←(?=\\s|$)", - "name": "keyword.spaced.operator.assignment.apl" - }, - { - "match": "(?<=\\s)→(?=\\s|$)", - "name": "keyword.spaced.control.goto.apl" - }, - { - "match": "(?<=\\s)≡(?=\\s|$)", - "name": "keyword.spaced.operator.identical.apl" - }, - { - "match": "(?<=\\s)≢(?=\\s|$)", - "name": "keyword.spaced.operator.not-identical.apl" - }, - { - "match": "\\+", - "name": "keyword.operator.plus.apl" - }, - { - "match": "[-−]", - "name": "keyword.operator.minus.apl" - }, - { - "match": "×", - "name": "keyword.operator.times.apl" - }, - { - "match": "÷", - "name": "keyword.operator.divide.apl" - }, - { - "match": "⌊", - "name": "keyword.operator.floor.apl" - }, - { - "match": "⌈", - "name": "keyword.operator.ceiling.apl" - }, - { - "match": "[∣|]", - "name": "keyword.operator.absolute.apl" - }, - { - "match": "[⋆*]", - "name": "keyword.operator.exponent.apl" - }, - { - "match": "⍟", - "name": "keyword.operator.logarithm.apl" - }, - { - "match": "○", - "name": "keyword.operator.circle.apl" - }, - { - "match": "!", - "name": "keyword.operator.factorial.apl" - }, - { - "match": "∧", - "name": "keyword.operator.and.apl" - }, - { - "match": "∨", - "name": "keyword.operator.or.apl" - }, - { - "match": "⍲", - "name": "keyword.operator.nand.apl" - }, - { - "match": "⍱", - "name": "keyword.operator.nor.apl" - }, - { - "match": "<", - "name": "keyword.operator.less.apl" - }, - { - "match": "≤", - "name": "keyword.operator.less-or-equal.apl" - }, - { - "match": "=", - "name": "keyword.operator.equal.apl" - }, - { - "match": "≥", - "name": "keyword.operator.greater-or-equal.apl" - }, - { - "match": ">", - "name": "keyword.operator.greater.apl" - }, - { - "match": "≠", - "name": "keyword.operator.not-equal.apl" - }, - { - "match": "[∼~]", - "name": "keyword.operator.tilde.apl" - }, - { - "match": "\\?", - "name": "keyword.operator.random.apl" - }, - { - "match": "[∊∈]", - "name": "keyword.operator.member-of.apl" - }, - { - "match": "⍷", - "name": "keyword.operator.find.apl" - }, - { - "match": ",", - "name": "keyword.operator.comma.apl" - }, - { - "match": "⍪", - "name": "keyword.operator.comma-bar.apl" - }, - { - "match": "⌷", - "name": "keyword.operator.squad.apl" - }, - { - "match": "⍳", - "name": "keyword.operator.iota.apl" - }, - { - "match": "⍴", - "name": "keyword.operator.rho.apl" - }, - { - "match": "↑", - "name": "keyword.operator.take.apl" - }, - { - "match": "↓", - "name": "keyword.operator.drop.apl" - }, - { - "match": "⊣", - "name": "keyword.operator.left.apl" - }, - { - "match": "⊢", - "name": "keyword.operator.right.apl" - }, - { - "match": "⊤", - "name": "keyword.operator.encode.apl" - }, - { - "match": "⊥", - "name": "keyword.operator.decode.apl" - }, - { - "match": "\\/", - "name": "keyword.operator.slash.apl" - }, - { - "match": "⌿", - "name": "keyword.operator.slash-bar.apl" - }, - { - "match": "\\x5C", - "name": "keyword.operator.backslash.apl" - }, - { - "match": "⍀", - "name": "keyword.operator.backslash-bar.apl" - }, - { - "match": "⌽", - "name": "keyword.operator.rotate-last.apl" - }, - { - "match": "⊖", - "name": "keyword.operator.rotate-first.apl" - }, - { - "match": "⍉", - "name": "keyword.operator.transpose.apl" - }, - { - "match": "⍋", - "name": "keyword.operator.grade-up.apl" - }, - { - "match": "⍒", - "name": "keyword.operator.grade-down.apl" - }, - { - "match": "⌹", - "name": "keyword.operator.quad-divide.apl" - }, - { - "match": "≡", - "name": "keyword.operator.identical.apl" - }, - { - "match": "≢", - "name": "keyword.operator.not-identical.apl" - }, - { - "match": "⊂", - "name": "keyword.operator.enclose.apl" - }, - { - "match": "⊃", - "name": "keyword.operator.pick.apl" - }, - { - "match": "∩", - "name": "keyword.operator.intersection.apl" - }, - { - "match": "∪", - "name": "keyword.operator.union.apl" - }, - { - "match": "⍎", - "name": "keyword.operator.hydrant.apl" - }, - { - "match": "⍕", - "name": "keyword.operator.thorn.apl" - }, - { - "match": "⊆", - "name": "keyword.operator.underbar-shoe-left.apl" - }, - { - "match": "⍸", - "name": "keyword.operator.underbar-iota.apl" - }, - { - "match": "¨", - "name": "keyword.operator.each.apl" - }, - { - "match": "⍤", - "name": "keyword.operator.rank.apl" - }, - { - "match": "⌸", - "name": "keyword.operator.quad-equal.apl" - }, - { - "match": "⍨", - "name": "keyword.operator.commute.apl" - }, - { - "match": "⍣", - "name": "keyword.operator.power.apl" - }, - { - "match": "\\.", - "name": "keyword.operator.dot.apl" - }, - { - "match": "∘", - "name": "keyword.operator.jot.apl" - }, - { - "match": "⍠", - "name": "keyword.operator.quad-colon.apl" - }, - { - "match": "&", - "name": "keyword.operator.ampersand.apl" - }, - { - "match": "⌶", - "name": "keyword.operator.i-beam.apl" - }, - { - "match": "⌺", - "name": "keyword.operator.quad-diamond.apl" - }, - { - "match": "@", - "name": "keyword.operator.at.apl" - }, - { - "match": "◊", - "name": "keyword.operator.lozenge.apl" - }, - { - "match": ";", - "name": "keyword.operator.semicolon.apl" - }, - { - "match": "¯", - "name": "keyword.operator.high-minus.apl" - }, - { - "match": "←", - "name": "keyword.operator.assignment.apl" - }, - { - "match": "→", - "name": "keyword.control.goto.apl" - }, - { - "match": "⍬", - "name": "constant.language.zilde.apl" - }, - { - "match": "⋄", - "name": "keyword.operator.diamond.apl" - }, - { - "match": "⍫", - "name": "keyword.operator.lock.apl" - }, - { - "match": "⎕", - "name": "keyword.operator.quad.apl" - }, - { - "match": "##", - "name": "constant.language.namespace.parent.apl" - }, - { - "match": "#", - "name": "constant.language.namespace.root.apl" - }, - { - "match": "⌻", - "name": "keyword.operator.quad-jot.apl" - }, - { - "match": "⌼", - "name": "keyword.operator.quad-circle.apl" - }, - { - "match": "⌾", - "name": "keyword.operator.circle-jot.apl" - }, - { - "match": "⍁", - "name": "keyword.operator.quad-slash.apl" - }, - { - "match": "⍂", - "name": "keyword.operator.quad-backslash.apl" - }, - { - "match": "⍃", - "name": "keyword.operator.quad-less.apl" - }, - { - "match": "⍄", - "name": "keyword.operator.greater.apl" - }, - { - "match": "⍅", - "name": "keyword.operator.vane-left.apl" - }, - { - "match": "⍆", - "name": "keyword.operator.vane-right.apl" - }, - { - "match": "⍇", - "name": "keyword.operator.quad-arrow-left.apl" - }, - { - "match": "⍈", - "name": "keyword.operator.quad-arrow-right.apl" - }, - { - "match": "⍊", - "name": "keyword.operator.tack-down.apl" - }, - { - "match": "⍌", - "name": "keyword.operator.quad-caret-down.apl" - }, - { - "match": "⍍", - "name": "keyword.operator.quad-del-up.apl" - }, - { - "match": "⍏", - "name": "keyword.operator.vane-up.apl" - }, - { - "match": "⍐", - "name": "keyword.operator.quad-arrow-up.apl" - }, - { - "match": "⍑", - "name": "keyword.operator.tack-up.apl" - }, - { - "match": "⍓", - "name": "keyword.operator.quad-caret-up.apl" - }, - { - "match": "⍔", - "name": "keyword.operator.quad-del-down.apl" - }, - { - "match": "⍖", - "name": "keyword.operator.vane-down.apl" - }, - { - "match": "⍗", - "name": "keyword.operator.quad-arrow-down.apl" - }, - { - "match": "⍘", - "name": "keyword.operator.underbar-quote.apl" - }, - { - "match": "⍚", - "name": "keyword.operator.underbar-diamond.apl" - }, - { - "match": "⍛", - "name": "keyword.operator.underbar-jot.apl" - }, - { - "match": "⍜", - "name": "keyword.operator.underbar-circle.apl" - }, - { - "match": "⍞", - "name": "keyword.operator.quad-quote.apl" - }, - { - "match": "⍡", - "name": "keyword.operator.dotted-tack-up.apl" - }, - { - "match": "⍢", - "name": "keyword.operator.dotted-del.apl" - }, - { - "match": "⍥", - "name": "keyword.operator.dotted-circle.apl" - }, - { - "match": "⍦", - "name": "keyword.operator.stile-shoe-up.apl" - }, - { - "match": "⍧", - "name": "keyword.operator.stile-shoe-left.apl" - }, - { - "match": "⍩", - "name": "keyword.operator.dotted-greater.apl" - }, - { - "match": "⍭", - "name": "keyword.operator.stile-tilde.apl" - }, - { - "match": "⍮", - "name": "keyword.operator.underbar-semicolon.apl" - }, - { - "match": "⍯", - "name": "keyword.operator.quad-not-equal.apl" - }, - { - "match": "⍰", - "name": "keyword.operator.quad-question.apl" - } - ] - }, - "definition": { - "patterns": [ - { - "name": "meta.function.apl", - "begin": "(?x) ^\\s*? (?# 1: keyword.operator.nabla.apl) (∇) (?: \\s* (?: (?# 2: entity.function.return-value.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) | \\s* (?# 3: entity.function.return-value.shy.apl) ( (\\{) (?# 4: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 5: punctuation.definition.return-value.end.apl) | (\\() (?# 6: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 7: punctuation.definition.return-value.end.apl) | (\\(\\s*\\{) (?# 8: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 9: punctuation.definition.return-value.end.apl) | (\\{\\s*\\() (?# 10: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 11: punctuation.definition.return-value.end.apl) ) \\s* ) \\s* (?# 12: keyword.operator.assignment.apl) (←) )? \\s* (?: (?# MONADIC) (?: (?# 13: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 14: entity.function.axis.apl) ( (?# 15: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 16: invalid.illegal.extra-characters.apl) (.*?) | (?# 17: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 18: punctuation.definition.axis.end.apl) (\\]) )? \\s*? (?# 19: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | (\\() (?# 20: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 21: punctuation.definition.arguments.end.apl) ) \\s* (?=;|$) ) | (?# DYADIC/AMBIVALENT) (?#==================) (?: (?# 22: entity.function.arguments.left.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s+ ) | (?# 23: entity.function.arguments.left.optional.apl) ( (\\{) (?# 24: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 25: punctuation.definition.arguments.end.apl) | (\\(\\s*\\{) (?# 26: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 27: punctuation.definition.arguments.end.apl) | (\\{\\s*\\() (?# 28: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 29: punctuation.definition.arguments.end.apl) ) )? \\s* (?: (?# 30: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 31: entity.function.axis.apl) ( (?# 32: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 33: invalid.illegal.extra-characters.apl) (.*?) | (?# 34: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 35: punctuation.definition.axis.end.apl) (\\]) )? | (?# 36: entity.function.operands.apl) ( (?# 37: punctuation.definition.operands.begin.apl) (\\() (?# 38: entity.function.operands.left.apl) ( \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* )? \\s* (?# 39: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s*? (?# 40: entity.function.axis.apl) ( (?# 41: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 42: invalid.illegal.extra-characters.apl) (.*?) | (?# 43: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 44: punctuation.definition.axis.end.apl) (\\]) )? \\s* (?# 45: entity.function.operands.right.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )? (?# 46: punctuation.definition.operands.end.apl) (\\)) ) ) \\s* (?# 47: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | \\s* (\\() (?# 48: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 49: punctuation.definition.arguments.end.apl) )? (?#==================) ) \\s* (?# 50: invalid.illegal.arguments.right.apl) ([^;]+)? (?# 51: entity.function.local-variables.apl) ( (?# 52: Include “;”) ( (?> \\s* ; (?: \\s* [⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )+ )+ ) | (?# 53: invalid.illegal.local-variables.apl) ([^⍝]+) )? \\s* (?# 54: comment.line.apl) (⍝.*)? $", - "end": "^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$", - "patterns": [ - { - "name": "entity.function.definition.apl", - "match": "(?x)\n^\\s*\n(\n\t(?>\n\t\t;\n\t\t(?:\n\t\t\t\\s*\n\t\t\t[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\t\t\t\\s*\n\t\t)+\n\t)+\n)", - "captures": { - "0": { - "name": "entity.function.local-variables.apl" - }, - "1": { - "patterns": [ - { - "name": "punctuation.separator.apl", - "match": ";" - } - ] - } - } - }, - { - "include": "$self" - } - ], - "beginCaptures": { - "0": { - "name": "entity.function.definition.apl" - }, - "1": { - "name": "keyword.operator.nabla.apl" - }, - "2": { - "name": "entity.function.return-value.apl" - }, - "3": { - "name": "entity.function.return-value.shy.apl" - }, - "4": { - "name": "punctuation.definition.return-value.begin.apl" - }, - "5": { - "name": "punctuation.definition.return-value.end.apl" - }, - "6": { - "name": "punctuation.definition.return-value.begin.apl" - }, - "7": { - "name": "punctuation.definition.return-value.end.apl" - }, - "8": { - "name": "punctuation.definition.return-value.begin.apl" - }, - "9": { - "name": "punctuation.definition.return-value.end.apl" - }, - "10": { - "name": "punctuation.definition.return-value.begin.apl" - }, - "11": { - "name": "punctuation.definition.return-value.end.apl" - }, - "12": { - "name": "keyword.operator.assignment.apl" - }, - "13": { - "name": "entity.function.name.apl", - "patterns": [ - { - "include": "#embolden" - } - ] - }, - "14": { - "name": "entity.function.axis.apl" - }, - "15": { - "name": "punctuation.definition.axis.begin.apl" - }, - "16": { - "name": "invalid.illegal.extra-characters.apl" - }, - "17": { - "name": "invalid.illegal.apl" - }, - "18": { - "name": "punctuation.definition.axis.end.apl" - }, - "19": { - "name": "entity.function.arguments.right.apl" - }, - "20": { - "name": "punctuation.definition.arguments.begin.apl" - }, - "21": { - "name": "punctuation.definition.arguments.end.apl" - }, - "22": { - "name": "entity.function.arguments.left.apl" - }, - "23": { - "name": "entity.function.arguments.left.optional.apl" - }, - "24": { - "name": "punctuation.definition.arguments.begin.apl" - }, - "25": { - "name": "punctuation.definition.arguments.end.apl" - }, - "26": { - "name": "punctuation.definition.arguments.begin.apl" - }, - "27": { - "name": "punctuation.definition.arguments.end.apl" - }, - "28": { - "name": "punctuation.definition.arguments.begin.apl" - }, - "29": { - "name": "punctuation.definition.arguments.end.apl" - }, - "30": { - "name": "entity.function.name.apl", - "patterns": [ - { - "include": "#embolden" - } - ] - }, - "31": { - "name": "entity.function.axis.apl" - }, - "32": { - "name": "punctuation.definition.axis.begin.apl" - }, - "33": { - "name": "invalid.illegal.extra-characters.apl" - }, - "34": { - "name": "invalid.illegal.apl" - }, - "35": { - "name": "punctuation.definition.axis.end.apl" - }, - "36": { - "name": "entity.function.operands.apl" - }, - "37": { - "name": "punctuation.definition.operands.begin.apl" - }, - "38": { - "name": "entity.function.operands.left.apl" - }, - "39": { - "name": "entity.function.name.apl", - "patterns": [ - { - "include": "#embolden" - } - ] - }, - "40": { - "name": "entity.function.axis.apl" - }, - "41": { - "name": "punctuation.definition.axis.begin.apl" - }, - "42": { - "name": "invalid.illegal.extra-characters.apl" - }, - "43": { - "name": "invalid.illegal.apl" - }, - "44": { - "name": "punctuation.definition.axis.end.apl" - }, - "45": { - "name": "entity.function.operands.right.apl" - }, - "46": { - "name": "punctuation.definition.operands.end.apl" - }, - "47": { - "name": "entity.function.arguments.right.apl" - }, - "48": { - "name": "punctuation.definition.arguments.begin.apl" - }, - "49": { - "name": "punctuation.definition.arguments.end.apl" - }, - "50": { - "name": "invalid.illegal.arguments.right.apl" - }, - "51": { - "name": "entity.function.local-variables.apl" - }, - "52": { - "patterns": [ - { - "name": "punctuation.separator.apl", - "match": ";" - } - ] - }, - "53": { - "name": "invalid.illegal.local-variables.apl" - }, - "54": { - "name": "comment.line.apl" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.nabla.apl" - }, - "2": { - "name": "keyword.operator.lock.apl" - }, - "3": { - "name": "comment.line.apl" - } - } - } - ] - }, - "embolden": { - "patterns": [ - { - "name": "markup.bold.identifier.apl", - "match": ".+" - } - ] - }, - "lambda": { - "name": "meta.lambda.function.apl", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.lambda.begin.apl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.lambda.end.apl" - } - }, - "patterns": [ - { - "include": "#main" - }, - { - "include": "#lambda-variables" - } - ] - }, - "lambda-variables": { - "patterns": [ - { - "match": "⍺⍺", - "name": "constant.language.lambda.operands.left.apl" - }, - { - "match": "⍵⍵", - "name": "constant.language.lambda.operands.right.apl" - }, - { - "match": "[⍺⍶]", - "name": "constant.language.lambda.arguments.left.apl" - }, - { - "match": "[⍵⍹]", - "name": "constant.language.lambda.arguments.right.apl" - }, - { - "match": "χ", - "name": "constant.language.lambda.arguments.axis.apl" - }, - { - "match": "∇∇", - "name": "constant.language.lambda.operands.self.operator.apl" - }, - { - "match": "∇", - "name": "constant.language.lambda.operands.self.function.apl" - }, - { - "match": "λ", - "name": "constant.language.lambda.symbol.apl" - } - ] - }, - "sysvars": { - "patterns": [ - { - "match": "(?:(⎕)|(⍞))[A-Za-z]*", - "name": "support.system.variable.apl", - "captures": { - "1": { - "name": "punctuation.definition.quad.apl" - }, - "2": { - "name": "punctuation.definition.quad-quote.apl" - } - } - } - ] - }, - "command-arguments": { - "patterns": [ - { - "name": "variable.parameter.argument.apl", - "begin": "\\b(?=\\S)", - "end": "\\b(?=\\s)", - "patterns": [ - { - "include": "#main" - } - ] - } - ] - }, - "command-switches": { - "patterns": [ - { - "name": "variable.parameter.switch.apl", - "begin": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(=)", - "end": "\\b(?=\\s)", - "beginCaptures": { - "1": { - "name": "punctuation.delimiter.switch.apl" - }, - "2": { - "name": "entity.name.switch.apl" - }, - "3": { - "name": "punctuation.assignment.switch.apl" - } - }, - "patterns": [ - { - "include": "#main" - } - ] - }, - { - "name": "variable.parameter.switch.apl", - "match": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(?!=)", - "captures": { - "1": { - "name": "punctuation.delimiter.switch.apl" - }, - "2": { - "name": "entity.name.switch.apl" - } - } - } - ] - }, - "sck": { - "patterns": [ - { - "name": "keyword.control.sck.apl", - "match": "(?<=\\s|^)(:)[A-Za-z]+", - "captures": { - "1": { - "name": "punctuation.definition.sck.begin.apl" - } - } - } - ] - }, - "class": { - "patterns": [ - { - "begin": "(?x)\n(?<=\\s|^)\n((:)Class)\n\\s+\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n\\s*\n(\n\t(:)\n\t\\s*\n\t(?:\n\t\t(\n\t\t\t'[^']*'?\n\t\t\t|\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\t\t)\n\t\t\\s*\n\t)?\n)?\n(.*?)$", - "end": "(?<=\\s|^)((:)EndClass)(?=\\b)", - "beginCaptures": { - "0": { - "name": "meta.class.apl" - }, - "1": { - "name": "keyword.control.class.apl" - }, - "2": { - "name": "punctuation.definition.class.apl" - }, - "3": { - "name": "entity.name.type.class.apl", - "patterns": [ - { - "include": "#strings" - } - ] - }, - "4": { - "name": "entity.other.inherited-class.apl" - }, - "5": { - "name": "punctuation.separator.inheritance.apl" - }, - "6": { - "patterns": [ - { - "include": "#strings" - } - ] - }, - "7": { - "name": "entity.other.class.interfaces.apl", - "patterns": [ - { - "include": "#csv" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "keyword.control.class.apl" - }, - "2": { - "name": "punctuation.definition.class.apl" - } - }, - "patterns": [ - { - "name": "meta.field.apl", - "begin": "(?<=\\s|^)(:)Field(?=\\s)", - "end": "\\s*(←.*)?(?:$|(?=⍝))", - "beginCaptures": { - "0": { - "name": "keyword.control.field.apl" - }, - "1": { - "name": "punctuation.definition.field.apl" - } - }, - "endCaptures": { - "0": { - "name": "entity.other.initial-value.apl" - }, - "1": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "patterns": [ - { - "name": "storage.modifier.access.public.apl", - "match": "(?<=\\s|^)Public(?=\\s|$)" - }, - { - "name": "storage.modifier.access.private.apl", - "match": "(?<=\\s|^)Private(?=\\s|$)" - }, - { - "name": "storage.modifier.shared.apl", - "match": "(?<=\\s|^)Shared(?=\\s|$)" - }, - { - "name": "storage.modifier.instance.apl", - "match": "(?<=\\s|^)Instance(?=\\s|$)" - }, - { - "name": "storage.modifier.readonly.apl", - "match": "(?<=\\s|^)ReadOnly(?=\\s|$)" - }, - { - "name": "entity.name.type.apl", - "match": "(?x)\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)", - "captures": { - "1": { - "patterns": [ - { - "include": "#strings" - } - ] - } - } - } - ] - }, - { - "include": "$self" - } - ] - } - ] - }, - "csv": { - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.apl" - }, - { - "include": "$self" - } - ] - }, - "heredocs": { - "patterns": [ - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "contentName": "text.embedded.html.basic", - "patterns": [ - { - "include": "text.html.basic" - }, - { - "include": "#embedded-apl" - } - ] - }, - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "contentName": "text.embedded.xml", - "patterns": [ - { - "include": "text.xml" - }, - { - "include": "#embedded-apl" - } - ] - }, - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "contentName": "source.embedded.css", - "patterns": [ - { - "include": "source.css" - }, - { - "include": "#embedded-apl" - } - ] - }, - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "contentName": "source.embedded.js", - "patterns": [ - { - "include": "source.js" - }, - { - "include": "#embedded-apl" - } - ] - }, - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "contentName": "source.embedded.json", - "patterns": [ - { - "include": "source.json" - }, - { - "include": "#embedded-apl" - } - ] - }, - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "contentName": "text.embedded.plain", - "patterns": [ - { - "include": "#embedded-apl" - } - ] - }, - { - "name": "meta.heredoc.apl", - "begin": "^.*?⎕INP\\s+('|\")(.*?)\\1.*$", - "end": "^.*?\\2.*?$", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#main" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "constant.other.apl" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "embedded-apl": { - "patterns": [ - { - "name": "meta.embedded.block.apl", - "begin": "(?i)(<(\\?|%)(?:apl(?=\\s+)|=))", - "end": "(?<=\\s)(\\2>)", - "patterns": [ - { - "include": "#main" - } - ], - "beginCaptures": { - "1": { - "name": "punctuation.section.embedded.begin.apl" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.embedded.end.apl" - } - } - } - ] - } - } -} diff --git a/lib/grammars/applescript.tmLanguage.json b/lib/grammars/applescript.tmLanguage.json deleted file mode 100644 index 9815ca7..0000000 --- a/lib/grammars/applescript.tmLanguage.json +++ /dev/null @@ -1,1403 +0,0 @@ -{ - "fileTypes": ["applescript", "scpt", "script editor"], - "firstLineMatch": "^#!.*(osascript)", - "keyEquivalent": "^~A", - "name": "applescript", - "patterns": [ - { - "include": "#blocks" - }, - { - "include": "#inline" - } - ], - "repository": { - "attributes.considering-ignoring": { - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.array.attributes.applescript" - }, - { - "match": "\\b(and)\\b", - "name": "keyword.control.attributes.and.applescript" - }, - { - "match": "\\b(?i:case|diacriticals|hyphens|numeric\\s+strings|punctuation|white\\s+space)\\b", - "name": "constant.other.attributes.text.applescript" - }, - { - "match": "\\b(?i:application\\s+responses)\\b", - "name": "constant.other.attributes.application.applescript" - } - ] - }, - "blocks": { - "patterns": [ - { - "begin": "^\\s*(script)\\s+(\\w+)", - "beginCaptures": { - "1": { - "name": "keyword.control.script.applescript" - }, - "2": { - "name": "entity.name.type.script-object.applescript" - } - }, - "end": "^\\s*(end(?:\\s+script)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.script.applescript" - } - }, - "name": "meta.block.script.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(\\()\t\t\t\t\t\t\t# opening paren\n\t\t\t\t\t\t\t((?:[\\s,:\\{\\}]*(?:\\w+)?)*)\t# parameters\n\t\t\t\t\t\t(\\))\t\t\t\t\t\t\t# closing paren\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.control.function.applescript" - }, - "2": { - "name": "entity.name.function.handler.applescript" - }, - "3": { - "name": "punctuation.definition.parameters.begin.applescript" - }, - "4": { - "name": "variable.parameter.handler.applescript" - }, - "5": { - "name": "punctuation.definition.parameters.end.applescript" - } - }, - "comment": "\n\t\t\t\t\t\tThis is not a very well-designed rule. For now,\n\t\t\t\t\t\twe can leave it like this though, as it sorta works.\n\t\t\t\t\t", - "end": "^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.function.applescript" - } - }, - "name": "meta.function.positional.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(?:\\s+\n\t\t\t\t\t\t\t(of|in)\\s+\t\t\t\t\t# \"of\" or \"in\"\n\t\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t# direct parameter\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?=\\s+(above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\b)\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.control.function.applescript" - }, - "2": { - "name": "entity.name.function.handler.applescript" - }, - "3": { - "name": "keyword.control.function.applescript" - }, - "4": { - "name": "variable.parameter.handler.direct.applescript" - } - }, - "comment": "TODO: match `given` parameters", - "end": "^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.function.applescript" - } - }, - "name": "meta.function.prepositional.applescript", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.control.preposition.applescript" - }, - "2": { - "name": "variable.parameter.handler.applescript" - } - }, - "match": "\\b(?i:above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\s+(\\w+)\\b" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(?=\\s*(--.*?)?$)\t\t\t\t# nothing else\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.control.function.applescript" - }, - "2": { - "name": "entity.name.function.handler.applescript" - } - }, - "end": "^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.function.applescript" - } - }, - "name": "meta.function.parameterless.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#blocks.tell" - }, - { - "include": "#blocks.repeat" - }, - { - "include": "#blocks.statement" - }, - { - "include": "#blocks.other" - } - ] - }, - "blocks.other": { - "patterns": [ - { - "begin": "^\\s*(considering)\\b", - "end": "^\\s*(end(?:\\s+considering)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.considering.applescript", - "patterns": [ - { - "begin": "(?<=considering)", - "end": "(?<!¬)$", - "name": "meta.array.attributes.considering.applescript", - "patterns": [ - { - "include": "#attributes.considering-ignoring" - } - ] - }, - { - "begin": "(?<=ignoring)", - "end": "(?<!¬)$", - "name": "meta.array.attributes.ignoring.applescript", - "patterns": [ - { - "include": "#attributes.considering-ignoring" - } - ] - }, - { - "match": "\\b(but)\\b", - "name": "keyword.control.but.applescript" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(ignoring)\\b", - "end": "^\\s*(end(?:\\s+ignoring)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.ignoring.applescript", - "patterns": [ - { - "begin": "(?<=considering)", - "end": "(?<!¬)$", - "name": "meta.array.attributes.considering.applescript", - "patterns": [ - { - "include": "#attributes.considering-ignoring" - } - ] - }, - { - "begin": "(?<=ignoring)", - "end": "(?<!¬)$", - "name": "meta.array.attributes.ignoring.applescript", - "patterns": [ - { - "include": "#attributes.considering-ignoring" - } - ] - }, - { - "match": "\\b(but)\\b", - "name": "keyword.control.but.applescript" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(if)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.if.applescript" - } - }, - "end": "^\\s*(end(?:\\s+if)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.if.applescript", - "patterns": [ - { - "match": "\\b(then)\\b", - "name": "keyword.control.then.applescript" - }, - { - "match": "\\b(else\\s+if)\\b", - "name": "keyword.control.else-if.applescript" - }, - { - "match": "\\b(else)\\b", - "name": "keyword.control.else.applescript" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(try)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.applescript" - } - }, - "end": "^\\s*(end(?:\\s+(try|error))?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.try.applescript", - "patterns": [ - { - "begin": "^\\s*(on\\s+error)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.exception.on-error.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.property.error.applescript", - "patterns": [ - { - "match": "\\b(?i:number|partial|from|to)\\b", - "name": "keyword.control.exception.modifier.applescript" - }, - { - "include": "#inline" - } - ] - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(using\\s+terms\\s+from)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.terms.applescript" - } - }, - "end": "^\\s*(end(?:\\s+using\\s+terms\\s+from)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.terms.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(with\\s+timeout(\\s+of)?)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.timeout.applescript" - } - }, - "end": "^\\s*(end(?:\\s+timeout)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.timeout.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(with\\s+transaction(\\s+of)?)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.transaction.applescript" - } - }, - "end": "^\\s*(end(?:\\s+transaction)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.transaction.applescript", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "blocks.repeat": { - "patterns": [ - { - "begin": "^\\s*(repeat)\\s+(until)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.repeat.applescript" - }, - "2": { - "name": "keyword.control.until.applescript" - } - }, - "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.repeat.until.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(repeat)\\s+(while)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.repeat.applescript" - }, - "2": { - "name": "keyword.control.while.applescript" - } - }, - "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.repeat.while.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(repeat)\\s+(with)\\s+(\\w+)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.repeat.applescript" - }, - "2": { - "name": "keyword.control.until.applescript" - }, - "3": { - "name": "variable.parameter.loop.applescript" - } - }, - "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.repeat.with.applescript", - "patterns": [ - { - "match": "\\b(from|to|by)\\b", - "name": "keyword.control.modifier.range.applescript" - }, - { - "match": "\\b(in)\\b", - "name": "keyword.control.modifier.list.applescript" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(repeat)\\b(?=\\s*(--.*?)?$)", - "beginCaptures": { - "1": { - "name": "keyword.control.repeat.applescript" - } - }, - "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.repeat.forever.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(repeat)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.repeat.applescript" - } - }, - "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", - "endCaptures": { - "1": { - "name": "keyword.control.end.applescript" - } - }, - "name": "meta.block.repeat.times.applescript", - "patterns": [ - { - "match": "\\b(times)\\b", - "name": "keyword.control.times.applescript" - }, - { - "include": "$self" - } - ] - } - ] - }, - "blocks.statement": { - "patterns": [ - { - "begin": "\\b(prop(?:erty)?)\\s+(\\w+)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.def.property.applescript" - }, - "2": { - "name": "variable.other.property.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.statement.property.applescript", - "patterns": [ - { - "match": ":", - "name": "punctuation.separator.key-value.property.applescript" - }, - { - "include": "#inline" - } - ] - }, - { - "begin": "\\b(set)\\s+(\\w+)\\s+(to)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.def.set.applescript" - }, - "2": { - "name": "variable.other.readwrite.set.applescript" - }, - "3": { - "name": "keyword.control.def.set.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.statement.set.applescript", - "patterns": [ - { - "include": "#inline" - } - ] - }, - { - "begin": "\\b(local)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.def.local.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.statement.local.applescript", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.variables.local.applescript" - }, - { - "match": "\\b\\w+", - "name": "variable.other.readwrite.local.applescript" - }, - { - "include": "#inline" - } - ] - }, - { - "begin": "\\b(global)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.def.global.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.statement.global.applescript", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.variables.global.applescript" - }, - { - "match": "\\b\\w+", - "name": "variable.other.readwrite.global.applescript" - }, - { - "include": "#inline" - } - ] - }, - { - "begin": "\\b(error)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.exception.error.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.statement.error.applescript", - "patterns": [ - { - "match": "\\b(number|partial|from|to)\\b", - "name": "keyword.control.exception.modifier.applescript" - }, - { - "include": "#inline" - } - ] - }, - { - "begin": "\\b(if)\\b(?=.*\\bthen\\b(?!\\s*(--.*?)?$))", - "beginCaptures": { - "1": { - "name": "keyword.control.if.applescript" - } - }, - "end": "(?<!¬)$", - "name": "meta.statement.if-then.applescript", - "patterns": [ - { - "include": "#inline" - } - ] - } - ] - }, - "blocks.tell": { - "patterns": [ - { - "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:textmate)\")(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell Textmate", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.application.textmate.applescript", - "patterns": [ - { - "include": "#textmate" - }, - { - "include": "#standard-suite" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:finder)\")(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell Finder", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.application.finder.applescript", - "patterns": [ - { - "include": "#finder" - }, - { - "include": "#standard-suite" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:system events)\")(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell System Events", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.application.system-events.applescript", - "patterns": [ - { - "include": "#system-events" - }, - { - "include": "#standard-suite" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:itunes)\")(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell iTunes", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.application.itunes.applescript", - "patterns": [ - { - "include": "#itunes" - }, - { - "include": "#standard-suite" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+process\\b)(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell generic application process", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.application-process.generic.applescript", - "patterns": [ - { - "include": "#standard-suite" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?=app(lication)?\\b)(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell generic application", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.application.generic.applescript", - "patterns": [ - { - "include": "#standard-suite" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?!.*\\bto(?!\\s+tell)\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "generic tell block", - "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", - "name": "meta.block.tell.generic.applescript", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "^\\s*(tell)\\s+(?=.*\\bto\\b)", - "captures": { - "1": { - "name": "keyword.control.tell.applescript" - } - }, - "comment": "tell … to statement", - "end": "(?<!¬)$", - "name": "meta.block.tell.generic.applescript", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "built-in": { - "patterns": [ - { - "include": "#built-in.constant" - }, - { - "include": "#built-in.keyword" - }, - { - "include": "#built-in.support" - }, - { - "include": "#built-in.punctuation" - } - ] - }, - "built-in.constant": { - "patterns": [ - { - "comment": "yes/no can’t always be used as booleans, e.g. in an if() expression. But they work e.g. for boolean arguments.", - "match": "\\b(?i:true|false|yes|no)\\b", - "name": "constant.language.boolean.applescript" - }, - { - "match": "\\b(?i:null|missing\\s+value)\\b", - "name": "constant.language.null.applescript" - }, - { - "match": "-?\\b\\d+((\\.(\\d+\\b)?)?(?i:e\\+?\\d*\\b)?|\\b)", - "name": "constant.numeric.applescript" - }, - { - "match": "\\b(?i:space|tab|return|linefeed|quote)\\b", - "name": "constant.other.text.applescript" - }, - { - "match": "\\b(?i:all\\s+(caps|lowercase)|bold|condensed|expanded|hidden|italic|outline|plain|shadow|small\\s+caps|strikethrough|(sub|super)script|underline)\\b", - "name": "constant.other.styles.applescript" - }, - { - "match": "\\b(?i:Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\\b", - "name": "constant.other.time.month.applescript" - }, - { - "match": "\\b(?i:Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(rsday)?|Fri(day)?|Sat(urday)?|Sun(day)?)\\b", - "name": "constant.other.time.weekday.applescript" - }, - { - "match": "\\b(?i:AppleScript|pi|result|version|current\\s+application|its?|m[ey])\\b", - "name": "constant.other.miscellaneous.applescript" - }, - { - "match": "\\b(?i:text\\s+item\\s+delimiters|print\\s+(length|depth))\\b", - "name": "variable.language.applescript" - } - ] - }, - "built-in.keyword": { - "patterns": [ - { - "match": "(&|\\*|\\+|-|/|÷|\\^)", - "name": "keyword.operator.arithmetic.applescript" - }, - { - "match": "(=|≠|>|<|≥|>=|≤|<=)", - "name": "keyword.operator.comparison.applescript" - }, - { - "match": "(?ix)\\b\n\t\t\t\t\t\t(and|or|div|mod|as|not\n\t\t\t\t\t\t|(a\\s+)?(ref(\\s+to)?|reference\\s+to)\n\t\t\t\t\t\t|equal(s|\\s+to)|contains?|comes\\s+(after|before)|(start|begin|end)s?\\s+with\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b", - "name": "keyword.operator.word.applescript" - }, - { - "comment": "In double quotes so we can use a single quote in the keywords.", - "match": "(?ix)\\b\n\t\t\t\t\t\t(is(n't|\\s+not)?(\\s+(equal(\\s+to)?|(less|greater)\\s+than(\\s+or\\s+equal(\\s+to)?)?|in|contained\\s+by))?\n\t\t\t\t\t\t|does(n't|\\s+not)\\s+(equal|come\\s+(before|after)|contain)\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b", - "name": "keyword.operator.word.applescript" - }, - { - "match": "\\b(?i:some|every|whose|where|that|id|index|\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\s+of|after|behind|in\\s+(front|back|beginning|end)\\s+of)\\b", - "name": "keyword.operator.reference.applescript" - }, - { - "match": "\\b(?i:continue|return|exit(\\s+repeat)?)\\b", - "name": "keyword.control.loop.applescript" - }, - { - "match": "\\b(?i:about|above|after|against|and|apart\\s+from|around|as|aside\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b", - "name": "keyword.other.applescript" - } - ] - }, - "built-in.punctuation": { - "patterns": [ - { - "match": "¬", - "name": "punctuation.separator.continuation.line.applescript" - }, - { - "comment": "the : in property assignments", - "match": ":", - "name": "punctuation.separator.key-value.property.applescript" - }, - { - "comment": "the parentheses in groups", - "match": "[()]", - "name": "punctuation.section.group.applescript" - } - ] - }, - "built-in.support": { - "patterns": [ - { - "match": "\\b(?i:POSIX\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\s+string|time\\s+string|length|rest|reverse|items?|contents|quoted\\s+form|characters?|paragraphs?|words?)\\b", - "name": "support.function.built-in.property.applescript" - }, - { - "match": "\\b(?i:activate|log|clipboard\\s+info|set\\s+the\\s+clipboard\\s+to|the\\s+clipboard|info\\s+for|list\\s+(disks|folder)|mount\\s+volume|path\\s+to(\\s+resource)?|close\\s+access|get\\s+eof|open\\s+for\\s+access|read|set\\s+eof|write|open\\s+location|current\\s+date|do\\s+shell\\s+script|get\\s+volume\\s+settings|random\\s+number|round|set\\s+volume|system\\s+(attribute|info)|time\\s+to\\s+GMT|load\\s+script|run\\s+script|scripting\\s+components|store\\s+script|copy|count|get|launch|run|set|ASCII\\s+(character|number)|localized\\s+string|offset|summarize|beep|choose\\s+(application|color|file(\\s+name)?|folder|from\\s+list|remote\\s+application|URL)|delay|display\\s+(alert|dialog)|say)\\b", - "name": "support.function.built-in.command.applescript" - }, - { - "match": "\\b(?i:get|run)\\b", - "name": "support.function.built-in.applescript" - }, - { - "match": "\\b(?i:anything|data|text|upper\\s+case|propert(y|ies))\\b", - "name": "support.class.built-in.applescript" - }, - { - "match": "\\b(?i:alias|class)(es)?\\b", - "name": "support.class.built-in.applescript" - }, - { - "match": "\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\s+specification)?|handler|integer|item|keystroke|linked\\s+list|list|machine|number|picture|preposition|POSIX\\s+file|real|record|reference(\\s+form)?|RGB\\s+color|script|sound|text\\s+item|type\\s+class|vector|writing\\s+code(\\s+info)?|zone|((international|styled(\\s+(Clipboard|Unicode))?|Unicode)\\s+)?text|((C|encoded|Pascal)\\s+)?string)s?\\b", - "name": "support.class.built-in.applescript" - }, - { - "match": "(?ix)\\b\n\t\t\t\t\t\t(\t(cubic\\s+(centi)?|square\\s+(kilo)?|centi|kilo)met(er|re)s\n\t\t\t\t\t\t|\tsquare\\s+(yards|feet|miles)|cubic\\s+(yards|feet|inches)|miles|inches\n\t\t\t\t\t\t|\tlit(re|er)s|gallons|quarts\n\t\t\t\t\t\t|\t(kilo)?grams|ounces|pounds\n\t\t\t\t\t\t|\tdegrees\\s+(Celsius|Fahrenheit|Kelvin)\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b", - "name": "support.class.built-in.unit.applescript" - }, - { - "match": "\\b(?i:seconds|minutes|hours|days)\\b", - "name": "support.class.built-in.time.applescript" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "^\\s*(#!)", - "captures": { - "1": { - "name": "punctuation.definition.comment.applescript" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.applescript" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.applescript" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.applescript" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.applescript" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=--)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.applescript" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.applescript" - } - }, - "end": "\\n", - "name": "comment.line.double-dash.applescript" - } - ] - }, - { - "begin": "\\(\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.applescript" - } - }, - "end": "\\*\\)", - "name": "comment.block.applescript", - "patterns": [ - { - "include": "#comments.nested" - } - ] - } - ] - }, - "comments.nested": { - "patterns": [ - { - "begin": "\\(\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.applescript" - } - }, - "end": "\\*\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.applescript" - } - }, - "name": "comment.block.applescript", - "patterns": [ - { - "include": "#comments.nested" - } - ] - } - ] - }, - "data-structures": { - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.applescript" - } - }, - "comment": "We cannot necessarily distinguish \"records\" from \"arrays\", and so this could be either.", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.applescript" - } - }, - "name": "meta.array.applescript", - "patterns": [ - { - "captures": { - "1": { - "name": "constant.other.key.applescript" - }, - "2": { - "name": "meta.identifier.applescript" - }, - "3": { - "name": "punctuation.definition.identifier.applescript" - }, - "4": { - "name": "punctuation.definition.identifier.applescript" - }, - "5": { - "name": "punctuation.separator.key-value.applescript" - } - }, - "match": "(\\w+|((\\|)[^|\\n]*(\\|)))\\s*(:)" - }, - { - "match": ":", - "name": "punctuation.separator.key-value.applescript" - }, - { - "match": ",", - "name": "punctuation.separator.array.applescript" - }, - { - "include": "#inline" - } - ] - }, - { - "begin": "(?:(?<=application )|(?<=app ))(\")", - "captures": { - "1": { - "name": "punctuation.definition.string.applescript" - } - }, - "end": "(\")", - "name": "string.quoted.double.application-name.applescript", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.applescript" - } - ] - }, - { - "begin": "(\")", - "captures": { - "1": { - "name": "punctuation.definition.string.applescript" - } - }, - "end": "(\")", - "name": "string.quoted.double.applescript", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.applescript" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.identifier.applescript" - }, - "2": { - "name": "punctuation.definition.identifier.applescript" - } - }, - "match": "(\\|)[^|\\n]*(\\|)", - "name": "meta.identifier.applescript" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.data.applescript" - }, - "2": { - "name": "support.class.built-in.applescript" - }, - "3": { - "name": "storage.type.utxt.applescript" - }, - "4": { - "name": "string.unquoted.data.applescript" - }, - "5": { - "name": "punctuation.definition.data.applescript" - }, - "6": { - "name": "keyword.operator.applescript" - }, - "7": { - "name": "support.class.built-in.applescript" - } - }, - "match": "(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\s+(as)\\s+(?i:Unicode\\s+text))?", - "name": "constant.other.data.utxt.applescript" - }, - { - "begin": "(«)(\\w+)\\b(?=\\s)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.data.applescript" - }, - "2": { - "name": "support.class.built-in.applescript" - } - }, - "end": "(»)", - "endCaptures": { - "1": { - "name": "punctuation.definition.data.applescript" - } - }, - "name": "constant.other.data.raw.applescript" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.data.applescript" - }, - "2": { - "name": "punctuation.definition.data.applescript" - } - }, - "match": "(«)[^»]*(»)", - "name": "invalid.illegal.data.applescript" - } - ] - }, - "finder": { - "patterns": [ - { - "match": "\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\b", - "name": "support.class.finder.items.applescript" - }, - { - "match": "\\b((Finder|desktop|information|preferences|clipping) )windows?\\b", - "name": "support.class.finder.window-classes.applescript" - }, - { - "match": "\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\b", - "name": "support.class.finder.type-definitions.applescript" - }, - { - "match": "\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\b", - "name": "support.function.finder.items.applescript" - }, - { - "match": "\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\b", - "name": "support.constant.finder.applescript" - }, - { - "match": "\\b(visible)\\b", - "name": "support.variable.finder.applescript" - } - ] - }, - "inline": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#data-structures" - }, - { - "include": "#built-in" - }, - { - "include": "#standardadditions" - } - ] - }, - "itunes": { - "patterns": [ - { - "match": "\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\b", - "name": "support.class.itunes.applescript" - }, - { - "match": "\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\b", - "name": "support.function.itunes.applescript" - }, - { - "match": "\\b(current (playlist|stream (title|URL)|track)|player state)\\b", - "name": "support.constant.itunes.applescript" - }, - { - "match": "\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\b", - "name": "support.variable.itunes.applescript" - } - ] - }, - "standard-suite": { - "patterns": [ - { - "match": "\\b(colors?|documents?|items?|windows?)\\b", - "name": "support.class.standard-suite.applescript" - }, - { - "match": "\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\b", - "name": "support.function.standard-suite.applescript" - }, - { - "match": "\\b(name|frontmost|version)\\b", - "name": "support.constant.standard-suite.applescript" - }, - { - "match": "\\b(selection)\\b", - "name": "support.variable.standard-suite.applescript" - }, - { - "match": "\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\b", - "name": "support.class.text-suite.applescript" - } - ] - }, - "standardadditions": { - "patterns": [ - { - "match": "\\b((alert|dialog) reply)\\b", - "name": "support.class.standardadditions.user-interaction.applescript" - }, - { - "match": "\\b(file information)\\b", - "name": "support.class.standardadditions.file.applescript" - }, - { - "match": "\\b(POSIX files?|system information|volume settings)\\b", - "name": "support.class.standardadditions.miscellaneous.applescript" - }, - { - "match": "\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\b", - "name": "support.class.standardadditions.internet.applescript" - }, - { - "match": "\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\b", - "name": "support.function.standardadditions.file.applescript" - }, - { - "match": "\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\b", - "name": "support.function.standardadditions.user-interaction.applescript" - }, - { - "match": "\\b(ASCII (character|number)|localized string|offset|summarize)\\b", - "name": "support.function.standardadditions.string.applescript" - }, - { - "match": "\\b(set the clipboard to|the clipboard|clipboard info)\\b", - "name": "support.function.standardadditions.clipboard.applescript" - }, - { - "match": "\\b(open for access|close access|read|write|get eof|set eof)\\b", - "name": "support.function.standardadditions.file-i-o.applescript" - }, - { - "match": "\\b((load|store|run) script|scripting components)\\b", - "name": "support.function.standardadditions.scripting.applescript" - }, - { - "match": "\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\b", - "name": "support.function.standardadditions.miscellaneous.applescript" - }, - { - "match": "\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\b", - "name": "support.function.standardadditions.folder-actions.applescript" - }, - { - "match": "\\b(open location|handle CGI request)\\b", - "name": "support.function.standardadditions.internet.applescript" - } - ] - }, - "system-events": { - "patterns": [ - { - "match": "\\b(audio (data|file))\\b", - "name": "support.class.system-events.audio-file.applescript" - }, - { - "match": "\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\b", - "name": "support.class.system-events.disk-folder-file.applescript" - }, - { - "match": "\\b(delete|open|move)\\b", - "name": "support.function.system-events.disk-folder-file.applescript" - }, - { - "match": "\\b(folder actions?|scripts?)\\b", - "name": "support.class.system-events.folder-actions.applescript" - }, - { - "match": "\\b(attach action to|attached scripts|edit action of|remove action from)\\b", - "name": "support.function.system-events.folder-actions.applescript" - }, - { - "match": "\\b(movie data|movie file)\\b", - "name": "support.class.system-events.movie-file.applescript" - }, - { - "match": "\\b(log out|restart|shut down|sleep)\\b", - "name": "support.function.system-events.power.applescript" - }, - { - "match": "\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\b", - "name": "support.class.system-events.processes.applescript" - }, - { - "match": "\\b(click|key code|keystroke|perform|select)\\b", - "name": "support.function.system-events.processes.applescript" - }, - { - "match": "\\b(property list (file|item))\\b", - "name": "support.class.system-events.property-list.applescript" - }, - { - "match": "\\b(annotation|QuickTime (data|file)|track)s?\\b", - "name": "support.class.system-events.quicktime-file.applescript" - }, - { - "match": "\\b((abort|begin|end) transaction)\\b", - "name": "support.function.system-events.system-events.applescript" - }, - { - "match": "\\b(XML (attribute|data|element|file)s?)\\b", - "name": "support.class.system-events.xml.applescript" - }, - { - "match": "\\b(print settings|users?|login items?)\\b", - "name": "support.class.sytem-events.other.applescript" - } - ] - }, - "textmate": { - "patterns": [ - { - "match": "\\b(print settings)\\b", - "name": "support.class.textmate.applescript" - }, - { - "match": "\\b(get url|insert|reload bundles)\\b", - "name": "support.function.textmate.applescript" - } - ] - } - }, - "scopeName": "source.applescript", - "uuid": "777CF925-14B9-428E-B07B-17FAAB8FA27E" -} diff --git a/lib/grammars/ara.tmLanguage.json b/lib/grammars/ara.tmLanguage.json deleted file mode 100644 index 50e2338..0000000 --- a/lib/grammars/ara.tmLanguage.json +++ /dev/null @@ -1,425 +0,0 @@ -{ - "scopeName": "source.ara", - "name": "ara", - "fileTypes": ["ara"], - "patterns": [ - { - "include": "#namespace" - }, - { - "include": "#named-arguments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#operators" - }, - { - "include": "#type" - }, - { - "include": "#function-call" - } - ], - "repository": { - "class-name": { - "patterns": [ - { - "begin": "\\b(?i)(?<!\\$)(?=[\\\\a-zA-Z_])", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])\\b", - "endCaptures": { - "1": { - "name": "support.class.ara" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "type": { - "name": "support.type.php", - "patterns": [ - { - "match": "\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\b", - "name": "support.type.php" - }, - { - "begin": "([A-Za-z_][A-Za-z0-9_]*)<", - "beginCaptures": { - "1": { - "name": "support.class.php" - } - }, - "end": ">", - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - { - "begin": "(shape\\()", - "end": "((,|\\.\\.\\.)?\\s*\\))", - "endCaptures": { - "1": { - "name": "keyword.operator.key.php" - } - }, - "name": "storage.type.shape.php", - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#strings" - }, - { - "include": "#constants" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - { - "begin": "\\(fn\\(", - "end": "\\)", - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - { - "include": "#class-name" - }, - { - "include": "#comments" - } - ] - }, - "namespace": { - "begin": "(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])", - "beginCaptures": { - "1": { - "name": "entity.name.type.namespace.php" - }, - "3": { - "name": "punctuation.separator.inheritance.php" - } - }, - "end": "(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])", - "name": "support.other.namespace.php", - "patterns": [ - { - "name": "entity.name.type.namespace.php", - "match": "(?i)[a-z0-9_]+(?=\\\\)" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(?i)(\\\\)" - } - ] - }, - "named-arguments": { - "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)", - "captures": { - "1": { - "name": "entity.name.variable.parameter.ara" - }, - "2": { - "name": "punctuation.separator.colon.ara" - } - } - }, - "comments": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.ara" - } - }, - "end": "\\*/", - "name": "comment.block.ara" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ara" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ara" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.ara" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.ara", - "match": "\\b(await|async|concurrently|break|continue|do|else|elseif|for|if|loop|while|foreach|match|return|try|yield|from|catch|finally|default|exit)\\b" - }, - { - "name": "storage.decl.ara", - "match": "\\b(const|enum|class|interface|trait|namespace|type|case|function|fn)\\b" - }, - { - "name": "storage.modifier.ara", - "match": "\\b(final|abstract|static|readonly|public|private|protected)\\b" - }, - { - "name": "keyword.other.ara", - "match": "\\b(as|is|extends|implements|use|where|clone|new)\\b" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*(\\(|(::<)))", - "comment": "Functions in a user-defined namespace (overrides any built-ins)", - "end": "(?=\\s*(\\(|(::<)))", - "patterns": [ - { - "include": "#user-function-call" - } - ] - }, - { - "begin": "(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*(\\(|(::<)))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "comment": "Root namespace function calls (built-in or user)", - "end": "(?=\\s*(\\(|(::<)))", - "patterns": [ - { - "include": "#user-function-call" - } - ] - } - ] - }, - "user-function-call": { - "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()", - "end": "(?i)[a-z_][a-z_0-9]*(?=\\s*\\()", - "endCaptures": { - "0": { - "name": "entity.name.function.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#namespace" - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.single.ara", - "begin": "'", - "end": "'", - "patterns": [ - { - "match": "\\\\[\\\\']", - "name": "constant.character.escape.ara" - } - ] - }, - { - "name": "string.quoted.double.ara", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "include": "#interpolation" - } - ] - } - ] - }, - "interpolation": { - "patterns": [ - { - "comment": "Interpolating octal values e.g. \\01 or \\07.", - "match": "\\\\[0-7]{1,3}", - "name": "constant.numeric.octal.ara" - }, - { - "comment": "Interpolating hex values e.g. \\x1 or \\xFF.", - "match": "\\\\x[0-9A-Fa-f]{1,2}", - "name": "constant.numeric.hex.ara" - }, - { - "comment": "Escaped characters in double-quoted strings e.g. \\n or \\t.", - "match": "\\\\[nrt\\\\\\$\\\"]", - "name": "constant.character.escape.ara" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*", - "name": "constant.numeric.hex.ara" - }, - { - "match": "0[bB][01]+(?:_[01]+)*", - "name": "constant.numeric.binary.ara" - }, - { - "match": "0[oO][0-7]+(?:_[0-7]+)*", - "name": "constant.numeric.octal.ara" - }, - { - "match": "0(?:_?[0-7]+)+", - "name": "constant.numeric.octal.ara" - }, - { - "match": "(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)", - "name": "constant.numeric.decimal.ara", - "captures": { - "1": { - "name": "punctuation.separator.decimal.period.ara" - }, - "2": { - "name": "punctuation.separator.decimal.period.ara" - } - } - }, - { - "match": "0|[1-9](?:_?[0-9]+)*", - "name": "constant.numeric.decimal.ara" - } - ] - }, - "operators": { - "patterns": [ - { - "comment": "assignment operators", - "name": "keyword.assignments.ara", - "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&&=|<=|>=|&=|\\|=|<<=|>>=|\\?\\?=)" - }, - { - "comment": "logical operators", - "name": "keyword.operators.ara", - "match": "(\\^|\\||\\|\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\?\\?|\\?|:|\\?:)(?!=)" - }, - { - "comment": "comparison operators", - "name": "keyword.operator.comparison.ara", - "match": "(==|===|!==|!=|<=|>=|<|>)(?!=)" - }, - { - "comment": "math operators", - "name": "keyword.operator.math.ara", - "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" - }, - { - "comment": "single equal assignment operator", - "name": "keyword.operator.assignment.ara", - "match": "(?<![<>])=(?!=|>)" - }, - { - "comment": "less than, greater than (special case)", - "match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))", - "captures": { - "1": { - "name": "punctuation.brackets.round.ara" - }, - "2": { - "name": "punctuation.brackets.square.ara" - }, - "3": { - "name": "punctuation.brackets.curly.ara" - }, - "4": { - "name": "keyword.operator.comparison.ara" - }, - "5": { - "name": "punctuation.brackets.round.ara" - }, - "6": { - "name": "punctuation.brackets.square.ara" - }, - "7": { - "name": "punctuation.brackets.curly.ara" - } - } - }, - { - "comment": "arrow method call, arrow property access", - "name": "keyword.operator.arrow.ara", - "match": "(?x)\n(?:\n -> | \\?-> \n)" - }, - { - "comment": "double arrow key-value pair", - "name": "keyword.operator.double-arrow.ara", - "match": "(?x)\n(?:\n =>\n)" - }, - { - "comment": "static method call, static property access", - "name": "keyword.operator.static.ara", - "match": "(?x)\n(?:\n ::\n)" - }, - { - "comment": "closure creation", - "name": "keyword.operator.closure.ara", - "match": "(?x)\n(?:\n \\(\\.\\.\\.\\)\n)" - }, - { - "comment": "spread operator", - "name": "keyword.operator.spread.ara", - "match": "(?x)\n(?:\n \\.\\.\\.\n)" - }, - { - "comment": "namespace operator", - "name": "keyword.operator.namespace.ara", - "match": "\\\\" - } - ] - } - } -} diff --git a/lib/grammars/asm.tmLanguage.json b/lib/grammars/asm.tmLanguage.json deleted file mode 100644 index 9055f58..0000000 --- a/lib/grammars/asm.tmLanguage.json +++ /dev/null @@ -1,1346 +0,0 @@ -{ - "fileTypes": ["asm", "nasm", "yasm", "inc", "s"], - "name": "asm", - "patterns": [ - { - "include": "#registers" - }, - { - "include": "#mnemonics" - }, - { - "include": "#constants" - }, - { - "include": "#entities" - }, - { - "include": "#support" - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor" - }, - { - "include": "#strings" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "match": "(;|(^|\\s)#\\s).*$", - "name": "comment.line" - }, - { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block" - }, - { - "begin": "^\\s*[\\#%]\\s*if\\s+0\\b", - "end": "^\\s*[\\#%]\\s*endif\\b", - "name": "comment.preprocessor" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "(?i)\\b0[by](?:[01][01_]*)\\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", - "name": "constant.numeric.binary.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", - "name": "constant.numeric.binary.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b0[oq](?:[0-7][0-7_]*)\\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", - "name": "constant.numeric.octal.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", - "name": "constant.numeric.octal.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b(?:0[dt])?(?:[0-9][0-9_]*)\\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\\b)?", - "name": "constant.numeric.decimal.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\\b", - "name": "constant.numeric.decimal.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\\b", - "name": "constant.numeric.decimal.packed-bcd.asm.x86_64" - }, - { - "match": "(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", - "name": "constant.numeric.hex.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", - "name": "constant.numeric.hex.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", - "name": "constant.numeric.hex.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", - "name": "constant.numeric.hex.floating-point.asm.x86_64" - }, - { - "match": "(?i)\\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\\b", - "name": "constant.numeric.binary.asm.x86_64" - }, - { - "match": "(?i)\\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\\b", - "name": "constant.numeric.octal.asm.x86_64" - }, - { - "match": "(?i)\\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\\b", - "name": "constant.numeric.decimal.asm.x86_64" - }, - { - "match": "(?i)(?:\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\\b", - "name": "constant.numeric.hex.asm.x86_64" - }, - { - "match": "(?i)\\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\\b", - "name": "constant.numeric.hex.asm.x86_64" - } - ] - }, - "entities": { - "patterns": [ - { - "match": "((section|segment)\\s+)?\\.((ro)?data|bss|text)", - "name": "entity.name.section" - }, - { - "match": "^\\.?(globa?l|extern)\\b", - "name": "entity.directive" - }, - { - "match": "(\\$\\w+)\\b", - "name": "text.variable" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" - }, - "2": { - "name": "entity.name.function.special.asm.x86_64" - }, - "3": { - "name": "punctuation.separator.asm.x86_64" - } - }, - "match": "(\\.\\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:)?|\\b)", - "name": "entity.name.function.asm.x86_64" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" - }, - "2": { - "name": "entity.name.function.asm.x86_64" - }, - "3": { - "name": "punctuation.separator.asm.x86_64" - } - }, - "match": "(?:(\\.)?|\\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:))", - "name": "entity.name.function.asm.x86_64" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" - }, - "2": { - "name": "entity.name.function.asm.x86_64" - }, - "3": { - "name": "punctuation.separator.asm.x86_64" - } - }, - "match": "(\\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\\:)?|\\b)", - "name": "entity.name.function.asm.x86_64" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" - }, - "2": { - "name": "invalid.illegal.entity.name.function.asm.x86_64" - }, - "3": { - "name": "punctuation.separator.asm.x86_64" - } - }, - "match": "(?:(\\.)?|\\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\\:))", - "name": "invalid.illegal.entity.name.function.asm.x86_64" - } - ] - }, - "mnemonics": { - "patterns": [ - { - "include": "#mnemonics-general-purpose" - }, - { - "include": "#mnemonics-fpu" - }, - { - "include": "#mnemonics-mmx" - }, - { - "include": "#mnemonics-sse" - }, - { - "include": "#mnemonics-sse2" - }, - { - "include": "#mnemonics-sse3" - }, - { - "include": "#mnemonics-sse4" - }, - { - "include": "#mnemonics-aesni" - }, - { - "include": "#mnemonics-avx" - }, - { - "include": "#mnemonics-avx2" - }, - { - "include": "#mnemonics-tsx" - }, - { - "include": "#mnemonics-system" - }, - { - "include": "#mnemonics-64bit" - }, - { - "include": "#mnemonics-vmx" - }, - { - "include": "#mnemonics-smx" - }, - { - "include": "#mnemonics-intel-isa-sgx" - }, - { - "include": "#mnemonics-intel-isa-mpx" - }, - { - "include": "#mnemonics-intel-isa-sha" - }, - { - "include": "#mnemonics-supplemental-amd" - }, - { - "include": "#mnemonics-supplemental-cyrix" - }, - { - "include": "#mnemonics-supplemental-via" - }, - { - "include": "#mnemonics-undocumented" - }, - { - "include": "#mnemonics-future-intel" - }, - { - "include": "#mnemonics-pseudo-ops" - } - ] - }, - "mnemonics-64bit": { - "patterns": [ - { - "match": "(?i)\\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\\b", - "name": "keyword.operator.word.mnemonic.64-bit-mode" - } - ] - }, - "mnemonics-aesni": { - "patterns": [ - { - "match": "(?i)\\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\\b", - "name": "keyword.operator.word.mnemonic.aesni" - } - ] - }, - "mnemonics-avx": { - "patterns": [ - { - "match": "(?i)\\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\\b", - "name": "keyword.operator.word.mnemonic.avx" - }, - { - "match": "(?i)\\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.aes" - }, - { - "match": "(?i)\\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.comparison" - }, - { - "match": "(?i)\\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.conversion" - }, - { - "match": "(?i)\\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic" - }, - { - "match": "(?i)\\b(v((andn?|x?or)p[ds]))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.logical" - }, - { - "match": "(?i)\\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.mov" - }, - { - "match": "(?i)\\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic" - }, - { - "match": "(?i)\\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.packed-conversion" - }, - { - "match": "(?i)\\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.packed-shuffle" - }, - { - "match": "(?i)\\b(vp((abs|sign|(max|min)[su])[bdw]|(add|sub)([bdqw]|u?s[bw])|avg[bw]|extr[bdqw]|madd(wd|ubsw)|mul(hu?w|hrsw|l[dw]|u?dq)|sadbw))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic" - }, - { - "match": "(?i)\\b(vp(andn?|x?or))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.logical" - }, - { - "match": "(?i)\\b(vpblend(vb|w))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.blending" - }, - { - "match": "(?i)\\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.mov" - }, - { - "match": "(?i)\\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.simd-integer" - }, - { - "match": "(?i)\\b(vp(sra[dwq]|srl[dqw]))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate" - }, - { - "match": "(?i)\\b(vblendv?p[ds])\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.packed-blending" - }, - { - "match": "(?i)\\b(vp(test|alignr))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.packed-other" - }, - { - "match": "(?i)\\b(vmov(d(dup|qa|qu)?))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov" - }, - { - "match": "(?i)\\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.other" - }, - { - "match": "(?i)\\b(v(maskmovdqu|movntdqa?))\\b", - "name": "keyword.operator.word.mnemonic.avx.promoted.cacheability-control" - }, - { - "match": "(?i)\\b(vcvt(ph2ps|ps2ph))\\b", - "name": "keyword.operator.word.mnemonic.16-bit-floating-point-conversion" - }, - { - "match": "(?i)\\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\\b", - "name": "keyword.operator.word.mnemonic.fma" - } - ] - }, - "mnemonics-avx2": { - "patterns": [ - { - "match": "(?i)\\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\\b", - "name": "keyword.operator.word.mnemonic.avx2.promoted.simd" - }, - { - "match": "(?i)\\b(vpbroadcast[bdqw])\\b", - "name": "keyword.operator.word.mnemonic.avx2.promoted.packed" - }, - { - "match": "(?i)\\b(vp(blendd|s[lr]lv[dq]|sravd))\\b", - "name": "keyword.operator.word.mnemonic.avx2.blend" - }, - { - "match": "(?i)\\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\\b", - "name": "keyword.operator.word.mnemonic.avx2.gather" - } - ] - }, - "mnemonics-fpu": { - "patterns": [ - { - "match": "(?i)\\b(fcmov(n?([beu]|be)))\\b", - "name": "keyword.operator.word.mnemonic.fpu.data-transfer.mov" - }, - { - "match": "(?i)\\b(f(i?(ld|stp?)|b(ld|stp)|xch))\\b", - "name": "keyword.operator.word.mnemonic.fpu.data-transfer.other" - }, - { - "match": "(?i)\\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\\b", - "name": "keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic" - }, - { - "match": "(?i)\\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\\b", - "name": "keyword.operator.word.mnemonic.fpu.basic-arithmetic.other" - }, - { - "match": "(?i)\\b(f(u?com[ip]?p?|icomp?|tst|xam))\\b", - "name": "keyword.operator.word.mnemonic.fpu.comparison" - }, - { - "match": "(?i)\\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\\b", - "name": "keyword.operator.word.mnemonic.fpu.transcendental" - }, - { - "match": "(?i)\\b(fld(1|z|pi|l2[et]|l[ng]2))\\b", - "name": "keyword.operator.word.mnemonic.fpu.load-constants" - }, - { - "match": "(?i)\\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\\b", - "name": "keyword.operator.word.mnemonic.fpu.control-management" - }, - { - "match": "(?i)\\b(fx(save|rstor)(64)?)\\b", - "name": "keyword.operator.word.mnemonic.fpu.state-management" - } - ] - }, - "mnemonics-future-intel": { - "patterns": [ - { - "include": "#mnemonics-future-intel-avx512" - }, - { - "include": "#mnemonics-future-intel-opmask" - }, - { - "include": "#mnemonics-future-intel-cet" - }, - { - "include": "#mnemonics-future-intel-other" - } - ] - }, - "mnemonics-future-intel-avx512": { - "patterns": [ - { - "match": "(?i)\\b(vblendm(pd|ps)|vpblendm[bdqw])\\b", - "name": "keyword.operator.word.mnemonic.avx512.blend" - }, - { - "match": "(?i)\\b(vbroadcast[fi](32x[248]|64x[24])|v(extract|insert)[fi](32x[48]|64x[24])|vshuf[fi](32x4|64x2)|vpbroadcastm(b2q|w2d))\\b", - "name": "keyword.operator.word.mnemonic.avx512.bits-mov" - }, - { - "match": "(?i)\\b(v(compress|expand)p[ds]|vp(compress|expand|conflict)[dq])\\b", - "name": "keyword.operator.word.mnemonic.avx512.compress" - }, - { - "match": "(?i)\\b(vcvt(t?p[sd]2(udq|u?qq)|(udq|u?qq)2p[ds]|t?s[ds]2usi|usi2s[ds]))\\b", - "name": "keyword.operator.word.mnemonic.avx512.conversion" - }, - { - "match": "(?i)\\b(v(fixupimm|fpclass|get(exp|mant)|range|(rcp|rsqrt)(14|28)|reduce|rndscale|scalef)([ps][ds]))\\b", - "name": "keyword.operator.word.mnemonic.avx512.math" - }, - { - "match": "(?i)\\b(v(exp2p[ds]|(scatter|(gather|scatter)pf[01])[dq]p[ds]))\\b", - "name": "keyword.operator.word.mnemonic.avx512.math" - }, - { - "match": "(?i)\\b(vmovdq(a(32|64)|u(8|16|32|64)))\\b", - "name": "keyword.operator.word.mnemonic.avx512.simd-integer" - }, - { - "match": "(?i)\\b(vp(andn?|x?or)[dq])\\b", - "name": "keyword.operator.word.mnemonic.avx512.logical" - }, - { - "match": "(?i)\\b(vpcmpu?[dqw])\\b", - "name": "keyword.operator.word.mnemonic.avx512.packed-comparison" - }, - { - "match": "(?i)\\b(vp(absq|(lzcnt|ternlog)[dq]|madd52[lh]uq|(max|min)[su]q|mullq))\\b", - "name": "keyword.operator.word.mnemonic.avx512.packed-math" - }, - { - "match": "(?i)\\b(vpmov(m2[bdqw]|[bdqw]2m|(u?s)?([qd][bw]|qd|wb)))\\b", - "name": "keyword.operator.word.mnemonic.avx512.packed-mov" - }, - { - "match": "(?i)\\b(vp(ro[rl]v?[dq]|scatter[dq][dq]))\\b", - "name": "keyword.operator.word.mnemonic.avx512.packed-shift" - }, - { - "match": "(?i)\\b(vptestn?m[bdqw])\\b", - "name": "keyword.operator.word.mnemonic.avx512.packed-test" - }, - { - "match": "(?i)\\b(vperm([bdw]|[it]2([bdwq]|p[ds])))\\b", - "name": "keyword.operator.word.mnemonic.avx512.permutations" - }, - { - "match": "(?i)\\b(valign[dq]|vdbpsadbw|vpmultishiftqb|vpsrav[dqw])\\b", - "name": "keyword.operator.word.mnemonic.avx512.other" - } - ] - }, - "mnemonics-future-intel-cet": { - "patterns": [ - { - "match": "(?i)\\b((inc|save|rstor)ssp|wru?ss|(set|clr)ssbsy|endbranch|endbr(32|64))\\b", - "name": "keyword.operator.word.mnemonic.cet" - } - ] - }, - "mnemonics-future-intel-opmask": { - "patterns": [ - { - "match": "(?i)\\b(k(add|andn?|(xn?)?or|mov|not|(or)?test|shift[lr])[bdqw]|kunpck(bw|wd|dq))\\b", - "name": "keyword.operator.word.mnemonic.opmask" - } - ] - }, - "mnemonics-future-intel-other": { - "patterns": [ - { - "match": "(?i)\\b(clflushopt|clwb|pcommit)\\b", - "name": "keyword.operator.word.mnemonic.other" - } - ] - }, - "mnemonics-general-purpose": { - "patterns": [ - { - "match": "(?i)\\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.mov" - }, - { - "match": "(?i)\\b(xchg|bswap|xadd|cmpxchg(8b)?)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg" - }, - { - "match": "(?i)\\b((push|pop)(ad?)?|cwde?|cdq|cbw)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.other" - }, - { - "match": "(?i)\\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.binary-arithmetic" - }, - { - "match": "(?i)\\b(daa|das|aaa|aas|aam|aad)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic" - }, - { - "match": "(?i)\\b(and|x?or|not)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.logical" - }, - { - "match": "(?i)\\b(s[ah][rl]|sh[rl]d|r[co][rl])\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.rotate" - }, - { - "match": "(?i)\\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set" - }, - { - "match": "(?i)\\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other" - }, - { - "match": "(?i)\\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp" - }, - { - "match": "(?i)\\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.control-transfer.other" - }, - { - "match": "(?i)\\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.strings" - }, - { - "match": "(?i)\\b((in|out)(s[bdw]?)?)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.io" - }, - { - "match": "(?i)\\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.flag-control" - }, - { - "match": "(?i)\\b(l[defgs]s)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.segment-registers" - }, - { - "match": "(?i)\\b(lea|nop|ud2|xlatb?|cpuid|movbe)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.misc" - }, - { - "match": "(?i)\\b(rdrand|rdseed)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.rng" - }, - { - "match": "(?i)\\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\\b", - "name": "keyword.operator.word.mnemonic.general-purpose.bmi" - } - ] - }, - "mnemonics-intel-isa-mpx": { - "patterns": [ - { - "match": "(?i)\\b(bnd(mk|c[lnu]|mov|ldx|stx))\\b", - "name": "keyword.operator.word.mnemonic.mpx" - } - ] - }, - "mnemonics-intel-isa-sgx": { - "patterns": [ - { - "match": "(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b", - "name": "keyword.operator.word.mnemonic.sgx1.supervisor" - }, - { - "match": "(?i)\\be(enter|exit|getkey|report|resume)\\b", - "name": "keyword.operator.word.mnemonic.sgx1.user" - }, - { - "match": "(?i)\\be(aug|mod(pr|t))\\b", - "name": "keyword.operator.word.mnemonic.sgx2.supervisor" - }, - { - "match": "(?i)\\be(accept(copy)?|modpe)\\b", - "name": "keyword.operator.word.mnemonic.sgx2.user" - } - ] - }, - "mnemonics-intel-isa-sha": { - "patterns": [ - { - "match": "(?i)\\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\\b", - "name": "keyword.operator.word.mnemonic.sha" - } - ] - }, - "mnemonics-invalid": { - "patterns": [ - { - "include": "#mnemonics-invalid-amd-sse5" - } - ] - }, - "mnemonics-invalid-amd-sse5": { - "patterns": [ - { - "match": "(?i)\\b(com[ps][ds]|pcomu?[bdqw])\\b", - "name": "invalid.keyword.operator.word.mnemonic.sse5.comparison" - }, - { - "match": "(?i)\\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\\b", - "name": "invalid.keyword.operator.word.mnemonic.sse5.conversion" - }, - { - "match": "(?i)\\b(fn?m((add|sub)[ps][ds])|ph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd))|pma(css?(d(d|q[hl])|w[dw])|dcss?wd))\\b", - "name": "invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic" - }, - { - "match": "(?i)\\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\\b", - "name": "invalid.keyword.operator.word.mnemonic.sse5.simd-integer" - } - ] - }, - "mnemonics-mmx": { - "patterns": [ - { - "match": "(?i)\\b(mov[dq])\\b", - "name": "keyword.operator.word.mnemonic.mmx.data-transfer" - }, - { - "match": "(?i)\\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\\b", - "name": "keyword.operator.word.mnemonic.mmx.conversion" - }, - { - "match": "(?i)\\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\\b", - "name": "keyword.operator.word.mnemonic.mmx.packed-arithmetic" - }, - { - "match": "(?i)\\b(pcmp((eq|gt)[bdw]))\\b", - "name": "keyword.operator.word.mnemonic.mmx.comparison" - }, - { - "match": "(?i)\\b(pandn?|px?or)\\b", - "name": "keyword.operator.word.mnemonic.mmx.logical" - }, - { - "match": "(?i)\\b(ps([rl]l[dwq]|raw|rad))\\b", - "name": "keyword.operator.word.mnemonic.mmx.shift-and-rotate" - }, - { - "match": "(?i)\\b(emms)\\b", - "name": "keyword.operator.word.mnemonic.mmx.state-management" - } - ] - }, - "mnemonics-pseudo-ops": { - "patterns": [ - { - "match": "(?i)\\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\\b", - "name": "keyword.pseudo-mnemonic.sse2.compare" - }, - { - "match": "(?i)\\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\\b", - "name": "keyword.pseudo-mnemonic.avx.promoted.aes" - }, - { - "match": "(?i)\\b(vcmp(eq(_(os|uq|us))?|neq(_(oq|os|us))?|[gl][et](_oq)?|n[gl][et](_uq)?|(un)?ord(_s)?|false(_os)?|true(_us)?)[ps][ds])\\b", - "name": "keyword.pseudo-mnemonic.avx.promoted.comparison" - }, - { - "match": "(?i)\\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\\b", - "name": "keyword.pseudo-mnemonic.supplemental.amd.xop.simd" - } - ] - }, - "mnemonics-smx": { - "patterns": [ - { - "match": "(?i)\\b(getsec)\\b", - "name": "keyword.operator.word.mnemonic.smx.getsec" - }, - { - "match": "(?i)\\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\\b", - "name": "support.constant" - } - ] - }, - "mnemonics-sse": { - "patterns": [ - { - "match": "(?i)\\b(mov(([ahlu]|hl|lh|msk)ps|ss))\\b", - "name": "keyword.operator.word.mnemonic.sse.data-transfer" - }, - { - "match": "(?i)\\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\\b", - "name": "keyword.operator.word.mnemonic.sse.packed-arithmetic" - }, - { - "match": "(?i)\\b(cmp[ps]s|u?comiss)\\b", - "name": "keyword.operator.word.mnemonic.sse.comparison" - }, - { - "match": "(?i)\\b((andn?|x?or)ps)\\b", - "name": "keyword.operator.word.mnemonic.sse.logical" - }, - { - "match": "(?i)\\b((shuf|unpck[hl])ps)\\b", - "name": "keyword.operator.word.mnemonic.sse.shuffle-and-unpack" - }, - { - "match": "(?i)\\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\\b", - "name": "keyword.operator.word.mnemonic.sse.conversion" - }, - { - "match": "(?i)\\b((ld|st)mxcsr)\\b", - "name": "keyword.operator.word.mnemonic.sse.state-management" - }, - { - "match": "(?i)\\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\\b", - "name": "keyword.operator.word.mnemonic.sse.simd-integer" - }, - { - "match": "(?i)\\b(maskmovq|movntps|sfence)\\b", - "name": "keyword.operator.word.mnemonic.sse.cacheability-control" - }, - { - "match": "(?i)\\b(prefetch(nta|t[0-2]|w(t1)?))\\b", - "name": "keyword.operator.word.mnemonic.sse.prefetch" - } - ] - }, - "mnemonics-sse2": { - "patterns": [ - { - "match": "(?i)\\b(mov([auhl]|msk)pd)\\b", - "name": "keyword.operator.word.mnemonic.sse2.data-transfer" - }, - { - "match": "(?i)\\b((add|div|max|min|mul|sub|sqrt)[ps]d)\\b", - "name": "keyword.operator.word.mnemonic.sse2.packed-arithmetic" - }, - { - "match": "(?i)\\b((andn?|x?or)pd)\\b", - "name": "keyword.operator.word.mnemonic.sse2.logical" - }, - { - "match": "(?i)\\b((cmpp|u?comis)d)\\b", - "name": "keyword.operator.word.mnemonic.sse2.compare" - }, - { - "match": "(?i)\\b((shuf|unpck[hl])pd)\\b", - "name": "keyword.operator.word.mnemonic.sse2.shuffle-and-unpack" - }, - { - "match": "(?i)\\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\\b", - "name": "keyword.operator.word.mnemonic.sse2.conversion" - }, - { - "match": "(?i)\\b(cvt(dq2ps|ps2dq|tps2dq))\\b", - "name": "keyword.operator.word.mnemonic.sse2.packed-floating-point" - }, - { - "match": "(?i)\\b(mov(dq[au]|q2dq|dq2q))\\b", - "name": "keyword.operator.word.mnemonic.sse2.simd-integer.mov" - }, - { - "match": "(?i)\\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\\b", - "name": "keyword.operator.word.mnemonic.sse2.simd-integer.other" - }, - { - "match": "(?i)\\b(clflush|[lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\\b", - "name": "keyword.operator.word.mnemonic.sse2.cacheability-control" - } - ] - }, - "mnemonics-sse3": { - "patterns": [ - { - "match": "(?i)\\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\\b", - "name": "keyword.operator.word.mnemonic.sse3" - }, - { - "match": "(?i)\\b(ph(add|sub)(s?w|d))\\b", - "name": "keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic" - }, - { - "match": "(?i)\\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\\b", - "name": "keyword.operator.word.mnemonic.sse3.supplimental.other" - } - ] - }, - "mnemonics-sse4": { - "patterns": [ - { - "match": "(?i)\\b(pmul(ld|dq)|dpp[ds])\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.arithmetic" - }, - { - "match": "(?i)\\b(movntdqa)\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.load-hint" - }, - { - "match": "(?i)\\b(blendv?p[ds]|pblend(vb|w))\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.packed-blending" - }, - { - "match": "(?i)\\b(p(min|max)(u[dw]|s[bd]))\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.packed-integer" - }, - { - "match": "(?i)\\b(round[ps][sd])\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.packed-floating-point" - }, - { - "match": "(?i)\\b((extract|insert)ps|p((ins|ext)(r[bdq])))\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction" - }, - { - "match": "(?i)\\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.conversion" - }, - { - "match": "(?i)\\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\\b", - "name": "keyword.operator.word.mnemonic.sse4.1.other" - }, - { - "match": "(?i)\\b(pcmp([ei]str[im]|gtq))\\b", - "name": "keyword.operator.word.mnemonic.sse4.2" - } - ] - }, - "mnemonics-supplemental-amd": { - "patterns": [ - { - "match": "(?i)\\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.general-purpose" - }, - { - "match": "(?i)\\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.system" - }, - { - "match": "(?i)\\b([ls]lwpcb|lwp(ins|val))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.profiling" - }, - { - "match": "(?i)\\b(movnts[ds])\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.memory-management" - }, - { - "match": "(?i)\\b(prefetch|clzero)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.cache-management" - }, - { - "match": "(?i)\\b((extr|insert)q)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.sse4.a" - }, - { - "match": "(?i)\\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.fma4" - }, - { - "match": "(?i)\\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.simd" - }, - { - "match": "(?i)\\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal" - }, - { - "match": "(?i)\\b(vfrcz[ps][ds]|vpermil2p[ds])\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.other" - }, - { - "match": "(?i)\\b(femms)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow" - }, - { - "match": "(?i)\\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd" - }, - { - "match": "(?i)\\b(pfcmp(eq|ge|gt))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison" - } - ] - }, - "mnemonics-supplemental-cyrix": { - "patterns": [ - { - "match": "(?i)\\b((sv|rs)dc|(wr|rd)shr|paddsiw)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.cyrix" - } - ] - }, - "mnemonics-supplemental-via": { - "patterns": [ - { - "match": "(?i)\\b(montmul)\\b", - "name": "keyword.operator.word.mnemonic.supplemental.via" - }, - { - "match": "(?i)\\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\\b", - "name": "keyword.operator.word.mnemonic.supplemental.via.padlock" - } - ] - }, - "mnemonics-system": { - "patterns": [ - { - "match": "(?i)\\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\\b", - "name": "keyword.operator.word.mnemonic.system" - }, - { - "match": "(?i)\\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\\b", - "name": "keyword.operator.word.mnemonic.system" - }, - { - "match": "(?i)\\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\\b", - "name": "keyword.operator.word.mnemonic.system" - } - ] - }, - "mnemonics-tsx": { - "patterns": [ - { - "match": "(?i)\\b(x(abort|acquire|release|begin|end|test))\\b", - "name": "keyword.operator.word.mnemonic.tsx" - } - ] - }, - "mnemonics-undocumented": { - "patterns": [ - { - "match": "(?i)\\b(ret[nf]|icebp|int1|int03|smi|ud1)\\b", - "name": "keyword.operator.word.mnemonic.undocumented" - } - ] - }, - "mnemonics-vmx": { - "patterns": [ - { - "match": "(?i)\\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\\b", - "name": "keyword.operator.word.mnemonic.vmx" - } - ] - }, - "preprocessor": { - "patterns": [ - { - "begin": "^\\s*[#%]\\s*(error|warning)\\b", - "captures": { - "1": { - "name": "keyword.control.import.error.c" - } - }, - "end": "$", - "name": "meta.preprocessor.diagnostic.c", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - } - ] - }, - { - "begin": "^\\s*[#%]\\s*(include|import)\\b\\s+", - "captures": { - "1": { - "name": "keyword.control.import.include.c" - } - }, - "end": "(?=(?://|/\\*))|$", - "name": "meta.preprocessor.c.include", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.include.c" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.other.lt-gt.include.c" - } - ] - }, - { - "begin": "^\\s*[%#]\\s*((xi?)?define|defined|elif(def)?|else|if(macro|ctx|idni?|num|str)?|ifn?def|line|(end)?macro|pragma|undef|endif)\\b", - "captures": { - "1": { - "name": "keyword.control.import.c" - } - }, - "end": "(?=(?://|/\\*))|$", - "name": "meta.preprocessor.c", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - } - ] - }, - { - "begin": "^\\s*[#%]\\s*(assign|strlen|substr|(end|exit)?rep|push|pop)\\b", - "captures": { - "1": { - "name": "keyword.control" - } - }, - "end": "$", - "name": "meta.preprocessor.nasm", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - } - ] - } - ] - }, - "registers": { - "patterns": [ - { - "match": "(?i)\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\b", - "name": "constant.language.register.general-purpose.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[cdefgs]s)\\b", - "name": "constant.language.register.segment.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[er]?flags)\\b", - "name": "constant.language.register.flags.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[er]?ip)\\b", - "name": "constant.language.register.instruction-pointer.asm.x86_64" - }, - { - "match": "(?i)\\b(?:cr[02-4])\\b", - "name": "constant.language.register.control.asm.x86_64" - }, - { - "match": "(?i)\\b(?:(?:mm|st|fpr)[0-7])\\b", - "name": "constant.language.register.mmx.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\b", - "name": "constant.language.register.sse_avx.asm.x86_64" - }, - { - "match": "(?i)\\b(?:zmm(?:[12]?[0-9]|30|31))\\b", - "name": "constant.language.register.avx512.asm.x86_64" - }, - { - "match": "(?i)\\b(?:bnd(?:[0-3]|cfg[su]|status))\\b", - "name": "constant.language.register.memory-protection.asm.x86_64" - }, - { - "match": "(?i)\\b(?:(?:[gil]dt)r?|tr)\\b", - "name": "constant.language.register.system-table-pointer.asm.x86_64" - }, - { - "match": "(?i)\\b(?:dr[0-367])\\b", - "name": "constant.language.register.debug.asm.x86_64" - }, - { - "match": "(?i)\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\b", - "name": "constant.language.register.amd.asm.x86_64" - }, - { - "match": "(?i)\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\b", - "name": "invalid.deprecated.constant.language.register.asm.x86_64" - }, - { - "match": "(?i)\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\b", - "name": "constant.language.register.general-purpose.alias.asm.x86_64" - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.asm" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.asm" - } - }, - "name": "string.quoted.double.asm", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.asm" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.asm" - } - }, - "name": "string.quoted.single.asm", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.asm" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.asm" - } - }, - "name": "string.quoted.backquote.asm", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - } - ] - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?i)\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\b", - "name": "storage.type.asm.x86_64" - }, - { - "match": "(?i)\\b(?:incbin|equ|times)\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "(?i)\\b(?:strict|nosplit|near|far|abs|rel)\\b", - "name": "storage.modifier.asm.x86_64" - }, - { - "match": "(?i)\\b(?:[ao](?:16|32|64))\\b", - "name": "storage.modifier.prefix.asm.x86_64" - }, - { - "match": "(?i)\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\b", - "name": "storage.modifier.prefix.asm.x86_64" - }, - { - "captures": { - "1": { - "name": "storage.modifier.prefix.vex.asm.x86_64" - } - }, - "match": "{(vex[23]|evex)}" - }, - { - "captures": { - "1": { - "name": "storage.modifier.opmask.asm.x86_64" - } - }, - "match": "{(k[1-7])}" - }, - { - "captures": { - "1": { - "name": "storage.modifier.precision.asm.x86_64" - } - }, - "match": "{(1to(?:8|16))}" - }, - { - "captures": { - "1": { - "name": "storage.modifier.rounding.asm.x86_64" - } - }, - "match": "{(z|(?:r[nudz]-)?sae)}" - }, - { - "match": "\\.\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\b", - "name": "support.constant.asm.x86_64" - }, - { - "match": "\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|Infinity|[QS]?NaN)__\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "\\b___NASM_PATCHLEVEL__\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT)__\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "\\b__USE_(?:ALTREG|SMARTALIGN|FP|IFUNC)__\\b", - "name": "support.function.asm.x86_64" - }, - { - "match": "\\b__PASS__\\b", - "name": "invalid.deprecated.support.constant.altreg.asm.x86_64" - }, - { - "match": "\\b__ALIGNMODE__\\b", - "name": "support.constant.smartalign.asm.x86_64" - }, - { - "match": "\\b(?:Inf|[QS]?NaN)\\b", - "name": "support.constant.fp.asm.x86_64" - }, - { - "match": "\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\b", - "name": "support.function.fp.asm.x86_64" - }, - { - "match": "(?i)\\bilog2(?:[ewfc]|[fc]w)?\\b", - "name": "support.function.ifunc.asm.x86_64" - } - ] - } - }, - "scopeName": "source.asm.x86_64", - "uuid": "05d6565d-991a-4e88-8e28-63bb21197f32" -} diff --git a/lib/grammars/astro.tmLanguage.json b/lib/grammars/astro.tmLanguage.json deleted file mode 100644 index 96dfcf3..0000000 --- a/lib/grammars/astro.tmLanguage.json +++ /dev/null @@ -1,773 +0,0 @@ -{ - "name": "astro", - "scopeName": "source.astro", - "fileTypes": ["astro"], - "injections": { - "L:(meta.script.astro) (meta.lang.json) - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.json", - "patterns": [ - { - "include": "source.json" - } - ] - } - ] - }, - "L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "L:(meta.script.astro) (meta.lang.ts | meta.lang.typescript) - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - "L:meta.script.astro - meta.lang - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "L:meta.style.astro meta.lang.stylus - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.stylus", - "patterns": [ - { - "include": "source.stylus" - } - ] - } - ] - }, - "L:meta.style.astro meta.lang.sass - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.sass", - "patterns": [ - { - "include": "source.sass" - } - ] - } - ] - }, - "L:meta.style.astro meta.lang.css - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - "L:meta.style.astro meta.lang.scss - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.css.scss", - "patterns": [ - { - "include": "source.css.scss" - } - ] - } - ] - }, - "L:meta.style.astro meta.lang.less - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.css.less", - "patterns": [ - { - "include": "source.css.less" - } - ] - } - ] - }, - "L:meta.style.astro meta.lang.postcss - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.css.postcss", - "patterns": [ - { - "include": "source.css.postcss" - } - ] - } - ] - }, - "L:meta.style.astro - meta.lang - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.astro", - "contentName": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - } - }, - "patterns": [ - { - "include": "#scope" - }, - { - "include": "#frontmatter" - } - ], - "repository": { - "frontmatter": { - "begin": "\\A(-{3})\\s*$", - "end": "(^|\\G)(-{3})|\\.{3}\\s*$", - "beginCaptures": { - "1": { - "name": "comment" - } - }, - "endCaptures": { - "2": { - "name": "comment" - } - }, - "contentName": "source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - "scope": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#tags" - }, - { - "include": "#interpolation" - }, - { - "begin": "(?<=>|})", - "end": "(?=<|{)", - "name": "text.astro" - } - ] - }, - "comments": { - "begin": "<!--", - "end": "-->", - "captures": { - "0": { - "name": "punctuation.definition.comment.astro" - } - }, - "name": "comment.block.astro", - "patterns": [ - { - "match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>", - "name": "invalid.illegal.characters-not-allowed-here.astro" - } - ] - }, - "interpolation": { - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.astro" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.astro" - } - }, - "contentName": "meta.embedded.expression.astro source.tsx", - "patterns": [ - { - "begin": "\\G\\s*(?={)", - "end": "(?<=})", - "patterns": [ - { - "include": "source.tsx#object-literal" - } - ] - }, - { - "include": "source.tsx" - } - ] - } - ] - }, - "attributes": { - "patterns": [ - { - "include": "#attributes-events" - }, - { - "include": "#attributes-keyvalue" - }, - { - "include": "#attributes-interpolated" - } - ] - }, - "attributes-events": { - "begin": "(on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur)))(?![\\\\w:-])", - "beginCaptures": { - "0": { - "patterns": [ - { - "match": ".*", - "name": "entity.other.attribute-name.astro" - } - ] - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.astro", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.astro" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "begin": "(?=[^\\s=<>`/]|/(?!>))", - "end": "(?!\\G)", - "name": "meta.embedded.line.js", - "patterns": [ - { - "match": "(([^\\s\\\"'=<>`/]|/(?!>))+)", - "name": "string.unquoted.astro", - "captures": { - "0": { - "name": "source.js" - }, - "1": { - "patterns": [ - { - "include": "source.js" - } - ] - } - } - }, - { - "begin": "([\"])", - "end": "\\1", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.astro" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.astro" - } - }, - "name": "string.quoted.astro", - "patterns": [ - { - "match": "([^\\n\\\"/]|/(?![/*]))+", - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - } - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=\\\")|\\n", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.js" - } - }, - "end": "(?=\\\")|\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.js" - } - }, - "name": "comment.block.js" - } - ] - }, - { - "begin": "(['])", - "end": "\\1", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.astro" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.astro" - } - }, - "name": "string.quoted.astro", - "patterns": [ - { - "match": "([^\\n\\'/]|/(?![/*]))+", - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - } - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=\\')|\\n", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.js" - } - }, - "end": "(?=\\')|\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.js" - } - }, - "name": "comment.block.js" - } - ] - } - ] - } - ] - } - ] - }, - "attributes-interpolated": { - "begin": "(?<!:|=)\\s*({)", - "end": "(\\})", - "contentName": "meta.embedded.expression.astro source.tsx", - "patterns": [ - { - "include": "source.tsx" - } - ] - }, - "attributes-keyvalue": { - "begin": "([_@$[:alpha:]][:._\\-$[:alnum:]]*)", - "beginCaptures": { - "0": { - "patterns": [ - { - "match": ".*", - "name": "entity.other.attribute-name.astro" - } - ] - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.astro", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.astro" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "include": "#attributes-value" - } - ] - } - ] - }, - "attributes-value": { - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "([^\\s\"'=<>`/]|/(?!>))+", - "name": "string.unquoted.astro" - }, - { - "begin": "(['\"])", - "end": "\\1", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.astro" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.astro" - } - }, - "name": "string.quoted.astro" - }, - { - "begin": "(`)", - "end": "\\1", - "name": "string.template.astro", - "patterns": [ - { - "include": "source.tsx#template-substitution-element" - } - ] - } - ] - }, - "tags": { - "patterns": [ - { - "include": "#tags-raw" - }, - { - "include": "#tags-lang" - }, - { - "include": "#tags-void" - }, - { - "include": "#tags-general-end" - }, - { - "include": "#tags-general-start" - } - ] - }, - "tags-name": { - "patterns": [ - { - "match": "[A-Z][a-zA-Z0-9_]*", - "name": "support.class.component.astro" - }, - { - "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*", - "name": "meta.tag.custom.astro entity.name.tag.astro" - }, - { - "match": "[a-z][\\w0-9:-]*", - "name": "entity.name.tag.astro" - } - ] - }, - "tags-start-attributes": { - "begin": "\\G", - "end": "(?=/?>)", - "name": "meta.tag.start.astro", - "patterns": [ - { - "include": "#attributes" - } - ] - }, - "tags-lang-start-attributes": { - "begin": "\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.astro" - } - }, - "name": "meta.tag.start.astro", - "patterns": [ - { - "include": "#attributes" - } - ] - }, - "tags-start-node": { - "match": "(<)([^/\\s>/]*)", - "captures": { - "1": { - "name": "punctuation.definition.tag.begin.astro" - }, - "2": { - "patterns": [ - { - "include": "#tags-name" - } - ] - } - }, - "name": "meta.tag.start.astro" - }, - "tags-end-node": { - "match": "(</)(.*?)\\s*(>)|(/>)", - "captures": { - "1": { - "name": "meta.tag.end.astro punctuation.definition.tag.begin.astro" - }, - "2": { - "name": "meta.tag.end.astro", - "patterns": [ - { - "include": "#tags-name" - } - ] - }, - "3": { - "name": "meta.tag.end.astro punctuation.definition.tag.end.astro" - }, - "4": { - "name": "meta.tag.start.astro punctuation.definition.tag.end.astro" - } - } - }, - "tags-raw": { - "begin": "<([^/?!\\s<>]+)(?=[^>]+is:raw).*?", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-start-node" - } - ] - } - }, - "end": "</\\1\\s*>|/>", - "endCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-end-node" - } - ] - } - }, - "name": "meta.scope.tag.$1.astro meta.raw.astro", - "contentName": "source.unknown", - "patterns": [ - { - "include": "#tags-lang-start-attributes" - } - ] - }, - "tags-lang": { - "begin": "<(script|style)", - "end": "</\\1\\s*>|/>", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-start-node" - } - ] - } - }, - "endCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-end-node" - } - ] - } - }, - "name": "meta.scope.tag.$1.astro meta.$1.astro", - "patterns": [ - { - "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text\\/)?(application\\/ld\\+json)\\2)", - "end": "(?=</|/>)", - "name": "meta.lang.json.astro", - "patterns": [ - { - "include": "#tags-lang-start-attributes" - } - ] - }, - { - "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(module)\\2)", - "end": "(?=</|/>)", - "name": "meta.lang.javascript.astro", - "patterns": [ - { - "include": "#tags-lang-start-attributes" - } - ] - }, - { - "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/|application/)?([\\w\\/+]+)\\2)", - "end": "(?=</|/>)", - "name": "meta.lang.$3.astro", - "patterns": [ - { - "include": "#tags-lang-start-attributes" - } - ] - }, - { - "include": "#tags-lang-start-attributes" - } - ] - }, - "tags-void": { - "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.astro" - }, - "2": { - "name": "entity.name.tag.astro" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.begin.astro" - } - }, - "name": "meta.tag.void.astro", - "patterns": [ - { - "include": "#attributes" - } - ] - }, - "tags-general-start": { - "begin": "(<)([^/\\s>/]*)", - "end": "(/?>)", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-start-node" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "meta.tag.start.astro punctuation.definition.tag.end.astro" - } - }, - "name": "meta.scope.tag.$2.astro", - "patterns": [ - { - "include": "#tags-start-attributes" - } - ] - }, - "tags-general-end": { - "begin": "(</)([^/\\s>]*)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "meta.tag.end.astro punctuation.definition.tag.begin.astro" - }, - "2": { - "name": "meta.tag.end.astro", - "patterns": [ - { - "include": "#tags-name" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "meta.tag.end.astro punctuation.definition.tag.end.astro" - } - }, - "name": "meta.scope.tag.$2.astro" - } - } -} diff --git a/lib/grammars/awk.tmLanguage.json b/lib/grammars/awk.tmLanguage.json deleted file mode 100644 index 3cd0c6c..0000000 --- a/lib/grammars/awk.tmLanguage.json +++ /dev/null @@ -1,386 +0,0 @@ -{ - "fileTypes": ["awk"], - "name": "awk", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#procedure" - }, - { - "include": "#pattern" - } - ], - "repository": { - "builtin-pattern": { - "match": "\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b", - "name": "constant.language.awk" - }, - "command": { - "patterns": [ - { - "match": "\\b(?:next|print|printf)\\b", - "name": "keyword.other.command.awk" - }, - { - "match": "\\b(?:close|getline|delete|system)\\b", - "name": "keyword.other.command.nawk" - }, - { - "match": "\\b(?:fflush|nextfile)\\b", - "name": "keyword.other.command.bell-awk" - } - ] - }, - "comment": { - "match": "#.*", - "name": "comment.line.number-sign.awk" - }, - "constant": { - "patterns": [ - { - "include": "#numeric-constant" - }, - { - "include": "#string-constant" - } - ] - }, - "escaped-char": { - "match": "\\\\(?:[\\\\abfnrtv/\"]|x[0-9A-Fa-f]{2}|[0-7]{3})", - "name": "constant.character.escape.awk" - }, - "expression": { - "patterns": [ - { - "include": "#command" - }, - { - "include": "#function" - }, - { - "include": "#constant" - }, - { - "include": "#variable" - }, - { - "include": "#regexp-in-expression" - }, - { - "include": "#operator" - }, - { - "include": "#groupings" - } - ] - }, - "function": { - "patterns": [ - { - "match": "\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b", - "name": "support.function.awk" - }, - { - "match": "\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b", - "name": "support.function.nawk" - }, - { - "match": "\\b(?:gensub|strftime|systime)\\b", - "name": "support.function.gawk" - } - ] - }, - "function-definition": { - "begin": "\\b(function)\\s+(\\w+)(\\()", - "beginCaptures": { - "1": { - "name": "storage.type.function.awk" - }, - "2": { - "name": "entity.name.function.awk" - }, - "3": { - "name": "punctuation.definition.parameters.begin.awk" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.awk" - } - }, - "patterns": [ - { - "match": "\\b(\\w+)\\b", - "name": "variable.parameter.function.awk" - }, - { - "match": "\\b(,)\\b", - "name": "punctuation.separator.parameters.awk" - } - ] - }, - "groupings": { - "patterns": [ - { - "match": "\\(", - "name": "meta.brace.round.awk" - }, - { - "match": "\\)", - "name": "meta.brace.round.awk" - }, - { - "match": "\\,", - "name": "punctuation.separator.parameters.awk" - } - ] - }, - "keyword": { - "match": "\\b(?:break|continue|do|while|exit|for|if|else|return)\\b", - "name": "keyword.control.awk" - }, - "numeric-constant": { - "match": "\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b", - "name": "constant.numeric.awk" - }, - "operator": { - "patterns": [ - { - "match": "(!?~|[=<>!]=|[<>])", - "name": "keyword.operator.comparison.awk" - }, - { - "match": "\\b(in)\\b", - "name": "keyword.operator.comparison.awk" - }, - { - "match": "([+\\-*/%^]=|\\+\\+|--|>>|=)", - "name": "keyword.operator.assignment.awk" - }, - { - "match": "(\\|\\||&&|!)", - "name": "keyword.operator.boolean.awk" - }, - { - "match": "([+\\-*/%^])", - "name": "keyword.operator.arithmetic.awk" - }, - { - "match": "([?:])", - "name": "keyword.operator.trinary.awk" - }, - { - "match": "(\\[|\\])", - "name": "keyword.operator.index.awk" - } - ] - }, - "pattern": { - "patterns": [ - { - "include": "#regexp-as-pattern" - }, - { - "include": "#function-definition" - }, - { - "include": "#builtin-pattern" - }, - { - "include": "#expression" - } - ] - }, - "procedure": { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#procedure" - }, - { - "include": "#keyword" - }, - { - "include": "#expression" - } - ] - }, - "regex-as-assignment": { - "begin": "([^=<>!+\\-*/%^]=)\\s*(/)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.awk" - }, - "2": { - "name": "punctuation.definition.regex.begin.awk" - } - }, - "contentName": "string.regexp", - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.regex.end.awk" - } - }, - "patterns": [ - { - "include": "source.regexp" - } - ] - }, - "regex-as-comparison": { - "begin": "(!?~)\\s*(/)", - "beginCaptures": { - "1": { - "name": "keyword.operator.comparison.awk" - }, - "2": { - "name": "punctuation.definition.regex.begin.awk" - } - }, - "contentName": "string.regexp", - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.regex.end.awk" - } - }, - "patterns": [ - { - "include": "source.regexp" - } - ] - }, - "regex-as-first-argument": { - "begin": "(\\()\\s*(/)", - "beginCaptures": { - "1": { - "name": "meta.brace.round.awk" - }, - "2": { - "name": "punctuation.definition.regex.begin.awk" - } - }, - "contentName": "string.regexp", - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.regex.end.awk" - } - }, - "patterns": [ - { - "include": "source.regexp" - } - ] - }, - "regex-as-nth-argument": { - "begin": "(,)\\s*(/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.parameters.awk" - }, - "2": { - "name": "punctuation.definition.regex.begin.awk" - } - }, - "contentName": "string.regexp", - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.regex.end.awk" - } - }, - "patterns": [ - { - "include": "source.regexp" - } - ] - }, - "regexp-as-pattern": { - "begin": "/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.regex.begin.awk" - } - }, - "contentName": "string.regexp", - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.regex.end.awk" - } - }, - "patterns": [ - { - "include": "source.regexp" - } - ] - }, - "regexp-in-expression": { - "patterns": [ - { - "include": "#regex-as-assignment" - }, - { - "include": "#regex-as-comparison" - }, - { - "include": "#regex-as-first-argument" - }, - { - "include": "#regex-as-nth-argument" - } - ] - }, - "string-constant": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.awk" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.awk" - } - }, - "name": "string.quoted.double.awk", - "patterns": [ - { - "include": "#escaped-char" - } - ] - }, - "variable": { - "patterns": [ - { - "match": "\\$[0-9]+", - "name": "variable.language.awk" - }, - { - "match": "\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b", - "name": "variable.language.awk" - }, - { - "match": "\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b", - "name": "variable.language.nawk" - }, - { - "match": "\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b", - "name": "variable.language.gawk" - } - ] - } - }, - "scopeName": "source.awk", - "uuid": "67bd1ff0-006b-4c32-8b97-8bc198777582" -} diff --git a/lib/grammars/ballerina.tmLanguage.json b/lib/grammars/ballerina.tmLanguage.json deleted file mode 100644 index 97b0f09..0000000 --- a/lib/grammars/ballerina.tmLanguage.json +++ /dev/null @@ -1,3784 +0,0 @@ -{ - "name": "ballerina", - "scopeName": "source.ballerina", - "fileTypes": ["bal"], - "uuid": "c01f5512-489a-41bd-ba5d-caf4b55ae3b3", - "monarchVariables": { - "typeScope": "type", - "annotationScope": "type", - "numberScope": "number", - "xmlTagAngle": "tag", - "xmlAttribute": "variable.parameter", - "xmlTag": "tag", - "primitiveScope": "type" - }, - "tmlVariables": { - "typeScope": "storage.type.ballerina", - "annotationScope": "support.type.ballerina", - "numberScope": "constant.numeric.decimal.ballerina", - "xmlTagAngle": "punctuation.definition.tag.begin.xml.ballerina", - "xmlAttribute": "entity.other.attribute-name.xml.ballerina", - "xmlTag": "entity.name.tag.xml.ballerina", - "primitiveScope": "support.type.primitive.ballerina" - }, - "patterns": [ - { - "include": "#statements" - } - ], - "repository": { - "statements": { - "patterns": [ - { - "include": "#stringTemplate" - }, - { - "include": "#declaration" - }, - { - "include": "#control-statement" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#string" - }, - { - "include": "#comment" - }, - { - "include": "#mdDocumentation" - }, - { - "include": "#keywords" - }, - { - "include": "#annotationAttachment" - }, - { - "include": "#regex" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#import-declaration" - }, - { - "include": "#var-expr" - }, - { - "include": "#typeDefinition" - }, - { - "include": "#function-defn" - }, - { - "include": "#service-decl" - }, - { - "include": "#class-defn" - }, - { - "include": "#enum-decl" - }, - { - "include": "#source" - }, - { - "include": "#keywords" - } - ] - }, - "control-statement": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.ballerina" - } - }, - "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#for-loop" - }, - { - "include": "#if-statement" - }, - { - "name": "keyword.control.conditional.ballerina", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#keywords" - }, - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#identifiers" - }, - { - "include": "#regex" - } - ] - }, - "expressionWithoutIdentifiers": { - "patterns": [ - { - "include": "#xml" - }, - { - "include": "#string" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#comment" - }, - { - "include": "#object-literal" - }, - { - "include": "#ternary-expression" - }, - { - "include": "#expression-operators" - }, - { - "include": "#literal" - }, - { - "include": "#paranthesised" - }, - { - "include": "#regex" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.ballerina", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#object-member" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "import-declaration": { - "name": "meta.import.ballerina", - "begin": "\\bimport\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.import.ballerina" - } - }, - "end": "\\;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.ballerina" - } - }, - "patterns": [ - { - "match": "(\\')([_$[:alpha:]][_$[:alnum:]]*)", - "name": "variable.other.property.ballerina" - }, - { - "include": "#keywords" - }, - { - "include": "#comment" - }, - { - "include": "#import-clause" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "identifiers": { - "patterns": [ - { - "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.ballerina" - }, - "2": { - "name": "punctuation.accessor.optional.ballerina" - }, - "3": { - "name": "entity.name.function.ballerina" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()", - "captures": { - "1": { - "name": "punctuation.accessor.ballerina" - }, - "2": { - "name": "punctuation.accessor.optional.ballerina" - }, - "3": { - "name": "entity.name.function.ballerina" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.ballerina" - }, - "2": { - "name": "punctuation.accessor.optional.ballerina" - }, - "3": { - "name": "variable.other.property.ballerina" - } - } - }, - { - "include": "#type-primitive" - }, - { - "include": "#self-literal" - }, - { - "name": "keyword.control.ballerina", - "match": "\\b(check|foreach|if|checkpanic)\\b" - }, - { - "include": "#call" - }, - { - "name": "support.type.primitive.ballerina", - "match": "\\b(var)\\b" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?", - "captures": { - "1": { - "name": "variable.other.readwrite.ballerina" - }, - "3": { - "name": "punctuation.accessor.ballerina" - }, - "4": { - "name": "entity.name.function.ballerina" - }, - "5": { - "name": "punctuation.definition.parameters.begin.ballerina" - }, - "6": { - "name": "punctuation.definition.parameters.end.ballerina" - } - } - }, - { - "match": "(\\')([_$[:alpha:]][_$[:alnum:]]*)", - "name": "variable.other.property.ballerina" - }, - { - "include": "#type-annotation" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#function-defn" - }, - { - "include": "#literal" - }, - { - "include": "#keywords" - }, - { - "include": "#expression" - }, - { - "name": "meta.object.member.ballerina meta.object-literal.key.ballerina", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "name": "meta.object.member.ballerina meta.object-literal.key.ballerina", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\n*})|(\\s+(as)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.ballerina meta.object-literal.key.ballerina", - "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", - "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#numbers" - } - ] - }, - { - "name": "meta.method.declaration.ballerina", - "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.object.member.ballerina", - "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.ballerina" - }, - "1": { - "name": "constant.numeric.decimal.ballerina" - } - } - }, - { - "name": "meta.object.member.ballerina", - "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.ballerina" - }, - "1": { - "name": "entity.name.function.ballerina" - } - } - }, - { - "name": "meta.object.member.ballerina", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.ballerina" - } - } - }, - { - "name": "meta.object.member.ballerina", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.ballerina" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.ballerina", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.ballerina" - } - } - }, - { - "name": "meta.object.member.ballerina", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", - "captures": { - "1": { - "name": "keyword.control.as.ballerina" - }, - "2": { - "name": "storage.modifier.ballerina" - } - } - }, - { - "name": "meta.object.member.ballerina", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.ballerina" - } - }, - "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+))" - }, - { - "name": "meta.object.member.ballerina", - "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", - "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.operator.assignment.compound.ballerina", - "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" - }, - { - "name": "keyword.operator.assignment.compound.bitwise.ballerina", - "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.ballerina", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.ballerina", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.ballerina", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.logical.ballerina" - }, - "2": { - "name": "keyword.operator.assignment.compound.ballerina" - }, - "3": { - "name": "keyword.operator.arithmetic.ballerina" - } - } - }, - { - "name": "keyword.operator.logical.ballerina", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.ballerina", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.ballerina", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.ballerina", - "match": "--" - }, - { - "name": "keyword.operator.increment.ballerina", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.ballerina", - "match": "%|\\*|/|-|\\+" - } - ] - }, - "punctuation-comma": { - "patterns": [ - { - "name": "punctuation.separator.comma.ballerina", - "match": "," - } - ] - }, - "punctuation-semicolon": { - "patterns": [ - { - "match": ";", - "name": "punctuation.terminator.statement.ballerina" - } - ] - }, - "punctuation-accessor": { - "patterns": [ - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.ballerina" - }, - "2": { - "name": "punctuation.accessor.optional.ballerina" - } - } - } - ] - }, - "annotationAttachment": { - "patterns": [ - { - "match": "(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\s*(:?)\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)", - "captures": { - "1": { - "name": "punctuation.decorator.ballerina" - }, - "2": { - "name": "support.type.ballerina" - }, - "3": { - "name": "punctuation.decorator.ballerina" - }, - "4": { - "name": "support.type.ballerina" - } - } - } - ] - }, - "annotationDefinition": { - "patterns": [ - { - "begin": "\\bannotation\\b", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": ";", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "booleans": { - "patterns": [ - { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.ballerina" - } - ] - }, - "butExp": { - "patterns": [ - { - "begin": "\\bbut\\b", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "patterns": [ - { - "include": "#butExpBody" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "butExpBody": { - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "end": "(?=\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "patterns": [ - { - "include": "#parameter" - }, - { - "include": "#butClause" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "butClause": { - "patterns": [ - { - "begin": "=>", - "beginCaptures": { - "0": { - "name": "meta.arrow.ballerina storage.type.function.arrow.ballerina" - } - }, - "end": ",|(?=\\})", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "call": { - "patterns": [ - { - "match": "(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()", - "name": "entity.name.function.ballerina" - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.ballerina", - "match": "\\/\\/.*" - } - ] - }, - "constrainType": { - "patterns": [ - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.ballerina" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#constrainType" - }, - { - "name": "storage.type.ballerina", - "match": "\\b([_$[:alpha:]][_$[:alnum:]]*)\\b" - } - ] - } - ] - }, - "tupleType": { - "patterns": [ - { - "begin": "\\[", - "end": "(?=\\]|;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#constrainType" - }, - { - "include": "#paranthesisedBracket" - }, - { - "name": "storage.type.ballerina", - "match": "\\b([_$[:alpha:]][_$[:alnum:]]*)\\b" - } - ] - } - ] - }, - "decl-block": { - "name": "meta.block.ballerina", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "end": "(?=\\} external;)|(\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#statements" - }, - { - "include": "#mdDocumentation" - } - ] - }, - "defaultValue": { - "patterns": [ - { - "begin": "[=:]", - "beginCaptures": { - "0": { - "name": "keyword.operator.ballerina" - } - }, - "end": "(?=[,)])", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "documentationDef": { - "patterns": [ - { - "begin": "\\b(?:documentation|deprecated)\\b", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "delimiter.curly" - } - }, - "patterns": [ - { - "include": "#documentationBody" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "documentationBody": { - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "end": "(?=\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "patterns": [ - { - "match": "(P|R|T|F|V)({{)(.*)(}})", - "captures": { - "1": { - "name": "keyword.other.ballerina.documentation" - }, - "2": { - "name": "keyword.other.ballerina.documentation" - }, - "3": { - "name": "variable.parameter.ballerina.documentation" - }, - "4": { - "name": "keyword.other.ballerina.documentation" - } - } - }, - { - "name": "comment.block.code.ballerina.documentation", - "begin": "\\```", - "end": "\\```" - }, - { - "name": "comment.block.code.ballerina.documentation", - "begin": "\\``", - "end": "\\``" - }, - { - "name": "comment.block.code.ballerina.documentation", - "begin": "\\`", - "end": "\\`" - }, - { - "name": "comment.block.ballerina.documentation", - "match": "." - } - ] - } - ] - }, - "enum-decl": { - "name": "meta.enum.declaration.ballerina", - "begin": "(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "storage.modifier.ballerina" - }, - "2": { - "name": "keyword.other.ballerina" - }, - "3": { - "name": "entity.name.type.enum.ballerina" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#mdDocumentation" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#mdDocumentation" - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "0": { - "name": "variable.other.enummember.ballerina" - } - }, - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "errorDestructure": { - "patterns": [ - { - "begin": "error", - "end": "(?==>)", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "callableUnitBody": { - "patterns": [ - { - "begin": "\\{", - "end": "(?=\\})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#workerDef" - }, - { - "include": "#service-decl" - }, - { - "include": "#objectDec" - }, - { - "include": "#function-defn" - }, - { - "include": "#forkStatement" - }, - { - "include": "#code" - } - ] - } - ] - }, - "for-loop": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))foreach\\s*", - "beginCaptures": { - "0": { - "name": "keyword.control.loop.ballerina" - }, - "1": { - "name": "support.type.primitive.ballerina" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "name": "keyword.other.ballerina", - "match": "\\bin\\b" - }, - { - "include": "#identifiers" - }, - { - "include": "#comment" - }, - { - "include": "#var-expr" - }, - { - "include": "#expression" - } - ] - }, - "forkBody": { - "patterns": [ - { - "begin": "\\{", - "end": "(?=\\})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#workerDef" - } - ] - } - ] - }, - "forkStatement": { - "patterns": [ - { - "begin": "\\bfork\\b", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "keyword.control.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#forkBody" - } - ] - } - ] - }, - "function-body": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#functionParameters" - }, - { - "include": "#decl-block" - }, - { - "begin": "\\=>", - "name": "meta.block.ballerina", - "beginCaptures": { - "0": { - "name": "meta.arrow.ballerina storage.type.function.arrow.ballerina" - } - }, - "end": "(?=\\;)|(?=\\,)|(?=)(?=\\);)", - "patterns": [ - { - "include": "#statements" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "keyword.generator.asterisk.ballerina", - "match": "\\*" - } - ] - }, - "function-defn": { - "name": "meta.function.ballerina", - "begin": "(?:(public|private)\\s+)?(function\\b)", - "beginCaptures": { - "1": { - "name": "keyword.other.ballerina" - }, - "2": { - "name": "keyword.other.ballerina" - } - }, - "end": "(?<=\\;)|(?<=\\})|(?<=\\,)|(?=)(?=\\);)", - "patterns": [ - { - "match": "\\bexternal\\b", - "name": "keyword.ballerina" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#annotationAttachment" - }, - { - "include": "#functionReturns" - }, - { - "include": "#functionName" - }, - { - "include": "#functionParameters" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#function-body" - }, - { - "include": "#regex" - } - ] - }, - "functionName": { - "patterns": [ - { - "name": "keyword.other.ballerina", - "match": "\\bfunction\\b" - }, - { - "include": "#type-primitive" - }, - { - "include": "#self-literal" - }, - { - "include": "#string" - }, - { - "match": "\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))", - "captures": { - "2": { - "name": "variable.language.this.ballerina" - }, - "3": { - "name": "keyword.other.ballerina" - }, - "4": { - "name": "support.type.primitive.ballerina" - }, - "5": { - "name": "storage.type.ballerina" - }, - "6": { - "name": "meta.definition.function.ballerina entity.name.function.ballerina" - } - } - } - ] - }, - "functionParameters": { - "name": "meta.parameters.ballerina", - "begin": "\\(|\\[", - "end": "\\)|\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.ballerina" - } - }, - "patterns": [ - { - "include": "#function-parameters-body" - } - ] - }, - "function-parameters-body": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#numbers" - }, - { - "include": "#string" - }, - { - "include": "#annotationAttachment" - }, - { - "include": "#recordLiteral" - }, - { - "include": "#keywords" - }, - { - "include": "#parameter-name" - }, - { - "include": "#array-literal" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#identifiers" - }, - { - "include": "#regex" - }, - { - "name": "punctuation.separator.parameter.ballerina", - "match": "\\," - } - ] - }, - "parameter-name": { - "patterns": [ - { - "match": "\\s*\\b(var)\\s+", - "captures": { - "1": { - "name": "support.type.primitive.ballerina" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", - "captures": { - "2": { - "name": "keyword.operator.rest.ballerina" - }, - "3": { - "name": "support.type.primitive.ballerina" - }, - "4": { - "name": "keyword.other.ballerina" - }, - "5": { - "name": "constant.language.boolean.ballerina" - }, - "6": { - "name": "keyword.control.flow.ballerina" - }, - "7": { - "name": "storage.type.ballerina" - }, - "8": { - "name": "variable.parameter.ballerina" - }, - "9": { - "name": "variable.parameter.ballerina" - }, - "10": { - "name": "keyword.operator.optional.ballerina" - } - } - } - ] - }, - "functionReturns": { - "name": "meta.type.function.return.ballerina", - "begin": "\\s*(returns)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.ballerina" - } - }, - "end": "(?==>)|(\\=)|(?=\\{)|(\\))|(?=\\;)", - "endCaptures": { - "1": { - "name": "keyword.operator.ballerina" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#numbers" - }, - { - "include": "#keywords" - }, - { - "include": "#type-primitive" - }, - { - "match": "\\s*\\b(var)(?=\\s+|\\[|\\?)", - "captures": { - "1": { - "name": "support.type.primitive.ballerina" - } - } - }, - { - "match": "\\|", - "name": "keyword.operator.ballerina" - }, - { - "match": "\\?", - "name": "keyword.operator.optional.ballerina" - }, - { - "include": "#type-annotation" - }, - { - "include": "#type-tuple" - }, - { - "include": "#keywords" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "variable.other.readwrite.ballerina" - } - ] - }, - "functionType": { - "patterns": [ - { - "begin": "\\bfunction\\b", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": "(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))|(?=\\])", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#functionTypeParamList" - }, - { - "include": "#functionTypeReturns" - } - ] - } - ] - }, - "functionTypeParamList": { - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "delimiter.parenthesis" - } - }, - "endCaptures": { - "0": { - "name": "delimiter.parenthesis" - } - }, - "patterns": [ - { - "match": "public", - "name": "keyword" - }, - { - "include": "#annotationAttachment" - }, - { - "include": "#recordLiteral" - }, - { - "include": "#record" - }, - { - "include": "#objectDec" - }, - { - "include": "#functionType" - }, - { - "include": "#constrainType" - }, - { - "include": "#parameterTuple" - }, - { - "include": "#functionTypeType" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "functionTypeType": { - "patterns": [ - { - "begin": "[_$[:alpha:]][_$[:alnum:]]*", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "end": "(?=\\,)|(?:\\|)|(?=\\])|(?=\\))" - } - ] - }, - "functionTypeReturns": { - "patterns": [ - { - "begin": "\\breturns\\b", - "beginCaptures": { - "0": { - "name": "keyword" - } - }, - "end": "(?=\\,)|(?:\\|)|(?=\\])|(?=\\))", - "patterns": [ - { - "include": "#functionTypeReturnsParameter" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "functionTypeReturnsParameter": { - "patterns": [ - { - "begin": "((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "end": "(?=\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])", - "patterns": [ - { - "include": "#record" - }, - { - "include": "#objectDec" - }, - { - "include": "#functionType" - }, - { - "include": "#constrainType" - }, - { - "include": "#defaultValue" - }, - { - "include": "#comment" - }, - { - "include": "#parameterTuple" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "default.variable.parameter.ballerina" - } - ] - } - ] - }, - "if-statement": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\b\\s*(?!\\{))", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()?", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.ballerina" - }, - "2": { - "name": "meta.brace.round.ballerina" - } - }, - "end": "(\\))|(?=\\{)", - "endCaptures": { - "1": { - "name": "meta.brace.round.ballerina" - } - }, - "patterns": [ - { - "include": "#decl-block" - }, - { - "include": "#keywords" - }, - { - "include": "#identifiers" - }, - { - "include": "#type-primitive" - }, - { - "include": "#xml" - }, - { - "include": "#string" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#comment" - }, - { - "include": "#ternary-expression" - }, - { - "include": "#expression-operators" - }, - { - "include": "#literal" - }, - { - "include": "#paranthesised" - }, - { - "include": "#regex" - } - ] - }, - { - "begin": "(?<=\\))(?=\\s|\\=)", - "end": "(?=\\{)", - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#keywords" - } - ] - }, - { - "include": "#decl-block" - } - ] - } - ] - }, - "import-clause": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))", - "captures": { - "1": { - "name": "keyword.control.default.ballerina" - }, - "3": { - "name": "variable.other.readwrite.ballerina meta.import.module.ballerina" - }, - "5": { - "name": "keyword.control.default.ballerina" - }, - "6": { - "name": "variable.other.readwrite.alias.ballerina" - } - } - }, - { - "name": "variable.other.readwrite.alias.ballerina", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "maps": { - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "matchStatementPatternClause": { - "patterns": [ - { - "begin": "=>", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": "((\\})|;|,)", - "patterns": [ - { - "include": "#callableUnitBody" - }, - { - "include": "#code" - } - ] - } - ] - }, - "matchStatement": { - "patterns": [ - { - "begin": "\\bmatch\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.ballerina" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#matchStatementBody" - }, - { - "include": "#comment" - }, - { - "include": "#code" - } - ] - } - ] - }, - "matchStatementBody": { - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "end": "(?=\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina.documentation" - } - }, - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#matchBindingPattern" - }, - { - "include": "#matchStatementPatternClause" - }, - { - "include": "#comment" - }, - { - "include": "#code" - } - ] - } - ] - }, - "matchBindingPattern": { - "patterns": [ - { - "begin": "var", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "end": "(?==>)|,", - "patterns": [ - { - "include": "#errorDestructure" - }, - { - "include": "#code" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "variable.parameter.ballerina" - } - ] - } - ] - }, - "mdDocumentation": { - "name": "comment.mddocs.ballerina", - "begin": "\\#", - "end": "[\\r\\n]+", - "patterns": [ - { - "include": "#mdDocumentationReturnParamDescription" - }, - { - "include": "#mdDocumentationParamDescription" - } - ] - }, - "mdDocumentationParamDescription": { - "patterns": [ - { - "begin": "(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ballerina" - }, - "2": { - "name": "variable.other.readwrite.ballerina" - }, - "3": { - "name": "keyword.operator.ballerina" - } - }, - "end": "(?=[^#\\r\\n]|(?:# *?\\+))", - "patterns": [ - { - "match": "#.*", - "name": "comment.mddocs.paramdesc.ballerina" - } - ] - } - ] - }, - "mdDocumentationReturnParamDescription": { - "patterns": [ - { - "begin": "(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)", - "beginCaptures": { - "1": { - "name": "comment.mddocs.ballerina" - }, - "2": { - "name": "keyword.ballerina" - }, - "3": { - "name": "keyword.ballerina" - }, - "4": { - "name": "keyword.ballerina" - }, - "5": { - "name": "comment.mddocs.returnparamdesc.ballerina" - } - }, - "end": "(?=[^#\\r\\n]|(?:# *?\\+))", - "patterns": [ - { - "match": "#.*", - "name": "comment.mddocs.returnparamdesc.ballerina" - } - ] - } - ] - }, - "multiType": { - "patterns": [ - { - "match": "(?<=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)", - "name": "storage.type.ballerina" - }, - { - "match": "\\|", - "name": "keyword.operator.ballerina" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?", - "name": "constant.numeric.decimal.ballerina" - } - ] - }, - "class-body": { - "name": "meta.class.body.ballerina", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#mdDocumentation" - }, - { - "include": "#function-defn" - }, - { - "include": "#var-expr" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#access-modifier" - }, - { - "include": "#keywords" - }, - { - "begin": "(?<=:)\\s*", - "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "access-modifier": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "name": "storage.modifier.ballerina keyword.other.ballerina" - } - ] - }, - "class-defn": { - "name": "meta.class.ballerina", - "begin": "(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])", - "beginCaptures": { - "0": { - "name": "storage.type.class.ballerina keyword.other.ballerina" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#keywords" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.class.ballerina" - } - } - }, - { - "include": "#class-body" - } - ] - }, - "objectDec": { - "patterns": [ - { - "begin": "\\bobject\\b(?!:)", - "beginCaptures": { - "0": { - "name": "keyword.other.ballerina" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#decl-block" - } - ] - } - ] - }, - "objectInitBody": { - "patterns": [ - { - "begin": "\\{", - "end": "(?=\\})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#code" - } - ] - } - ] - }, - "objectInitParameters": { - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.ballerina" - } - }, - "patterns": [ - { - "include": "#code" - }, - { - "match": "\\b([_$[:alpha:]][_$[:alnum:]]*)\\b", - "name": "variable.parameter.ballerina" - } - ] - } - ] - }, - "objectMemberFunctionDec": { - "patterns": [ - { - "begin": "\\bfunction\\b", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#functionParameters" - }, - { - "match": "\\breturns\\b", - "name": "keyword.ballerina" - }, - { - "include": "#code" - } - ] - } - ] - }, - "paranthesised": { - "name": "meta.brace.round.block.ballerina", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ballerina" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ballerina" - } - }, - "patterns": [ - { - "include": "#self-literal" - }, - { - "include": "#function-defn" - }, - { - "include": "#decl-block" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#parameters" - }, - { - "include": "#annotationAttachment" - }, - { - "include": "#recordLiteral" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#parameter-name" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#expression" - }, - { - "include": "#regex" - } - ] - }, - "paranthesisedBracket": { - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#code" - } - ] - } - ] - }, - "parameters": { - "patterns": [ - { - "name": "keyword.control.flow.ballerina", - "match": "\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b" - }, - { - "name": "keyword.other.ballerina", - "match": "\\s*(let|select)\\b" - }, - { - "name": "punctuation.separator.parameter.ballerina", - "match": "\\," - } - ] - }, - "record": { - "name": "meta.record.ballerina", - "begin": "\\brecord\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.ballerina" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#recordBody" - } - ] - }, - "recordBody": { - "patterns": [ - { - "include": "#decl-block" - } - ] - }, - "recordLiteral": { - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "serviceBody": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#mdDocumentation" - }, - { - "include": "#documentationDef" - }, - { - "include": "#decl-block" - } - ] - }, - "service-decl": { - "name": "meta.service.declaration.ballerina", - "begin": "\\bservice\\b", - "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|(?<=\\})|(?<=\\,)", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "patterns": [ - { - "include": "#class-defn" - }, - { - "include": "#serviceName" - }, - { - "include": "#serviceOn" - }, - { - "include": "#serviceBody" - }, - { - "include": "#objectDec" - } - ] - }, - "serviceName": { - "patterns": [ - { - "include": "#string" - }, - { - "name": "entity.service.path.ballerina", - "match": "(\\/([_$[:alpha:]][_$[:alnum:]]**)|\\\"[_$[:alpha:]][_$[:alnum:]]*\\\")" - } - ] - }, - "serviceOn": { - "patterns": [ - { - "begin": "on", - "end": "(?={)", - "beginCaptures": { - "0": { - "name": "keyword.other.ballerina" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\\\"", - "end": "\\\"", - "beginCaptures": { - "0": { - "name": "string.begin.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "string.end.ballerina" - } - }, - "patterns": [ - { - "name": "constant.character.escape.ballerina", - "match": "\\\\." - }, - { - "name": "string", - "match": "." - } - ] - } - ] - }, - "string-character-escape": { - "patterns": [ - { - "name": "constant.character.escape.ballerina", - "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]?|.|$)" - } - ] - }, - "stringTemplate": { - "patterns": [ - { - "name": "string.template.ballerina", - "begin": "((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ballerina" - }, - "2": { - "name": "support.type.primitive.ballerina" - }, - "4": { - "name": "punctuation.definition.string.template.begin.ballerina" - } - }, - "end": "\\\\?`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.ballerina" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-substitution-element": { - "patterns": [ - { - "name": "meta.template.expression.ballerina", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.ballerina" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.ballerina" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.ballerina" - } - ] - }, - "typeDefinition": { - "patterns": [ - { - "begin": "(\\btype\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.ballerina" - }, - "2": { - "name": "entity.name.type.ballerina" - } - }, - "end": "\\;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.ballerina" - } - }, - "patterns": [ - { - "include": "#functionParameters" - }, - { - "include": "#functionReturns" - }, - { - "include": "#mdDocumentation" - }, - { - "include": "#record" - }, - { - "include": "#string" - }, - { - "include": "#keywords" - }, - { - "include": "#multiType" - }, - { - "include": "#type-primitive" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "variable.other.readwrite.ballerina" - }, - { - "include": "#type-annotation" - }, - { - "include": "#typeDescription" - }, - { - "include": "#decl-block" - } - ] - } - ] - }, - "typeDescription": { - "patterns": [ - { - "begin": "[_$[:alpha:]][_$[:alnum:]]*", - "end": "(?=;)", - "patterns": [ - { - "include": "#numbers" - }, - { - "include": "#decl-block" - }, - { - "include": "#type-primitive" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "storage.type.ballerina" - } - ] - } - ] - }, - "var-expr": { - "patterns": [ - { - "name": "meta.var.expr.ballerina", - "begin": "(?=\\b(var))", - "beginCaptures": { - "0": { - "name": "storage.modifier.ballerina support.type.primitive.ballerina" - } - }, - "end": "(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=(if)\\s+))|((?<!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))", - "patterns": [ - { - "begin": "\\b(var)(?=\\s+|\\[|\\?|\\||\\:)", - "beginCaptures": { - "0": { - "name": "support.type.primitive.ballerina" - } - }, - "end": "(?=\\S)" - }, - { - "match": "\\|", - "name": "keyword.operator.type.annotation.ballerina" - }, - { - "name": "keyword.other.ballerina", - "match": "\\bin\\b" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#numbers" - }, - { - "include": "#multiType" - }, - { - "include": "#self-literal" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#type-annotation" - }, - { - "include": "#keywords" - }, - { - "include": "#type-tuple" - }, - { - "include": "#regex" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "name": "meta.var.expr.ballerina", - "begin": "(?=\\b(const(?!\\s+enum\\b)))", - "end": "(?!\\b(const(?!\\s+enum\\b)))((?=\\bannotation\\b|;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?<!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))", - "patterns": [ - { - "begin": "\\b(const(?!\\s+enum\\b))\\s+", - "beginCaptures": { - "0": { - "name": "keyword.other.ballerina" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#type-annotation" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "name": "meta.var.expr.ballerina", - "begin": "(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)", - "beginCaptures": { - "0": { - "name": "support.type.primitive.ballerina" - } - }, - "end": "(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?<!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))", - "patterns": [ - { - "include": "#xml" - }, - { - "begin": "(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)", - "beginCaptures": { - "0": { - "name": "support.type.primitive.ballerina" - } - }, - "end": "(?=\\S)" - }, - { - "match": "\\|", - "name": "keyword.operator.type.annotation.ballerina" - }, - { - "include": "#string" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#numbers" - }, - { - "include": "#multiType" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#type-annotation" - }, - { - "include": "#keywords" - }, - { - "include": "#type-tuple" - }, - { - "include": "#regex" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - "var-single-variable": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.ballerina", - "begin": "((string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\s+|\\;|\\>|\\|)", - "beginCaptures": { - "2": { - "name": "support.type.primitive.ballerina" - }, - "3": { - "name": "storage.type.ballerina" - }, - "4": { - "name": "meta.definition.variable.ballerina variable.other.readwrite.ballerina" - } - }, - "end": "(?=$|^|[;,=}])", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.ballerina" - } - }, - "patterns": [ - { - "include": "#call" - }, - { - "include": "#self-literal" - }, - { - "include": "#if-statement" - }, - { - "include": "#string" - }, - { - "include": "#numbers" - }, - { - "include": "#keywords" - } - ] - }, - { - "name": "meta.var-single-variable.expr.ballerina", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ballerina variable.other.readwrite.ballerina" - }, - "2": { - "name": "keyword.operator.definiteassignment.ballerina" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+))" - } - ] - }, - "var-single-const": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.ballerina" - }, - { - "begin": "\\b(var)\\s*", - "beginCaptures": { - "0": { - "name": "support.type.primitive.ballerina" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#types" - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ballerina variable.other.constant.ballerina" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+))" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?<!=|!)(=)(?!=|>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ballerina" - } - }, - "end": "(?=$|[,);}\\]])", - "patterns": [ - { - "match": "(\\')([_$[:alpha:]][_$[:alnum:]]*)", - "name": "variable.other.property.ballerina" - }, - { - "include": "#xml" - }, - { - "include": "#function-defn" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-accessor" - }, - { - "include": "#regex" - } - ] - }, - { - "begin": "(?<!=|!)(=)(?!=|>)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ballerina" - } - }, - "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+))|(?=^\\s*$)|(?<=\\S)(?<!=)(?=\\s*$)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "variableDef": { - "patterns": [ - { - "begin": "(?:(?!\\+)[_$[:alpha:]][_$[:alnum:]]*)(?: |\\t)|(?=\\()", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "end": "(?:[_$[:alpha:]][_$[:alnum:]]*)|(?=\\,)|(?=;)|\\.\\.\\.", - "patterns": [ - { - "include": "#tupleType" - }, - { - "include": "#constrainType" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "variableDefInline": { - "patterns": [ - { - "begin": "(?=record)|(?=object)", - "end": "(?=;)", - "patterns": [ - { - "include": "#record" - }, - { - "include": "#objectDec" - } - ] - } - ] - }, - "workerDef": { - "patterns": [ - { - "begin": "\\bworker\\b", - "beginCaptures": { - "0": { - "name": "keyword.ballerina" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#functionReturns" - }, - { - "include": "#workerBody" - } - ] - } - ] - }, - "workerBody": { - "patterns": [ - { - "begin": "\\{", - "end": "(?=\\})", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "parameter": { - "patterns": [ - { - "begin": "((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "end": "(?:\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])", - "patterns": [ - { - "include": "#parameterWithDescriptor" - }, - { - "include": "#record" - }, - { - "include": "#objectDec" - }, - { - "include": "#functionType" - }, - { - "include": "#constrainType" - }, - { - "include": "#defaultValue" - }, - { - "include": "#comment" - }, - { - "include": "#parameterTuple" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "default.variable.parameter.ballerina" - } - ] - } - ] - }, - "parameterTuple": { - "patterns": [ - { - "begin": "\\[", - "end": "(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))", - "patterns": [ - { - "include": "#record" - }, - { - "include": "#objectDec" - }, - { - "include": "#parameterTupleType" - }, - { - "include": "#parameterTupleEnd" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "parameterTupleType": { - "patterns": [ - { - "begin": "[_$[:alpha:]][_$[:alnum:]]*", - "beginCaptures": { - "0": { - "name": "storage.type.ballerina" - } - }, - "end": "(?:\\,)|(?:\\|)|(?=\\])" - } - ] - }, - "parameterTupleEnd": { - "patterns": [ - { - "begin": "\\]", - "end": "(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))", - "patterns": [ - { - "include": "#defaultWithParentheses" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "name": "default.variable.parameter.ballerina" - } - ] - } - ] - }, - "parameterWithDescriptor": { - "patterns": [ - { - "begin": "\\&", - "beginCaptures": { - "0": { - "name": "keyword.operator.ballerina" - } - }, - "end": "(?=\\,)|(?=\\|)|(?=\\))", - "patterns": [ - { - "include": "#parameter" - } - ] - } - ] - }, - "defaultWithParentheses": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ballerina" - } - } - } - ] - }, - "string": { - "patterns": [ - { - "begin": "\"", - "name": "string.quoted.double.ballerina", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ballerina" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ballerina" - }, - "2": { - "name": "invalid.illegal.newline.ballerina" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "source": { - "patterns": [ - { - "begin": "(\\bsource\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.ballerina" - }, - "2": { - "name": "variable.other.readwrite.ballerina" - } - }, - "end": "(?=\\,)|(?=\\;)" - } - ] - }, - "types": { - "patterns": [ - { - "name": "storage.type.ballerina", - "match": "\\b(handle|any|future|typedesc)\\b" - }, - { - "name": "support.type.primitive.ballerina", - "match": "\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\b" - }, - { - "name": "storage.type.ballerina", - "match": "\\b(map|error|never|readonly|distinct)\\b" - }, - { - "name": "storage.type.ballerina", - "match": "\\b(stream)\\b" - } - ] - }, - "xml": { - "patterns": [ - { - "begin": "(\\bxml)(\\s*)(`)", - "name": "string.template.ballerina", - "beginCaptures": { - "1": { - "name": "support.type.primitive.ballerina" - }, - "3": { - "name": "punctuation.definition.string.template.begin.ballerina" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.ballerina" - } - }, - "patterns": [ - { - "include": "#xmlTag" - }, - { - "include": "#xmlComment" - }, - { - "include": "#templateVariable" - }, - { - "name": "string", - "match": "." - } - ] - } - ] - }, - "xmlTag": { - "patterns": [ - { - "begin": "(<\\/?\\??)\\s*([-_a-zA-Z0-9]+)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.xml.ballerina" - }, - "2": { - "name": "entity.name.tag.xml.ballerina" - } - }, - "end": "\\??\\/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.xml.ballerina" - } - }, - "patterns": [ - { - "include": "#xmlSingleQuotedString" - }, - { - "include": "#xmlDoubleQuotedString" - }, - { - "name": "keyword.other.ballerina", - "match": "xmlns" - }, - { - "name": "entity.other.attribute-name.xml.ballerina", - "match": "([a-zA-Z0-9-]+)" - } - ] - } - ] - }, - "xmlComment": { - "patterns": [ - { - "begin": "<!--", - "beginCaptures": { - "0": { - "name": "comment.block.xml.ballerina" - } - }, - "end": "-->", - "endCaptures": { - "0": { - "name": "comment.block.xml.ballerina" - } - }, - "name": "comment.block.xml.ballerina" - } - ] - }, - "xmlSingleQuotedString": { - "patterns": [ - { - "begin": "\\'", - "end": "\\'", - "beginCaptures": { - "0": { - "name": "string.begin.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "string.end.ballerina" - } - }, - "patterns": [ - { - "name": "constant.character.escape.ballerina", - "match": "\\\\." - }, - { - "name": "string", - "match": "." - } - ] - } - ] - }, - "xmlDoubleQuotedString": { - "patterns": [ - { - "begin": "\\\"", - "end": "\\\"", - "beginCaptures": { - "0": { - "name": "string.begin.ballerina" - } - }, - "endCaptures": { - "0": { - "name": "string.end.ballerina" - } - }, - "patterns": [ - { - "name": "constant.character.escape.ballerina", - "match": "\\\\." - }, - { - "name": "string", - "match": "." - } - ] - } - ] - }, - "templateVariable": { - "patterns": [ - { - "begin": "\\${", - "beginCaptures": { - "0": { - "name": "constant.character.escape.ballerina" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "constant.character.escape.ballerina" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.ballerina" - } - }, - "end": "\\s*", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.ballerina" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "type": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#numbers" - }, - { - "include": "#type-primitive" - }, - { - "include": "#type-tuple" - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.ballerina", - "begin": "(\\:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ballerina" - } - }, - "end": "(?<![:|&])((?=$|^|[,);\\}\\]\\?\\>\\=>]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?", - "patterns": [ - { - "include": "#booleans" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#regex" - }, - { - "include": "#self-literal" - }, - { - "include": "#xml" - }, - { - "include": "#call" - }, - { - "match": "\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?", - "captures": { - "1": { - "name": "keyword.other.ballerina" - }, - "2": { - "name": "constant.language.boolean.ballerina" - }, - "3": { - "name": "keyword.control.ballerina" - }, - "4": { - "name": "storage.type.ballerina" - }, - "5": { - "name": "support.type.primitive.ballerina" - }, - "6": { - "name": "variable.other.readwrite.ballerina" - }, - "8": { - "name": "punctuation.accessor.ballerina" - }, - "9": { - "name": "entity.name.function.ballerina" - }, - "10": { - "name": "punctuation.definition.parameters.begin.ballerina" - }, - "11": { - "name": "punctuation.definition.parameters.end.ballerina" - } - } - }, - { - "name": "keyword.operator.optional.ballerina", - "match": "\\?" - }, - { - "include": "#multiType" - }, - { - "include": "#type" - }, - { - "include": "#paranthesised" - } - ] - } - ] - }, - "type-tuple": { - "name": "meta.type.tuple.ballerina", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "meta.brace.square.ballerina" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.ballerina" - } - }, - "patterns": [ - { - "include": "#self-literal" - }, - { - "include": "#booleans" - }, - { - "name": "keyword.operator.rest.ballerina", - "match": "\\.\\.\\." - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.ballerina" - }, - "2": { - "name": "keyword.operator.optional.ballerina" - }, - "3": { - "name": "punctuation.separator.label.ballerina" - } - } - }, - { - "include": "#identifiers" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.ballerina", - "match": "\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\b" - }, - { - "name": "keyword.control.flow.ballerina", - "match": "\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\b" - }, - { - "name": "keyword.other.ballerina", - "match": "\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\b" - }, - { - "name": "keyword.other.ballerina", - "match": "\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\b" - }, - { - "name": "keyword.other.ballerina", - "match": "\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\b" - }, - { - "name": "keyword.other.ballerina", - "match": "\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service|group|collect)\\b" - }, - { - "name": "meta.arrow.ballerina storage.type.function.arrow.ballerina", - "match": "(=>)" - }, - { - "name": "keyword.operator.ballerina", - "match": "(!|%|\\+|\\-|~=|===|==|=|!=|!==|<|>|&|\\||\\?:|\\.\\.\\.|<=|>=|&&|\\|\\||~|>>|>>>)" - }, - { - "include": "#types" - }, - { - "include": "#self-literal" - }, - { - "include": "#type-primitive" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#booleans" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "include": "#maps" - }, - { - "include": "#self-literal" - }, - { - "include": "#array-literal" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.ballerina", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.ballerina" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.ballerina" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "self-literal": { - "patterns": [ - { - "match": "(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()", - "captures": { - "1": { - "name": "variable.language.this.ballerina" - }, - "2": { - "name": "punctuation.accessor.ballerina" - }, - "3": { - "name": "entity.name.function.ballerina" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))self\\b(?!\\$)", - "name": "variable.language.this.ballerina" - } - ] - }, - "code": { - "patterns": [ - { - "include": "#booleans" - }, - { - "include": "#matchStatement" - }, - { - "include": "#butExp" - }, - { - "include": "#xml" - }, - { - "include": "#stringTemplate" - }, - { - "include": "#keywords" - }, - { - "include": "#strings" - }, - { - "include": "#comment" - }, - { - "include": "#mdDocumentation" - }, - { - "include": "#annotationAttachment" - }, - { - "include": "#numbers" - }, - { - "include": "#maps" - }, - { - "include": "#paranthesised" - }, - { - "include": "#paranthesisedBracket" - }, - { - "include": "#regex" - } - ] - }, - "type-primitive": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|int|boolean|float|byte|decimal|json|xml|anydata)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "name": "support.type.primitive.ballerina" - } - ] - }, - "regex": { - "patterns": [ - { - "begin": "(\\bre)(\\s*)(`)", - "name": "regexp.template.ballerina", - "beginCaptures": { - "1": { - "name": "support.type.primitive.ballerina" - }, - "3": { - "name": "punctuation.definition.regexp.template.begin.ballerina" - } - }, - "end": "`", - "endCaptures": { - "1": { - "name": "punctuation.definition.regexp.template.end.ballerina" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#regexp" - } - ] - } - ] - }, - "regexp": { - "patterns": [ - { - "name": "keyword.control.assertion.regexp.ballerina", - "match": "\\^|\\$" - }, - { - "name": "keyword.operator.quantifier.regexp.ballerina", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp.ballerina", - "match": "\\|" - }, - { - "name": "meta.group.assertion.regexp.ballerina", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.group.regexp.ballerina" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.group.regexp.ballerina" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#regexp" - }, - { - "include": "#flags-on-off" - }, - { - "include": "#unicode-property-escape" - } - ] - }, - { - "name": "constant.other.character-class.set.regexp.ballerina", - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.start.regexp.ballerina" - }, - "2": { - "name": "keyword.operator.negation.regexp.ballerina" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.end.regexp.ballerina" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.regexp.ballerina", - "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))", - "captures": { - "1": { - "name": "constant.character.numeric.regexp" - }, - "2": { - "name": "constant.character.escape.backslash.regexp" - }, - "3": { - "name": "constant.character.numeric.regexp" - }, - "4": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "include": "#regex-character-class" - }, - { - "include": "#unicode-values" - }, - { - "include": "#unicode-property-escape" - } - ] - }, - { - "include": "#template-substitution-element" - }, - { - "include": "#regex-character-class" - }, - { - "include": "#unicode-values" - }, - { - "include": "#unicode-property-escape" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "keyword.other.character-class.regexp.ballerina", - "match": "\\\\[wWsSdDtrn]|\\." - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\[^pPu]" - } - ] - }, - "unicode-property-escape": { - "patterns": [ - { - "name": "keyword.other.unicode-property.regexp.ballerina", - "begin": "(\\\\p|\\\\P)(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.other.unicode-property.regexp.ballerina" - }, - "2": { - "name": "punctuation.other.unicode-property.begin.regexp.ballerina" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.other.unicode-property.end.regexp.ballerina" - }, - "patterns": [ - { - "include": "#regex-unicode-properties-general-category" - }, - { - "include": "#regex-unicode-property-key" - } - ] - } - } - ] - }, - "regex-unicode-property-key": { - "patterns": [ - { - "name": "keyword.other.unicode-property-key.regexp.ballerina", - "begin": "(sc=|gc=)", - "beginCaptures": { - "1": { - "name": "keyword.other.unicode-property-key.regexp.ballerina" - } - }, - "end": "()", - "endCaptures": { - "1": { - "name": "punctuation.other.unicode-property.end.regexp.ballerina" - }, - "patterns": [ - { - "include": "#regex-unicode-properties-general-category" - } - ] - } - } - ] - }, - "regex-unicode-properties-general-category": { - "patterns": [ - { - "match": "(Lu|Ll|Lt|Lm|Lo|L|Mn|Mc|Me|M|Nd|Nl|No|N|Pc|Pd|Ps|Pe|Pi|Pf|Po|P|Sm|Sc|Sk|So|S|Zs|Zl|Zp|Z|Cf|Cc|Cn|Co|C)", - "name": "constant.other.unicode-property-general-category.regexp.ballerina" - } - ] - }, - "unicode-values": { - "patterns": [ - { - "name": "keyword.other.unicode-value.ballerina", - "begin": "(\\\\u)(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.other.unicode-value.regexp.ballerina" - }, - "2": { - "name": "punctuation.other.unicode-value.begin.regexp.ballerina" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.other.unicode-value.end.regexp.ballerina" - }, - "patterns": [ - { - "match": "([0-9A-Fa-f]{1,6})", - "name": "constant.other.unicode-value.regexp.ballerina" - } - ] - } - } - ] - }, - "flags-on-off": { - "name": "meta.flags.regexp.ballerina", - "patterns": [ - { - "begin": "(\\??)([imsx]*)(-?)([imsx]*)(:)", - "beginCaptures": { - "1": { - "name": "punctuation.other.non-capturing-group-begin.regexp.ballerina" - }, - "2": { - "name": "keyword.other.non-capturing-group.flags-on.regexp.ballerina" - }, - "3": { - "name": "punctuation.other.non-capturing-group.off.regexp.ballerina" - }, - "4": { - "name": "keyword.other.non-capturing-group.flags-off.regexp.ballerina" - }, - "5": { - "name": "punctuation.other.non-capturing-group-end.regexp.ballerina" - } - }, - "end": "()", - "name": "constant.other.flag.regexp.ballerina", - "patterns": [ - { - "include": "#regexp" - }, - { - "include": "#template-substitution-element" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/bat.tmLanguage.json b/lib/grammars/bat.tmLanguage.json deleted file mode 100644 index 7e32d02..0000000 --- a/lib/grammars/bat.tmLanguage.json +++ /dev/null @@ -1,788 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/mmims/language-batchfile/blob/master/grammars/batchfile.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/mmims/language-batchfile/commit/6154ae25a24e01ac9329e7bcf958e093cd8733a9", - "name": "bat", - "scopeName": "source.batchfile", - "injections": { - "L:meta.block.repeat.batchfile": { - "patterns": [ - { - "include": "#repeatParameter" - } - ] - } - }, - "patterns": [ - { - "include": "#commands" - }, - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#controls" - }, - { - "include": "#escaped_characters" - }, - { - "include": "#labels" - }, - { - "include": "#numbers" - }, - { - "include": "#operators" - }, - { - "include": "#parens" - }, - { - "include": "#strings" - }, - { - "include": "#variables" - } - ], - "repository": { - "commands": { - "patterns": [ - { - "match": "(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)", - "name": "keyword.command.batchfile" - }, - { - "begin": "(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)", - "beginCaptures": { - "1": { - "name": "keyword.command.batchfile" - }, - "2": { - "name": "keyword.other.special-method.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - } - ] - }, - { - "match": "(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))", - "captures": { - "1": { - "name": "keyword.command.batchfile" - }, - "2": { - "name": "keyword.other.special-method.batchfile" - } - } - }, - { - "include": "#command_set" - } - ] - }, - "command_set": { - "patterns": [ - { - "begin": "(?<=^|[\\s@])(?i:SET)(?=$|\\s)", - "beginCaptures": { - "0": { - "name": "keyword.command.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#command_set_inside" - } - ] - } - ] - }, - "command_set_inside": { - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#parens" - }, - { - "include": "#command_set_strings" - }, - { - "include": "#strings" - }, - { - "begin": "([^ ][^=]*)(=)", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#parens" - }, - { - "include": "#strings" - } - ] - }, - { - "begin": "\\s+/[aA]\\s+", - "end": "(?=$\\n|[&|><)])", - "name": "meta.expression.set.batchfile", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.batchfile" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.batchfile" - } - }, - "name": "string.quoted.double.batchfile", - "patterns": [ - { - "include": "#command_set_inside_arithmetic" - }, - { - "include": "#command_set_group" - }, - { - "include": "#variables" - } - ] - }, - { - "include": "#command_set_inside_arithmetic" - }, - { - "include": "#command_set_group" - } - ] - }, - { - "begin": "\\s+/[pP]\\s+", - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#command_set_strings" - }, - { - "begin": "([^ ][^=]*)(=)", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "name": "meta.prompt.set.batchfile", - "patterns": [ - { - "include": "#strings" - } - ] - } - ] - } - ] - }, - "command_set_group": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.batchfile" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.batchfile" - } - }, - "patterns": [ - { - "include": "#command_set_inside_arithmetic" - } - ] - } - ] - }, - "command_set_inside_arithmetic": { - "patterns": [ - { - "include": "#command_set_operators" - }, - { - "include": "#numbers" - }, - { - "match": ",", - "name": "punctuation.separator.batchfile" - } - ] - }, - "command_set_operators": { - "patterns": [ - { - "match": "([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)", - "captures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.augmented.batchfile" - } - } - }, - { - "match": "\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~", - "name": "keyword.operator.arithmetic.batchfile" - }, - { - "match": "!", - "name": "keyword.operator.logical.batchfile" - }, - { - "match": "([^ =]*)(=)", - "captures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.batchfile" - } - } - } - ] - }, - "command_set_strings": { - "patterns": [ - { - "begin": "(\")\\s*([^ ][^=]*)(=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.batchfile" - }, - "2": { - "name": "variable.other.readwrite.batchfile" - }, - "3": { - "name": "keyword.operator.assignment.batchfile" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.batchfile" - } - }, - "name": "string.quoted.double.batchfile", - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#escaped_characters" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "(?:^|(&))\\s*(?=((?::[+=,;: ])))", - "beginCaptures": { - "1": { - "name": "keyword.operator.conditional.batchfile" - } - }, - "end": "\\n", - "patterns": [ - { - "begin": "((?::[+=,;: ]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.batchfile" - } - }, - "end": "(?=\\n)", - "name": "comment.line.colon.batchfile" - } - ] - }, - { - "begin": "(?<=^|[\\s@])(?i)(REM)(\\.)", - "beginCaptures": { - "1": { - "name": "keyword.command.rem.batchfile" - }, - "2": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "name": "comment.line.rem.batchfile" - }, - { - "begin": "(?<=^|[\\s@])(?i:rem)\\b", - "beginCaptures": { - "0": { - "name": "keyword.command.rem.batchfile" - } - }, - "end": "\\n", - "name": "comment.line.rem.batchfile", - "patterns": [ - { - "match": "[><|]", - "name": "invalid.illegal.unexpected-character.batchfile" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "match": "\\b(?i:NUL)\\b", - "name": "constant.language.batchfile" - } - ] - }, - "controls": { - "patterns": [ - { - "match": "(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))", - "name": "keyword.control.statement.batchfile" - }, - { - "match": "(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)", - "captures": { - "1": { - "name": "keyword.control.conditional.batchfile" - }, - "2": { - "name": "keyword.operator.logical.batchfile" - }, - "3": { - "name": "keyword.other.special-method.batchfile" - } - } - }, - { - "match": "(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)", - "name": "keyword.control.conditional.batchfile" - }, - { - "begin": "(?<=^|[\\s(&^])(?i)for(?=\\s)", - "beginCaptures": { - "0": { - "name": "keyword.control.repeat.batchfile" - } - }, - "name": "meta.block.repeat.batchfile", - "end": "\\n", - "patterns": [ - { - "begin": "(?<=[\\s^])(?i)in(?=\\s)", - "beginCaptures": { - "0": { - "name": "keyword.control.repeat.in.batchfile" - } - }, - "end": "(?<=[\\s)^])(?i)do(?=\\s)|\\n", - "endCaptures": { - "0": { - "name": "keyword.control.repeat.do.batchfile" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - } - ] - }, - "escaped_characters": { - "patterns": [ - { - "match": "%%|\\^\\^!|\\^(?=.)|\\^\\n", - "name": "constant.character.escape.batchfile" - } - ] - }, - "labels": { - "patterns": [ - { - "match": "(?i)(?:^\\s*|(?<=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)", - "captures": { - "1": { - "name": "punctuation.separator.batchfile" - }, - "2": { - "name": "keyword.other.special-method.batchfile" - } - } - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)", - "name": "constant.numeric.batchfile" - } - ] - }, - "operators": { - "patterns": [ - { - "match": "@(?=\\S)", - "name": "keyword.operator.at.batchfile" - }, - { - "match": "(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==", - "name": "keyword.operator.comparison.batchfile" - }, - { - "match": "(?<=\\s)(?i)(NOT)(?=\\s)", - "name": "keyword.operator.logical.batchfile" - }, - { - "match": "(?<!\\^)&&?|\\|\\|", - "name": "keyword.operator.conditional.batchfile" - }, - { - "match": "(?<!\\^)\\|", - "name": "keyword.operator.pipe.batchfile" - }, - { - "match": "<&?|>[&>]?", - "name": "keyword.operator.redirection.batchfile" - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.batchfile" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.batchfile" - } - }, - "name": "meta.group.batchfile", - "patterns": [ - { - "match": ",|;", - "name": "punctuation.separator.batchfile" - }, - { - "include": "$self" - } - ] - } - ] - }, - "repeatParameter": { - "patterns": [ - { - "match": "(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])", - "captures": { - "1": { - "name": "punctuation.definition.variable.batchfile" - } - }, - "name": "variable.parameter.repeat.batchfile" - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.batchfile" - } - }, - "end": "(\")|(\\n)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.batchfile" - }, - "2": { - "name": "invalid.illegal.newline.batchfile" - } - }, - "name": "string.quoted.double.batchfile", - "patterns": [ - { - "match": "%%", - "name": "constant.character.escape.batchfile" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "variables": { - "patterns": [ - { - "match": "(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)", - "captures": { - "1": { - "name": "punctuation.definition.variable.batchfile" - } - }, - "name": "variable.parameter.batchfile" - }, - { - "include": "#variable" - }, - { - "include": "#variable_delayed_expansion" - } - ] - }, - "variable": { - "patterns": [ - { - "begin": "%(?=[^%]+%)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.begin.batchfile" - } - }, - "end": "(%)|\\n", - "endCaptures": { - "1": { - "name": "punctuation.definition.variable.end.batchfile" - } - }, - "name": "variable.other.readwrite.batchfile", - "patterns": [ - { - "begin": ":~", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=%|\\n)", - "name": "meta.variable.substring.batchfile", - "patterns": [ - { - "include": "#variable_substring" - } - ] - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=%|\\n)", - "name": "meta.variable.substitution.batchfile", - "patterns": [ - { - "include": "#variable_replace" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=%|\\n)", - "patterns": [ - { - "include": "#variable_delayed_expansion" - }, - { - "match": "[^%]+", - "name": "string.unquoted.batchfile" - } - ] - } - ] - } - ] - } - ] - }, - "variable_delayed_expansion": { - "patterns": [ - { - "begin": "!(?=[^!]+!)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.begin.batchfile" - } - }, - "end": "(!)|\\n", - "endCaptures": { - "1": { - "name": "punctuation.definition.variable.end.batchfile" - } - }, - "name": "variable.other.readwrite.batchfile", - "patterns": [ - { - "begin": ":~", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=!|\\n)", - "name": "meta.variable.substring.batchfile", - "patterns": [ - { - "include": "#variable_substring" - } - ] - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=!|\\n)", - "name": "meta.variable.substitution.batchfile", - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variable_replace" - }, - { - "include": "#variable" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=!|\\n)", - "patterns": [ - { - "include": "#variable" - }, - { - "match": "[^!]+", - "name": "string.unquoted.batchfile" - } - ] - } - ] - } - ] - } - ] - }, - "variable_replace": { - "patterns": [ - { - "match": "[^=%!\\n]+", - "name": "string.unquoted.batchfile" - } - ] - }, - "variable_substring": { - "patterns": [ - { - "match": "([+-]?\\d+)(?:(,)([+-]?\\d+))?", - "captures": { - "1": { - "name": "constant.numeric.batchfile" - }, - "2": { - "name": "punctuation.separator.batchfile" - }, - "3": { - "name": "constant.numeric.batchfile" - } - } - } - ] - } - } -} diff --git a/lib/grammars/beancount.tmLanguage.json b/lib/grammars/beancount.tmLanguage.json deleted file mode 100644 index fd8ea38..0000000 --- a/lib/grammars/beancount.tmLanguage.json +++ /dev/null @@ -1,829 +0,0 @@ -{ - "fileTypes": ["beancount"], - "name": "beancount", - "patterns": [ - { - "comment": "Comments", - "match": ";.*", - "name": "comment.line.beancount" - }, - { - "begin": "^\\s*(poptag|pushtag)\\s+(#)([A-Za-z0-9\\-_/.]+)", - "beginCaptures": { - "1": { - "name": "support.function.beancount" - }, - "2": { - "name": "keyword.operator.tag.beancount" - }, - "3": { - "name": "entity.name.tag.beancount" - } - }, - "comment": "Tag directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.tag.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "^\\s*(include)\\s+(\\\".*\\\")", - "beginCaptures": { - "1": { - "name": "support.function.beancount" - }, - "2": { - "name": "string.quoted.double.beancount" - } - }, - "comment": "Include directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.include.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "^\\s*(option)\\s+(\\\".*\\\")\\s+(\\\".*\\\")", - "beginCaptures": { - "1": { - "name": "support.function.beancount" - }, - "2": { - "name": "support.variable.beancount" - }, - "3": { - "name": "string.quoted.double.beancount" - } - }, - "comment": "Option directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.option.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "^\\s*(plugin)\\s*(\"(.*?)\")\\s*(\".*?\")?", - "beginCaptures": { - "1": { - "name": "support.function.beancount" - }, - "2": { - "name": "string.quoted.double.beancount" - }, - "3": { - "name": "entity.name.function.beancount" - }, - "4": { - "name": "string.quoted.double.beancount" - } - }, - "comment": "Plugin directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "keyword.operator.directive.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(open|close|pad)\\b", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.beancount" - } - }, - "comment": "Open/Close/Pad directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#account" - }, - { - "include": "#commodity" - }, - { - "match": "\\,", - "name": "punctuation.separator.beancount" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(custom)\\b", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.beancount" - } - }, - "comment": "Custom directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#string" - }, - { - "include": "#bool" - }, - { - "include": "#amount" - }, - { - "include": "#number" - }, - { - "include": "#date" - }, - { - "include": "#account" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(event)", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - } - }, - "comment": "Event directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#string" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(commodity)", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - } - }, - "comment": "Commodity directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#commodity" - }, - { - "include": "#illegal" - } - ] - }, - { - "name": "meta.directive.notetotext.beancount", - "comment": "Note as Oneliner Transaction directive", - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(note)(?=(.*\\*\\\"\\s))", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - } - }, - "end": "(?=(^\\s*$|^\\S))", - "patterns": [ - { - "include": "#meta" - }, - { - "include": "#account" - }, - { - "name": "punctuation.separator.beancount", - "match": "(?<=\\s)\\\"" - }, - { - "include": "#cost" - }, - { - "include": "#amount" - }, - { - "begin": "(\\*|\\!)", - "beginCaptures": { - "0": { - "name": "support.function.directive.beancount" - } - }, - "end": "(\\*\\\")", - "endCaptures": { - "0": { - "name": "punctuation.separator.beancount" - } - }, - "patterns": [ - { - "name": "constant.character.escape.beancount", - "match": "\\\\." - }, - { - "include": "#tag" - }, - { - "name": "string.quoted.double.beancount", - "match": "([^\\\"])" - } - ] - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(note|document)", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - } - }, - "comment": "Note/Document directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#account" - }, - { - "include": "#string" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(price)", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - } - }, - "comment": "Price directives", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#commodity" - }, - { - "include": "#amount" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(balance)", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - } - }, - "comment": "Balance directives", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.dated.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#meta" - }, - { - "include": "#account" - }, - { - "include": "#amount" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s*(txn|[*!&#?%PSTCURM])\\s*(\".*?\")?\\s*(\".*?\")?", - "beginCaptures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - }, - "6": { - "name": "support.function.directive.beancount" - }, - "7": { - "name": "string.quoted.tiers.beancount" - }, - "8": { - "name": "string.quoted.narration.beancount" - } - }, - "comment": "Transaction directive", - "end": "(?=(^\\s*$|^\\S))", - "name": "meta.directive.transaction.beancount", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#posting" - }, - { - "include": "#meta" - }, - { - "include": "#tag" - }, - { - "include": "#link" - }, - { - "include": "#illegal" - } - ] - } - ], - "repository": { - "account": { - "begin": "([A-Z][a-z]+)(:)", - "beginCaptures": { - "1": { - "name": "constant.language.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - } - }, - "end": "\\s", - "name": "meta.account.beancount", - "patterns": [ - { - "begin": "(\\S+)([:]?)", - "beginCaptures": { - "1": { - "name": "variable.account.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - } - }, - "comment": "Sub accounts", - "end": "([:]?)|(\\s)", - "patterns": [ - { - "include": "$self" - }, - { - "include": "#illegal" - } - ] - } - ] - }, - "bool": { - "captures": { - "0": { - "name": "constant.language.bool.beancount" - }, - "2": { - "name": "constant.numeric.currency.beancount" - }, - "3": { - "name": "entity.type.commodity.beancount" - } - }, - "match": "TRUE|FALSE" - }, - "number": { - "captures": { - "1": { - "name": "keyword.operator.modifier.beancount" - }, - "2": { - "name": "constant.numeric.currency.beancount" - } - }, - "match": "([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)" - }, - "amount": { - "captures": { - "1": { - "name": "keyword.operator.modifier.beancount" - }, - "2": { - "name": "constant.numeric.currency.beancount" - }, - "3": { - "name": "entity.type.commodity.beancount" - } - }, - "match": "([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)\\s*([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])", - "name": "meta.amount.beancount" - }, - "comments": { - "captures": { - "1": { - "name": "comment.line.beancount" - } - }, - "match": "(;.*)$" - }, - "commodity": { - "match": "([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])", - "name": "entity.type.commodity.beancount" - }, - "cost": { - "begin": "\\{\\{?", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.beancount" - } - }, - "end": "\\}\\}?", - "endCaptures": { - "0": { - "name": "keyword.operator.assignment.beancount" - } - }, - "name": "meta.cost.beancount", - "patterns": [ - { - "include": "#amount" - }, - { - "include": "#date" - }, - { - "match": "\\,", - "name": "punctuation.separator.beancount" - }, - { - "include": "#illegal" - } - ] - }, - "date": { - "captures": { - "1": { - "name": "constant.numeric.date.year.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - }, - "3": { - "name": "constant.numeric.date.month.beancount" - }, - "4": { - "name": "punctuation.separator.beancount" - }, - "5": { - "name": "constant.numeric.date.day.beancount" - } - }, - "match": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})", - "name": "meta.date.beancount" - }, - "flag": { - "match": "(?<=\\s)([*!&#?%PSTCURM])(?=\\s+)", - "name": "keyword.other.beancount" - }, - "illegal": { - "match": "[^\\s]", - "name": "invalid.illegal.unrecognized.beancount" - }, - "link": { - "captures": { - "1": { - "name": "keyword.operator.link.beancount" - }, - "2": { - "name": "markup.underline.link.beancount" - } - }, - "match": "(\\^)([A-Za-z0-9\\-_/.]+)" - }, - "meta": { - "begin": "^\\s*([a-z][A-Za-z0-9\\-_]+)([:])", - "beginCaptures": { - "1": { - "name": "keyword.operator.directive.beancount" - }, - "2": { - "name": "punctuation.separator.beancount" - } - }, - "end": "\\n", - "name": "meta.meta.beancount", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#account" - }, - { - "include": "#bool" - }, - { - "include": "#commodity" - }, - { - "include": "#date" - }, - { - "include": "#tag" - }, - { - "include": "#amount" - }, - { - "include": "#number" - }, - { - "include": "#comments" - }, - { - "include": "#illegal" - } - ] - }, - "posting": { - "begin": "^\\s+(?=([A-Z\\!]))", - "end": "(?=(^\\s*$|^\\S|^\\s*[A-Z]))", - "name": "meta.posting.beancount", - "patterns": [ - { - "include": "#meta" - }, - { - "include": "#comments" - }, - { - "include": "#flag" - }, - { - "include": "#account" - }, - { - "include": "#amount" - }, - { - "include": "#cost" - }, - { - "include": "#date" - }, - { - "include": "#price" - }, - { - "include": "#illegal" - } - ] - }, - "price": { - "begin": "\\@\\@?", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.beancount" - } - }, - "end": "(?=(;|\\n))", - "name": "meta.price.beancount", - "patterns": [ - { - "include": "#amount" - }, - { - "include": "#illegal" - } - ] - }, - "string": { - "begin": "\\\"", - "end": "\\\"", - "name": "string.quoted.double.beancount", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.beancount" - } - ] - }, - "tag": { - "captures": { - "1": { - "name": "keyword.operator.tag.beancount" - }, - "2": { - "name": "entity.name.tag.beancount" - } - }, - "match": "(#)([A-Za-z0-9\\-_/.]+)" - } - }, - "scopeName": "text.beancount", - "uuid": "dbf28879-ee4d-497e-a678-a5c5a5e8d74f" -} diff --git a/lib/grammars/berry.tmLanguage.json b/lib/grammars/berry.tmLanguage.json deleted file mode 100644 index d3e5f3c..0000000 --- a/lib/grammars/berry.tmLanguage.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "berry", - "patterns": [ - { - "include": "#controls" - }, - { - "include": "#strings" - }, - { - "include": "#comment-block" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#function" - }, - { - "include": "#member" - }, - { - "include": "#identifier" - }, - { - "include": "#number" - }, - { - "include": "#operator" - } - ], - "repository": { - "controls": { - "patterns": [ - { - "name": "keyword.control.berry", - "match": "\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b" - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.double.berry", - "match": "\"(\\\\.|[^\"])*\"" - }, - { - "name": "string.quoted.single.berry", - "match": "'(\\\\.|[^'])*'" - } - ] - }, - "comment-block": { - "name": "comment.berry", - "begin": "\\#\\-", - "end": "\\-#", - "patterns": [{}] - }, - "comments": { - "name": "comment.line.berry", - "begin": "\\#", - "end": "\\n", - "patterns": [{}] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.berry", - "match": "\\b(var|static|def|class|true|false|nil|self|super|import|as)\\b" - } - ] - }, - "identifier": { - "patterns": [ - { - "name": "identifier.berry", - "match": "\\b[_A-Za-z]\\w+\\b" - } - ] - }, - "number": { - "patterns": [ - { - "name": "constant.numeric.berry", - "match": "0x[a-fA-F0-9]+|\\d+|(\\d+\\.?|\\.\\d)\\d*([eE][+-]?\\d+)?" - } - ] - }, - "operator": { - "patterns": [ - { - "name": "keyword.operator.berry", - "match": "\\(|\\)|\\[|\\]|\\.|-|\\!|~|\\*|/|%|\\+|&|\\^|\\||<|>|=|:" - } - ] - }, - "member": { - "patterns": [ - { - "match": "\\.([a-zA-Z_][a-zA-Z0-9_]*)", - "captures": { - "0": { - "name": "entity.other.attribute-name.berry" - } - } - } - ] - }, - "function": { - "patterns": [ - { - "name": "entity.name.function.berry", - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\())" - } - ] - } - }, - "scopeName": "source.berry" -} diff --git a/lib/grammars/bibtex.tmLanguage.json b/lib/grammars/bibtex.tmLanguage.json deleted file mode 100644 index ce28b47..0000000 --- a/lib/grammars/bibtex.tmLanguage.json +++ /dev/null @@ -1,401 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/Bibtex.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jlelong/vscode-latex-basics/commit/7adad0868ecafbb1df978f1e052d6c3c85c38732", - "name": "bibtex", - "scopeName": "text.bibtex", - "comment": "Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment\n\t\n\tTODO: Does not support @preamble\n\t", - "patterns": [ - { - "begin": "@Comment", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.bibtex" - } - }, - "end": "$\\n?", - "name": "comment.line.at-sign.bibtex" - }, - { - "patterns": [ - { - "include": "#percentage_comment" - } - ] - }, - { - "begin": "((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)", - "beginCaptures": { - "1": { - "name": "keyword.other.string-constant.bibtex" - }, - "2": { - "name": "punctuation.definition.keyword.bibtex" - }, - "3": { - "name": "punctuation.section.string-constant.begin.bibtex" - }, - "4": { - "name": "variable.other.bibtex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.string-constant.end.bibtex" - } - }, - "name": "meta.string-constant.braces.bibtex", - "patterns": [ - { - "include": "#string_content" - } - ] - }, - { - "begin": "((@)(?i:string))\\s*(\\()\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)", - "beginCaptures": { - "1": { - "name": "keyword.other.string-constant.bibtex" - }, - "2": { - "name": "punctuation.definition.keyword.bibtex" - }, - "3": { - "name": "punctuation.section.string-constant.begin.bibtex" - }, - "4": { - "name": "variable.other.bibtex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.string-constant.end.bibtex" - } - }, - "name": "meta.string-constant.parenthesis.bibtex", - "patterns": [ - { - "include": "#string_content" - } - ] - }, - { - "begin": "((@)[a-zA-Z]+)\\s*(\\{)\\s*([^\\s,]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.entry-type.bibtex" - }, - "2": { - "name": "punctuation.definition.keyword.bibtex" - }, - "3": { - "name": "punctuation.section.entry.begin.bibtex" - }, - "4": { - "name": "entity.name.type.entry-key.bibtex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.entry.end.bibtex" - } - }, - "name": "meta.entry.braces.bibtex", - "patterns": [ - { - "include": "#percentage_comment" - }, - { - "include": "#url_field" - }, - { - "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)", - "beginCaptures": { - "1": { - "name": "support.function.key.bibtex" - }, - "2": { - "name": "punctuation.separator.key-value.bibtex" - } - }, - "end": "(?=[,}])", - "name": "meta.key-assignment.bibtex", - "patterns": [ - { - "include": "#percentage_comment" - }, - { - "include": "#integer" - }, - { - "include": "#string_content" - }, - { - "include": "#string_var" - } - ] - } - ] - }, - { - "begin": "((@)[a-zA-Z]+)\\s*(\\()\\s*([^\\s,]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.entry-type.bibtex" - }, - "2": { - "name": "punctuation.definition.keyword.bibtex" - }, - "3": { - "name": "punctuation.section.entry.begin.bibtex" - }, - "4": { - "name": "entity.name.type.entry-key.bibtex" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.entry.end.bibtex" - } - }, - "name": "meta.entry.parenthesis.bibtex", - "patterns": [ - { - "include": "#percentage_comment" - }, - { - "include": "#url_field" - }, - { - "begin": "([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)", - "beginCaptures": { - "1": { - "name": "support.function.key.bibtex" - }, - "2": { - "name": "punctuation.separator.key-value.bibtex" - } - }, - "end": "(?=[,)])", - "name": "meta.key-assignment.bibtex", - "patterns": [ - { - "include": "#percentage_comment" - }, - { - "include": "#integer" - }, - { - "include": "#string_content" - }, - { - "include": "#string_var" - } - ] - } - ] - }, - { - "begin": "[^@\\n]", - "end": "(?=@)", - "name": "comment.block.bibtex" - } - ], - "repository": { - "integer": { - "match": "\\s*(\\d+)\\s*", - "captures": { - "1": { - "name": "constant.numeric.bibtex" - } - } - }, - "nested_braces": { - "begin": "(?<!\\\\)\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.begin.bibtex" - } - }, - "end": "(?<!\\\\)\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.group.end.bibtex" - } - }, - "patterns": [ - { - "include": "#nested_braces" - } - ] - }, - "string_var": { - "match": "(#)?\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(#)?", - "captures": { - "1": { - "name": "keyword.operator.bibtex" - }, - "2": { - "name": "support.variable.bibtex" - }, - "3": { - "name": "keyword.operator.bibtex" - } - } - }, - "string_content": { - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.bibtex" - } - }, - "end": "(\\})(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.bibtex" - } - }, - "patterns": [ - { - "include": "#url_cmd" - }, - { - "include": "#percentage_comment" - }, - { - "match": "@", - "name": "invalid.illegal.at-sign.bibtex" - }, - { - "include": "#nested_braces" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.bibtex" - } - }, - "end": "\"(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.bibtex" - } - }, - "patterns": [ - { - "include": "#url_cmd" - }, - { - "include": "#percentage_comment" - }, - { - "match": "@", - "name": "invalid.illegal.at-sign.bibtex" - } - ] - } - ] - }, - "string_url": { - "patterns": [ - { - "begin": "\\{|\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.bibtex" - } - }, - "end": "(\\}|\")(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.bibtex" - } - }, - "contentName": "meta.url.bibtex", - "patterns": [ - { - "include": "#url_cmd" - } - ] - } - ] - }, - "percentage_comment": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=%)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.bibtex" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "(?<!\\\\)%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.bibtex" - } - }, - "end": "$\\n?", - "name": "comment.line.percentage.bibtex" - } - ] - } - ] - }, - "url_cmd": { - "captures": { - "1": { - "name": "support.function.url.bibtex" - }, - "2": { - "name": "punctuation.definition.function.bibtex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bibtex" - }, - "4": { - "name": "markup.underline.link.bibtex" - }, - "5": { - "name": "punctuation.definition.arguments.end.bibtex" - } - }, - "match": "(?:\\s*)((\\\\)(?:url|href))(\\{)([^}]*)(\\})", - "name": "meta.function.link.url.bibtex" - }, - "url_field": { - "begin": "(url)\\s*(\\=)", - "beginCaptures": { - "1": { - "name": "support.function.key.bibtex" - }, - "2": { - "name": "punctuation.separator.key-value.bibtex" - } - }, - "end": "(?=[,}])", - "name": "meta.key-assignment.url.bibtex", - "patterns": [ - { - "include": "#string_url" - } - ] - } - } -} diff --git a/lib/grammars/bicep.tmLanguage.json b/lib/grammars/bicep.tmLanguage.json deleted file mode 100644 index c03f18f..0000000 --- a/lib/grammars/bicep.tmLanguage.json +++ /dev/null @@ -1,236 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "bicep", - "scopeName": "source.bicep", - "fileTypes": [".bicep"], - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comments" - } - ], - "repository": { - "array-literal": { - "name": "meta.array-literal.bicep", - "begin": "\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)", - "end": "]", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comments" - } - ] - }, - "block-comment": { - "name": "comment.block.bicep", - "begin": "/\\*", - "end": "\\*/" - }, - "comments": { - "patterns": [ - { - "include": "#line-comment" - }, - { - "include": "#block-comment" - } - ] - }, - "decorator": { - "name": "meta.decorator.bicep", - "begin": "@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)", - "end": "", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comments" - } - ] - }, - "directive": { - "name": "meta.directive.bicep", - "begin": "#\\b[_a-zA-Z-0-9]+\\b", - "end": "$", - "patterns": [ - { - "include": "#directive-variable" - }, - { - "include": "#comments" - } - ] - }, - "directive-variable": { - "name": "keyword.control.declaration.bicep", - "match": "\\b[_a-zA-Z-0-9]+\\b" - }, - "escape-character": { - "name": "constant.character.escape.bicep", - "match": "\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)" - }, - "expression": { - "patterns": [ - { - "include": "#string-literal" - }, - { - "include": "#string-verbatim" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#named-literal" - }, - { - "include": "#object-literal" - }, - { - "include": "#array-literal" - }, - { - "include": "#keyword" - }, - { - "include": "#identifier" - }, - { - "include": "#function-call" - }, - { - "include": "#decorator" - }, - { - "include": "#lambda-start" - }, - { - "include": "#directive" - } - ] - }, - "function-call": { - "name": "meta.function-call.bicep", - "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(", - "beginCaptures": { - "1": { - "name": "entity.name.function.bicep" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comments" - } - ] - }, - "identifier": { - "name": "variable.other.readwrite.bicep", - "match": "\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()" - }, - "keyword": { - "name": "keyword.control.declaration.bicep", - "match": "\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func)\\b" - }, - "lambda-start": { - "name": "meta.lambda-start.bicep", - "begin": "(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>)", - "beginCaptures": { - "1": { - "name": "meta.undefined.bicep", - "patterns": [ - { - "include": "#identifier" - }, - { - "include": "#comments" - } - ] - } - }, - "end": "(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>" - }, - "line-comment": { - "name": "comment.line.double-slash.bicep", - "match": "//.*(?=$)" - }, - "named-literal": { - "name": "constant.language.bicep", - "match": "\\b(true|false|null)\\b" - }, - "numeric-literal": { - "name": "constant.numeric.bicep", - "match": "[0-9]+" - }, - "object-literal": { - "name": "meta.object-literal.bicep", - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#object-property-key" - }, - { - "include": "#expression" - }, - { - "include": "#comments" - } - ] - }, - "object-property-key": { - "name": "variable.other.property.bicep", - "match": "\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)" - }, - "string-literal": { - "name": "string.quoted.single.bicep", - "begin": "'(?!'')", - "end": "'", - "patterns": [ - { - "include": "#escape-character" - }, - { - "include": "#string-literal-subst" - } - ] - }, - "string-literal-subst": { - "name": "meta.string-literal-subst.bicep", - "begin": "(?<!\\\\)(\\${)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.template-expression.begin.bicep" - } - }, - "end": "(})", - "endCaptures": { - "1": { - "name": "punctuation.definition.template-expression.end.bicep" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comments" - } - ] - }, - "string-verbatim": { - "name": "string.quoted.multi.bicep", - "begin": "'''", - "end": "'''", - "patterns": [] - } - } -} diff --git a/lib/grammars/blade.tmLanguage.json b/lib/grammars/blade.tmLanguage.json deleted file mode 100644 index 8b95a20..0000000 --- a/lib/grammars/blade.tmLanguage.json +++ /dev/null @@ -1,3867 +0,0 @@ -{ - "scopeName": "text.html.php.blade", - "name": "blade", - "fileTypes": ["blade.php"], - "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)", - "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)", - "injections": { - "text.html.php.blade - (meta.embedded | meta.tag | comment.block.blade), L:(text.html.php.blade meta.tag - (comment.block.blade | meta.embedded.block.blade)), L:(source.js.embedded.html - (comment.block.blade | meta.embedded.block.blade))": { - "patterns": [ - { - "include": "#blade" - }, - { - "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.php" - } - }, - "end": "(?!\\G)(\\s*$\\n)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.php" - } - }, - "patterns": [ - { - "begin": "<\\?(?i:php|=)?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "contentName": "source.php", - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.block.php", - "patterns": [ - { - "include": "#language" - } - ] - } - ] - }, - { - "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "contentName": "source.php", - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.block.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "<\\?(?i:php|=)?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - } - }, - "name": "meta.embedded.line.php", - "patterns": [ - { - "captures": { - "1": { - "name": "source.php" - }, - "2": { - "name": "punctuation.section.embedded.end.php" - }, - "3": { - "name": "source.php" - } - }, - "match": "\\G(\\s*)((\\?))(?=>)", - "name": "meta.special.empty-tag.php" - }, - { - "begin": "\\G", - "contentName": "source.php", - "end": "(\\?)(?=>)", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - } - ] - } - ] - } - }, - "patterns": [ - { - "include": "text.html.basic" - } - ], - "repository": { - "blade": { - "patterns": [ - { - "begin": "{{--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.blade" - } - }, - "end": "--}}", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.blade" - } - }, - "name": "comment.block.blade", - "patterns": [ - { - "name": "invalid.illegal.php-code-in-comment.blade", - "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.php" - } - }, - "end": "(?!\\G)(\\s*$\\n)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.php" - } - }, - "patterns": [ - { - "begin": "<\\?(?i:php|=)?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "contentName": "source.php", - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.block.php", - "patterns": [ - { - "include": "#language" - } - ] - } - ] - }, - { - "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "contentName": "source.php", - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "<\\?(?i:php|=)?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - } - }, - "name": "invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php", - "patterns": [ - { - "captures": { - "1": { - "name": "source.php" - }, - "2": { - "name": "punctuation.section.embedded.end.php" - }, - "3": { - "name": "source.php" - } - }, - "match": "\\G(\\s*)((\\?))(?=>)", - "name": "meta.special.empty-tag.php" - }, - { - "begin": "\\G", - "contentName": "source.php", - "end": "(\\?)(?=>)", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - } - ] - } - ] - }, - { - "begin": "(?<!@){{{", - "beginCaptures": { - "0": { - "name": "support.function.construct.begin.blade" - } - }, - "contentName": "source.php", - "end": "}}}", - "endCaptures": { - "0": { - "name": "support.function.construct.end.blade" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.function.echo.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?<![@{]){{", - "beginCaptures": { - "0": { - "name": "support.function.construct.begin.blade" - } - }, - "contentName": "source.php", - "end": "}}", - "endCaptures": { - "0": { - "name": "support.function.construct.end.blade" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.function.echo.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?<!@){!!", - "beginCaptures": { - "0": { - "name": "support.function.construct.begin.blade" - } - }, - "contentName": "source.php", - "end": "!!}", - "endCaptures": { - "0": { - "name": "support.function.construct.end.blade" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.function.echo.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(@){{", - "beginCaptures": { - "0": { - "name": "begin.bracket.round.blade" - }, - "1": { - "name": "variable.other.index.php" - } - }, - "contentName": "source.php", - "end": "}}", - "endCaptures": { - "0": { - "name": "end.bracket.round.blade" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.function.echo.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?x)(?<![A-Za-z0-9_@]) (@ (?i:\n auth\n |break\n |can\n |cannot\n |case\n |choice\n |component\n |continue\n |dd\n |dump\n |each\n |elsecan\n |elsecannot\n |elseif\n |empty\n |error\n |extends\n |for\n |foreach\n |forelse\n |guest\n |hassection\n |if\n |include\n |includefirst\n |includeif\n |includeunless\n |includewhen\n |inject\n |isset\n |json\n |lang\n |once\n |prepend\n |push\n |section\n |sectionMissing\n |slot\n |stack\n |switch\n |unless\n |unset\n |while\n |yield\n |servers\n |task\n |story\n |finished\n |production\n |slack\n |method\n |props\n |env\n |livewire\n |php\n )[\\t ]*\n)(\\() # Followed by opening parentheses\n", - "beginCaptures": { - "1": { - "name": "keyword.blade" - }, - "2": { - "name": "begin.bracket.round.blade.php" - } - }, - "contentName": "source.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "end.bracket.round.blade.php" - } - }, - "name": "meta.directive.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?x)(?<![A-Za-z0-9_@]) (@ (?i:\n append\n |default\n |else\n |endauth\n |endcan\n |endcannot\n |endcomponent\n |endempty\n |enderror\n |endfor\n |endforeach\n |endforelse\n |endguest\n |endif\n |endisset\n |endlang\n |endonce\n |endprepend\n |endpush\n |endsection\n |endslot\n |endswitch\n |endunless\n |endwhile\n |overwrite\n |parent\n |show\n |stop\n |endtask\n |endstory\n |endfinished\n |endproduction\n |endenv\n )[\\t ]*\n)(\\() # Followed by opening parentheses\n", - "beginCaptures": { - "1": { - "name": "keyword.blade" - }, - "2": { - "name": "begin.bracket.round.blade.php" - } - }, - "contentName": "comment.blade", - "end": "\\)", - "endCaptures": { - "0": { - "name": "end.bracket.round.blade.php" - } - }, - "name": "meta.directive.blade", - "patterns": [ - { - "include": "#balance_brackets" - } - ] - }, - { - "match": "(?x)(?<![A-Za-z0-9_@]) @(?: append\n |break\n |continue\n |csrf\n |default\n |each\n |else\n |overwrite\n |parent\n |sectionMissing\n |show\n |stack\n |stop\n |livewireStyles\n |livewireScripts\n)\\b\n", - "name": "keyword.blade" - }, - { - "match": "(?x)(?<![A-Za-z0-9_@]) @(end)? (?i: auth\n |can\n |cannot\n |component\n |empty\n |error\n |for\n |foreach\n |forelse\n |guest\n |if\n |isset\n |lang\n |prepend\n |push\n |section\n |slot\n |switch\n |unless\n |verbatim\n |while\n |task\n |story\n |finished\n |production\n |env\n |once\n)\\b\n", - "name": "keyword.blade" - }, - { - "begin": "(?<![A-Za-z0-9_@])@(?i:php|setup)\\b", - "end": "(?<![A-Za-z0-9_@])(?=@(?i:endphp|endsetup)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - } - }, - "contentName": "source.php", - "name": "meta.embedded.block.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?x)(?<![A-Za-z0-9_@]) (@(?i:endphp|endsetup)[\\t ]*) (\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.embedded.end.php" - }, - "2": { - "name": "begin.bracket.round.blade.php" - } - }, - "contentName": "comment.blade", - "end": "\\)", - "endCaptures": { - "0": { - "name": "end.bracket.round.blade.php" - } - }, - "name": "meta.directive.blade", - "patterns": [ - { - "include": "#balance_brackets" - } - ] - }, - { - "match": "(?x)(?<![A-Za-z0-9_@]) @(?:(?i)endphp|endsetup)\\b", - "name": "punctuation.section.embedded.end.php" - }, - { - "begin": "(?x)(?<![A-Za-z0-9_@]) (@\\w+(?:::w+)?[\\t ]*) (\\() # Followed by opening parentheses", - "beginCaptures": { - "1": { - "name": "entity.name.function.blade" - }, - "2": { - "name": "begin.bracket.round.blade.php" - } - }, - "contentName": "source.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "end.bracket.round.blade.php" - } - }, - "name": "meta.directive.custom.blade", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "match": "(?x)(?<![A-Za-z0-9_@]) @\\w+(?:::w+)?\\b", - "name": "entity.name.function.blade" - } - ] - }, - "balance_brackets": { - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#balance_brackets" - } - ] - }, - { - "match": "[^()]+" - } - ] - }, - "class-builtin": { - "patterns": [ - { - "match": "(?xi)\n(\\\\)?\\b\n((APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b", - "name": "support.class.builtin.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - } - ] - }, - "class-name": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "begin": "(?=[\\\\a-zA-Z_])", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?=\\s)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.block.documentation.phpdoc.php", - "patterns": [ - { - "include": "#php_doc" - } - ] - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "name": "comment.block.php" - }, - { - "begin": "(^\\s+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.double-slash.php" - } - ] - }, - { - "begin": "(^\\s+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.number-sign.php" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", - "name": "constant.language.php" - }, - { - "match": "(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b", - "name": "support.constant.core.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b", - "name": "support.constant.std.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b", - "name": "support.constant.ext.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b", - "name": "support.constant.parser-token.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "constant.other.php" - } - ] - }, - "function-parameters": { - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "(?xi)\n(array) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*(array)\\s*(\\() # Default value", - "beginCaptures": { - "1": { - "name": "storage.type.php" - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "storage.modifier.reference.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - }, - "5": { - "name": "keyword.operator.assignment.php" - }, - "6": { - "name": "support.function.construct.php" - }, - "7": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "contentName": "meta.array.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.function.parameter.array.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - } - ] - }, - { - "match": "(?xi)\n(array|callable) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n(?: # Optional default value\n \\s*(=)\\s*\n (?:\n (null)\n |\n (\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])\n |((?:\\S*?\\(\\))|(?:\\S*?))\n )\n)?\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment", - "name": "meta.function.parameter.array.php", - "captures": { - "1": { - "name": "storage.type.php" - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "storage.modifier.reference.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - }, - "5": { - "name": "keyword.operator.assignment.php" - }, - "6": { - "name": "constant.language.php" - }, - "7": { - "name": "punctuation.section.array.begin.php" - }, - "8": { - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - }, - "9": { - "name": "punctuation.section.array.end.php" - }, - "10": { - "name": "invalid.illegal.non-null-typehinted.php" - } - } - }, - { - "begin": "(?xi)\n(\\\\?(?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)*) # Optional namespace\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Typehinted class name\n\\s+((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference", - "beginCaptures": { - "1": { - "name": "support.other.namespace.php", - "patterns": [ - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "storage.type.php" - }, - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - }, - "2": { - "name": "storage.type.php" - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "storage.modifier.reference.php" - }, - "5": { - "name": "keyword.operator.variadic.php" - }, - "6": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(?=,|\\)|/[/*]|\\#)", - "name": "meta.function.parameter.typehinted.php", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=,|\\)|/[/*]|\\#)", - "patterns": [ - { - "include": "#language" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "keyword.operator.variadic.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment", - "name": "meta.function.parameter.no-default.php" - }, - { - "begin": "(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*\n(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))? # Optional default type", - "beginCaptures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "keyword.operator.variadic.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - }, - "5": { - "name": "keyword.operator.assignment.php" - }, - "6": { - "name": "punctuation.section.array.begin.php" - }, - "7": { - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - }, - "8": { - "name": "punctuation.section.array.end.php" - } - }, - "end": "(?=,|\\)|/[/*]|\\#)", - "name": "meta.function.parameter.default.php", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?xi)\n(\n \\\\?\\b # Optional root namespace\n [a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]* # First namespace\n (?:\\\\[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)+ # Additional namespaces\n)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "entity.name.function.php" - } - ] - }, - "2": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?i)(\\\\)?\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#namespace" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#support" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "entity.name.function.php" - } - ] - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.output.php" - } - ] - }, - "heredoc": { - "patterns": [ - { - "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(\\1)\\s*$)", - "end": "(?!\\G)", - "name": "string.unquoted.heredoc.php", - "patterns": [ - { - "include": "#heredoc_interior" - } - ] - }, - { - "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)", - "end": "(?!\\G)", - "name": "string.unquoted.nowdoc.php", - "patterns": [ - { - "include": "#nowdoc_interior" - } - ] - } - ] - }, - "heredoc_interior": { - "patterns": [ - { - "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.html", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.xml", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.xml", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "text.xml" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(SQL)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.sql", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.sql", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.sql" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.js", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.js" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.json", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.json", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.json" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.css", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.css" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "string.regexp.heredoc.php", - "end": "^(\\3)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repitition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repitition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repitition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - }, - { - "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.line.number-sign.php" - } - ] - }, - { - "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)(\\2)(\\s*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "end": "^(\\3)\\b", - "endCaptures": { - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "patterns": [ - { - "include": "#interpolation" - } - ] - } - ] - }, - "nowdoc_interior": { - "patterns": [ - { - "begin": "(<<<)\\s*'(HTML)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.html", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(<<<)\\s*'(XML)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.xml", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "(<<<)\\s*'(SQL)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.sql", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.sql", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.js", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(<<<)\\s*'(JSON)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.json", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.json", - "patterns": [ - { - "include": "source.json" - } - ] - }, - { - "begin": "(<<<)\\s*'(CSS)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.css", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "string.regexp.nowdoc.php", - "end": "^(\\2)\\b", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "patterns": [ - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repitition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repitition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repitition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - }, - { - "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.line.number-sign.php" - } - ] - }, - { - "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)'(\\s*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "end": "^(\\2)\\b", - "endCaptures": { - "1": { - "name": "keyword.operator.nowdoc.php" - } - } - } - ] - }, - "instantiation": { - "begin": "(?i)(new)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.new.php" - } - }, - "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", - "patterns": [ - { - "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{ff}])", - "name": "storage.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - "interpolation": { - "patterns": [ - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.octal.php" - }, - { - "match": "\\\\x[0-9A-Fa-f]{1,2}", - "name": "constant.character.escape.hex.php" - }, - { - "match": "\\\\u{[0-9A-Fa-f]+}", - "name": "constant.character.escape.unicode.php" - }, - { - "match": "\\\\[nrtvef$\"\\\\]", - "name": "constant.character.escape.php" - }, - { - "begin": "{(?=\\$.*?})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "include": "#variable-name" - } - ] - }, - "invoke-call": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - }, - "2": { - "name": "variable.other.php" - } - }, - "match": "(?i)(\\$+)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*\\()", - "name": "meta.function-call.invoke.php" - }, - "language": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(extends)?\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.interface.php" - }, - "2": { - "name": "entity.name.type.interface.php" - }, - "3": { - "name": "storage.modifier.extends.php" - } - }, - "end": "(?i)((?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\\s*(?:(?={)|$)", - "endCaptures": { - "1": { - "patterns": [ - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "entity.other.inherited-class.php" - }, - { - "match": ",", - "name": "punctuation.separator.classes.php" - } - ] - }, - "2": { - "name": "entity.other.inherited-class.php" - } - }, - "name": "meta.interface.php", - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "begin": "(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)", - "beginCaptures": { - "1": { - "name": "storage.type.trait.php" - }, - "2": { - "name": "entity.name.type.trait.php" - } - }, - "end": "(?={)", - "name": "meta.trait.php", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{ff}\\\\]+)(?=\\s*;)", - "name": "meta.namespace.php", - "captures": { - "1": { - "name": "keyword.other.namespace.php" - }, - "2": { - "name": "entity.name.type.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - } - }, - { - "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.php" - } - }, - "end": "(?<=})|(?=\\?>)", - "name": "meta.namespace.php", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?i)[a-z0-9_\\x{7f}-\\x{ff}\\\\]+", - "name": "entity.name.type.namespace.php", - "captures": { - "0": { - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - } - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.namespace.begin.bracket.curly.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.namespace.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "match": "[^\\s]+", - "name": "invalid.illegal.identifier.php" - } - ] - }, - { - "match": "\\s+(?=use\\b)" - }, - { - "begin": "(?i)\\buse\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.use.php" - } - }, - "end": "(?<=})|(?=;)", - "name": "meta.use.php", - "patterns": [ - { - "match": "\\b(const|function)\\b", - "name": "storage.type.${1:/downcase}.php" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.use.begin.bracket.curly.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.use.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "#scope-resolution" - }, - { - "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b", - "captures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "name": "storage.modifier.php" - }, - "3": { - "name": "entity.other.alias.php" - } - } - }, - { - "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b", - "captures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "patterns": [ - { - "match": "^(?:final|abstract|public|private|protected|static)$", - "name": "storage.modifier.php" - }, - { - "match": ".+", - "name": "entity.other.alias.php" - } - ] - } - } - }, - { - "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-insteadof.php" - }, - "2": { - "name": "support.class.php" - } - } - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "include": "#use-inner" - } - ] - }, - { - "include": "#use-inner" - } - ] - }, - { - "begin": "(?i)^\\s*(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)", - "beginCaptures": { - "1": { - "name": "storage.modifier.${1:/downcase}.php" - }, - "2": { - "name": "storage.type.class.php" - }, - "3": { - "name": "entity.name.type.class.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.class.end.bracket.curly.php" - } - }, - "name": "meta.class.php", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.extends.php" - } - }, - "contentName": "meta.other.inherited-class.php", - "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)", - "end": "(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "entity.other.inherited-class.php" - } - ] - }, - { - "begin": "(?i)(implements)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.php" - } - }, - "end": "(?i)(?=[;{])", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+)", - "contentName": "meta.other.inherited-class.php", - "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\\\s]))\\s*)", - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)", - "end": "(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "entity.other.inherited-class.php" - } - ] - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.class.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "contentName": "meta.class.body.php", - "patterns": [ - { - "include": "#language" - } - ] - } - ] - }, - { - "include": "#switch_statement" - }, - { - "match": "(?x)\n\\s*\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b", - "captures": { - "1": { - "name": "keyword.control.${1:/downcase}.php" - } - } - }, - { - "begin": "(?i)\\b((?:require|include)(?:_once)?)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.import.include.php" - } - }, - "end": "(?=\\s|;|$|\\?>)", - "name": "meta.include.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "\\b(catch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.exception.catch.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "name": "meta.catch.php", - "patterns": [ - { - "include": "#namespace" - }, - { - "match": "(?xi)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable", - "captures": { - "1": { - "name": "support.class.exception.php" - }, - "2": { - "patterns": [ - { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "name": "support.class.exception.php" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - } - } - ] - }, - { - "match": "\\b(catch|try|throw|exception|finally)\\b", - "name": "keyword.control.exception.php" - }, - { - "begin": "(?i)\\b(function)\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "storage.type.function.php" - } - }, - "end": "(?={)", - "name": "meta.function.closure.php", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "begin": "(?i)(use)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.function.use.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "patterns": [ - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))", - "name": "meta.function.closure.use.php" - } - ] - } - ] - }, - { - "begin": "(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n |([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|private|protected|static", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.function.php" - }, - "3": { - "name": "support.function.magic.php" - }, - "4": { - "name": "entity.name.function.php" - }, - "5": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "(\\))(?:\\s*(:)\\s*([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - }, - "2": { - "name": "keyword.operator.return-value.php" - }, - "3": { - "name": "storage.type.php" - } - }, - "name": "meta.function.php", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "include": "#invoke-call" - }, - { - "include": "#scope-resolution" - }, - { - "include": "#variables" - }, - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - }, - "3": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "match": "(array)(\\()(\\))", - "name": "meta.array.empty.php" - }, - { - "begin": "(array)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))", - "captures": { - "1": { - "name": "punctuation.definition.storage-type.begin.bracket.round.php" - }, - "2": { - "name": "storage.type.php" - }, - "3": { - "name": "punctuation.definition.storage-type.end.bracket.round.php" - } - } - }, - { - "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\b", - "name": "storage.type.php" - }, - { - "match": "(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b", - "name": "storage.modifier.php" - }, - { - "include": "#object" - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "match": ":", - "name": "punctuation.terminator.statement.php" - }, - { - "include": "#heredoc" - }, - { - "include": "#numbers" - }, - { - "match": "(?i)\\bclone\\b", - "name": "keyword.other.clone.php" - }, - { - "match": "\\.=?", - "name": "keyword.operator.string.php" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "captures": { - "1": { - "name": "keyword.operator.assignment.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "storage.modifier.reference.php" - } - }, - "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])" - }, - { - "match": "@", - "name": "keyword.operator.error-control.php" - }, - { - "match": "===|==|!==|!=|<>", - "name": "keyword.operator.comparison.php" - }, - { - "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "<=>|<=|>=|<|>", - "name": "keyword.operator.comparison.php" - }, - { - "match": "\\-\\-|\\+\\+", - "name": "keyword.operator.increment-decrement.php" - }, - { - "match": "\\-|\\+|\\*|/|%", - "name": "keyword.operator.arithmetic.php" - }, - { - "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", - "name": "keyword.operator.logical.php" - }, - { - "include": "#function-call" - }, - { - "match": "<<|>>|~|\\^|&|\\|", - "name": "keyword.operator.bitwise.php" - }, - { - "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.php" - } - }, - "end": "(?=[^\\\\$a-z0-9_\\x{7f}-\\x{ff}])", - "patterns": [ - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - { - "include": "#instantiation" - }, - { - "captures": { - "1": { - "name": "keyword.control.goto.php" - }, - "2": { - "name": "support.other.php" - } - }, - "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)" - }, - { - "captures": { - "1": { - "name": "entity.name.goto-label.php" - } - }, - "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*:(?!:)" - }, - { - "include": "#string-backtick" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.curly.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.php" - } - }, - "end": "\\]|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "include": "#constants" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "namespace": { - "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(\\\\)(?=.*?[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", - "beginCaptures": { - "1": { - "name": "variable.language.namespace.php" - }, - "2": { - "name": "punctuation.separator.inheritance.php" - } - }, - "end": "(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}]*[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", - "name": "support.other.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "0[xX][0-9a-fA-F]+", - "name": "constant.numeric.hex.php" - }, - { - "match": "0[bB][01]+", - "name": "constant.numeric.binary.php" - }, - { - "match": "0[0-7]+", - "name": "constant.numeric.octal.php" - }, - { - "match": "(?x)\n(?:\n [0-9]*(\\.)[0-9]+(?:[eE][+-]?[0-9]+)?|\n [0-9]+(\\.)[0-9]*(?:[eE][+-]?[0-9]+)?|\n [0-9]+[eE][+-]?[0-9]+\n)", - "name": "constant.numeric.decimal.php", - "captures": { - "1": { - "name": "punctuation.separator.decimal.period.php" - }, - "2": { - "name": "punctuation.separator.decimal.period.php" - } - } - }, - { - "match": "0|[1-9][0-9]*", - "name": "constant.numeric.decimal.php" - } - ] - }, - "object": { - "patterns": [ - { - "begin": "(->)(\\$?{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "(?i)(->)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "entity.name.function.php" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.method-call.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "variable.other.property.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)(->)((\\$+)?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?" - } - ] - }, - "parameter-default-types": { - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#string-backtick" - }, - { - "include": "#variables" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "match": "=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "&(?=\\s*\\$)", - "name": "storage.modifier.reference.php" - }, - { - "begin": "(array)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - }, - { - "include": "#instantiation" - }, - { - "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)", - "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?", - "endCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "constant.other.class.php" - } - }, - "patterns": [ - { - "include": "#class-name" - } - ] - }, - { - "include": "#constants" - } - ] - }, - "php_doc": { - "patterns": [ - { - "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)", - "name": "invalid.illegal.missing-asterisk.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "3": { - "name": "storage.modifier.php" - }, - "4": { - "name": "invalid.illegal.wrong-access-type.phpdoc.php" - } - }, - "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "2": { - "name": "markup.underline.link.php" - } - }, - "match": "(@xlink)\\s+(.+)\\s*$" - }, - { - "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{ff}\\\\]|\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "end": "(?=\\s|\\*/)", - "contentName": "meta.other.type.phpdoc.php", - "patterns": [ - { - "include": "#php_doc_types_array_multiple" - }, - { - "include": "#php_doc_types_array_single" - }, - { - "include": "#php_doc_types" - } - ] - }, - { - "match": "(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b", - "name": "keyword.other.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "match": "{(@(link|inherit[Dd]oc)).+?}", - "name": "meta.tag.inline.phpdoc.php" - } - ] - }, - "php_doc_types": { - "match": "(?i)[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*(\\|[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)*", - "captures": { - "0": { - "patterns": [ - { - "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self)\\b", - "name": "keyword.other.type.php" - }, - { - "include": "#class-name" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - } - ] - } - } - }, - "php_doc_types_array_multiple": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php" - } - }, - "end": "(\\))(\\[\\])|(?=\\*/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.bracket.round.phpdoc.php" - }, - "2": { - "name": "keyword.other.array.phpdoc.php" - } - }, - "patterns": [ - { - "include": "#php_doc_types_array_multiple" - }, - { - "include": "#php_doc_types_array_single" - }, - { - "include": "#php_doc_types" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "php_doc_types_array_single": { - "match": "(?i)([a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)(\\[\\])", - "captures": { - "1": { - "patterns": [ - { - "include": "#php_doc_types" - } - ] - }, - "2": { - "name": "keyword.other.array.phpdoc.php" - } - } - }, - "regex-double-quoted": { - "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.double-quoted.php", - "patterns": [ - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "include": "#interpolation" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "regex-single-quoted": { - "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.single-quoted.php", - "patterns": [ - { - "include": "#single_quote_regex_escape" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php" - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "scope-resolution": { - "patterns": [ - { - "match": "(?i)\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*::)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\b(self|static|parent)\\b", - "name": "storage.type.php" - }, - { - "match": "\\w+", - "name": "entity.name.class.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - } - } - }, - { - "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "entity.name.function.php" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.method-call.static.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "match": "(?i)(::)\\s*(class)\\b", - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "keyword.other.class.php" - } - } - }, - { - "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Constant\n)?", - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "variable.other.class.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "constant.other.class.php" - } - } - } - ] - }, - "single_quote_regex_escape": { - "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)", - "name": "constant.character.escape.php" - }, - "sql-string-double-quoted": { - "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.sql.php", - "patterns": [ - { - "match": "(#)(\\\\\"|[^\"])*(?=\"|$)", - "name": "comment.line.number-sign.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "(--)(\\\\\"|[^\"])*(?=\"|$)", - "name": "comment.line.double-dash.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "\\\\[\\\\\"`']", - "name": "constant.character.escape.php" - }, - { - "match": "'(?=((\\\\')|[^'\"])*(\"|$))", - "name": "string.quoted.single.unclosed.sql" - }, - { - "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", - "name": "string.quoted.other.backtick.unclosed.sql" - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.sql", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "begin": "`", - "end": "`", - "name": "string.quoted.other.backtick.sql", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "include": "#interpolation" - }, - { - "include": "source.sql" - } - ] - }, - "sql-string-single-quoted": { - "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.sql.php", - "patterns": [ - { - "match": "(#)(\\\\'|[^'])*(?='|$)", - "name": "comment.line.number-sign.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "(--)(\\\\'|[^'])*(?='|$)", - "name": "comment.line.double-dash.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "\\\\[\\\\'`\"]", - "name": "constant.character.escape.php" - }, - { - "match": "`(?=((\\\\`)|[^`'])*('|$))", - "name": "string.quoted.other.backtick.unclosed.sql" - }, - { - "match": "\"(?=((\\\\\")|[^\"'])*('|$))", - "name": "string.quoted.double.unclosed.sql" - }, - { - "include": "source.sql" - } - ] - }, - "string-backtick": { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.interpolated.php", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.php" - }, - { - "include": "#interpolation" - } - ] - }, - "string-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.php", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - "string-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.php", - "patterns": [ - { - "match": "\\\\[\\\\']", - "name": "constant.character.escape.php" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#regex-double-quoted" - }, - { - "include": "#sql-string-double-quoted" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#regex-single-quoted" - }, - { - "include": "#sql-string-single-quoted" - }, - { - "include": "#string-single-quoted" - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b", - "name": "support.function.apc.php" - }, - { - "match": "(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b", - "name": "support.function.array.php" - }, - { - "match": "(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b", - "name": "support.function.basic_functions.php" - }, - { - "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b", - "name": "support.function.bcmath.php" - }, - { - "match": "(?i)\\bblenc_encrypt\\b", - "name": "support.function.blenc.php" - }, - { - "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b", - "name": "support.function.bz2.php" - }, - { - "match": "(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b", - "name": "support.function.calendar.php" - }, - { - "match": "(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b", - "name": "support.function.classobj.php" - }, - { - "match": "(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b", - "name": "support.function.com.php" - }, - { - "begin": "(?i)\\b(isset|unset|eval|empty|list)\\b", - "name": "support.function.construct.php" - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.output.php" - }, - { - "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b", - "name": "support.function.ctype.php" - }, - { - "match": "(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b", - "name": "support.function.curl.php" - }, - { - "match": "(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b", - "name": "support.function.datetime.php" - }, - { - "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b", - "name": "support.function.dba.php" - }, - { - "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b", - "name": "support.function.dbx.php" - }, - { - "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b", - "name": "support.function.dir.php" - }, - { - "match": "(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b", - "name": "support.function.eio.php" - }, - { - "match": "(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b", - "name": "support.function.enchant.php" - }, - { - "match": "(?i)\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\b", - "name": "support.function.ereg.php" - }, - { - "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b", - "name": "support.function.errorfunc.php" - }, - { - "match": "(?i)\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\b", - "name": "support.function.exec.php" - }, - { - "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b", - "name": "support.function.exif.php" - }, - { - "match": "(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b", - "name": "support.function.fann.php" - }, - { - "match": "(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b", - "name": "support.function.file.php" - }, - { - "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", - "name": "support.function.fileinfo.php" - }, - { - "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b", - "name": "support.function.filter.php" - }, - { - "match": "(?i)\\bfastcgi_finish_request\\b", - "name": "support.function.fpm.php" - }, - { - "match": "(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b", - "name": "support.function.funchand.php" - }, - { - "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b", - "name": "support.function.gettext.php" - }, - { - "match": "(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b", - "name": "support.function.gmp.php" - }, - { - "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b", - "name": "support.function.hash.php" - }, - { - "match": "(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b", - "name": "support.function.http.php" - }, - { - "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", - "name": "support.function.iconv.php" - }, - { - "match": "(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b", - "name": "support.function.iisfunc.php" - }, - { - "match": "(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b", - "name": "support.function.image.php" - }, - { - "match": "(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b", - "name": "support.function.info.php" - }, - { - "match": "(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b", - "name": "support.function.interbase.php" - }, - { - "match": "(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b", - "name": "support.function.intl.php" - }, - { - "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", - "name": "support.function.json.php" - }, - { - "match": "(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b", - "name": "support.function.ldap.php" - }, - { - "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", - "name": "support.function.libxml.php" - }, - { - "match": "(?i)\\b(ezmlm_hash|mail)\\b", - "name": "support.function.mail.php" - }, - { - "match": "(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b", - "name": "support.function.math.php" - }, - { - "match": "(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b", - "name": "support.function.mbstring.php" - }, - { - "match": "(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b", - "name": "support.function.mcrypt.php" - }, - { - "match": "(?i)\\bmemcache_debug\\b", - "name": "support.function.memcache.php" - }, - { - "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", - "name": "support.function.mhash.php" - }, - { - "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", - "name": "support.function.mongo.php" - }, - { - "match": "(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b", - "name": "support.function.mysql.php" - }, - { - "match": "(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b", - "name": "support.function.mysqli.php" - }, - { - "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", - "name": "support.function.mysqlnd-memcache.php" - }, - { - "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", - "name": "support.function.mysqlnd-ms.php" - }, - { - "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b", - "name": "support.function.mysqlnd-qc.php" - }, - { - "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b", - "name": "support.function.mysqlnd-uh.php" - }, - { - "match": "(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b", - "name": "support.function.network.php" - }, - { - "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b", - "name": "support.function.nsapi.php" - }, - { - "match": "(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b", - "name": "support.function.oci8.php" - }, - { - "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", - "name": "support.function.opcache.php" - }, - { - "match": "(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b", - "name": "support.function.openssl.php" - }, - { - "match": "(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b", - "name": "support.function.output.php" - }, - { - "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", - "name": "support.function.password.php" - }, - { - "match": "(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b", - "name": "support.function.pcntl.php" - }, - { - "match": "(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b", - "name": "support.function.pgsql.php" - }, - { - "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b", - "name": "support.function.php_apache.php" - }, - { - "match": "(?i)\\bdom_import_simplexml\\b", - "name": "support.function.php_dom.php" - }, - { - "match": "(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b", - "name": "support.function.php_ftp.php" - }, - { - "match": "(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b", - "name": "support.function.php_imap.php" - }, - { - "match": "(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b", - "name": "support.function.php_mssql.php" - }, - { - "match": "(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b", - "name": "support.function.php_odbc.php" - }, - { - "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", - "name": "support.function.php_pcre.php" - }, - { - "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", - "name": "support.function.php_spl.php" - }, - { - "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b", - "name": "support.function.php_zip.php" - }, - { - "match": "(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b", - "name": "support.function.posix.php" - }, - { - "match": "(?i)\\bset(thread|proc)title\\b", - "name": "support.function.proctitle.php" - }, - { - "match": "(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b", - "name": "support.function.pspell.php" - }, - { - "match": "(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b", - "name": "support.function.readline.php" - }, - { - "match": "(?i)\\brecode(_(string|file))?\\b", - "name": "support.function.recode.php" - }, - { - "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b", - "name": "support.function.rrd.php" - }, - { - "match": "(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b", - "name": "support.function.sem.php" - }, - { - "match": "(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b", - "name": "support.function.session.php" - }, - { - "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", - "name": "support.function.shmop.php" - }, - { - "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", - "name": "support.function.simplexml.php" - }, - { - "match": "(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b", - "name": "support.function.snmp.php" - }, - { - "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", - "name": "support.function.soap.php" - }, - { - "match": "(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b", - "name": "support.function.sockets.php" - }, - { - "match": "(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b", - "name": "support.function.sqlite.php" - }, - { - "match": "(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b", - "name": "support.function.sqlsrv.php" - }, - { - "match": "(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b", - "name": "support.function.stats.php" - }, - { - "match": "(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b", - "name": "support.function.streamsfuncs.php" - }, - { - "match": "(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b", - "name": "support.function.string.php" - }, - { - "match": "(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b", - "name": "support.function.sybase.php" - }, - { - "match": "(?i)\\b(taint|is_tainted|untaint)\\b", - "name": "support.function.taint.php" - }, - { - "match": "(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b", - "name": "support.function.tidy.php" - }, - { - "match": "(?i)\\btoken_(name|get_all)\\b", - "name": "support.function.tokenizer.php" - }, - { - "match": "(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b", - "name": "support.function.trader.php" - }, - { - "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b", - "name": "support.function.uopz.php" - }, - { - "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b", - "name": "support.function.url.php" - }, - { - "match": "(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b", - "name": "support.function.var.php" - }, - { - "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b", - "name": "support.function.wddx.php" - }, - { - "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b", - "name": "support.function.xhprof.php" - }, - { - "match": "(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b", - "name": "support.function.xml.php" - }, - { - "match": "(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b", - "name": "support.function.xmlrpc.php" - }, - { - "match": "(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b", - "name": "support.function.xmlwriter.php" - }, - { - "match": "(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b", - "name": "support.function.zlib.php" - }, - { - "match": "(?i)\\bis_int(eger)?\\b", - "name": "support.function.alias.php" - } - ] - }, - "switch_statement": { - "patterns": [ - { - "match": "\\s+(?=switch\\b)" - }, - { - "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)", - "beginCaptures": { - "0": { - "name": "keyword.control.switch.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.section.switch-block.end.bracket.curly.php" - } - }, - "name": "meta.switch-statement.php", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.switch-expression.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.switch-expression.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "patterns": [ - { - "include": "#language" - } - ] - } - ] - } - ] - }, - "use-inner": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)\\b(as)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.use-as.php" - } - }, - "end": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", - "endCaptures": { - "0": { - "name": "entity.other.alias.php" - } - } - }, - { - "include": "#class-name" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "var_basic": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\b", - "name": "variable.other.php" - } - ] - }, - "var_global": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", - "name": "variable.other.global.php" - }, - "var_global_safer": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", - "name": "variable.other.global.safer.php" - }, - "var_language": { - "match": "(\\$)this\\b", - "name": "variable.language.this.php", - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - } - }, - "variable-name": { - "patterns": [ - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "keyword.operator.class.php" - }, - "5": { - "name": "variable.other.property.php" - }, - "6": { - "name": "punctuation.section.array.begin.php" - }, - "7": { - "name": "constant.numeric.index.php" - }, - "8": { - "name": "variable.other.index.php" - }, - "9": { - "name": "punctuation.definition.variable.php" - }, - "10": { - "name": "string.unquoted.index.php" - }, - "11": { - "name": "punctuation.section.array.end.php" - } - }, - "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))(\\])\n)?" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(}))" - } - ] - }, - "variables": { - "patterns": [ - { - "include": "#var_language" - }, - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "include": "#var_basic" - }, - { - "begin": "\\${(?=.*?})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/c.tmLanguage.json b/lib/grammars/c.tmLanguage.json deleted file mode 100644 index cf111bf..0000000 --- a/lib/grammars/c.tmLanguage.json +++ /dev/null @@ -1,3555 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-c-syntax/commit/34712a6106a4ffb0a04d2fa836fd28ff6c5849a4", - "name": "c", - "scopeName": "source.c", - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#comments" - }, - { - "include": "#switch_statement" - }, - { - "include": "#anon_pattern_1" - }, - { - "include": "#storage_types" - }, - { - "include": "#anon_pattern_2" - }, - { - "include": "#anon_pattern_3" - }, - { - "include": "#anon_pattern_4" - }, - { - "include": "#anon_pattern_5" - }, - { - "include": "#anon_pattern_6" - }, - { - "include": "#anon_pattern_7" - }, - { - "include": "#operators" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "include": "#anon_pattern_range_1" - }, - { - "include": "#anon_pattern_range_2" - }, - { - "include": "#anon_pattern_range_3" - }, - { - "include": "#pragma-mark" - }, - { - "include": "#anon_pattern_range_4" - }, - { - "include": "#anon_pattern_range_5" - }, - { - "include": "#anon_pattern_range_6" - }, - { - "include": "#anon_pattern_8" - }, - { - "include": "#anon_pattern_9" - }, - { - "include": "#anon_pattern_10" - }, - { - "include": "#anon_pattern_11" - }, - { - "include": "#anon_pattern_12" - }, - { - "include": "#anon_pattern_13" - }, - { - "include": "#block" - }, - { - "include": "#parens" - }, - { - "include": "#anon_pattern_range_7" - }, - { - "include": "#line_continuation_character" - }, - { - "include": "#anon_pattern_range_8" - }, - { - "include": "#anon_pattern_range_9" - }, - { - "include": "#anon_pattern_14" - }, - { - "include": "#anon_pattern_15" - } - ], - "repository": { - "access-method": { - "name": "meta.function-call.member.c", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.object.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.c" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.c" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.c" - }, - { - "name": "everything.else.c", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.c" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "anon_pattern_1": { - "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", - "name": "keyword.control.c" - }, - "anon_pattern_10": { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.c" - }, - "anon_pattern_11": { - "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", - "name": "support.constant.mac-classic.c" - }, - "anon_pattern_12": { - "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", - "name": "support.type.mac-classic.c" - }, - "anon_pattern_13": { - "match": "\\b([A-Za-z0-9_]+_t)\\b", - "name": "support.type.posix-reserved.c" - }, - "anon_pattern_14": { - "match": ";", - "name": "punctuation.terminator.statement.c" - }, - "anon_pattern_15": { - "match": ",", - "name": "punctuation.separator.delimiter.c" - }, - "anon_pattern_2": { - "match": "typedef", - "name": "keyword.other.typedef.c" - }, - "anon_pattern_3": { - "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", - "name": "storage.modifier.c" - }, - "anon_pattern_4": { - "match": "\\bk[A-Z]\\w*\\b", - "name": "constant.other.variable.mac-classic.c" - }, - "anon_pattern_5": { - "match": "\\bg[A-Z]\\w*\\b", - "name": "variable.other.readwrite.global.mac-classic.c" - }, - "anon_pattern_6": { - "match": "\\bs[A-Z]\\w*\\b", - "name": "variable.other.readwrite.static.mac-classic.c" - }, - "anon_pattern_7": { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.c" - }, - "anon_pattern_8": { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.c" - }, - "anon_pattern_9": { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.c" - }, - "anon_pattern_range_1": { - "name": "meta.preprocessor.macro.c", - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "keyword.control.directive.define.c" - }, - "6": { - "name": "punctuation.definition.directive.c" - }, - "7": { - "name": "entity.name.function.preprocessor.c" - }, - "8": { - "name": "punctuation.definition.parameters.begin.c" - }, - "9": { - "patterns": [ - { - "match": "(?<=[(,])\\s*((?<!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*", - "captures": { - "1": { - "name": "variable.parameter.preprocessor.c" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.parameters.c" - }, - { - "match": "\\.\\.\\.", - "name": "ellipses.c punctuation.vararg-ellipses.variable.parameter.preprocessor.c" - } - ] - }, - "10": { - "name": "punctuation.definition.parameters.end.c" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "anon_pattern_range_2": { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.c", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.c", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.single.c", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.c", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "anon_pattern_range_3": { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.c", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.include.c" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.other.lt-gt.include.c" - } - ] - }, - "anon_pattern_range_4": { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "anon_pattern_range_5": { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "anon_pattern_range_6": { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.c", - "patterns": [ - { - "include": "#strings" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.c" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "anon_pattern_range_7": { - "name": "meta.function.c", - "begin": "(?<!\\w)(?!\\s*(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|pthread_rwlock_t|atomic_uintptr_t|atomic_ptrdiff_t|atomic_uintmax_t|atomic_intmax_t|atomic_char32_t|atomic_intptr_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|uint_least8_t|int_least32_t|int_least16_t|pthread_key_t|uint_fast32_t|uint_fast64_t|uint_fast16_t|atomic_size_t|atomic_ushort|atomic_ullong|int_least64_t|atomic_ulong|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|memory_order|atomic_schar|atomic_uchar|atomic_short|atomic_llong|thread_local|atomic_bool|atomic_uint|atomic_long|int_fast8_t|suseconds_t|atomic_char|atomic_int|useconds_t|_Imaginary|uintmax_t|uintmax_t|in_addr_t|in_port_t|_Noreturn|blksize_t|pthread_t|uintptr_t|volatile|u_quad_t|blkcnt_t|intmax_t|intptr_t|_Complex|uint16_t|uint32_t|uint64_t|_Alignof|_Alignas|continue|unsigned|restrict|intmax_t|register|int64_t|qaddr_t|segsz_t|_Atomic|alignas|default|caddr_t|nlink_t|typedef|u_short|fixpt_t|clock_t|swblk_t|ssize_t|alignof|daddr_t|int16_t|int32_t|uint8_t|struct|mode_t|size_t|time_t|ushort|u_long|u_char|int8_t|double|signed|static|extern|inline|return|switch|xor_eq|and_eq|bitand|not_eq|sizeof|quad_t|uid_t|bitor|union|off_t|key_t|ino_t|compl|u_int|short|const|false|while|float|pid_t|break|_Bool|or_eq|div_t|dev_t|gid_t|id_t|long|case|goto|else|bool|auto|id_t|enum|uint|true|NULL|void|char|for|not|int|and|xor|do|or|if)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?!\\G)(?<=\\))", - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - "anon_pattern_range_8": { - "name": "meta.bracket.square.access.c", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.object.c" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.c" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "anon_pattern_range_9": { - "name": "storage.modifier.array.bracket.square.c", - "match": "\\[\\s*\\]" - }, - "backslash_escapes": { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.c" - }, - "block": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.c" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.c" - } - }, - "name": "meta.block.c", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "block_comment": { - "patterns": [ - { - "begin": "\\s*+(\\/\\*)", - "end": "\\*\\/", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.c" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.c" - } - }, - "name": "comment.block.c" - }, - { - "begin": "\\s*+(\\/\\*)", - "end": "\\*\\/", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.c" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.c" - } - }, - "name": "comment.block.c" - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.c", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.c" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.c" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.c" - } - }, - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "include": "#parens-block" - }, - { - "include": "$self" - } - ] - }, - "c_conditional_context": { - "patterns": [ - { - "include": "$self" - }, - { - "include": "#block_innards" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.c", - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "case_statement": { - "name": "meta.conditional.case.c", - "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)case(?!\\w))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "keyword.control.case.c" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.colon.case.c" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "#c_conditional_context" - } - ] - }, - "comments": { - "patterns": [ - { - "patterns": [ - { - "patterns": [ - { - "name": "comment.line.double-slash.documentation.c", - "begin": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.documentation.c" - } - }, - "end": "(?<=\\n)(?<!\\\\\\n)", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.italic.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.bold.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.inline.raw.string.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.c" - } - ] - }, - "3": { - "name": "variable.parameter.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc" - } - ] - }, - { - "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", - "captures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.c" - }, - "2": { - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.italic.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.bold.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.inline.raw.string.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.c" - } - ] - }, - "3": { - "name": "variable.parameter.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc" - } - ] - }, - "3": { - "name": "punctuation.definition.comment.end.documentation.c" - } - }, - "name": "comment.block.documentation.c" - }, - { - "name": "comment.block.documentation.c", - "begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.c" - } - }, - "end": "([!*]*\\*\\/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.end.documentation.c" - } - }, - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.italic.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.bold.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.inline.raw.string.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.c" - } - ] - }, - "3": { - "name": "variable.parameter.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc" - } - ] - }, - { - "match": "^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?", - "captures": { - "1": { - "name": "meta.toc-list.banner.block.c" - } - }, - "name": "comment.block.banner.c" - }, - { - "name": "comment.block.c", - "begin": "(\\/\\*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.c" - } - }, - "end": "(\\*\\/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.end.c" - } - } - }, - { - "match": "^\\/\\/ =(\\s*.*?)\\s*=$\\n?", - "captures": { - "1": { - "name": "meta.toc-list.banner.line.c" - } - }, - "name": "comment.line.banner.c" - }, - { - "begin": "((?:^[ \\t]+)?)(?=\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.c" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "name": "comment.line.double-slash.c", - "begin": "(\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.c" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - } - ] - }, - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - } - ] - }, - "default_statement": { - "name": "meta.conditional.case.c", - "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)default(?!\\w))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "keyword.control.default.c" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.colon.case.default.c" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "#c_conditional_context" - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "evaluation_context": { - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$self" - } - ] - }, - "function-call-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.c" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - "function-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses" - }, - { - "name": "meta.function.definition.parameters.c", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.c" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "$self" - } - ] - }, - "inline_comment": { - "patterns": [ - { - "patterns": [ - { - "match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))", - "captures": { - "1": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "2": { - "name": "comment.block.c" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - }, - { - "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))", - "captures": { - "1": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "2": { - "name": "comment.block.c" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - } - ] - }, - { - "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))", - "captures": { - "1": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "2": { - "name": "comment.block.c" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - } - ] - }, - "line_comment": { - "patterns": [ - { - "begin": "\\s*+(\\/\\/)", - "end": "(?<=\\n)(?<!\\\\\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.c" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.c", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "\\s*+(\\/\\/)", - "end": "(?<=\\n)(?<!\\\\\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.c" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.c", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.c" - } - } - } - ] - }, - "member_access": { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - } - } - } - ] - }, - "5": { - "name": "variable.other.member.c" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.c", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - } - } - } - ] - }, - "5": { - "name": "entity.name.function.member.c" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "numbers": { - "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*", - "captures": { - "0": { - "patterns": [ - { - "begin": "(?=.)", - "end": "$", - "patterns": [ - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.c" - }, - "2": { - "name": "constant.numeric.hexadecimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric" - }, - "4": { - "name": "constant.numeric.hexadecimal.c" - }, - "5": { - "name": "constant.numeric.hexadecimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.c" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.c" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.c" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.c" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?$", - "captures": { - "2": { - "name": "constant.numeric.decimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric" - }, - "4": { - "name": "constant.numeric.decimal.point.c" - }, - "5": { - "name": "constant.numeric.decimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric" - }, - "8": { - "name": "keyword.other.unit.exponent.decimal.c" - }, - "9": { - "name": "keyword.operator.plus.exponent.decimal.c" - }, - "10": { - "name": "keyword.operator.minus.exponent.decimal.c" - }, - "11": { - "name": "constant.numeric.exponent.decimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.c" - } - } - }, - { - "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.binary.c" - }, - "2": { - "name": "constant.numeric.binary.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.c" - } - } - }, - { - "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.octal.c" - }, - "2": { - "name": "constant.numeric.octal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.c" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.c" - }, - "2": { - "name": "constant.numeric.hexadecimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric" - }, - "5": { - "name": "keyword.other.unit.exponent.hexadecimal.c" - }, - "6": { - "name": "keyword.operator.plus.exponent.hexadecimal.c" - }, - "7": { - "name": "keyword.operator.minus.exponent.hexadecimal.c" - }, - "8": { - "name": "constant.numeric.exponent.hexadecimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.c" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "2": { - "name": "constant.numeric.decimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric" - }, - "5": { - "name": "keyword.other.unit.exponent.decimal.c" - }, - "6": { - "name": "keyword.operator.plus.exponent.decimal.c" - }, - "7": { - "name": "keyword.operator.minus.exponent.decimal.c" - }, - "8": { - "name": "constant.numeric.exponent.decimal.c", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.c" - } - } - }, - { - "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+", - "name": "invalid.illegal.constant.numeric" - } - ] - } - ] - } - } - }, - "operators": { - "patterns": [ - { - "match": "(?<![\\w$])(sizeof)(?![\\w$])", - "name": "keyword.operator.sizeof.c" - }, - { - "match": "--", - "name": "keyword.operator.decrement.c" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.c" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.c" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.c" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.c" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.c" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.c" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.c" - }, - { - "match": "=", - "name": "keyword.operator.assignment.c" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.c" - }, - { - "begin": "(\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.c" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$self" - } - ] - } - ] - }, - "parens": { - "name": "meta.parens.c", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - "parens-block": { - "name": "meta.parens.block.c", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#block_innards" - }, - { - "match": "(?-mix:(?<!:):(?!:))", - "name": "punctuation.range-based.c" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.c" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.c" - }, - "3": { - "name": "punctuation.definition.directive.c" - }, - "4": { - "name": "entity.name.tag.pragma-mark.c" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.c" - }, - "predefined_macros": { - "patterns": [ - { - "match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b", - "captures": { - "1": { - "name": "entity.name.other.preprocessor.macro.predefined.$1.c" - } - } - }, - { - "match": "\\b__([A-Z_]+)__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$1.c" - } - ] - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$self" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.c" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.c" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.c" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.c" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.c" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.c" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.c" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.c" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.c" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.c" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.c" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.c" - } - }, - "name": "meta.block.c", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.c" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.c" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.c", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.c", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.single.c", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "$self" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#vararg_ellipses" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.c" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.c" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.in-block.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - }, - "3": { - "name": "constant.numeric.preprocessor.c" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.else-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.else-branch.in-block.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.in-block.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.elif-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$self" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.c", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.elif-branch.in-block.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.c", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$self" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.c" - }, - "1": { - "name": "keyword.control.directive.conditional.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "probably_a_parameter": { - "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", - "captures": { - "1": { - "name": "variable.parameter.probably.c" - } - } - }, - "static_assert": { - "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)static_assert|_Static_assert(?!\\w))((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "keyword.other.static_assert.c" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "8": { - "name": "comment.block.c" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "10": { - "name": "punctuation.section.arguments.begin.bracket.round.static_assert.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.static_assert.c" - } - }, - "patterns": [ - { - "name": "meta.static_assert.message.c", - "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.c" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#string_context" - } - ] - }, - { - "include": "#evaluation_context" - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)(?:unsigned|signed|double|_Bool|short|float|long|void|char|bool|int)(?!\\w))", - "name": "storage.type.built-in.primitive.c" - }, - { - "match": "(?-mix:(?<!\\w)(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|pthread_rwlockattr_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_uint_fast16_t|atomic_int_least64_t|atomic_int_least32_t|atomic_int_least16_t|atomic_uint_least8_t|atomic_uint_fast8_t|atomic_int_least8_t|atomic_int_fast16_t|pthread_mutexattr_t|atomic_int_fast32_t|atomic_int_fast64_t|atomic_int_fast8_t|pthread_condattr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintptr_t|atomic_uintmax_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|int_least32_t|pthread_key_t|int_least16_t|int_least64_t|uint_least8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|atomic_ushort|atomic_ullong|atomic_size_t|int_fast16_t|int_fast64_t|uint_fast8_t|atomic_short|atomic_uchar|atomic_schar|int_least8_t|memory_order|atomic_llong|atomic_ulong|int_fast32_t|atomic_long|atomic_uint|atomic_char|int_fast8_t|suseconds_t|atomic_bool|atomic_int|_Imaginary|useconds_t|in_port_t|uintmax_t|uintmax_t|pthread_t|blksize_t|in_addr_t|uintptr_t|blkcnt_t|uint16_t|uint32_t|uint64_t|u_quad_t|_Complex|intptr_t|intmax_t|intmax_t|segsz_t|u_short|nlink_t|uint8_t|int64_t|int32_t|int16_t|fixpt_t|daddr_t|caddr_t|qaddr_t|ssize_t|clock_t|swblk_t|u_long|mode_t|int8_t|time_t|ushort|u_char|quad_t|size_t|pid_t|gid_t|uid_t|dev_t|div_t|off_t|u_int|key_t|ino_t|uint|id_t|id_t)(?!\\w))", - "name": "storage.type.built-in.c" - }, - { - "match": "(?-mix:\\b(enum|struct|union)\\b)", - "name": "storage.type.$1.c" - }, - { - "name": "meta.asm.c", - "begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)", - "beginCaptures": { - "1": { - "name": "storage.type.asm.c" - }, - "2": { - "name": "storage.modifier.c" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "(?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - }, - { - "include": "#comments" - }, - { - "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.c" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "4": { - "name": "comment.block.c" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.assembly.c" - } - }, - "patterns": [ - { - "name": "string.quoted.double.c", - "contentName": "meta.embedded.assembly.c", - "begin": "(R?)(\")", - "beginCaptures": { - "1": { - "name": "meta.encoding.c" - }, - "2": { - "name": "punctuation.definition.string.begin.assembly.c" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.assembly.c" - } - }, - "patterns": [ - { - "include": "source.asm" - }, - { - "include": "source.x86" - }, - { - "include": "source.x86_64" - }, - { - "include": "source.arm" - }, - { - "include": "#backslash_escapes" - }, - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.assembly.inner.c" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "variable.other.asm.label.c" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "8": { - "name": "comment.block.c" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - }, - { - "match": ":", - "name": "punctuation.separator.delimiter.colon.assembly.c" - }, - { - "include": "#comments" - } - ] - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.c" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.c" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.c" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.c" - } - } - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.c", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.single.c", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "name": "meta.conditional.switch.c", - "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.c" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "#c_conditional_context" - } - ] - }, - "switch_statement": { - "name": "meta.block.switch.c", - "begin": "(((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)switch(?!\\w)))", - "beginCaptures": { - "1": { - "name": "meta.head.switch.c" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "4": { - "name": "comment.block.c" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "6": { - "name": "keyword.control.switch.c" - } - }, - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.switch.c", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.switch.c" - } - }, - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$self" - } - ] - }, - { - "name": "meta.body.switch.c", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.c" - } - }, - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$self" - }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.c", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "vararg_ellipses": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.c" - } - } -} diff --git a/lib/grammars/cadence.tmLanguage.json b/lib/grammars/cadence.tmLanguage.json deleted file mode 100644 index 13c0d07..0000000 --- a/lib/grammars/cadence.tmLanguage.json +++ /dev/null @@ -1,738 +0,0 @@ -{ - "scopeName": "source.cadence", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#expressions" - }, - { - "include": "#declarations" - }, - { - "include": "#keywords" - }, - { - "include": "#code-block" - }, - { - "include": "#composite" - }, - { - "include": "#event" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.cadence" - } - }, - "match": "\\A^(#!).*$\\n?", - "name": "comment.line.number-sign.cadence" - }, - { - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.cadence" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.cadence" - } - }, - "name": "comment.block.documentation.cadence", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "begin": "/\\*:", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.cadence" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.cadence" - } - }, - "name": "comment.block.documentation.playground.cadence", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.cadence" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.cadence" - } - }, - "name": "comment.block.cadence", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "match": "\\*/", - "name": "invalid.illegal.unexpected-end-of-block-comment.cadence" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.cadence" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "///", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cadence" - } - }, - "end": "^", - "name": "comment.line.triple-slash.documentation.cadence" - }, - { - "begin": "//:", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cadence" - } - }, - "end": "^", - "name": "comment.line.double-slash.documentation.cadence" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cadence" - } - }, - "end": "^", - "name": "comment.line.double-slash.cadence" - } - ] - } - ], - "repository": { - "nested": { - "begin": "/\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#nested" - } - ] - } - } - }, - "literals": { - "patterns": [ - { - "include": "#boolean" - }, - { - "include": "#numeric" - }, - { - "include": "#string" - }, - { - "match": "\\bnil\\b", - "name": "constant.language.nil.cadence" - } - ], - "repository": { - "boolean": { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.cadence" - }, - "numeric": { - "patterns": [ - { - "include": "#binary" - }, - { - "include": "#octal" - }, - { - "include": "#decimal" - }, - { - "include": "#hexadecimal" - } - ], - "repository": { - "binary": { - "comment": "", - "match": "(\\B\\-|\\b)0b[01]([_01]*[01])?\\b", - "name": "constant.numeric.integer.binary.cadence" - }, - "octal": { - "comment": "", - "match": "(\\B\\-|\\b)0o[0-7]([_0-7]*[0-7])?\\b", - "name": "constant.numeric.integer.octal.cadence" - }, - "decimal": { - "comment": "", - "match": "(\\B\\-|\\b)[0-9]([_0-9]*[0-9])?\\b", - "name": "constant.numeric.integer.decimal.cadence" - }, - "hexadecimal": { - "comment": "", - "match": "(\\B\\-|\\b)0x[0-9A-Fa-f]([_0-9A-Fa-f]*[0-9A-Fa-f])?\\b", - "name": "constant.numeric.integer.hexadecimal.cadence" - } - } - }, - "string": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cadence" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cadence" - } - }, - "name": "string.quoted.double.single-line.cadence", - "patterns": [ - { - "match": "\\r|\\n", - "name": "invalid.illegal.returns-not-allowed.cadence" - }, - { - "include": "#string-guts" - } - ] - } - ], - "repository": { - "string-guts": { - "patterns": [ - { - "match": "\\\\[0\\\\tnr\"']", - "name": "constant.character.escape.cadence" - }, - { - "match": "\\\\u\\{[0-9a-fA-F]{1,8}\\}", - "name": "constant.character.escape.unicode.cadence" - } - ] - } - } - } - } - }, - "operators": { - "patterns": [ - { - "match": "\\-", - "name": "keyword.operator.arithmetic.unary.cadence" - }, - { - "match": "!", - "name": "keyword.operator.logical.not.cadence" - }, - { - "match": "=", - "name": "keyword.operator.assignment.cadence" - }, - { - "match": "<-", - "name": "keyword.operator.move.cadence" - }, - { - "match": "<-!", - "name": "keyword.operator.force-move.cadence" - }, - { - "match": "\\+|\\-|\\*|/", - "name": "keyword.operator.arithmetic.cadence" - }, - { - "match": "%", - "name": "keyword.operator.arithmetic.remainder.cadence" - }, - { - "match": "==|!=|>|<|>=|<=", - "name": "keyword.operator.comparison.cadence" - }, - { - "match": "\\?\\?", - "name": "keyword.operator.coalescing.cadence" - }, - { - "match": "&&|\\|\\|", - "name": "keyword.operator.logical.cadence" - }, - { - "match": "[?!]", - "name": "keyword.operator.type.optional.cadence" - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "(?<!\\.)\\b(?:if|else|switch|case|default)\\b", - "name": "keyword.control.branch.cadence" - }, - { - "match": "(?<!\\.)\\b(?:return|continue|break)\\b", - "name": "keyword.control.transfer.cadence" - }, - { - "match": "(?<!\\.)\\b(?:while|for|in)\\b", - "name": "keyword.control.loop.cadence" - }, - { - "match": "(?<!\\.)\\b(?:pre|post|prepare|execute|create|destroy|emit)\\b", - "name": "keyword.other.cadence" - }, - { - "match": "(?<!\\.)\\b(?:private|pub(?:\\(set\\))?|access\\((?:self|contract|account|all)\\))\\b", - "name": "keyword.other.declaration-specifier.accessibility.cadence" - }, - { - "match": "\\b(?:init|destroy)\\b", - "name": "storage.type.function.cadence" - }, - { - "match": "(?<!\\.)\\b(?:import|from)\\b", - "name": "keyword.control.import.cadence" - } - ] - }, - "code-block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.cadence" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.cadence" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - "function": { - "begin": "\\b(fun)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.function.cadence" - }, - "2": { - "name": "entity.name.function.cadence" - } - }, - "end": "(?<=\\})|$", - "name": "meta.definition.function.cadence", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#function-result" - }, - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.cadence" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.function.end.cadence" - } - }, - "name": "meta.definition.function.body.cadence", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "initializer": { - "begin": "(?<!\\.)\\b(init)\\s*(?=\\(|<)", - "beginCaptures": { - "1": { - "name": "storage.type.function.cadence" - } - }, - "end": "(?<=\\})|$", - "name": "meta.definition.function.initializer.cadence", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parameter-clause" - }, - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.cadence" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.function.end.cadence" - } - }, - "name": "meta.definition.function.body.cadence", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function-result": { - "begin": "(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.function-result.cadence" - } - }, - "end": "(?!\\G)(?=\\{|;)|$", - "name": "meta.function-result.cadence", - "patterns": [ - { - "include": "#type" - } - ] - }, - "expressions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#function-call-expression" - }, - { - "include": "#literals" - }, - { - "include": "#operators" - }, - { - "include": "#language-variables" - } - ] - }, - "language-variables": { - "patterns": [ - { - "match": "\\b(self)\\b", - "name": "variable.language.cadence" - } - ] - }, - "function-call-expression": { - "patterns": [ - { - "begin": "(?!(?:set|init))([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.any-method.cadence" - }, - "4": { - "name": "punctuation.definition.arguments.begin.cadence" - } - }, - "comment": "foo(args) -- a call whose callee is a highlightable name", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.cadence" - } - }, - "name": "meta.function-call.cadence", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - } - ] - }, - "expression-element-list": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.cadence" - }, - "2": { - "name": "punctuation.separator.argument-label.cadence" - } - }, - "comment": "an element with a label", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "begin": "(?![,)\\]])(?=\\S)", - "comment": "an element without a label (i.e. anything else)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - }, - "declarations": { - "patterns": [ - { - "include": "#var-let-declaration" - }, - { - "include": "#function" - }, - { - "include": "#initializer" - } - ] - }, - "var-let-declaration": { - "begin": "\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)", - "beginCaptures": { - "1": { - "name": "storage.type.$1.cadence" - }, - "2": { - "name": "entity.name.type.$1.cadence" - } - }, - "end": "=|<-|<-!|$", - "patterns": [ - { - "include": "#type" - } - ] - }, - "type": { - "patterns": [ - { - "include": "#comments" - }, - { - "match": "([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)", - "name": "storage.type.cadence" - } - ] - }, - "parameter-clause": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.cadence" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.cadence" - } - }, - "name": "meta.parameter-clause.cadence", - "patterns": [ - { - "include": "#parameter-list" - } - ] - }, - "parameter-list": { - "patterns": [ - { - "match": "([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)", - "captures": { - "1": { - "name": "entity.name.function.cadence" - }, - "2": { - "name": "variable.parameter.function.cadence" - } - }, - "comment": "External parameter labels are considered part of the function name" - }, - { - "match": "(([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*))(?=\\s*:)", - "captures": { - "1": { - "name": "variable.parameter.function.cadence" - }, - "2": { - "name": "entity.name.function.cadence" - } - }, - "comment": "If no external label is given, the name is both the external label and the internal variable name" - }, - { - "begin": ":\\s*(?!\\s)", - "end": "(?=[,)])", - "patterns": [ - { - "include": "#type" - }, - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-parameter-list.cadence" - } - ] - } - ] - }, - "event": { - "begin": "\\b(event)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.event.cadence" - }, - "2": { - "name": "entity.name.type.event.cadence" - } - }, - "end": "(?<=\\))|$", - "name": "meta.definition.type.event.cadence", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parameter-clause" - } - ] - }, - "composite": { - "begin": "\\b((?:(?:struct|resource|contract)(?:\\s+interface)?)|transaction|enum)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)", - "beginCaptures": { - "1": { - "name": "storage.type.$1.cadence" - }, - "2": { - "name": "entity.name.type.$1.cadence" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.composite.cadence", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#conformance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.cadence" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.cadence" - } - }, - "name": "meta.definition.type.body.cadence", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "conformance-clause": { - "begin": "(:)(?=\\s*\\{)|(:)\\s*", - "beginCaptures": { - "1": { - "name": "invalid.illegal.empty-conformance-clause.cadence" - }, - "2": { - "name": "punctuation.separator.conformance-clause.cadence" - } - }, - "end": "(?!\\G)$|(?=[={}])", - "name": "meta.conformance-clause.cadence", - "patterns": [ - { - "begin": "\\G", - "end": "(?!\\G)$|(?=[={}])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#type" - } - ] - } - ] - } - }, - "name": "cadence" -} diff --git a/lib/grammars/clarity.tmLanguage.json b/lib/grammars/clarity.tmLanguage.json deleted file mode 100644 index d383c09..0000000 --- a/lib/grammars/clarity.tmLanguage.json +++ /dev/null @@ -1,875 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "clarity", - "scopeName": "source.clar", - "uuid": "f9e9871d-2ea6-4be0-afd2-fc382d704716", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#define-constant" - }, - { - "include": "#define-data-var" - }, - { - "include": "#define-map" - }, - { - "include": "#define-function" - }, - { - "include": "#define-fungible-token" - }, - { - "include": "#define-non-fungible-token" - }, - { - "include": "#define-trait" - }, - { - "include": "#use-trait" - } - ], - "repository": { - "comment": { - "name": "comment.line.semicolon.clarity", - "match": "(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $" - }, - "expression": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#keyword" - }, - { - "include": "#literal" - }, - { - "include": "#let-func" - }, - { - "include": "#built-in-func" - }, - { - "include": "#get-set-func" - } - ] - }, - "keyword": { - "name": "constant.language.clarity", - "match": "\\b(?:block-height|burn-block-height|contract-caller|is-in-regtest|stx-liquid-supply|tx-sender)\\b" - }, - "define-function": { - "begin": "(?x) (\\() \\s* (define-(?:public|private|read-only)) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-function.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-function.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-function.end.clarity" - } - }, - "name": "meta.define-function", - "patterns": [ - { - "include": "#expression" - }, - { - "begin": "(?x) (\\() \\s* ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.function-signature.start.clarity" - }, - "2": { - "name": "entity.name.function.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.function-signature.end.clarity" - } - }, - "name": "meta.define-function-signature", - "patterns": [ - { - "begin": "(?x) (\\() \\s* ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.function-argument.start.clarity" - }, - "2": { - "name": "variable.parameter.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.function-argument.end.clarity" - } - }, - "name": "meta.function-argument", - "patterns": [ - { - "include": "#data-type" - } - ] - } - ] - } - ] - }, - "define-fungible-token": { - "match": "(?x) (\\() \\s* (define-fungible-token) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) (?:\\s+(u\\d+))?", - "captures": { - "1": { - "name": "punctuation.define-fungible-token.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-fungible-token.clarity" - }, - "3": { - "name": "entity.name.fungible-token-name.clarity variable.other.clarity" - }, - "4": { - "name": "constant.numeric.fungible-token-total-supply.clarity" - }, - "5": { - "name": "punctuation.define-fungible-token.end.clarity" - } - } - }, - "define-non-fungible-token": { - "begin": "(?x) (\\() \\s* (define-non-fungible-token) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-non-fungible-token.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-non-fungible-token.clarity" - }, - "3": { - "name": "entity.name.non-fungible-token-name.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-non-fungible-token.end.clarity" - } - }, - "name": "meta.define-non-fungible-token", - "patterns": [ - { - "include": "#data-type" - } - ] - }, - "define-trait": { - "begin": "(?x) (\\() \\s* (define-trait) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-trait.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-trait.clarity" - }, - "3": { - "name": "entity.name.trait-name.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-trait.end.clarity" - } - }, - "name": "meta.define-trait", - "patterns": [ - { - "begin": "(?x) (\\() \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-trait-body.start.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-trait-body.end.clarity" - } - }, - "name": "meta.define-trait-body", - "patterns": [ - { - "include": "#expression" - }, - { - "begin": "(?x) (\\() \\s* ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]+\\??) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.trait-function.start.clarity" - }, - "2": { - "name": "entity.name.trait-function-name.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.trait-function.end.clarity" - } - }, - "name": "meta.trait-function", - "patterns": [ - { - "include": "#data-type" - }, - { - "begin": "(?x) (\\() \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.trait-function-args.start.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.trait-function-args.end.clarity" - } - }, - "name": "meta.trait-function-args", - "patterns": [ - { - "include": "#data-type" - } - ] - } - ] - } - ] - } - ] - }, - "use-trait": { - "begin": "(?x) (\\() \\s* (use-trait) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.use-trait.start.clarity" - }, - "2": { - "name": "keyword.declaration.use-trait.clarity" - }, - "3": { - "name": "entity.name.trait-alias.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.use-trait.end.clarity" - } - }, - "name": "meta.use-trait", - "patterns": [ - { - "include": "#literal" - } - ] - }, - "define-constant": { - "begin": "(?x) (\\() \\s* (define-constant) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-constant.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-constant.clarity" - }, - "3": { - "name": "entity.name.constant-name.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-constant.end.clarity" - } - }, - "name": "meta.define-constant", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "define-data-var": { - "begin": "(?x) (\\() \\s* (define-data-var) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-data-var.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-data-var.clarity" - }, - "3": { - "name": "entity.name.data-var-name.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-data-var.end.clarity" - } - }, - "name": "meta.define-data-var", - "patterns": [ - { - "include": "#data-type" - }, - { - "include": "#expression" - } - ] - }, - "define-map": { - "begin": "(?x) (\\() \\s* (define-map) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.define-map.start.clarity" - }, - "2": { - "name": "keyword.declaration.define-map.clarity" - }, - "3": { - "name": "entity.name.map-name.clarity variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.define-map.end.clarity" - } - }, - "name": "meta.define-map", - "patterns": [ - { - "include": "#data-type" - }, - { - "include": "#expression" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#number-literal" - }, - { - "include": "#bool-literal" - }, - { - "include": "#string-literal" - }, - { - "include": "#tuple-literal" - }, - { - "include": "#principal-literal" - }, - { - "include": "#list-literal" - }, - { - "include": "#optional-literal" - }, - { - "include": "#response-literal" - } - ], - "repository": { - "number-literal": { - "patterns": [ - { - "comment": "unsigned integers", - "name": "constant.numeric.uint.clarity", - "match": "\\bu\\d+\\b" - }, - { - "comment": "signed integers", - "name": "constant.numeric.int.clarity", - "match": "\\b\\d+\\b" - }, - { - "comment": "hexadecimals", - "name": "constant.numeric.hex.clarity", - "match": "\\b0x[0-9a-f]*\\b" - } - ] - }, - "bool-literal": { - "name": "constant.language.bool.clarity", - "match": "\\b(true|false)\\b" - }, - "string-literal": { - "patterns": [ - { - "name": "string.quoted.double.clarity", - "begin": "(u?)(\")", - "beginCaptures": { - "1": { - "name": "string.quoted.utf8.clarity" - }, - "2": { - "name": "punctuation.definition.string.begin.clarity" - } - }, - "end": "\"", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.clarity" - } - }, - "patterns": [ - { - "name": "constant.character.escape.quote", - "match": "\\\\." - } - ] - } - ] - }, - "tuple-literal": { - "begin": "(\\{)", - "end": "(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.tuple.start.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.tuple.end.clarity" - } - }, - "name": "meta.tuple", - "patterns": [ - { - "name": "entity.name.tag.tuple-key.clarity", - "match": "([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*)(?=:)" - }, - { - "include": "#expression" - }, - { - "include": "#user-func" - } - ] - }, - "principal-literal": { - "name": "constant.other.principal.clarity", - "match": "(?x) \\'[0-9A-Z]{28,41}(:?\\.[a-zA-Z][a-zA-Z0-9\\-]+){0,2} | (\\.[a-zA-Z][a-zA-Z0-9\\-]*){1,2} (?=[\\s(){},]|$)" - }, - "list-literal": { - "begin": "(?x) (\\() \\s* (list) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.list.start.clarity" - }, - "2": { - "name": "entity.name.type.list.clarity" - } - }, - "endCaptures": { - "1": { - "names": "punctuation.list.end.clarity" - } - }, - "name": "meta.list", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#user-func" - } - ] - }, - "optional-literal": { - "patterns": [ - { - "match": "\\b(none)\\b", - "name": "constant.language.none.clarity" - }, - { - "begin": "(?x) (\\() \\s* (some) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.some.start.clarity" - }, - "2": { - "name": "constant.language.some.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.some.end.clarity" - } - }, - "name": "meta.some", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "response-literal": { - "begin": "(?x) (\\() \\s* (ok|err) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.response.start.clarity" - }, - "2": { - "name": "constant.language.ok-err.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.response.end.clarity" - } - }, - "name": "meta.response", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#user-func" - } - ] - } - } - }, - "data-type": { - "patterns": [ - { - "include": "#comment" - }, - { - "comment": "numerics", - "name": "entity.name.type.numeric.clarity", - "match": "\\b(uint|int)\\b" - }, - { - "comment": "principal", - "name": "entity.name.type.principal.clarity", - "match": "\\b(principal)\\b" - }, - { - "comment": "bool", - "name": "entity.name.type.bool.clarity", - "match": "\\b(bool)\\b" - }, - { - "match": "(?x) (\\() \\s* (?:(string-ascii|string-utf8)\\s+(\\d+)) \\s* (\\))", - "captures": { - "1": { - "name": "punctuation.string-def.start.clarity" - }, - "2": { - "name": "entity.name.type.string.clarity" - }, - "3": { - "name": "constant.numeric.string-len.clarity" - }, - "4": { - "name": "punctuation.string-def.end.clarity" - } - } - }, - { - "match": "(?x) (\\() \\s* (buff)\\s+(\\d+)\\s* (\\))", - "captures": { - "1": { - "name": "punctuation.buff-def.start.clarity" - }, - "2": { - "name": "entity.name.type.buff.clarity" - }, - "3": { - "name": "constant.numeric.buf-len.clarity" - }, - "4": { - "name": "punctuation.buff-def.end.clarity" - } - } - }, - { - "comment": "optional", - "begin": "(?x) (\\() \\s* (optional)\\s+", - "beginCaptures": { - "1": { - "name": "punctuation.optional-def.start.clarity" - }, - "2": { - "name": "storage.type.modifier" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.optional-def.end.clarity" - } - }, - "name": "meta.optional-def", - "patterns": [ - { - "include": "#data-type" - } - ] - }, - { - "comment": "response", - "begin": "(?x) (\\() \\s* (response)\\s+", - "beginCaptures": { - "1": { - "name": "punctuation.response-def.start.clarity" - }, - "2": { - "name": "storage.type.modifier" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.response-def.end.clarity" - } - }, - "name": "meta.response-def", - "patterns": [ - { - "include": "#data-type" - } - ] - }, - { - "comment": "list", - "begin": "(?x) (\\() \\s* (list) \\s+ (\\d+) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.list-def.start.clarity" - }, - "2": { - "name": "entity.name.type.list.clarity" - }, - "3": { - "name": "constant.numeric.list-len.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.list-def.end.clarity" - } - }, - "name": "meta.list-def", - "patterns": [ - { - "include": "#data-type" - } - ] - }, - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.tuple-def.start.clarity" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.tuple-def.end.clarity" - } - }, - "name": "meta.tuple-def", - "patterns": [ - { - "name": "entity.name.tag.tuple-data-type-key.clarity", - "match": "([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*)(?=:)" - }, - { - "include": "#data-type" - } - ] - } - ] - }, - "built-in-func": { - "begin": "(?x) (\\() \\s* (\\-|\\+|<\\=|>\\=|<|>|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|concat|contract-call\\?|contract-of|default-to|element-at|filter|fold|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|hash160|if|impl-trait|index-of|is-eq|is-err|is-none|is-ok|is-some|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-of\\?|print|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|sqrti|stx-burn\\?|stx-get-balance|stx-transfer\\?|to-int|to-uint|try!|unwrap-err-panic|unwrap-err!|unwrap-panic|unwrap!|xor) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.built-in-function.start.clarity" - }, - "2": { - "name": "keyword.declaration.built-in-function.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.built-in-function.end.clarity" - } - }, - "name": "meta.built-in-function", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#user-func" - } - ] - }, - "get-set-func": { - "name": "meta.get-set-func", - "begin": "(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.get-set-func.start.clarity" - }, - "2": { - "name": "keyword.control.clarity" - }, - "3": { - "name": "variable.other.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.get-set-func.end.clarity" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "let-func": { - "begin": "(?x) (\\() \\s* (let) \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.let-function.start.clarity" - }, - "2": { - "name": "keyword.declaration.let-function.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.let-function.end.clarity" - } - }, - "name": "meta.let-function", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#user-func" - }, - { - "begin": "(?x) (\\() \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.let-var.start.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.let-var.end.clarity" - } - }, - "name": "meta.let-var", - "patterns": [ - { - "begin": "(?x) (\\() ([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*) \\s+", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.let-local-var.start.clarity" - }, - "2": { - "name": "entity.name.let-local-var-name.clarity variable.parameter.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.let-local-var.end.clarity" - } - }, - "name": "meta.let-local-var", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#user-func" - } - ] - }, - { - "include": "#expression" - } - ] - } - ] - }, - "user-func": { - "begin": "(?x) (\\() \\s* (([a-zA-Z][a-zA-Z0-9_\\-\\!\\?]*)) \\s*", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.user-function.start.clarity" - }, - "2": { - "name": "entity.name.function.clarity" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.user-function.end.clarity" - } - }, - "name": "meta.user-function", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "$self" - } - ] - } - } -} diff --git a/lib/grammars/clojure.tmLanguage.json b/lib/grammars/clojure.tmLanguage.json deleted file mode 100644 index d078016..0000000 --- a/lib/grammars/clojure.tmLanguage.json +++ /dev/null @@ -1,431 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03", - "name": "clojure", - "scopeName": "source.clojure", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#shebang-comment" - }, - { - "include": "#quoted-sexp" - }, - { - "include": "#sexp" - }, - { - "include": "#keyfn" - }, - { - "include": "#string" - }, - { - "include": "#vector" - }, - { - "include": "#set" - }, - { - "include": "#map" - }, - { - "include": "#regexp" - }, - { - "include": "#var" - }, - { - "include": "#constants" - }, - { - "include": "#dynamic-variables" - }, - { - "include": "#metadata" - }, - { - "include": "#namespace-symbol" - }, - { - "include": "#symbol" - } - ], - "repository": { - "comment": { - "begin": "(?<!\\\\);", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.clojure" - } - }, - "end": "$", - "name": "comment.line.semicolon.clojure" - }, - "constants": { - "patterns": [ - { - "match": "(nil)(?=(\\s|\\)|\\]|\\}))", - "name": "constant.language.nil.clojure" - }, - { - "match": "(true|false)", - "name": "constant.language.boolean.clojure" - }, - { - "match": "(##(?:Inf|-Inf|NaN))", - "name": "constant.numeric.symbol.clojure" - }, - { - "match": "([-+]?\\d+/\\d+)", - "name": "constant.numeric.ratio.clojure" - }, - { - "match": "([-+]?(?:(?:3[0-6])|(?:[12]\\d)|[2-9])[rR][0-9A-Za-z]+N?)", - "name": "constant.numeric.arbitrary-radix.clojure" - }, - { - "match": "([-+]?0[xX][0-9a-fA-F]+N?)", - "name": "constant.numeric.hexadecimal.clojure" - }, - { - "match": "([-+]?0[0-7]+N?)", - "name": "constant.numeric.octal.clojure" - }, - { - "match": "([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)", - "name": "constant.numeric.double.clojure" - }, - { - "match": "([-+]?\\d+N?)", - "name": "constant.numeric.long.clojure" - }, - { - "include": "#keyword" - } - ] - }, - "keyword": { - "match": "(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))", - "name": "constant.keyword.clojure" - }, - "keyfn": { - "patterns": [ - { - "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))", - "name": "storage.control.clojure" - }, - { - "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))", - "name": "keyword.control.clojure" - } - ] - }, - "dynamic-variables": { - "match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*", - "name": "meta.symbol.dynamic.clojure" - }, - "map": { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.map.begin.clojure" - } - }, - "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.map.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.map.end.clojure" - } - }, - "name": "meta.map.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - "metadata": { - "patterns": [ - { - "begin": "(\\^\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.metadata.map.begin.clojure" - } - }, - "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.metadata.map.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.metadata.map.end.clojure" - } - }, - "name": "meta.metadata.map.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(\\^)", - "end": "(\\s)", - "name": "meta.metadata.simple.clojure", - "patterns": [ - { - "include": "#keyword" - }, - { - "include": "$self" - } - ] - } - ] - }, - "quoted-sexp": { - "begin": "(['``]\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.clojure" - } - }, - "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "3": { - "name": "punctuation.section.expression.end.clojure" - } - }, - "name": "meta.quoted-expression.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - "regexp": { - "begin": "#\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.regexp.begin.clojure" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.regexp.end.clojure" - } - }, - "name": "string.regexp.clojure", - "patterns": [ - { - "include": "#regexp_escaped_char" - } - ] - }, - "regexp_escaped_char": { - "match": "\\\\.", - "name": "constant.character.escape.clojure" - }, - "set": { - "begin": "(\\#\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.set.begin.clojure" - } - }, - "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.set.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.set.end.clojure" - } - }, - "name": "meta.set.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - "sexp": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.clojure" - } - }, - "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "3": { - "name": "punctuation.section.expression.end.clojure" - } - }, - "name": "meta.expression.clojure", - "patterns": [ - { - "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=><!?*-]*|[\\w._:+=><!?*-][\\w\\d._:+=><!?*-]*/def[\\w\\d._:+=><!?*-]*)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.clojure" - } - }, - "end": "(?=\\))", - "name": "meta.definition.global.clojure", - "patterns": [ - { - "include": "#metadata" - }, - { - "include": "#dynamic-variables" - }, - { - "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", - "name": "entity.global.clojure" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#keyfn" - }, - { - "include": "#constants" - }, - { - "include": "#vector" - }, - { - "include": "#map" - }, - { - "include": "#set" - }, - { - "include": "#sexp" - }, - { - "match": "(?<=\\()(.+?)(?=\\s|\\))", - "captures": { - "1": { - "name": "entity.name.function.clojure" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - "shebang-comment": { - "begin": "^(#!)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.shebang.clojure" - } - }, - "end": "$", - "name": "comment.line.shebang.clojure" - }, - "string": { - "begin": "(?<!\\\\)(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.clojure" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.clojure" - } - }, - "name": "string.quoted.double.clojure", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.clojure" - } - ] - }, - "namespace-symbol": { - "patterns": [ - { - "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/", - "captures": { - "1": { - "name": "meta.symbol.namespace.clojure" - } - } - } - ] - }, - "symbol": { - "patterns": [ - { - "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", - "name": "meta.symbol.clojure" - } - ] - }, - "var": { - "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))", - "name": "meta.var.clojure" - }, - "vector": { - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.section.vector.begin.clojure" - } - }, - "end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])", - "endCaptures": { - "1": { - "name": "punctuation.section.vector.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.vector.end.clojure" - } - }, - "name": "meta.vector.clojure", - "patterns": [ - { - "include": "$self" - } - ] - } - } -} diff --git a/lib/grammars/cmake.tmLanguage.json b/lib/grammars/cmake.tmLanguage.json deleted file mode 100644 index d8bfb8d..0000000 --- a/lib/grammars/cmake.tmLanguage.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "fileTypes": ["cmake", "CMakeLists.txt"], - "name": "cmake", - "patterns": [ - { - "comment": "Variables That Describe the System", - "match": "\\b(?i:APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71)\\b", - "name": "constant.source.cmake" - }, - { - "comment": "cmakeOperators", - "match": "\\b(?i:ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\\b", - "name": "keyword.cmake" - }, - { - "comment": "Commands", - "match": "^\\s*\\b(?i:add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)\\b", - "name": "keyword.cmake" - }, - { - "comment": "Variables That Change Behavior", - "match": "\\b(?i:BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\\b", - "name": "variable.source.cmake" - }, - { - "match": "\\$\\{\\w+\\}", - "name": "storage.source.cmake" - }, - { - "match": "\\$ENV\\{\\w+\\}", - "name": "storage.source.cmake" - }, - { - "comment": "Variables that Control the Build", - "match": "\\b(?i:(CMAKE_)?(\\w+_POSTFIX|ARCHIVE_OUTPUT_DIRECTORY|AUTOMOC|AUTOMOC_MOC_OPTIONS|BUILD_WITH_INSTALL_RPATH|DEBUG_POSTFIX|EXE_LINKER_FLAGS|EXE_LINKER_FLAGS_\\w+|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GNUtoMS|INCLUDE_CURRENT_DIR|INCLUDE_CURRENT_DIR_IN_INTERFACE|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_PATH_FLAG|LINK_DEF_FILE_FLAG|LINK_DEPENDS_NO_SHARED|LINK_INTERFACE_LIBRARIES|LINK_LIBRARY_FILE_FLAG|LINK_LIBRARY_FLAG|MACOSX_BUNDLE|NO_BUILTIN_CHRPATH|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|RUNTIME_OUTPUT_DIRECTORY|SKIP_BUILD_RPATH|SKIP_INSTALL_RPATH|TRY_COMPILE_CONFIGURATION|USE_RELATIVE_PATHS|WIN32_EXECUTABLE)|EXECUTABLE_OUTPUT_PATH|LIBRARY_OUTPUT_PATH)\\b", - "name": "variable.source.cmake" - }, - { - "comment": "Variables that Provide Information", - "match": "\\b(?i:CMAKE_(AR|ARGC|ARGV0|BINARY_DIR|BUILD_TOOL|CACHEFILE_DIR|CACHE_MAJOR_VERSION|CACHE_MINOR_VERSION|CACHE_PATCH_VERSION|CFG_INTDIR|COMMAND|CROSSCOMPILING|CTEST_COMMAND|CURRENT_BINARY_DIR|CURRENT_LIST_DIR|CURRENT_LIST_FILE|CURRENT_LIST_LINE|CURRENT_SOURCE_DIR|DL_LIBS|EDIT_COMMAND|EXECUTABLE_SUFFIX|EXTRA_GENERATOR|EXTRA_SHARED_LIBRARY_SUFFIXES|GENERATOR|HOME_DIRECTORY|IMPORT_LIBRARY_PREFIX|IMPORT_LIBRARY_SUFFIX|LINK_LIBRARY_SUFFIX|MAJOR_VERSION|MAKE_PROGRAM|MINOR_VERSION|PARENT_LIST_FILE|PATCH_VERSION|PROJECT_NAME|RANLIB|ROOT|SCRIPT_MODE_FILE|SHARED_LIBRARY_PREFIX|SHARED_LIBRARY_SUFFIX|SHARED_MODULE_PREFIX|SHARED_MODULE_SUFFIX|SIZEOF_VOID_P|SKIP_RPATH|SOURCE_DIR|STANDARD_LIBRARIES|STATIC_LIBRARY_PREFIX|STATIC_LIBRARY_SUFFIX|TWEAK_VERSION|USING_VC_FREE_TOOLS|VERBOSE_MAKEFILE|VERSION)|PROJECT_BINARY_DIR|PROJECT_NAME|PROJECT_SOURCE_DIR|\\w+_BINARY_DIR|\\w+__SOURCE_DIR)\\b", - "name": "variable.source.cmake" - }, - { - "comment": "BracketArgs", - "begin": "#\\[(=*)\\[", - "end": "\\]\\1\\]", - "name": "comment.source.cmake", - "patterns": [ - { - "match": "\\\\(.|$)", - "name": "constant.character.escape" - } - ] - }, - { - "comment": "BracketArgs", - "begin": "\\[(=*)\\[", - "end": "\\]\\1\\]", - "name": "argument.source.cmake", - "patterns": [ - { - "match": "\\\\(.|$)", - "name": "constant.character.escape" - } - ] - }, - { - "match": "#+.*$", - "name": "comment.source.cmake" - }, - { - "comment": "Properties on Cache Entries", - "match": "\\b(?i:ADVANCED|HELPSTRING|MODIFIED|STRINGS|TYPE|VALUE)\\b", - "name": "entity.source.cmake" - }, - { - "comment": "Properties on Source Files", - "match": "\\b(?i:ABSTRACT|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_<CONFIG>|COMPILE_FLAGS|EXTERNAL_OBJECT|Fortran_FORMAT|GENERATED|HEADER_FILE_ONLY|KEEP_EXTENSION|LABELS|LANGUAGE|LOCATION|MACOSX_PACKAGE_LOCATION|OBJECT_DEPENDS|OBJECT_OUTPUTS|SYMBOLIC|WRAP_EXCLUDE)\\b", - "name": "entity.source.cmake" - }, - { - "comment": "Properties on Tests", - "match": "\\b(?i:ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|COST|DEPENDS|ENVIRONMENT|FAIL_REGULAR_EXPRESSION|LABELS|MEASUREMENT|PASS_REGULAR_EXPRESSION|PROCESSORS|REQUIRED_FILES|RESOURCE_LOCK|RUN_SERIAL|TIMEOUT|WILL_FAIL|WORKING_DIRECTORY)\\b", - "name": "entity.source.cmake" - }, - { - "comment": "Properties on Directories", - "match": "\\b(?i:ADDITIONAL_MAKE_CLEAN_FILES|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_\\w+|DEFINITIONS|EXCLUDE_FROM_ALL|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LINK_DIRECTORIES|LISTFILE_STACK|MACROS|PARENT_DIRECTORY|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|TEST_INCLUDE_FILE|VARIABLES|VS_GLOBAL_SECTION_POST_\\w+|VS_GLOBAL_SECTION_PRE_\\w+)\\b", - "name": "entity.source.cmake" - }, - { - "comment": "Properties of Global Scope", - "match": "\\b(?i:ALLOW_DUPLICATE_CUSTOM_TARGETS|DEBUG_CONFIGURATIONS|DISABLED_FEATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|IN_TRY_COMPILE|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PREDEFINED_TARGETS_FOLDER|REPORT_UNDEFINED_PROPERTIES|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_SUPPORTS_SHARED_LIBS|USE_FOLDERS|__CMAKE_DELETE_CACHE_CHANGE_VARS_)\\b", - "name": "entity.source.cmake" - }, - { - "comment": "Properties on Targets", - "match": "\\b(?i:\\w+_(OUTPUT_NAME|POSTFIX)|ARCHIVE_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|AUTOMOC(_MOC_OPTIONS)?|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE(_EXTENSION)?|COMPATIBLE_INTERFACE_BOOL|COMPATIBLE_INTERFACE_STRING|COMPILE_(DEFINITIONS(_\\w+)?|FLAGS)|DEBUG_POSTFIX|DEFINE_SYMBOL|ENABLE_EXPORTS|EXCLUDE_FROM_ALL|EchoString|FOLDER|FRAMEWORK|Fortran_(FORMAT|MODULE_DIRECTORY)|GENERATOR_FILE_NAME|GNUtoMS|HAS_CXX|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(CONFIGURATIONS|IMPLIB(_\\w+)?|LINK_DEPENDENT_LIBRARIES(_\\w+)?|LINK_INTERFACE_LANGUAGES(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LOCATION(_\\w+)?|NO_SONAME(_\\w+)?|SONAME(_\\w+)?)|IMPORT_PREFIX|IMPORT_SUFFIX|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE|INTERFACE_COMPILE_DEFINITIONS|INTERFACE_INCLUDE_DIRECTORIES|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LABELS|LIBRARY_OUTPUT_DIRECTORY(_\\w+)?|LIBRARY_OUTPUT_NAME(_\\w+)?|LINKER_LANGUAGE|LINK_DEPENDS|LINK_FLAGS(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LINK_LIBRARIES|LINK_SEARCH_END_STATIC|LINK_SEARCH_START_STATIC|LOCATION(_\\w+)?|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MAP_IMPORTED_CONFIG_\\w+|NO_SONAME|OSX_ARCHITECTURES(_\\w+)?|OUTPUT_NAME(_\\w+)?|PDB_NAME(_\\w+)?|POST_INSTALL_SCRIPT|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE|PRIVATE_HEADER|PROJECT_LABEL|PUBLIC|PUBLIC_HEADER|RESOURCE|RULE_LAUNCH_(COMPILE|CUSTOM|LINK)|RUNTIME_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|SKIP_BUILD_RPATH|SOURCES|SOVERSION|STATIC_LIBRARY_FLAGS(_\\w+)?|SUFFIX|TYPE|VERSION|VS_DOTNET_REFERENCES|VS_GLOBAL_(\\w+|KEYWORD|PROJECT_TYPES)|VS_KEYWORD|VS_SCC_(AUXPATH|LOCALPATH|PROJECTNAME|PROVIDER)|VS_WINRT_EXTENSIONS|VS_WINRT_REFERENCES|WIN32_EXECUTABLE|XCODE_ATTRIBUTE_\\w+)\\b", - "name": "entity.source.cmake" - }, - { - "comment": "Escaped Strings", - "begin": "\\\\\"", - "end": "\\\\\"", - "name": "string.source.cmake", - "patterns": [ - { - "match": "\\\\(.|$)", - "name": "constant.character.escape" - } - ] - }, - { - "comment": "Normal Strings", - "begin": "\"", - "end": "\"", - "name": "string.source.cmake", - "patterns": [ - { - "match": "\\\\(.|$)", - "name": "constant.character.escape" - } - ] - }, - { - "comment": "Derecated keyword", - "match": "\\bBUILD_NAME\\b", - "name": "invalid.deprecated.source.cmake" - }, - { - "comment": "Compiler Flags", - "match": "\\b(?i:(CMAKE_)?(CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\\b", - "name": "variable.source.cmake" - } - ], - "repository": {}, - "scopeName": "source.cmake", - "uuid": "7aed2d59-22d9-41c8-ba9e-4f178191e380" -} diff --git a/lib/grammars/cobol.tmLanguage.json b/lib/grammars/cobol.tmLanguage.json deleted file mode 100644 index 608dcbb..0000000 --- a/lib/grammars/cobol.tmLanguage.json +++ /dev/null @@ -1,1121 +0,0 @@ -{ - "_copyright": "The MIT License (MIT)\nCopyright (c) 2015-2022 spgennard\nSource: https://github.com/spgennard/vscode_cobol/blob/main/syntaxes/COBOL.tmLanguage.json", - "$schema": "https://raw.githubusercontent.com/spgennard/vscode_cobol/main/schemas/tmlanguage.json", - "fileTypes": [ - "ccp", - "scbl", - "cobol", - "cbl", - "cblle", - "cblsrce", - "cblcpy", - "lks", - "pdv", - "cpy", - "copybook", - "cobcopy", - "fd", - "sel", - "scb", - "scbl", - "sqlcblle", - "cob", - "dds", - "def", - "src", - "ss", - "wks", - "bib", - "pco" - ], - "name": "cobol", - "patterns": [ - { - "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)", - "name": "token.info-token.cobol" - }, - { - "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)", - "captures": { - "1": { - "name": "constant.numeric.cobol" - }, - "2": { - "name": "comment.line.cobol.newpage" - } - } - }, - { - "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)", - "captures": { - "1": { - "name": "constant.numeric.cobol" - }, - "2": { - "name": "comment.line.cobol.fixed" - } - } - }, - { - "match": "(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)", - "captures": { - "1": { - "name": "constant.numeric.cobol" - }, - "2": { - "name": "comment.line.cobol.newpage" - } - } - }, - { - "match": "^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$", - "name": "constant.numeric.cobol" - }, - { - "match": "(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)", - "captures": { - "1": { - "name": "constant.numeric.cobol" - }, - "2": { - "name": "comment.line.cobol.fixed" - } - } - }, - { - "match": "(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)", - "captures": { - "1": { - "name": "constant.cobol" - }, - "2": { - "name": "comment.line.cobol.fixed" - } - } - }, - { - "match": "^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)", - "captures": { - "1": { - "name": "constant.numeric.cobol" - }, - "2": { - "name": "variable.other.constant" - } - } - }, - { - "match": "^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))", - "captures": { - "1": { - "name": "constant.numeric.cobol" - }, - "2": { - "name": "variable.other.constant" - }, - "3": { - "name": "keyword.identifers.cobol" - } - } - }, - { - "match": "(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)", - "captures": { - "1": { - "name": "constant.cobol" - }, - "2": { - "name": "comment.line.cobol.newpage" - } - } - }, - { - "match": "^\\*.*$", - "name": "comment.line.cobol.fixed" - }, - { - "match": "((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)", - "captures": { - "1": { - "name": "keyword.control.directive.conditional.cobol" - }, - "2": { - "name": "entity.name.function.preprocessor.cobol" - }, - "3": { - "name": "entity.name.function.cobol" - }, - "4": { - "name": "keyword.control.directive.conditional.cobol" - } - } - }, - { - "match": "((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))", - "captures": { - "1": { - "name": "entity.name.function.preprocessor.cobol" - }, - "2": { - "name": "storage.modifier.import.cobol" - }, - "3": { - "name": "punctuation.begin.bracket.round.cobol" - }, - "4": { - "name": "string.quoted.other.cobol" - }, - "5": { - "name": "punctuation.end.bracket.round.cobol" - } - } - }, - { - "match": "((?i:\\$\\s*set\\s+)(ilusing)(\")(.*)(\"))", - "captures": { - "1": { - "name": "entity.name.function.preprocessor.cobol" - }, - "2": { - "name": "storage.modifier.import.cobol" - }, - "3": { - "name": "punctuation.definition.string.begin.cobol" - }, - "4": { - "name": "string.quoted.other.cobol" - }, - "5": { - "name": "punctuation.definition.string.begin.cobol" - } - } - }, - { - "match": "((?i:\\$set))\\s+(\\w+)\\s*(\")(\\w*)(\")", - "captures": { - "1": { - "name": "keyword.control.directive.conditional.cobol" - }, - "2": { - "name": "entity.name.function.preprocessor.cobol" - }, - "3": { - "name": "punctuation.definition.string.begin.cobol" - }, - "4": { - "name": "string.quoted.other.cobol" - }, - "5": { - "name": "punctuation.definition.string.begin.cobol" - } - } - }, - { - "match": "((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))", - "captures": { - "1": { - "name": "keyword.control.directive.conditional.cobol" - }, - "2": { - "name": "entity.name.function.preprocessor.cobol" - }, - "3": { - "name": "punctuation.begin.bracket.round.cobol" - }, - "4": { - "name": "string.quoted.other.cobol" - }, - "5": { - "name": "punctuation.end.bracket.round.cobol" - } - } - }, - { - "match": "(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$", - "captures": { - "0": { - "name": "keyword.control.directive.conditional.cobol" - }, - "1": { - "name": "invalid.illegal.directive" - }, - "2": { - "name": "comment.line.set.cobol" - } - } - }, - { - "match": "(\\$region|\\$end-region)(.*$)", - "captures": { - "1": { - "name": "keyword.control.directive.cobol" - }, - "2": { - "name": "entity.other.attribute-name.preprocessor.cobol" - } - } - }, - { - "begin": "\\$(?i:doc)(.*$)", - "end": "\\$(?i:end-doc)(.*$)", - "name": "invalid.illegal.iscobol" - }, - { - "match": ">>\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$", - "name": "invalid.illegal.meta.preprocessor.cobolit" - }, - { - "match": "((((>>|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))", - "captures": { - "1": { - "name": "keyword.control.directive.conditional.cobol" - }, - "2": { - "name": "entity.name.function.preprocessor.cobol" - }, - "3": { - "name": "entity.name.function.preprocessor.cobol" - } - } - }, - { - "match": "(\\*>)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)", - "captures": { - "1": { - "name": "comment.line.scantoken.cobol" - }, - "2": { - "name": "keyword.cobol" - }, - "3": { - "name": "string.cobol" - } - } - }, - { - "match": "(\\*>.*$)", - "name": "comment.line.modern" - }, - { - "match": "(>>.*)$", - "name": "strong comment.line.set.acucobol" - }, - { - "match": "([nNuU][xX]|[hHxX])'\\h*'", - "name": "constant.numeric.integer.hexadecimal.cobol" - }, - { - "match": "([nNuU][xX]|[hHxX])'.*'", - "name": "invalid.illegal.hexadecimal.cobol" - }, - { - "match": "([nNuU][xX]|[hHxX])\"\\h*\"", - "name": "constant.numeric.integer.hexadecimal.cobol" - }, - { - "match": "([nNuU][xX]|[hHxX])\".*\"", - "name": "invalid.illegal.hexadecimal.cobol" - }, - { - "match": "[bB]\"[0-1]\"", - "name": "constant.numeric.integer.boolean.cobol" - }, - { - "match": "[bB]'[0-1]'", - "name": "constant.numeric.integer.boolean.cobol" - }, - { - "match": "[oO]\"[0-7]*\"", - "name": "constant.numeric.integer.octal.cobol" - }, - { - "match": "[oO]\".*\"", - "name": "invalid.illegal.octal.cobol" - }, - { - "match": "(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)", - "name": "meta.symbol.cobol.forced" - }, - { - "begin": "((?<![-_a-zA-Z0-9()-])(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(\\.|$))", - "beginCaptures": { - "0": { - "name": "keyword.identifiers.cobol" - } - }, - "patterns": [ - { - "match": "(^[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ])", - "name": "constant.numeric.cobol" - } - ], - "name": "comment.block.cobol.remark", - "end": "(?=((?<![-_])(?i:remarks|author|date-written|source-computer|object-computer|installation|date-compiled|special-names|security|environment\\s+division|data\\s+division|working-storage\\s+section|input-output\\s+section|linkage\\s+section|procedure\\s+division|local-storage\\s+section)|^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*]\\*.*$|^\\+$))" - }, - { - "match": "(?<=(\\(|\\[))((\\-\\+)*\\s*[0-9 ,\\.\\+\\-\\*\\/]+)(?=(\\)|\\]))", - "name": "constant.numeric.cobol", - "captures": { - "1": { - "name": "keyword.start.bracket.cobol" - }, - "2": { - "name": "constant.numeric.cobol" - }, - "3": { - "name": "keyword.end.bracket.cobol" - } - }, - "comment": "simple numerics in () and []" - }, - { - "include": "#number-complex-constant" - }, - { - "include": "#number-simple-constant" - }, - { - "match": "(?<![-_])(?i:true|false|null|nulls)(?![0-9A-Za-z_-])", - "name": "constant.language.cobol" - }, - { - "match": "(?<![-_])(?i:zeroes|alphabetic-lower|alphabetic-upper|alphanumeric-edited|alphabetic|alphabet|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\s+|\\.|,|\\))", - "name": "constant.language.figurative.cobol" - }, - { - "begin": "(?i:exec\\s+sqlims|exec\\s+sql)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.sql", - "patterns": [ - { - "match": "(^\\s*\\*.*)$", - "name": "comment.line.sql" - }, - { - "match": "(\\:([0-9a-zA-Z\\-_])*)", - "name": "variable.cobol" - }, - { - "include": "source.sql" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "begin": "(?i:exec\\s+cics)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.cics", - "patterns": [ - { - "match": "(\\()", - "name": "meta.symbol.cobol" - }, - { - "include": "#cics-keywords" - }, - { - "include": "#string-double-quoted-constant" - }, - { - "include": "#string-quoted-constant" - }, - { - "include": "#number-complex-constant" - }, - { - "include": "#number-simple-constant" - }, - { - "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))", - "name": "variable.cobol" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "begin": "(?i:exec\\s+dli)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.dli", - "patterns": [ - { - "match": "(\\()", - "name": "meta.symbol.cobol" - }, - { - "include": "#dli-keywords" - }, - { - "include": "#string-double-quoted-constant" - }, - { - "include": "#string-quoted-constant" - }, - { - "include": "#number-complex-constant" - }, - { - "include": "#number-simple-constant" - }, - { - "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))", - "name": "variable.cobol" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "begin": "(?i:exec\\s+sqlims)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.sql", - "patterns": [ - { - "match": "(\\:([a-zA-Z\\-])*)", - "name": "variable.cobol" - }, - { - "include": "source.sql" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "begin": "(?i:exec\\s+ado)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.sql", - "patterns": [ - { - "match": "(\\:([a-zA-Z\\-])*)", - "name": "variable.cobol" - }, - { - "include": "source.sql" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "begin": "(?i:exec\\s+html)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.html", - "patterns": [ - { - "include": "text.html.basic" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "begin": "(?i:exec\\s+java)", - "name": "keyword.verb.cobol", - "contentName": "meta.embedded.block.java", - "patterns": [ - { - "include": "source.java" - } - ], - "end": "(?i:end\\-exec)" - }, - { - "match": "(\")(CBL_.*)(\")", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.cobol" - }, - "2": { - "name": "support.function.cobol" - }, - "3": { - "name": "punctuation.definition.string.end.cobol" - } - } - }, - { - "match": "(\")(PC_.*)(\")", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.cobol" - }, - "2": { - "name": "support.function.cobol" - }, - "3": { - "name": "punctuation.definition.string.end.cobol" - } - } - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "(\"|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.double.cobol" - }, - { - "match": "(\\')(CBL_.*)(\\')", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.cobol" - }, - "2": { - "name": "support.function.cobol" - }, - "3": { - "name": "punctuation.definition.string.end.cobol" - } - } - }, - { - "match": "(\\')(PC_.*)(\\')", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.cobol" - }, - "2": { - "name": "support.function.cobol" - }, - "3": { - "name": "punctuation.definition.string.end.cobol" - } - } - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "('|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.single.cobol" - }, - { - "begin": "(?<![\\-\\w])[gGzZ]\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "(\"|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.double.cobol" - }, - { - "begin": "(?<![\\-\\w])[gGzZ]'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.single.cobol" - }, - { - "begin": "(?<![\\-\\w])[gGnN]\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "(\"|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.double.cobol" - }, - { - "begin": "(?<![\\-\\w])[gGnN]'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.single.cobol" - }, - { - "begin": "(?<![\\-\\w])[uU]\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "(\"|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.utf8.double.cobol" - }, - { - "begin": "(?<![\\-\\w])[uU]'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.utf8.single.cobol" - }, - { - "match": "(?<![-_])(?i:id\\s+division|identification\\s+division|identification|id|property-id|getter|setter|entry|function-id|end\\s+attribute|attribute|interface-id|indexer-id|factory|ctl|class-control|options|environment\\s+division|environment-name|environment-value|environment|configuration\\s+section|configuration|decimal-point\\s+is|decimal-point|console\\s+is|call-convention|special-names|cursor\\s+is|update|picture\\s+symbol|currency\\s+sign|currency|repository|input-output\\s+section|input-output|file\\s+section|file-control|select|optional|i-o-control|data\\s+division|working-storage\\s+section|working-storage|section|local-storage|linkage\\s+section|linkage|communication|report|screen\\s+section|object-storage|object\\s+section|class-object|fd|rd|cd|sd|printing|procedure\\s+division|procedure|division|references|debugging|end\\s+declaratives|declaratives|end\\s+static|end\\s+factory|end\\s+class-object|based-storage|size|font|national-edited|national)(?![0-9A-Za-z_-])", - "name": "keyword.identifiers.cobol" - }, - { - "match": "(?<![-_])((?i:valuetype-id|operator-id|method-id|method|property-id|attribute-id|enum-id|iterator-id|class-id|program-id|operator-id|end\\s+program|end\\s+valuetype|extension))[\\.]*[\\s]+([a-zA-Z0-9_-]*)", - "captures": { - "1": { - "name": "keyword.verb.cobol" - }, - "2": { - "name": "entity.name.function.cobol" - } - } - }, - { - "match": "(?<![-_])(?i:implements|inherits|constraints|constrain)(?=\\s|\\.)", - "name": "keyword.verb.cobol" - }, - { - "match": "(?<![-_])(?i:end\\s+enum|end\\s+interface|end\\s+class|end\\s+property|end\\s+method|end\\s+object|end\\s+iterator|end\\s+function|end\\s+operator|end\\s+program|end\\s+indexer|create|reset|instance|delegate|end-delegate|delegate-id|declare|exception-object|as|stop\\s+iterator|stop\\s+run|stop)(?=\\s|\\.|,|\\))", - "name": "keyword.identifiers.cobol" - }, - { - "match": "\\s+(?i:attach\\s+method|attach\\s+del|attach|detach\\s+del|detach\\s+method|detach|method|del)(?=\\s|\\.|$)", - "name": "keyword.identifiers.cobol" - }, - { - "match": "\\s+(?i:sync\\s+(?i:on))(?=\\s|\\.)", - "name": "keyword.other.sync.cobol" - }, - { - "match": "\\s+(?i:try|finally|catch|end-try|throw)(?=\\s|\\.|$)", - "name": "keyword.control.catch-exception.cobol" - }, - { - "match": "(?<![-_])(?i:select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|chaining|yielding|\\+\\+include|copy|replace)(?=\\s)", - "name": "keyword.otherverb.cobol" - }, - { - "match": "(?i:dynamic)\\s+(?i:length)(?=\\s|\\.)", - "name": "storage.type.dynamiclength.cobol" - }, - { - "match": "(?<![-_])(?i:assign|external|prototype|organization|organisation|indexed|column|plus|line\\*s*sequential|sequential|access|dynamic|relative|label|block|contains|standard|records|record\\s+key|record|is|alternate|duplicates|reel|tape|terminal|disk\\sfilename|disk|disc|recording\\smode|mode|random)(?=\\s|\\.)", - "name": "keyword.identifers.cobol" - }, - { - "match": "(?<![-_])(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|substitute-case|substitute|seconds-from-formatted-time|seconds-past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)(?=\\s|\\.|\\(|\\))", - "name": "support.function.cobol" - }, - { - "match": "(?<![-_])(?i:DFHRESP|DFHVALUE)(\\s*\\(\\s*)([a-zA-Z]*)(\\s*\\))", - "captures": { - "0": { - "name": "support.function.cics.cobol" - }, - "1": { - "name": "punctuation.definition.string.end.cobol" - }, - "2": { - "name": "keyword.identifers.cobol" - }, - "3": { - "name": "punctuation.definition.string.end.cobol" - } - } - }, - { - "match": "(?<![-_])(?i:function)(?=\\s|\\.)", - "name": "keyword.verb.cobol" - }, - { - "match": "(?<![-_])(?i:end-accept|end-add|end-sync|end-compute|end-delete|end-display|end-divide|end-set|end-multiply|end-of-page|end-read|end-receive|end-return|end-rewrite|end-search|end-start|end-string|end-subtract|end-unstring|end-write|program|class|interface|enum|interface)(?![0-9A-Za-z_-])", - "name": "keyword.verb.cobol" - }, - { - "match": "(?<![-_])(?:by value|by reference|by content|property-value)(?![0-9A-Za-z_-])", - "name": "keyword.other.cobol" - }, - { - "match": "(?<![-_])(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|source|control|full|required|of|input|output|i-o|extend|file|error|exception|overflow|goto|off|on|proceed|procedures|procedure|through|invalid|data|normal|eop|returning|to|for|giving|into|by|params|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|common|initial|resident|reference|content|are\\sstandard|are|renames|like|format\\stime|values|omitted|value|constant|ascending|descending|key|retry|until|varying|with|no|advancing|up|down|uccurs|ignore\\s+lock|lock|length|delimited|count|delimiter|redefines|from\\s+console|from\\s+command-line|from\\s+user\\s+name|from\\s+day\\s+yyyyddd|from\\s+day|from\\s+time|from\\s+day-of-week|from\\s+escape|from\\s+day\\s+yyyyddd|from\\s+date\\s+yyyymmdd|from\\s+date|from|raising|crt\\s+status|status|class|upon\\s+crt|upon|lines|columns|step|linage|auto|line|position|col|reports|code-set|reporting|arithmetic|localize|program|class|interface|in|at\\s+end|page|name)(?![0-9A-Za-z_-])", - "name": "keyword.identifers.cobol" - }, - { - "match": "(?<![-_])(?i:type|new)\\s+([a-zA-Z][a-zA-Z0-9\\$\\-\\._]*|[a-zA-Z])(?=\\.$)", - "captures": { - "0": { - "name": "keyword.verb.cobol" - }, - "1": { - "name": "storage.type.cobol" - } - }, - "comment": "type ssss " - }, - { - "match": "(?<![-_])(?i:string)(?=\\s+value|\\.)", - "name": "storage.type.cobol" - }, - { - "match": "(?<![-_])(?i:bit|byte|binary-char|binary-char-unsigned|binary-short|binary-short-unsigned|binary.long|binary-c-long|binary-long-unsigned|binary-long|binary-double|binary-double-unsigned|float-short|float-extended|float-long|bit|condition-value|characters|character\\s+type|character|comma|crt|decimal|object\\+sreference|object-reference|object|list|dictionary|unsigned)(?=\\s|\\.|,|\\]|\\[)", - "name": "storage.type.cobol" - }, - { - "match": "(operator-id\\s+[+\\-\\*\\/])", - "name": "keyword.operator-id.cobol", - "captures": { - "1": { - "name": "keyword.other.verb.cobol" - }, - "2": { - "name": "meta.symbol.cobol" - } - }, - "comment": "operator-id ssss " - }, - { - "match": "(?i:self)(\\:\\:)([0-9a-zA-Z_\\-\\.]*)(?=\\.$)", - "captures": { - "1": { - "name": "punctuation.accessor.cobol.b3" - }, - "2": { - "name": "entity.name.function.b3" - } - }, - "comment": " ::.. " - }, - { - "match": "(\\:\\:)([0-9a-zA-Z_\\-\\.]*)", - "captures": { - "1": { - "name": "punctuation.accessor.cobol" - }, - "2": { - "name": "entity.name.function.cobol" - } - }, - "comment": " ::.. " - }, - { - "match": "(?<![-_])(?i:type)\\s+([0-9a-zA-Z\\.]*)", - "captures": { - "0": { - "name": "keyword.verb.cobol.aa" - }, - "1": { - "name": "storage.type.cobol.bb" - } - } - }, - { - "match": "(?<![-_])(?i:if|else|end-if|exit\\s+iterator|exit\\s+program|exit\\s+method|evaluate|end-evaluate|exit\\s+perform|perform|end-perform|when\\s+other|when|continue|call|end-call|chain|end-chain|invoke|end\\s+invoke|go\\s+to|go|sort|merge|use|xml|parse|stop\\s+run|goback\\s+returning|goback|raise|exit\\s+function|exit\\sparagraph|await)(?![0-9A-Za-z_-])", - "name": "keyword.control.cobol" - }, - { - "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)[-|+]", - "captures": { - "1": { - "name": "storage.type.picture10.cobol" - }, - "2": { - "name": "constant.numeric.cobol" - }, - "3": { - "name": "storage.type.picture10.cobol" - }, - "4": { - "name": "constant.numeric.cobol" - } - } - }, - { - "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)", - "captures": { - "1": { - "name": "storage.type.picture9.cobol" - }, - "2": { - "name": "constant.numeric.cobol" - }, - "3": { - "name": "storage.type.picture9.cobol" - }, - "4": { - "name": "constant.numeric.cobol" - } - } - }, - { - "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV\\.][-+s\\*$09aAbBsSnNxXuUzZ/,]*[0-9\\.()])*", - "captures": { - "1": { - "name": "storage.type.picture8.cobol" - }, - "2": { - "name": "constant.numeric.cobol" - }, - "3": { - "name": "storage.type.picture8.cobol" - } - } - }, - { - "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*", - "name": "storage.type.picture7.cobol" - }, - { - "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*", - "name": "storage.type.picture6.cobol" - }, - { - "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxuUXzZ/,.]*)\\(([0-9]*)\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*", - "captures": { - "1": { - "name": "storage.type.picture5.cobol" - }, - "2": { - "name": "constant.numeric.cobol" - } - } - }, - { - "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpNNxXuUzZ/,.]*\\([0-9]*\\)", - "name": "storage.type.picture4.cobol" - }, - { - "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\\([0-9]*\\)", - "name": "storage.type.picture3.cobol" - }, - { - "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*", - "name": "storage.type.picture2.cobol" - }, - { - "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+\\*$9aAbBsSnpPNxXuUzZ/,.vV]*", - "name": "storage.type.picture1.cobol" - }, - { - "match": "((?<![-_])(?i:binary|computational-4|comp-4|computational-5|comp-5))\\(([0-9]*)\\)", - "captures": { - "1": { - "name": "invalid.illegal.keyword.verb.acu.cobol" - }, - "2": { - "name": "invalid.illegal.constant.numeric.integer" - } - } - }, - { - "match": "(?i:cblt-x1-compx-const|cblt-x2-compx-const|cblt-x4-compx-const|cblt-alphanum-const|cblt-x9-compx|cblt-x8-compx|cblt-x8-comp5|cblt-x4-compx|cblt-x4-comp5|cblt-x2-compx|cblt-x2-comp5|cblt-x1-compx|cblt-x1-comp5|cblt-x1|cblt-vfile-status|cblt-vfile-handle|cblt-sx8-comp5|cblt-sx4-comp5|cblt-sx2-comp5|cblt-sx1-comp5|cblt-subsys-params|cblt-splitjoin-buf|cblt-screen-position|cblt-rtncode|cblt-request-context|cblt-reqhand-service-info|cblt-reqhand-service-funcs|cblt-reqhand-response|cblt-reqhand-funcs|cblt-prog-info-params|cblt-prog-info-arg-info|cblt-printer-properties|cblt-printer-name|cblt-printer-info|cblt-printer-default|cblt-ppointer|cblt-pointer|cblt-os-ssize|cblt-os-size|cblt-os-offset|cblt-os-info-params|cblt-os-flags|cblt-node-name|cblt-nls-msg-params|cblt-nls-msg-number-pair|cblt-nls-msg-ins-struct|cblt-nls-msg-buffer|cblt-mouse-shape|cblt-mouse-rect|cblt-mouse-pos|cblt-mouse-event|cblt-mem-validate-param|cblt-idp-exit-service-funcs|cblt-idp-exit-info|cblt-HWND|cblt-HINSTANCE|cblt-get-scr-line-draw-buffer|cblt-get-scr-graphics-buffer|cblt-generic-attr-value|cblt-generic-attr-rgb-values|cblt-generic-attr-information|cblt-file-status|cblt-fileexist-buf|cblt-exit-params|cblt-exit-info-params|cblt-cancel-proc-params|cblt-bytestream-handle|cblt-alphanum)", - "name": "support.function.cbltypes.cobol" - }, - { - "match": "(?<![-_])(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|group-usage|usage\\sis\\sdisplay|usage\\sis\\sfont|usage\\s+display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|display\\s+blank\\s+when|blank\\s+when|blank\\s+screen|blank|usage\\sis|is\\spartial|usage|justified|just|right|signed|trailing\\s+separate|sign|seperate|sql)(?=\\s|\\.|\\))", - "name": "storage.type.picture.cobol" - }, - { - "match": "(?i:byte-length)\\s+[0-9]+", - "name": "storage.type.length.cobol" - }, - { - "match": "(?<![-_])(?i:accept|add|address|allocate|cancel|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|evaluate|exhibit|named|exit|free|generate|go\\s+to|initialize\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\s+run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|purge|ready|read|kept|receive|release|return|rewrite|rounded|rollback|search|send|sort|collating\\s+sequence|collating|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?![0-9A-Za-z_-])", - "name": "keyword.verb.cobol" - }, - { - "match": "(?<![-_])(?i:thread-local)(?![0-9A-Za-z_-])", - "name": "keyword.verb.cobol" - }, - { - "match": "(\\s+|^)(?i:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)(?![0-9A-Za-z_-])", - "name": "keyword.screens.cobol" - }, - { - "match": "(\\s+|^)(?i:bold|high|lowlight|low|standard|background-high|background-low|background-standard)(?![0-9A-Za-z_-])", - "name": "invalid.illegal.screens.acu.cobol" - }, - { - "match": "(?<![-_])(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property|async-void|async-value|async)(?=\\s|\\.)", - "name": "storage.modifier.cobol" - }, - { - "match": "=|<|>|<=|>=|<>|\\+|\\-|\\*|\\/|(?<![-_])(?i:b-and|b-or|b-xor|b-exor|b-not|b-left|b-right|and|or|equals|equal|greater\\s+than|less\\s+than|greater)(?![0-9A-Za-z_-])", - "name": "keyword.operator.cobol" - }, - { - "match": "(?i:not\\s+at\\s+end)(?![0-9A-Za-z_-])", - "name": "keyword.verb.cobol" - }, - { - "match": "(?<![-_])(?i:not)(?![0-9A-Za-z_-])", - "name": "keyword.operator.cobol" - }, - { - "match": "(?<![-_])(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|sysprint|syslist|syslst|printer|syserr|console|c01|c02|c03|c04|c05|c06|c07|c08|c09|c10|c11|c12|formfeed|switch-0|switch-10|switch-11|switch-12|switch-13|switch-13|switch-14|switch-15|switch-1|switch-2|switch-3|switch-4|switch-5|switch-6|switch-7|switch-8|switch-9|sw0|sw11|sw12|sw13|sw14|sw15|sw1|sw2|sw3|sw4|sw5|sw6|sw7|sw8|sw9|sw10|lc_all|lc_collate|lc_ctype|lc_messages|lc_monetary|lc_numeric|lc_time|ucs-4|utf-8|utf-16)(?![0-9A-Za-z_-])", - "name": "support.type.cobol" - }, - { - "match": "(?<![-_])(?i:end-xml|processing.*procedure|xml\\sparse|xml|xml-information|xml-text|xml-schemal|xml-declaration)(?![0-9A-Za-z_-])", - "name": "keyword.xml.cobol" - }, - { - "match": "(?<![-_])(?i:json\\s+generate|json|end-json|name\\sof)(?![0-9A-Za-z_-])", - "name": "keyword.json.cobol" - }, - { - "match": "(?<![-_])(?i:modify|inquire|tab|title|event|center|label-offset|cell|help-id|cells|push-button|radio-button|page-layout-screen|entry-field|list-box|label|default-font|id|no-tab|unsorted|color|height|width|bind|thread|erase|modeless|scroll|system|menu|title-bar|wrap|destroy|resizeable|user-gray|large-font|newline|3-d|data-columns|display-columns|alignment|separation|cursor-frame-width|divider-color|drag-color|heading-color|heading-divider-color|num-rows|record-data|tiled-headings|vpadding|centered-headings|column-headings|self-act|cancel-button|vscroll|report-composer|clsid|primary-interface|active-x-control|default-interface|default-source|auto-minimize|auto-resize|resource|engraved|initial-state|frame|acuactivexcontrol|activex-res|grid|box|message|namespace|class-name|module|constructor|version|strong|culture|method|handle|exception-value|read-only|dividers|graphical|indexed|termination-value|permanent|boxed|visible|centered|record-position|convert)(?=\\s|\\.|,|;|$)", - "name": "invalid.illegal.acu.cobol" - }, - { - "match": "(?<![-_])(?i:actual|auto|automatic|based-storage|complex|connect|contained|core-index|db-access-control-key|db-data-name|db-exception|db-record-name|db-set-name|db-status|dead-lock|endcobol|end-disable|end-enable|end-send|end-transceive|eos|file-limits|file-limit|formatted|sort-status|usage-mode)(?=\\s|\\.|,|;|$)", - "name": "invalid.illegal.netcobol.cobol" - }, - { - "match": "(?<![-_])(?i:System-Info|Terminal-Info)(?![0-9A-Za-z_-])", - "name": "support.type.cobol.acu strong" - }, - { - "match": "(?<![-_])(?i:alter)(?=\\s|\\.)", - "name": "invalid.illegal.cobol" - }, - { - "match": "(?<![-_])(?i:apply|areas|area|clock-units|code|com-reg|controls|dbcs|destination|detail|display-1|ending|every|insert|kanjikey|last|left|less|limits|limit|memory|metaclass|modules|more-labels|multiple|native_binary|native|negative|number|numeric-edited|other|padding|password|pf|ph|postive|processing|queue|recording|reload|removal|rerun|reserve|reserved|rewind|segment-limit|segment|separate|sequence|skip1|skip2|skip3|standard-1|standard-2|sub-queue-1|sub-queue-2|sub-queue-3|sum|symbolic|synchronized|sync|table|test|text|than|top|trace|trailing|unit|words|write-only|at|basis|beginning|bottom|cbl|cf|ch|de|positive|egcs|egi|emi|end|reversed|rf|rh|run|same|order|heading|esi)(?![0-9A-Za-z_-])", - "name": "keyword.ibmreserved.cobol" - }, - { - "match": "(?<![-_])(?i:active-class|aligned|anycase|boolean|cols|col|condition|ec|eo|system-default|function-pointer)(?![0-9A-Za-z_-])", - "name": "strong keyword.potential.reserved.cobol" - }, - { - "match": "(?i:filler)", - "name": "keyword.filler.cobol" - }, - { - "match": "(?<![-_])(?i:address-of|date|day-of-week|day|debug-content|debug-item|debug-line|debug-item|debug-sub-1|debug-sub-2|debug-sub-3|shift-in|shift-out|sort-control|sort-core-size|sort-file-size|sort-message|sort-return|sort-mode-size|sort-return|tally|time|when-compiled|line-counter|page-counter|return-code|linage-counter|debug-line|debug-name|debug-contents|json-code|json-status|xml-code|xml-event|xml-information|xml-namespace-prefix|xml-namespace|xml-nnamespace-repfix|xml-nnamespace|xml-ntext|jnienvptr)(?![0-9A-Za-z_-])", - "name": "variable.language" - }, - { - "match": "(?<![-_])(?i:shortint1|shortint2|shortint3|shortint4|shortint5|shortint6|shortint7|longint1|longint2|longint3|longint4|longint5|longint6|bigint1|bigint2|blob-locator|clob-locator|dbclob-locator|dbclob-file|blob-file|clob-file|clob|dbclob|blob|varbinary|long-varbinary|time-record|timestamp-record|timestamp-offset-record|timestamp-offset|timestamp|rowid|xml|long-varchar)(?=\\s|\\.|\\)|\\()", - "name": "storage.type.sql.picture.cobol" - }, - { - "match": "(?<![-_])(?i:self)", - "name": "keyword.other.self.cobol" - }, - { - "match": "(?<![-_])(?i:super)", - "name": "keyword.other.super.cobol" - }, - { - "match": "(^[0-9][0-9][0-9][0-9][0-9][0-9])", - "name": "constant.numeric.cobol" - }, - { - "match": "(\\()([0-9]*)(:)([0-9]*)(\\))", - "captures": { - "1": { - "name": "meta.symbol.cobol" - }, - "2": { - "name": "constant.numeric.integer" - }, - "3": { - "name": "meta.symbol.cobol" - }, - "4": { - "name": "constant.numeric.integer" - }, - "5": { - "name": "meta.symbol.cobol" - } - } - }, - { - "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))", - "name": "meta.symbol.cobol" - } - ], - "repository": { - "cics-keywords": { - "match": "(?<![\\-\\w])(?i:abcode|abdump|abend|abort|abprogram|abstime|accum|acee|acqactivity|acqprocess|acquactivity|action|activity|activityid|actpartn|add|address|after|aid|alarm|all|allocate|alter|alternate|altscrnht|altscrnwd|and|anykey|aplkybd|apltext|applid|as|asa|asis|asktime|asraintrpt|asrakey|asrapsw|asraregs|asraspc|asrastg|assign|asynchronous|at|attach|attachid|attributes|authenticate|autopage|auxiliary|base64|basicauth|below|bif|binary|bit|bodycharset|bookmark|brdata|brdatalength|brexit|bridge|browsetoken|btrans|buffer|build|burgeability|caddrlength|cancel|card|cbuff|ccsid|certificate|change|changetime|channel|char|characterset|check|chunkend|chunking|chunkno|chunkyes|cicsdatakey|ciphers|class|clear|cliconvert|client|clientaddr|clientaddrnu|clientconv|clientname|clntaddr6nu|clntipfamily|close|closestatus|clrpartn|cmdsec|cnamelength|cnotcompl|codepage|color|commarea|commonname|commonnamlen|comparemax|comparemin|complete|composite|compstatus|condition|confirm|confirmation|connect|consistent|console|container|contexttype|control|convdata|converse|convertst|converttime|convid|copy|counter|country|countrylen|create|critical|ctlchar|current|cursor|cwa|cwaleng|data|data1|data2|datalength|datalenth|dataonly|datapointer|dataset|datastr|datatoxml|datatype|datcontainer|date|dateform|datesep|datestring|day|daycount|dayofmonth|dayofweek|dayofyear|days|daysleft|day-of-week|dcounter|ddmmyy|ddmmyyyy|debkey|debrec|debug-contents|debug-item|debug-line|debug-name|debug-sub-1|debug-sub-2|debug-sub-3|deedit|default|define|defresp|defscrnht|defscrnwd|delay|delete|deleteq|delimiter|deq|destcount|destid|destidleng|detail|detaillength|dfhresp|dfhvalue|digest|digesttype|disconnect|docdelete|docsize|docstatus|doctoken|document|ds3270|dsscs|dump|dumpcode|dumpid|duprec|ecaddr|ecblist|eib|elemname|elemnamelen|elemns|elemnslen|end|endactivity|endbr|endbrowse|endfile|endoutput|enq|enter|entry|entryname|eoc|eods|eprfield|eprfrom|eprinto|eprlength|eprset|eprtype|equal|erase|eraseaup|error|errterm|esmreason|esmresp|event|eventtype|eventual|ewasupp|exception|expect|expirytime|extds|external|extract|facility|facilitytokn|false|faultactlen|faultactor|faultcode|faultcodelen|faultcodestr|faultstring|faultstrlen|fci|fct|field|file|firestatus|flength|fmh|fmhparm|for|force|formattime|formfeed|formfield|free|freekb|freemain|from|fromactivity|fromccsid|fromchannel|fromcodepage|fromdoc|fromflength|fromlength|fromprocess|frset|fulldate|function|gchars|gcodes|gds|generic|get|getmain|getnext|gmmi|groupid|gtec|gteq|handle|head|header|hex|high-value|high-values|hilight|hold|honeom|host|hostcodepage|hostlength|hosttype|hours|httpheader|httpmethod|httprnum|httpversion|httpvnum|ignore|immediate|in|increment|initimg|initparm|initparmlen|inpartn|input|inputevent|inputmsg|inputmsglen|inquire|insert|integer|interval|into|intoccsid|intocodepage|invalidcount|invite|invmpsz|invoke|invokingprog|invpartn|invreq|issue|issuer|item|iutype|journalname|jtypeid|jusfirst|juslast|justify|katakana|keep|keylength|keynumber|l40|l64|l80|label|langinuse|languagecode|last|lastusetime|ldc|ldcmnem|ldcnum|leavekb|length|lengthlist|level|lightpen|linage-counter|line|lineaddr|line-counter|link|list|listlength|llid|load|locality|localitylen|logmessage|logmode|logonlogmode|logonmsg|low-value|low-values|luname|main|map|mapcolumn|mapfail|mapheight|mapline|maponly|mapped|mappingdev|mapset|mapwidth|massinsert|maxdatalen|maxflength|maximum|maxlength|maxlifetime|maxproclen|mcc|mediatype|message|messageid|metadata|metadatalen|method|methodlength|milliseconds|minimum|minutes|mmddyy|mmddyyyy|mode|modename|monitor|month|monthofyear|move|msr|msrcontrol|name|namelength|natlang|natlanginuse|netname|newpassword|newphrase|newphraselen|next|nexttransid|nleom|noautopage|nocc|nocheck|nocliconvert|noclose|nodata|node|nodocdelete|nodump|noedit|noflush|nohandle|noinconvert|none|nooutconert|noqueue|noquiesce|nosrvconvert|nosuspend|note|notpurgeable|notruncate|nowait|nscontainer|null|nulls|numciphers|numevents|numitems|numrec|numroutes|numsegments|numtab|of|oidcard|on|opclass|open|operation|operator|operid|operkeys|operpurge|opid|opsecurity|options|or|orgabcode|organization|organizatlen|orgunit|orgunitlen|outdescr|outline|outpartn|output|owner|pa1|pa2|pa3|page|pagenum|page-counter|paging|parse|partn|partner|partnfail|partnpage|partns|partnset|pass|passbk|password|passwordlen|path|pathlength|pct|pf1|pf10|pf11|pf12|pf13|pf14|pf15|pf16|pf17|pf18|pf19|pf2|pf20|pf21|pf22|pf23|pf24|pf3|pf4|pf5|pf6|pf7|pf8|pf9|pfxleng|phrase|phraselen|piplength|piplist|point|pool|pop|portnumber|portnumnu|post|ppt|predicate|prefix|prepare|princonvid|prinsysid|print|priority|privacy|process|processtype|proclength|procname|profile|program|protect|ps|punch|purge|purgeable|push|put|qname|query|queryparm|querystring|querystrlen|queue|quote|quotes|random|rba|rbn|rdatt|read|readnext|readprev|readq|reattach|receive|receiver|recfm|record|recordlen|recordlength|reduce|refparms|refparmslen|relatesindex|relatestype|relatesuri|release|remove|repeatable|repetable|replace|reply|replylength|reqid|requesttype|resclass|reset|resetbr|resid|residlength|resource|resp|resp2|ressec|restart|restype|result|resume|retain|retcode|retcord|retriece|retrieve|return|returnprog|return-code|rewind|rewrite|ridfld|role|rolelength|rollback|route|routecodes|rprocess|rresource|rrn|rtermid|rtransid|run|saddrlength|scheme|schemename|scope|scopelen|scrnht|scrnwd|seconds|security|segmentlist|send|sender|serialnum|serialnumlen|server|serveraddr|serveraddrnu|serverconv|servername|service|session|sesstoken|set|shared|shift-in|shift-out|sigdata|signal|signoff|signon|sit|snamelength|soapfault|sort-control|sort-core-size|sort-file-size|sort-message|sort-mode-size|sort-return|sosi|space|spaces|spoolclose|spoolopen|spoolread|spoolwrite|srvconvert|srvraddr6nu|srvripfamily|ssltype|start|startbr|startbrowse|startcode|state|statelen|stationid|status|statuscode|statuslen|statustext|storage|strfield|stringformat|subaddr|subcodelen|subcodestr|subevent|subevent1|subevent2|subevent3|subevent4|subevent5|subevent6|subevent7|subevent8|sum|suspend|suspstatus|symbol|symbollist|synchronous|synclevel|synconreturn|syncpoint|sysid|tables|tally|task|taskpriority|tcpip|tcpipservice|tct|tctua|tctualeng|td|tellerid|template|termcode|termid|terminal|termpriority|test|text|textkybd|textlength|textprint|time|timeout|timer|timesep|title|to|toactivity|tochannel|tocontainer|toflength|token|tolength|toprocess|trace|tracenum|trailer|tranpriority|transaction|transform|transid|trigger|trt|true|ts|twa|twaleng|type|typename|typenamelen|typens|typenslen|unattend|uncommitted|unescaped|unexpin|unlock|until|uow|update|uri|urimap|url|urllength|userdatakey|userid|username|usernamelen|userpriority|using|validation|value|valuelength|verify|versionlen|volume|volumeleng|wait|waitcics|web|when-compiled|wpmedia1|wpmedia2|wpmedia3|wpmedia4|wrap|write|writeq|wsacontext|wsaepr|xctl|xmlcontainer|xmltodata|xmltransform|xrba|year|yyddd|yyddmm|yymmdd|yyyyddd|yyyyddmm|yyyymmdd|zero|zeroes|zeros)(?![\\-\\w])", - "name": "keyword.verb.cics" - }, - "dli-keywords": { - "match": "(?<![\\-\\w])(?i:accept|chkp|deq|dlet|gnp|gn|gu|isrt|load|log|pos|query|refresh|repl|retrieve|rolb|roll|rols|schd|sets|setu|symchkp|term|xrst)(?![\\-\\w])", - "name": "keyword.verb.dli" - }, - "string-quoted-constant": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "('|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - }, - "name": "string.quoted.single.cobol" - }, - "string-double-quoted-constant": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cobol" - } - }, - "end": "(\"|$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cobol" - } - } - }, - "number-complex-constant": { - "match": "(\\-|\\+)?((([0-9]+(\\.[0-9]+))|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\s|\\.$|,|\\))", - "name": "constant.numeric.cobol" - }, - "number-simple-constant": { - "match": "(\\-|\\+)?([0-9]+)(?=\\s|\\.$|,|\\))", - "name": "constant.numeric.cobol" - } - }, - "scopeName": "source.cobol" -} diff --git a/lib/grammars/codeql.tmLanguage.json b/lib/grammars/codeql.tmLanguage.json deleted file mode 100644 index 4141b63..0000000 --- a/lib/grammars/codeql.tmLanguage.json +++ /dev/null @@ -1,1485 +0,0 @@ -{ - "name": "codeql", - "scopeName": "source.ql", - "fileTypes": ["ql", "qll"], - "uuid": "7F6926BF-1C6C-468A-A7AA-215EBAC86A4E", - "patterns": [ - { - "include": "#module-member" - } - ], - "repository": { - "id-character": { - "match": "(?x)[0-9A-Za-z_]" - }, - "end-of-id": { - "match": "(?x)(?!(?:[0-9A-Za-z_]))" - }, - "simple-id": { - "match": "(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" - }, - "lower-id": { - "match": "(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" - }, - "upper-id": { - "match": "(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" - }, - "at-lower-id": { - "match": "(?x)@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" - }, - "comment-start": { - "match": "(?x)// | /\\*" - }, - "whitespace-or-comment-start": { - "match": "(?x)\\s | $ | (?:// | /\\*)" - }, - "non-context-sensitive": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#literal" - }, - { - "include": "#operator-or-punctuation" - }, - { - "include": "#keyword" - } - ] - }, - "relational-operator": { - "match": "(?x)<=|<|>=|>", - "name": "keyword.operator.relational.ql" - }, - "comparison-operator": { - "match": "(?x)=|\\!\\=", - "name": "keyword.operator.comparison.ql" - }, - "arithmetic-operator": { - "match": "(?x)\\+|-|\\*|/|%", - "name": "keyword.operator.arithmetic.ql" - }, - "comma": { - "match": "(?x),", - "name": "punctuation.separator.comma.ql" - }, - "semicolon": { - "match": "(?x);", - "name": "punctuation.separator.statement.ql" - }, - "dot": { - "match": "(?x)\\.", - "name": "punctuation.accessor.ql" - }, - "dotdot": { - "match": "(?x)\\.\\.", - "name": "punctuation.operator.range.ql" - }, - "pipe": { - "match": "(?x)\\|", - "name": "punctuation.separator.pipe.ql" - }, - "open-paren": { - "match": "(?x)\\(", - "name": "punctuation.parenthesis.open.ql" - }, - "close-paren": { - "match": "(?x)\\)", - "name": "punctuation.parenthesis.close.ql" - }, - "open-brace": { - "match": "(?x)\\{", - "name": "punctuation.curlybrace.open.ql" - }, - "close-brace": { - "match": "(?x)\\}", - "name": "punctuation.curlybrace.close.ql" - }, - "open-bracket": { - "match": "(?x)\\[", - "name": "punctuation.squarebracket.open.ql" - }, - "close-bracket": { - "match": "(?x)\\]", - "name": "punctuation.squarebracket.close.ql" - }, - "operator-or-punctuation": { - "patterns": [ - { - "include": "#relational-operator" - }, - { - "include": "#comparison-operator" - }, - { - "include": "#arithmetic-operator" - }, - { - "include": "#comma" - }, - { - "include": "#semicolon" - }, - { - "include": "#dot" - }, - { - "include": "#dotdot" - }, - { - "include": "#pipe" - }, - { - "include": "#open-paren" - }, - { - "include": "#close-paren" - }, - { - "include": "#open-brace" - }, - { - "include": "#close-brace" - }, - { - "include": "#open-bracket" - }, - { - "include": "#close-bracket" - } - ] - }, - "dont-care": { - "match": "(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))", - "name": "variable.language.dont-care.ql" - }, - "and": { - "match": "(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.and.ql" - }, - "any": { - "match": "(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.quantifier.any.ql" - }, - "as": { - "match": "(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.as.ql" - }, - "asc": { - "match": "(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.order.asc.ql" - }, - "avg": { - "match": "(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.avg.ql" - }, - "boolean": { - "match": "(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.type.boolean.ql" - }, - "by": { - "match": "(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.order.by.ql" - }, - "class": { - "match": "(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.class.ql" - }, - "concat": { - "match": "(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.concat.ql" - }, - "count": { - "match": "(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.count.ql" - }, - "date": { - "match": "(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.type.date.ql" - }, - "desc": { - "match": "(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.order.desc.ql" - }, - "else": { - "match": "(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.else.ql" - }, - "exists": { - "match": "(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.quantifier.exists.ql" - }, - "extends": { - "match": "(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.extends.ql" - }, - "false": { - "match": "(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))", - "name": "constant.language.boolean.false.ql" - }, - "float": { - "match": "(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.type.float.ql" - }, - "forall": { - "match": "(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.quantifier.forall.ql" - }, - "forex": { - "match": "(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.quantifier.forex.ql" - }, - "from": { - "match": "(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.from.ql" - }, - "if": { - "match": "(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.if.ql" - }, - "implies": { - "match": "(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.implies.ql" - }, - "import": { - "match": "(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.import.ql" - }, - "in": { - "match": "(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.in.ql" - }, - "instanceof": { - "match": "(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.instanceof.ql" - }, - "int": { - "match": "(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.type.int.ql" - }, - "max": { - "match": "(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.max.ql" - }, - "min": { - "match": "(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.min.ql" - }, - "module": { - "match": "(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.module.ql" - }, - "newtype": { - "match": "(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.newtype.ql" - }, - "none": { - "match": "(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.quantifier.none.ql" - }, - "not": { - "match": "(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.not.ql" - }, - "or": { - "match": "(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.or.ql" - }, - "order": { - "match": "(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.order.order.ql" - }, - "predicate": { - "match": "(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.predicate.ql" - }, - "rank": { - "match": "(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.rank.ql" - }, - "result": { - "match": "(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))", - "name": "variable.language.result.ql" - }, - "select": { - "match": "(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.query.select.ql" - }, - "strictconcat": { - "match": "(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.strictconcat.ql" - }, - "strictcount": { - "match": "(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.strictcount.ql" - }, - "strictsum": { - "match": "(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.strictsum.ql" - }, - "string": { - "match": "(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.type.string.ql" - }, - "sum": { - "match": "(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.sum.ql" - }, - "super": { - "match": "(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))", - "name": "variable.language.super.ql" - }, - "then": { - "match": "(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.then.ql" - }, - "this": { - "match": "(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))", - "name": "variable.language.this.ql" - }, - "true": { - "match": "(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))", - "name": "constant.language.boolean.true.ql" - }, - "unique": { - "match": "(?x)\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.aggregate.unique.ql" - }, - "where": { - "match": "(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.query.where.ql" - }, - "keyword": { - "patterns": [ - { - "include": "#dont-care" - }, - { - "include": "#and" - }, - { - "include": "#any" - }, - { - "include": "#as" - }, - { - "include": "#asc" - }, - { - "include": "#avg" - }, - { - "include": "#boolean" - }, - { - "include": "#by" - }, - { - "include": "#class" - }, - { - "include": "#concat" - }, - { - "include": "#count" - }, - { - "include": "#date" - }, - { - "include": "#desc" - }, - { - "include": "#else" - }, - { - "include": "#exists" - }, - { - "include": "#extends" - }, - { - "include": "#false" - }, - { - "include": "#float" - }, - { - "include": "#forall" - }, - { - "include": "#forex" - }, - { - "include": "#from" - }, - { - "include": "#if" - }, - { - "include": "#implies" - }, - { - "include": "#import" - }, - { - "include": "#in" - }, - { - "include": "#instanceof" - }, - { - "include": "#int" - }, - { - "include": "#max" - }, - { - "include": "#min" - }, - { - "include": "#module" - }, - { - "include": "#newtype" - }, - { - "include": "#none" - }, - { - "include": "#not" - }, - { - "include": "#or" - }, - { - "include": "#order" - }, - { - "include": "#predicate" - }, - { - "include": "#rank" - }, - { - "include": "#result" - }, - { - "include": "#select" - }, - { - "include": "#strictconcat" - }, - { - "include": "#strictcount" - }, - { - "include": "#strictsum" - }, - { - "include": "#string" - }, - { - "include": "#sum" - }, - { - "include": "#super" - }, - { - "include": "#then" - }, - { - "include": "#this" - }, - { - "include": "#true" - }, - { - "include": "#unique" - }, - { - "include": "#where" - } - ] - }, - "predicate-start-keyword": { - "patterns": [ - { - "include": "#boolean" - }, - { - "include": "#date" - }, - { - "include": "#float" - }, - { - "include": "#int" - }, - { - "include": "#predicate" - }, - { - "include": "#string" - } - ] - }, - "abstract": { - "match": "(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.abstract.ql" - }, - "bindingset": { - "match": "(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.bindingset.ql" - }, - "cached": { - "match": "(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.cached.ql" - }, - "deprecated": { - "match": "(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.deprecated.ql" - }, - "external": { - "match": "(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.external.ql" - }, - "final": { - "match": "(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.final.ql" - }, - "language": { - "match": "(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.language.ql" - }, - "library": { - "match": "(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.library.ql" - }, - "override": { - "match": "(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.override.ql" - }, - "pragma": { - "match": "(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.pragma.ql" - }, - "private": { - "match": "(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.private.ql" - }, - "query": { - "match": "(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.query.ql" - }, - "signature": { - "match": "(?x)\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.signature.ql" - }, - "transient": { - "match": "(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.transient.ql" - }, - "annotation-keyword": { - "patterns": [ - { - "include": "#abstract" - }, - { - "include": "#bindingset" - }, - { - "include": "#cached" - }, - { - "include": "#deprecated" - }, - { - "include": "#external" - }, - { - "include": "#final" - }, - { - "include": "#language" - }, - { - "include": "#library" - }, - { - "include": "#override" - }, - { - "include": "#pragma" - }, - { - "include": "#private" - }, - { - "include": "#query" - }, - { - "include": "#signature" - }, - { - "include": "#transient" - } - ] - }, - "implements": { - "match": "(?x)\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))", - "name": "keyword.other.implements.ql" - }, - "comment": { - "patterns": [ - { - "begin": "(?x)/\\*\\*", - "end": "(?x)\\*/", - "name": "comment.block.documentation.ql", - "patterns": [ - { - "begin": "(?x)(?<=/\\*\\*)([^*]|\\*(?!/))*$", - "while": "(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)", - "patterns": [ - { - "include": "text.html.markdown#fenced_code_block" - }, - { - "include": "text.html.markdown#lists" - }, - { - "include": "text.html.markdown#inline" - }, - { - "match": "(?x)\\G\\s* (@\\S+)", - "name": "keyword.tag.ql" - } - ] - } - ] - }, - { - "begin": "(?x)/\\*", - "end": "(?x)\\*/", - "name": "comment.block.ql" - }, - { - "match": "(?x)//.*$", - "name": "comment.line.double-slash.ql" - } - ] - }, - "module-member": { - "patterns": [ - { - "include": "#import-directive" - }, - { - "include": "#import-as-clause" - }, - { - "include": "#module-declaration" - }, - { - "include": "#newtype-declaration" - }, - { - "include": "#newtype-branch-name-with-prefix" - }, - { - "include": "#predicate-parameter-list" - }, - { - "include": "#predicate-body" - }, - { - "include": "#class-declaration" - }, - { - "include": "#select-clause" - }, - { - "include": "#predicate-or-field-declaration" - }, - { - "include": "#non-context-sensitive" - }, - { - "include": "#annotation" - } - ] - }, - "import-directive": { - "end": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?!\\s*(\\.|\\:\\:))", - "endCaptures": { - "0": { - "name": "entity.name.type.namespace.ql" - } - }, - "name": "meta.block.import-directive.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.namespace.ql" - } - ], - "begin": "(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#import" - } - ] - } - } - }, - "end-of-as-clause": { - "match": "(?x)(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?<!(?<!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))))" - }, - "import-as-clause": { - "end": "(?x)(?:(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?<!(?<!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))", - "name": "meta.block.import-as-clause.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.namespace.ql" - } - ], - "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#as" - } - ] - } - } - }, - "implements-clause": { - "end": "(?x)(?= \\{ )", - "name": "meta.block.implements-clause.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.ql" - } - ], - "begin": "(?x)((?:\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#implements" - } - ] - } - } - }, - "module-declaration": { - "end": "(?x)(?<=\\}|;)", - "name": "meta.block.module-declaration.ql", - "patterns": [ - { - "include": "#module-body" - }, - { - "include": "#implements-clause" - }, - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.namespace.ql" - } - ], - "begin": "(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#module" - } - ] - } - } - }, - "module-body": { - "name": "meta.block.module-body.ql", - "patterns": [ - { - "include": "#module-member" - } - ], - "begin": "(?x)((?:\\{))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-brace" - } - ] - } - }, - "end": "(?x)((?:\\}))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-brace" - } - ] - } - } - }, - "module-qualifier": { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)", - "name": "entity.name.type.namespace.ql" - }, - "predicate-or-field-declaration": { - "begin": "(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:signature)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))", - "end": "(?x)(?<=\\}|;)", - "name": "meta.block.predicate-or-field-declaration.ql", - "patterns": [ - { - "include": "#predicate-parameter-list" - }, - { - "include": "#predicate-body" - }, - { - "include": "#non-context-sensitive" - }, - { - "include": "#module-qualifier" - }, - { - "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)", - "name": "variable.field.ql" - }, - { - "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.function.ql" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.ql" - } - ] - }, - "predicate-parameter-list": { - "name": "meta.block.predicate-parameter-list.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))", - "name": "variable.parameter.ql" - }, - { - "include": "#module-qualifier" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.ql" - }, - { - "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "variable.parameter.ql" - } - ], - "begin": "(?x)((?:\\())", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-paren" - } - ] - } - }, - "end": "(?x)((?:\\)))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-paren" - } - ] - } - } - }, - "expr-as-clause": { - "end": "(?x)(?:(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?<!(?<!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))", - "name": "meta.block.expr-as-clause.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "variable.other.ql" - } - ], - "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#as" - } - ] - } - } - }, - "predicate-body-contents": { - "patterns": [ - { - "include": "#expr-as-clause" - }, - { - "include": "#non-context-sensitive" - }, - { - "include": "#module-qualifier" - }, - { - "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()", - "name": "entity.name.function.ql" - }, - { - "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "variable.other.ql" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.ql" - } - ] - }, - "predicate-body": { - "name": "meta.block.predicate-body.ql", - "patterns": [ - { - "include": "#predicate-body-contents" - } - ], - "begin": "(?x)((?:\\{))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-brace" - } - ] - } - }, - "end": "(?x)((?:\\}))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-brace" - } - ] - } - } - }, - "annotation": { - "patterns": [ - { - "include": "#bindingset-annotation" - }, - { - "include": "#language-annotation" - }, - { - "include": "#pragma-annotation" - }, - { - "include": "#annotation-keyword" - } - ] - }, - "bindingset-annotation": { - "end": "(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])", - "name": "meta.block.bindingset-annotation.ql", - "patterns": [ - { - "include": "#bindingset-annotation-body" - }, - { - "include": "#non-context-sensitive" - } - ], - "begin": "(?x)((?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#bindingset" - } - ] - } - } - }, - "bindingset-annotation-body": { - "name": "meta.block.bindingset-annotation-body.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "variable.parameter.ql" - } - ], - "begin": "(?x)((?:\\[))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-bracket" - } - ] - } - }, - "end": "(?x)((?:\\]))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-bracket" - } - ] - } - } - }, - "language-annotation": { - "end": "(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])", - "name": "meta.block.language-annotation.ql", - "patterns": [ - { - "include": "#language-annotation-body" - }, - { - "include": "#non-context-sensitive" - } - ], - "begin": "(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#language" - } - ] - } - } - }, - "language-annotation-body": { - "name": "meta.block.language-annotation-body.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))", - "name": "storage.modifier.ql" - } - ], - "begin": "(?x)((?:\\[))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-bracket" - } - ] - } - }, - "end": "(?x)((?:\\]))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-bracket" - } - ] - } - } - }, - "pragma-annotation": { - "end": "(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])", - "name": "meta.block.pragma-annotation.ql", - "patterns": [ - { - "include": "#pragma-annotation-body" - }, - { - "include": "#non-context-sensitive" - } - ], - "begin": "(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#pragma" - } - ] - } - } - }, - "pragma-annotation-body": { - "name": "meta.block.pragma-annotation-body.ql", - "patterns": [ - { - "match": "(?x)\\b(?:inline|noinline|nomagic|noopt)\\b", - "name": "storage.modifier.ql" - } - ], - "begin": "(?x)((?:\\[))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-bracket" - } - ] - } - }, - "end": "(?x)((?:\\]))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-bracket" - } - ] - } - } - }, - "newtype-declaration": { - "end": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "endCaptures": { - "0": { - "name": "entity.name.type.ql" - } - }, - "name": "meta.block.newtype-declaration.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - } - ], - "begin": "(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#newtype" - } - ] - } - } - }, - "newtype-branch-name-with-prefix": { - "begin": "(?x)\\= | (?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#or" - }, - { - "include": "#comparison-operator" - } - ] - } - }, - "end": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "endCaptures": { - "0": { - "name": "entity.name.type.ql" - } - }, - "name": "meta.block.newtype-branch-name-with-prefix.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - } - ] - }, - "class-declaration": { - "end": "(?x)(?<= \\} | ; )", - "name": "meta.block.class-declaration.ql", - "patterns": [ - { - "include": "#class-body" - }, - { - "include": "#extends-clause" - }, - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.class.ql" - } - ], - "begin": "(?x)((?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#class" - } - ] - } - } - }, - "extends-clause": { - "end": "(?x)(?= \\{ )", - "name": "meta.block.extends-clause.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.ql" - } - ], - "begin": "(?x)((?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#extends" - } - ] - } - } - }, - "class-body": { - "name": "meta.block.class-body.ql", - "patterns": [ - { - "include": "#class-member" - } - ], - "begin": "(?x)((?:\\{))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#open-brace" - } - ] - } - }, - "end": "(?x)((?:\\}))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#close-brace" - } - ] - } - } - }, - "class-member": { - "patterns": [ - { - "include": "#predicate-or-field-declaration" - }, - { - "include": "#annotation" - }, - { - "include": "#non-context-sensitive" - } - ] - }, - "select-clause": { - "begin": "(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", - "end": "(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", - "name": "meta.block.select-clause.ql", - "patterns": [ - { - "include": "#from-section" - }, - { - "include": "#where-section" - }, - { - "include": "#select-section" - } - ] - }, - "from-section": { - "end": "(?x)(?= (?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))) | (?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))) )", - "name": "meta.block.from-section.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|$))", - "name": "variable.parameter.ql" - }, - { - "include": "#module-qualifier" - }, - { - "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "entity.name.type.ql" - }, - { - "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "variable.parameter.ql" - } - ], - "begin": "(?x)((?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#from" - } - ] - } - } - }, - "where-section": { - "end": "(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", - "name": "meta.block.where-section.ql", - "patterns": [ - { - "include": "#predicate-body-contents" - } - ], - "begin": "(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#where" - } - ] - } - } - }, - "select-section": { - "end": "(?x)(?=\\n)", - "name": "meta.block.select-section.ql", - "patterns": [ - { - "include": "#predicate-body-contents" - }, - { - "include": "#select-as-clause" - } - ], - "begin": "(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#select" - } - ] - } - } - }, - "select-as-clause": { - "end": "(?x)(?<=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))", - "match": "(?x)meta.block.select-as-clause.ql", - "patterns": [ - { - "include": "#non-context-sensitive" - }, - { - "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", - "name": "variable.other.ql" - } - ], - "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#as" - } - ] - } - } - }, - "literal": { - "patterns": [ - { - "include": "#float-literal" - }, - { - "include": "#int-literal" - }, - { - "include": "#string-literal" - } - ] - }, - "int-literal": { - "match": "(?x)-?[0-9]+(?![0-9])", - "name": "constant.numeric.decimal.ql" - }, - "float-literal": { - "match": "(?x)-?[0-9]+\\.[0-9]+(?![0-9])", - "name": "constant.numeric.decimal.ql" - }, - "string-literal": { - "name": "string.quoted.double.ql", - "begin": "(?x)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ql" - } - }, - "end": "(?x)(\") | ((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ql" - }, - "2": { - "name": "invalid.illegal.newline.ql" - } - }, - "patterns": [ - { - "include": "#string-escape" - } - ] - }, - "string-escape": { - "match": "(?x)\\\\[\"\\\\nrt]", - "name": "constant.character.escape.ql" - } - } -} diff --git a/lib/grammars/coffee.tmLanguage.json b/lib/grammars/coffee.tmLanguage.json deleted file mode 100644 index 4c5589c..0000000 --- a/lib/grammars/coffee.tmLanguage.json +++ /dev/null @@ -1,1316 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-coffee-script/blob/master/grammars/coffeescript.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-coffee-script/commit/0f6db9143663e18b1ad00667820f46747dba495e", - "name": "coffee", - "scopeName": "source.coffee", - "patterns": [ - { - "include": "#jsx" - }, - { - "match": "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))", - "name": "meta.class.instance.constructor.coffee", - "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" - } - } - }, - { - "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" - } - ] - }, - { - "match": "(`)(.*)(`)", - "name": "string.quoted.script.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" - } - } - }, - { - "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": "///", - "end": "(///)[gimuy]*", - "name": "string.regexp.multiline.coffee", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.coffee" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.coffee" - } - }, - "patterns": [ - { - "include": "#heregexp" - } - ] - }, - { - "begin": "(?<![\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\s*[\\w$/(]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.coffee" - } - }, - "end": "(/)[gimuy]*(?!\\s*[\\w$/(])", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.coffee" - } - }, - "name": "string.regexp.coffee", - "patterns": [ - { - "include": "source.js.regexp" - } - ] - }, - { - "match": "\\b(?<![\\.\\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\s+own)(?!\\s*:)\\b", - "name": "keyword.control.coffee" - }, - { - "match": "\\b(?<![\\.\\$])(delete|instanceof|new|typeof)(?!\\s*:)\\b", - "name": "keyword.operator.$1.coffee" - }, - { - "match": "\\b(?<![\\.\\$])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\s*:)\\b", - "name": "keyword.reserved.coffee" - }, - { - "begin": "(?x)\n(?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", - "beginCaptures": { - "1": { - "name": "entity.name.function.coffee" - }, - "2": { - "name": "variable.other.readwrite.instance.coffee" - }, - "3": { - "name": "keyword.operator.assignment.coffee" - } - }, - "end": "[=-]>", - "endCaptures": { - "0": { - "name": "storage.type.function.coffee" - } - }, - "name": "meta.function.coffee", - "patterns": [ - { - "include": "#function_params" - } - ] - }, - { - "begin": "(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", - "beginCaptures": { - "1": { - "name": "string.quoted.single.coffee" - }, - "2": { - "name": "punctuation.definition.string.begin.coffee" - }, - "3": { - "name": "entity.name.function.coffee" - }, - "4": { - "name": "punctuation.definition.string.end.coffee" - }, - "5": { - "name": "string.quoted.double.coffee" - }, - "6": { - "name": "punctuation.definition.string.begin.coffee" - }, - "7": { - "name": "entity.name.function.coffee" - }, - "8": { - "name": "punctuation.definition.string.end.coffee" - }, - "9": { - "name": "keyword.operator.assignment.coffee" - } - }, - "end": "[=-]>", - "endCaptures": { - "0": { - "name": "storage.type.function.coffee" - } - }, - "name": "meta.function.coffee", - "patterns": [ - { - "include": "#function_params" - } - ] - }, - { - "begin": "(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", - "end": "[=-]>", - "endCaptures": { - "0": { - "name": "storage.type.function.coffee" - } - }, - "name": "meta.function.inline.coffee", - "patterns": [ - { - "include": "#function_params" - } - ] - }, - { - "begin": "(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.destructuring.begin.bracket.curly.coffee" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.destructuring.end.bracket.curly.coffee" - } - }, - "name": "meta.variable.assignment.destructured.object.coffee", - "patterns": [ - { - "include": "$self" - }, - { - "match": "[a-zA-Z$_]\\w*", - "name": "variable.assignment.coffee" - } - ] - }, - { - "begin": "(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.destructuring.begin.bracket.square.coffee" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.destructuring.end.bracket.square.coffee" - } - }, - "name": "meta.variable.assignment.destructured.array.coffee", - "patterns": [ - { - "include": "$self" - }, - { - "match": "[a-zA-Z$_]\\w*", - "name": "variable.assignment.coffee" - } - ] - }, - { - "match": "\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b", - "name": "constant.language.boolean.true.coffee" - }, - { - "match": "\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b", - "name": "constant.language.boolean.false.coffee" - }, - { - "match": "\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b", - "name": "constant.language.null.coffee" - }, - { - "match": "\\b(?<!\\.|::)extends(?!\\s*[:=])\\b", - "name": "variable.language.coffee" - }, - { - "match": "(?<!\\.)\\b(?<!\\$)(super|this|arguments)(?!\\s*[:=][^=]|\\$)\\b", - "name": "variable.language.$1.coffee" - }, - { - "captures": { - "1": { - "name": "storage.type.class.coffee" - }, - "2": { - "name": "keyword.control.inheritance.coffee" - }, - "3": { - "name": "entity.other.inherited-class.coffee" - } - }, - "match": "(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)", - "name": "meta.class.coffee" - }, - { - "captures": { - "1": { - "name": "storage.type.class.coffee" - }, - "2": { - "name": "entity.name.type.class.coffee" - }, - "3": { - "name": "keyword.control.inheritance.coffee" - }, - "4": { - "name": "entity.other.inherited-class.coffee" - } - }, - "match": "(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?", - "name": "meta.class.coffee" - }, - { - "match": "\\b(debugger|\\\\)\\b", - "name": "keyword.other.coffee" - }, - { - "match": "\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\b", - "name": "support.class.coffee" - }, - { - "match": "\\b(console)\\b", - "name": "entity.name.type.object.coffee" - }, - { - "match": "((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b", - "name": "support.function.console.coffee" - }, - { - "match": "((?<=\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\b", - "name": "support.function.method.array.coffee" - }, - { - "match": "((?<=Array\\.)(isArray))\\b", - "name": "support.function.static.array.coffee" - }, - { - "match": "((?<=Object\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\b", - "name": "support.function.static.object.coffee" - }, - { - "match": "((?<=Math\\.)(abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc))\\b", - "name": "support.function.static.math.coffee" - }, - { - "match": "((?<=Number\\.)(is(Finite|Integer|NaN)|toInteger))\\b", - "name": "support.function.static.number.coffee" - }, - { - "match": "(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b", - "name": "support.variable.coffee" - }, - { - "match": "\\b(Infinity|NaN|undefined)\\b", - "name": "constant.language.coffee" - }, - { - "include": "#operators" - }, - { - "include": "#method_calls" - }, - { - "include": "#function_calls" - }, - { - "include": "#numbers" - }, - { - "include": "#objects" - }, - { - "include": "#properties" - }, - { - "match": "::", - "name": "keyword.operator.prototype.coffee" - }, - { - "match": "(?<!\\$)\\b[0-9]+[\\w$]*", - "name": "invalid.illegal.identifier.coffee" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.coffee" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.coffee" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "meta.brace.curly.coffee" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "meta.brace.curly.coffee" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.bracket.square.coffee" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.square.coffee" - } - }, - "patterns": [ - { - "match": "(?<!\\.)\\.{3}", - "name": "keyword.operator.slice.exclusive.coffee" - }, - { - "match": "(?<!\\.)\\.{2}", - "name": "keyword.operator.slice.inclusive.coffee" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.coffee" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.coffee" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#instance_variable" - }, - { - "include": "#single_quoted_string" - }, - { - "include": "#double_quoted_string" - } - ], - "repository": { - "arguments": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.begin.bracket.round.coffee" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.coffee" - } - }, - "name": "meta.arguments.coffee", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|'))", - "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", - "name": "meta.arguments.coffee", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "double_quoted_string": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.coffee" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.coffee" - } - }, - "name": "string.quoted.double.coffee", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.escape.backslash.coffee" - } - }, - "match": "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", - "name": "constant.character.escape.backslash.coffee" - }, - { - "include": "#interpolated_coffee" - } - ] - } - ] - }, - "function_calls": { - "patterns": [ - { - "begin": "(@)?([\\w$]+)(?=\\()", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.instance.coffee" - }, - "2": { - "patterns": [ - { - "include": "#function_names" - } - ] - } - }, - "end": "(?<=\\))", - "name": "meta.function-call.coffee", - "patterns": [ - { - "include": "#arguments" - } - ] - }, - { - "begin": "(?x)\n(@)?([\\w$]+)\n\\s*\n(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.instance.coffee" - }, - "2": { - "patterns": [ - { - "include": "#function_names" - } - ] - } - }, - "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", - "name": "meta.function-call.coffee", - "patterns": [ - { - "include": "#arguments" - } - ] - } - ] - }, - "function_names": { - "patterns": [ - { - "match": "(?x)\n\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|\ndecodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|\nrequire|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": [ - { - "match": "([a-zA-Z_$][\\w$]*)(\\.\\.\\.)?", - "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" - } - } - }, - { - "include": "$self" - } - ] - } - ] - }, - "embedded_comment": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.coffee" - } - }, - "match": "(?<!\\\\)(#).*$\\n?", - "name": "comment.line.number-sign.coffee" - } - ] - }, - "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" - } - ] - } - ] - }, - "method_calls": { - "patterns": [ - { - "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "punctuation.separator.method.period.coffee" - }, - "2": { - "name": "keyword.operator.prototype.coffee" - }, - "3": { - "patterns": [ - { - "include": "#method_names" - } - ] - } - }, - "end": "(?<=\\))", - "name": "meta.method-call.coffee", - "patterns": [ - { - "include": "#arguments" - } - ] - }, - { - "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.method.period.coffee" - }, - "2": { - "name": "keyword.operator.prototype.coffee" - }, - "3": { - "patterns": [ - { - "include": "#method_names" - } - ] - } - }, - "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", - "name": "meta.method-call.coffee", - "patterns": [ - { - "include": "#arguments" - } - ] - } - ] - }, - "method_names": { - "patterns": [ - { - "match": "(?x)\n\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\nReadystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\nBefore(cut|deactivate|unload|update|paste|print|editfocus|activate)|\nBlur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\nChange|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\nDatasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\nDragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\nErrorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b", - "name": "support.function.event-handler.coffee" - }, - { - "match": "(?x)\n\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\ncontextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\nprint|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\nfileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\nforward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\nabort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\nreleaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b", - "name": "support.function.coffee" - }, - { - "match": "(?x)\n\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\nappendChild|appendData|before|blur|canPlayType|captureStream|\ncaretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\ncloneContents|cloneNode|cloneRange|close|closest|collapse|\ncompareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\nconvertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\ncreateAttributeNS|createCaption|createCDATASection|createComment|\ncreateContextualFragment|createDocument|createDocumentFragment|\ncreateDocumentType|createElement|createElementNS|createEntityReference|\ncreateEvent|createExpression|createHTMLDocument|createNodeIterator|\ncreateNSResolver|createProcessingInstruction|createRange|createShadowRoot|\ncreateTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\ndeleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\ndeleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\nenableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\nexitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\ngetAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\ngetAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\ngetClientRects|getContext|getDestinationInsertionPoints|getElementById|\ngetElementsByClassName|getElementsByName|getElementsByTagName|\ngetElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\ngetVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\nhasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\ninsertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\ninsertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\nisPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\nlookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\nmoveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\nparentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\npreviousSibling|probablySupportsContext|queryCommandEnabled|\nqueryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\nquerySelector|querySelectorAll|registerContentHandler|registerElement|\nregisterProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\nremoveAttributeNode|removeAttributeNS|removeChild|removeEventListener|\nremoveItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\nrequestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\nscrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\nsetAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\nsetCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\nsetRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\nslice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\nsubmit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\ntoDataURL|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" - }, - { - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(?=\\.{2,3}))| # 1 followed by a slice\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)", - "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" - } - } - } - ] - }, - "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": [ - { - "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.coffee" - } - } - }, - { - "match": "([a-zA-Z$_][\\w$]*)?\\s*(&=|\\^=|<<=|>>=|>>>=|\\|=)", - "captures": { - "1": { - "name": "variable.assignment.coffee" - }, - "2": { - "name": "keyword.operator.assignment.compound.bitwise.coffee" - } - } - }, - { - "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" - }, - { - "match": "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])", - "captures": { - "1": { - "name": "variable.assignment.coffee" - }, - "2": { - "name": "keyword.operator.assignment.coffee" - } - } - }, - { - "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" - }, - { - "match": "(?x)\n\\b(?<![\\.\\$])\n(?:\n (and|or|not) # logical\n |\n (is|isnt) # comparison\n)\n(?!\\s*:)\\b", - "captures": { - "1": { - "name": "keyword.operator.logical.coffee" - }, - "2": { - "name": "keyword.operator.comparison.coffee" - } - } - } - ] - }, - "properties": { - "patterns": [ - { - "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": "constant.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": "variable.other.object.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": "constant.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": "variable.other.property.coffee" - } - } - }, - { - "match": "(?:(\\.)|(::))\\s*([0-9][\\w$]*)", - "captures": { - "1": { - "name": "punctuation.separator.property.period.coffee" - }, - "2": { - "name": "keyword.operator.prototype.coffee" - }, - "3": { - "name": "invalid.illegal.identifier.coffee" - } - } - } - ] - }, - "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" - } - ] - } - ] - }, - "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" - } - ] - }, - "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" - } - ] - }, - "jsx": { - "patterns": [ - { - "include": "#jsx-tag" - }, - { - "include": "#jsx-end-tag" - } - ] - }, - "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-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-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" - } - ] - } - ] - }, - "jsx-end-tag": { - "patterns": [ - { - "begin": "(</)([-\\w\\.]+)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.coffee" - }, - "2": { - "name": "entity.name.tag.coffee" - } - }, - "end": "(/?>)", - "name": "meta.tag.coffee" - } - ] - } - } -} diff --git a/lib/grammars/cpp-macro.tmLanguage.json b/lib/grammars/cpp-macro.tmLanguage.json deleted file mode 100644 index 73defb9..0000000 --- a/lib/grammars/cpp-macro.tmLanguage.json +++ /dev/null @@ -1,9366 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.embedded.macro.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6", - "name": "cpp-macro", - "scopeName": "source.cpp.embedded.macro", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#constructor_root" - }, - { - "include": "#destructor_root" - }, - { - "include": "#function_definition" - }, - { - "include": "#operator_overload" - }, - { - "include": "#using_namespace" - }, - { - "include": "source.cpp#type_alias" - }, - { - "include": "source.cpp#using_name" - }, - { - "include": "source.cpp#namespace_alias" - }, - { - "include": "#namespace_block" - }, - { - "include": "#extern_block" - }, - { - "include": "#typedef_class" - }, - { - "include": "#typedef_struct" - }, - { - "include": "#typedef_union" - }, - { - "include": "source.cpp#misc_keywords" - }, - { - "include": "source.cpp#standard_declares" - }, - { - "include": "#class_block" - }, - { - "include": "#struct_block" - }, - { - "include": "#union_block" - }, - { - "include": "#enum_block" - }, - { - "include": "source.cpp#template_isolated_definition" - }, - { - "include": "#template_definition" - }, - { - "include": "source.cpp#template_explicit_instantiation" - }, - { - "include": "source.cpp#access_control_keywords" - }, - { - "include": "#block" - }, - { - "include": "#static_assert" - }, - { - "include": "#assembly" - }, - { - "include": "#function_pointer" - }, - { - "include": "#evaluation_context" - } - ], - "repository": { - "alignas_attribute": { - "begin": "alignas\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "alignas_operator": { - "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" - } - }, - "contentName": "meta.arguments.operator.alignas", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "alignof_operator": { - "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" - } - }, - "contentName": "meta.arguments.operator.alignof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "assembly": { - "begin": "(\\b(?:__asm__|asm)\\b)(?:\\s+)?((?:volatile)?)", - "end": "(?!\\G)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "storage.type.asm.cpp" - }, - "2": { - "name": "storage.modifier.cpp" - } - }, - "endCaptures": {}, - "name": "meta.asm.cpp", - "patterns": [ - { - "match": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\n|$)", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#comments" - }, - { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" - } - }, - "patterns": [ - { - "begin": "(R?)(\")", - "end": "\"|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "meta.encoding.cpp" - }, - "2": { - "name": "punctuation.definition.string.begin.assembly.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.assembly.cpp" - } - }, - "name": "string.quoted.double.cpp", - "contentName": "meta.embedded.assembly", - "patterns": [ - { - "include": "source.asm" - }, - { - "include": "source.x86" - }, - { - "include": "source.x86_64" - }, - { - "include": "source.arm" - }, - { - "include": "source.cpp#backslash_escapes" - }, - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\[((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.other.asm.label.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": ":", - "name": "punctuation.separator.delimiter.colon.assembly.cpp" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "attributes_context": { - "patterns": [ - { - "include": "#cpp_attributes" - }, - { - "include": "#gcc_attributes" - }, - { - "include": "#ms_attributes" - }, - { - "include": "#alignas_attribute" - } - ] - }, - "block": { - "begin": "{", - "end": "}|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.cpp" - } - }, - "name": "meta.block.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - "block_comment": { - "begin": "\\s*+(\\/\\*)", - "end": "\\*\\/|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.cpp" - } - }, - "name": "comment.block.cpp" - }, - "builtin_storage_type_initilizer": { - "begin": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)\\s*+(?<!\\w)(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "2": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "3": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "4": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "5": { - "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "case_statement": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)case(?!\\w))", - "end": ":|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.control.case.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.separator.colon.case.cpp" - } - }, - "name": "meta.conditional.case.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "class_block": { - "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.class.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, - "name": "meta.head.class.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "name": "meta.body.class.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.class.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "^(?:\\s+)?+(\\/\\/[!\\/]+)", - "end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.documentation.cpp" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.documentation.cpp", - "patterns": [ - { - "include": "source.cpp#line_continuation_character" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.parameter.cpp" - }, - { - "match": ",", - "name": "punctuation.cpp" - } - ] - }, - "4": { - "name": "variable.parameter.cpp" - }, - "5": { - "name": "punctuation.cpp" - }, - "6": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", - "captures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - }, - "2": { - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.parameter.cpp" - }, - { - "match": ",", - "name": "punctuation.cpp" - } - ] - }, - "4": { - "name": "variable.parameter.cpp" - }, - "5": { - "name": "punctuation.cpp" - }, - "6": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - "3": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp" - }, - { - "begin": "(?:\\s+)?+\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s))", - "end": "[!*]*\\*\\/|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp", - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.parameter.cpp" - }, - { - "match": ",", - "name": "punctuation.cpp" - } - ] - }, - "4": { - "name": "variable.parameter.cpp" - }, - "5": { - "name": "punctuation.cpp" - }, - "6": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "include": "source.cpp#emacs_file_banner" - }, - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - }, - { - "include": "source.cpp#invalid_comment_end" - } - ] - }, - "constructor_inline": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.constructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "patterns": [ - { - "include": "source.cpp#functional_specifiers_pre_parameters" - } - ] - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "11": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.constructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.head.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "source.cpp#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.initializers.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "3": {}, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", - "end": "\\}|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.cpp" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.constructor", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.body.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "constructor_root": { - "begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\10)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.constructor.cpp" - }, - "1": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.constructor.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "8": {}, - "9": { - "patterns": [ - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", - "name": "entity.name.type.constructor.cpp" - }, - { - "match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.function.definition.special.constructor.cpp" - }, - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" - } - ] - }, - "10": {}, - "11": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "19": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.constructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.head.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "source.cpp#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.initializers.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "3": {}, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", - "end": "\\}|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.cpp" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.constructor", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.body.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "cpp_attributes": { - "begin": "\\[\\[", - "end": "\\]\\]|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "curly_initializer": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)", - "end": "\\}|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": { - "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp" - } - }, - "name": "meta.initialization.cpp", - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "source.cpp#comma" - } - ] - }, - "decltype": { - "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" - } - }, - "contentName": "meta.arguments.decltype", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "decltype_specifier": { - "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" - } - }, - "contentName": "meta.arguments.decltype", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "default_statement": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)default(?!\\w))", - "end": ":|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.control.default.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.separator.colon.case.default.cpp" - } - }, - "name": "meta.conditional.case.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "destructor_inline": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "source.cpp#functional_specifiers_pre_parameters" - } - ] - }, - "11": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.head.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.member.destructor", - "patterns": [] - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.body.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "destructor_root": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))~(?:\\14)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.destructor.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "11": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "12": {}, - "13": { - "patterns": [ - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", - "name": "entity.name.type.destructor.cpp" - }, - { - "match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.function.definition.special.member.destructor.cpp" - }, - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" - } - ] - }, - "14": {}, - "15": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "19": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "24": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "25": { - "name": "comment.block.cpp" - }, - "26": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.head.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.member.destructor", - "patterns": [] - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.body.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "diagnostic": { - "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$7.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.definition.directive.cpp" - }, - "7": {} - }, - "endCaptures": {}, - "name": "meta.preprocessor.diagnostic.$reference(directive).cpp", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "\"", - "end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.double.cpp", - "patterns": [ - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - { - "begin": "'", - "end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.single.cpp", - "patterns": [ - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "string.unquoted.cpp", - "patterns": [ - { - "include": "source.cpp#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "enum_block": { - "begin": "((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:\\s+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:\\s+)?(:)(?:\\s+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.enum.cpp" - }, - "1": { - "name": "storage.type.enum.cpp" - }, - "2": { - "name": "storage.type.enum.enum-key.$2.cpp" - }, - "3": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "name": "punctuation.separator.colon.type-specifier.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_inner_generated" - } - ] - }, - "7": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "8": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": {}, - "10": { - "name": "entity.name.scope-resolution.cpp" - }, - "11": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "12": {}, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "17": { - "name": "storage.type.integral.$17.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.enum.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" - } - }, - "name": "meta.head.enum.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.enum.cpp" - } - }, - "name": "meta.body.enum.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "source.cpp#enumerator_list" - }, - { - "include": "#comments" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#semicolon" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.enum.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "evaluation_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#method_access" - }, - { - "include": "source.cpp#member_access" - }, - { - "include": "source.cpp#predefined_macros" - }, - { - "include": "#operators" - }, - { - "include": "source.cpp#memory_operators" - }, - { - "include": "source.cpp#wordlike_operators" - }, - { - "include": "source.cpp#type_casting_operators" - }, - { - "include": "source.cpp#control_flow_keywords" - }, - { - "include": "source.cpp#exception_keywords" - }, - { - "include": "source.cpp#the_this_keyword" - }, - { - "include": "source.cpp#language_constants" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "source.cpp#functional_specifiers_pre_parameters" - }, - { - "include": "#storage_types" - }, - { - "include": "#lambdas" - }, - { - "include": "#attributes_context" - }, - { - "include": "#parentheses" - }, - { - "include": "#function_call" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "include": "#square_brackets" - }, - { - "include": "source.cpp#semicolon" - }, - { - "include": "source.cpp#comma" - } - ] - }, - "ever_present_context": { - "patterns": [ - { - "include": "source.cpp#pragma_mark" - }, - { - "include": "#pragma" - }, - { - "include": "source.cpp#include" - }, - { - "include": "#line" - }, - { - "include": "#diagnostic" - }, - { - "include": "source.cpp#undef" - }, - { - "include": "#preprocessor_conditional_range" - }, - { - "include": "source.cpp#single_line_macro" - }, - { - "include": "#macro" - }, - { - "include": "source.cpp#preprocessor_conditional_standalone" - }, - { - "include": "source.cpp#macro_argument" - }, - { - "include": "#comments" - }, - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - "extern_block": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(extern)(?=\\s*\\\")", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.extern.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.type.extern.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.extern.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" - } - }, - "name": "meta.head.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.extern.cpp" - } - }, - "name": "meta.body.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - "function_body_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#using_namespace" - }, - { - "include": "source.cpp#type_alias" - }, - { - "include": "source.cpp#using_name" - }, - { - "include": "source.cpp#namespace_alias" - }, - { - "include": "#typedef_class" - }, - { - "include": "#typedef_struct" - }, - { - "include": "#typedef_union" - }, - { - "include": "source.cpp#misc_keywords" - }, - { - "include": "source.cpp#standard_declares" - }, - { - "include": "#class_block" - }, - { - "include": "#struct_block" - }, - { - "include": "#union_block" - }, - { - "include": "#enum_block" - }, - { - "include": "source.cpp#access_control_keywords" - }, - { - "include": "#block" - }, - { - "include": "#static_assert" - }, - { - "include": "#assembly" - }, - { - "include": "#function_pointer" - }, - { - "include": "#switch_statement" - }, - { - "include": "source.cpp#goto_statement" - }, - { - "include": "#evaluation_context" - }, - { - "include": "source.cpp#label" - } - ] - }, - "function_call": { - "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_function_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.function.call.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "11": {}, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "function_definition": { - "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?<!\\w)template(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.cpp" - }, - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.modifier.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "name": "storage.modifier.$8.cpp" - }, - "9": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "11": { - "name": "comment.block.cpp" - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "13": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "15": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "19": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "25": {}, - "26": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "28": { - "name": "comment.block.cpp" - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "30": {}, - "31": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "32": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "33": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "34": { - "name": "comment.block.cpp" - }, - "35": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "36": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "37": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "38": { - "name": "comment.block.cpp" - }, - "39": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "40": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "41": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "42": { - "name": "comment.block.cpp" - }, - "43": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "44": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "45": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "46": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "47": { - "name": "comment.block.cpp" - }, - "48": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "49": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_function_definition_inner_generated" - } - ] - }, - "50": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "51": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "52": {}, - "53": { - "name": "entity.name.function.definition.cpp" - }, - "54": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "55": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "56": { - "name": "comment.block.cpp" - }, - "57": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" - } - }, - "name": "meta.head.function.definition.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.cpp" - } - }, - "contentName": "meta.function.definition.parameters", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#parameter_or_maybe_value" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?<=^|\\))(?:\\s+)?(->)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "punctuation.definition.function.return-type.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "8": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "10": { - "name": "comment.block.cpp" - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "17": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "18": {}, - "19": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": {} - } - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" - } - }, - "name": "meta.body.function.definition.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function_parameter_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#parameter" - }, - { - "include": "source.cpp#comma" - } - ] - }, - "function_pointer": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", - "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.other.definition.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "function_pointer_parameter": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", - "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.parameter.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "gcc_attributes": { - "begin": "__attribute(?:__)?\\s*\\(\\s*\\(", - "end": "\\)\\s*\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "inheritance_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.inheritance.cpp" - }, - { - "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)", - "name": "storage.type.modifier.access.$0.cpp" - }, - { - "match": "(?<!\\w)virtual(?!\\w)", - "name": "storage.type.modifier.virtual.cpp" - }, - { - "match": "(?<=protected|virtual|private|public|,|:)(?:\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": {}, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": {} - } - } - ] - }, - "lambdas": { - "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))", - "end": "(?<=[;}])|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.capture.begin.lambda.cpp" - }, - "2": { - "name": "meta.lambda.capture.cpp", - "patterns": [ - { - "include": "source.cpp#the_this_keyword" - }, - { - "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))", - "captures": { - "1": { - "name": "variable.parameter.capture.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.separator.delimiter.comma.cpp" - }, - "7": { - "name": "keyword.operator.assignment.cpp" - } - } - }, - { - "include": "#evaluation_context" - } - ] - }, - "3": {}, - "4": { - "name": "punctuation.definition.capture.end.lambda.cpp" - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.lambda.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.lambda.cpp" - } - }, - "name": "meta.function.definition.parameters.lambda.cpp", - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - { - "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)", - "name": "storage.modifier.lambda.$0.cpp" - }, - { - "begin": "->", - "end": "(?=\\{)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.lambda.return-type.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\S+", - "name": "storage.type.return-type.lambda.cpp" - } - ] - }, - { - "begin": "\\{", - "end": "\\}|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" - } - }, - "name": "meta.function.definition.body.lambda.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "line": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?line\\b", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.line.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.definition.directive.cpp" - } - }, - "endCaptures": {}, - "name": "meta.preprocessor.line.cpp", - "patterns": [ - { - "include": "#string_context" - }, - { - "include": "#preprocessor_number_literal" - }, - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - "line_comment": { - "begin": "\\s*+(\\/\\/)", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.cpp" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.cpp", - "patterns": [ - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - "macro": { - "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?define\\b)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.definition.directive.cpp" - }, - "7": { - "name": "entity.name.function.preprocessor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.preprocessor.macro.cpp", - "patterns": [ - { - "match": "\\G(?:\\s+)?(\\()([^\\(]*)(\\))", - "captures": { - "1": { - "name": "punctuation.definition.parameters.begin.preprocessor.cpp" - }, - "2": { - "name": "meta.function.preprocessor.parameters.cpp", - "patterns": [ - { - "match": "(?<=[(,])(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?", - "captures": { - "1": { - "name": "variable.parameter.preprocessor.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.parameters.cpp" - }, - { - "match": "\\.\\.\\.", - "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp" - } - ] - }, - "3": { - "name": "punctuation.definition.parameters.end.preprocessor.cpp" - } - } - }, - { - "include": "#macro_context" - }, - { - "include": "source.cpp#macro_argument" - } - ] - }, - "macro_context": { - "patterns": [ - { - "include": "source.cpp.embedded.macro" - } - ] - }, - "method_access": { - "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - }, - "9": { - "patterns": [ - { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.property.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "include": "source.cpp#member_access" - }, - { - "include": "#method_access" - } - ] - }, - "10": { - "name": "entity.name.function.member.cpp" - }, - "11": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "ms_attributes": { - "begin": "__declspec\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "namespace_block": { - "begin": "((?<!\\w)namespace(?!\\w))", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.namespace.cpp" - }, - "1": { - "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp" - } - }, - "endCaptures": {}, - "name": "meta.block.namespace.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" - } - }, - "name": "meta.head.namespace.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#attributes_context" - }, - { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<4>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(::)(?:\\s+)?(inline))?", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_namespace_block_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.namespace.cpp" - }, - "6": { - "name": "punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "7": { - "name": "storage.modifier.inline.cpp" - } - } - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" - } - }, - "name": "meta.body.namespace.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.namespace.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "noexcept_operator": { - "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" - } - }, - "contentName": "meta.arguments.operator.noexcept", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "operator_overload": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:\\[\\])?)))|(\"\")((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\<|\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.operator-overload.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "17": {}, - "18": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "20": { - "name": "comment.block.cpp" - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "22": {}, - "23": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "33": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "34": { - "name": "comment.block.cpp" - }, - "35": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "36": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "37": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "38": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "39": { - "name": "comment.block.cpp" - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "41": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "42": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "43": { - "name": "comment.block.cpp" - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "45": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.operator.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "46": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "47": {}, - "48": { - "name": "keyword.other.operator.overload.cpp" - }, - "49": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "50": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "51": { - "name": "comment.block.cpp" - }, - "52": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "53": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.operator-overload.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "54": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "55": {}, - "56": { - "name": "entity.name.operator.cpp" - }, - "57": { - "name": "entity.name.operator.type.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*", - "name": "entity.name.operator.type.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "entity.name.operator.type.reference.cpp" - } - ] - }, - "59": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "60": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "61": { - "name": "comment.block.cpp" - }, - "62": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "63": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "64": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "65": { - "name": "comment.block.cpp" - }, - "66": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "67": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "68": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "69": { - "name": "comment.block.cpp" - }, - "70": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "71": { - "name": "entity.name.operator.type.array.cpp" - }, - "72": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "73": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "74": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "75": { - "name": "comment.block.cpp" - }, - "76": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "77": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "78": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "79": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "80": { - "name": "comment.block.cpp" - }, - "81": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" - } - }, - "name": "meta.head.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#template_call_range" - }, - { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.operator-overload", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp" - } - } - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" - } - }, - "name": "meta.body.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "operators": { - "patterns": [ - { - "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" - } - }, - "contentName": "meta.arguments.operator.alignof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" - } - }, - "contentName": "meta.arguments.operator.alignas", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" - } - }, - "contentName": "meta.arguments.operator.typeid", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" - } - }, - "contentName": "meta.arguments.operator.noexcept", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof.variadic", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "--", - "name": "keyword.operator.decrement.cpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.cpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=", - "name": "keyword.operator.assignment.compound.cpp" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.cpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.cpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.cpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.cpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.bitwise.cpp" - }, - { - "include": "source.cpp#assignment_operator" - }, - { - "match": "%|\\*|\\/|-|\\+", - "name": "keyword.operator.arithmetic.cpp" - }, - { - "include": "#ternary_operator" - } - ] - }, - "parameter": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", - "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "name": "meta.parameter.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "#function_pointer_parameter" - }, - { - "include": "#decltype" - }, - { - "include": "source.cpp#vararg_ellipses" - }, - { - "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\=", - "name": "keyword.operator.assignment.cpp" - }, - { - "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\)|,|\\[|=|\\n)", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } - }, - "name": "meta.bracket.square.array.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", - "name": "entity.name.type.parameter.cpp" - }, - { - "include": "#template_call_range" - }, - { - "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#ever_present_context" - } - ] - }, - "parameter_or_maybe_value": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", - "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "name": "meta.parameter.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#function_pointer_parameter" - }, - { - "include": "source.cpp#memory_operators" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "#curly_initializer" - }, - { - "include": "#decltype" - }, - { - "include": "source.cpp#vararg_ellipses" - }, - { - "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#function_call" - }, - { - "include": "source.cpp#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } - }, - "name": "meta.bracket.square.array.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", - "name": "entity.name.type.parameter.cpp" - }, - { - "include": "#template_call_range" - }, - { - "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#evaluation_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - "parentheses": { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.cpp" - } - }, - "name": "meta.parens.cpp", - "patterns": [ - { - "include": "source.cpp#over_qualified_types" - }, - { - "match": "(?<!:):(?!:)", - "name": "punctuation.separator.colon.range-based.cpp" - }, - { - "include": "#evaluation_context" - } - ] - }, - "pragma": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\b", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.pragma.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.definition.directive.cpp" - } - }, - "endCaptures": {}, - "name": "meta.preprocessor.pragma.cpp", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#string_context" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.cpp" - }, - { - "include": "#preprocessor_number_literal" - }, - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - "preprocessor_conditional_context": { - "patterns": [ - { - "include": "#preprocessor_conditional_defined" - }, - { - "include": "#comments" - }, - { - "include": "source.cpp#language_constants" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#d9bc4796b0b_preprocessor_number_literal" - }, - { - "include": "#operators" - }, - { - "include": "source.cpp#predefined_macros" - }, - { - "include": "source.cpp#macro_name" - }, - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - "preprocessor_conditional_defined": { - "begin": "((?<!\\w)defined(?!\\w))(\\()", - "end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.defined.cpp" - }, - "2": { - "name": "punctuation.section.parens.control.defined.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.control.defined.cpp" - } - }, - "patterns": [ - { - "include": "source.cpp#macro_name" - } - ] - }, - "preprocessor_conditional_parentheses": { - "begin": "\\(", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.cpp" - } - }, - "name": "meta.parens.preprocessor.conditional.cpp" - }, - "preprocessor_conditional_range": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:(?:ifndef|ifdef)|if))", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.conditional.$6.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.definition.directive.cpp" - }, - "6": {} - }, - "endCaptures": {}, - "contentName": "meta.preprocessor.conditional", - "patterns": [ - { - "include": "#preprocessor_conditional_context" - } - ] - }, - "preprocessor_context": { - "patterns": [ - { - "include": "source.cpp#pragma_mark" - }, - { - "include": "#pragma" - }, - { - "include": "source.cpp#include" - }, - { - "include": "#line" - }, - { - "include": "#diagnostic" - }, - { - "include": "source.cpp#undef" - }, - { - "include": "#preprocessor_conditional_range" - }, - { - "include": "source.cpp#single_line_macro" - }, - { - "include": "#macro" - }, - { - "include": "source.cpp#preprocessor_conditional_standalone" - }, - { - "include": "source.cpp#macro_argument" - } - ] - }, - "sizeof_operator": { - "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "sizeof_variadic_operator": { - "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof.variadic", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "square_brackets": { - "name": "meta.bracket.square.access", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.other.object" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square" - } - }, - "end": "\\]|(?=(?<!\\\\)\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "static_assert": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.other.static_assert.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp" - } - }, - "patterns": [ - { - "begin": "(,)(?:\\s+)?(?=(?:L|u8|u|U(?:\\s+)?\\\")?)", - "end": "(?=\\))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "endCaptures": {}, - "name": "meta.static_assert.message.cpp", - "patterns": [ - { - "include": "#string_context" - } - ] - }, - { - "include": "#evaluation_context" - } - ] - }, - "storage_types": { - "patterns": [ - { - "include": "source.cpp#storage_specifiers" - }, - { - "include": "source.cpp#inline_builtin_storage_type" - }, - { - "include": "#decltype" - }, - { - "include": "source.cpp#typename" - } - ] - }, - "string_context": { - "patterns": [ - { - "begin": "((?:u|u8|U|L)?)\"", - "end": "(\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - }, - "2": { - "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" - }, - "3": { - "name": "keyword.other.suffix.literal.user-defined.string.cpp" - } - }, - "name": "string.quoted.double.cpp", - "patterns": [ - { - "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", - "name": "constant.character.escape.cpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.cpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.cpp" - }, - { - "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", - "captures": { - "1": { - "name": "constant.character.escape.cpp" - }, - "2": { - "name": "invalid.illegal.unknown-escape.cpp" - } - } - }, - { - "include": "source.cpp#string_escapes_context_c" - } - ] - }, - { - "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'", - "end": "(')(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - }, - "2": { - "name": "keyword.other.suffix.literal.user-defined.reserved.character.cpp" - }, - "3": { - "name": "keyword.other.suffix.literal.user-defined.character.cpp" - } - }, - "name": "string.quoted.single.cpp", - "patterns": [ - { - "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", - "captures": { - "1": { - "name": "constant.character.escape.cpp" - }, - "2": { - "name": "invalid.illegal.unknown-escape.cpp" - } - } - }, - { - "include": "source.cpp#string_escapes_context_c" - }, - { - "include": "source.cpp#line_continuation_character" - } - ] - }, - { - "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(", - "end": "\\)(?:(?:_r|re)|regex)\\\"|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.double.raw.regex.cpp", - "patterns": [ - { - "include": "source.regexp.python" - } - ] - }, - { - "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(", - "end": "\\)(?:glsl|GLSL)\\\"|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "meta.string.quoted.double.raw.glsl.cpp", - "patterns": [ - { - "include": "source.glsl" - } - ] - }, - { - "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(", - "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "meta.string.quoted.double.raw.sql.cpp", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - }, - "1": { - "name": "meta.encoding" - }, - "3": { - "name": "invalid.illegal.delimiter-too-long" - } - }, - "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end" - }, - "2": { - "name": "invalid.illegal.delimiter-too-long" - }, - "3": { - "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" - }, - "4": { - "name": "keyword.other.suffix.literal.user-defined.string.cpp" - } - }, - "name": "string.quoted.double.raw" - } - ] - }, - "struct_block": { - "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.struct.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "name": "meta.head.struct.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "name": "meta.body.struct.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.struct.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" - } - }, - "name": "meta.conditional.switch.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "switch_statement": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)switch(?!\\w))", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.switch.cpp" - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.control.switch.cpp" - } - }, - "endCaptures": {}, - "name": "meta.block.switch.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" - } - }, - "name": "meta.head.switch.cpp", - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.switch.cpp" - } - }, - "name": "meta.body.switch.cpp", - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.switch.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "template_call_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#template_call_range" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#language_constants" - }, - { - "include": "source.cpp#scope_resolution_template_call_inner_generated" - }, - { - "include": "#operators" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma_in_template_argument" - }, - { - "include": "source.cpp#qualified_type" - } - ] - }, - "template_call_range": { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - "template_definition": { - "begin": "(?<!\\w)(template)(?:\\s+)?(<)", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.definition.cpp" - } - }, - "name": "meta.template.definition.cpp", - "patterns": [ - { - "begin": "(?<=\\w)(?:\\s+)?<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "include": "#template_definition_context" - } - ] - }, - "template_definition_context": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_template_definition_inner_generated" - }, - { - "include": "source.cpp#template_definition_argument" - }, - { - "include": "source.cpp#template_argument_defaulted" - }, - { - "include": "source.cpp#template_call_innards" - }, - { - "include": "#evaluation_context" - } - ] - }, - "ternary_operator": { - "begin": "\\?", - "end": ":|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#method_access" - }, - { - "include": "source.cpp#member_access" - }, - { - "include": "source.cpp#predefined_macros" - }, - { - "include": "#operators" - }, - { - "include": "source.cpp#memory_operators" - }, - { - "include": "source.cpp#wordlike_operators" - }, - { - "include": "source.cpp#type_casting_operators" - }, - { - "include": "source.cpp#control_flow_keywords" - }, - { - "include": "source.cpp#exception_keywords" - }, - { - "include": "source.cpp#the_this_keyword" - }, - { - "include": "source.cpp#language_constants" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "source.cpp#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "source.cpp#functional_specifiers_pre_parameters" - }, - { - "include": "#storage_types" - }, - { - "include": "#lambdas" - }, - { - "include": "#attributes_context" - }, - { - "include": "#parentheses" - }, - { - "include": "#function_call" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "include": "#square_brackets" - }, - { - "include": "source.cpp#semicolon" - }, - { - "include": "source.cpp#comma" - } - ], - "applyEndPatternLast": 1 - }, - "typedef_class": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)class(?!\\w))", - "end": "(?<=;)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.class.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, - "name": "meta.head.class.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "name": "meta.body.class.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.class.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_function_pointer": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))", - "end": "(?<=;)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", - "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "source.cpp#comma" - }, - { - "include": "source.cpp#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - } - ] - }, - "typedef_struct": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)struct(?!\\w))", - "end": "(?<=;)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.struct.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "name": "meta.head.struct.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "name": "meta.body.struct.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.struct.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_union": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)union(?!\\w))", - "end": "(?<=;)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.union.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.union.cpp" - } - }, - "name": "meta.head.union.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, - "name": "meta.body.union.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.union.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typeid_operator": { - "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" - } - }, - "contentName": "meta.arguments.operator.typeid", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "union_block": { - "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", - "beginCaptures": { - "0": { - "name": "meta.head.union.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "source.cpp#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.union.cpp" - } - }, - "name": "meta.head.union.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, - "name": "meta.body.union.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.union.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "using_namespace": { - "begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<6>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)", - "end": ";|(?=(?<!\\\\)\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp" - }, - "3": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_namespace_using_inner_generated" - } - ] - }, - "4": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - }, - "5": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "6": {}, - "7": { - "name": "entity.name.namespace.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.using-namespace.cpp" - } - } -} diff --git a/lib/grammars/cpp.tmLanguage.json b/lib/grammars/cpp.tmLanguage.json deleted file mode 100644 index 2529211..0000000 --- a/lib/grammars/cpp.tmLanguage.json +++ /dev/null @@ -1,16474 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6", - "name": "cpp", - "scopeName": "source.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#constructor_root" - }, - { - "include": "#destructor_root" - }, - { - "include": "#function_definition" - }, - { - "include": "#operator_overload" - }, - { - "include": "#using_namespace" - }, - { - "include": "#type_alias" - }, - { - "include": "#using_name" - }, - { - "include": "#namespace_alias" - }, - { - "include": "#namespace_block" - }, - { - "include": "#extern_block" - }, - { - "include": "#typedef_class" - }, - { - "include": "#typedef_struct" - }, - { - "include": "#typedef_union" - }, - { - "include": "#misc_keywords" - }, - { - "include": "#standard_declares" - }, - { - "include": "#class_block" - }, - { - "include": "#struct_block" - }, - { - "include": "#union_block" - }, - { - "include": "#enum_block" - }, - { - "include": "#template_isolated_definition" - }, - { - "include": "#template_definition" - }, - { - "include": "#template_explicit_instantiation" - }, - { - "include": "#access_control_keywords" - }, - { - "include": "#block" - }, - { - "include": "#static_assert" - }, - { - "include": "#assembly" - }, - { - "include": "#function_pointer" - }, - { - "include": "#evaluation_context" - } - ], - "repository": { - "access_control_keywords": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?:(?:protected)|(?:private)|(?:public)))(?:\\s+)?(:))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "storage.type.modifier.access.control.$4.cpp" - }, - "4": {}, - "5": { - "name": "punctuation.separator.colon.access.control.cpp" - } - } - }, - "alignas_attribute": { - "begin": "alignas\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "alignas_operator": { - "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" - } - }, - "contentName": "meta.arguments.operator.alignas", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "alignof_operator": { - "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" - } - }, - "contentName": "meta.arguments.operator.alignof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "assembly": { - "begin": "(\\b(?:__asm__|asm)\\b)(?:\\s+)?((?:volatile)?)", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "storage.type.asm.cpp" - }, - "2": { - "name": "storage.modifier.cpp" - } - }, - "endCaptures": {}, - "name": "meta.asm.cpp", - "patterns": [ - { - "match": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\n|$)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#comments" - }, - { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" - } - }, - "patterns": [ - { - "begin": "(R?)(\")", - "end": "\"", - "beginCaptures": { - "1": { - "name": "meta.encoding.cpp" - }, - "2": { - "name": "punctuation.definition.string.begin.assembly.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.assembly.cpp" - } - }, - "name": "string.quoted.double.cpp", - "contentName": "meta.embedded.assembly", - "patterns": [ - { - "include": "source.asm" - }, - { - "include": "source.x86" - }, - { - "include": "source.x86_64" - }, - { - "include": "source.arm" - }, - { - "include": "#backslash_escapes" - }, - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\[((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.other.asm.label.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": ":", - "name": "punctuation.separator.delimiter.colon.assembly.cpp" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "assignment_operator": { - "match": "\\=", - "name": "keyword.operator.assignment.cpp" - }, - "attributes_context": { - "patterns": [ - { - "include": "#cpp_attributes" - }, - { - "include": "#gcc_attributes" - }, - { - "include": "#ms_attributes" - }, - { - "include": "#alignas_attribute" - } - ] - }, - "backslash_escapes": { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape" - }, - "block": { - "begin": "{", - "end": "}", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.cpp" - } - }, - "name": "meta.block.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - "block_comment": { - "begin": "\\s*+(\\/\\*)", - "end": "\\*\\/", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.cpp" - } - }, - "name": "comment.block.cpp" - }, - "builtin_storage_type_initilizer": { - "begin": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)\\s*+(?<!\\w)(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "2": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "3": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "4": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "5": { - "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "case_statement": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)case(?!\\w))", - "end": ":", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.control.case.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.separator.colon.case.cpp" - } - }, - "name": "meta.conditional.case.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "class_block": { - "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.class.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, - "name": "meta.head.class.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "name": "meta.body.class.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.class.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "class_declare": { - "match": "((?<!\\w)class(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.class.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "comma": { - "match": ",", - "name": "punctuation.separator.delimiter.comma.cpp" - }, - "comma_in_template_argument": { - "match": ",", - "name": "punctuation.separator.delimiter.comma.template.argument.cpp" - }, - "comments": { - "patterns": [ - { - "begin": "^(?:\\s+)?+(\\/\\/[!\\/]+)", - "end": "(?<=\\n)(?<!\\\\\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.documentation.cpp" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.documentation.cpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.parameter.cpp" - }, - { - "match": ",", - "name": "punctuation.cpp" - } - ] - }, - "4": { - "name": "variable.parameter.cpp" - }, - "5": { - "name": "punctuation.cpp" - }, - "6": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", - "captures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - }, - "2": { - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.parameter.cpp" - }, - { - "match": ",", - "name": "punctuation.cpp" - } - ] - }, - "4": { - "name": "variable.parameter.cpp" - }, - "5": { - "name": "punctuation.cpp" - }, - "6": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - "3": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp" - }, - { - "begin": "(?:\\s+)?+\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s))", - "end": "[!*]*\\*\\/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp", - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.parameter.cpp" - }, - { - "match": ",", - "name": "punctuation.cpp" - } - ] - }, - "4": { - "name": "variable.parameter.cpp" - }, - "5": { - "name": "punctuation.cpp" - }, - "6": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "include": "#emacs_file_banner" - }, - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - }, - { - "include": "#invalid_comment_end" - } - ] - }, - "constructor_inline": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.constructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "patterns": [ - { - "include": "#functional_specifiers_pre_parameters" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "11": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.constructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.head.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.initializers.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "3": {}, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.cpp" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.constructor", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.body.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "constructor_root": { - "begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\10)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.constructor.cpp" - }, - "1": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.constructor.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "8": {}, - "9": { - "patterns": [ - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", - "name": "entity.name.type.constructor.cpp" - }, - { - "match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.function.definition.special.constructor.cpp" - }, - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" - } - ] - }, - "10": {}, - "11": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.constructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.head.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.initializers.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "3": {}, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.cpp" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.constructor", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.body.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "control_flow_keywords": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:co_return)|(?:co_yield)|(?:co_await)|(?:continue)|(?:default)|(?:switch)|(?:return)|(?:catch)|(?:while)|(?:throw)|(?:break)|(?:case)|(?:goto)|(?:else)|(?:for)|(?:try)|(?:if)|(?:do))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.control.$3.cpp" - } - } - }, - "cpp_attributes": { - "begin": "\\[\\[", - "end": "\\]\\]", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "curly_initializer": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": { - "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp" - } - }, - "name": "meta.initialization.cpp", - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "#comma" - } - ] - }, - "d9bc4796b0b_module_import": { - "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((import))(?:\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.control.directive.import.cpp" - }, - "5": { - "name": "string.quoted.other.lt-gt.include.cpp" - }, - "6": { - "name": "punctuation.definition.string.begin.cpp" - }, - "7": { - "name": "punctuation.definition.string.end.cpp" - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "name": "string.quoted.double.include.cpp" - }, - "11": { - "name": "punctuation.definition.string.begin.cpp" - }, - "12": { - "name": "punctuation.definition.string.end.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "15": { - "name": "entity.name.other.preprocessor.macro.include.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "18": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "19": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "22": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.preprocessor.import.cpp" - }, - "d9bc4796b0b_preprocessor_number_literal": { - "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*", - "captures": { - "0": { - "patterns": [ - { - "begin": "(?=.)", - "end": "$", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.cpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "constant.numeric.hexadecimal.cpp" - }, - "5": { - "name": "constant.numeric.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "7": { - "name": "keyword.other.unit.exponent.hexadecimal.cpp" - }, - "8": { - "name": "keyword.operator.plus.exponent.hexadecimal.cpp" - }, - "9": { - "name": "keyword.operator.minus.exponent.hexadecimal.cpp" - }, - "10": { - "name": "constant.numeric.exponent.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "11": { - "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" - } - } - }, - { - "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$", - "captures": { - "1": { - "name": "constant.numeric.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "2": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "3": { - "name": "constant.numeric.decimal.point.cpp" - }, - "4": { - "name": "constant.numeric.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "5": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "6": { - "name": "keyword.other.unit.exponent.decimal.cpp" - }, - "7": { - "name": "keyword.operator.plus.exponent.decimal.cpp" - }, - "8": { - "name": "keyword.operator.minus.exponent.decimal.cpp" - }, - "9": { - "name": "constant.numeric.exponent.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "10": { - "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" - } - } - }, - { - "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.binary.cpp" - }, - "2": { - "name": "constant.numeric.binary.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - } - } - }, - { - "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.octal.cpp" - }, - "2": { - "name": "constant.numeric.octal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.cpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "keyword.other.unit.exponent.hexadecimal.cpp" - }, - "5": { - "name": "keyword.operator.plus.exponent.hexadecimal.cpp" - }, - "6": { - "name": "keyword.operator.minus.exponent.hexadecimal.cpp" - }, - "7": { - "name": "constant.numeric.exponent.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "8": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - } - } - }, - { - "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", - "captures": { - "1": { - "name": "constant.numeric.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "2": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "3": { - "name": "keyword.other.unit.exponent.decimal.cpp" - }, - "4": { - "name": "keyword.operator.plus.exponent.decimal.cpp" - }, - "5": { - "name": "keyword.operator.minus.exponent.decimal.cpp" - }, - "6": { - "name": "constant.numeric.exponent.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "7": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - } - } - }, - { - "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+", - "name": "invalid.illegal.constant.numeric.cpp" - } - ] - } - ] - } - } - }, - "decltype": { - "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" - } - }, - "contentName": "meta.arguments.decltype", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "decltype_specifier": { - "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" - } - }, - "contentName": "meta.arguments.decltype", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "default_statement": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)default(?!\\w))", - "end": ":", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.control.default.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.separator.colon.case.default.cpp" - } - }, - "name": "meta.conditional.case.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "destructor_inline": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "#functional_specifiers_pre_parameters" - } - ] - }, - "11": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.head.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.member.destructor", - "patterns": [] - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.body.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "destructor_root": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))~(?:\\14)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.destructor.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "11": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "12": {}, - "13": { - "patterns": [ - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", - "name": "entity.name.type.destructor.cpp" - }, - { - "match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.function.definition.special.member.destructor.cpp" - }, - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" - } - ] - }, - "14": {}, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "24": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "25": { - "name": "comment.block.cpp" - }, - "26": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.head.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.member.destructor", - "patterns": [] - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.body.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "diagnostic": { - "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$7.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.definition.directive.cpp" - }, - "7": {} - }, - "endCaptures": {}, - "name": "meta.preprocessor.diagnostic.$reference(directive).cpp", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "\"", - "end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.double.cpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.single.cpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": {}, - "endCaptures": {}, - "name": "string.unquoted.cpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "emacs_file_banner": { - "match": "(?:(^(?:\\s+)?((\\/\\/)(?:\\s+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:\\s+)?.+(?:\\s+)?(?:\\4)(?:\\s+)?(?:\\n|$)))|(^(?:\\s+)?((\\/\\*)(?:\\s+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:\\s+)?.+(?:\\s+)?(?:\\8)(?:\\s+)?\\*\\/)))", - "captures": { - "1": { - "name": "meta.toc-list.banner.double-slash.cpp" - }, - "2": { - "name": "comment.line.double-slash.cpp" - }, - "3": { - "name": "punctuation.definition.comment.cpp" - }, - "4": { - "name": "meta.banner.character.cpp" - }, - "5": { - "name": "meta.toc-list.banner.block.cpp" - }, - "6": { - "name": "comment.line.banner.cpp" - }, - "7": { - "name": "punctuation.definition.comment.cpp" - }, - "8": { - "name": "meta.banner.character.cpp" - } - } - }, - "empty_square_brackets": { - "name": "storage.modifier.array.bracket.square", - "match": "(?<!delete)\\[(?:\\s+)?\\]" - }, - "enum_block": { - "begin": "((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:\\s+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:\\s+)?(:)(?:\\s+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.enum.cpp" - }, - "1": { - "name": "storage.type.enum.cpp" - }, - "2": { - "name": "storage.type.enum.enum-key.$2.cpp" - }, - "3": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "name": "punctuation.separator.colon.type-specifier.cpp" - }, - "6": { - "patterns": [ - { - "include": "#scope_resolution_inner_generated" - } - ] - }, - "7": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "8": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": {}, - "10": { - "name": "entity.name.scope-resolution.cpp" - }, - "11": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "12": {}, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "17": { - "name": "storage.type.integral.$17.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.enum.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" - } - }, - "name": "meta.head.enum.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.enum.cpp" - } - }, - "name": "meta.body.enum.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#enumerator_list" - }, - { - "include": "#comments" - }, - { - "include": "#comma" - }, - { - "include": "#semicolon" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.enum.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "enum_declare": { - "match": "((?<!\\w)enum(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.enum.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "enumerator_list": { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(?:\\s+)?(?:(\\=)(?:\\s+)?(.+?)(?:\\s+)?)?(?:(?:((?:[,;](?!')|\\n))|(?=\\}[^']))|(?=(?:\\/\\/|\\/\\*)))", - "captures": { - "1": { - "name": "variable.other.enummember.cpp" - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "name": "keyword.operator.assignment.cpp" - }, - "4": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "5": { - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#semicolon" - } - ] - } - }, - "name": "meta.enum.definition.cpp" - }, - "evaluation_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "#number_literal" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#operators" - }, - { - "include": "#memory_operators" - }, - { - "include": "#wordlike_operators" - }, - { - "include": "#type_casting_operators" - }, - { - "include": "#control_flow_keywords" - }, - { - "include": "#exception_keywords" - }, - { - "include": "#the_this_keyword" - }, - { - "include": "#language_constants" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "include": "#storage_types" - }, - { - "include": "#lambdas" - }, - { - "include": "#attributes_context" - }, - { - "include": "#parentheses" - }, - { - "include": "#function_call" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "include": "#square_brackets" - }, - { - "include": "#semicolon" - }, - { - "include": "#comma" - } - ] - }, - "ever_present_context": { - "patterns": [ - { - "include": "#pragma_mark" - }, - { - "include": "#pragma" - }, - { - "include": "#include" - }, - { - "include": "#line" - }, - { - "include": "#diagnostic" - }, - { - "include": "#undef" - }, - { - "include": "#preprocessor_conditional_range" - }, - { - "include": "#single_line_macro" - }, - { - "include": "#macro" - }, - { - "include": "#preprocessor_conditional_standalone" - }, - { - "include": "#macro_argument" - }, - { - "include": "#comments" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "exception_keywords": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:throw)|(?:catch)|(?:try))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.control.exception.$3.cpp" - } - } - }, - "extern_block": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(extern)(?=\\s*\\\")", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.extern.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.type.extern.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.extern.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" - } - }, - "name": "meta.head.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.extern.cpp" - } - }, - "name": "meta.body.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - "function_body_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#using_namespace" - }, - { - "include": "#type_alias" - }, - { - "include": "#using_name" - }, - { - "include": "#namespace_alias" - }, - { - "include": "#typedef_class" - }, - { - "include": "#typedef_struct" - }, - { - "include": "#typedef_union" - }, - { - "include": "#misc_keywords" - }, - { - "include": "#standard_declares" - }, - { - "include": "#class_block" - }, - { - "include": "#struct_block" - }, - { - "include": "#union_block" - }, - { - "include": "#enum_block" - }, - { - "include": "#access_control_keywords" - }, - { - "include": "#block" - }, - { - "include": "#static_assert" - }, - { - "include": "#assembly" - }, - { - "include": "#function_pointer" - }, - { - "include": "#switch_statement" - }, - { - "include": "#goto_statement" - }, - { - "include": "#evaluation_context" - }, - { - "include": "#label" - } - ] - }, - "function_call": { - "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.function.call.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "11": {}, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "function_definition": { - "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?<!\\w)template(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.cpp" - }, - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.modifier.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "name": "storage.modifier.$8.cpp" - }, - "9": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "11": { - "name": "comment.block.cpp" - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "13": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "25": {}, - "26": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "28": { - "name": "comment.block.cpp" - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "30": {}, - "31": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "32": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "33": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "34": { - "name": "comment.block.cpp" - }, - "35": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "36": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "37": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "38": { - "name": "comment.block.cpp" - }, - "39": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "40": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "41": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "42": { - "name": "comment.block.cpp" - }, - "43": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "44": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "45": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "46": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "47": { - "name": "comment.block.cpp" - }, - "48": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "49": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] - }, - "50": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "51": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "52": {}, - "53": { - "name": "entity.name.function.definition.cpp" - }, - "54": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "55": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "56": { - "name": "comment.block.cpp" - }, - "57": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" - } - }, - "name": "meta.head.function.definition.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.cpp" - } - }, - "contentName": "meta.function.definition.parameters", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#parameter_or_maybe_value" - }, - { - "include": "#comma" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?<=^|\\))(?:\\s+)?(->)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "punctuation.definition.function.return-type.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "10": { - "name": "comment.block.cpp" - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "17": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "18": {}, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "23": {} - } - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" - } - }, - "name": "meta.body.function.definition.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function_parameter_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#parameter" - }, - { - "include": "#comma" - } - ] - }, - "function_pointer": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", - "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.other.definition.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "function_pointer_parameter": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", - "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.parameter.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "functional_specifiers_pre_parameters": { - "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))(?!\\w)", - "name": "storage.modifier.specifier.functional.pre-parameters.$0.cpp" - }, - "gcc_attributes": { - "begin": "__attribute(?:__)?\\s*\\(\\s*\\(", - "end": "\\)\\s*\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "goto_statement": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)goto(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.control.goto.cpp" - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "6": { - "name": "entity.name.label.call.cpp" - } - } - }, - "identifier": { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*" - }, - "include": { - "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((#)(?:\\s+)?((?:include|include_next))\\b)(?:\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.control.directive.$5.cpp" - }, - "4": { - "name": "punctuation.definition.directive.cpp" - }, - "6": { - "name": "string.quoted.other.lt-gt.include.cpp" - }, - "7": { - "name": "punctuation.definition.string.begin.cpp" - }, - "8": { - "name": "punctuation.definition.string.end.cpp" - }, - "9": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "10": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "11": { - "name": "string.quoted.double.include.cpp" - }, - "12": { - "name": "punctuation.definition.string.begin.cpp" - }, - "13": { - "name": "punctuation.definition.string.end.cpp" - }, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "16": { - "name": "entity.name.other.preprocessor.macro.include.cpp" - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "21": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "22": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - }, - "name": "meta.preprocessor.include.cpp" - }, - "inheritance_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.inheritance.cpp" - }, - { - "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)", - "name": "storage.type.modifier.access.$0.cpp" - }, - { - "match": "(?<!\\w)virtual(?!\\w)", - "name": "storage.type.modifier.virtual.cpp" - }, - { - "match": "(?<=protected|virtual|private|public|,|:)(?:\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": {}, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": {} - } - } - ] - }, - "inline_builtin_storage_type": { - "match": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)", - "captures": { - "1": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "2": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "3": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "4": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - } - } - }, - "inline_comment": { - "match": "(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - "invalid_comment_end": { - "match": "\\*\\/", - "name": "invalid.illegal.unexpected.punctuation.definition.comment.end.cpp" - }, - "label": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\b(?<!case|default)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "entity.name.label.cpp" - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "6": { - "name": "punctuation.separator.label.cpp" - } - } - }, - "lambdas": { - "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))", - "end": "(?<=[;}])", - "beginCaptures": { - "1": { - "name": "punctuation.definition.capture.begin.lambda.cpp" - }, - "2": { - "name": "meta.lambda.capture.cpp", - "patterns": [ - { - "include": "#the_this_keyword" - }, - { - "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))", - "captures": { - "1": { - "name": "variable.parameter.capture.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.separator.delimiter.comma.cpp" - }, - "7": { - "name": "keyword.operator.assignment.cpp" - } - } - }, - { - "include": "#evaluation_context" - } - ] - }, - "3": {}, - "4": { - "name": "punctuation.definition.capture.end.lambda.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.lambda.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.lambda.cpp" - } - }, - "name": "meta.function.definition.parameters.lambda.cpp", - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - { - "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)", - "name": "storage.modifier.lambda.$0.cpp" - }, - { - "begin": "->", - "end": "(?=\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.lambda.return-type.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\S+", - "name": "storage.type.return-type.lambda.cpp" - } - ] - }, - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" - } - }, - "name": "meta.function.definition.body.lambda.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "language_constants": { - "match": "(?<!\\w)(?:(?:nullptr)|(?:false)|(?:NULL)|(?:true))(?!\\w)", - "name": "constant.language.$0.cpp" - }, - "line": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?line\\b", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.line.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.definition.directive.cpp" - } - }, - "endCaptures": {}, - "name": "meta.preprocessor.line.cpp", - "patterns": [ - { - "include": "#string_context" - }, - { - "include": "#preprocessor_number_literal" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "line_comment": { - "begin": "\\s*+(\\/\\/)", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.cpp" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.cpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - "line_continuation_character": { - "match": "\\\\\\n", - "name": "constant.character.escape.line-continuation.cpp" - }, - "macro": { - "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?define\\b)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.definition.directive.cpp" - }, - "7": { - "name": "entity.name.function.preprocessor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.preprocessor.macro.cpp", - "patterns": [ - { - "match": "\\G(?:\\s+)?(\\()([^\\(]*)(\\))", - "captures": { - "1": { - "name": "punctuation.definition.parameters.begin.preprocessor.cpp" - }, - "2": { - "name": "meta.function.preprocessor.parameters.cpp", - "patterns": [ - { - "match": "(?<=[(,])(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?", - "captures": { - "1": { - "name": "variable.parameter.preprocessor.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.parameters.cpp" - }, - { - "match": "\\.\\.\\.", - "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp" - } - ] - }, - "3": { - "name": "punctuation.definition.parameters.end.preprocessor.cpp" - } - } - }, - { - "include": "#macro_context" - }, - { - "include": "#macro_argument" - } - ] - }, - "macro_argument": { - "match": "##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "variable.other.macro.argument.cpp" - }, - "macro_context": { - "patterns": [ - { - "include": "source.cpp.embedded.macro" - } - ] - }, - "macro_name": { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.function.preprocessor.cpp" - }, - "member_access": { - "match": "(?:((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "variable.language.this.cpp" - }, - "4": { - "name": "variable.other.object.access.cpp" - }, - "5": { - "name": "punctuation.separator.dot-access.cpp" - }, - "6": { - "name": "punctuation.separator.pointer-access.cpp" - }, - "7": { - "patterns": [ - { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.property.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - } - ] - }, - "8": { - "name": "variable.other.property.cpp" - } - } - }, - "memory_operators": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.operator.wordlike.cpp" - }, - "4": { - "name": "keyword.operator.delete.array.cpp" - }, - "5": { - "name": "keyword.operator.delete.array.bracket.cpp" - }, - "6": { - "name": "keyword.operator.delete.cpp" - }, - "7": { - "name": "keyword.operator.new.cpp" - } - } - }, - "method_access": { - "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - }, - "9": { - "patterns": [ - { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.property.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - } - ] - }, - "10": { - "name": "entity.name.function.member.cpp" - }, - "11": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "misc_keywords": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:constinit)|(?:requires)|(?:typedef)|(?:concept)|(?:export)|(?:module))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.other.$3.cpp" - } - } - }, - "ms_attributes": { - "begin": "__declspec\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - { - "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.namespace.cpp" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.attribute.cpp" - }, - { - "match": ":", - "name": "punctuation.accessor.attribute.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", - "name": "entity.name.namespace.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.other.attribute.$0.cpp" - }, - { - "include": "#number_literal" - }, - { - "include": "#ever_present_context" - } - ] - }, - "namespace_alias": { - "match": "(?<!\\w)(namespace)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(\\=)(?:\\s+)?(((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(;)|\\n))", - "captures": { - "1": { - "name": "keyword.other.namespace.alias.cpp storage.type.namespace.alias.cpp" - }, - "2": { - "name": "entity.name.namespace.alias.cpp" - }, - "3": { - "name": "keyword.operator.assignment.cpp" - }, - "4": { - "name": "meta.declaration.namespace.alias.value.cpp" - }, - "5": { - "patterns": [ - { - "include": "#scope_resolution_namespace_alias_inner_generated" - } - ] - }, - "6": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - }, - "7": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": { - "name": "entity.name.namespace.cpp" - }, - "10": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.declaration.namespace.alias.cpp" - }, - "namespace_block": { - "begin": "((?<!\\w)namespace(?!\\w))", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.namespace.cpp" - }, - "1": { - "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp" - } - }, - "endCaptures": {}, - "name": "meta.block.namespace.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" - } - }, - "name": "meta.head.namespace.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#attributes_context" - }, - { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<4>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(::)(?:\\s+)?(inline))?", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_block_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.namespace.cpp" - }, - "6": { - "name": "punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "7": { - "name": "storage.modifier.inline.cpp" - } - } - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" - } - }, - "name": "meta.body.namespace.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.namespace.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "noexcept_operator": { - "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" - } - }, - "contentName": "meta.arguments.operator.noexcept", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "number_literal": { - "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*", - "captures": { - "0": { - "patterns": [ - { - "begin": "(?=.)", - "end": "$", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.cpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "constant.numeric.hexadecimal.cpp" - }, - "5": { - "name": "constant.numeric.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "7": { - "name": "keyword.other.unit.exponent.hexadecimal.cpp" - }, - "8": { - "name": "keyword.operator.plus.exponent.hexadecimal.cpp" - }, - "9": { - "name": "keyword.operator.minus.exponent.hexadecimal.cpp" - }, - "10": { - "name": "constant.numeric.exponent.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "11": { - "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" - }, - "12": { - "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" - } - } - }, - { - "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)", - "captures": { - "1": { - "name": "constant.numeric.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "2": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "3": { - "name": "constant.numeric.decimal.point.cpp" - }, - "4": { - "name": "constant.numeric.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "5": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "6": { - "name": "keyword.other.unit.exponent.decimal.cpp" - }, - "7": { - "name": "keyword.operator.plus.exponent.decimal.cpp" - }, - "8": { - "name": "keyword.operator.minus.exponent.decimal.cpp" - }, - "9": { - "name": "constant.numeric.exponent.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "10": { - "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" - }, - "11": { - "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" - } - } - }, - { - "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)", - "captures": { - "1": { - "name": "keyword.other.unit.binary.cpp" - }, - "2": { - "name": "constant.numeric.binary.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - }, - "5": { - "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" - } - } - }, - { - "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)", - "captures": { - "1": { - "name": "keyword.other.unit.octal.cpp" - }, - "2": { - "name": "constant.numeric.octal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - }, - "5": { - "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.cpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "4": { - "name": "keyword.other.unit.exponent.hexadecimal.cpp" - }, - "5": { - "name": "keyword.operator.plus.exponent.hexadecimal.cpp" - }, - "6": { - "name": "keyword.operator.minus.exponent.hexadecimal.cpp" - }, - "7": { - "name": "constant.numeric.exponent.hexadecimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "8": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - }, - "9": { - "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" - } - } - }, - { - "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)", - "captures": { - "1": { - "name": "constant.numeric.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "2": { - "name": "punctuation.separator.constant.numeric.cpp" - }, - "3": { - "name": "keyword.other.unit.exponent.decimal.cpp" - }, - "4": { - "name": "keyword.operator.plus.exponent.decimal.cpp" - }, - "5": { - "name": "keyword.operator.minus.exponent.decimal.cpp" - }, - "6": { - "name": "constant.numeric.exponent.decimal.cpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.cpp" - } - ] - }, - "7": { - "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" - }, - "8": { - "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" - } - } - }, - { - "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+", - "name": "invalid.illegal.constant.numeric.cpp" - } - ] - } - ] - } - } - }, - "operator_overload": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:\\[\\])?)))|(\"\")((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\<|\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.operator-overload.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "12": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "13": { - "name": "comment.block.cpp" - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "15": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "17": {}, - "18": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "20": { - "name": "comment.block.cpp" - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "22": {}, - "23": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "33": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "34": { - "name": "comment.block.cpp" - }, - "35": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "36": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "37": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "38": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "39": { - "name": "comment.block.cpp" - }, - "40": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "41": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "42": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "43": { - "name": "comment.block.cpp" - }, - "44": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "45": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.operator.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "46": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "47": {}, - "48": { - "name": "keyword.other.operator.overload.cpp" - }, - "49": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "50": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "51": { - "name": "comment.block.cpp" - }, - "52": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "53": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.operator-overload.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "54": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "55": {}, - "56": { - "name": "entity.name.operator.cpp" - }, - "57": { - "name": "entity.name.operator.type.cpp" - }, - "58": { - "patterns": [ - { - "match": "\\*", - "name": "entity.name.operator.type.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "entity.name.operator.type.reference.cpp" - } - ] - }, - "59": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "60": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "61": { - "name": "comment.block.cpp" - }, - "62": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "63": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "64": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "65": { - "name": "comment.block.cpp" - }, - "66": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "67": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "68": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "69": { - "name": "comment.block.cpp" - }, - "70": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "71": { - "name": "entity.name.operator.type.array.cpp" - }, - "72": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "73": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "74": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "75": { - "name": "comment.block.cpp" - }, - "76": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "77": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "78": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "79": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "80": { - "name": "comment.block.cpp" - }, - "81": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" - } - }, - "name": "meta.head.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#template_call_range" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.operator-overload", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "keyword.other.default.function.cpp" - }, - "7": { - "name": "keyword.other.delete.function.cpp" - } - } - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" - } - }, - "name": "meta.body.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "operators": { - "patterns": [ - { - "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" - } - }, - "contentName": "meta.arguments.operator.alignof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" - } - }, - "contentName": "meta.arguments.operator.alignas", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" - } - }, - "contentName": "meta.arguments.operator.typeid", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" - } - }, - "contentName": "meta.arguments.operator.noexcept", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof.variadic", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "--", - "name": "keyword.operator.decrement.cpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.cpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=", - "name": "keyword.operator.assignment.compound.cpp" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.cpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.cpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.cpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.cpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.bitwise.cpp" - }, - { - "include": "#assignment_operator" - }, - { - "match": "%|\\*|\\/|-|\\+", - "name": "keyword.operator.arithmetic.cpp" - }, - { - "include": "#ternary_operator" - } - ] - }, - "over_qualified_types": { - "patterns": [ - { - "match": "(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.struct.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - { - "match": "(\\benum)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.enum.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - { - "match": "(\\bunion)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.union.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - { - "match": "(\\bclass)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.class.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - } - ] - }, - "parameter": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "name": "meta.parameter.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "#function_pointer_parameter" - }, - { - "include": "#decltype" - }, - { - "include": "#vararg_ellipses" - }, - { - "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": {}, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\=", - "name": "keyword.operator.assignment.cpp" - }, - { - "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\)|,|\\[|=|\\n)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } - }, - "name": "meta.bracket.square.array.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", - "name": "entity.name.type.parameter.cpp" - }, - { - "include": "#template_call_range" - }, - { - "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#ever_present_context" - } - ] - }, - "parameter_class": { - "match": "(\\bclass)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.class.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "parameter_enum": { - "match": "(\\benum)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.enum.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "parameter_or_maybe_value": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "name": "meta.parameter.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#function_pointer_parameter" - }, - { - "include": "#memory_operators" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "#curly_initializer" - }, - { - "include": "#decltype" - }, - { - "include": "#vararg_ellipses" - }, - { - "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#function_call" - }, - { - "include": "#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": {}, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } - }, - "name": "meta.bracket.square.array.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", - "name": "entity.name.type.parameter.cpp" - }, - { - "include": "#template_call_range" - }, - { - "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "include": "#evaluation_context" - }, - { - "include": "#ever_present_context" - } - ] - }, - "parameter_struct": { - "match": "(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.struct.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "parameter_union": { - "match": "(\\bunion)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.union.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "parentheses": { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.cpp" - } - }, - "name": "meta.parens.cpp", - "patterns": [ - { - "include": "#over_qualified_types" - }, - { - "match": "(?<!:):(?!:)", - "name": "punctuation.separator.colon.range-based.cpp" - }, - { - "include": "#evaluation_context" - } - ] - }, - "pragma": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\b", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.pragma.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.definition.directive.cpp" - } - }, - "endCaptures": {}, - "name": "meta.preprocessor.pragma.cpp", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#string_context" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.cpp" - }, - { - "include": "#preprocessor_number_literal" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "pragma_mark": { - "match": "(^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\s+mark)\\s+(.*)", - "captures": { - "1": { - "name": "keyword.control.directive.pragma.pragma-mark.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "punctuation.definition.directive.cpp" - }, - "5": { - "name": "entity.name.tag.pragma-mark.cpp" - } - }, - "name": "meta.preprocessor.pragma.cpp" - }, - "predefined_macros": { - "patterns": [ - { - "match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b", - "captures": { - "1": { - "name": "entity.name.other.preprocessor.macro.predefined.$1.cpp" - } - } - }, - { - "match": "\\b__([A-Z_]+)__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$1.cpp" - } - ] - }, - "preprocessor_conditional_context": { - "patterns": [ - { - "include": "#preprocessor_conditional_defined" - }, - { - "include": "#comments" - }, - { - "include": "#language_constants" - }, - { - "include": "#string_context" - }, - { - "include": "#d9bc4796b0b_preprocessor_number_literal" - }, - { - "include": "#operators" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#macro_name" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "preprocessor_conditional_defined": { - "begin": "((?<!\\w)defined(?!\\w))(\\()", - "end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.defined.cpp" - }, - "2": { - "name": "punctuation.section.parens.control.defined.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.control.defined.cpp" - } - }, - "patterns": [ - { - "include": "#macro_name" - } - ] - }, - "preprocessor_conditional_parentheses": { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.cpp" - } - }, - "name": "meta.parens.preprocessor.conditional.cpp" - }, - "preprocessor_conditional_range": { - "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:(?:ifndef|ifdef)|if))", - "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.conditional.$6.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.definition.directive.cpp" - }, - "6": {} - }, - "endCaptures": {}, - "contentName": "meta.preprocessor.conditional", - "patterns": [ - { - "include": "#preprocessor_conditional_context" - } - ] - }, - "preprocessor_conditional_standalone": { - "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?<!\\w)(?:endif|else|elif)(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "punctuation.definition.directive.cpp" - } - }, - "name": "keyword.control.directive.$4.cpp" - }, - "preprocessor_context": { - "patterns": [ - { - "include": "#pragma_mark" - }, - { - "include": "#pragma" - }, - { - "include": "#include" - }, - { - "include": "#line" - }, - { - "include": "#diagnostic" - }, - { - "include": "#undef" - }, - { - "include": "#preprocessor_conditional_range" - }, - { - "include": "#single_line_macro" - }, - { - "include": "#macro" - }, - { - "include": "#preprocessor_conditional_standalone" - }, - { - "include": "#macro_argument" - } - ] - }, - "qualified_type": { - "match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])", - "captures": { - "0": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "6": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "10": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - }, - "name": "meta.qualified_type.cpp" - }, - "qualifiers_and_specifiers_post_parameters": { - "match": "((?:(?:(?:(?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)(?<!\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\w))+)(?=\\s*(?:\\{|;|\\n|\\r|=))", - "captures": { - "1": { - "patterns": [ - { - "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "storage.modifier.specifier.functional.post-parameters.$5.cpp" - } - } - } - ] - } - } - }, - "scope_resolution": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_call": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_call_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_call_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.function.call.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - } - } - }, - "scope_resolution_function_definition": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_definition_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.function.definition.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - } - } - }, - "scope_resolution_function_definition_operator_overload": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_operator_overload_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_definition_operator_overload_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_operator_overload_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - } - } - }, - "scope_resolution_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - } - } - }, - "scope_resolution_namespace_alias": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_alias_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_namespace_alias_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_alias_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.namespace.alias.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - } - } - }, - "scope_resolution_namespace_block": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_block_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_namespace_block_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_block_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.namespace.block.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - } - } - }, - "scope_resolution_namespace_using": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_using_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_namespace_using_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_using_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.namespace.using.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - } - } - }, - "scope_resolution_parameter": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_parameter_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_parameter_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_parameter_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.parameter.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" - } - } - }, - "scope_resolution_template_call": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_template_call_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_template_call_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_template_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.template.call.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" - } - } - }, - "scope_resolution_template_definition": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_template_definition_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_template_definition_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_template_definition_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.template.definition.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" - } - } - }, - "semicolon": { - "match": ";", - "name": "punctuation.terminator.statement.cpp" - }, - "simple_type": { - "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?", - "captures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": {}, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": {}, - "13": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "single_line_macro": { - "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))#define.*(?<![\\\\])(?:\\n|$)", - "captures": { - "0": { - "patterns": [ - { - "include": "#macro" - }, - { - "include": "#comments" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "sizeof_operator": { - "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "sizeof_variadic_operator": { - "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof.variadic", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "square_brackets": { - "name": "meta.bracket.square.access", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.other.object" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "standard_declares": { - "patterns": [ - { - "match": "((?<!\\w)struct(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.struct.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - { - "match": "((?<!\\w)union(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.union.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - { - "match": "((?<!\\w)enum(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.enum.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - { - "match": "((?<!\\w)class(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.class.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - } - ] - }, - "static_assert": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.other.static_assert.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp" - } - }, - "patterns": [ - { - "begin": "(,)(?:\\s+)?(?=(?:L|u8|u|U(?:\\s+)?\\\")?)", - "end": "(?=\\))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "endCaptures": {}, - "name": "meta.static_assert.message.cpp", - "patterns": [ - { - "include": "#string_context" - } - ] - }, - { - "include": "#evaluation_context" - } - ] - }, - "std_space": { - "match": "(?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)", - "captures": { - "0": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "1": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "storage_specifiers": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "storage.modifier.specifier.$3.cpp" - } - } - }, - "storage_types": { - "patterns": [ - { - "include": "#storage_specifiers" - }, - { - "include": "#inline_builtin_storage_type" - }, - { - "include": "#decltype" - }, - { - "include": "#typename" - } - ] - }, - "string_context": { - "patterns": [ - { - "begin": "((?:u|u8|U|L)?)\"", - "end": "(\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - }, - "2": { - "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" - }, - "3": { - "name": "keyword.other.suffix.literal.user-defined.string.cpp" - } - }, - "name": "string.quoted.double.cpp", - "patterns": [ - { - "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", - "name": "constant.character.escape.cpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.cpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.cpp" - }, - { - "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", - "captures": { - "1": { - "name": "constant.character.escape.cpp" - }, - "2": { - "name": "invalid.illegal.unknown-escape.cpp" - } - } - }, - { - "include": "#string_escapes_context_c" - } - ] - }, - { - "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'", - "end": "(')(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cpp" - }, - "2": { - "name": "keyword.other.suffix.literal.user-defined.reserved.character.cpp" - }, - "3": { - "name": "keyword.other.suffix.literal.user-defined.character.cpp" - } - }, - "name": "string.quoted.single.cpp", - "patterns": [ - { - "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", - "captures": { - "1": { - "name": "constant.character.escape.cpp" - }, - "2": { - "name": "invalid.illegal.unknown-escape.cpp" - } - } - }, - { - "include": "#string_escapes_context_c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(", - "end": "\\)(?:(?:_r|re)|regex)\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.double.raw.regex.cpp", - "patterns": [ - { - "include": "source.regexp.python" - } - ] - }, - { - "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(", - "end": "\\)(?:glsl|GLSL)\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "meta.string.quoted.double.raw.glsl.cpp", - "patterns": [ - { - "include": "source.glsl" - } - ] - }, - { - "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(", - "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "meta.string.quoted.double.raw.sql.cpp", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - }, - "1": { - "name": "meta.encoding" - }, - "3": { - "name": "invalid.illegal.delimiter-too-long" - } - }, - "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end" - }, - "2": { - "name": "invalid.illegal.delimiter-too-long" - }, - "3": { - "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" - }, - "4": { - "name": "keyword.other.suffix.literal.user-defined.string.cpp" - } - }, - "name": "string.quoted.double.raw" - } - ] - }, - "string_escapes_context_c": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape" - }, - { - "match": "(?x) (?!%')(?!%\")%\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder" - } - ] - }, - "struct_block": { - "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.struct.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "name": "meta.head.struct.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "name": "meta.body.struct.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.struct.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "struct_declare": { - "match": "((?<!\\w)struct(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.struct.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "switch_conditional_parentheses": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" - } - }, - "name": "meta.conditional.switch.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "switch_statement": { - "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)switch(?!\\w))", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.switch.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "5": { - "name": "keyword.control.switch.cpp" - } - }, - "endCaptures": {}, - "name": "meta.block.switch.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" - } - }, - "name": "meta.head.switch.cpp", - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.switch.cpp" - } - }, - "name": "meta.body.switch.cpp", - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.switch.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "template_argument_defaulted": { - "match": "(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)", - "captures": { - "1": { - "name": "storage.type.template.argument.$1.cpp" - }, - "2": { - "name": "entity.name.type.template.cpp" - }, - "3": { - "name": "keyword.operator.assignment.cpp" - } - } - }, - "template_call_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#template_call_range" - }, - { - "include": "#storage_types" - }, - { - "include": "#language_constants" - }, - { - "include": "#scope_resolution_template_call_inner_generated" - }, - { - "include": "#operators" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma_in_template_argument" - }, - { - "include": "#qualified_type" - } - ] - }, - "template_call_innards": { - "match": "((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<1>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "meta.template.call.cpp" - }, - "template_call_range": { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - "template_definition": { - "begin": "(?<!\\w)(template)(?:\\s+)?(<)", - "end": ">", - "beginCaptures": { - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.definition.cpp" - } - }, - "name": "meta.template.definition.cpp", - "patterns": [ - { - "begin": "(?<=\\w)(?:\\s+)?<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "include": "#template_definition_context" - } - ] - }, - "template_definition_argument": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?<!\\w)(template)(?:\\s+)?(<)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(>)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "storage.type.template.argument.$3.cpp" - }, - "4": { - "patterns": [ - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "storage.type.template.argument.$0.cpp" - } - ] - }, - "5": { - "name": "entity.name.type.template.cpp" - }, - "6": { - "name": "storage.type.template.argument.$6.cpp" - }, - "7": { - "name": "punctuation.vararg-ellipses.template.definition.cpp" - }, - "8": { - "name": "entity.name.type.template.cpp" - }, - "9": { - "name": "storage.type.template.cpp" - }, - "10": { - "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" - }, - "11": { - "name": "storage.type.template.argument.$11.cpp" - }, - "12": { - "name": "entity.name.type.template.cpp" - }, - "13": { - "name": "punctuation.section.angle-brackets.end.template.definition.cpp" - }, - "14": { - "name": "storage.type.template.argument.$14.cpp" - }, - "15": { - "name": "entity.name.type.template.cpp" - }, - "16": { - "name": "keyword.operator.assignment.cpp" - }, - "17": { - "name": "punctuation.separator.delimiter.comma.template.argument.cpp" - } - } - }, - "template_definition_context": { - "patterns": [ - { - "include": "#scope_resolution_template_definition_inner_generated" - }, - { - "include": "#template_definition_argument" - }, - { - "include": "#template_argument_defaulted" - }, - { - "include": "#template_call_innards" - }, - { - "include": "#evaluation_context" - } - ] - }, - "template_explicit_instantiation": { - "match": "(?<!\\w)(?:(extern)\\s+)?(template)\\s+", - "captures": { - "1": { - "name": "storage.modifier.specifier.extern.cpp" - }, - "2": { - "name": "storage.type.template.cpp" - } - }, - "name": "meta.template.explicit-instantiation.cpp" - }, - "template_isolated_definition": { - "match": "(?<!\\w)(template)(?:\\s+)?(<)(.*)(>)(?:\\s+)?$", - "captures": { - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" - }, - "3": { - "name": "meta.template.definition.cpp", - "patterns": [ - { - "include": "#template_definition_context" - } - ] - }, - "4": { - "name": "punctuation.section.angle-brackets.end.template.definition.cpp" - } - } - }, - "ternary_operator": { - "begin": "\\?", - "end": ":", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "#number_literal" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#operators" - }, - { - "include": "#memory_operators" - }, - { - "include": "#wordlike_operators" - }, - { - "include": "#type_casting_operators" - }, - { - "include": "#control_flow_keywords" - }, - { - "include": "#exception_keywords" - }, - { - "include": "#the_this_keyword" - }, - { - "include": "#language_constants" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "include": "#storage_types" - }, - { - "include": "#lambdas" - }, - { - "include": "#attributes_context" - }, - { - "include": "#parentheses" - }, - { - "include": "#function_call" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "include": "#square_brackets" - }, - { - "include": "#semicolon" - }, - { - "include": "#comma" - } - ], - "applyEndPatternLast": 1 - }, - "the_this_keyword": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "variable.language.this.cpp" - } - } - }, - "type_alias": { - "match": "(using)\\s+(?!namespace)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(?:\\s+)?(\\=)(?:\\s+)?((?:typename)?)(?:\\s+)?((?:(?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)(?<!\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w)\\s+)+)?(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<19>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<19>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?<!;)))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?:(\\[)(\\w*)(\\])(?:\\s+)?)?(?:\\s+)?(?:(;)|\\n)", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "entity.name.type.cpp" - }, - "3": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "4": { - "name": "keyword.operator.assignment.cpp" - }, - "5": { - "name": "keyword.other.typename.cpp" - }, - "6": { - "patterns": [ - { - "include": "#storage_specifiers" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "9": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "14": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "15": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "20": { - "name": "meta.declaration.type.alias.value.unknown.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "21": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "22": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "23": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "26": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "27": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "28": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "29": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "30": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "31": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.declaration.type.alias.cpp" - }, - "type_casting_operators": { - "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:reinterpret_cast)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "3": { - "name": "keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp" - } - } - }, - "typedef_class": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)class(?!\\w))", - "end": "(?<=;)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.class.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, - "name": "meta.head.class.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "name": "meta.body.class.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.class.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_function_pointer": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))", - "end": "(?<=;)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", - "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "13": {}, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "16": { - "name": "comment.block.cpp" - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "18": {}, - "19": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - } - ] - }, - "typedef_struct": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)struct(?!\\w))", - "end": "(?<=;)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.struct.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "name": "meta.head.struct.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "name": "meta.body.struct.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.struct.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_union": { - "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)union(?!\\w))", - "end": "(?<=;)", - "beginCaptures": { - "1": { - "name": "keyword.other.typedef.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.union.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.union.cpp" - } - }, - "name": "meta.head.union.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, - "name": "meta.body.union.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.union.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typeid_operator": { - "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" - } - }, - "contentName": "meta.arguments.operator.typeid", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "typename": { - "match": "(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?<!\\w)typename(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<17>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<17>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "storage.modifier.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "6": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", - "name": "storage.type.$0.cpp" - }, - { - "include": "#attributes_context" - }, - { - "include": "#storage_types" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", - "name": "entity.name.scope-resolution.type.cpp" - }, - { - "include": "#template_call_range" - } - ] - }, - "13": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "14": {}, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "17": {} - } - }, - "undef": { - "match": "(^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?undef\\b)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", - "captures": { - "1": { - "name": "keyword.control.directive.undef.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "punctuation.definition.directive.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "7": { - "name": "entity.name.function.preprocessor.cpp" - } - }, - "name": "meta.preprocessor.undef.cpp" - }, - "union_block": { - "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.union.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "11": { - "patterns": [ - { - "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.union.cpp" - } - }, - "name": "meta.head.union.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, - "name": "meta.body.union.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.union.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "union_declare": { - "match": "((?<!\\w)union(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.union.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - } - } - } - ] - } - } - }, - "using_name": { - "match": "(using)\\s+(?!namespace\\b)", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - } - } - }, - "using_namespace": { - "begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<6>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp" - }, - "3": { - "patterns": [ - { - "include": "#scope_resolution_namespace_using_inner_generated" - } - ] - }, - "4": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - }, - "5": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "6": {}, - "7": { - "name": "entity.name.namespace.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.using-namespace.cpp" - }, - "vararg_ellipses": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.cpp" - }, - "wordlike_operators": { - "patterns": [ - { - "match": "(?<!\\w)(?:(?:noexcept)|(?:xor_eq)|(?:and_eq)|(?:delete)|(?:not_eq)|(?:bitand)|(?:bitor)|(?:compl)|(?:or_eq)|(?:not)|(?:xor)|(?:new)|(?:and)|(?:or))(?!\\w)", - "name": "keyword.operator.wordlike.cpp keyword.operator.$0.cpp" - } - ] - } - } -} diff --git a/lib/grammars/crystal.tmLanguage.json b/lib/grammars/crystal.tmLanguage.json deleted file mode 100644 index c827904..0000000 --- a/lib/grammars/crystal.tmLanguage.json +++ /dev/null @@ -1,1868 +0,0 @@ -{ - "information_for_contributors": [ - "This file is based on https://github.com/Microsoft/vscode/blob/master/extensions/ruby/syntaxes/ruby.tmLanguage.json" - ], - "version": "https://github.com/Microsoft/vscode/blob/3f1f36333d3453f67a36b6bfb1206e9159e9c4f0/extensions/ruby/syntaxes/ruby.tmLanguage.json", - "name": "crystal", - "scopeName": "source.crystal", - "fileTypes": ["cr"], - "firstLineMatch": "^#!/.*\\bcrystal", - "foldingStartMarker": "(?x)^(\\s*+(annotation|module|class|struct|union|enum|def(?!.*\\bend\\s*$)|unless|if|case|begin|for|while|until|^=begin|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\s(do|begin|case)|(?<!\\$)[-+=&|*/~%^<>~]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\{(?![^}]*+\\})|\\[(?![^\\]]*+\\]))).*$|[#].*?\\(fold\\)\\s*+$", - "foldingStopMarker": "(?x)((^|;)\\s*+end\\s*+([#].*)?$|(^|;)\\s*+end\\..*$|^\\s*+[}\\]] ,?\\s*+([#].*)?$|[#].*?\\(end\\)\\s*+$|^=end)", - "keyEquivalent": "^~R", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.control.class.crystal" - }, - "2": { - "name": "keyword.control.class.crystal" - }, - "3": { - "name": "entity.name.type.class.crystal" - }, - "5": { - "name": "punctuation.separator.crystal" - }, - "6": { - "name": "support.class.other.type-param.crystal" - }, - "7": { - "name": "entity.other.inherited-class.crystal" - }, - "8": { - "name": "punctuation.separator.crystal" - }, - "9": { - "name": "punctuation.separator.crystal" - }, - "10": { - "name": "support.class.other.type-param.crystal" - }, - "11": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(?x)^\\s*(abstract)?\\s*(class|struct|union|annotation|enum)\\s+(([.A-Z_:\\x{80}-\\x{10FFFF}][.\\w:\\x{80}-\\x{10FFFF}]*(\\(([,\\s.a-zA-Z0-9_:\\x{80}-\\x{10FFFF}]+)\\))?(\\s*(<)\\s*[.:A-Z\\x{80}-\\x{10FFFF}][.:\\w\\x{80}-\\x{10FFFF}]*(\\(([.a-zA-Z0-9_:]+\\s,)\\))?)?)|((<<)\\s*[.A-Z0-9_:\\x{80}-\\x{10FFFF}]+))", - "name": "meta.class.crystal" - }, - { - "captures": { - "1": { - "name": "keyword.control.module.crystal" - }, - "2": { - "name": "entity.name.type.module.crystal" - }, - "3": { - "name": "entity.other.inherited-class.module.first.crystal" - }, - "4": { - "name": "punctuation.separator.inheritance.crystal" - }, - "5": { - "name": "entity.other.inherited-class.module.second.crystal" - }, - "6": { - "name": "punctuation.separator.inheritance.crystal" - }, - "7": { - "name": "entity.other.inherited-class.module.third.crystal" - }, - "8": { - "name": "punctuation.separator.inheritance.crystal" - } - }, - "match": "^\\s*(module)\\s+(([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))*[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)", - "name": "meta.module.crystal" - }, - { - "captures": { - "1": { - "name": "keyword.control.lib.crystal" - }, - "2": { - "name": "entity.name.type.lib.crystal" - }, - "3": { - "name": "entity.other.inherited-class.lib.first.crystal" - }, - "4": { - "name": "punctuation.separator.inheritance.crystal" - }, - "5": { - "name": "entity.other.inherited-class.lib.second.crystal" - }, - "6": { - "name": "punctuation.separator.inheritance.crystal" - }, - "7": { - "name": "entity.other.inherited-class.lib.third.crystal" - }, - "8": { - "name": "punctuation.separator.inheritance.crystal" - } - }, - "match": "^\\s*(lib)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)", - "name": "meta.lib.crystal" - }, - { - "captures": { - "1": { - "name": "keyword.control.lib.type.crystal" - }, - "2": { - "name": "entity.name.lib.type.crystal" - }, - "3": { - "name": "keyword.control.lib.crystal" - }, - "4": { - "name": "entity.name.lib.type.value.crystal" - } - }, - "comment": "type in lib", - "match": "(?<!\\.)\\b(type)\\s+([A-Z]\\w+)\\s*(=)\\s*(.+)", - "name": "meta.lib.type.crystal" - }, - { - "comment": "everything being a reserved word, not a value and needing a 'end' is a..", - "match": "(?<!\\.)\\b(fun|begin|case|class|else|elsif|end|ensure|enum|for|if|macro|module|rescue|struct|then|union|unless|until|when|while)\\b(?![?!:])", - "name": "keyword.control.crystal" - }, - { - "comment": "everything being a reserved word, not a value and not needing a 'end' is a..", - "match": "(?<!\\.)\\b(abstract|alias|asm|break|extend|in|include|next|of|private|protected|struct|return|select|super|with|yield)\\b(?![?!:])", - "name": "keyword.control.primary.crystal" - }, - { - "comment": "contextual smart pair support for block parameters", - "match": "(?<!\\.)\\bdo\\b\\s*", - "name": "keyword.control.start-block.crystal" - }, - { - "comment": "contextual smart pair support", - "match": "(?<=\\{)(\\s+)", - "name": "meta.syntax.crystal.start-block" - }, - { - "comment": "Just as above but being not a logical operation", - "match": "(?<!\\.)\\b(pointerof|typeof|sizeof|instance_sizeof|offsetof|previous_def|forall|out|uninitialized)\\b(?![?!:])|\\.(is_a\\?|nil\\?|responds_to\\?|as\\?|as\b)", - "name": "keyword.control.pseudo-method.crystal" - }, - { - "match": "\\bnil\\b(?![?!:])", - "name": "constant.language.nil.crystal" - }, - { - "match": "\\b(true|false)\\b(?![?!:])", - "name": "constant.language.boolean.crystal" - }, - { - "match": "\\b(__(DIR|FILE|LINE|END_LINE)__)\\b(?![?!:])", - "name": "variable.language.crystal" - }, - { - "match": "\\b(self)\\b(?![?!:])", - "name": "variable.language.self.crystal" - }, - { - "comment": "https://crystal-lang.org/api/0.36.1/Object.html#macro-summary", - "match": "(?<!\\.)\\b(((class_)?((getter|property)\\b[!?]?|setter\\b))|(def_(clone|equals|equals_and_hash|hash)|delegate|forward_missing_to)\\b)(?![?!:])", - "name": "support.function.kernel.crystal" - }, - { - "begin": "\\b(require)\\b", - "captures": { - "1": { - "name": "keyword.other.special-method.crystal" - } - }, - "end": "$|(?=#)", - "name": "meta.require.crystal", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(@)[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*[?!=]?", - "name": "variable.other.readwrite.instance.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(@@)[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*[?!=]?", - "name": "variable.other.readwrite.class.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(\\$)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.global.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(?!%[Qxrqwi]?[\\(\\[\\{\\<\\|])%([a-zA-Z_]\\w*\\.)*[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.fresh.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])", - "name": "variable.other.readwrite.global.pre-defined.crystal" - }, - { - "begin": "\\b(ENV)\\[", - "beginCaptures": { - "1": { - "name": "variable.other.constant.crystal" - } - }, - "end": "\\]", - "name": "meta.environment-variable.crystal", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\b[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*", - "name": "support.class.crystal", - "comment": "Literals name of Crystal" - }, - { - "match": "(?<!\\.)\\b(abort|at_exit|caller|exit|gets|loop|main|p|pp|print|printf|puts|raise|rand|read_line|sleep|spawn|sprintf|system|debugger|record|spawn)\\b(?![?!:])", - "name": "support.function.kernel.crystal", - "comment": "Fetch from https://crystal-lang.org/api/0.36.1/toplevel.html" - }, - { - "match": "\\b[_A-Z]+\\b", - "name": "variable.other.constant.crystal", - "comment": "Constant name in any where" - }, - { - "begin": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\s+\n(\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n \\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n )\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.def.crystal" - }, - "2": { - "name": "entity.name.function.crystal" - }, - "3": { - "name": "punctuation.definition.parameters.crystal" - } - }, - "comment": "The method pattern comes from the symbol pattern. See there for an explanation.", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.crystal" - } - }, - "name": "meta.function.method.with-arguments.crystal", - "patterns": [ - { - "begin": "(?![\\s,)])", - "end": "(?=,|\\)\\s*$)", - "patterns": [ - { - "captures": { - "1": { - "name": "storage.type.variable.crystal" - }, - "2": { - "name": "constant.other.symbol.hashkey.parameter.function.crystal" - }, - "3": { - "name": "punctuation.definition.constant.hashkey.crystal" - }, - "4": { - "name": "variable.parameter.function.crystal" - } - }, - "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))" - }, - { - "include": "$self" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.def.crystal" - }, - "3": { - "name": "entity.name.function.crystal" - } - }, - "comment": " the optional name is just to catch the def also without a method-name", - "match": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\b\n(\n \\s+\n (\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n \\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n )\n )\n)?", - "name": "meta.function.method.without-arguments.crystal" - }, - { - "comment": "Floating point literal (fraction)", - "name": "constant.numeric.float.crystal", - "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b" - }, - { - "comment": "Floating point literal (exponent)", - "name": "constant.numeric.float.crystal", - "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b" - }, - { - "comment": "Floating point literal (typed)", - "name": "constant.numeric.float.crystal", - "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b" - }, - { - "comment": "Integer literal (decimal)", - "name": "constant.numeric.integer.decimal.crystal", - "match": "\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\b" - }, - { - "comment": "Integer literal (hexadecimal)", - "name": "constant.numeric.integer.hexadecimal.crystal", - "match": "\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\b" - }, - { - "comment": "Integer literal (octal)", - "name": "constant.numeric.integer.octal.crystal", - "match": "\\b0o[0-7_]+([ui](8|16|32|64|128))?\\b" - }, - { - "comment": "Integer literal (binary)", - "name": "constant.numeric.integer.binary.crystal", - "match": "\\b0b[01_]+([ui](8|16|32|64|128))?\\b" - }, - { - "begin": ":'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.symbol.begin.crystal" - } - }, - "comment": "symbol literal with '' delimiter", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.symbol.end.crystal" - } - }, - "name": "constant.other.symbol.crystal", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.crystal" - } - ] - }, - { - "begin": ":\"", - "beginCaptures": { - "0": { - "name": "punctuation.section.symbol.begin.crystal" - } - }, - "comment": "symbol literal with \"\" delimiter", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.section.symbol.end.crystal" - } - }, - "name": "constant.other.symbol.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "comment": "Needs higher precedence than regular expressions.", - "match": "(?<!\\()/=", - "name": "keyword.operator.assignment.augmented.crystal" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "string literal with '' delimiter", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.single.crystal", - "patterns": [ - { - "match": "\\\\'|\\\\\\\\", - "name": "constant.character.escape.crystal" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "string literal with interpolation and \"\" delimiter", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.double.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "execute string (allows for interpolation)", - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "%x\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "execute string (allow for interpolation)", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_curly_i" - } - ] - }, - { - "begin": "%x\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "execute string (allow for interpolation)", - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_brackets_i" - } - ] - }, - { - "begin": "%x\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "execute string (allow for interpolation)", - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_ltgt_i" - } - ] - }, - { - "begin": "%x\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "execute string (allow for interpolation)", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_parens_i" - } - ] - }, - { - "begin": "%x\\|", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "execute string (allow for interpolation)", - "end": "\\|", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.interpolated.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?x) (?: ^| (?<=[=>~(?:\\[,|&;] | [\\s;]if\\s| [\\s;]elsif\\s | [\\s;]while\\s | [\\s;]unless\\s | [\\s;]when\\s | [\\s;]assert_match\\s | [\\s;]or\\s| [\\s;]and\\s | [\\s;]not\\s | [\\s.]index\\s| [\\s.]scan\\s | [\\s.]sub\\s | [\\s.]sub!\\s | [\\s.]gsub\\s | [\\s.]gsub!\\s | [\\s.]match\\s ) | (?<=^when\\s| ^if\\s | ^elsif\\s | ^while\\s | ^unless\\s ) ) \\s*((/))(?![*+{}?])", - "captures": { - "1": { - "name": "string.regexp.classic.crystal" - }, - "2": { - "name": "punctuation.definition.string.crystal" - } - }, - "comment": "regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp", - "contentName": "string.regexp.classic.crystal", - "end": "((/[imsx]*))", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "begin": "%r\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "regular expressions (literal)", - "end": "\\}[imsx]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.regexp.mod-r.crystal", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_curly_r" - } - ] - }, - { - "begin": "%r\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "regular expressions (literal)", - "end": "\\][imsx]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.regexp.mod-r.crystal", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_brackets_r" - } - ] - }, - { - "begin": "%r\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "regular expressions (literal)", - "end": "\\)[imsx]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.regexp.mod-r.crystal", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_parens_r" - } - ] - }, - { - "begin": "%r\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "regular expressions (literal)", - "end": "\\>[imsx]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.regexp.mod-r.crystal", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_ltgt_r" - } - ] - }, - { - "begin": "%r\\|", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "regular expressions (literal)", - "end": "\\|[imsx]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.regexp.mod-r.crystal", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "begin": "%Q?\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal capable of interpolation ()", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.upper.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_parens_i" - } - ] - }, - { - "begin": "%Q?\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal capable of interpolation []", - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.upper.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_brackets_i" - } - ] - }, - { - "begin": "%Q?\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal capable of interpolation <>", - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.upper.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_ltgt_i" - } - ] - }, - { - "begin": "%Q?\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal capable of interpolation -- {}", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.double.crystal.mod", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_curly_i" - } - ] - }, - { - "begin": "%Q\\|", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal capable of interpolation -- ||", - "end": "\\|", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.upper.crystal", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "%[qwi]\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal incapable of interpolation -- ()", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.lower.crystal", - "patterns": [ - { - "match": "\\\\\\)|\\\\\\\\", - "name": "constant.character.escape.crystal" - }, - { - "include": "#nest_parens" - } - ] - }, - { - "begin": "%[qwi]\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal incapable of interpolation -- <>", - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.lower.crystal", - "patterns": [ - { - "match": "\\\\\\>|\\\\\\\\", - "name": "constant.character.escape.crystal" - }, - { - "include": "#nest_ltgt" - } - ] - }, - { - "begin": "%[qwi]\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal incapable of interpolation -- []", - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.lower.crystal", - "patterns": [ - { - "match": "\\\\\\]|\\\\\\\\", - "name": "constant.character.escape.crystal" - }, - { - "include": "#nest_brackets" - } - ] - }, - { - "begin": "%[qwi]\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal incapable of interpolation -- {}", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.lower.crystal", - "patterns": [ - { - "match": "\\\\\\}|\\\\\\\\", - "name": "constant.character.escape.crystal" - }, - { - "include": "#nest_curly" - } - ] - }, - { - "begin": "%[qwi]\\|", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "literal incapable of interpolation -- ||", - "end": "\\|", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.quoted.other.literal.lower.crystal", - "patterns": [ - { - "comment": "Cant be named because its not necessarily an escape.", - "match": "\\\\." - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.crystal" - } - }, - "comment": "symbols", - "match": "(?<!:)(:)(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)", - "name": "constant.other.symbol.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.crystal" - } - }, - "comment": "symbols", - "match": "(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!])?)(:)(?!:)", - "name": "constant.other.symbol.crystal.19syntax" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.crystal" - } - }, - "match": "(?:^[ \\t]+)?(#).*$\\n?", - "name": "comment.line.number-sign.crystal" - }, - { - "match": "\\b_([\\w]+[?!]?)", - "name": "comment.unused.crystal" - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)HTML)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded HTML and indented terminator", - "contentName": "text.html.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.html.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "text.html.basic" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)SQL)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded SQL and indented terminator", - "contentName": "text.sql.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.sql.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.sql" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)CSS)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded css and intented terminator", - "contentName": "text.css.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.css.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.css" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)CPP)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded c++ and intented terminator", - "contentName": "text.c++.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.cplusplus.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.c++" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)C)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded c++ and intented terminator", - "contentName": "text.c.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.c.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.c" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded javascript and intented terminator", - "contentName": "text.js.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.js.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.js" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)JQUERY)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded javascript and intented terminator", - "contentName": "text.js.jquery.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.js.jquery.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.js.jquery" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded shell and intented terminator", - "contentName": "text.shell.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.shell.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.shell" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-('?)((?:[_\\w]+_|)CRYSTAL)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with embedded crystal and intented terminator", - "contentName": "text.crystal.embedded.crystal", - "end": "\\s*\\2\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.embedded.crystal.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "source.crystal" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-'(\\w+)')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with indented terminator", - "end": "\\s*\\1\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.heredoc.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<-(\\w+)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.crystal" - } - }, - "comment": "heredoc with indented terminator", - "end": "\\s*\\1\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.crystal" - } - }, - "name": "string.unquoted.heredoc.crystal", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?<={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)", - "captures": { - "1": { - "name": "punctuation.separator.variable.crystal" - } - }, - "end": "(?<!\\|)(\\|)(?!\\|)", - "patterns": [ - { - "include": "source.crystal" - }, - { - "match": "[_a-zA-Z][_a-zA-Z0-9]*", - "name": "variable.other.block.crystal" - }, - { - "match": ",", - "name": "punctuation.separator.variable.crystal" - } - ] - }, - { - "match": "=>", - "name": "punctuation.separator.key-value" - }, - { - "match": "->", - "name": "support.function.kernel.crystal" - }, - { - "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<", - "name": "keyword.operator.assignment.augmented.crystal" - }, - { - "match": "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?", - "name": "keyword.operator.comparison.crystal" - }, - { - "match": "(?<=^|[ \\t])!|&&|\\|\\||\\^", - "name": "keyword.operator.logical.crystal" - }, - { - "match": "(\\{\\%|\\%\\}|\\{\\{|\\}\\})", - "name": "keyword.operator.macro.crystal" - }, - { - "comment": "Safe navigation operator", - "match": "(&\\.)\\s*(?![A-Z])", - "captures": { - "1": { - "name": "punctuation.separator.method.crystal" - } - } - }, - { - "match": "(%|&|\\*\\*|\\*|\\+|\\-|/)", - "name": "keyword.operator.arithmetic.crystal" - }, - { - "match": "=", - "name": "keyword.operator.assignment.crystal" - }, - { - "match": "\\||~|>>", - "name": "keyword.operator.other.crystal" - }, - { - "match": ":", - "name": "punctuation.separator.other.crystal" - }, - { - "match": "\\;", - "name": "punctuation.separator.statement.crystal" - }, - { - "match": ",", - "name": "punctuation.separator.object.crystal" - }, - { - "match": "\\.|::", - "name": "punctuation.separator.method.crystal" - }, - { - "match": "\\{|\\}", - "name": "punctuation.section.scope.crystal" - }, - { - "match": "\\[|\\]", - "name": "punctuation.section.array.crystal" - }, - { - "match": "\\(|\\)", - "name": "punctuation.section.function.crystal" - }, - { - "begin": "(?=[a-zA-Z0-9_!?]+\\()", - "end": "(?<=\\))", - "name": "meta.function-call.crystal", - "patterns": [ - { - "match": "([a-zA-Z0-9_!?]+)(?=\\()", - "name": "entity.name.function.crystal" - }, - { - "include": "$self" - } - ] - }, - { - "comment": "This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors", - "match": "((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\]\\)\\}\\=\\+\\-\\*\\/\\^\\$\\,\\.]|<\\s|<<[\\s|\\.]))", - "name": "variable.other.crystal" - } - ], - "repository": { - "escaped_char": { - "comment": "https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html", - "match": "\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\{[a-fA-F0-9 ]+\\}|.)", - "name": "constant.character.escape.crystal" - }, - "heredoc": { - "begin": "^<<-?\\w+", - "end": "$", - "patterns": [ - { - "include": "$self" - } - ] - }, - "interpolated_crystal": { - "patterns": [ - { - "begin": "#\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.crystal" - } - }, - "contentName": "source.crystal", - "end": "(\\})", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.crystal" - }, - "1": { - "name": "source.crystal" - } - }, - "name": "meta.embedded.line.crystal", - "patterns": [ - { - "include": "#nest_curly_and_self" - }, - { - "include": "$self" - } - ], - "repository": { - "nest_curly_and_self": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly_and_self" - } - ] - }, - { - "include": "$self" - } - ] - } - } - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(#@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.instance.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(#@@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.class.crystal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.crystal" - } - }, - "match": "(#\\$)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.global.crystal" - } - ] - }, - "nest_brackets": { - "begin": "\\[", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#nest_brackets" - } - ] - }, - "nest_brackets_i": { - "begin": "\\[", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_brackets_i" - } - ] - }, - "nest_brackets_r": { - "begin": "\\[", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_brackets_r" - } - ] - }, - "nest_curly": { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly" - } - ] - }, - "nest_curly_and_self": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly_and_self" - } - ] - }, - { - "include": "$self" - } - ] - }, - "nest_curly_i": { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_curly_i" - } - ] - }, - "nest_curly_r": { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_curly_r" - } - ] - }, - "nest_ltgt": { - "begin": "\\<", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\>", - "patterns": [ - { - "include": "#nest_ltgt" - } - ] - }, - "nest_ltgt_i": { - "begin": "\\<", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\>", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_ltgt_i" - } - ] - }, - "nest_ltgt_r": { - "begin": "\\<", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\>", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_ltgt_r" - } - ] - }, - "nest_parens": { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#nest_parens" - } - ] - }, - "nest_parens_i": { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "include": "#nest_parens_i" - } - ] - }, - "nest_parens_r": { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.section.scope.crystal" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#regex_sub" - }, - { - "include": "#nest_parens_r" - } - ] - }, - "regex_sub": { - "patterns": [ - { - "include": "#interpolated_crystal" - }, - { - "include": "#escaped_char" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.crystal" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.crystal" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.crystal" - }, - { - "begin": "\\[(?:\\^?])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.crystal" - } - }, - "end": "]", - "name": "string.regexp.character-class.crystal", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.definition.group.crystal" - } - }, - "end": "\\)", - "name": "string.regexp.group.crystal", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.crystal" - } - }, - "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", - "match": "(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$", - "name": "comment.line.number-sign.crystal" - } - ] - } - } -} diff --git a/lib/grammars/csharp.tmLanguage.json b/lib/grammars/csharp.tmLanguage.json deleted file mode 100644 index 379a5cd..0000000 --- a/lib/grammars/csharp.tmLanguage.json +++ /dev/null @@ -1,5010 +0,0 @@ -{ - "name": "csharp", - "scopeName": "source.cs", - "fileTypes": ["cs"], - "uuid": "f7de61e2-bdde-4e2a-a139-8221b179584e", - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#directives" - }, - { - "include": "#declarations" - }, - { - "include": "#script-top-level" - } - ], - "repository": { - "directives": { - "patterns": [ - { - "include": "#extern-alias-directive" - }, - { - "include": "#using-directive" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "declarations": { - "patterns": [ - { - "include": "#namespace-declaration" - }, - { - "include": "#type-declarations" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "script-top-level": { - "patterns": [ - { - "include": "#statement" - }, - { - "include": "#method-declaration" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "type-declarations": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#storage-modifier" - }, - { - "include": "#class-declaration" - }, - { - "include": "#delegate-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#struct-declaration" - }, - { - "include": "#record-declaration" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "class-or-struct-members": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#storage-modifier" - }, - { - "include": "#type-declarations" - }, - { - "include": "#property-declaration" - }, - { - "include": "#field-declaration" - }, - { - "include": "#event-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#constructor-declaration" - }, - { - "include": "#destructor-declaration" - }, - { - "include": "#operator-declaration" - }, - { - "include": "#conversion-operator-declaration" - }, - { - "include": "#method-declaration" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "interface-members": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#property-declaration" - }, - { - "include": "#event-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#method-declaration" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "statement": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#while-statement" - }, - { - "include": "#do-statement" - }, - { - "include": "#for-statement" - }, - { - "include": "#foreach-statement" - }, - { - "include": "#if-statement" - }, - { - "include": "#else-part" - }, - { - "include": "#switch-statement" - }, - { - "include": "#goto-statement" - }, - { - "include": "#return-statement" - }, - { - "include": "#break-or-continue-statement" - }, - { - "include": "#throw-statement" - }, - { - "include": "#yield-statement" - }, - { - "include": "#await-statement" - }, - { - "include": "#try-statement" - }, - { - "include": "#checked-unchecked-statement" - }, - { - "include": "#lock-statement" - }, - { - "include": "#using-statement" - }, - { - "include": "#labeled-statement" - }, - { - "include": "#object-creation-expression" - }, - { - "include": "#array-creation-expression" - }, - { - "include": "#anonymous-object-creation-expression" - }, - { - "include": "#local-declaration" - }, - { - "include": "#block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#checked-unchecked-expression" - }, - { - "include": "#typeof-or-default-expression" - }, - { - "include": "#nameof-expression" - }, - { - "include": "#throw-expression" - }, - { - "include": "#raw-interpolated-string" - }, - { - "include": "#interpolated-string" - }, - { - "include": "#verbatim-interpolated-string" - }, - { - "include": "#this-or-base-expression" - }, - { - "include": "#switch-expression" - }, - { - "include": "#conditional-operator" - }, - { - "include": "#expression-operators" - }, - { - "include": "#await-expression" - }, - { - "include": "#query-expression" - }, - { - "include": "#as-expression" - }, - { - "include": "#is-expression" - }, - { - "include": "#anonymous-method-expression" - }, - { - "include": "#object-creation-expression" - }, - { - "include": "#array-creation-expression" - }, - { - "include": "#anonymous-object-creation-expression" - }, - { - "include": "#invocation-expression" - }, - { - "include": "#member-access-expression" - }, - { - "include": "#element-access-expression" - }, - { - "include": "#cast-expression" - }, - { - "include": "#literal" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#tuple-deconstruction-assignment" - }, - { - "include": "#initializer-expression" - }, - { - "include": "#identifier" - } - ] - }, - "extern-alias-directive": { - "begin": "\\s*(extern)\\b\\s*(alias)\\b\\s*(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.extern.cs" - }, - "2": { - "name": "keyword.other.alias.cs" - }, - "3": { - "name": "variable.other.alias.cs" - } - }, - "end": "(?=;)" - }, - "using-directive": { - "patterns": [ - { - "begin": "(\\b(global)\\b\\s+)?\\b(using)\\b\\s+(static)\\b\\s+(\\b(unsafe)\\b\\s+)?", - "beginCaptures": { - "2": { - "name": "keyword.other.global.cs" - }, - "3": { - "name": "keyword.other.using.cs" - }, - "4": { - "name": "keyword.other.static.cs" - }, - "6": { - "name": "storage.modifier.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(\\b(global)\\b\\s+)?\\b(using)\\b\\s+(\\b(unsafe)\\b\\s+)?(?=(@?[_[:alpha:]][_[:alnum:]]*)\\s*=)", - "beginCaptures": { - "2": { - "name": "keyword.other.global.cs" - }, - "3": { - "name": "keyword.other.using.cs" - }, - "5": { - "name": "storage.modifier.cs" - }, - "6": { - "name": "entity.name.type.alias.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type" - }, - { - "include": "#operator-assignment" - } - ] - }, - { - "begin": "(\\b(global)\\b\\s+)?\\b(using)\\s*(?!\\(|\\s|var)", - "beginCaptures": { - "2": { - "name": "keyword.other.global.cs" - }, - "3": { - "name": "keyword.other.using.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "entity.name.type.namespace.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#operator-assignment" - } - ] - } - ] - }, - "attribute-section": { - "begin": "(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?", - "beginCaptures": { - "1": { - "name": "punctuation.squarebracket.open.cs" - }, - "2": { - "name": "keyword.other.attribute-specifier.cs" - }, - "3": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "attribute": { - "patterns": [ - { - "include": "#type-name" - }, - { - "include": "#attribute-arguments" - } - ] - }, - "attribute-arguments": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#attribute-named-argument" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "attribute-named-argument": { - "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.property.cs" - } - }, - "end": "(?=(,|\\)))", - "patterns": [ - { - "include": "#operator-assignment" - }, - { - "include": "#expression" - } - ] - }, - "namespace-declaration": { - "begin": "\\b(namespace)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "entity.name.type.namespace.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-accessor" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#declarations" - }, - { - "include": "#using-directive" - }, - { - "include": "#punctuation-semicolon" - } - ] - } - ] - }, - "storage-modifier": { - "name": "storage.modifier.cs", - "match": "(?<!\\.)\\b(new|public|protected|internal|private|abstract|virtual|override|sealed|static|partial|readonly|volatile|const|extern|async|unsafe|ref|required|file)\\b" - }, - "class-declaration": { - "begin": "(?=(\\brecord\\b\\s+)?\\bclass\\b)", - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "(?x)\n(\\b(record)\\b\\s+)?\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*", - "beginCaptures": { - "2": { - "name": "keyword.other.record.cs" - }, - "3": { - "name": "keyword.other.class.cs" - }, - "4": { - "name": "entity.name.type.class.cs" - } - }, - "end": "(?=\\{)|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#base-types" - }, - { - "include": "#generic-constraints" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#class-or-struct-members" - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "delegate-declaration": { - "begin": "(?x)\n(?:\\b(delegate)\\b)\\s+\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.delegate.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.type.delegate.cs" - }, - "8": { - "patterns": [ - { - "include": "#type-parameter-list" - } - ] - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#generic-constraints" - } - ] - }, - "enum-declaration": { - "begin": "(?=\\benum\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?=enum)", - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.other.enum.cs" - }, - "2": { - "name": "entity.name.type.enum.cs" - } - } - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-comma" - }, - { - "begin": "@?[_[:alpha:]][_[:alnum:]]*", - "beginCaptures": { - "0": { - "name": "entity.name.variable.enum-member.cs" - } - }, - "end": "(?=(,|\\}))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "interface-declaration": { - "begin": "(?=\\binterface\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.interface.cs" - }, - "2": { - "name": "entity.name.type.interface.cs" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#base-types" - }, - { - "include": "#generic-constraints" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#interface-members" - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "record-declaration": { - "begin": "(?=\\brecord\\b)", - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "(?x)\n(record)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.record.cs" - }, - "2": { - "name": "entity.name.type.class.cs" - } - }, - "end": "(?=\\{)|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#base-types" - }, - { - "include": "#generic-constraints" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#class-or-struct-members" - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "struct-declaration": { - "begin": "(?=(\\brecord\\b\\s+)?\\bstruct\\b)", - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "(?x)\n(\\b(record)\\b\\s+)?\n(struct)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "2": { - "name": "keyword.other.record.cs" - }, - "3": { - "name": "keyword.other.struct.cs" - }, - "4": { - "name": "entity.name.type.struct.cs" - } - }, - "end": "(?=\\{)|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#base-types" - }, - { - "include": "#generic-constraints" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#class-or-struct-members" - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "type-parameter-list": { - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.cs" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.cs" - } - }, - "patterns": [ - { - "match": "\\b(in|out)\\b", - "captures": { - "1": { - "name": "storage.modifier.cs" - } - } - }, - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "entity.name.type.type-parameter.cs" - } - } - }, - { - "include": "#comment" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#attribute-section" - } - ] - }, - "base-types": { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{|where|;)", - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#preprocessor" - } - ] - }, - "generic-constraints": { - "begin": "(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.other.where.cs" - }, - "2": { - "name": "entity.name.type.type-parameter.cs" - }, - "3": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{|where|;|=>)", - "patterns": [ - { - "name": "keyword.other.class.cs", - "match": "\\bclass\\b" - }, - { - "name": "keyword.other.struct.cs", - "match": "\\bstruct\\b" - }, - { - "match": "(new)\\s*(\\()\\s*(\\))", - "captures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "name": "punctuation.parenthesis.open.cs" - }, - "3": { - "name": "punctuation.parenthesis.close.cs" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#generic-constraints" - } - ] - }, - "field-declaration": { - "begin": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.field.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "entity.name.variable.field.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#class-or-struct-members" - } - ] - }, - "property-declaration": { - "begin": "(?x)\n\n# The negative lookahead below ensures that we don't match nested types\n# or other declarations as properties.\n(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)\n\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<property_name>\\g<identifier>)\\s*\n(?=\\{|=>|$)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "8": { - "name": "entity.name.variable.property.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property-accessors" - }, - { - "include": "#expression-body" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#class-or-struct-members" - } - ] - }, - "indexer-declaration": { - "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<indexer_name>this)\\s*\n(?=\\[)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "8": { - "name": "keyword.other.this.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#bracketed-parameter-list" - }, - { - "include": "#property-accessors" - }, - { - "include": "#expression-body" - }, - { - "include": "#variable-initializer" - } - ] - }, - "event-declaration": { - "begin": "(?x)\n\\b(event)\\b\\s*\n(?<return_type>\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<event_names>\\g<identifier>(?:\\s*,\\s*\\g<identifier>)*)\\s*\n(?=\\{|;|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.event.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "9": { - "patterns": [ - { - "name": "entity.name.variable.event.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#event-accessors" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "property-accessors": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "name": "storage.modifier.cs", - "match": "\\b(private|protected|internal)\\b" - }, - { - "name": "keyword.other.get.cs", - "match": "\\b(get)\\b" - }, - { - "name": "keyword.other.set.cs", - "match": "\\b(set)\\b" - }, - { - "name": "keyword.other.init.cs", - "match": "\\b(init)\\b" - }, - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "event-accessors": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "name": "keyword.other.add.cs", - "match": "\\b(add)\\b" - }, - { - "name": "keyword.other.remove.cs", - "match": "\\b(remove)\\b" - }, - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "method-declaration": { - "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "8": { - "name": "entity.name.function.cs" - }, - "9": { - "patterns": [ - { - "include": "#type-parameter-list" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#generic-constraints" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "constructor-declaration": { - "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()", - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "entity.name.function.cs" - } - } - }, - { - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{|=>)", - "patterns": [ - { - "include": "#constructor-initializer" - } - ] - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "constructor-initializer": { - "begin": "\\b(?:(base)|(this))\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.base.cs" - }, - "2": { - "name": "keyword.other.this.cs" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "destructor-declaration": { - "begin": "(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "punctuation.tilde.cs" - }, - "2": { - "name": "entity.name.function.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "operator-declaration": { - "begin": "(?x)\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?<operator_keyword>(?:\\b(?:operator)))\\s*\n(?<operator>(?:\\+|-|\\*|/|%|&|\\||\\^|\\<\\<|\\>\\>|==|!=|\\>|\\<|\\>=|\\<=|!|~|\\+\\+|--|true|false))\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "keyword.other.operator-decl.cs" - }, - "7": { - "name": "entity.name.function.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "conversion-operator-declaration": { - "begin": "(?x)\n(?<explicit_or_implicit_keyword>(?:\\b(?:explicit|implicit)))\\s*\n(?<operator_keyword>(?:\\b(?:operator)))\\s*\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "\\b(explicit)\\b", - "captures": { - "1": { - "name": "keyword.other.explicit.cs" - } - } - }, - { - "match": "\\b(implicit)\\b", - "captures": { - "1": { - "name": "keyword.other.implicit.cs" - } - } - } - ] - }, - "2": { - "name": "keyword.other.operator-decl.cs" - }, - "3": { - "patterns": [ - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - "variable-initializer": { - "begin": "(?<!=|!)(=)(?!=|>)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.cs" - } - }, - "end": "(?=[,\\)\\];}])", - "patterns": [ - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - "expression-body": { - "begin": "=>", - "beginCaptures": { - "0": { - "name": "keyword.operator.arrow.cs" - } - }, - "end": "(?=[,\\);}])", - "patterns": [ - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - "goto-statement": { - "begin": "(?<!\\.)\\b(goto)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.goto.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "begin": "\\b(case)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.case.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "\\b(default)\\b", - "captures": { - "1": { - "name": "keyword.control.default.cs" - } - } - }, - { - "name": "entity.name.label.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "return-statement": { - "begin": "(?<!\\.)\\b(return)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.return.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - "break-or-continue-statement": { - "match": "(?<!\\.)\\b(?:(break)|(continue))\\b", - "captures": { - "1": { - "name": "keyword.control.flow.break.cs" - }, - "2": { - "name": "keyword.control.flow.continue.cs" - } - } - }, - "throw-statement": { - "begin": "(?<!\\.)\\b(throw)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.throw.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "yield-statement": { - "patterns": [ - { - "include": "#yield-return-statement" - }, - { - "include": "#yield-break-statement" - } - ] - }, - "yield-return-statement": { - "begin": "(?<!\\.)\\b(yield)\\b\\s*\\b(return)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.yield.cs" - }, - "2": { - "name": "keyword.control.flow.return.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "yield-break-statement": { - "match": "(?<!\\.)\\b(yield)\\b\\s*\\b(break)\\b", - "captures": { - "1": { - "name": "keyword.control.flow.yield.cs" - }, - "2": { - "name": "keyword.control.flow.break.cs" - } - } - }, - "await-statement": { - "begin": "(?<!\\.)\\b(await)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.await.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#statement" - } - ] - }, - "if-statement": { - "begin": "(?<!\\.)\\b(if)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.if.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "else-part": { - "begin": "(?<!\\.)\\b(else)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.else.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#statement" - } - ] - }, - "switch-statement": { - "begin": "(?<!\\.)\\b(switch)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#switch-label" - }, - { - "include": "#statement" - } - ] - } - ] - }, - "switch-expression": { - "begin": "(?x) (?<!\\.)\\b(switch)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.cs" - } - }, - "end": "(?<=\\})", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#literal" - }, - { - "include": "#switch-var-pattern" - }, - { - "include": "#switch-property-expression" - }, - { - "include": "#member-access-expression" - }, - { - "include": "#switch-pattern" - }, - { - "include": "#expression-body" - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "switch-pattern": { - "begin": "(?x) # e.g. int x OR var x\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\b\\s*", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "2": { - "name": "entity.name.variable.local.cs" - } - }, - "end": "(?==>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#switch-when-clause" - } - ] - }, - "switch-property-expression": { - "begin": "(?x) # e.g. int x OR var x\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(\\{)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "switch-var-pattern": { - "begin": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#tuple-declaration-deconstruction-element-list" - } - ] - } - }, - "end": "(?==>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#switch-when-clause" - } - ] - }, - "switch-when-clause": { - "begin": "(?<!\\.)\\b(when)\\b\\s*(\\()?", - "beginCaptures": { - "1": { - "name": "keyword.control.try.when.cs" - }, - "2": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "(?==>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "match": "\\(", - "captures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - } - }, - { - "match": "\\)", - "captures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - } - } - ] - }, - "switch-label": { - "patterns": [ - { - "begin": "(?<!\\.)\\b(case)\\b\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.case.cs" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "punctuation.separator.colon.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "(?<!\\.)\\b(default)\\b\\s*(:)", - "captures": { - "1": { - "name": "keyword.control.default.cs" - }, - "2": { - "name": "punctuation.separator.colon.cs" - } - } - } - ] - }, - "do-statement": { - "begin": "(?<!\\.)\\b(do)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.do.cs" - } - }, - "end": "(?=;|})", - "patterns": [ - { - "include": "#statement" - } - ] - }, - "while-statement": { - "begin": "(?<!\\.)\\b(while)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.while.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "for-statement": { - "begin": "(?<!\\.)\\b(for)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.for.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#local-variable-declaration" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "foreach-statement": { - "begin": "(?<!\\.)\\b(foreach)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.loop.foreach.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "match": "(?x)\n(?:\n (\\bvar\\b)|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - }, - "8": { - "name": "keyword.control.loop.in.cs" - } - } - }, - { - "match": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#tuple-declaration-deconstruction-element-list" - } - ] - }, - "3": { - "name": "keyword.control.loop.in.cs" - } - } - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "try-statement": { - "patterns": [ - { - "include": "#try-block" - }, - { - "include": "#catch-clause" - }, - { - "include": "#finally-clause" - } - ] - }, - "try-block": { - "begin": "(?<!\\.)\\b(try)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "finally-clause": { - "begin": "(?<!\\.)\\b(finally)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.finally.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "catch-clause": { - "begin": "(?<!\\.)\\b(catch)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.catch.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "match": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.local.cs" - } - } - } - ] - }, - { - "include": "#when-clause" - }, - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "when-clause": { - "begin": "(?<!\\.)\\b(when)\\b\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.try.when.cs" - }, - "2": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#comment" - } - ] - }, - "checked-unchecked-statement": { - "begin": "(?<!\\.)\\b(?:(checked)|(unchecked))\\b\\s*(?!\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.checked.cs" - }, - "2": { - "name": "keyword.other.unchecked.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#comment" - } - ] - }, - "lock-statement": { - "begin": "(?<!\\.)\\b(lock)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.lock.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "using-statement": { - "begin": "(?<!\\.)\\b(using)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.using.cs" - } - }, - "end": "(?=\\;|})", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#local-variable-declaration" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "labeled-statement": { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.cs" - }, - "2": { - "name": "punctuation.separator.colon.cs" - } - } - }, - "local-declaration": { - "patterns": [ - { - "include": "#local-constant-declaration" - }, - { - "include": "#local-variable-declaration" - }, - { - "include": "#local-function-declaration" - }, - { - "include": "#local-tuple-var-deconstruction" - } - ] - }, - "local-variable-declaration": { - "begin": "(?x)\n(?:\n (?:(\\busing)\\s+)?\n (?:(\\bref)\\s+(?:(\\breadonly)\\s+)?)?(\\bvar\\b)| # ref local\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref local\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?!=>)\n(?=,|;|=|\\))", - "beginCaptures": { - "1": { - "name": "keyword.other.using.cs" - }, - "2": { - "name": "storage.modifier.cs" - }, - "3": { - "name": "storage.modifier.cs" - }, - "4": { - "name": "keyword.other.var.cs" - }, - "5": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "10": { - "name": "entity.name.variable.local.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "name": "entity.name.variable.local.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "local-constant-declaration": { - "begin": "(?x)\n(?<const_keyword>\\b(?:const)\\b)\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "entity.name.variable.local.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "local-function-declaration": { - "patterns": [ - { - "include": "#method-declaration" - } - ] - }, - "local-tuple-var-deconstruction": { - "begin": "(?x) # e.g. var (x, y) = GetPoint();\n(?:\\b(var)\\b\\s*)\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*\n(?=;|=|\\))", - "beginCaptures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#tuple-declaration-deconstruction-element-list" - } - ] - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "tuple-deconstruction-assignment": { - "match": "(?x)\n(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*\n(?!=>|==)(?==)", - "captures": { - "1": { - "patterns": [ - { - "include": "#tuple-deconstruction-element-list" - } - ] - } - } - }, - "tuple-declaration-deconstruction-element-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#tuple-declaration-deconstruction-element-list" - }, - { - "include": "#declaration-expression-tuple" - }, - { - "include": "#punctuation-comma" - }, - { - "match": "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "entity.name.variable.tuple-element.cs" - } - } - } - ] - }, - "tuple-deconstruction-element-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#tuple-deconstruction-element-list" - }, - { - "include": "#declaration-expression-tuple" - }, - { - "include": "#punctuation-comma" - }, - { - "match": "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "variable.other.readwrite.cs" - } - } - } - ] - }, - "declaration-expression-local": { - "match": "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\b\\s*\n(?=[,)\\]])", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - } - } - }, - "declaration-expression-tuple": { - "match": "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.tuple-element.cs" - } - } - }, - "checked-unchecked-expression": { - "begin": "(?<!\\.)\\b(?:(checked)|(unchecked))\\b\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.checked.cs" - }, - "2": { - "name": "keyword.other.unchecked.cs" - }, - "3": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "typeof-or-default-expression": { - "begin": "(?<!\\.)\\b(?:(typeof)|(default))\\b\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.typeof.cs" - }, - "2": { - "name": "keyword.other.default.cs" - }, - "3": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - "nameof-expression": { - "begin": "(?<!\\.)\\b(nameof)\\b\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.nameof.cs" - }, - "2": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "throw-expression": { - "match": "(?<!\\.)\\b(throw)\\b", - "captures": { - "1": { - "name": "keyword.control.flow.throw.cs" - } - } - }, - "interpolated-string": { - "name": "string.quoted.double.cs", - "begin": "\\$\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cs" - }, - "2": { - "name": "invalid.illegal.newline.cs" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - }, - { - "include": "#interpolation" - } - ] - }, - "verbatim-interpolated-string": { - "name": "string.quoted.double.cs", - "begin": "(?:\\$@|@\\$)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"(?=[^\"])", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#verbatim-string-character-escape" - }, - { - "include": "#interpolation" - } - ] - }, - "interpolation": { - "name": "meta.interpolation.cs", - "begin": "(?<=[^\\{]|^)((?:\\{\\{)*)(\\{)(?=[^\\{])", - "beginCaptures": { - "1": { - "name": "string.quoted.double.cs" - }, - "2": { - "name": "punctuation.definition.interpolation.begin.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.interpolation.end.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "raw-interpolated-string": { - "patterns": [ - { - "include": "#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation" - }, - { - "include": "#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation" - }, - { - "include": "#raw-interpolated-string-quadruple-quote-double-interpolation" - }, - { - "include": "#raw-interpolated-string-quadruple-quote-single-interpolation" - }, - { - "include": "#raw-interpolated-string-triple-quote-double-interpolation" - }, - { - "include": "#raw-interpolated-string-triple-quote-single-interpolation" - } - ] - }, - "raw-interpolated-string-triple-quote-single-interpolation": { - "name": "string.quoted.double.cs", - "begin": "\\$\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#raw-interpolation" - } - ] - }, - "raw-interpolated-string-triple-quote-double-interpolation": { - "name": "string.quoted.double.cs", - "begin": "\\$\\$\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#double-raw-interpolation" - } - ] - }, - "raw-interpolated-string-quadruple-quote-single-interpolation": { - "name": "string.quoted.double.cs", - "begin": "\\$\"\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#raw-interpolation" - } - ] - }, - "raw-interpolated-string-quadruple-quote-double-interpolation": { - "name": "string.quoted.double.cs", - "begin": "\\$\\$\"\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#double-raw-interpolation" - } - ] - }, - "raw-interpolated-string-three-or-more-quote-three-or-more-interpolation": { - "name": "string.quoted.double.cs", - "begin": "\\$\\$\\$+\"\"\"+", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"+", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "raw-interpolated-string-five-or-more-quote-one-or-more-interpolation": { - "name": "string.quoted.double.cs", - "begin": "\\$+\"\"\"\"\"+", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"\"\"+", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "raw-interpolation": { - "name": "meta.interpolation.cs", - "begin": "(?<=[^\\{]|^)((?:\\{)*)(\\{)(?=[^\\{])", - "beginCaptures": { - "1": { - "name": "string.quoted.double.cs" - }, - "2": { - "name": "punctuation.definition.interpolation.begin.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.interpolation.end.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "double-raw-interpolation": { - "name": "meta.interpolation.cs", - "begin": "(?<=[^\\{][^\\{]|^)((?:\\{)*)(\\{\\{)(?=[^\\{])", - "beginCaptures": { - "1": { - "name": "string.quoted.double.cs" - }, - "2": { - "name": "punctuation.definition.interpolation.begin.cs" - } - }, - "end": "\\}\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.interpolation.end.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#char-literal" - }, - { - "include": "#raw-string-literal" - }, - { - "include": "#string-literal" - }, - { - "include": "#verbatim-string-literal" - }, - { - "include": "#tuple-literal" - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.cs", - "match": "(?<!\\.)\\btrue\\b" - }, - { - "name": "constant.language.boolean.false.cs", - "match": "(?<!\\.)\\bfalse\\b" - } - ] - }, - "null-literal": { - "name": "constant.language.null.cs", - "match": "(?<!\\.)\\bnull\\b" - }, - "numeric-literal": { - "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\.\\d)*", - "captures": { - "0": { - "patterns": [ - { - "begin": "(?=.)", - "end": "$", - "patterns": [ - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?([fFdDmM](?!\\w))?$", - "captures": { - "2": { - "name": "constant.numeric.decimal.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "3": { - "name": "constant.numeric.other.separator.thousands.cs" - }, - "4": { - "name": "constant.numeric.other.separator.decimals.cs" - }, - "5": { - "name": "constant.numeric.decimal.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "6": { - "name": "constant.numeric.other.separator.thousands.cs" - }, - "8": { - "name": "constant.numeric.other.exponent.cs" - }, - "9": { - "name": "keyword.operator.arithmetic.cs" - }, - "10": { - "name": "keyword.operator.arithmetic.cs" - }, - "11": { - "name": "constant.numeric.decimal.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "12": { - "name": "constant.numeric.other.suffix.cs" - } - } - }, - { - "match": "(\\G0[bB])([01_](?:[01_]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$", - "captures": { - "1": { - "name": "constant.numeric.other.preffix.binary.cs" - }, - "2": { - "name": "constant.numeric.binary.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "3": { - "name": "constant.numeric.other.separator.thousands.cs" - }, - "4": { - "name": "constant.numeric.other.suffix.cs" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$", - "captures": { - "1": { - "name": "constant.numeric.other.preffix.hex.cs" - }, - "2": { - "name": "constant.numeric.hex.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "3": { - "name": "constant.numeric.other.separator.thousands.cs" - }, - "4": { - "name": "constant.numeric.other.suffix.cs" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$", - "captures": { - "2": { - "name": "constant.numeric.decimal.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "3": { - "name": "constant.numeric.other.separator.thousands.cs" - }, - "5": { - "name": "constant.numeric.other.exponent.cs" - }, - "6": { - "name": "keyword.operator.arithmetic.cs" - }, - "7": { - "name": "keyword.operator.arithmetic.cs" - }, - "8": { - "name": "constant.numeric.decimal.cs", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "constant.numeric.other.separator.thousands.cs" - } - ] - }, - "9": { - "name": "constant.numeric.other.suffix.cs" - } - } - }, - { - "match": "(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\.\\d)+", - "name": "invalid.illegal.constant.numeric.cs" - } - ] - } - ] - } - } - }, - "char-literal": { - "name": "string.quoted.single.cs", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.char.begin.cs" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.char.end.cs" - }, - "2": { - "name": "invalid.illegal.newline.cs" - } - }, - "patterns": [ - { - "include": "#char-character-escape" - } - ] - }, - "char-character-escape": { - "name": "constant.character.escape.cs", - "match": "\\\\(['\"\\\\0abfnrtv]|x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4})" - }, - "string-literal": { - "name": "string.quoted.double.cs", - "begin": "(?<!@)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.cs" - }, - "2": { - "name": "invalid.illegal.newline.cs" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.cs", - "match": "\\\\(['\"\\\\0abfnrtv]|x[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4})" - }, - "verbatim-string-literal": { - "name": "string.quoted.double.cs", - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"(?=[^\"])", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#verbatim-string-character-escape" - } - ] - }, - "verbatim-string-character-escape": { - "name": "constant.character.escape.cs", - "match": "\"\"" - }, - "raw-string-literal": { - "patterns": [ - { - "include": "#raw-string-literal-more" - }, - { - "include": "#raw-string-literal-quadruple" - }, - { - "include": "#raw-string-literal-triple" - } - ] - }, - "raw-string-literal-triple": { - "name": "string.quoted.double.cs", - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "raw-string-literal-quadruple": { - "name": "string.quoted.double.cs", - "begin": "\"\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "raw-string-literal-more": { - "name": "string.quoted.double.cs", - "begin": "\"\"\"\"\"+", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\"\"\"\"\"+", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "tuple-literal": { - "begin": "(\\()(?=.*[:,])", - "beginCaptures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#tuple-literal-element" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "tuple-literal-element": { - "begin": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?=:)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.tuple-element.cs" - } - }, - "end": "(:)", - "endCaptures": { - "0": { - "name": "punctuation.separator.colon.cs" - } - } - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.operator.assignment.compound.cs", - "match": "\\*=|/=|%=|\\+=|-=|\\?\\?=" - }, - { - "name": "keyword.operator.assignment.compound.bitwise.cs", - "match": "\\&=|\\^=|<<=|>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.cs", - "match": "<<|>>" - }, - { - "name": "keyword.operator.comparison.cs", - "match": "==|!=" - }, - { - "name": "keyword.operator.relational.cs", - "match": "<=|>=|<|>" - }, - { - "name": "keyword.operator.logical.cs", - "match": "\\!|&&|\\|\\|" - }, - { - "name": "keyword.operator.bitwise.cs", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.cs", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.cs", - "match": "--" - }, - { - "name": "keyword.operator.increment.cs", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.cs", - "match": "%|\\*|/|-|\\+" - }, - { - "name": "keyword.operator.null-coalescing.cs", - "match": "\\?\\?" - } - ] - }, - "switch-literal": { - "name": "constant.language.null.cs", - "match": "(?<!\\.)\\bnull\\b", - "beginCaptures": { - "1": { - "name": "constant.language.null.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#expression-body" - } - ] - }, - "conditional-operator": { - "begin": "\\?(?!\\s*[?.\\[]|\\s*$)", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.question-mark.cs" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.conditional.colon.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "await-expression": { - "name": "keyword.other.await.cs", - "match": "(?!\\.)\\b(await)\\b" - }, - "parenthesized-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "initializer-expression": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "identifier": { - "name": "variable.other.readwrite.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - "cast-expression": { - "match": "(?x)\n(\\()\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])", - "captures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "punctuation.parenthesis.close.cs" - } - } - }, - "as-expression": { - "match": "(?x)\n(?<!\\.)\\b(as)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?", - "captures": { - "1": { - "name": "keyword.other.as.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - } - }, - "is-expression": { - "match": "(?x)\n(?<!\\.)\\b(is)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?", - "captures": { - "1": { - "name": "keyword.other.is.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - } - }, - "this-or-base-expression": { - "match": "\\b(?:(base)|(this))\\b", - "captures": { - "1": { - "name": "keyword.other.base.cs" - }, - "2": { - "name": "keyword.other.this.cs" - } - } - }, - "invocation-expression": { - "begin": "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(?:(\\.)\\s*)? # preceding dot?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?<type_args>\\s*<([^<>]|\\g<type_args>)+>\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list", - "beginCaptures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - }, - "3": { - "name": "entity.name.function.cs" - }, - "4": { - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "element-access-expression": { - "begin": "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(?:(\\.)\\s*)? # preceding dot?\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list", - "beginCaptures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - }, - "3": { - "name": "variable.other.object.property.cs" - }, - "4": { - "name": "keyword.operator.null-conditional.cs" - } - }, - "end": "(?<=\\])(?!\\s*\\[)", - "patterns": [ - { - "include": "#bracketed-argument-list" - } - ] - }, - "member-access-expression": { - "patterns": [ - { - "match": "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(\\.)\\s* # preceding dot\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[", - "captures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - }, - "3": { - "name": "variable.other.object.property.cs" - } - } - }, - { - "match": "(?x)\n(\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?<type_params>\\s*<([^<>]|\\g<type_params>)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", - "captures": { - "1": { - "name": "punctuation.accessor.cs" - }, - "2": { - "name": "variable.other.object.cs" - }, - "3": { - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - } - }, - { - "match": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", - "captures": { - "1": { - "name": "variable.other.object.cs" - } - } - } - ] - }, - "object-creation-expression": { - "patterns": [ - { - "include": "#object-creation-expression-with-parameters" - }, - { - "include": "#object-creation-expression-with-no-parameters" - } - ] - }, - "object-creation-expression-with-parameters": { - "begin": "(?x)\n(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "object-creation-expression-with-no-parameters": { - "match": "(?x)\n(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\{|$)", - "captures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - } - }, - "array-creation-expression": { - "begin": "(?x)\n\\b(new|stackalloc)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(?=\\[)", - "beginCaptures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\])", - "patterns": [ - { - "include": "#bracketed-argument-list" - } - ] - }, - "anonymous-object-creation-expression": { - "begin": "\\b(new)\\b\\s*(?=\\{|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.new.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#initializer-expression" - } - ] - }, - "bracketed-parameter-list": { - "begin": "(?=(\\[))", - "beginCaptures": { - "1": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "end": "(?=(\\]))", - "endCaptures": { - "1": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "begin": "(?<=\\[)", - "end": "(?=\\])", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#parameter" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#variable-initializer" - } - ] - } - ] - }, - "parenthesized-parameter-list": { - "begin": "(\\()", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "(\\))", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#parameter" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#variable-initializer" - } - ] - }, - "parameter": { - "match": "(?x)\n(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?\n(?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)", - "captures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.parameter.cs" - } - } - }, - "argument-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#named-argument" - }, - { - "include": "#argument" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "bracketed-argument-list": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "include": "#named-argument" - }, - { - "include": "#argument" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "named-argument": { - "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.parameter.cs" - }, - "2": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=(,|\\)|\\]))", - "patterns": [ - { - "include": "#argument" - } - ] - }, - "argument": { - "patterns": [ - { - "name": "storage.modifier.cs", - "match": "\\b(ref|out|in)\\b" - }, - { - "include": "#declaration-expression-local" - }, - { - "include": "#expression" - } - ] - }, - "query-expression": { - "begin": "(?x)\n\\b(from)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g<identifier>)\\b\\s*\n\\b(in)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.from.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.range-variable.cs" - }, - "8": { - "name": "keyword.query.in.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "query-body": { - "patterns": [ - { - "include": "#let-clause" - }, - { - "include": "#where-clause" - }, - { - "include": "#join-clause" - }, - { - "include": "#orderby-clause" - }, - { - "include": "#select-clause" - }, - { - "include": "#group-clause" - } - ] - }, - "let-clause": { - "begin": "(?x)\n\\b(let)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.let.cs" - }, - "2": { - "name": "entity.name.variable.range-variable.cs" - }, - "3": { - "name": "keyword.operator.assignment.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "where-clause": { - "begin": "(?x)\n\\b(where)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.where.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "join-clause": { - "begin": "(?x)\n\\b(join)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g<identifier>)\\b\\s*\n\\b(in)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.join.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.range-variable.cs" - }, - "8": { - "name": "keyword.query.in.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#join-on" - }, - { - "include": "#join-equals" - }, - { - "include": "#join-into" - }, - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "join-on": { - "match": "\\b(on)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.on.cs" - } - } - }, - "join-equals": { - "match": "\\b(equals)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.equals.cs" - } - } - }, - "join-into": { - "match": "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.into.cs" - }, - "2": { - "name": "entity.name.variable.range-variable.cs" - } - } - }, - "orderby-clause": { - "begin": "\\b(orderby)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.orderby.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#ordering-direction" - }, - { - "include": "#query-body" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "ordering-direction": { - "match": "\\b(?:(ascending)|(descending))\\b", - "captures": { - "1": { - "name": "keyword.query.ascending.cs" - }, - "2": { - "name": "keyword.query.descending.cs" - } - } - }, - "select-clause": { - "begin": "\\b(select)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.select.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "group-clause": { - "begin": "\\b(group)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.group.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#group-by" - }, - { - "include": "#group-into" - }, - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "group-by": { - "match": "\\b(by)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.by.cs" - } - } - }, - "group-into": { - "match": "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.into.cs" - }, - "2": { - "name": "entity.name.variable.range-variable.cs" - } - } - }, - "anonymous-method-expression": { - "patterns": [ - { - "begin": "(?x)\n(?:\\b(async)\\b\\s*)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=>)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "name": "entity.name.variable.parameter.cs" - }, - "3": { - "name": "keyword.operator.arrow.cs" - } - }, - "end": "(?=\\)|;|}|,)", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?x)\n(?:\\b(async)\\b\\s*)?\n(\\(.*?\\))\\s*\n(=>)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#lambda-parameter-list" - } - ] - }, - "3": { - "name": "keyword.operator.arrow.cs" - } - }, - "end": "(?=\\)|;|}|,)", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?x)\n(?:\\b(async)\\b\\s*)?\n(?:\\b(delegate)\\b\\s*)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "name": "keyword.other.delegate.cs" - } - }, - "end": "(?=\\)|;|}|,)", - "patterns": [ - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "lambda-parameter-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#lambda-parameter" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "lambda-parameter": { - "match": "(?x)\n(?:\\b(ref|out|in)\\b)?\\s*\n(?:(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+)?\n(\\g<identifier>)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.parameter.cs" - } - } - }, - "type": { - "name": "meta.type.cs", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#ref-modifier" - }, - { - "include": "#readonly-modifier" - }, - { - "include": "#tuple-type" - }, - { - "include": "#type-builtin" - }, - { - "include": "#type-name" - }, - { - "include": "#type-arguments" - }, - { - "include": "#type-array-suffix" - }, - { - "include": "#type-nullable-suffix" - } - ] - }, - "ref-modifier": { - "name": "storage.modifier.cs", - "match": "\\b(ref)\\b" - }, - "readonly-modifier": { - "name": "storage.modifier.cs", - "match": "\\b(readonly)\\b" - }, - "tuple-type": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#tuple-element" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "tuple-element": { - "match": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\n(?:(?<tuple_name>\\g<identifier>)\\b)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.tuple-element.cs" - } - } - }, - "type-builtin": { - "match": "\\b(bool|byte|char|decimal|double|float|int|long|object|sbyte|short|string|uint|ulong|ushort|void|dynamic)\\b", - "captures": { - "1": { - "name": "keyword.type.cs" - } - } - }, - "type-name": { - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)", - "captures": { - "1": { - "name": "entity.name.type.alias.cs" - }, - "2": { - "name": "punctuation.separator.coloncolon.cs" - } - } - }, - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", - "captures": { - "1": { - "name": "entity.name.type.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - } - } - }, - { - "match": "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.cs" - }, - "2": { - "name": "entity.name.type.cs" - } - } - }, - { - "name": "entity.name.type.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "type-arguments": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.cs" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-array-suffix": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "include": "#punctuation-comma" - } - ] - }, - "type-nullable-suffix": { - "match": "\\?", - "captures": { - "0": { - "name": "punctuation.separator.question-mark.cs" - } - } - }, - "operator-assignment": { - "name": "keyword.operator.assignment.cs", - "match": "(?<!=|!)(=)(?!=)" - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.cs", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.cs", - "match": ";" - }, - "punctuation-accessor": { - "name": "punctuation.accessor.cs", - "match": "\\." - }, - "preprocessor": { - "name": "meta.preprocessor.cs", - "begin": "^\\s*(\\#)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.separator.hash.cs" - } - }, - "end": "(?<=$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#preprocessor-define-or-undef" - }, - { - "include": "#preprocessor-if-or-elif" - }, - { - "include": "#preprocessor-else-or-endif" - }, - { - "include": "#preprocessor-warning-or-error" - }, - { - "include": "#preprocessor-region" - }, - { - "include": "#preprocessor-endregion" - }, - { - "include": "#preprocessor-load" - }, - { - "include": "#preprocessor-r" - }, - { - "include": "#preprocessor-line" - }, - { - "include": "#preprocessor-pragma-warning" - }, - { - "include": "#preprocessor-pragma-checksum" - } - ] - }, - "preprocessor-define-or-undef": { - "match": "\\b(?:(define)|(undef))\\b\\s*\\b([_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "keyword.preprocessor.define.cs" - }, - "2": { - "name": "keyword.preprocessor.undef.cs" - }, - "3": { - "name": "entity.name.variable.preprocessor.symbol.cs" - } - } - }, - "preprocessor-if-or-elif": { - "begin": "\\b(?:(if)|(elif))\\b", - "beginCaptures": { - "1": { - "name": "keyword.preprocessor.if.cs" - }, - "2": { - "name": "keyword.preprocessor.elif.cs" - } - }, - "end": "(?=$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#preprocessor-expression" - } - ] - }, - "preprocessor-else-or-endif": { - "match": "\\b(?:(else)|(endif))\\b", - "captures": { - "1": { - "name": "keyword.preprocessor.else.cs" - }, - "2": { - "name": "keyword.preprocessor.endif.cs" - } - } - }, - "preprocessor-warning-or-error": { - "match": "\\b(?:(warning)|(error))\\b\\s*(.*)(?=$)", - "captures": { - "1": { - "name": "keyword.preprocessor.warning.cs" - }, - "2": { - "name": "keyword.preprocessor.error.cs" - }, - "3": { - "name": "string.unquoted.preprocessor.message.cs" - } - } - }, - "preprocessor-load": { - "begin": "\\b(load)\\b", - "beginCaptures": { - "1": { - "name": "keyword.preprocessor.load.cs" - } - }, - "end": "(?=$)", - "patterns": [ - { - "match": "\\\"[^\"]*\\\"", - "captures": { - "0": { - "name": "string.quoted.double.cs" - } - } - } - ] - }, - "preprocessor-r": { - "begin": "\\b(r)\\b", - "beginCaptures": { - "1": { - "name": "keyword.preprocessor.r.cs" - } - }, - "end": "(?=$)", - "patterns": [ - { - "match": "\\\"[^\"]*\\\"", - "captures": { - "0": { - "name": "string.quoted.double.cs" - } - } - } - ] - }, - "preprocessor-region": { - "match": "\\b(region)\\b\\s*(.*)(?=$)", - "captures": { - "1": { - "name": "keyword.preprocessor.region.cs" - }, - "2": { - "name": "string.unquoted.preprocessor.message.cs" - } - } - }, - "preprocessor-endregion": { - "match": "\\b(endregion)\\b", - "captures": { - "1": { - "name": "keyword.preprocessor.endregion.cs" - } - } - }, - "preprocessor-line": { - "begin": "\\b(line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.preprocessor.line.cs" - } - }, - "end": "(?=$)", - "patterns": [ - { - "match": "\\b(?:(default|hidden))", - "captures": { - "1": { - "name": "keyword.preprocessor.default.cs" - }, - "2": { - "name": "keyword.preprocessor.hidden.cs" - } - } - }, - { - "match": "[0-9]+", - "captures": { - "0": { - "name": "constant.numeric.decimal.cs" - } - } - }, - { - "match": "\\\"[^\"]*\\\"", - "captures": { - "0": { - "name": "string.quoted.double.cs" - } - } - } - ] - }, - "preprocessor-pragma-warning": { - "match": "\\b(pragma)\\b\\s*\\b(warning)\\b\\s*\\b(?:(disable)|(restore))\\b(\\s*[0-9]+(?:\\s*,\\s*[0-9]+)?)?", - "captures": { - "1": { - "name": "keyword.preprocessor.pragma.cs" - }, - "2": { - "name": "keyword.preprocessor.warning.cs" - }, - "3": { - "name": "keyword.preprocessor.disable.cs" - }, - "4": { - "name": "keyword.preprocessor.restore.cs" - }, - "5": { - "patterns": [ - { - "match": "[0-9]+", - "captures": { - "0": { - "name": "constant.numeric.decimal.cs" - } - } - }, - { - "include": "#punctuation-comma" - } - ] - } - } - }, - "preprocessor-pragma-checksum": { - "match": "\\b(pragma)\\b\\s*\\b(checksum)\\b\\s*(\\\"[^\"]*\\\")\\s*(\\\"[^\"]*\\\")\\s*(\\\"[^\"]*\\\")", - "captures": { - "1": { - "name": "keyword.preprocessor.pragma.cs" - }, - "2": { - "name": "keyword.preprocessor.checksum.cs" - }, - "3": { - "name": "string.quoted.double.cs" - }, - "4": { - "name": "string.quoted.double.cs" - }, - "5": { - "name": "string.quoted.double.cs" - } - } - }, - "preprocessor-expression": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#preprocessor-expression" - } - ] - }, - { - "match": "\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\b", - "captures": { - "1": { - "name": "constant.language.boolean.true.cs" - }, - "2": { - "name": "constant.language.boolean.false.cs" - }, - "3": { - "name": "entity.name.variable.preprocessor.symbol.cs" - } - } - }, - { - "match": "(==|!=)|(\\!|&&|\\|\\|)", - "captures": { - "1": { - "name": "keyword.operator.comparison.cs" - }, - "2": { - "name": "keyword.operator.logical.cs" - } - } - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.cs", - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - } - }, - { - "begin": "(^\\s+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.cs" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "comment.block.documentation.cs", - "begin": "(?<!/)///(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - }, - "end": "(?=$)", - "patterns": [ - { - "include": "#xml-doc-comment" - } - ] - }, - { - "name": "comment.line.double-slash.cs", - "begin": "(?<!/)//(?:(?!/)|(?=//))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - }, - "end": "(?=$)" - } - ] - } - ] - }, - "xml-doc-comment": { - "patterns": [ - { - "include": "#xml-comment" - }, - { - "include": "#xml-character-entity" - }, - { - "include": "#xml-cdata" - }, - { - "include": "#xml-tag" - } - ] - }, - "xml-tag": { - "name": "meta.tag.cs", - "begin": "(?x)\n(</?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.cs" - }, - "2": { - "name": "entity.name.tag.cs" - }, - "3": { - "name": "entity.name.tag.namespace.cs" - }, - "4": { - "name": "punctuation.separator.colon.cs" - }, - "5": { - "name": "entity.name.tag.localname.cs" - } - }, - "end": "(/?>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.cs" - } - }, - "patterns": [ - { - "include": "#xml-attribute" - } - ] - }, - "xml-attribute": { - "patterns": [ - { - "match": "(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)", - "captures": { - "1": { - "name": "entity.other.attribute-name.cs" - }, - "2": { - "name": "entity.other.attribute-name.namespace.cs" - }, - "3": { - "name": "punctuation.separator.colon.cs" - }, - "4": { - "name": "entity.other.attribute-name.localname.cs" - }, - "5": { - "name": "punctuation.separator.equals.cs" - } - } - }, - { - "include": "#xml-string" - } - ] - }, - "xml-cdata": { - "name": "string.unquoted.cdata.cs", - "begin": "<!\\[CDATA\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\\]\\]>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "xml-string": { - "patterns": [ - { - "name": "string.quoted.single.cs", - "begin": "\\'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\\'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#xml-character-entity" - } - ] - }, - { - "name": "string.quoted.double.cs", - "begin": "\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\\\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#xml-character-entity" - } - ] - } - ] - }, - "xml-character-entity": { - "patterns": [ - { - "name": "constant.character.entity.cs", - "match": "(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)", - "captures": { - "1": { - "name": "punctuation.definition.constant.cs" - }, - "3": { - "name": "punctuation.definition.constant.cs" - } - } - }, - { - "name": "invalid.illegal.bad-ampersand.cs", - "match": "&" - } - ] - }, - "xml-comment": { - "name": "comment.block.cs", - "begin": "<!--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - }, - "end": "-->", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - } - } - } -} diff --git a/lib/grammars/css.tmLanguage.json b/lib/grammars/css.tmLanguage.json deleted file mode 100644 index e455068..0000000 --- a/lib/grammars/css.tmLanguage.json +++ /dev/null @@ -1,1865 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-css/blob/master/grammars/css.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-css/commit/3bd00206f6b0d16eb2eba53fb886462eb8c58baa", - "name": "css", - "scopeName": "source.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#combinators" - }, - { - "include": "#selector" - }, - { - "include": "#at-rules" - }, - { - "include": "#rule-list" - } - ], - "repository": { - "at-rules": { - "patterns": [ - { - "begin": "\\A(?:\\xEF\\xBB\\xBF)?(?i:(?=\\s*@charset\\b))", - "end": ";|(?=$)", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.charset.css", - "patterns": [ - { - "captures": { - "1": { - "name": "invalid.illegal.not-lowercase.charset.css" - }, - "2": { - "name": "invalid.illegal.leading-whitespace.charset.css" - }, - "3": { - "name": "invalid.illegal.no-whitespace.charset.css" - }, - "4": { - "name": "invalid.illegal.whitespace.charset.css" - }, - "5": { - "name": "invalid.illegal.not-double-quoted.charset.css" - }, - "6": { - "name": "invalid.illegal.unclosed-string.charset.css" - }, - "7": { - "name": "invalid.illegal.unexpected-characters.charset.css" - } - }, - "match": "(?x) # Possible errors:\n\\G\n((?!@charset)@\\w+) # Not lowercase (@charset is case-sensitive)\n|\n\\G(\\s+) # Preceding whitespace\n|\n(@charset\\S[^;]*) # No whitespace after @charset\n|\n(?<=@charset) # Before quoted charset name\n(\\x20{2,}|\\t+) # More than one space used, or a tab\n|\n(?<=@charset\\x20) # Beginning of charset name\n([^\";]+) # Not double-quoted\n|\n(\"[^\"]+$) # Unclosed quote\n|\n(?<=\") # After charset name\n([^;]+) # Unexpected junk instead of semicolon" - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.charset.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "match": "((@)charset)(?=\\s)" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "\"|$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.double.css", - "patterns": [ - { - "begin": "(?:\\G|^)(?=(?:[^\"])+$)", - "end": "$", - "name": "invalid.illegal.unclosed.string.css" - } - ] - } - ] - }, - { - "begin": "(?i)((@)import)(?:\\s+|$|(?=['\"]|/\\*))", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.import.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.import.css", - "patterns": [ - { - "begin": "\\G\\s*(?=/\\*)", - "end": "(?<=\\*/)\\s*", - "patterns": [ - { - "include": "#comment-block" - } - ] - }, - { - "include": "#string" - }, - { - "include": "#url" - }, - { - "include": "#media-query-list" - } - ] - }, - { - "begin": "(?i)((@)font-face)(?=\\s*|{|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.font-face.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?!\\G)", - "name": "meta.at-rule.font-face.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#rule-list" - } - ] - }, - { - "begin": "(?i)(@)page(?=[\\s:{]|/\\*|$)", - "captures": { - "0": { - "name": "keyword.control.at-rule.page.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*($|[:{;]))", - "name": "meta.at-rule.page.css", - "patterns": [ - { - "include": "#rule-list" - } - ] - }, - { - "begin": "(?i)(?=@media(\\s|\\(|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)media", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.media.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[{;])", - "name": "meta.at-rule.media.header.css", - "patterns": [ - { - "include": "#media-query-list" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.media.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.media.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.media.body.css", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?i)(?=@counter-style([\\s'\"{;]|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)counter-style", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.counter-style.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*{)", - "name": "meta.at-rule.counter-style.header.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "captures": { - "0": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "name": "variable.parameter.style-name.css" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.property-list.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.property-list.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.counter-style.body.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#rule-list-innards" - } - ] - } - ] - }, - { - "begin": "(?i)(?=@document([\\s'\"{;]|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)document", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.document.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[{;])", - "name": "meta.at-rule.document.header.css", - "patterns": [ - { - "begin": "(?i)(?<![\\w-])(url-prefix|domain|regexp)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.document-rule.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.document-rule.css", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "match": "[^'\")\\s]+", - "name": "variable.parameter.document-rule.css" - } - ] - }, - { - "include": "#url" - }, - { - "include": "#commas" - }, - { - "include": "#comment-block" - }, - { - "include": "#escapes" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.document.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.document.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.document.body.css", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?i)(?=@(?:-(?:webkit|moz|o|ms)-)?keyframes([\\s'\"{;]|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)(?:-(?:webkit|moz|o|ms)-)?keyframes", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.keyframes.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*{)", - "name": "meta.at-rule.keyframes.header.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "captures": { - "0": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "name": "variable.parameter.keyframe-list.css" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.keyframes.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.keyframes.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.keyframes.body.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "captures": { - "1": { - "name": "entity.other.keyframe-offset.css" - }, - "2": { - "name": "entity.other.keyframe-offset.percentage.css" - } - }, - "match": "(?xi)\n(?<![\\w-]) (from|to) (?![\\w-]) # Keywords for 0% | 100%\n|\n([-+]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)%) # Percentile value" - }, - { - "include": "#rule-list" - } - ] - } - ] - }, - { - "begin": "(?i)(?=@supports(\\s|\\(|/\\*|$))", - "end": "(?<=})(?!\\G)|(?=;)", - "patterns": [ - { - "begin": "(?i)\\G(@)supports", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.supports.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[{;])", - "name": "meta.at-rule.supports.header.css", - "patterns": [ - { - "include": "#feature-query-operators" - }, - { - "include": "#feature-query" - }, - { - "include": "#comment-block" - }, - { - "include": "#escapes" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.supports.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.supports.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.supports.body.css", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?i)((@)(-(ms|o)-)?viewport)(?=[\\s'\"{;]|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.viewport.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[@{;])", - "name": "meta.at-rule.viewport.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - } - ] - }, - { - "begin": "(?i)((@)font-feature-values)(?=[\\s'\"{;]|/\\*|$)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.font-feature-values.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "contentName": "variable.parameter.font-name.css", - "end": "(?=\\s*[@{;])", - "name": "meta.at-rule.font-features.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - } - ] - }, - { - "include": "#font-features" - }, - { - "begin": "(?i)((@)namespace)(?=[\\s'\";]|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.namespace.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": ";|(?=[@{])", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.namespace.css", - "patterns": [ - { - "include": "#url" - }, - { - "captures": { - "1": { - "patterns": [ - { - "include": "#comment-block" - } - ] - }, - "2": { - "name": "entity.name.function.namespace-prefix.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?xi)\n(?:\\G|^|(?<=\\s))\n(?=\n (?<=\\s|^) # Starts with whitespace\n (?:[-a-zA-Z_]|[^\\x00-\\x7F]) # Then a valid identifier character\n |\n \\s* # Possible adjoining whitespace\n /\\*(?:[^*]|\\*[^/])*\\*/ # Injected comment\n)\n(.*?) # Grouped to embed #comment-block\n(\n (?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n )*\n)" - }, - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "(?i)(?=@[\\w-]+[^;]+;s*$)", - "end": "(?<=;)(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)[\\w-]+", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.header.css" - } - ] - }, - { - "begin": "(?i)(?=@[\\w-]+(\\s|\\(|{|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)[\\w-]+", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[{;])", - "name": "meta.at-rule.header.css" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.body.css", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "color-keywords": { - "patterns": [ - { - "match": "(?i)(?<![\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w-])", - "name": "support.constant.color.w3c-standard-color-name.css" - }, - { - "match": "(?xi) (?<![\\w-])\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\n(?![\\w-])", - "name": "support.constant.color.w3c-extended-color-name.css" - }, - { - "match": "(?i)(?<![\\w-])currentColor(?![\\w-])", - "name": "support.constant.color.current.css" - }, - { - "match": "(?xi) (?<![\\w-])\n(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow\n|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption\n|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow\n|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\n(?![\\w-])", - "name": "invalid.deprecated.color.system.css" - } - ] - }, - "combinators": { - "patterns": [ - { - "match": "/deep/|>>>", - "name": "invalid.deprecated.combinator.css" - }, - { - "match": ">>|>|\\+|~", - "name": "keyword.operator.combinator.css" - } - ] - }, - "commas": { - "match": ",", - "name": "punctuation.separator.list.comma.css" - }, - "comment-block": { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.css" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.css" - } - }, - "name": "comment.block.css" - }, - "escapes": { - "patterns": [ - { - "match": "\\\\[0-9a-fA-F]{1,6}", - "name": "constant.character.escape.codepoint.css" - }, - { - "begin": "\\\\$\\s*", - "end": "^(?<!\\G)", - "name": "constant.character.escape.newline.css" - }, - { - "match": "\\\\.", - "name": "constant.character.escape.css" - } - ] - }, - "feature-query": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.condition.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.condition.end.bracket.round.css" - } - }, - "name": "meta.feature-query.css", - "patterns": [ - { - "include": "#feature-query-operators" - }, - { - "include": "#feature-query" - } - ] - }, - "feature-query-operators": { - "patterns": [ - { - "match": "(?i)(?<=[\\s()]|^|\\*/)(and|not|or)(?=[\\s()]|/\\*|$)", - "name": "keyword.operator.logical.feature.$1.css" - }, - { - "include": "#rule-list-innards" - } - ] - }, - "font-features": { - "begin": "(?xi)\n((@)(annotation|character-variant|ornaments|styleset|stylistic|swash))\n(?=[\\s@'\"{;]|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.${3:/downcase}.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?<=})", - "name": "meta.at-rule.${3:/downcase}.css", - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.property-list.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.property-list.end.bracket.curly.css" - } - }, - "name": "meta.property-list.font-feature.css", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(?: [-a-zA-Z_] | [^\\x00-\\x7F] ) # First letter\n(?: [-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n | \\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "name": "variable.font-feature.css" - }, - { - "include": "#rule-list-innards" - } - ] - } - ] - }, - "functions": { - "patterns": [ - { - "begin": "(?i)(?<![\\w-])(calc)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.calc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.calc.css", - "patterns": [ - { - "match": "[*/]|(?<=\\s|^)[-+](?=\\s|$)", - "name": "keyword.operator.arithmetic.css" - }, - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?i)(?<![\\w-])(rgba?|rgb|hsla?|hsl|hwb|lab|oklab|lch|oklch|color)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.color.css", - "patterns": [ - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?xi) (?<![\\w-])\n(\n (?:-webkit-|-moz-|-o-)? # Accept prefixed/historical variants\n (?:repeating-)? # \"Repeating\"-type gradient\n (?:linear|radial|conic) # Shape\n -gradient\n)\n(\\()", - "beginCaptures": { - "1": { - "name": "support.function.gradient.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.gradient.css", - "patterns": [ - { - "match": "(?i)(?<![\\w-])(from|to|at|in|hue)(?![\\w-])", - "name": "keyword.operator.gradient.css" - }, - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?i)(?<![\\w-])(-webkit-gradient)(\\()", - "beginCaptures": { - "1": { - "name": "invalid.deprecated.gradient.function.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.gradient.invalid.deprecated.gradient.css", - "patterns": [ - { - "begin": "(?i)(?<![\\w-])(from|to|color-stop)(\\()", - "beginCaptures": { - "1": { - "name": "invalid.deprecated.function.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#property-values" - } - ] - }, - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?xi) (?<![\\w-])\n(annotation|attr|blur|brightness|character-variant|clamp|contrast|counters?\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate|color-mix\n|image-set|invert|local|max|min|minmax|opacity|ornaments|repeat|saturate|sepia\n|styleset|stylistic|swash|symbols\n|cos|sin|tan|acos|asin|atan|atan2|hypot|sqrt|pow|log|exp|abs|sign)\n(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.misc.css", - "patterns": [ - { - "match": "(?i)(?<=[,\\s\"]|\\*/|^)\\d+x(?=[\\s,\"')]|/\\*|$)", - "name": "constant.numeric.other.density.css" - }, - { - "include": "#property-values" - }, - { - "match": "[^'\"),\\s]+", - "name": "variable.parameter.misc.css" - } - ] - }, - { - "begin": "(?i)(?<![\\w-])(circle|ellipse|inset|polygon|rect)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.shape.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.shape.css", - "patterns": [ - { - "match": "(?i)(?<=\\s|^|\\*/)(at|round)(?=\\s|/\\*|$)", - "name": "keyword.operator.shape.css" - }, - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?i)(?<![\\w-])(cubic-bezier|steps)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.timing-function.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.timing-function.css", - "patterns": [ - { - "match": "(?i)(?<![\\w-])(start|end)(?=\\s*\\)|$)", - "name": "support.constant.step-direction.css" - }, - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?xi) (?<![\\w-])\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\n| matrix(?:3D)?\n| skew[XY]?\n| perspective\n)\n(\\()", - "beginCaptures": { - "1": { - "name": "support.function.transform.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#property-values" - } - ] - }, - { - "include": "#url" - }, - { - "begin": "(?i)(?<![\\w-])(var)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.variable.css", - "patterns": [ - { - "name": "variable.argument.css", - "match": "(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*" - }, - { - "include": "#property-values" - } - ] - } - ] - }, - "functional-pseudo-classes": { - "patterns": [ - { - "begin": "(?i)((:)dir)(\\()", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.pseudo-class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "3": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "match": "(?i)(?<![\\w-])(ltr|rtl)(?![\\w-])", - "name": "support.constant.text-direction.css" - }, - { - "include": "#property-values" - } - ] - }, - { - "begin": "(?i)((:)lang)(\\()", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.pseudo-class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "3": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "match": "(?<=[(,\\s])[a-zA-Z]+(-[a-zA-Z0-9]*|\\\\(?:[0-9a-fA-F]{1,6}|.))*(?=[),\\s])", - "name": "support.constant.language-range.css" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.double.css", - "patterns": [ - { - "include": "#escapes" - }, - { - "match": "(?<=[\"\\s])[a-zA-Z*]+(-[a-zA-Z0-9*]*)*(?=[\"\\s])", - "name": "support.constant.language-range.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": [ - { - "include": "#escapes" - }, - { - "match": "(?<=['\\s])[a-zA-Z*]+(-[a-zA-Z0-9*]*)*(?=['\\s])", - "name": "support.constant.language-range.css" - } - ] - }, - { - "include": "#commas" - } - ] - }, - { - "begin": "(?i)((:)(?:not|has|matches|where|is))(\\()", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.pseudo-class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "3": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#selector-innards" - } - ] - }, - { - "begin": "(?i)((:)nth-(?:last-)?(?:child|of-type))(\\()", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.pseudo-class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "3": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "match": "(?i)[+-]?(\\d+n?|n)(\\s*[+-]\\s*\\d+)?", - "name": "constant.numeric.css" - }, - { - "match": "(?i)even|odd", - "name": "support.constant.parity.css" - } - ] - } - ] - }, - "media-features": { - "captures": { - "1": { - "name": "support.type.property-name.media.css" - }, - "2": { - "name": "support.type.property-name.media.css" - }, - "3": { - "name": "support.type.vendored.property-name.media.css" - } - }, - "match": "(?xi)\n(?<=^|\\s|\\(|\\*/) # Preceded by whitespace, bracket or comment\n(?:\n # Standardised features\n (\n (?:min-|max-)? # Range features\n (?: height\n | width\n | aspect-ratio\n | color\n | color-index\n | monochrome\n | resolution\n )\n | grid # Discrete features\n | scan\n | orientation\n | display-mode\n | hover\n )\n |\n # Deprecated features\n (\n (?:min-|max-)? # Deprecated in Media Queries 4\n device-\n (?: height\n | width\n | aspect-ratio\n )\n )\n |\n # Vendor extensions\n (\n (?:\n # Spec-compliant syntax\n [-_]\n (?: webkit # Webkit/Blink\n | apple|khtml # Webkit aliases\n | epub # ePub3\n | moz # Gecko\n | ms # Microsoft\n | o # Presto (pre-Opera 15)\n | xv|ah|rim|atsc| # Less common vendors\n hp|tc|wap|ro\n )\n |\n # Non-standard prefixes\n (?: mso # Microsoft Office\n | prince # YesLogic\n )\n )\n -\n [\\w-]+ # Feature name\n (?= # Terminates correctly\n \\s* # Possible whitespace\n (?: # Possible injected comment\n /\\*\n (?:[^*]|\\*[^/])*\n \\*/\n )?\n \\s*\n [:)] # Ends with a colon or closed bracket\n )\n )\n)\n(?=\\s|$|[><:=]|\\)|/\\*) # Terminates cleanly" - }, - "media-feature-keywords": { - "match": "(?xi)\n(?<=^|\\s|:|\\*/)\n(?: portrait # Orientation\n | landscape\n | progressive # Scan types\n | interlace\n | fullscreen # Display modes\n | standalone\n | minimal-ui\n | browser\n | hover\n)\n(?=\\s|\\)|$)", - "name": "support.constant.property-value.css" - }, - "media-query": { - "begin": "\\G", - "end": "(?=\\s*[{;])", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#media-types" - }, - { - "match": "(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)", - "name": "keyword.operator.logical.$1.media.css" - }, - { - "match": "(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)", - "name": "keyword.operator.logical.and.media.css" - }, - { - "match": ",(?:(?:\\s*,)+|(?=\\s*[;){]))", - "name": "invalid.illegal.comma.css" - }, - { - "include": "#commas" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#media-features" - }, - { - "include": "#media-feature-keywords" - }, - { - "match": ":", - "name": "punctuation.separator.key-value.css" - }, - { - "match": ">=|<=|=|<|>", - "name": "keyword.operator.comparison.css" - }, - { - "captures": { - "1": { - "name": "constant.numeric.css" - }, - "2": { - "name": "keyword.operator.arithmetic.css" - }, - "3": { - "name": "constant.numeric.css" - } - }, - "match": "(\\d+)\\s*(/)\\s*(\\d+)", - "name": "meta.ratio.css" - }, - { - "include": "#numeric-values" - }, - { - "include": "#comment-block" - } - ] - } - ] - }, - "media-query-list": { - "begin": "(?=\\s*[^{;])", - "end": "(?=\\s*[{;])", - "patterns": [ - { - "include": "#media-query" - } - ] - }, - "media-types": { - "captures": { - "1": { - "name": "support.constant.media.css" - }, - "2": { - "name": "invalid.deprecated.constant.media.css" - } - }, - "match": "(?xi)\n(?<=^|\\s|,|\\*/)\n(?:\n # Valid media types\n (all|print|screen|speech)\n |\n # Deprecated in Media Queries 4: http://dev.w3.org/csswg/mediaqueries/#media-types\n (aural|braille|embossed|handheld|projection|tty|tv)\n)\n(?=$|[{,\\s;]|/\\*)" - }, - "numeric-values": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.constant.css" - } - }, - "match": "(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", - "name": "constant.other.color.rgb-value.hex.css" - }, - { - "captures": { - "1": { - "name": "keyword.other.unit.percentage.css" - }, - "2": { - "name": "keyword.other.unit.${2:/downcase}.css" - } - }, - "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|rch|rex|rlh|\n ic|ric|rcap|vh|vw|vb|vi|svh|\n svw|svb|svi|dvh|dvw|dvb|dvi|\n lvh|lvw|lvb|lvi|vmax|vmin|\n cqw|cqi|cqh|cqb|cqmin|cqmax\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars", - "name": "constant.numeric.css" - } - ] - }, - "property-keywords": { - "patterns": [ - { - "match": "(?xi) (?<![\\w-])\n(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse\n|always|antialiased|auto|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel\n|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets\n|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn\n|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover\n|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures\n|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in\n|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded\n|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow-root|forwards|freeze\n|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide\n|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space\n|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start\n|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83\n|jis90|justify|justify-all|kannada|keep-all|landscape|large|larger|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB\n|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent\n|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize\n|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures\n|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize\n|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding\n|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line\n|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]\n|reset-size|reverse|revert|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text\n|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate\n|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller\n|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap\n|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table\n|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl\n|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle\n|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical\n|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy\n|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)\n(?![\\w-])", - "name": "support.constant.property-value.css" - }, - { - "match": "(?xi) (?<![\\w-])\n(arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|cjk-ideographic\n|decimal|decimal-leading-zero|devanagari|disc|disclosure-closed|disclosure-open|ethiopic-halehame-am\n|ethiopic-halehame-ti-e[rt]|ethiopic-numeric|georgian|gujarati|gurmukhi|hangul|hangul-consonant|hebrew\n|hiragana|hiragana-iroha|japanese-formal|japanese-informal|kannada|katakana|katakana-iroha|khmer\n|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek\n|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal\n|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian\n|upper-latin|upper-roman|urdu)\n(?![\\w-])", - "name": "support.constant.property-value.list-style-type.css" - }, - { - "match": "(?<![\\w-])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-zA-Z-]+", - "name": "support.constant.vendored.property-value.css" - }, - { - "match": "(?<![\\w-])(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system-ui|system|tahoma|times|trebuchet|ui-monospace|ui-rounded|ui-sans-serif|ui-serif|utopia|verdana|webdings|sans-serif|serif|monospace)(?![\\w-])", - "name": "support.constant.font-name.css" - } - ] - }, - "property-names": { - "patterns": [ - { - "match": "(?xi) (?<![\\w-])\n(?:\n # Standard CSS\n accent-color|additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration\n | animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backdrop-filter\n | backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image\n | background-origin|background-position|background-position-[xy]|background-repeat|background-size|bleed|block-size|border\n | border-block-end|border-block-end-color|border-block-end-style|border-block-end-width|border-block-start|border-block-start-color\n | border-block-start-style|border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\n | border-bottom-style|border-bottom-width|border-collapse|border-color|border-end-end-radius|border-end-start-radius|border-image\n | border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\n | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start|border-inline-start-color\n | border-inline-start-style|border-inline-start-width|border-left|border-left-color|border-left-style|border-left-width\n | border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-start-end-radius\n | border-start-start-radius|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style\n | border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side\n | caret-color|clear|clip|clip-path|clip-rule|color|color-adjust|color-interpolation-filters|color-scheme|column-count|column-fill|column-gap\n | column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|contain|content|counter-increment\n | counter-reset|cursor|direction|display|empty-cells|enable-background|fallback|fill|fill-opacity|fill-rule|filter|flex|flex-basis\n | flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|flood-color|flood-opacity|font|font-display|font-family\n | font-feature-settings|font-kerning|font-language-override|font-optical-sizing|font-size|font-size-adjust|font-stretch\n | font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures\n | font-variant-numeric|font-variant-position|font-variation-settings|font-weight|gap|glyph-orientation-horizontal|glyph-orientation-vertical\n | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start\n | grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows\n | hanging-punctuation|height|hyphens|image-orientation|image-rendering|image-resolution|ime-mode|initial-letter|initial-letter-align\n | inline-size|inset|inset-block|inset-block-end|inset-block-start|inset-inline|inset-inline-end|inset-inline-start|isolation\n | justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-break|line-clamp|line-height|list-style\n | list-style-image|list-style-position|list-style-type|margin|margin-block|margin-block-end|margin-block-start|margin-bottom|margin-inline|margin-inline-end|margin-inline-start\n | margin-left|margin-right|margin-top|marker-end|marker-mid|marker-start|marks|mask|mask-border|mask-border-mode|mask-border-outset\n | mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode\n | mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height|max-inline-size|max-lines|max-width\n | max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode|negative|object-fit|object-position\n | offset|offset-anchor|offset-distance|offset-path|offset-position|offset-rotation|opacity|order|orientation|orphans\n | outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-anchor|overflow-block|overflow-inline\n | overflow-wrap|overflow-[xy]|overscroll-behavior|overscroll-behavior-block|overscroll-behavior-inline|overscroll-behavior-[xy]\n | pad|padding|padding-block|padding-block-end|padding-block-start|padding-bottom|padding-inline|padding-inline-end|padding-inline-start|padding-left\n | padding-right|padding-top|page-break-after|page-break-before|page-break-inside|paint-order|perspective|perspective-origin\n | place-content|place-items|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|row-gap|ruby-align\n | ruby-merge|ruby-position|scale|scroll-behavior|scroll-margin|scroll-margin-block|scroll-margin-block-end|scroll-margin-block-start\n | scroll-margin-bottom|scroll-margin-inline|scroll-margin-inline-end|scroll-margin-inline-start|scroll-margin-left|scroll-margin-right\n | scroll-margin-top|scroll-padding|scroll-padding-block|scroll-padding-block-end|scroll-padding-block-start|scroll-padding-bottom\n | scroll-padding-inline|scroll-padding-inline-end|scroll-padding-inline-start|scroll-padding-left|scroll-padding-right\n | scroll-padding-top|scroll-snap-align|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-stop|scroll-snap-type\n | scrollbar-color|scrollbar-gutter|scrollbar-width|shape-image-threshold|shape-margin|shape-outside|shape-rendering|size\n | speak-as|src|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit\n | stroke-opacity|stroke-width|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last|text-anchor|text-combine-upright\n | text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-skip-ink|text-decoration-style|text-decoration-thickness\n | text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation\n | text-overflow|text-rendering|text-shadow|text-size-adjust|text-transform|text-underline-offset|text-underline-position|top|touch-action|transform\n | transform-box|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function\n | translate|unicode-bidi|unicode-range|user-select|user-zoom|vertical-align|visibility|white-space|widows|width|will-change\n | word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\n\n # SVG attributes\n | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\n | color-rendering|cx|cy|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\n | glyph-orientation-horizontal|glyph-orientation-vertical|height|kerning|lighting-color|marker-end|marker-mid\n | marker-start|r|rx|ry|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\n | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|width|x|y\n\n # Not listed on MDN; presumably deprecated\n | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\n | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\n | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\n | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\n | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\n | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\n | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\n | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\n | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\n | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\n | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\n | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\n | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\n | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\n | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\n | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\n | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\n | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\n | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\n | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\n | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\n | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\n | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\n)\n(?![\\w-])", - "name": "support.type.property-name.css" - }, - { - "match": "(?<![\\w-])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-zA-Z-]+", - "name": "support.type.vendored.property-name.css" - } - ] - }, - "property-values": { - "patterns": [ - { - "include": "#commas" - }, - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#functions" - }, - { - "include": "#property-keywords" - }, - { - "include": "#unicode-range" - }, - { - "include": "#numeric-values" - }, - { - "include": "#color-keywords" - }, - { - "include": "#string" - }, - { - "match": "!\\s*important(?![\\w-])", - "name": "keyword.other.important.css" - } - ] - }, - "pseudo-classes": { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "name": "invalid.illegal.colon.css" - } - }, - "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within|fullscreen|host|hover\n | in-range|indeterminate|invalid|left|link|optional|out-of-range\n | read-only|read-write|required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])", - "name": "entity.other.attribute-name.pseudo-class.css" - }, - "pseudo-elements": { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - } - }, - "match": "(?xi)\n(?:\n (::?) # Elements using both : and :: notation\n (?: after\n | before\n | first-letter\n | first-line\n | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\n |ms|o|rim|ro|tc|wap|webkit|xv)\n | (?:mso|prince))\n -[a-z-]+\n )\n |\n (::) # Double-colon only\n (?: backdrop\n | content\n | grammar-error\n | marker\n | placeholder\n | selection\n | shadow\n | spelling-error\n )\n)\n(?![\\w-]|\\s*[;}])", - "name": "entity.other.attribute-name.pseudo-element.css" - }, - "rule-list": { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.property-list.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.property-list.end.bracket.curly.css" - } - }, - "name": "meta.property-list.css", - "patterns": [ - { - "include": "#rule-list-innards" - } - ] - }, - "rule-list-innards": { - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#font-features" - }, - { - "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "name": "variable.css" - }, - { - "begin": "(?<![-a-zA-Z])(?=[-a-zA-Z])", - "end": "$|(?![-a-zA-Z])", - "name": "meta.property-name.css", - "patterns": [ - { - "include": "#property-names" - } - ] - }, - { - "begin": "(:)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.separator.key-value.css" - } - }, - "end": "\\s*(;)|\\s*(?=}|\\))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.rule.css" - } - }, - "contentName": "meta.property-value.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#property-values" - } - ] - }, - { - "match": ";", - "name": "punctuation.terminator.rule.css" - } - ] - }, - "selector": { - "begin": "(?x)\n(?=\n (?:\\|)? # Possible anonymous namespace prefix\n (?:\n [-\\[:.*\\#a-zA-Z_] # Valid selector character\n |\n [^\\x00-\\x7F] # Which can include non-ASCII symbols\n |\n \\\\ # Or an escape sequence\n (?:[0-9a-fA-F]{1,6}|.)\n )\n)", - "end": "(?=\\s*[/@{)])", - "name": "meta.selector.css", - "patterns": [ - { - "include": "#selector-innards" - } - ] - }, - "selector-innards": { - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#commas" - }, - { - "include": "#escapes" - }, - { - "include": "#combinators" - }, - { - "captures": { - "1": { - "name": "entity.other.namespace-prefix.css" - }, - "2": { - "name": "punctuation.separator.css" - } - }, - "match": "(?x)\n(?:^|(?<=[\\s,(};])) # Follows whitespace, comma, semicolon, or bracket\n(?!\n [-\\w*]+\n \\|\n (?!\n [-\\[:.*\\#a-zA-Z_] # Make sure there's a selector to match\n | [^\\x00-\\x7F]\n )\n)\n(\n (?: [-a-zA-Z_] | [^\\x00-\\x7F] ) # First letter\n (?: [-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n | \\\\(?:[0-9a-fA-F]{1,6}|.)\n )*\n |\n \\* # Universal namespace\n)?\n(\\|) # Namespace separator" - }, - { - "include": "#tag-names" - }, - { - "match": "\\*", - "name": "entity.name.tag.wildcard.css" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x) (?<![@\\w-])\n([.\\#])\n# Invalid identifier\n(\n (?:\n # Starts with ASCII digits, with possible hyphen preceding it\n -?[0-9]\n |\n # Consists of a hyphen only\n - # Terminated by either:\n (?= $ # - End-of-line\n | [\\s,.\\#)\\[:{>+~|] # - Followed by another selector\n | /\\* # - Followed by a block comment\n )\n |\n # Name contains unescaped ASCII symbol\n (?: # Check for acceptable preceding characters\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # - Valid selector character\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # - Escape sequence\n )*\n (?: # Invalid punctuation\n [!\"'%&(*;<?@^`|\\]}] # - NOTE: We exempt `)` from the list of checked\n | # symbols to avoid matching `:not(.invalid)`\n / (?!\\*) # - Avoid invalidating the start of a comment\n )+\n )\n # Mark remainder of selector invalid\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # - Otherwise valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # - Escape sequence\n )*\n)", - "name": "invalid.illegal.bad-identifier.css" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(\\.) # Valid class-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.class.css" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(\\#)\n(\n -?\n (?![0-9])\n (?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n)\n(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)", - "name": "entity.other.attribute-name.id.css" - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.entity.begin.bracket.square.css" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.entity.end.bracket.square.css" - } - }, - "name": "meta.attribute-selector.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#string" - }, - { - "captures": { - "1": { - "name": "storage.modifier.ignore-case.css" - } - }, - "match": "(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)" - }, - { - "captures": { - "1": { - "name": "string.unquoted.attribute-value.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)" - }, - { - "include": "#escapes" - }, - { - "match": "[~|^$*]?=", - "name": "keyword.operator.pattern.css" - }, - { - "match": "\\|", - "name": "punctuation.separator.css" - }, - { - "captures": { - "1": { - "name": "entity.other.namespace-prefix.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\x00-\\x7F]\n )\n)" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)" - } - ] - }, - { - "include": "#pseudo-classes" - }, - { - "include": "#pseudo-elements" - }, - { - "include": "#functional-pseudo-classes" - }, - { - "match": "(?x) (?<![@\\w-])\n(?= # Custom element names must:\n [a-z] # - start with a lowercase ASCII letter,\n \\w* - # - contain at least one dash\n)\n(?:\n (?![A-Z]) # No uppercase ASCII letters are allowed\n [\\w-] # Allow any other word character or dash\n)+\n(?![(\\w-])", - "name": "entity.name.tag.custom.css" - } - ] - }, - "string": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "\"|(?<!\\\\)(?=$|\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.double.css", - "patterns": [ - { - "begin": "(?:\\G|^)(?=(?:[^\\\\\"]|\\\\.)+$)", - "end": "$", - "name": "invalid.illegal.unclosed.string.css", - "patterns": [ - { - "include": "#escapes" - } - ] - }, - { - "include": "#escapes" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "'|(?<!\\\\)(?=$|\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.single.css", - "patterns": [ - { - "begin": "(?:\\G|^)(?=(?:[^\\\\']|\\\\.)+$)", - "end": "$", - "name": "invalid.illegal.unclosed.string.css", - "patterns": [ - { - "include": "#escapes" - } - ] - }, - { - "include": "#escapes" - } - ] - } - ] - }, - "tag-names": { - "match": "(?xi) (?<![\\w:-])\n(?:\n # HTML\n a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|bgsound\n | big|blink|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command\n | content|data|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|element|em|embed|fieldset\n | figcaption|figure|font|footer|form|frame|frameset|h[1-6]|head|header|hgroup|hr|html|i\n | iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|main|map|mark\n | marquee|math|menu|menuitem|meta|meter|multicol|nav|nextid|nobr|noembed|noframes|noscript\n | object|ol|optgroup|option|output|p|param|picture|plaintext|pre|progress|q|rb|rp|rt|rtc\n | ruby|s|samp|script|section|select|shadow|slot|small|source|spacer|span|strike|strong\n | style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr\n | track|tt|u|ul|var|video|wbr|xmp\n\n # SVG\n | altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform\n | circle|clipPath|color-profile|cursor|defs|desc|discard|ellipse|feBlend|feColorMatrix\n | feComponentTransfer|feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap\n | feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur\n | feImage|feMerge|feMergeNode|feMorphology|feOffset|fePointLight|feSpecularLighting\n | feSpotLight|feTile|feTurbulence|filter|font-face|font-face-format|font-face-name\n | font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern\n | line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata\n | missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor\n | stop|svg|switch|symbol|text|textPath|tref|tspan|use|view|vkern\n\n # MathML\n | annotation|annotation-xml|maction|maligngroup|malignmark|math|menclose|merror|mfenced\n | mfrac|mglyph|mi|mlabeledtr|mlongdiv|mmultiscripts|mn|mo|mover|mpadded|mphantom|mroot\n | mrow|ms|mscarries|mscarry|msgroup|msline|mspace|msqrt|msrow|mstack|mstyle|msub|msubsup\n | msup|mtable|mtd|mtext|mtr|munder|munderover|semantics\n)\n(?=[+~>\\s,.\\#|){:\\[]|/\\*|$)", - "name": "entity.name.tag.css" - }, - "unicode-range": { - "captures": { - "0": { - "name": "constant.other.unicode-range.css" - }, - "1": { - "name": "punctuation.separator.dash.unicode-range.css" - } - }, - "match": "(?<![\\w-])[Uu]\\+[0-9A-Fa-f?]{1,6}(?:(-)[0-9A-Fa-f]{1,6})?(?![\\w-])" - }, - "url": { - "begin": "(?i)(?<![\\w@-])(url)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.url.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "name": "meta.function.url.css", - "patterns": [ - { - "match": "[^'\")\\s]+", - "name": "variable.parameter.url.css" - }, - { - "include": "#string" - }, - { - "include": "#comment-block" - }, - { - "include": "#escapes" - } - ] - } - } -} diff --git a/lib/grammars/cue.tmLanguage.json b/lib/grammars/cue.tmLanguage.json deleted file mode 100644 index 15aa409..0000000 --- a/lib/grammars/cue.tmLanguage.json +++ /dev/null @@ -1,1126 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "cue", - "fileTypes": ["cue"], - "scopeName": "source.cue", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(package)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(?![\\p{L}\\p{Nd}_\\$\\#])", - "captures": { - "1": { - "name": "keyword.other.package" - }, - "2": { - "name": "entity.name.namespace" - } - } - }, - { - "patterns": [ - { - "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.import" - }, - "2": { - "name": "punctuation.section.parens.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "match": "(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")", - "captures": { - "1": { - "name": "entity.name.namespace" - }, - "2": { - "name": "punctuation.definition.string.begin" - }, - "3": { - "name": "string.quoted.double-import" - }, - "4": { - "name": "punctuation.colon" - }, - "5": { - "name": "entity.name" - }, - "6": { - "name": "punctuation.definition.string.end" - } - }, - "name": "meta.import-spec" - }, - { - "match": ";", - "name": "punctuation.separator" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.imports" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")", - "captures": { - "1": { - "name": "keyword.other.import" - }, - "2": { - "name": "entity.name.namespace" - }, - "3": { - "name": "punctuation.definition.string.begin" - }, - "4": { - "name": "string.quoted.double-import" - }, - "5": { - "name": "punctuation.colon" - }, - "6": { - "name": "entity.name" - }, - "7": { - "name": "punctuation.definition.string.end" - } - }, - "name": "meta.import" - } - ] - }, - { - "include": "#punctuation_comma" - }, - { - "include": "#declaration" - }, - { - "include": "#invalid_in_braces" - } - ], - "repository": { - "attribute_element": { - "patterns": [ - { - "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(=)", - "beginCaptures": { - "1": { - "name": "variable.other" - }, - "2": { - "name": "punctuation.bind" - } - }, - "end": "(?=[,\\)])", - "patterns": [ - { - "include": "#attribute_string" - } - ] - }, - { - "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other" - }, - "2": { - "name": "punctuation.attribute-elements.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.attribute-elements.end" - } - }, - "patterns": [ - { - "include": "#punctuation_comma" - }, - { - "include": "#attribute_element" - } - ] - }, - { - "include": "#attribute_string" - } - ] - }, - "attribute_string": { - "patterns": [ - { - "include": "#string" - }, - { - "match": "[^\\n,\"'#=\\(\\)]+", - "name": "string.unquoted" - }, - { - "match": "[^,\\)]+", - "name": "invalid" - } - ] - }, - "comment": { - "patterns": [ - { - "match": "(//).*$\\n?", - "captures": { - "1": { - "name": "punctuation.definition.comment" - } - }, - "name": "comment.line" - }, - { - "captures": { - "0": { - "name": "punctuation.definition.comment" - } - }, - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block" - } - ] - }, - "declaration": { - "patterns": [ - { - "begin": "(@)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.annotation" - }, - "2": { - "name": "variable.annotation" - }, - "3": { - "name": "punctuation.attribute-elements.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.attribute-elements.end" - } - }, - "patterns": [ - { - "include": "#punctuation_comma" - }, - { - "include": "#attribute_element" - } - ], - "name": "meta.annotation" - }, - { - "match": "(?<!:)::(?!:)", - "name": "punctuation.isa" - }, - { - "include": "#punctuation_colon" - }, - { - "match": "\\?", - "name": "punctuation.option" - }, - { - "match": "(?<![=!><])=(?![=~])", - "name": "punctuation.bind" - }, - { - "match": "<-", - "name": "punctuation.arrow" - }, - { - "include": "#expression" - } - ] - }, - "expression": { - "patterns": [ - { - "patterns": [ - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(for)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?:[ \\t]*(,)[ \\t]*([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+))?[ \\t]+(in)(?![\\p{L}\\p{Nd}_\\$\\#])", - "captures": { - "1": { - "name": "keyword.control.for" - }, - "2": { - "name": "variable.other" - }, - "3": { - "name": "punctuation.separator" - }, - "4": { - "name": "variable.other" - }, - "5": { - "name": "keyword.control.in" - } - } - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])if(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "keyword.control.conditional" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(let)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)(?![=])", - "captures": { - "1": { - "name": "keyword.control.let" - }, - "2": { - "name": "variable.other" - }, - "3": { - "name": "punctuation.bind" - } - } - } - ] - }, - { - "patterns": [ - { - "match": "[\\+\\-\\*]|/(?![/*])", - "name": "keyword.operator" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:div|mod|quo|rem)(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "keyword.operator.word" - }, - { - "match": "=[=~]|![=~]|<=|>=|[<](?![-=])|[>](?![=])", - "name": "keyword.operator.comparison" - }, - { - "match": "&{2}|\\|{2}|!(?![=~])", - "name": "keyword.operator.logical" - }, - { - "match": "&(?!&)|\\|(?!\\|)", - "name": "keyword.operator.set" - } - ] - }, - { - "match": "(?<!\\.)(\\.)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])", - "captures": { - "1": { - "name": "punctuation.accessor" - }, - "2": { - "name": "variable.other.member" - } - } - }, - { - "patterns": [ - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_(?!\\|)(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "constant.language.top" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_\\|_(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "constant.language.bottom" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])null(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "constant.language.null" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:true|false)(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "constant.language.bool" - }, - { - "patterns": [ - { - "patterns": [ - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.float.decimal" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*[eE][\\+\\-]?[0-9](?:_?[0-9])*(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.float.decimal" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.float.decimal" - } - ] - }, - { - "patterns": [ - { - "patterns": [ - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?:\\.[0-9](?:_?[0-9])*)?(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.integer.other" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.integer.other" - } - ] - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.integer.decimal" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])0b[0-1](?:_?[0-1])*(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.integer.binary" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])0[xX][0-9a-fA-F](?:_?[0-9a-fA-F])*(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.integer.hexadecimal" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\.])0o?[0-7](?:_?[0-7])*(?![\\p{L}\\p{Nd}_\\.])", - "name": "constant.numeric.integer.octal" - } - ] - } - ] - }, - { - "include": "#string" - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:bool|u?int(?:8|16|32|64|128)?|float(?:32|64)?|string|bytes|number|rune)(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "support.type" - }, - { - "patterns": [ - { - "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(len|close|and|or)(\\()", - "beginCaptures": { - "1": { - "name": "support.function" - }, - "2": { - "name": "punctuation.section.parens.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation_comma" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.function-call" - }, - { - "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(\\.)(\\p{Lu}[\\p{L}\\p{Nd}_\\$\\#]*)(\\()", - "beginCaptures": { - "1": { - "name": "support.module" - }, - "2": { - "name": "punctuation" - }, - "3": { - "name": "support.function" - }, - "4": { - "name": "punctuation.section.parens.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation_comma" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.function-call" - } - ] - }, - { - "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:[\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])", - "name": "variable.other" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.struct.begin" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.struct.end" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation_comma" - }, - { - "include": "#punctuation_ellipsis" - }, - { - "include": "#declaration" - }, - { - "include": "#invalid_in_braces" - } - ], - "name": "meta.struct" - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.begin" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.end" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation_colon" - }, - { - "include": "#punctuation_comma" - }, - { - "include": "#punctuation_ellipsis" - }, - { - "match": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)", - "captures": { - "1": { - "name": "variable.other" - }, - "2": { - "name": "punctuation.alias" - } - } - }, - { - "include": "#expression" - }, - { - "match": "[^\\]]+", - "name": "invalid" - } - ], - "name": "meta.brackets" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#punctuation_comma" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.parens" - } - ] - } - ] - }, - "invalid_in_braces": { - "match": "[^\\}]+", - "name": "invalid" - }, - "invalid_in_parens": { - "match": "[^\\)]+", - "name": "invalid" - }, - "punctuation_colon": { - "match": "(?<!:):(?!:)", - "name": "punctuation.colon" - }, - "punctuation_comma": { - "match": ",", - "name": "punctuation.separator" - }, - "punctuation_ellipsis": { - "match": "(?<!\\.)\\.{3}(?!\\.)", - "name": "punctuation.ellipsis" - }, - "string": { - "patterns": [ - { - "begin": "#\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "\"\"\"#", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.double-multiline", - "patterns": [ - { - "match": "\\\\#(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "invalid.illegal" - }, - { - "begin": "\\\\#\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\#.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "#\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "\"#", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.double", - "patterns": [ - { - "match": "\\\\#(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "invalid.illegal" - }, - { - "begin": "\\\\#\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\#.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "#'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "'''#", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.single-multiline", - "patterns": [ - { - "match": "\\\\#(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "constant.character.escape" - }, - { - "begin": "\\\\#\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\#.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "#'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "'#", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.single", - "patterns": [ - { - "match": "\\\\#(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "constant.character.escape" - }, - { - "begin": "\\\\#\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\#.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.double-multiline", - "patterns": [ - { - "match": "\\\\(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "invalid.illegal" - }, - { - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.double", - "patterns": [ - { - "match": "\\\\(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "invalid.illegal" - }, - { - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.single-multiline", - "patterns": [ - { - "match": "\\\\(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "constant.character.escape" - }, - { - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.single", - "patterns": [ - { - "match": "\\\\(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape" - }, - { - "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", - "name": "constant.character.escape" - }, - { - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.interpolation.begin" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.interpolation.end" - } - }, - "contentName": "source.cue.embedded", - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#expression" - }, - { - "include": "#invalid_in_parens" - } - ], - "name": "meta.interpolation" - }, - { - "match": "\\\\.", - "name": "invalid.illegal" - } - ], - "name": "meta.string" - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "contentName": "string.quoted.backtick", - "name": "meta.string" - } - ] - }, - "whitespace": { - "match": "[ \\t\\r\\n]+" - } - } -} diff --git a/lib/grammars/cypher.tmLanguage.json b/lib/grammars/cypher.tmLanguage.json deleted file mode 100644 index c39f493..0000000 --- a/lib/grammars/cypher.tmLanguage.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "fileTypes": ["cql", "cyp", "cypher"], - "name": "cypher", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#keywords" - }, - { - "include": "#functions" - }, - { - "include": "#path-patterns" - }, - { - "include": "#operators" - }, - { - "include": "#identifiers" - }, - { - "include": "#properties_literal" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "match": "//.*$\\n?", - "name": "comment.line.double-slash.cypher" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "(?i)\\bTRUE|FALSE\\b", - "name": "constant.language.bool.cypher" - }, - { - "match": "(?i)\\bNULL\\b", - "name": "constant.language.missing.cypher" - } - ] - }, - "functions": { - "patterns": [ - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b((NOT)(?=\\s*\\()|IS\\s+NULL|IS\\s+NOT\\s+NULL)", - "name": "keyword.control.function.boolean.cypher" - }, - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b(ALL|ANY|NONE|SINGLE)(?=\\s*\\()", - "name": "support.function.predicate.cypher" - }, - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b(LENGTH|TYPE|ID|COALESCE|HEAD|LAST|TIMESTAMP|STARTNODE|ENDNODE|TOINT|TOFLOAT)(?=\\s*\\()", - "name": "support.function.scalar.cypher" - }, - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b(NODES|RELATIONSHIPS|LABELS|EXTRACT|FILTER|TAIL|RANGE|REDUCE)(?=\\s*\\()", - "name": "support.function.collection.cypher" - }, - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b(ABS|ACOS|ASIN|ATAN|ATAN2|COS|COT|DEGREES|E|EXP|FLOOR|HAVERSIN|LOG|LOG10|PI|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|TAN)(?=\\s*\\()", - "name": "support.function.math.cypher" - }, - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b(COUNT|sum|avg|max|min|stdev|stdevp|percentileDisc|percentileCont|collect)(?=\\s*\\()", - "name": "support.function.aggregation.cypher" - }, - { - "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", - "match": "(?i)\\b(STR|REPLACE|SUBSTRING|LEFT|RIGHT|LTRIM|RTRIM|TRIM|LOWER|UPPER|SPLIT)(?=\\s*\\()", - "name": "support.function.string.cypher" - } - ] - }, - "identifiers": { - "patterns": [ - { - "match": "`.+?`", - "name": "variable.other.quoted-identifier.cypher" - }, - { - "match": "[\\p{L}_][\\p{L}0-9_]*", - "name": "variable.other.identifier.cypher" - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "(?i)\\b(START|MATCH|WHERE|RETURN|UNION|FOREACH|WITH|AS|LIMIT|SKIP|UNWIND|HAS|DISTINCT|OPTIONAL\\\\s+MATCH|ORDER\\s+BY|CALL|YIELD)\\b", - "name": "keyword.control.clause.cypher" - }, - { - "match": "(?i)\\b(ELSE|END|THEN|CASE|WHEN)\\b", - "name": "keyword.control.case.cypher" - }, - { - "match": "(?i)\\b(FIELDTERMINATOR|USING\\s+PERIODIC\\s+COMMIT|HEADERS|LOAD\\s+CSV|FROM)\\b", - "name": "keyword.data.import.cypher" - }, - { - "match": "(?i)\\b(USING\\s+INDEX|CREATE\\s+INDEX\\s+ON|DROP\\s+INDEX\\s+ON|CREATE\\s+CONSTRAINT\\s+ON|DROP\\s+CONSTRAINT\\s+ON)\\b", - "name": "keyword.other.indexes.cypher" - }, - { - "match": "(?i)\\b(MERGE|DELETE|SET|REMOVE|ON\\s+CREATE|ON\\s+MATCH|CREATE\\s+UNIQUE|CREATE)\\b", - "name": "keyword.data.definition.cypher" - }, - { - "match": "(?i)\\b(DESC|ASC)\\b", - "name": "keyword.other.order.cypher" - }, - { - "begin": "(?i)\\b(node|relationship|rel)((:)([\\p{L}_-][\\p{L}0-9_]*))?(?=\\s*\\()", - "beginCaptures": { - "1": { - "name": "support.class.starting-functions-point.cypher" - }, - "2": { - "name": "keyword.control.index-seperator.cypher" - }, - "3": { - "name": "keyword.control.index-seperator.cypher" - }, - "4": { - "name": "support.class.index.cypher" - } - }, - "end": "\\)", - "name": "source.starting-functions.cypher", - "patterns": [ - { - "match": "((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))", - "name": "variable.parameter.relationship-name.cypher" - }, - { - "match": "(\\*)", - "name": "keyword.control.starting-function-params.cypher" - }, - { - "include": "#comments" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - } - ] - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "\\b\\d+(\\.\\d+)?\\b", - "name": "constant.numeric.cypher" - } - ] - }, - "operators": { - "patterns": [ - { - "match": "(\\+|\\-|\\/|\\*|\\%|\\?|!)", - "name": "keyword.operator.math.cypher" - }, - { - "match": "(<=|=>|<>|<|>|=~|=)", - "name": "keyword.operator.compare.cypher" - }, - { - "match": "(?i)\\b(OR|AND|XOR|IS)\\b", - "name": "keyword.operator.logical.cypher" - }, - { - "match": "(?i)\\b(IN)\\b", - "name": "keyword.operator.in.cypher" - } - ] - }, - "path-patterns": { - "patterns": [ - { - "match": "(<--|-->|--)", - "name": "support.function.relationship-pattern.cypher" - }, - { - "begin": "(<-|-)(\\[)", - "beginCaptures": { - "1": { - "name": "support.function.relationship-pattern-start.cypher" - }, - "2": { - "name": "keyword.operator.relationship-pattern-start.cypher" - } - }, - "end": "(])(->|-)", - "endCaptures": { - "1": { - "name": "keyword.operator.relationship-pattern-end.cypher" - }, - "2": { - "name": "support.function.relationship-pattern-end.cypher" - } - }, - "name": "path-pattern.cypher", - "patterns": [ - { - "include": "#identifiers" - }, - { - "captures": { - "1": { - "name": "keyword.operator.relationship-type-start.cypher" - }, - "2": { - "name": "entity.name.class.relationship.type.cypher" - } - }, - "match": "(:)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))", - "name": "entity.name.class.relationship-type.cypher" - }, - { - "captures": { - "1": { - "name": "support.type.operator.relationship-type-or.cypher" - }, - "2": { - "name": "entity.name.class.relationship.type-or.cypher" - } - }, - "match": "(\\|)(\\s*)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))", - "name": "entity.name.class.relationship-type-ored.cypher" - }, - { - "match": "(?:\\?\\*|\\?|\\*)\\s*(?:\\d+\\s*(?:\\.\\.\\s*\\d+)?)?", - "name": "support.function.relationship-pattern.quant.cypher" - }, - { - "include": "#properties_literal" - } - ] - } - ] - }, - "properties_literal": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "keyword.control.properties_literal.cypher" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "keyword.control.properties_literal.cypher" - } - }, - "name": "source.cypher", - "patterns": [ - { - "match": ":|,", - "name": "keyword.control.properties_literal.seperator.cypher" - }, - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#functions" - }, - { - "include": "#operators" - }, - { - "include": "#identifiers" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - } - ] - } - ] - }, - "string_escape": { - "captures": { - "2": { - "name": "string.quoted.double.cypher" - } - }, - "match": "(\\\\\\\\|\\\\[tbnrf])|(\\\\'|\\\\\")", - "name": "constant.character.escape.cypher" - }, - "strings": { - "patterns": [ - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.cypher", - "patterns": [ - { - "include": "#string_escape" - } - ] - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.cypher", - "patterns": [ - { - "include": "#string_escape" - } - ] - } - ] - } - }, - "scopeName": "source.cypher", - "uuid": "698F4D06-BAE8-40A8-8AA4-3307ABC03B31" -} diff --git a/lib/grammars/d.tmLanguage.json b/lib/grammars/d.tmLanguage.json deleted file mode 100644 index 95cf2df..0000000 --- a/lib/grammars/d.tmLanguage.json +++ /dev/null @@ -1,3180 +0,0 @@ -{ - "fileTypes": ["d", "di", "dpp"], - "name": "d", - "scopeName": "source.d", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type" - }, - { - "include": "#statement" - }, - { - "include": "#expression" - } - ], - "repository": { - "type": { - "patterns": [ - { - "include": "#typeof" - }, - { - "include": "#base-type" - }, - { - "include": "#type-ctor" - }, - { - "begin": "!\\(", - "end": "\\)", - "patterns": [ - { - "include": "#type" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "base-type": { - "patterns": [ - { - "match": "\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\b", - "name": "storage.type.basic-type.d" - }, - { - "match": "\\b(string|wstring|dstring|size_t|ptrdiff_t)\\b(?!\\s*=)", - "name": "storage.type.basic-type.d" - } - ] - }, - "extended-type": { - "patterns": [ - { - "match": "\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b", - "name": "entity.name.type.d" - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "storage.type.array.expression.begin.d" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "storage.type.array.expression.end.d" - } - }, - "patterns": [ - { - "match": "\\.\\.|\\$", - "name": "keyword.operator.slice.d" - }, - { - "include": "#type" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "type-ctor": { - "patterns": [ - { - "match": "(const|immutable|inout|shared)\\b", - "name": "storage.type.modifier.d" - } - ] - }, - "typeof": { - "begin": "typeof\\s*\\(", - "end": "\\)", - "name": "keyword.token.typeof.d", - "patterns": [ - { - "match": "return", - "name": "keyword.control.return.d" - }, - { - "include": "#expression" - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#index-expression" - }, - { - "include": "#expression-no-index" - } - ] - }, - "expression-no-index": { - "patterns": [ - { - "include": "#function-literal" - }, - { - "include": "#assert-expression" - }, - { - "include": "#assign-expression" - }, - { - "include": "#mixin-expression" - }, - { - "include": "#import-expression" - }, - { - "include": "#traits-expression" - }, - { - "include": "#is-expression" - }, - { - "include": "#typeid-expression" - }, - { - "include": "#shift-expression" - }, - { - "include": "#logical-expression" - }, - { - "include": "#rel-expression" - }, - { - "include": "#bitwise-expression" - }, - { - "include": "#identity-expression" - }, - { - "include": "#in-expression" - }, - { - "include": "#conditional-expression" - }, - { - "include": "#arithmetic-expression" - }, - { - "include": "#new-expression" - }, - { - "include": "#delete-expression" - }, - { - "include": "#cast-expression" - }, - { - "include": "#type-specialization" - }, - { - "include": "#comma" - }, - { - "include": "#special-keyword" - }, - { - "include": "#functions" - }, - { - "include": "#type" - }, - { - "include": "#parentheses-expression" - }, - { - "include": "#lexical" - } - ] - }, - "assign-expression": { - "patterns": [ - { - "match": ">>>=|\\^\\^=|>>=|<<=|~=|\\^=|\\|=|&=|%=|/=|\\*=|-=|\\+=|=(?!>)", - "name": "keyword.operator.assign.d" - } - ] - }, - "conditional-expression": { - "patterns": [ - { - "match": "\\s(\\?|:)\\s", - "name": "keyword.operator.ternary.d" - } - ] - }, - "logical-expression": { - "patterns": [ - { - "match": "\\|\\||&&|==|!=|!", - "name": "keyword.operator.logical.d" - } - ] - }, - "bitwise-expression": { - "patterns": [ - { - "match": "\\||\\^|&", - "name": "keyword.operator.bitwise.d" - } - ] - }, - "identity-expression": { - "patterns": [ - { - "match": "\\b(is|!is)\\b", - "name": "keyword.operator.identity.d" - } - ] - }, - "rel-expression": { - "patterns": [ - { - "match": "!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>", - "name": "keyword.operator.rel.d" - } - ] - }, - "in-expression": { - "patterns": [ - { - "match": "\\b(in|!in)\\b", - "name": "keyword.operator.in.d" - } - ] - }, - "shift-expression": { - "patterns": [ - { - "match": "<<|>>|>>>", - "name": "keyword.operator.shift.d" - }, - { - "include": "#add-expression" - } - ] - }, - "arithmetic-expression": { - "patterns": [ - { - "match": "\\^\\^|\\+\\+|--|(?<!/)\\+(?!/)|-|~|(?<!/)\\*(?!/)|(?<![+*/])/(?![+*/])|%", - "name": "keyword.operator.numeric.d" - } - ] - }, - "new-expression": { - "patterns": [ - { - "match": "\\bnew\\s+", - "name": "keyword.other.new.d" - } - ] - }, - "delete-expression": { - "patterns": [ - { - "match": "\\bdelete\\s+", - "name": "keyword.other.delete.d" - } - ] - }, - "cast-expression": { - "patterns": [ - { - "begin": "\\b(cast)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.cast.d" - }, - "2": { - "name": "keyword.operator.cast.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.operator.cast.end.d" - } - }, - "patterns": [ - { - "include": "#type" - }, - { - "include": "#extended-type" - } - ] - } - ] - }, - "index-expression": { - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "match": "\\.\\.|\\$", - "name": "keyword.operator.slice.d" - }, - { - "include": "#expression-no-index" - } - ] - } - ] - }, - "function-literal": { - "patterns": [ - { - "match": "=>", - "name": "keyword.operator.lambda.d" - }, - { - "match": "\\b(function|delegate)\\b", - "name": "keyword.other.function-literal.d" - }, - { - "begin": "\\b([_\\w][_\\d\\w]*)\\s*(=>)", - "end": "(?=[\\);,\\]}])", - "beginCaptures": { - "1": { - "name": "variable.parameter.d" - }, - "2": { - "name": "meta.lexical.token.symbolic.d" - } - }, - "patterns": [ - { - "include": "source.d" - } - ] - }, - { - "begin": "(?<=\\)|\\()(\\s*)({)", - "beginCaptures": { - "1": { - "name": "source.d" - }, - "2": { - "name": "source.d" - } - }, - "end": "}", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - }, - "assert-expression": { - "patterns": [ - { - "begin": "\\bassert\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.assert.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.assert.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "mixin-expression": { - "patterns": [ - { - "begin": "\\bmixin\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.mixin.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.mixin.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "import-expression": { - "patterns": [ - { - "begin": "\\b(import)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.import.d" - }, - "2": { - "name": "keyword.other.import.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.import.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "typeid-expression": { - "patterns": [ - { - "match": "\\btypeid\\s*(?=\\()", - "name": "keyword.other.typeid.d" - } - ] - }, - "type-specialization": { - "patterns": [ - { - "match": "\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\b", - "name": "keyword.other.storage.type-specialization.d" - } - ] - }, - "traits-expression": { - "patterns": [ - { - "begin": "\\b__traits\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.traits.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.traits.end.d" - } - }, - "patterns": [ - { - "include": "#traits-keyword" - }, - { - "include": "#comma" - }, - { - "include": "#traits-argument" - } - ] - } - ] - }, - "traits-keyword": { - "patterns": [ - { - "match": "isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles", - "name": "support.constant.traits-keyword.d" - } - ] - }, - "traits-arguments": { - "patterns": [ - { - "include": "#traits-argument" - }, - { - "include": "#comma" - } - ] - }, - "traits-argument": { - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#type" - } - ] - }, - "special-keyword": { - "patterns": [ - { - "match": "\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\b", - "name": "constant.language.special-keyword.d" - } - ] - }, - "statement": { - "patterns": [ - { - "include": "#non-block-statement" - }, - { - "include": "#semi-colon" - } - ] - }, - "non-block-statement": { - "patterns": [ - { - "include": "#module-declaration" - }, - { - "include": "#labeled-statement" - }, - { - "include": "#if-statement" - }, - { - "include": "#while-statement" - }, - { - "include": "#do-statement" - }, - { - "include": "#for-statement" - }, - { - "include": "#static-foreach" - }, - { - "include": "#static-foreach-reverse" - }, - { - "include": "#foreach-statement" - }, - { - "include": "#foreach-reverse-statement" - }, - { - "include": "#switch-statement" - }, - { - "include": "#final-switch-statement" - }, - { - "include": "#case-statement" - }, - { - "include": "#default-statement" - }, - { - "include": "#continue-statement" - }, - { - "include": "#break-statement" - }, - { - "include": "#return-statement" - }, - { - "include": "#goto-statement" - }, - { - "include": "#with-statement" - }, - { - "include": "#synchronized-statement" - }, - { - "include": "#try-statement" - }, - { - "include": "#catches" - }, - { - "include": "#scope-guard-statement" - }, - { - "include": "#throw-statement" - }, - { - "include": "#finally-statement" - }, - { - "include": "#asm-statement" - }, - { - "include": "#pragma-statement" - }, - { - "include": "#mixin-statement" - }, - { - "include": "#conditional-statement" - }, - { - "include": "#static-assert" - }, - { - "include": "#deprecated-statement" - }, - { - "include": "#unit-test" - }, - { - "include": "#declaration-statement" - } - ] - }, - "labeled-statement": { - "patterns": [ - { - "match": "\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\s*:", - "name": "entity.name.d" - } - ] - }, - "declaration-statement": { - "patterns": [ - { - "include": "#declaration" - } - ] - }, - "if-statement": { - "patterns": [ - { - "begin": "\\b(if)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.if.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - }, - { - "match": "\\belse\\b\\s*", - "name": "keyword.control.else.d" - } - ] - }, - "while-statement": { - "patterns": [ - { - "begin": "\\b(while)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.while.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "do-statement": { - "patterns": [ - { - "match": "\\bdo\\b", - "name": "keyword.control.do.d" - } - ] - }, - "for-statement": { - "patterns": [ - { - "begin": "\\b(for)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.for.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "foreach-statement": { - "patterns": [ - { - "begin": "\\b(foreach)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.foreach.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "match": ";", - "name": "keyword.operator.semi-colon.d" - }, - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "foreach-reverse-statement": { - "patterns": [ - { - "begin": "\\b(foreach_reverse)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.foreach_reverse.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "match": ";", - "name": "keyword.operator.semi-colon.d" - }, - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "switch-statement": { - "patterns": [ - { - "begin": "\\b(switch)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.switch.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "case-statement": { - "patterns": [ - { - "begin": "\\b(case)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.case.range.d" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "meta.case.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "default-statement": { - "patterns": [ - { - "match": "\\b(default)\\s*(:)", - "captures": { - "1": { - "name": "keyword.control.case.default.d" - }, - "2": { - "name": "meta.default.colon.d" - } - } - } - ] - }, - "final-switch-statement": { - "patterns": [ - { - "begin": "\\b(final\\s+switch)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.final.switch.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "continue-statement": { - "patterns": [ - { - "match": "\\bcontinue\\b", - "name": "keyword.control.continue.d" - } - ] - }, - "break-statement": { - "patterns": [ - { - "match": "\\bbreak\\b", - "name": "keyword.control.break.d" - } - ] - }, - "return-statement": { - "patterns": [ - { - "match": "\\breturn\\b", - "name": "keyword.control.return.d" - } - ] - }, - "goto-statement": { - "patterns": [ - { - "match": "\\bgoto\\s+default\\b", - "name": "keyword.control.goto.d" - }, - { - "match": "\\bgoto\\s+case\\b", - "name": "keyword.control.goto.d" - }, - { - "match": "\\bgoto\\b", - "name": "keyword.control.goto.d" - } - ] - }, - "with-statement": { - "patterns": [ - { - "begin": "\\b(with)\\b\\s*(?=\\()", - "captures": { - "1": { - "name": "keyword.control.with.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "synchronized-statement": { - "patterns": [ - { - "begin": "\\b(synchronized)\\b\\s*(?=\\()", - "captures": { - "1": { - "name": "keyword.control.synchronized.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "try-statement": { - "patterns": [ - { - "match": "\\btry\\b", - "name": "keyword.control.try.d" - } - ] - }, - "catches": { - "patterns": [ - { - "include": "#catch" - } - ] - }, - "catch": { - "patterns": [ - { - "begin": "\\b(catch)\\b\\s*(?=\\()", - "captures": { - "1": { - "name": "keyword.control.catch.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "finally-statement": { - "patterns": [ - { - "match": "\\bfinally\\b", - "name": "keyword.control.throw.d" - } - ] - }, - "throw-statement": { - "patterns": [ - { - "match": "\\bthrow\\b", - "name": "keyword.control.throw.d" - } - ] - }, - "scope-guard-statement": { - "patterns": [ - { - "match": "\\bscope\\s*\\((exit|success|failure)\\)", - "name": "keyword.control.scope.d" - } - ] - }, - "asm-statement": { - "patterns": [ - { - "begin": "\\b(asm)\\b\\s*(?=\\{)", - "captures": { - "1": { - "name": "keyword.control.switch.d" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "keyword.control.asm.begin.d" - } - }, - "endCaptures": { - "0": { - "name": "keyword.control.asm.end.d" - } - }, - "contentName": "gfm.markup.raw.assembly.d", - "patterns": [ - { - "include": "#asm-instruction" - } - ] - } - ] - } - ] - }, - "pragma-statement": { - "patterns": [ - { - "include": "#pragma" - } - ] - }, - "mixin-statement": { - "patterns": [ - { - "begin": "\\bmixin\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.control.mixin.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.control.mixin.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "is-expression": { - "patterns": [ - { - "begin": "\\bis\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.token.is.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.token.is.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "parentheses-expression": { - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "deprecated-statement": { - "patterns": [ - { - "begin": "\\bdeprecated\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.deprecated.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.deprecated.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - }, - { - "match": "\\bdeprecated\\b\\s*(?!\\()", - "name": "keyword.other.deprecated.plain.d" - } - ] - }, - "asm-instruction": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "\\b(align|even|naked|db|ds|di|dl|df|dd|de)\\b|:", - "name": "keyword.asm-instruction.d" - }, - { - "match": "\\b__LOCAL_SIZE\\b", - "name": "constant.language.assembly.d" - }, - { - "match": "\\b(offsetof|seg)\\b", - "name": "support.type.assembly.d" - }, - { - "include": "#asm-type-prefix" - }, - { - "include": "#asm-primary-expression" - }, - { - "include": "#operands" - }, - { - "include": "#register" - }, - { - "include": "#register-64" - }, - { - "include": "#float-literal" - }, - { - "include": "#integer-literal" - }, - { - "include": "#identifier" - } - ] - }, - "operands": { - "patterns": [ - { - "match": "\\?|:", - "name": "keyword.operator.ternary.assembly.d" - }, - { - "match": "\\]|\\[", - "name": "keyword.operator.bracket.assembly.d" - }, - { - "match": ">>>|\\|\\||&&|==|!=|<=|>=|<<|>>|\\||\\^|&|<|>|\\+|-|\\*|/|%|~|!", - "name": "keyword.operator.assembly.d" - } - ] - }, - "asm-type-prefix": { - "patterns": [ - { - "match": "\\b((near\\s+ptr)|(far\\s+ptr)|(byte\\s+ptr)|(short\\s+ptr)|(int\\s+ptr)|(word\\s+ptr)|(dword\\s+ptr)|(qword\\s+ptr)|(float\\s+ptr)|(double\\s+ptr)|(real\\s+ptr))\\b", - "name": "support.type.asm-type-prefix.d" - } - ] - }, - "register": { - "patterns": [ - { - "match": "\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\(0\\)|ST\\(1\\)|ST\\(2\\)|ST\\(3\\)|ST\\(4\\)|ST\\(5\\)|ST\\(6\\)|ST\\(7\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\b", - "name": "storage.type.assembly.register.d" - } - ] - }, - "register-64": { - "patterns": [ - { - "match": "\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\b", - "name": "storage.type.assembly.register-64.d" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#alias-declaration" - }, - { - "include": "#aggregate-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#import-declaration" - }, - { - "include": "#storage-class" - }, - { - "include": "#void-initializer" - }, - { - "include": "#mixin-declaration" - } - ] - }, - "alias-declaration": { - "patterns": [ - { - "begin": "\\b(alias)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.alias.d" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "meta.alias.end.d" - } - }, - "patterns": [ - { - "include": "#type" - }, - { - "match": "=(?![=>])", - "name": "keyword.operator.equal.alias.d" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "storage-class": { - "patterns": [ - { - "match": "\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b", - "name": "storage.class.d" - }, - { - "include": "#linkage-attribute" - }, - { - "include": "#align-attribute" - }, - { - "include": "#property" - } - ] - }, - "void-initializer": { - "patterns": [ - { - "match": "\\bvoid\\b", - "name": "support.type.void.d" - } - ] - }, - "functions": { - "patterns": [ - { - "include": "#function-attribute" - }, - { - "include": "#function-prelude" - } - ] - }, - "function-prelude": { - "patterns": [ - { - "match": "(?!typeof|typeid)((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\s*(?=\\()", - "name": "entity.name.function.d" - } - ] - }, - "class-members": { - "patterns": [ - { - "include": "#shared-static-constructor" - }, - { - "include": "#shared-static-destructor" - }, - { - "include": "#constructor" - }, - { - "include": "#destructor" - }, - { - "include": "#postblit" - }, - { - "include": "#invariant" - }, - { - "include": "#member-function-attribute" - } - ] - }, - "function-attribute": { - "patterns": [ - { - "match": "\\b(nothrow|pure)\\b", - "name": "storage.type.modifier.function-attribute.d" - }, - { - "include": "#property" - } - ] - }, - "member-function-attribute": { - "patterns": [ - { - "match": "\\b(const|immutable|inout|shared)\\b", - "name": "storage.type.modifier.member-function-attribute" - } - ] - }, - "function-body": { - "patterns": [ - { - "include": "#in-statement" - }, - { - "include": "#out-statement" - }, - { - "include": "#block-statement" - } - ] - }, - "in-statement": { - "patterns": [ - { - "match": "\\bin\\b", - "name": "keyword.control.in.d" - } - ] - }, - "out-statement": { - "patterns": [ - { - "begin": "\\bout\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.control.out.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.control.out.end.d" - } - }, - "patterns": [ - { - "include": "#identifier" - } - ] - }, - { - "match": "\\bout\\b", - "name": "keyword.control.out.d" - } - ] - }, - "constructor": { - "patterns": [ - { - "match": "\\bthis\\b", - "name": "entity.name.function.constructor.d" - } - ] - }, - "destructor": { - "patterns": [ - { - "match": "\\b~this\\s*\\(\\s*\\)", - "name": "entity.name.class.destructor.d" - } - ] - }, - "postblit": { - "patterns": [ - { - "match": "\\bthis\\s*\\(\\s*this\\s*\\)\\s", - "name": "entity.name.class.postblit.d" - } - ] - }, - "invariant": { - "patterns": [ - { - "match": "\\binvariant\\s*\\(\\s*\\)", - "name": "entity.name.class.invariant.d" - } - ] - }, - "shared-static-constructor": { - "patterns": [ - { - "match": "\\b(shared\\s+)?static\\s+this\\s*\\(\\s*\\)", - "name": "entity.name.class.constructor.shared-static.d" - }, - { - "include": "#function-body" - } - ] - }, - "shared-static-destructor": { - "patterns": [ - { - "match": "\\b(shared\\s+)?static\\s+~this\\s*\\(\\s*\\)", - "name": "entity.name.class.destructor.static.d" - } - ] - }, - "aggregate-declaration": { - "patterns": [ - { - "include": "#class-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#struct-declaration" - }, - { - "include": "#union-declaration" - }, - { - "include": "#mixin-template-declaration" - }, - { - "include": "#template-declaration" - } - ] - }, - "class-declaration": { - "patterns": [ - { - "match": "\\b(class)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", - "captures": { - "1": { - "name": "storage.type.class.d" - }, - "2": { - "name": "entity.name.class.d" - } - } - }, - { - "include": "#protection-attribute" - }, - { - "include": "#class-members" - } - ] - }, - "interface-declaration": { - "patterns": [ - { - "match": "\\b(interface)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", - "captures": { - "1": { - "name": "storage.type.interface.d" - }, - "2": { - "name": "entity.name.type.interface.d" - } - } - } - ] - }, - "struct-declaration": { - "patterns": [ - { - "match": "\\b(struct)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", - "captures": { - "1": { - "name": "storage.type.struct.d" - }, - "2": { - "name": "entity.name.type.struct.d" - } - } - } - ] - }, - "union-declaration": { - "patterns": [ - { - "match": "\\b(union)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", - "captures": { - "1": { - "name": "storage.type.union.d" - }, - "2": { - "name": "entity.name.type.union.d" - } - } - } - ] - }, - "enum-declaration": { - "patterns": [ - { - "begin": "\\b(enum)\\b\\s+(?=.*[=;])", - "end": "([A-Za-z_][\\w_\\d]*)\\s*(?=;|=|\\()(;)?", - "beginCaptures": { - "1": { - "name": "storage.type.enum.d" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.type.enum.d" - }, - "2": { - "name": "meta.enum.end.d" - } - }, - "patterns": [ - { - "include": "#type" - }, - { - "include": "#extended-type" - }, - { - "match": "=(?![=>])", - "name": "keyword.operator.equal.alias.d" - } - ] - } - ] - }, - "template-declaration": { - "patterns": [ - { - "match": "\\b(template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", - "captures": { - "1": { - "name": "storage.type.template.d" - }, - "2": { - "name": "entity.name.type.template.d" - } - } - } - ] - }, - "mixin-template-declaration": { - "patterns": [ - { - "match": "\\b(mixin\\s*template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", - "captures": { - "1": { - "name": "storage.type.mixintemplate.d" - }, - "2": { - "name": "entity.name.type.mixintemplate.d" - } - } - } - ] - }, - "attribute": { - "patterns": [ - { - "include": "#linkage-attribute" - }, - { - "include": "#align-attribute" - }, - { - "include": "#deprecated-attribute" - }, - { - "include": "#protection-attribute" - }, - { - "include": "#pragma" - }, - { - "match": "\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b", - "name": "entity.other.attribute-name.d" - }, - { - "include": "#property" - } - ] - }, - "linkage-attribute": { - "patterns": [ - { - "begin": "\\bextern\\s*\\(\\s*C\\+\\+\\s*,", - "beginCaptures": { - "0": { - "name": "keyword.other.extern.cplusplus.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.extern.cplusplus.end.d" - } - }, - "patterns": [ - { - "include": "#identifier" - }, - { - "include": "#comma" - } - ] - }, - { - "begin": "\\bextern\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.extern.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.extern.end.d" - } - }, - "patterns": [ - { - "include": "#linkage-type" - } - ] - } - ] - }, - "linkage-type": { - "patterns": [ - { - "match": "C|C\\+\\+|D|Windows|Pascal|System", - "name": "storage.modifier.linkage-type.d" - } - ] - }, - "align-attribute": { - "patterns": [ - { - "begin": "\\balign\\s*\\(", - "end": "\\)", - "name": "storage.modifier.align-attribute.d", - "patterns": [ - { - "include": "#integer-literal" - } - ] - }, - { - "match": "\\balign\\b\\s*(?!\\()", - "name": "storage.modifier.align-attribute.d" - } - ] - }, - "protection-attribute": { - "patterns": [ - { - "match": "\\b(private|package|protected|public|export)\\b", - "name": "keyword.other.protections.d" - } - ] - }, - "property": { - "patterns": [ - { - "match": "@(property|safe|trusted|system|disable|nogc)\\b", - "name": "entity.name.tag.property.d" - }, - { - "include": "#user-defined-attribute" - } - ] - }, - "user-defined-attribute": { - "patterns": [ - { - "match": "@([_\\w][_\\d\\w]*)\\b", - "name": "entity.name.tag.user-defined-property.d" - }, - { - "begin": "@([_\\w][_\\d\\w]*)?\\(", - "end": "\\)", - "name": "entity.name.tag.user-defined-property.d", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "pragma": { - "patterns": [ - { - "match": "\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*\\)", - "name": "keyword.other.pragma.d" - }, - { - "begin": "\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*,", - "end": "\\)", - "name": "keyword.other.pragma.d", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "^#!.+", - "name": "gfm.markup.header.preprocessor.script-tag.d" - } - ] - }, - "conditional-declaration": { - "patterns": [ - { - "include": "#condition" - }, - { - "match": "\\belse\\b", - "name": "keyword.control.else.d" - }, - { - "include": "#colon" - }, - { - "include": "#decl-defs" - } - ] - }, - "conditional-statement": { - "patterns": [ - { - "include": "#condition" - }, - { - "include": "#no-scope-non-empty-statement" - }, - { - "match": "\\belse\\b", - "name": "keyword.control.else.d" - } - ] - }, - "condition": { - "patterns": [ - { - "include": "#version-condition" - }, - { - "include": "#debug-condition" - }, - { - "include": "#static-if-condition" - } - ] - }, - "version-condition": { - "patterns": [ - { - "match": "\\bversion\\s*\\(\\s*unittest\\s*\\)", - "name": "keyword.other.version.unittest.d" - }, - { - "match": "\\bversion\\s*\\(\\s*assert\\s*\\)", - "name": "keyword.other.version.assert.d" - }, - { - "begin": "\\bversion\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.version.identifier.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.version.identifer.end.d" - } - }, - "patterns": [ - { - "include": "#integer-literal" - }, - { - "include": "#identifier" - } - ] - }, - { - "include": "#version-specification" - } - ] - }, - "debug-condition": { - "patterns": [ - { - "begin": "\\bdebug\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.debug.identifier.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.debug.identifier.end.d" - } - }, - "patterns": [ - { - "include": "#integer-literal" - }, - { - "include": "#identifier" - } - ] - }, - { - "match": "\\bdebug\\b\\s*(?!\\()", - "name": "keyword.other.debug.plain.d" - } - ] - }, - "version-specification": { - "patterns": [ - { - "match": "\\bversion\\b\\s*(?==)", - "name": "keyword.other.version-specification.d" - } - ] - }, - "debug-specification": { - "patterns": [ - { - "match": "\\bdebug\\b\\s*(?==)", - "name": "keyword.other.debug-specification.d" - } - ] - }, - "static-if-condition": { - "patterns": [ - { - "begin": "\\bstatic\\s+if\\b\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.control.static-if.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.control.static-if.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "static-assert": { - "patterns": [ - { - "begin": "\\bstatic\\s+assert\\b\\s*\\(", - "beginCaptures": { - "0": { - "name": "keyword.other.static-assert.begin.d" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.other.static-assert.end.d" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "static-foreach": { - "patterns": [ - { - "begin": "\\b(static\\s+foreach)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.static-foreach.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "match": ";", - "name": "keyword.operator.semi-colon.d" - }, - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "static-foreach-reverse": { - "patterns": [ - { - "begin": "\\b(static\\s+foreach_reverse)\\b\\s*", - "captures": { - "1": { - "name": "keyword.control.static-foreach.d" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "match": ";", - "name": "keyword.operator.semi-colon.d" - }, - { - "include": "source.d" - } - ] - } - ] - } - ] - }, - "module": { - "packages": [ - { - "import": "#module-declaration" - } - ] - }, - "module-declaration": { - "patterns": [ - { - "begin": "\\b(module)\\s+", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.package.module.d" - } - }, - "endCaptures": { - "0": { - "name": "meta.module.end.d" - } - }, - "patterns": [ - { - "include": "#module-identifier" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "import-declaration": { - "patterns": [ - { - "begin": "\\b(static\\s+)?(import)\\s+(?!\\()", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.package.import.d" - }, - "2": { - "name": "keyword.package.import.d" - } - }, - "endCaptures": { - "0": { - "name": "meta.import.end.d" - } - }, - "patterns": [ - { - "include": "#import-identifier" - }, - { - "include": "#comma" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "mixin-declaration": { - "patterns": [ - { - "begin": "\\bmixin\\s*\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "keyword.mixin.begin.d" - } - }, - "endCaptures": { - "0": { - "name": "keyword.mixin.end.d" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#expression" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "comma": { - "patterns": [ - { - "match": ",", - "name": "keyword.operator.comma.d" - } - ] - }, - "colon": { - "patterns": [ - { - "match": ":", - "name": "support.type.colon.d" - } - ] - }, - "equal": { - "patterns": [ - { - "match": "=(?![=>])", - "name": "keyword.operator.equal.d" - } - ] - }, - "semi-colon": { - "patterns": [ - { - "match": ";", - "name": "meta.statement.end.d" - } - ] - }, - "lexical": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string-literal" - }, - { - "include": "#character-literal" - }, - { - "include": "#float-literal" - }, - { - "include": "#integer-literal" - }, - { - "include": "#eof" - }, - { - "include": "#special-tokens" - }, - { - "include": "#special-token-sequence" - }, - { - "include": "#keyword" - }, - { - "include": "#identifier" - } - ] - }, - "integer-literal": { - "patterns": [ - { - "include": "#decimal-integer" - }, - { - "include": "#binary-integer" - }, - { - "include": "#hexadecimal-integer" - } - ] - }, - "decimal-integer": { - "patterns": [ - { - "match": "\\b(0(?=[^\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\b", - "name": "constant.numeric.integer.decimal.d" - } - ] - }, - "binary-integer": { - "patterns": [ - { - "match": "\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\b", - "name": "constant.numeric.integer.binary.d" - } - ] - }, - "hexadecimal-integer": { - "patterns": [ - { - "match": "\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\b", - "name": "constant.numeric.integer.hexadecimal.d" - } - ] - }, - "float-literal": { - "patterns": [ - { - "include": "#decimal-float" - }, - { - "include": "#hexadecimal-float" - } - ] - }, - "decimal-float": { - "patterns": [ - { - "match": "\\b((\\.[0-9])|(0\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\.))[0-9_]*((e-|E-|e\\+|E\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\b", - "name": "constant.numeric.float.decimal.d" - } - ] - }, - "hexadecimal-float": { - "patterns": [ - { - "match": "\\b0[xX][0-9a-fA-F_]*(\\.[0-9a-fA-F_]*)?(p-|P-|p\\+|P\\+|p|P)[0-9][0-9_]*[LfF]?i?\\b", - "name": "constant.numeric.float.hexadecimal.d" - } - ] - }, - "string-literal": { - "patterns": [ - { - "include": "#wysiwyg-string" - }, - { - "include": "#alternate-wysiwyg-string" - }, - { - "include": "#hex-string" - }, - { - "include": "#arbitrary-delimited-string" - }, - { - "include": "#delimited-string" - }, - { - "include": "#double-quoted-string" - }, - { - "include": "#token-string" - } - ] - }, - "wysiwyg-string": { - "patterns": [ - { - "begin": "r\\\"", - "end": "\\\"[cwd]?", - "name": "string.wysiwyg-string.d", - "patterns": [ - { - "include": "#wysiwyg-characters" - } - ] - } - ] - }, - "alternate-wysiwyg-string": { - "patterns": [ - { - "begin": "`", - "end": "`[cwd]?", - "name": "string.alternate-wysiwyg-string.d", - "patterns": [ - { - "include": "#wysiwyg-characters" - } - ] - } - ] - }, - "double-quoted-string": { - "patterns": [ - { - "begin": "\"", - "end": "\"[cwd]?", - "name": "string.double-quoted-string.d", - "patterns": [ - { - "include": "#double-quoted-characters" - } - ] - } - ] - }, - "hex-string": { - "patterns": [ - { - "begin": "x\"", - "end": "\"[cwd]?", - "name": "string.hex-string.d", - "patterns": [ - { - "match": "[a-fA-F0-9_s]+", - "name": "constant.character.hex-string.d" - } - ] - } - ] - }, - "arbitrary-delimited-string": { - "begin": "q\"(\\w+)", - "end": "\\1\"", - "name": "string.delimited.d", - "patterns": [ - { - "match": ".", - "name": "string.delimited.d" - } - ] - }, - "delimited-string": { - "begin": "q\"", - "end": "\"", - "name": "string.delimited.d", - "patterns": [ - { - "include": "#delimited-string-bracket" - }, - { - "include": "#delimited-string-parens" - }, - { - "include": "#delimited-string-angle-brackets" - }, - { - "include": "#delimited-string-braces" - } - ] - }, - "token-string": { - "begin": "q\\{", - "end": "\\}[cdw]?", - "beginCaptures": { - "0": { - "name": "string.quoted.token.d" - } - }, - "endCaptures": { - "0": { - "name": "string.quoted.token.d" - } - }, - "patterns": [ - { - "include": "#token-string-content" - } - ] - }, - "delimited-string-bracket": { - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "name": "constant.characters.delimited.brackets.d", - "patterns": [ - { - "include": "#wysiwyg-characters" - } - ] - } - ] - }, - "delimited-string-parens": { - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "name": "constant.character.delimited.parens.d", - "patterns": [ - { - "include": "#wysiwyg-characters" - } - ] - } - ] - }, - "delimited-string-angle-brackets": { - "patterns": [ - { - "begin": "<", - "end": ">", - "name": "constant.character.angle-brackets.d", - "patterns": [ - { - "include": "#wysiwyg-characters" - } - ] - } - ] - }, - "delimited-string-braces": { - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "name": "constant.character.delimited.braces.d", - "patterns": [ - { - "include": "#wysiwyg-characters" - } - ] - } - ] - }, - "wysiwyg-characters": { - "patterns": [ - { - "include": "#character" - }, - { - "include": "#end-of-line" - } - ] - }, - "double-quoted-characters": { - "patterns": [ - { - "include": "#character" - }, - { - "include": "#end-of-line" - }, - { - "include": "#escape-sequence" - } - ] - }, - "escape-sequence": { - "patterns": [ - { - "match": "(\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))", - "name": "constant.character.escape-sequence.entity.d" - }, - { - "match": "(\\\\x[0-9a-fA-F_]{2}|\\\\u[0-9a-fA-F_]{4}|\\\\U[0-9a-fA-F_]{8}|\\\\[0-7]{1,3})", - "name": "constant.character.escape-sequence.number.d" - }, - { - "match": "(\\\\t|\\\\'|\\\\\"|\\\\\\?|\\\\0|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\v|\\\\\\\\)", - "name": "constant.character.escape-sequence.d" - } - ] - }, - "character-literal": { - "patterns": [ - { - "begin": "'", - "end": "'", - "name": "string.character-literal.d", - "patterns": [ - { - "include": "#character" - }, - { - "include": "#escape-sequence" - } - ] - } - ] - }, - "character": { - "patterns": [ - { - "match": "[\\w\\s]+", - "name": "string.character.d" - } - ] - }, - "end-of-line": { - "patterns": [ - { - "match": "\\n+", - "name": "string.character.end-of-line.d" - } - ] - }, - "identifier-list": { - "patterns": [ - { - "match": ",", - "name": "keyword.other.comma.d" - }, - { - "include": "#identifier" - } - ] - }, - "identifier": { - "patterns": [ - { - "match": "\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b", - "name": "variable.d" - } - ] - }, - "module-identifier": { - "patterns": [ - { - "match": "([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*", - "name": "variable.parameter.module.d" - } - ] - }, - "import-identifier": { - "patterns": [ - { - "match": "([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*", - "name": "variable.parameter.import.d" - } - ] - }, - "eof": { - "patterns": [ - { - "begin": "__EOF__", - "beginCaptures": { - "0": { - "name": "comment.block.documentation.eof.start.d" - } - }, - "end": "(?!__NEVER_MATCH__)__NEVER_MATCH__", - "name": "text.eof.d" - } - ] - }, - "comment": { - "patterns": [ - { - "include": "#block-comment" - }, - { - "include": "#line-comment" - }, - { - "include": "#nesting-block-comment" - } - ] - }, - "block-comment": { - "patterns": [ - { - "begin": "/((?!\\*/)\\*)+", - "beginCaptures": { - "0": { - "name": "comment.block.begin.d" - } - }, - "end": "\\*+/", - "endCaptures": { - "0": { - "name": "comment.block.end.d" - } - }, - "name": "comment.block.content.d" - } - ] - }, - "line-comment": { - "patterns": [ - { - "match": "//+.*$", - "name": "comment.line.d" - } - ] - }, - "nesting-block-comment": { - "patterns": [ - { - "begin": "/((?!\\+/)\\+)+", - "beginCaptures": { - "0": { - "name": "comment.block.documentation.begin.d" - } - }, - "end": "\\++/", - "endCaptures": { - "0": { - "name": "comment.block.documentation.end.d" - } - }, - "name": "comment.block.documentation.content.d", - "patterns": [ - { - "include": "#nesting-block-comment" - } - ] - } - ] - }, - "token-string-content": { - "patterns": [ - { - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#token-string-content" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#tokens" - } - ] - }, - "tokens": { - "patterns": [ - { - "include": "#string-literal" - }, - { - "include": "#character-literal" - }, - { - "include": "#integer-literal" - }, - { - "include": "#float-literal" - }, - { - "include": "#keyword" - }, - { - "match": "~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\$|\\|=|\\|\\||\\||\\+=|\\+\\+|\\+|\\^=|\\^\\^=|\\^\\^|\\^|\\*=|\\*|\\}|\\{|\\]|\\[|\\)|\\(|\\.\\.\\.|\\.\\.|\\.|\\?|\\!>=|\\!>|\\!=|\\!<>=|\\!<>|\\!<=|\\!<|\\!|/=|/|@|:|;|,|-=|--|-", - "name": "meta.lexical.token.symbolic.d" - }, - { - "include": "#identifier" - } - ] - }, - "keyword": { - "patterns": [ - { - "match": "\\babstract\\b", - "name": "keyword.token.abstract.d" - }, - { - "match": "\\balias\\b", - "name": "keyword.token.alias.d" - }, - { - "match": "\\balign\\b", - "name": "keyword.token.align.d" - }, - { - "match": "\\basm\\b", - "name": "keyword.token.asm.d" - }, - { - "match": "\\bassert\\b", - "name": "keyword.token.assert.d" - }, - { - "match": "\\bauto\\b", - "name": "keyword.token.auto.d" - }, - { - "match": "\\bbool\\b", - "name": "keyword.token.bool.d" - }, - { - "match": "\\bbreak\\b", - "name": "keyword.token.break.d" - }, - { - "match": "\\bbyte\\b", - "name": "keyword.token.byte.d" - }, - { - "match": "\\bcase\\b", - "name": "keyword.token.case.d" - }, - { - "match": "\\bcast\\b", - "name": "keyword.token.cast.d" - }, - { - "match": "\\bcatch\\b", - "name": "keyword.token.catch.d" - }, - { - "match": "\\bcdouble\\b", - "name": "keyword.token.cdouble.d" - }, - { - "match": "\\bcent\\b", - "name": "keyword.token.cent.d" - }, - { - "match": "\\bcfloat\\b", - "name": "keyword.token.cfloat.d" - }, - { - "match": "\\bchar\\b", - "name": "keyword.token.char.d" - }, - { - "match": "\\bclass\\b", - "name": "keyword.token.class.d" - }, - { - "match": "\\bconst\\b", - "name": "keyword.token.const.d" - }, - { - "match": "\\bcontinue\\b", - "name": "keyword.token.continue.d" - }, - { - "match": "\\bcreal\\b", - "name": "keyword.token.creal.d" - }, - { - "match": "\\bdchar\\b", - "name": "keyword.token.dchar.d" - }, - { - "match": "\\bdebug\\b", - "name": "keyword.token.debug.d" - }, - { - "match": "\\bdefault\\b", - "name": "keyword.token.default.d" - }, - { - "match": "\\bdelegate\\b", - "name": "keyword.token.delegate.d" - }, - { - "match": "\\bdelete\\b", - "name": "keyword.token.delete.d" - }, - { - "match": "\\bdeprecated\\b", - "name": "keyword.token.deprecated.d" - }, - { - "match": "\\bdo\\b", - "name": "keyword.token.do.d" - }, - { - "match": "\\bdouble\\b", - "name": "keyword.token.double.d" - }, - { - "match": "\\belse\\b", - "name": "keyword.token.else.d" - }, - { - "match": "\\benum\\b", - "name": "keyword.token.enum.d" - }, - { - "match": "\\bexport\\b", - "name": "keyword.token.export.d" - }, - { - "match": "\\bextern\\b", - "name": "keyword.token.extern.d" - }, - { - "match": "\\bfalse\\b", - "name": "constant.language.boolean.false.d" - }, - { - "match": "\\bfinal\\b", - "name": "keyword.token.final.d" - }, - { - "match": "\\bfinally\\b", - "name": "keyword.token.finally.d" - }, - { - "match": "\\bfloat\\b", - "name": "keyword.token.float.d" - }, - { - "match": "\\bfor\\b", - "name": "keyword.token.for.d" - }, - { - "match": "\\bforeach\\b", - "name": "keyword.token.foreach.d" - }, - { - "match": "\\bforeach_reverse\\b", - "name": "keyword.token.foreach_reverse.d" - }, - { - "match": "\\bfunction\\b", - "name": "keyword.token.function.d" - }, - { - "match": "\\bgoto\\b", - "name": "keyword.token.goto.d" - }, - { - "match": "\\bidouble\\b", - "name": "keyword.token.idouble.d" - }, - { - "match": "\\bif\\b", - "name": "keyword.token.if.d" - }, - { - "match": "\\bifloat\\b", - "name": "keyword.token.ifloat.d" - }, - { - "match": "\\bimmutable\\b", - "name": "keyword.token.immutable.d" - }, - { - "match": "\\bimport\\b", - "name": "keyword.token.import.d" - }, - { - "match": "\\bin\\b", - "name": "keyword.token.in.d" - }, - { - "match": "\\binout\\b", - "name": "keyword.token.inout.d" - }, - { - "match": "\\bint\\b", - "name": "keyword.token.int.d" - }, - { - "match": "\\binterface\\b", - "name": "keyword.token.interface.d" - }, - { - "match": "\\binvariant\\b", - "name": "keyword.token.invariant.d" - }, - { - "match": "\\bireal\\b", - "name": "keyword.token.ireal.d" - }, - { - "match": "\\bis\\b", - "name": "keyword.token.is.d" - }, - { - "match": "\\blazy\\b", - "name": "keyword.token.lazy.d" - }, - { - "match": "\\blong\\b", - "name": "keyword.token.long.d" - }, - { - "match": "\\bmacro\\b", - "name": "keyword.token.macro.d" - }, - { - "match": "\\bmixin\\b", - "name": "keyword.token.mixin.d" - }, - { - "match": "\\bmodule\\b", - "name": "keyword.token.module.d" - }, - { - "match": "\\bnew\\b", - "name": "keyword.token.new.d" - }, - { - "match": "\\bnothrow\\b", - "name": "keyword.token.nothrow.d" - }, - { - "match": "\\bnull\\b", - "name": "constant.language.null.d" - }, - { - "match": "\\bout\\b", - "name": "keyword.token.out.d" - }, - { - "match": "\\boverride\\b", - "name": "keyword.token.override.d" - }, - { - "match": "\\bpackage\\b", - "name": "keyword.token.package.d" - }, - { - "match": "\\bpragma\\b", - "name": "keyword.token.pragma.d" - }, - { - "match": "\\bprivate\\b", - "name": "keyword.token.private.d" - }, - { - "match": "\\bprotected\\b", - "name": "keyword.token.protected.d" - }, - { - "match": "\\bpublic\\b", - "name": "keyword.token.public.d" - }, - { - "match": "\\bpure\\b", - "name": "keyword.token.pure.d" - }, - { - "match": "\\breal\\b", - "name": "keyword.token.real.d" - }, - { - "match": "\\bref\\b", - "name": "keyword.token.ref.d" - }, - { - "match": "\\breturn\\b", - "name": "keyword.token.return.d" - }, - { - "match": "\\bscope\\b", - "name": "keyword.token.scope.d" - }, - { - "match": "\\bshared\\b", - "name": "keyword.token.shared.d" - }, - { - "match": "\\bshort\\b", - "name": "keyword.token.short.d" - }, - { - "match": "\\bstatic\\b", - "name": "keyword.token.static.d" - }, - { - "match": "\\bstruct\\b", - "name": "keyword.token.struct.d" - }, - { - "match": "\\bsuper\\b", - "name": "keyword.token.super.d" - }, - { - "match": "\\bswitch\\b", - "name": "keyword.token.switch.d" - }, - { - "match": "\\bsynchronized\\b", - "name": "keyword.token.synchronized.d" - }, - { - "match": "\\btemplate\\b", - "name": "keyword.token.template.d" - }, - { - "match": "\\bthis\\b", - "name": "keyword.token.this.d" - }, - { - "match": "\\bthrow\\b", - "name": "keyword.token.throw.d" - }, - { - "match": "\\btrue\\b", - "name": "constant.language.boolean.true.d" - }, - { - "match": "\\btry\\b", - "name": "keyword.token.try.d" - }, - { - "match": "\\btypedef\\b", - "name": "keyword.token.typedef.d" - }, - { - "match": "\\btypeid\\b", - "name": "keyword.token.typeid.d" - }, - { - "match": "\\btypeof\\b", - "name": "keyword.token.typeof.d" - }, - { - "match": "\\bubyte\\b", - "name": "keyword.token.ubyte.d" - }, - { - "match": "\\bucent\\b", - "name": "keyword.token.ucent.d" - }, - { - "match": "\\buint\\b", - "name": "keyword.token.uint.d" - }, - { - "match": "\\bulong\\b", - "name": "keyword.token.ulong.d" - }, - { - "match": "\\bunion\\b", - "name": "keyword.token.union.d" - }, - { - "match": "\\bunittest\\b", - "name": "keyword.token.unittest.d" - }, - { - "match": "\\bushort\\b", - "name": "keyword.token.ushort.d" - }, - { - "match": "\\bversion\\b", - "name": "keyword.token.version.d" - }, - { - "match": "\\bvoid\\b", - "name": "keyword.token.void.d" - }, - { - "match": "\\bvolatile\\b", - "name": "keyword.token.volatile.d" - }, - { - "match": "\\bwchar\\b", - "name": "keyword.token.wchar.d" - }, - { - "match": "\\bwhile\\b", - "name": "keyword.token.while.d" - }, - { - "match": "\\bwith\\b", - "name": "keyword.token.with.d" - }, - { - "match": "\\b__FILE__\\b", - "name": "keyword.token.__FILE__.d" - }, - { - "match": "\\b__MODULE__\\b", - "name": "keyword.token.__MODULE__.d" - }, - { - "match": "\\b__LINE__\\b", - "name": "keyword.token.__LINE__.d" - }, - { - "match": "\\b__FUNCTION__\\b", - "name": "keyword.token.__FUNCTION__.d" - }, - { - "match": "\\b__PRETTY_FUNCTION__\\b", - "name": "keyword.token.__PRETTY_FUNCTION__.d" - }, - { - "match": "\\b__gshared\\b", - "name": "keyword.token.__gshared.d" - }, - { - "match": "\\b__traits\\b", - "name": "keyword.token.__traits.d" - }, - { - "match": "\\b__vector\\b", - "name": "keyword.token.__vector.d" - }, - { - "match": "\\b__parameters\\b", - "name": "keyword.token.__parameters.d" - } - ] - }, - "special-token-sequence": { - "patterns": [ - { - "match": "#\\s*line.*", - "name": "gfm.markup.italic.special-token-sequence.d" - } - ] - }, - "special-tokens": { - "patterns": [ - { - "match": "\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\b", - "name": "gfm.markup.raw.special-tokens.d" - } - ] - } - } -} diff --git a/lib/grammars/dart.tmLanguage.json b/lib/grammars/dart.tmLanguage.json deleted file mode 100644 index f11ea1c..0000000 --- a/lib/grammars/dart.tmLanguage.json +++ /dev/null @@ -1,528 +0,0 @@ -{ - "name": "dart", - "version": "1.2.2", - "fileTypes": ["dart"], - "scopeName": "source.dart", - "foldingStartMarker": "\\{\\s*$", - "foldingStopMarker": "^\\s*\\}", - "patterns": [ - { - "name": "meta.preprocessor.script.dart", - "match": "^(#!.*)$" - }, - { - "name": "meta.declaration.dart", - "begin": "^\\w*\\b(library|import|part of|part|export)\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.import.dart" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.dart" - } - }, - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#comments" - }, - { - "name": "keyword.other.import.dart", - "match": "\\b(as|show|hide)\\b" - }, - { - "name": "keyword.control.dart", - "match": "\\b(if)\\b" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#punctuation" - }, - { - "include": "#annotations" - }, - { - "include": "#keywords" - }, - { - "include": "#constants-and-special-vars" - }, - { - "include": "#operators" - }, - { - "include": "#strings" - } - ], - "repository": { - "dartdoc": { - "patterns": [ - { - "match": "(\\[.*?\\])", - "captures": { - "0": { - "name": "variable.name.source.dart" - } - } - }, - { - "match": "^ {4,}(?![ \\*]).*", - "captures": { - "0": { - "name": "variable.name.source.dart" - } - } - }, - { - "contentName": "variable.other.source.dart", - "begin": "```.*?$", - "end": "```" - }, - { - "match": "(`.*?`)", - "captures": { - "0": { - "name": "variable.other.source.dart" - } - } - }, - { - "match": "(`.*?`)", - "captures": { - "0": { - "name": "variable.other.source.dart" - } - } - }, - { - "match": "(\\* (( ).*))$", - "captures": { - "2": { - "name": "variable.other.source.dart" - } - } - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.block.empty.dart", - "match": "/\\*\\*/", - "captures": { - "0": { - "name": "punctuation.definition.comment.dart" - } - } - }, - { - "include": "#comments-doc-oldschool" - }, - { - "include": "#comments-doc" - }, - { - "include": "#comments-inline" - } - ] - }, - "comments-doc-oldschool": { - "patterns": [ - { - "name": "comment.block.documentation.dart", - "begin": "/\\*\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#comments-doc-oldschool" - }, - { - "include": "#comments-block" - }, - { - "include": "#dartdoc" - } - ] - } - ] - }, - "comments-doc": { - "patterns": [ - { - "name": "comment.block.documentation.dart", - "begin": "///", - "while": "^\\s*///", - "patterns": [ - { - "include": "#dartdoc" - } - ] - } - ] - }, - "comments-inline": { - "patterns": [ - { - "include": "#comments-block" - }, - { - "match": "((//).*)$", - "captures": { - "1": { - "name": "comment.line.double-slash.dart" - } - } - } - ] - }, - "comments-block": { - "patterns": [ - { - "name": "comment.block.dart", - "begin": "/\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#comments-block" - } - ] - } - ] - }, - "annotations": { - "patterns": [ - { - "name": "storage.type.annotation.dart", - "match": "@[a-zA-Z]+" - } - ] - }, - "constants-and-special-vars": { - "patterns": [ - { - "name": "constant.language.dart", - "match": "(?<!\\$)\\b(true|false|null)\\b(?!\\$)" - }, - { - "name": "variable.language.dart", - "match": "(?<!\\$)\\b(this|super)\\b(?!\\$)" - }, - { - "name": "constant.numeric.dart", - "match": "(?<!\\$)\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b(?!\\$)" - }, - { - "include": "#class-identifier" - }, - { - "include": "#function-identifier" - } - ] - }, - "class-identifier": { - "patterns": [ - { - "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)", - "name": "support.class.dart" - }, - { - "match": "(?<!\\$)\\bvoid\\b(?!\\$)", - "name": "storage.type.primitive.dart" - }, - { - "begin": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b", - "end": "(?!<)", - "beginCaptures": { - "1": { - "name": "support.class.dart" - } - }, - "patterns": [ - { - "include": "#type-args" - } - ] - } - ] - }, - "function-identifier": { - "patterns": [ - { - "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(", - "captures": { - "1": { - "name": "entity.name.function.dart" - }, - "2": { - "patterns": [ - { - "include": "#type-args" - } - ] - } - } - } - ] - }, - "type-args": { - "begin": "(<)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "other.source.dart" - } - }, - "endCaptures": { - "1": { - "name": "other.source.dart" - } - }, - "patterns": [ - { - "include": "#class-identifier" - }, - { - "match": "," - }, - { - "name": "keyword.declaration.dart", - "match": "extends" - }, - { - "include": "#comments" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.cast.dart", - "match": "(?<!\\$)\\bas\\b(?!\\$)" - }, - { - "name": "keyword.control.catch-exception.dart", - "match": "(?<!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)" - }, - { - "name": "keyword.control.dart", - "match": "(?<!\\$)\\b(break|case|continue|default|do|else|for|if|in|return|switch|while|when)\\b(?!\\$)" - }, - { - "name": "keyword.control.dart", - "match": "(?<!\\$)\\b(sync(\\*)?|async(\\*)?|await|yield(\\*)?)\\b(?!\\$)" - }, - { - "name": "keyword.control.dart", - "match": "(?<!\\$)\\bassert\\b(?!\\$)" - }, - { - "name": "keyword.control.new.dart", - "match": "(?<!\\$)\\b(new)\\b(?!\\$)" - }, - { - "name": "keyword.declaration.dart", - "match": "(?<!\\$)\\b(abstract|sealed|base|interface|inline class|class|enum|extends|extension|external|factory|implements|get(?!\\()|mixin|native|operator|set(?!\\()|typedef|with|covariant)\\b(?!\\$)" - }, - { - "name": "storage.modifier.dart", - "match": "(?<!\\$)\\b(static|final|const|required|late)\\b(?!\\$)" - }, - { - "name": "storage.type.primitive.dart", - "match": "(?<!\\$)\\b(?:void|var)\\b(?!\\$)" - } - ] - }, - "operators": { - "patterns": [ - { - "name": "keyword.operator.dart", - "match": "(?<!\\$)\\b(is\\!?)\\b(?!\\$)" - }, - { - "name": "keyword.operator.ternary.dart", - "match": "\\?|:" - }, - { - "name": "keyword.operator.bitwise.dart", - "match": "(<<|>>>?|~|\\^|\\||&)" - }, - { - "name": "keyword.operator.assignment.bitwise.dart", - "match": "((&|\\^|\\||<<|>>>?)=)" - }, - { - "name": "keyword.operator.closure.dart", - "match": "(=>)" - }, - { - "name": "keyword.operator.comparison.dart", - "match": "(==|!=|<=?|>=?)" - }, - { - "name": "keyword.operator.assignment.arithmetic.dart", - "match": "(([+*/%-]|\\~)=)" - }, - { - "name": "keyword.operator.assignment.dart", - "match": "(=)" - }, - { - "name": "keyword.operator.increment-decrement.dart", - "match": "(\\-\\-|\\+\\+)" - }, - { - "name": "keyword.operator.arithmetic.dart", - "match": "(\\-|\\+|\\*|\\/|\\~\\/|%)" - }, - { - "name": "keyword.operator.logical.dart", - "match": "(!|&&|\\|\\|)" - } - ] - }, - "string-interp": { - "patterns": [ - { - "match": "\\$([a-zA-Z0-9_]+)", - "captures": { - "1": { - "name": "variable.parameter.dart" - } - } - }, - { - "name": "string.interpolated.expression.dart", - "begin": "\\$\\{", - "end": "\\}", - "patterns": [ - { - "include": "#constants-and-special-vars", - "name": "variable.parameter.dart" - }, - { - "include": "#strings" - }, - { - "name": "variable.parameter.dart", - "match": "[a-zA-Z0-9_]+" - } - ] - }, - { - "name": "constant.character.escape.dart", - "match": "\\\\." - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.interpolated.triple.double.dart", - "begin": "(?<!r)\"\"\"", - "end": "\"\"\"(?!\")", - "patterns": [ - { - "include": "#string-interp" - } - ] - }, - { - "name": "string.interpolated.triple.single.dart", - "begin": "(?<!r)'''", - "end": "'''(?!')", - "patterns": [ - { - "include": "#string-interp" - } - ] - }, - { - "name": "string.quoted.triple.double.dart", - "begin": "r\"\"\"", - "end": "\"\"\"(?!\")" - }, - { - "name": "string.quoted.triple.single.dart", - "begin": "r'''", - "end": "'''(?!')" - }, - { - "name": "string.interpolated.double.dart", - "begin": "(?<!\\|r)\"", - "end": "\"", - "patterns": [ - { - "name": "invalid.string.newline", - "match": "\\n" - }, - { - "include": "#string-interp" - } - ] - }, - { - "name": "string.quoted.double.dart", - "begin": "r\"", - "end": "\"", - "patterns": [ - { - "name": "invalid.string.newline", - "match": "\\n" - } - ] - }, - { - "name": "string.interpolated.single.dart", - "begin": "(?<!\\|r)'", - "end": "'", - "patterns": [ - { - "name": "invalid.string.newline", - "match": "\\n" - }, - { - "include": "#string-interp" - } - ] - }, - { - "name": "string.quoted.single.dart", - "begin": "r'", - "end": "'", - "patterns": [ - { - "name": "invalid.string.newline", - "match": "\\n" - } - ] - } - ] - }, - "punctuation": { - "patterns": [ - { - "name": "punctuation.comma.dart", - "match": "," - }, - { - "name": "punctuation.terminator.dart", - "match": ";" - }, - { - "name": "punctuation.dot.dart", - "match": "\\." - } - ] - } - } -} diff --git a/lib/grammars/dax.tmLanguage.json b/lib/grammars/dax.tmLanguage.json deleted file mode 100644 index cc08ff1..0000000 --- a/lib/grammars/dax.tmLanguage.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "dax", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#labels" - }, - { - "include": "#parameters" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - } - ], - "repository": { - "parameters": { - "patterns": [ - { - "name": "meta.function.definition.parameters.dax", - "comment": "build out variable assignment", - "begin": "\\b(?<!\\.)(VAR)\\b(?<!\\.)\\b", - "end": "=", - "beginCaptures": { - "1": { - "name": "keyword.control.dax" - }, - "2": { - "name": "variable.other.readwrite.dax" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.assignment.dax" - } - }, - "patterns": [ - { - "name": "keyword.control.dax", - "match": "(?x)\n = \n" - } - ] - }, - { - "name": "variable.other.constant.dax", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "labels": { - "patterns": [ - { - "match": "(^(.*?)\\s*(:=|!=))", - "captures": { - "1": { - "name": "punctuation.separator.label.dax" - }, - "2": { - "name": "entity.name.label.dax" - } - } - } - ] - }, - "numbers": { - "name": "constant.numeric.dax", - "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional" - }, - "comments": { - "patterns": [ - { - "name": "comment.line.dax", - "begin": "//", - "end": "\n", - "captures": { - "0": { - "name": "punctuation.definition.comment.dax" - } - } - }, - { - "name": "comment.line.dax", - "begin": "--", - "end": "\n", - "captures": { - "0": { - "name": "punctuation.definition.comment.dax" - } - } - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.dax" - } - }, - "end": "\\*/", - "name": "comment.block.dax" - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "\\b(YIELDMAT|YIELDDISC|YIELD|YEARFRAC|YEAR|XNPV|XIRR|WEEKNUM|WEEKDAY|VDB|VARX.S|VARX.P|VAR.S|VAR.P|VALUES|VALUE|UTCTODAY|UTCNOW|USERPRINCIPALNAME|USEROBJECTID|USERNAME|USERELATIONSHIP|USERCULTURE|UPPER|UNION|UNICODE|UNICHAR|TRUNC|TRUE|TRIM|TREATAS|TOTALYTD|TOTALQTD|TOTALMTD|TOPNSKIP|TOPNPERLEVEL|TOPN|TODAY|TIMEVALUE|TIME|TBILLYIELD|TBILLPRICE|TBILLEQ|TANH|TAN|T.INV.2T|T.INV|T.DIST.RT|T.DIST.2T|T.DIST|SYD|SWITCH|SUMX|SUMMARIZECOLUMNS|SUMMARIZE|SUM|SUBSTITUTEWITHINDEX|SUBSTITUTE|STDEVX.S|STDEVX.P|STDEV.S|STDEV.P|STARTOFYEAR|STARTOFQUARTER|STARTOFMONTH|SQRTPI|SQRT|SLN|SINH|SIN|SIGN|SELECTEDVALUE|SELECTEDMEASURENAME|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURE|SELECTCOLUMNS|SECOND|SEARCH|SAMPLE|SAMEPERIODLASTYEAR|RRI|ROW|ROUNDUP|ROUNDDOWN|ROUND|ROLLUPISSUBTOTAL|ROLLUPGROUP|ROLLUPADDISSUBTOTAL|ROLLUP|RIGHT|REPT|REPLACE|REMOVEFILTERS|RELATEDTABLE|RELATED|RECEIVED|RATE|RANKX|RANK.EQ|RANDBETWEEN|RAND|RADIANS|QUOTIENT|QUARTER|PV|PRODUCTX|PRODUCT|PRICEMAT|PRICEDISC|PRICE|PREVIOUSYEAR|PREVIOUSQUARTER|PREVIOUSMONTH|PREVIOUSDAY|PPMT|POWER|POISSON.DIST|PMT|PI|PERMUT|PERCENTILEX.INC|PERCENTILEX.EXC|PERCENTILE.INC|PERCENTILE.EXC|PDURATION|PATHLENGTH|PATHITEMREVERSE|PATHITEM|PATHCONTAINS|PATH|PARALLELPERIOD|OR|OPENINGBALANCEYEAR|OPENINGBALANCEQUARTER|OPENINGBALANCEMONTH|ODDLYIELD|ODDLPRICE|ODDFYIELD|ODDFPRICE|ODD|NPER|NOW|NOT|NORM.S.INV|NORM.S.DIST|NORM.INV|NORM.DIST|NONVISUAL|NOMINAL|NEXTYEAR|NEXTQUARTER|NEXTMONTH|NEXTDAY|NATURALLEFTOUTERJOIN|NATURALINNERJOIN|MROUND|MONTH|MOD|MINX|MINUTE|MINA|MIN|MID|MEDIANX|MEDIAN|MDURATION|MAXX|MAXA|MAX|LOWER|LOOKUPVALUE|LOG10|LOG|LN|LEN|LEFT|LCM|LASTNONBLANKVALUE|LASTNONBLANK|LASTDATE|KEYWORDMATCH|KEEPFILTERS|ISTEXT|ISSUBTOTAL|ISSELECTEDMEASURE|ISPMT|ISONORAFTER|ISODD|ISO.CEILING|ISNUMBER|ISNONTEXT|ISLOGICAL|ISINSCOPE|ISFILTERED|ISEVEN|ISERROR|ISEMPTY|ISCROSSFILTERED|ISBLANK|ISAFTER|IPMT|INTRATE|INTERSECT|INT|IGNORE|IFERROR|IF.EAGER|IF|HOUR|HASONEVALUE|HASONEFILTER|HASH|GROUPBY|GEOMEANX|GEOMEAN|GENERATESERIES|GENERATEALL|GENERATE|GCD|FV|FORMAT|FLOOR|FIXED|FIRSTNONBLANKVALUE|FIRSTNONBLANK|FIRSTDATE|FIND|FILTERS|FILTER|FALSE|FACT|EXPON.DIST|EXP|EXCEPT|EXACT|EVEN|ERROR|EOMONTH|ENDOFYEAR|ENDOFQUARTER|ENDOFMONTH|EFFECT|EDATE|EARLIEST|EARLIER|DURATION|DOLLARFR|DOLLARDE|DIVIDE|DISTINCTCOUNTNOBLANK|DISTINCTCOUNT|DISTINCT|DISC|DETAILROWS|DEGREES|DDB|DB|DAY|DATEVALUE|DATESYTD|DATESQTD|DATESMTD|DATESINPERIOD|DATESBETWEEN|DATEDIFF|DATEADD|DATE|DATATABLE|CUSTOMDATA|CURRENTGROUP|CURRENCY|CUMPRINC|CUMIPMT|CROSSJOIN|CROSSFILTER|COUPPCD|COUPNUM|COUPNCD|COUPDAYSNC|COUPDAYS|COUPDAYBS|COUNTX|COUNTROWS|COUNTBLANK|COUNTAX|COUNTA|COUNT|COTH|COT|COSH|COS|CONVERT|CONTAINSSTRINGEXACT|CONTAINSSTRING|CONTAINSROW|CONTAINS|CONFIDENCE.T|CONFIDENCE.NORM|CONCATENATEX|CONCATENATE|COMBINEVALUES|COMBINA|COMBIN|COLUMNSTATISTICS|COALESCE|CLOSINGBALANCEYEAR|CLOSINGBALANCEQUARTER|CLOSINGBALANCEMONTH|CHISQ.INV.RT|CHISQ.INV|CHISQ.DIST.RT|CHISQ.DIST|CEILING|CALENDARAUTO|CALENDAR|CALCULATETABLE|CALCULATE|BLANK|BETA.INV|BETA.DIST|AVERAGEX|AVERAGEA|AVERAGE|ATANH|ATAN|ASINH|ASIN|APPROXIMATEDISTINCTCOUNT|AND|AMORLINC|AMORDEGRC|ALLSELECTED|ALLNOBLANKROW|ALLEXCEPT|ALLCROSSFILTERED|ALL|ADDMISSINGITEMS|ADDCOLUMNS|ACOTH|ACOT|ACOSH|ACOS|ACCRINTM|ACCRINT|ABS)\\b", - "name": "variable.language.dax" - }, - { - "name": "keyword.control.dax", - "match": "\\b(DEFINE|EVALUATE|ORDER BY|RETURN|VAR)\\b" - }, - { - "name": "keyword.array.constructor.dax", - "match": "(?x)\n { | }" - }, - { - "name": "keyword.operator.comparison.dax", - "match": "(?x)\n > | < | >= | <= | =(?!==)\n" - }, - { - "name": "keyword.operator.logical.dax", - "match": "(?x)\n && | IN | NOT | \\|\\|" - }, - { - "name": "keyword.arithmetic.operator.dax", - "match": "(?x)\n \\+ | \\- | \\* | \\/ \n" - }, - { - "begin": "\\[", - "end": "\\]", - "name": "support.function.dax" - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.dax" - }, - { - "begin": "\\'", - "end": "\\'", - "name": "support.class.dax" - } - ] - }, - "strings": { - "name": "string.quoted.double.dax", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.dax", - "match": "\\\\." - } - ] - }, - "metas": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.dax" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.dax" - } - } - } - ] - } - }, - "scopeName": "source.dax" -} diff --git a/lib/grammars/diff.tmLanguage.json b/lib/grammars/diff.tmLanguage.json deleted file mode 100644 index a7bddb7..0000000 --- a/lib/grammars/diff.tmLanguage.json +++ /dev/null @@ -1,160 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/diff.tmbundle/blob/master/Syntaxes/Diff.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/diff.tmbundle/commit/0593bb775eab1824af97ef2172fd38822abd97d7", - "name": "diff", - "scopeName": "source.diff", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.separator.diff" - } - }, - "match": "^((\\*{15})|(={67})|(-{3}))$\\n?", - "name": "meta.separator.diff" - }, - { - "match": "^\\d+(,\\d+)*(a|d|c)\\d+(,\\d+)*$\\n?", - "name": "meta.diff.range.normal" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.range.diff" - }, - "2": { - "name": "meta.toc-list.line-number.diff" - }, - "3": { - "name": "punctuation.definition.range.diff" - } - }, - "match": "^(@@)\\s*(.+?)\\s*(@@)($\\n?)?", - "name": "meta.diff.range.unified" - }, - { - "captures": { - "3": { - "name": "punctuation.definition.range.diff" - }, - "4": { - "name": "punctuation.definition.range.diff" - }, - "6": { - "name": "punctuation.definition.range.diff" - }, - "7": { - "name": "punctuation.definition.range.diff" - } - }, - "match": "^(((\\-{3}) .+ (\\-{4}))|((\\*{3}) .+ (\\*{4})))$\\n?", - "name": "meta.diff.range.context" - }, - { - "match": "^diff --git a/.*$\\n?", - "name": "meta.diff.header.git" - }, - { - "match": "^diff (-|\\S+\\s+\\S+).*$\\n?", - "name": "meta.diff.header.command" - }, - { - "captures": { - "4": { - "name": "punctuation.definition.from-file.diff" - }, - "6": { - "name": "punctuation.definition.from-file.diff" - }, - "7": { - "name": "punctuation.definition.from-file.diff" - } - }, - "match": "(^(((-{3}) .+)|((\\*{3}) .+))$\\n?|^(={4}) .+(?= - ))", - "name": "meta.diff.header.from-file" - }, - { - "captures": { - "2": { - "name": "punctuation.definition.to-file.diff" - }, - "3": { - "name": "punctuation.definition.to-file.diff" - }, - "4": { - "name": "punctuation.definition.to-file.diff" - } - }, - "match": "(^(\\+{3}) .+$\\n?| (-) .* (={4})$\\n?)", - "name": "meta.diff.header.to-file" - }, - { - "captures": { - "3": { - "name": "punctuation.definition.inserted.diff" - }, - "6": { - "name": "punctuation.definition.inserted.diff" - } - }, - "match": "^(((>)( .*)?)|((\\+).*))$\\n?", - "name": "markup.inserted.diff" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.changed.diff" - } - }, - "match": "^(!).*$\\n?", - "name": "markup.changed.diff" - }, - { - "captures": { - "3": { - "name": "punctuation.definition.deleted.diff" - }, - "6": { - "name": "punctuation.definition.deleted.diff" - } - }, - "match": "^(((<)( .*)?)|((-).*))$\\n?", - "name": "markup.deleted.diff" - }, - { - "begin": "^(#)", - "captures": { - "1": { - "name": "punctuation.definition.comment.diff" - } - }, - "comment": "Git produces unified diffs with embedded comments\"", - "end": "\\n", - "name": "comment.line.number-sign.diff" - }, - { - "match": "^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?", - "name": "meta.diff.index.git" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.key-value.diff" - }, - "2": { - "name": "meta.toc-list.file-name.diff" - } - }, - "match": "^Index(:) (.+)$\\n?", - "name": "meta.diff.index" - }, - { - "match": "^Only in .*: .*$\\n?", - "name": "meta.diff.only-in" - } - ] -} diff --git a/lib/grammars/docker.tmLanguage.json b/lib/grammars/docker.tmLanguage.json deleted file mode 100644 index 9599f0f..0000000 --- a/lib/grammars/docker.tmLanguage.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/moby/moby/blob/master/contrib/syntax/textmate/Docker.tmbundle/Syntaxes/Dockerfile.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/moby/moby/commit/abd39744c6f3ed854500e423f5fabf952165161f", - "name": "docker", - "scopeName": "source.dockerfile", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.special-method.dockerfile" - }, - "2": { - "name": "keyword.other.special-method.dockerfile" - } - }, - "match": "^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b" - }, - { - "captures": { - "1": { - "name": "keyword.control.dockerfile" - }, - "2": { - "name": "keyword.other.special-method.dockerfile" - } - }, - "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s" - }, - { - "captures": { - "1": { - "name": "keyword.operator.dockerfile" - }, - "2": { - "name": "keyword.other.special-method.dockerfile" - } - }, - "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s" - }, - { - "begin": "\"", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.dockerfile" - } - }, - "end": "\"", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.dockerfile" - } - }, - "name": "string.quoted.double.dockerfile", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escaped.dockerfile" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.dockerfile" - } - }, - "end": "'", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.dockerfile" - } - }, - "name": "string.quoted.single.dockerfile", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escaped.dockerfile" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.comment.leading.dockerfile" - }, - "2": { - "name": "comment.line.number-sign.dockerfile" - }, - "3": { - "name": "punctuation.definition.comment.dockerfile" - } - }, - "comment": "comment.line", - "match": "^(\\s*)((#).*$\\n?)" - } - ] -} diff --git a/lib/grammars/dream-maker.tmLanguage.json b/lib/grammars/dream-maker.tmLanguage.json deleted file mode 100644 index ccb9db6..0000000 --- a/lib/grammars/dream-maker.tmLanguage.json +++ /dev/null @@ -1,636 +0,0 @@ -{ - "fileTypes": ["dm", "dme"], - "foldingStartMarker": "(?x)\n/\\*\\*(?!\\*)\n|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))", - "foldingStopMarker": "(?<!\\*)\\*\\*/|^\\s*\\}", - "name": "dream-maker", - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-other" - }, - { - "include": "#comments" - }, - { - "match": "(?x)\n(var)[\\/ ]\n(?:(static|global|tmp|const)\\/)?\n(?:(datum|atom(?:\\/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\/)?\n(?:\n\t([a-zA-Z0-9_\\-$]*)\\/\n)*\n\n([A-Za-z0-9_$]*)\\b", - "name": "meta.initialization.dm", - "captures": { - "1": { - "name": "storage.type.dm" - }, - "2": { - "name": "storage.modifier.dm" - }, - "3": { - "name": "storage.type.dm" - }, - "5": { - "name": "variable.other.dm" - } - } - }, - { - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b", - "name": "constant.numeric.dm" - }, - { - "match": "\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while)\\b", - "name": "keyword.control.dm" - }, - { - "match": "\\b(del|new)\\b", - "name": "keyword.other.dm" - }, - { - "match": "\\b(proc|verb|datum|atom(/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\b", - "name": "storage.type.dm" - }, - { - "match": "\\b(as|const|global|set|static|tmp)\\b", - "name": "storage.modifier.dm" - }, - { - "match": "\\b(usr|world|src|args)\\b", - "name": "variable.language.dm" - }, - { - "match": "(\\?|(>|<)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)", - "name": "keyword.operator.dm" - }, - { - "match": "\\b([A-Z_][A-Z_0-9]*)\\b", - "name": "constant.language.dm" - }, - { - "match": "\\bnull\\b", - "name": "constant.language.dm" - }, - { - "begin": "{\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.dm" - } - }, - "end": "\"}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.dm" - } - }, - "name": "string.quoted.triple.dm", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_embedded_expression" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.dm" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.dm" - } - }, - "name": "string.quoted.double.dm", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_embedded_expression" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.dm" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.dm" - } - }, - "name": "string.quoted.single.dm", - "patterns": [ - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g<id> \\s* # first argument\n\t\t\t((,) \\s* \\g<id> \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.dm" - }, - "2": { - "name": "punctuation.definition.directive.dm" - }, - "3": { - "name": "entity.name.function.preprocessor.dm" - }, - "5": { - "name": "punctuation.definition.parameters.begin.dm" - }, - "6": { - "name": "variable.parameter.preprocessor.dm" - }, - "8": { - "name": "punctuation.separator.parameters.dm" - }, - "9": { - "name": "punctuation.definition.parameters.end.dm" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.dm", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.dm" - }, - "2": { - "name": "punctuation.definition.directive.dm" - }, - "3": { - "name": "variable.other.preprocessor.dm" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.dm", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "^\\s*(#\\s*(error|warn))\\b", - "captures": { - "1": { - "name": "keyword.control.import.error.dm" - } - }, - "end": "$", - "name": "meta.preprocessor.diagnostic.dm", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.dm" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.dm" - }, - "2": { - "name": "punctuation.definition.directive.dm" - }, - "3": { - "name": "keyword.control.directive.$5.dm" - }, - "4": { - "name": "punctuation.definition.directive.dm" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.dm", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.dm" - } - ] - }, - { - "include": "#block" - }, - { - "begin": "(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?<!else|new|return) (?<=\\w) # or word + space before name\n\t\t\t\t\t\t\t | (?= \\s*[A-Za-z_] ) (?<!&&) (?<=[*&>]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.function.leading.dm" - }, - "3": { - "name": "entity.name.function.dm" - }, - "4": { - "name": "punctuation.definition.parameters.dm" - } - }, - "end": "(?<=\\})|(?=#)|(;)?", - "name": "meta.function.dm", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parens" - }, - { - "match": "\\bconst\\b", - "name": "storage.modifier.dm" - }, - { - "include": "#block" - } - ] - } - ], - "repository": { - "access": { - "match": "\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()", - "name": "variable.other.dot-access.dm" - }, - "block": { - "begin": "\\{", - "end": "\\}", - "name": "meta.block.dm", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-other-block" - }, - { - "include": "#access" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.function-call.leading.dm" - }, - "2": { - "name": "support.function.any-method.dm" - }, - "3": { - "name": "punctuation.definition.parameters.dm" - } - }, - "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n\t\t\t(\\b\n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()", - "name": "meta.function-call.dm" - }, - { - "include": "#block" - }, - { - "include": "$base" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.dm" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.dm" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.dm" - } - }, - "end": "\\*/", - "name": "comment.block.dm", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "match": "\\*/.*\\n", - "name": "invalid.illegal.stray-comment-end.dm" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.dm" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.dm" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.dm" - } - }, - "end": "$\\n?", - "name": "comment.line.double-slash.dm", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.dm" - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "comment": "eat nested preprocessor if(def)s", - "end": "^\\s*#\\s*endif\\b.*$", - "patterns": [ - { - "include": "#disabled" - } - ] - }, - "parens": { - "begin": "\\(", - "end": "\\)", - "name": "meta.parens.dm", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-disabled": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.if.dm" - }, - "3": { - "name": "constant.numeric.preprocessor.dm" - } - }, - "end": "^\\s*(#\\s*(endif)\\b)", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.else.dm" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*$)", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", - "name": "comment.block.preprocessor.if-branch", - "patterns": [ - { - "include": "#disabled" - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.if.dm" - }, - "3": { - "name": "constant.numeric.preprocessor.dm" - } - }, - "end": "^\\s*(#\\s*(endif)\\b)", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.else.dm" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*$)", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", - "name": "comment.block.preprocessor.if-branch.in-block", - "patterns": [ - { - "include": "#disabled" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.if.dm" - }, - "3": { - "name": "constant.numeric.preprocessor.dm" - } - }, - "end": "^\\s*(#\\s*(endif)\\b)", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.else.dm" - } - }, - "contentName": "comment.block.preprocessor.else-branch", - "end": "(?=^\\s*#\\s*endif\\b.*$)", - "patterns": [ - { - "include": "#disabled" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.if.dm" - }, - "3": { - "name": "constant.numeric.preprocessor.dm" - } - }, - "end": "^\\s*(#\\s*(endif)\\b)", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.else.dm" - } - }, - "contentName": "comment.block.preprocessor.else-branch.in-block", - "end": "(?=^\\s*#\\s*endif\\b.*$)", - "patterns": [ - { - "include": "#disabled" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "preprocessor-rule-other": { - "begin": "^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.dm" - } - }, - "end": "^\\s*((#\\s*(endif))\\b).*$", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-other-block": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.dm" - }, - "2": { - "name": "keyword.control.import.dm" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*$", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "string_embedded_expression": { - "patterns": [ - { - "begin": "(?<!\\\\)\\[", - "end": "\\]", - "name": "string.interpolated.dm", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\n\\\\\n(\n\th(?:(?:er|im)self|ers|im)\n\t|([tTsS]?he) # Weird regex to match The, the, She, she and he at once.\n\t|He\n\t|[Hh]is\n\t|[aA]n?\n\t|(?:im)?proper\n\t|\\.\\.\\.\n\t|(?:icon|ref|[Rr]oman)(?=\\[) # Macros which need a [] after them.\n\t|[s<>\"n\\n \\[]\n)", - "name": "constant.character.escape.dm" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.dm" - } - ] - } - }, - "scopeName": "source.dm" -} diff --git a/lib/grammars/elixir.tmLanguage.json b/lib/grammars/elixir.tmLanguage.json deleted file mode 100644 index 2e4291a..0000000 --- a/lib/grammars/elixir.tmLanguage.json +++ /dev/null @@ -1,1013 +0,0 @@ -{ - "comment": "Textmate bundle for Elixir Programming Language.", - "fileTypes": ["ex", "exs"], - "firstLineMatch": "^#!/.*\\belixir", - "foldingStartMarker": "(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$", - "foldingStopMarker": "^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)", - "keyEquivalent": "^~E", - "name": "elixir", - "patterns": [ - { - "begin": "\\b(fn)\\b(?!.*->)", - "beginCaptures": { - "1": { - "name": "keyword.control.elixir" - } - }, - "end": "$", - "patterns": [ - { - "include": "#core_syntax" - } - ] - }, - { - "captures": { - "1": { - "name": "entity.name.type.class.elixir" - }, - "2": { - "name": "punctuation.separator.method.elixir" - }, - "3": { - "name": "entity.name.function.elixir" - } - }, - "match": "([A-Z]\\w+)\\s*(\\.)\\s*([a-z_]\\w*[!?]?)" - }, - { - "captures": { - "1": { - "name": "constant.other.symbol.elixir" - }, - "2": { - "name": "punctuation.separator.method.elixir" - }, - "3": { - "name": "entity.name.function.elixir" - } - }, - "match": "(\\:\\w+)\\s*(\\.)\\s*([_]?\\w*[!?]?)" - }, - { - "captures": { - "1": { - "name": "keyword.operator.other.elixir" - }, - "2": { - "name": "entity.name.function.elixir" - } - }, - "match": "(\\|\\>)\\s*([a-z_]\\w*[!?]?)" - }, - { - "match": "\\b[a-z_]\\w*[!?]?(?=\\s*\\.?\\s*\\()", - "name": "entity.name.function.elixir" - }, - { - "begin": "\\b(fn)\\b(?=.*->)", - "beginCaptures": { - "1": { - "name": "keyword.control.elixir" - } - }, - "end": "(?>(->)|(when)|(\\)))", - "endCaptures": { - "1": { - "name": "keyword.operator.other.elixir" - }, - "2": { - "name": "keyword.control.elixir" - }, - "3": { - "name": "punctuation.section.function.elixir" - } - }, - "patterns": [ - { - "include": "#core_syntax" - } - ] - }, - { - "include": "#core_syntax" - }, - { - "begin": "^(?=.*->)((?![^\"']*(\"|')[^\"']*->)|(?=.*->[^\"']*(\"|')[^\"']*->))((?!.*\\([^\\)]*->)|(?=[^\\(\\)]*->)|(?=\\s*\\(.*\\).*->))((?!.*\\b(fn)\\b)|(?=.*->.*\\bfn\\b))", - "beginCaptures": { - "1": { - "name": "keyword.control.elixir" - } - }, - "end": "(?>(->)|(when)|(\\)))", - "endCaptures": { - "1": { - "name": "keyword.operator.other.elixir" - }, - "2": { - "name": "keyword.control.elixir" - }, - "3": { - "name": "punctuation.section.function.elixir" - } - }, - "patterns": [ - { - "include": "#core_syntax" - } - ] - } - ], - "repository": { - "core_syntax": { - "patterns": [ - { - "begin": "^\\s*(defmodule)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.module.elixir" - } - }, - "end": "\\b(do)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.module.elixir" - } - }, - "name": "meta.module.elixir", - "patterns": [ - { - "match": "\\b[A-Z]\\w*(?=\\.)", - "name": "entity.other.inherited-class.elixir" - }, - { - "match": "\\b[A-Z]\\w*\\b", - "name": "entity.name.type.class.elixir" - } - ] - }, - { - "begin": "^\\s*(defprotocol)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.protocol.elixir" - } - }, - "end": "\\b(do)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.protocol.elixir" - } - }, - "name": "meta.protocol_declaration.elixir", - "patterns": [ - { - "match": "\\b[A-Z]\\w*\\b", - "name": "entity.name.type.protocol.elixir" - } - ] - }, - { - "begin": "^\\s*(defimpl)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.protocol.elixir" - } - }, - "end": "\\b(do)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.protocol.elixir" - } - }, - "name": "meta.protocol_implementation.elixir", - "patterns": [ - { - "match": "\\b[A-Z]\\w*\\b", - "name": "entity.name.type.protocol.elixir" - } - ] - }, - { - "begin": "^\\s*(def|defmacro|defdelegate|defguard)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)", - "beginCaptures": { - "1": { - "name": "keyword.control.module.elixir" - }, - "2": { - "name": "entity.name.function.public.elixir" - }, - "4": { - "name": "punctuation.section.function.elixir" - } - }, - "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defn|defmacro|defdelegate|defguard)\\b)", - "endCaptures": { - "1": { - "name": "constant.other.keywords.elixir" - }, - "2": { - "name": "keyword.control.module.elixir" - } - }, - "name": "meta.function.public.elixir", - "patterns": [ - { - "include": "$self" - }, - { - "begin": "\\s(\\\\\\\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.other.elixir" - } - }, - "end": ",|\\)|$", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b", - "name": "keyword.control.elixir" - } - ] - }, - { - "begin": "^\\s*(defp|defnp|defmacrop|defguardp)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)", - "beginCaptures": { - "1": { - "name": "keyword.control.module.elixir" - }, - "2": { - "name": "entity.name.function.private.elixir" - }, - "4": { - "name": "punctuation.section.function.elixir" - } - }, - "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop|defguardp)\\b)", - "endCaptures": { - "1": { - "name": "constant.other.keywords.elixir" - }, - "2": { - "name": "keyword.control.module.elixir" - } - }, - "name": "meta.function.private.elixir", - "patterns": [ - { - "include": "$self" - }, - { - "begin": "\\s(\\\\\\\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.other.elixir" - } - }, - "end": ",|\\)|$", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b", - "name": "keyword.control.elixir" - } - ] - }, - { - "begin": "\\s*~L\"\"\"", - "comment": "Leex Sigil", - "end": "\\s*\"\"\"", - "name": "sigil.leex", - "patterns": [ - { - "include": "text.elixir" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "\\s*~H\"\"\"", - "comment": "HEEx Sigil", - "end": "\\s*\"\"\"", - "name": "sigil.heex", - "patterns": [ - { - "include": "text.elixir" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "@(module|type)?doc (~[a-z])?\"\"\"", - "comment": "@doc with heredocs is treated as documentation", - "end": "\\s*\"\"\"", - "name": "comment.block.documentation.heredoc", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "@(module|type)?doc ~[A-Z]\"\"\"", - "comment": "@doc with heredocs is treated as documentation", - "end": "\\s*\"\"\"", - "name": "comment.block.documentation.heredoc" - }, - { - "begin": "@(module|type)?doc (~[a-z])?'''", - "comment": "@doc with heredocs is treated as documentation", - "end": "\\s*'''", - "name": "comment.block.documentation.heredoc", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "@(module|type)?doc ~[A-Z]'''", - "comment": "@doc with heredocs is treated as documentation", - "end": "\\s*'''", - "name": "comment.block.documentation.heredoc" - }, - { - "comment": "@doc false is treated as documentation", - "match": "@(module|type)?doc false", - "name": "comment.block.documentation.false" - }, - { - "begin": "@(module|type)?doc \"", - "comment": "@doc with string is treated as documentation", - "end": "\"", - "name": "comment.block.documentation.string", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "match": "(?<!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defnp?|defmacrop?|defguardp?|defdelegate|defexception|defoverridable|exit|after|rescue|catch|else|raise|reraise|throw|import|require|alias|use|quote|unquote|super|with)\\b(?![?!:])", - "name": "keyword.control.elixir" - }, - { - "comment": " as above, just doesn't need a 'end' and does a logic operation", - "match": "(?<!\\.)\\b(and|not|or|when|xor|in)\\b", - "name": "keyword.operator.elixir" - }, - { - "match": "\\b[A-Z]\\w*\\b", - "name": "entity.name.type.class.elixir" - }, - { - "match": "\\b(nil|true|false)\\b(?![?!])", - "name": "constant.language.elixir" - }, - { - "match": "\\b(__(CALLER|ENV|MODULE|DIR|STACKTRACE)__)\\b(?![?!])", - "name": "variable.language.elixir" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.elixir" - } - }, - "match": "(@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.module.elixir" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.elixir" - } - }, - "match": "(&)\\d+", - "name": "variable.other.anonymous.elixir" - }, - { - "match": "&(?![&])", - "name": "variable.other.anonymous.elixir" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.elixir" - } - }, - "match": "\\^[a-z_]\\w*", - "name": "variable.other.capture.elixir" - }, - { - "match": "\\b0x[0-9A-Fa-f](?>_?[0-9A-Fa-f])*\\b", - "name": "constant.numeric.hex.elixir" - }, - { - "match": "\\b\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)+)([eE][-+]?\\d(?>_?\\d)*)?\\b", - "name": "constant.numeric.float.elixir" - }, - { - "match": "\\b\\d(?>_?\\d)*\\b", - "name": "constant.numeric.integer.elixir" - }, - { - "match": "\\b0b[01](?>_?[01])*\\b", - "name": "constant.numeric.binary.elixir" - }, - { - "match": "\\b0o[0-7](?>_?[0-7])*\\b", - "name": "constant.numeric.octal.elixir" - }, - { - "begin": ":'", - "captures": { - "0": { - "name": "punctuation.definition.constant.elixir" - } - }, - "end": "'", - "name": "constant.other.symbol.single-quoted.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": ":\"", - "captures": { - "0": { - "name": "punctuation.definition.constant.elixir" - } - }, - "end": "\"", - "name": "constant.other.symbol.double-quoted.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?>''')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "Single-quoted heredocs", - "end": "^\\s*'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.single.heredoc.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "single quoted string (allows for interpolation)", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.single.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?>\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "Double-quoted heredocs", - "end": "^\\s*\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.double.heredoc.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "double quoted string (allows for interpolation)", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.double.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[a-z](?>\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "Double-quoted heredocs sigils", - "end": "^\\s*\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.heredoc.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[a-z]\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (allow for interpolation)", - "end": "\\}[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[a-z]\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (allow for interpolation)", - "end": "\\][a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[a-z]\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (allow for interpolation)", - "end": "\\>[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[a-z]\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (allow for interpolation)", - "end": "\\)[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[a-z]([^\\w])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (allow for interpolation)", - "end": "\\1[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.elixir", - "patterns": [ - { - "include": "#interpolated_elixir" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "~[A-Z](?>\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "Double-quoted heredocs sigils", - "end": "^\\s*\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.heredoc.literal.elixir" - }, - { - "begin": "~[A-Z]\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (without interpolation)", - "end": "\\}[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.literal.elixir" - }, - { - "begin": "~[A-Z]\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (without interpolation)", - "end": "\\][a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.literal.elixir" - }, - { - "begin": "~[A-Z]\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (without interpolation)", - "end": "\\>[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.literal.elixir" - }, - { - "begin": "~[A-Z]\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (without interpolation)", - "end": "\\)[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.literal.elixir" - }, - { - "begin": "~[A-Z]([^\\w])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elixir" - } - }, - "comment": "sigil (without interpolation)", - "end": "\\1[a-z]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elixir" - } - }, - "name": "string.quoted.other.sigil.literal.elixir" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.elixir" - } - }, - "comment": "symbols", - "match": "(?<!:)(:)(?>[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|=~|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|\\.\\.//|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)", - "name": "constant.other.symbol.elixir" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.elixir" - } - }, - "comment": "symbols", - "match": "(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)", - "name": "constant.other.keywords.elixir" - }, - { - "begin": "(^[ \\t]+)?(?=##)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.elixir" - } - }, - "end": "(?!#)", - "patterns": [ - { - "begin": "##", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.elixir" - } - }, - "end": "\\n", - "name": "comment.line.section.elixir" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.elixir" - } - }, - "end": "(?!#)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.elixir" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.elixir" - } - ] - }, - { - "match": "\\b_([^_][\\w]+[?!]?)", - "name": "comment.unused.elixir" - }, - { - "match": "\\b_\\b", - "name": "comment.wildcard.elixir" - }, - { - "comment": "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (3rd alternation = normal):\n\t\t\t?a ?A ?0\n\t\t\t?* ?\" ?(\n\t\t\t?. ?#\n\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t", - "match": "(?<!\\w)\\?(\\\\(x[0-9A-Fa-f]{1,2}(?![0-9A-Fa-f])\\b|[^xMC])|[^\\s\\\\])", - "name": "constant.numeric.elixir" - }, - { - "match": "\\+\\+|\\-\\-|<\\|>", - "name": "keyword.operator.concatenation.elixir" - }, - { - "match": "\\|\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\|>", - "name": "keyword.operator.sigils_1.elixir" - }, - { - "match": "&&&|&&", - "name": "keyword.operator.sigils_2.elixir" - }, - { - "match": "<\\-|\\\\\\\\", - "name": "keyword.operator.sigils_3.elixir" - }, - { - "match": "===?|!==?|<=?|>=?", - "name": "keyword.operator.comparison.elixir" - }, - { - "match": "(\\|\\|\\||&&&|\\^\\^\\^|<<<|>>>|~~~)", - "name": "keyword.operator.bitwise.elixir" - }, - { - "match": "(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b", - "name": "keyword.operator.logical.elixir" - }, - { - "match": "(\\*|\\+|\\-|/)", - "name": "keyword.operator.arithmetic.elixir" - }, - { - "match": "\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|//|\\|>|~|=>|&", - "name": "keyword.operator.other.elixir" - }, - { - "match": "=", - "name": "keyword.operator.assignment.elixir" - }, - { - "match": ":", - "name": "punctuation.separator.other.elixir" - }, - { - "match": "\\;", - "name": "punctuation.separator.statement.elixir" - }, - { - "match": ",", - "name": "punctuation.separator.object.elixir" - }, - { - "match": "\\.", - "name": "punctuation.separator.method.elixir" - }, - { - "match": "\\{|\\}", - "name": "punctuation.section.scope.elixir" - }, - { - "match": "\\[|\\]", - "name": "punctuation.section.array.elixir" - }, - { - "match": "\\(|\\)", - "name": "punctuation.section.function.elixir" - } - ] - }, - "escaped_char": { - "match": "\\\\(x[\\da-fA-F]{1,2}|.)", - "name": "constant.character.escaped.elixir" - }, - "interpolated_elixir": { - "begin": "#\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.elixir" - } - }, - "contentName": "source.elixir", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.elixir" - } - }, - "name": "meta.embedded.line.elixir", - "patterns": [ - { - "include": "#nest_curly_and_self" - }, - { - "include": "$self" - } - ] - }, - "nest_curly_and_self": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.elixir" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly_and_self" - } - ] - }, - { - "include": "$self" - } - ] - } - }, - "scopeName": "source.elixir", - "uuid": "D00C06B9-71B2-4FEB-A0E3-37237F579456" -} diff --git a/lib/grammars/elm.tmLanguage.json b/lib/grammars/elm.tmLanguage.json deleted file mode 100644 index f38de1f..0000000 --- a/lib/grammars/elm.tmLanguage.json +++ /dev/null @@ -1,748 +0,0 @@ -{ - "fileTypes": ["elm"], - "name": "elm", - "scopeName": "source.elm", - "patterns": [ - { - "include": "#import" - }, - { - "include": "#module" - }, - { - "include": "#debug" - }, - { - "include": "#comments" - }, - { - "match": "\\b(_)\\b", - "name": "keyword.unused.elm" - }, - { - "include": "#type-signature" - }, - { - "include": "#type-declaration" - }, - { - "include": "#type-alias-declaration" - }, - { - "include": "#string-triple" - }, - { - "include": "#string-quote" - }, - { - "include": "#char" - }, - { - "comment": "Floats are always decimal", - "match": "\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b", - "name": "constant.numeric.float.elm" - }, - { - "match": "\\b([0-9]+)\\b", - "name": "constant.numeric.elm" - }, - { - "match": "\\b(0x[0-9a-fA-F]+)\\b", - "name": "constant.numeric.elm" - }, - { - "include": "#glsl" - }, - { - "include": "#record-prefix" - }, - { - "include": "#module-prefix" - }, - { - "include": "#constructor" - }, - { - "name": "meta.record.field.update.elm", - "match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\|)\\s+([a-z][a-zA-Z0-9_]*)", - "captures": { - "1": { - "name": "punctuation.bracket.elm" - }, - "2": { - "name": "record.name.elm" - }, - "3": { - "name": "keyword.pipe.elm" - }, - "4": { - "name": "entity.name.record.field.elm" - } - } - }, - { - "name": "meta.record.field.update.elm", - "match": "(\\|)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)", - "captures": { - "1": { - "name": "keyword.pipe.elm" - }, - "2": { - "name": "entity.name.record.field.elm" - }, - "3": { - "name": "keyword.operator.assignment.elm" - } - } - }, - { - "name": "meta.record.field.update.elm", - "match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+$", - "captures": { - "1": { - "name": "punctuation.bracket.elm" - }, - "2": { - "name": "record.name.elm" - } - } - }, - { - "name": "meta.record.field.elm", - "match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)", - "captures": { - "1": { - "name": "punctuation.bracket.elm" - }, - "2": { - "name": "entity.name.record.field.elm" - }, - "3": { - "name": "keyword.operator.assignment.elm" - } - } - }, - { - "name": "meta.record.field.elm", - "match": "(,)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)", - "captures": { - "1": { - "name": "punctuation.separator.comma.elm" - }, - "2": { - "name": "entity.name.record.field.elm" - }, - "3": { - "name": "keyword.operator.assignment.elm" - } - } - }, - { - "match": "(\\}|\\{)", - "name": "punctuation.bracket.elm" - }, - { - "include": "#unit" - }, - { - "include": "#comma" - }, - { - "include": "#parens" - }, - { - "match": "(->)", - "name": "keyword.operator.arrow.elm" - }, - { - "include": "#infix_op" - }, - { - "match": "(\\=|\\:|\\||\\\\)", - "name": "keyword.other.elm" - }, - { - "match": "\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\s+", - "name": "keyword.other.elm" - }, - { - "match": "\\b(if|then|else|case|of|let|in)\\s+", - "name": "keyword.control.elm" - }, - { - "include": "#record-accessor" - }, - { - "include": "#top_level_value" - }, - { - "include": "#value" - }, - { - "include": "#period" - }, - { - "include": "#square_brackets" - } - ], - "repository": { - "comma": { - "match": "(,)", - "name": "punctuation.separator.comma.elm" - }, - "parens": { - "match": "(\\(|\\))", - "name": "punctuation.parens.elm" - }, - "block_comment": { - "applyEndPatternLast": 1, - "begin": "\\{-(?!#)", - "captures": { - "0": { - "name": "punctuation.definition.comment.elm" - } - }, - "end": "-\\}", - "name": "comment.block.elm", - "patterns": [ - { - "include": "#block_comment" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.elm" - } - }, - "begin": "--", - "end": "$", - "name": "comment.line.double-dash.elm" - }, - { - "include": "#block_comment" - } - ] - }, - "import": { - "name": "meta.import.elm", - "begin": "^\\b(import)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.import.elm" - } - }, - "end": "\\n(?!\\s)", - "patterns": [ - { - "match": "(as|exposing)", - "name": "keyword.control.elm" - }, - { - "include": "#module_chunk" - }, - { - "include": "#period" - }, - { - "match": "\\s+", - "name": "punctuation.spaces.elm" - }, - { - "include": "#module-exports" - } - ] - }, - "module": { - "begin": "^\\b((port |effect )?module)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.elm" - } - }, - "end": "\\n(?!\\s)", - "endCaptures": { - "1": { - "name": "keyword.other.elm" - } - }, - "name": "meta.declaration.module.elm", - "patterns": [ - { - "include": "#module_chunk" - }, - { - "include": "#period" - }, - { - "match": "(exposing)", - "name": "keyword.other.elm" - }, - { - "match": "\\s+", - "name": "punctuation.spaces.elm" - }, - { - "include": "#module-exports" - } - ] - }, - "string-triple": { - "name": "string.quoted.triple.elm", - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elm" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elm" - } - }, - "patterns": [ - { - "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})", - "name": "constant.character.escape.elm" - }, - { - "match": "\\^[A-Z@\\[\\]\\\\\\^_]", - "name": "constant.character.escape.control.elm" - } - ] - }, - "string-quote": { - "name": "string.quoted.double.elm", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.elm" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.elm" - } - }, - "patterns": [ - { - "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})", - "name": "constant.character.escape.elm" - }, - { - "match": "\\^[A-Z@\\[\\]\\\\\\^_]", - "name": "constant.character.escape.control.elm" - } - ] - }, - "char": { - "name": "string.quoted.single.elm", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.char.begin.elm" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.char.end.elm" - } - }, - "patterns": [ - { - "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})", - "name": "constant.character.escape.elm" - }, - { - "match": "\\^[A-Z@\\[\\]\\\\\\^_]", - "name": "constant.character.escape.control.elm" - } - ] - }, - "debug": { - "match": "\\b(Debug)\\b", - "name": "invalid.illegal.debug.elm" - }, - "module-exports": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.parens.module-export.elm" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.parens.module-export.elm" - } - }, - "name": "meta.declaration.exports.elm", - "patterns": [ - { - "match": "\\b[a-z][a-zA-Z_'0-9]*", - "name": "entity.name.function.elm" - }, - { - "match": "\\b[A-Z][A-Za-z_'0-9]*", - "name": "storage.type.elm" - }, - { - "match": ",", - "name": "punctuation.separator.comma.elm" - }, - { - "match": "\\s+", - "name": "punctuation.spaces.elm" - }, - { - "include": "#comma" - }, - { - "match": "\\(\\.\\.\\)", - "name": "punctuation.parens.ellipses.elm" - }, - { - "match": "\\.\\.", - "name": "punctuation.parens.ellipses.elm" - }, - { - "include": "#infix_op" - }, - { - "comment": "So named because I don't know what to call this.", - "match": "\\(.*?\\)", - "name": "meta.other.unknown.elm" - } - ] - }, - "module_chunk": { - "match": "[A-Z][a-zA-Z0-9_]*", - "name": "support.module.elm" - }, - "period": { - "match": "[.]", - "name": "keyword.other.period.elm" - }, - "square_brackets": { - "match": "[\\[\\]]", - "name": "punctuation.definition.list.elm" - }, - "record-prefix": { - "match": "([a-z][a-zA-Z0-9_]*)(\\.)([a-z][a-zA-Z0-9_]*)", - "name": "record.accessor.elm", - "captures": { - "1": { - "name": "record.name.elm" - }, - "2": { - "name": "keyword.other.period.elm" - }, - "3": { - "name": "entity.name.record.field.accessor.elm" - } - } - }, - "module-prefix": { - "match": "([A-Z][a-zA-Z0-9_]*)(\\.)", - "name": "meta.module.name.elm", - "captures": { - "1": { - "name": "support.module.elm" - }, - "2": { - "name": "keyword.other.period.elm" - } - } - }, - "constructor": { - "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", - "name": "constant.type-constructor.elm" - }, - "value": { - "match": "\\b[a-z][a-zA-Z0-9_]*\\b", - "name": "meta.value.elm" - }, - "unit": { - "match": "\\(\\)", - "name": "constant.unit.elm" - }, - "top_level_value": { - "match": "^[a-z][a-zA-Z0-9_]*\\b", - "name": "entity.name.function.top_level.elm" - }, - "record-accessor": { - "match": "(\\.)([a-z][a-zA-Z0-9_]*)", - "name": "meta.record.accessor", - "captures": { - "1": { - "name": "keyword.other.period.elm" - }, - "2": { - "name": "entity.name.record.field.accessor.elm" - } - } - }, - "infix_op": { - "match": "(</>|<\\?>|<\\||<=|\\|\\||&&|>=|\\|>|\\|=|\\|\\.|\\+\\+|::|/=|==|//|>>|<<|<|>|\\^|\\+|-|/|\\*)", - "name": "keyword.operator.elm" - }, - "type-declaration": { - "begin": "^(type\\s+)([A-Z][a-zA-Z0-9_']*)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.type.elm" - }, - "2": { - "name": "storage.type.elm" - } - }, - "end": "^(?=\\S)", - "name": "meta.function.type-declaration.elm", - "patterns": [ - { - "name": "meta.record.field.elm", - "match": "^\\s*([A-Z][a-zA-Z0-9_]*)\\b", - "captures": { - "1": { - "name": "constant.type-constructor.elm" - } - } - }, - { - "match": "\\s+", - "name": "punctuation.spaces.elm" - }, - { - "name": "meta.record.field.elm", - "match": "(\\=|\\|)\\s+([A-Z][a-zA-Z0-9_]*)\\b", - "captures": { - "1": { - "name": "keyword.operator.assignment.elm" - }, - "2": { - "name": "constant.type-constructor.elm" - } - } - }, - { - "match": "\\=", - "name": "keyword.operator.assignment.elm" - }, - { - "match": "\\-\\>", - "name": "keyword.operator.arrow.elm" - }, - { - "include": "#module-prefix" - }, - { - "match": "\\b[a-z][a-zA-Z0-9_]*\\b", - "name": "variable.type.elm" - }, - { - "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", - "name": "storage.type.elm" - }, - { - "include": "#comments" - }, - { - "include": "#type-record" - } - ] - }, - "type-alias-declaration": { - "begin": "^(type\\s+)(alias\\s+)([A-Z][a-zA-Z0-9_']*)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.type.elm" - }, - "2": { - "name": "keyword.type-alias.elm" - }, - "3": { - "name": "storage.type.elm" - } - }, - "end": "^(?=\\S)", - "name": "meta.function.type-declaration.elm", - "patterns": [ - { - "match": "\\n\\s+", - "name": "punctuation.spaces.elm" - }, - { - "match": "\\=", - "name": "keyword.operator.assignment.elm" - }, - { - "include": "#module-prefix" - }, - { - "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", - "name": "storage.type.elm" - }, - { - "match": "\\b[a-z][a-zA-Z0-9_]*\\b", - "name": "variable.type.elm" - }, - { - "include": "#comments" - }, - { - "include": "#type-record" - } - ] - }, - "type-record": { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.braces.begin" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.braces.end" - } - }, - "name": "meta.function.type-record.elm", - "patterns": [ - { - "match": "\\s+", - "name": "punctuation.spaces.elm" - }, - { - "match": "->", - "name": "keyword.operator.arrow.elm" - }, - { - "name": "meta.record.field.elm", - "match": "([a-z][a-zA-Z0-9_]*)\\s+(\\:)", - "captures": { - "1": { - "name": "entity.name.record.field.elm" - }, - "2": { - "name": "keyword.other.elm" - } - } - }, - { - "match": "\\,", - "name": "punctuation.separator.comma.elm" - }, - { - "include": "#module-prefix" - }, - { - "match": "\\b[a-z][a-zA-Z0-9_]*\\b", - "name": "variable.type.elm" - }, - { - "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", - "name": "storage.type.elm" - }, - { - "include": "#comments" - }, - { - "include": "#type-record" - } - ] - }, - "type-signature": { - "begin": "^(port\\s+)?([a-z_][a-zA-Z0-9_']*)\\s+(\\:)", - "beginCaptures": { - "1": { - "name": "keyword.other.port.elm" - }, - "2": { - "name": "entity.name.function.elm" - }, - "3": { - "name": "keyword.other.colon.elm" - } - }, - "end": "((^(?=[a-z]))|^$)", - "name": "meta.function.type-declaration.elm", - "patterns": [ - { - "include": "#type-signature-chunk" - } - ] - }, - "type-signature-chunk": { - "patterns": [ - { - "match": "->", - "name": "keyword.operator.arrow.elm" - }, - { - "match": "\\s+", - "name": "punctuation.spaces.elm" - }, - { - "include": "#module-prefix" - }, - { - "match": "\\b[a-z][a-zA-Z0-9_]*\\b", - "name": "variable.type.elm" - }, - { - "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", - "name": "storage.type.elm" - }, - { - "match": "\\(\\)", - "name": "constant.unit.elm" - }, - { - "include": "#comma" - }, - { - "include": "#parens" - }, - { - "include": "#comments" - }, - { - "include": "#type-record" - } - ] - }, - "glsl": { - "begin": "(\\[)(glsl)(\\|)", - "beginCaptures": { - "1": { - "name": "entity.glsl.bracket.elm" - }, - "2": { - "name": "entity.glsl.name.elm" - }, - "3": { - "name": "entity.glsl.bracket.elm" - } - }, - "end": "(\\|\\])", - "endCaptures": { - "1": { - "name": "entity.glsl.bracket.elm" - } - }, - "name": "meta.embedded.block.glsl", - "patterns": [ - { - "include": "source.glsl" - } - ] - } - } -} diff --git a/lib/grammars/erb.tmLanguage.json b/lib/grammars/erb.tmLanguage.json deleted file mode 100644 index c1d8421..0000000 --- a/lib/grammars/erb.tmLanguage.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "fileTypes": ["erb", "rhtml", "html.erb"], - "injections": { - "text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)": { - "patterns": [ - { - "begin": "(^\\s*)(?=<%+#(?![^%]*%>))", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.comment.leading.erb" - } - }, - "end": "(?!\\G)(\\s*$\\n)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.comment.trailing.erb" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "begin": "(^\\s*)(?=<%(?![^%]*%>))", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.erb" - } - }, - "end": "(?!\\G)(\\s*$\\n)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.erb" - } - }, - "patterns": [ - { - "include": "#tags" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#tags" - } - ] - } - }, - "keyEquivalent": "^~H", - "name": "erb", - "patterns": [ - { - "include": "text.html.basic" - } - ], - "repository": { - "comment": { - "patterns": [ - { - "begin": "<%+#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.erb" - } - }, - "end": "%>", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.erb" - } - }, - "name": "comment.block.erb" - } - ] - }, - "tags": { - "patterns": [ - { - "begin": "<%+(?!>)[-=]?(?![^%]*%>)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.erb" - } - }, - "contentName": "source.ruby", - "end": "(-?%)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.erb" - }, - "1": { - "name": "source.ruby" - } - }, - "name": "meta.embedded.block.erb", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.erb" - } - }, - "match": "(#).*?(?=-?%>)", - "name": "comment.line.number-sign.erb" - }, - { - "include": "source.ruby" - } - ] - }, - { - "begin": "<%+(?!>)[-=]?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.erb" - } - }, - "contentName": "source.ruby", - "end": "(-?%)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.erb" - }, - "1": { - "name": "source.ruby" - } - }, - "name": "meta.embedded.line.erb", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.erb" - } - }, - "match": "(#).*?(?=-?%>)", - "name": "comment.line.number-sign.erb" - }, - { - "include": "source.ruby" - } - ] - } - ] - } - }, - "scopeName": "text.html.erb", - "uuid": "13FF9439-15D0-4E74-9A8E-83ABF0BAA5E7" -} diff --git a/lib/grammars/erlang.tmLanguage.json b/lib/grammars/erlang.tmLanguage.json deleted file mode 100644 index 8a366bb..0000000 --- a/lib/grammars/erlang.tmLanguage.json +++ /dev/null @@ -1,1730 +0,0 @@ -{ - "comment": "The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function/module/record/macro names must be given unquoted. -- desp", - "fileTypes": ["erl", "escript", "hrl", "xrl", "yrl"], - "keyEquivalent": "^~E", - "name": "erlang", - "patterns": [ - { - "include": "#module-directive" - }, - { - "include": "#import-export-directive" - }, - { - "include": "#behaviour-directive" - }, - { - "include": "#record-directive" - }, - { - "include": "#define-directive" - }, - { - "include": "#macro-directive" - }, - { - "include": "#directive" - }, - { - "include": "#function" - }, - { - "include": "#everything-else" - } - ], - "repository": { - "atom": { - "patterns": [ - { - "begin": "(')", - "beginCaptures": { - "1": { - "name": "punctuation.definition.symbol.begin.erlang" - } - }, - "end": "(')", - "endCaptures": { - "1": { - "name": "punctuation.definition.symbol.end.erlang" - } - }, - "name": "constant.other.symbol.quoted.single.erlang", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.escape.erlang" - }, - "3": { - "name": "punctuation.definition.escape.erlang" - } - }, - "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})", - "name": "constant.other.symbol.escape.erlang" - }, - { - "match": "\\\\\\^?.?", - "name": "invalid.illegal.atom.erlang" - } - ] - }, - { - "match": "[a-z][a-zA-Z\\d@_]*+", - "name": "constant.other.symbol.unquoted.erlang" - } - ] - }, - "behaviour-directive": { - "captures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.behaviour.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.type.class.behaviour.definition.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "6": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "match": "^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)", - "name": "meta.directive.behaviour.erlang" - }, - "binary": { - "begin": "(<<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.binary.begin.erlang" - } - }, - "end": "(>>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.binary.end.erlang" - } - }, - "name": "meta.structure.binary.erlang", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.binary.erlang" - }, - "2": { - "name": "punctuation.separator.value-size.erlang" - } - }, - "match": "(,)|(:)" - }, - { - "include": "#internal-type-specifiers" - }, - { - "include": "#everything-else" - } - ] - }, - "character": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.character.erlang" - }, - "2": { - "name": "constant.character.escape.erlang" - }, - "3": { - "name": "punctuation.definition.escape.erlang" - }, - "5": { - "name": "punctuation.definition.escape.erlang" - } - }, - "match": "(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))", - "name": "constant.character.erlang" - }, - { - "match": "\\$\\\\\\^?.?", - "name": "invalid.illegal.character.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.character.erlang" - } - }, - "match": "(\\$)[ \\S]", - "name": "constant.character.erlang" - }, - { - "match": "\\$.?", - "name": "invalid.illegal.character.erlang" - } - ] - }, - "comment": { - "begin": "(^[ \\t]+)?(?=%)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.erlang" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.erlang" - } - }, - "end": "\\n", - "name": "comment.line.percentage.erlang" - } - ] - }, - "define-directive": { - "patterns": [ - { - "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+", - "beginCaptures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.define.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.function.macro.definition.erlang" - } - }, - "end": "(\\))\\s*+(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "name": "meta.directive.define.erlang", - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "begin": "(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()", - "end": "(\\))\\s*+(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "name": "meta.directive.define.erlang", - "patterns": [ - { - "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.define.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.function.macro.definition.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "end": "(\\))\\s*(,)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.separator.parameters.erlang" - } - }, - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.parameters.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - { - "match": "\\|\\||\\||:|;|,|\\.|->", - "name": "punctuation.separator.define.erlang" - }, - { - "include": "#everything-else" - } - ] - } - ] - }, - "directive": { - "patterns": [ - { - "begin": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)", - "beginCaptures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "end": "(\\)?)\\s*+(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "name": "meta.directive.erlang", - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.erlang" - }, - "3": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)", - "name": "meta.directive.erlang" - } - ] - }, - "everything-else": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#record-usage" - }, - { - "include": "#macro-usage" - }, - { - "include": "#expression" - }, - { - "include": "#keyword" - }, - { - "include": "#textual-operator" - }, - { - "include": "#language-constant" - }, - { - "include": "#function-call" - }, - { - "include": "#tuple" - }, - { - "include": "#list" - }, - { - "include": "#binary" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#character" - }, - { - "include": "#number" - }, - { - "include": "#atom" - }, - { - "include": "#string" - }, - { - "include": "#symbolic-operator" - }, - { - "include": "#variable" - } - ] - }, - "expression": { - "patterns": [ - { - "begin": "\\b(if)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.if.erlang" - } - }, - "end": "\\b(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.erlang" - } - }, - "name": "meta.expression.if.erlang", - "patterns": [ - { - "include": "#internal-expression-punctuation" - }, - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(case)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.case.erlang" - } - }, - "end": "\\b(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.erlang" - } - }, - "name": "meta.expression.case.erlang", - "patterns": [ - { - "include": "#internal-expression-punctuation" - }, - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(receive)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.receive.erlang" - } - }, - "end": "\\b(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.erlang" - } - }, - "name": "meta.expression.receive.erlang", - "patterns": [ - { - "include": "#internal-expression-punctuation" - }, - { - "include": "#everything-else" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.fun.erlang" - }, - "4": { - "name": "entity.name.type.class.module.erlang" - }, - "5": { - "name": "variable.other.erlang" - }, - "6": { - "name": "punctuation.separator.module-function.erlang" - }, - "8": { - "name": "entity.name.function.erlang" - }, - "9": { - "name": "variable.other.erlang" - }, - "10": { - "name": "punctuation.separator.function-arity.erlang" - } - }, - "comment": "Implicit function expression with optional module qualifier when both module and function can be atom or variable", - "match": "\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)", - "name": "meta.expression.fun.implicit.erlang" - }, - { - "begin": "\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)", - "beginCaptures": { - "1": { - "name": "keyword.control.fun.erlang" - }, - "3": { - "name": "entity.name.type.class.module.erlang" - }, - "4": { - "name": "variable.other.erlang" - }, - "5": { - "name": "punctuation.separator.module-function.erlang" - } - }, - "comment": "Implicit function expression with module qualifier when module can be atom or variable and function can by anything", - "end": "(/)", - "endCaptures": { - "1": { - "name": "punctuation.separator.function-arity.erlang" - } - }, - "name": "meta.expression.fun.implicit.erlang", - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(fun)\\s+(?!\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.fun.erlang" - } - }, - "comment": "Implicit function expression when both module and function can by anything", - "end": "(/)", - "endCaptures": { - "1": { - "name": "punctuation.separator.function-arity.erlang" - } - }, - "name": "meta.expression.fun.implicit.erlang", - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(fun)\\s*+(\\()(?=(\\s*+\\())", - "beginCaptures": { - "1": { - "name": "entity.name.function.erlang" - }, - "2": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "comment": "Function type in type specification", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - } - }, - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(fun)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.fun.erlang" - } - }, - "comment": "Explicit function expression", - "end": "\\b(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.erlang" - } - }, - "name": "meta.expression.fun.erlang", - "patterns": [ - { - "begin": "(?=\\()", - "end": "(;)|(?=\\bend\\b)", - "endCaptures": { - "1": { - "name": "punctuation.separator.clauses.erlang" - } - }, - "patterns": [ - { - "include": "#internal-function-parts" - } - ] - }, - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(try)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.erlang" - } - }, - "end": "\\b(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.erlang" - } - }, - "name": "meta.expression.try.erlang", - "patterns": [ - { - "include": "#internal-expression-punctuation" - }, - { - "include": "#everything-else" - } - ] - }, - { - "begin": "\\b(begin)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.begin.erlang" - } - }, - "end": "\\b(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.erlang" - } - }, - "name": "meta.expression.begin.erlang", - "patterns": [ - { - "include": "#internal-expression-punctuation" - }, - { - "include": "#everything-else" - } - ] - } - ] - }, - "function": { - "begin": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.definition.erlang" - } - }, - "end": "(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.function.erlang" - } - }, - "name": "meta.function.erlang", - "patterns": [ - { - "captures": { - "1": { - "name": "entity.name.function.erlang" - } - }, - "match": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()" - }, - { - "begin": "(?=\\()", - "end": "(;)|(?=\\.)", - "endCaptures": { - "1": { - "name": "punctuation.separator.clauses.erlang" - } - }, - "patterns": [ - { - "include": "#parenthesized-expression" - }, - { - "include": "#internal-function-parts" - } - ] - }, - { - "include": "#everything-else" - } - ] - }, - "function-call": { - "begin": "(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - } - }, - "name": "meta.function-call.erlang", - "patterns": [ - { - "begin": "((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()", - "beginCaptures": { - "2": { - "name": "entity.name.type.class.module.erlang" - }, - "3": { - "name": "punctuation.separator.module-function.erlang" - }, - "4": { - "name": "entity.name.function.guard.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.parameters.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - { - "begin": "((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()", - "beginCaptures": { - "3": { - "name": "entity.name.type.class.module.erlang" - }, - "4": { - "name": "variable.other.erlang" - }, - "5": { - "name": "punctuation.separator.module-function.erlang" - }, - "7": { - "name": "entity.name.function.erlang" - }, - "8": { - "name": "variable.other.erlang" - }, - "9": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.parameters.erlang" - }, - { - "include": "#everything-else" - } - ] - } - ] - }, - "import-export-directive": { - "patterns": [ - { - "begin": "^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)", - "beginCaptures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.import.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.type.class.module.erlang" - }, - "5": { - "name": "punctuation.separator.parameters.erlang" - } - }, - "end": "(\\))\\s*+(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "name": "meta.directive.import.erlang", - "patterns": [ - { - "include": "#internal-function-list" - } - ] - }, - { - "begin": "^\\s*+(-)\\s*+(export)\\s*+(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.export.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "end": "(\\))\\s*+(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "name": "meta.directive.export.erlang", - "patterns": [ - { - "include": "#internal-function-list" - } - ] - } - ] - }, - "internal-expression-punctuation": { - "captures": { - "1": { - "name": "punctuation.separator.clause-head-body.erlang" - }, - "2": { - "name": "punctuation.separator.clauses.erlang" - }, - "3": { - "name": "punctuation.separator.expressions.erlang" - } - }, - "match": "(->)|(;)|(,)" - }, - "internal-function-list": { - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.list.begin.erlang" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.list.end.erlang" - } - }, - "name": "meta.structure.list.function.erlang", - "patterns": [ - { - "begin": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)", - "beginCaptures": { - "1": { - "name": "entity.name.function.erlang" - }, - "2": { - "name": "punctuation.separator.function-arity.erlang" - } - }, - "end": "(,)|(?=\\])", - "endCaptures": { - "1": { - "name": "punctuation.separator.list.erlang" - } - }, - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "include": "#everything-else" - } - ] - }, - "internal-function-parts": { - "patterns": [ - { - "begin": "(?=\\()", - "end": "(->)", - "endCaptures": { - "1": { - "name": "punctuation.separator.clause-head-body.erlang" - } - }, - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.erlang" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - } - }, - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.parameters.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - { - "match": ",|;", - "name": "punctuation.separator.guards.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.expressions.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - "internal-record-body": { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.class.record.begin.erlang" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.class.record.end.erlang" - } - }, - "name": "meta.structure.record.erlang", - "patterns": [ - { - "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))", - "beginCaptures": { - "2": { - "name": "variable.other.field.erlang" - }, - "3": { - "name": "variable.language.omitted.field.erlang" - } - }, - "end": "(,)|(?=\\})", - "endCaptures": { - "1": { - "name": "punctuation.separator.class.record.erlang" - } - }, - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - { - "include": "#everything-else" - } - ] - }, - "internal-type-specifiers": { - "begin": "(/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.value-type.erlang" - } - }, - "end": "(?=,|:|>>)", - "patterns": [ - { - "captures": { - "1": { - "name": "storage.type.erlang" - }, - "2": { - "name": "storage.modifier.signedness.erlang" - }, - "3": { - "name": "storage.modifier.endianness.erlang" - }, - "4": { - "name": "storage.modifier.unit.erlang" - }, - "5": { - "name": "punctuation.separator.unit-specifiers.erlang" - }, - "6": { - "name": "constant.numeric.integer.decimal.erlang" - }, - "7": { - "name": "punctuation.separator.type-specifiers.erlang" - } - }, - "match": "(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)" - } - ] - }, - "keyword": { - "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when)\\b", - "name": "keyword.control.erlang" - }, - "language-constant": { - "match": "\\b(false|true|undefined)\\b", - "name": "constant.language" - }, - "list": { - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.list.begin.erlang" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.list.end.erlang" - } - }, - "name": "meta.structure.list.erlang", - "patterns": [ - { - "match": "\\||\\|\\||,", - "name": "punctuation.separator.list.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - "macro-directive": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.ifdef.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.function.macro.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "6": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", - "name": "meta.directive.ifdef.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.ifndef.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.function.macro.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "6": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", - "name": "meta.directive.ifndef.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.undef.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.function.macro.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "6": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", - "name": "meta.directive.undef.erlang" - } - ] - }, - "macro-usage": { - "captures": { - "1": { - "name": "keyword.operator.macro.erlang" - }, - "2": { - "name": "entity.name.function.macro.erlang" - } - }, - "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)", - "name": "meta.macro-usage.erlang" - }, - "module-directive": { - "captures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.module.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.type.class.module.definition.erlang" - }, - "5": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "6": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)", - "name": "meta.directive.module.erlang" - }, - "number": { - "begin": "(?=\\d)", - "end": "(?!\\d)", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.integer-float.erlang" - }, - "2": { - "name": "punctuation.separator.float-exponent.erlang" - } - }, - "match": "\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?", - "name": "constant.numeric.float.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "2(#)([0-1]++_)*[0-1]++", - "name": "constant.numeric.integer.binary.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "3(#)([0-2]++_)*[0-2]++", - "name": "constant.numeric.integer.base-3.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "4(#)([0-3]++_)*[0-3]++", - "name": "constant.numeric.integer.base-4.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "5(#)([0-4]++_)*[0-4]++", - "name": "constant.numeric.integer.base-5.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "6(#)([0-5]++_)*[0-5]++", - "name": "constant.numeric.integer.base-6.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "7(#)([0-6]++_)*[0-6]++", - "name": "constant.numeric.integer.base-7.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "8(#)([0-7]++_)*[0-7]++", - "name": "constant.numeric.integer.octal.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "9(#)([0-8]++_)*[0-8]++", - "name": "constant.numeric.integer.base-9.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "10(#)(\\d++_)*\\d++", - "name": "constant.numeric.integer.decimal.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "11(#)([\\daA]++_)*[\\daA]++", - "name": "constant.numeric.integer.base-11.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "12(#)([\\da-bA-B]++_)*[\\da-bA-B]++", - "name": "constant.numeric.integer.base-12.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "13(#)([\\da-cA-C]++_)*[\\da-cA-C]++", - "name": "constant.numeric.integer.base-13.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "14(#)([\\da-dA-D]++_)*[\\da-dA-D]++", - "name": "constant.numeric.integer.base-14.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "15(#)([\\da-eA-E]++_)*[\\da-eA-E]++", - "name": "constant.numeric.integer.base-15.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "16(#)([\\da-fA-F]++_)*[\\da-fA-F]++", - "name": "constant.numeric.integer.hexadecimal.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "17(#)([\\da-gA-G]++_)*[\\da-gA-G]++", - "name": "constant.numeric.integer.base-17.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "18(#)([\\da-hA-H]++_)*[\\da-hA-H]++", - "name": "constant.numeric.integer.base-18.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "19(#)([\\da-iA-I]++_)*[\\da-iA-I]++", - "name": "constant.numeric.integer.base-19.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "20(#)([\\da-jA-J]++_)*[\\da-jA-J]++", - "name": "constant.numeric.integer.base-20.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "21(#)([\\da-kA-K]++_)*[\\da-kA-K]++", - "name": "constant.numeric.integer.base-21.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "22(#)([\\da-lA-L]++_)*[\\da-lA-L]++", - "name": "constant.numeric.integer.base-22.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "23(#)([\\da-mA-M]++_)*[\\da-mA-M]++", - "name": "constant.numeric.integer.base-23.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "24(#)([\\da-nA-N]++_)*[\\da-nA-N]++", - "name": "constant.numeric.integer.base-24.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "25(#)([\\da-oA-O]++_)*[\\da-oA-O]++", - "name": "constant.numeric.integer.base-25.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "26(#)([\\da-pA-P]++_)*[\\da-pA-P]++", - "name": "constant.numeric.integer.base-26.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++", - "name": "constant.numeric.integer.base-27.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "28(#)([\\da-rA-R]++_)*[\\da-rA-R]++", - "name": "constant.numeric.integer.base-28.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "29(#)([\\da-sA-S]++_)*[\\da-sA-S]++", - "name": "constant.numeric.integer.base-29.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "30(#)([\\da-tA-T]++_)*[\\da-tA-T]++", - "name": "constant.numeric.integer.base-30.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "31(#)([\\da-uA-U]++_)*[\\da-uA-U]++", - "name": "constant.numeric.integer.base-31.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "32(#)([\\da-vA-V]++_)*[\\da-vA-V]++", - "name": "constant.numeric.integer.base-32.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "33(#)([\\da-wA-W]++_)*[\\da-wA-W]++", - "name": "constant.numeric.integer.base-33.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "34(#)([\\da-xA-X]++_)*[\\da-xA-X]++", - "name": "constant.numeric.integer.base-34.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++", - "name": "constant.numeric.integer.base-35.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.base-integer.erlang" - } - }, - "match": "36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++", - "name": "constant.numeric.integer.base-36.erlang" - }, - { - "match": "\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++", - "name": "invalid.illegal.integer.erlang" - }, - { - "match": "(\\d++_)*\\d++", - "name": "constant.numeric.integer.decimal.erlang" - } - ] - }, - "parenthesized-expression": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.erlang" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.erlang" - } - }, - "name": "meta.expression.parenthesized", - "patterns": [ - { - "include": "#everything-else" - } - ] - }, - "record-directive": { - "begin": "^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)", - "beginCaptures": { - "1": { - "name": "punctuation.section.directive.begin.erlang" - }, - "2": { - "name": "keyword.control.directive.import.erlang" - }, - "3": { - "name": "punctuation.definition.parameters.begin.erlang" - }, - "4": { - "name": "entity.name.type.class.record.definition.erlang" - }, - "5": { - "name": "punctuation.separator.parameters.erlang" - } - }, - "end": "(\\))\\s*+(\\.)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.erlang" - }, - "2": { - "name": "punctuation.section.directive.end.erlang" - } - }, - "name": "meta.directive.record.erlang", - "patterns": [ - { - "include": "#internal-record-body" - }, - { - "include": "#comment" - } - ] - }, - "record-usage": { - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.operator.record.erlang" - }, - "2": { - "name": "entity.name.type.class.record.erlang" - }, - "3": { - "name": "punctuation.separator.record-field.erlang" - }, - "4": { - "name": "variable.other.field.erlang" - } - }, - "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')", - "name": "meta.record-usage.erlang" - }, - { - "begin": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')", - "beginCaptures": { - "1": { - "name": "keyword.operator.record.erlang" - }, - "2": { - "name": "entity.name.type.class.record.erlang" - } - }, - "end": "(?<=\\})", - "name": "meta.record-usage.erlang", - "patterns": [ - { - "include": "#internal-record-body" - } - ] - } - ] - }, - "string": { - "begin": "(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.erlang" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.erlang" - } - }, - "name": "string.quoted.double.erlang", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.escape.erlang" - }, - "3": { - "name": "punctuation.definition.escape.erlang" - } - }, - "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})", - "name": "constant.character.escape.erlang" - }, - { - "match": "\\\\\\^?.?", - "name": "invalid.illegal.string.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.placeholder.erlang" - }, - "3": { - "name": "punctuation.separator.placeholder-parts.erlang" - }, - "4": { - "name": "punctuation.separator.placeholder-parts.erlang" - }, - "6": { - "name": "punctuation.separator.placeholder-parts.erlang" - }, - "8": { - "name": "punctuation.separator.placeholder-parts.erlang" - }, - "10": { - "name": "punctuation.separator.placeholder-parts.erlang" - }, - "12": { - "name": "punctuation.separator.placeholder-parts.erlang" - } - }, - "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*)))?((\\.)((\\*)|.))?[~cfegswpWPBX#bx\\+ni]", - "name": "constant.other.placeholder.erlang" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.placeholder.erlang" - }, - "2": { - "name": "punctuation.separator.placeholder-parts.erlang" - } - }, - "match": "(~)(\\*)?(\\d++)?[~du\\-#fsacl]", - "name": "constant.other.placeholder.erlang" - }, - { - "match": "~[^\"]?", - "name": "invalid.illegal.string.erlang" - } - ] - }, - "symbolic-operator": { - "match": "\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::", - "name": "keyword.operator.symbolic.erlang" - }, - "textual-operator": { - "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b", - "name": "keyword.operator.textual.erlang" - }, - "tuple": { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tuple.begin.erlang" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.tuple.end.erlang" - } - }, - "name": "meta.structure.tuple.erlang", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.tuple.erlang" - }, - { - "include": "#everything-else" - } - ] - }, - "variable": { - "captures": { - "1": { - "name": "variable.other.erlang" - }, - "2": { - "name": "variable.language.omitted.erlang" - } - }, - "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)" - } - }, - "scopeName": "source.erlang", - "uuid": "58EA597D-5158-4BF7-9FB2-B05135D1E166" -} diff --git a/lib/grammars/fish.tmLanguage.json b/lib/grammars/fish.tmLanguage.json deleted file mode 100644 index 235909b..0000000 --- a/lib/grammars/fish.tmLanguage.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "fileTypes": ["fish"], - "firstLineMatch": "^#!.*\\bfish\\b", - "foldingStartMarker": "^\\s*(function|while|if|switch|for|begin)\\s.*$", - "foldingStopMarker": "^\\s*end\\s*$", - "keyEquivalent": "^~F", - "name": "fish", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.fish" - } - }, - "comment": "Double quoted string", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.fish" - } - }, - "name": "string.quoted.double.fish", - "patterns": [ - { - "include": "#variable" - }, - { - "comment": "https://fishshell.com/docs/current/#quotes", - "match": "\\\\(\\\"|\\$|$|\\\\)", - "name": "constant.character.escape.fish" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.fish" - } - }, - "comment": "Single quoted string", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.fish" - } - }, - "name": "string.quoted.single.fish", - "patterns": [ - { - "comment": "https://fishshell.com/docs/current/#quotes", - "match": "\\\\('|`|\\\\)", - "name": "constant.character.escape.fish" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.fish" - } - }, - "comment": "line comment", - "match": "(?<!\\$)(#)(?!\\{).*$\\n?", - "name": "comment.line.number-sign.fish" - }, - { - "comment": "name of command, either a function or a binary", - "match": "(^\\s*|&&\\s*|\\|\\s*|\\(\\s*|[;]\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!]))([a-zA-Z_\\-0-9\\[\\].]+)", - "captures": { - "2": { - "name": "keyword.control.fish" - }, - "4": { - "name": "support.function.command.fish" - } - } - }, - { - "comment": "keywords that affect control flow", - "match": "(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!])", - "name": "keyword.control.fish" - }, - { - "match": "(?<!\\.)\\bfunction\\b(?![?!])", - "name": "storage.type.fish" - }, - { - "match": "\\|", - "name": "keyword.operator.pipe.fish" - }, - { - "comment": "IO Redirection", - "match": "(?x:\n<|# Standard Input\n(>|\\^|>>|\\^\\^)(&[012\\-])?| # Redirection of stderr\n[012](<|>|>>)(&[012\\-])? # Redirect input/output of file descriptors\n)", - "name": "keyword.operator.redirect.fish" - }, - { - "match": "&", - "name": "keyword.operator.background.fish" - }, - { - "match": "\\*\\*|\\*|\\?", - "name": "keyword.operator.glob.fish" - }, - { - "comment": "command short/long options", - "match": "\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b", - "captures": { - "1": { - "name": "source.option.fish" - } - } - }, - { - "include": "#variable" - }, - { - "include": "#escape" - } - ], - "repository": { - "escape": { - "patterns": [ - { - "comment": "single character character escape sequences", - "match": "\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;\"']", - "name": "constant.character.escape.single.fish" - }, - { - "comment": "escapes the ascii character with the specified value (hexadecimal)", - "match": "\\\\x[0-9a-fA-F]{1,2}", - "name": "constant.character.escape.hex-ascii.fish" - }, - { - "comment": "escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.", - "match": "\\\\X[0-9a-fA-F]{1,2}", - "name": "constant.character.escape.hex-byte.fish" - }, - { - "comment": "escapes the ascii character with the specified value (octal)", - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.octal.fish" - }, - { - "comment": "escapes the 16-bit unicode character with the specified value (hexadecimal)", - "match": "\\\\u[0-9a-fA-F]{1,4}", - "name": "constant.character.escape.unicode-16-bit.fish" - }, - { - "comment": "escapes the 32-bit unicode character with the specified value (hexadecimal)", - "match": "\\\\U[0-9a-fA-F]{1,8}", - "name": "constant.character.escape.unicode-32-bit.fish" - }, - { - "comment": "escapes the control sequence generated by pressing the control key and the specified letter", - "match": "\\\\c[a-zA-Z]", - "name": "constant.character.escape.control.fish" - } - ] - }, - "variable": { - "patterns": [ - { - "comment": "Built-in variables visible by pressing $ TAB TAB in a new shell", - "captures": { - "1": { - "name": "punctuation.definition.variable.fish" - } - }, - "match": "(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b", - "name": "variable.language.fish" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.fish" - } - }, - "match": "(\\$)[a-zA-Z_][a-zA-Z0-9_]*", - "name": "variable.other.normal.fish" - } - ] - } - }, - "scopeName": "source.fish", - "uuid": "9CA6DB6F-A16F-4836-A058-617C7378775D" -} diff --git a/lib/grammars/fsharp.tmLanguage.json b/lib/grammars/fsharp.tmLanguage.json deleted file mode 100644 index bfd1e71..0000000 --- a/lib/grammars/fsharp.tmLanguage.json +++ /dev/null @@ -1,1835 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/ionide/ionide-fsgrammar/blob/master/grammars/fsharp.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/ionide/ionide-fsgrammar/commit/71b1ead8c99715f6c994115ebab7ee4a14cf0c59", - "name": "fsharp", - "scopeName": "source.fsharp", - "patterns": [ - { - "include": "#compiler_directives" - }, - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#chars" - }, - { - "include": "#double_tick" - }, - { - "include": "#definition" - }, - { - "include": "#abstract_definition" - }, - { - "include": "#attributes" - }, - { - "include": "#modules" - }, - { - "include": "#anonymous_functions" - }, - { - "include": "#du_declaration" - }, - { - "include": "#record_declaration" - }, - { - "include": "#records" - }, - { - "include": "#strp_inlined" - }, - { - "include": "#keywords" - }, - { - "include": "#cexprs" - }, - { - "include": "#text" - } - ], - "repository": { - "strp_inlined_body": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#anonymous_functions" - }, - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.fsharp", - "match": "\\b(and|when|or)\\b" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#strp_inlined_body" - } - ] - }, - { - "match": "(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)", - "captures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "variable.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - } - } - }, - { - "include": "#compiler_directives" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#chars" - }, - { - "include": "#double_tick" - }, - { - "include": "#keywords" - }, - { - "include": "#text" - }, - { - "include": "#definition" - }, - { - "include": "#attributes" - }, - { - "include": "#keywords" - }, - { - "include": "#cexprs" - }, - { - "include": "#text" - } - ] - }, - "strp_inlined": { - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#strp_inlined_body" - } - ] - } - ] - }, - "generic_declaration": { - "patterns": [ - { - "comments": "SRTP syntax support", - "begin": "(:)\\s*(\\()\\s*(static member|member)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "match": "(('|\\^)[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - { - "name": "keyword.fsharp", - "match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b" - }, - { - "name": "keyword.symbol.fsharp", - "match": ":" - }, - { - "include": "#constants" - }, - { - "match": "(('|\\^)[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(<)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(('|\\^)[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#tuple_signature" - }, - { - "include": "#generic_declaration" - } - ] - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(([?[:alpha:]0-9'`^._ ]+))+", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#tuple_signature" - } - ] - }, - { - "match": "(?!when|and|or\\b)\\b([\\w0-9'`^._]+)", - "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(\\|)", - "comments": "Prevent captures of `|>` as a keyword when defining custom operator like `<|>`", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - "anonymous_record_declaration": { - "begin": "(\\{\\|)", - "end": "(\\|\\})", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "[[:alpha:]0-9'`^_ ]+(:)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - } - } - }, - { - "match": "([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#anonymous_record_declaration" - }, - { - "include": "#keywords" - } - ] - }, - "record_signature": { - "patterns": [ - { - "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - } - } - }, - { - "begin": "({)", - "end": "(})", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - } - } - }, - { - "include": "#record_signature" - } - ] - }, - { - "include": "#keywords" - } - ] - }, - "tuple_signature": { - "patterns": [ - { - "match": "(([?[:alpha:]0-9'`^._ ]+))+", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(([?[:alpha:]0-9'`^._ ]+))+", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#tuple_signature" - } - ] - }, - { - "include": "#keywords" - } - ] - }, - "anonymous_functions": { - "patterns": [ - { - "name": "function.anonymous", - "begin": "\\b(fun)\\b", - "end": "(->)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(\\()", - "end": "\\s*(?=(->))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "include": "#variables" - } - ] - } - ] - }, - "attributes": { - "patterns": [ - { - "name": "support.function.attribute.fsharp", - "begin": "\\[\\<", - "end": "\\>\\]|\\]", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.literate.command.fsharp", - "match": "(\\(\\*{3}.*\\*{3}\\))", - "beginCaptures": { - "1": { - "name": "comment.block.fsharp" - } - } - }, - { - "name": "comment.block.markdown.fsharp", - "begin": "^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$", - "while": "^(?!\\s*(\\*)+\\)\\s*$)", - "beginCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "patterns": [ - { - "include": "text.html.markdown" - } - ] - }, - { - "name": "comment.block.fsharp", - "begin": "(\\(\\*(?!\\)))", - "end": "(\\*+\\))", - "beginCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "patterns": [ - { - "comments": "Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155", - "name": "fast-capture.comment.line.double-slash.fsharp", - "match": "//" - }, - { - "include": "#comments" - } - ] - }, - { - "name": "comment.block.markdown.fsharp.end", - "match": "((?<!\\()(\\*)+\\))", - "captures": { - "1": { - "name": "comment.block.fsharp" - } - } - }, - { - "name": "comment.line.markdown.fsharp", - "begin": "///", - "while": "///", - "patterns": [ - { - "include": "text.html.markdown" - } - ] - }, - { - "name": "comment.line.double-slash.fsharp", - "match": "//.*$" - } - ] - }, - "constants": { - "patterns": [ - { - "name": "keyword.symbol.fsharp", - "match": "\\(\\)" - }, - { - "name": "constant.numeric.float.fsharp", - "match": "\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))" - }, - { - "name": "constant.numeric.integer.nativeint.fsharp", - "match": "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))" - }, - { - "name": "constant.language.boolean.fsharp", - "match": "\\b(true|false)\\b" - }, - { - "name": "constant.other.fsharp", - "match": "\\b(null|void)\\b" - } - ] - }, - "abstract_definition": { - "name": "abstract.definition.fsharp", - "begin": "\\b(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)", - "end": "\\s*(with)\\b|=|$", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "support.function.attribute.fsharp" - }, - "5": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#common_declaration" - }, - { - "match": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", - "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - "common_binding_definition": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attributes" - }, - { - "comments": "SRTP syntax support", - "begin": "(:)\\s*(\\()\\s*(static member|member)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(\\))\\s*((?=,)|(?=\\=))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - { - "begin": "(:)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - }, - "patterns": [ - { - "include": "#tuple_signature" - } - ] - }, - { - "begin": "(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(?=:)", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "name": "keyword.fsharp", - "match": "\\b(and|when|or)\\b" - }, - { - "comment": "Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition", - "match": "([[:alpha:]0-9'^._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.symbol.fsharp", - "match": "(\\(|\\))" - } - ] - }, - { - "match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*", - "captures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(\\*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - }, - "patterns": [ - { - "include": "#tuple_signature" - } - ] - }, - { - "begin": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - }, - "end": "(?==)|(?=\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#tuple_signature" - } - ] - }, - { - "begin": "(<+(?![[:space:]]*\\)))", - "beginComment": "The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)", - "end": "((?<!:)>|\\))", - "endComment": "The group (?<!:) prevent us from stopping on :> when using SRTP synthax", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#generic_declaration" - } - ] - }, - { - "include": "#anonymous_record_declaration" - }, - { - "begin": "({)", - "end": "(})", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#record_signature" - } - ] - }, - { - "include": "#definition" - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - "definition": { - "patterns": [ - { - "name": "binding.fsharp", - "begin": "\\b(let mutable|static let mutable|static let|let inline|let|and|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\s*((with\\b)|(=|\\n+=|(?<=\\=)))", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "support.function.attribute.fsharp" - }, - "4": { - "name": "storage.modifier.fsharp" - }, - "5": { - "name": "variable.fsharp" - } - }, - "endCaptures": { - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\s*(=)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\s*(=|\\n+=|(?<=\\=))", - "beginCaptures": { - "4": { - "name": "variable.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\n$", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "support.function.attribute.fsharp" - }, - "4": { - "name": "storage.modifier.fsharp" - }, - "5": { - "name": "variable.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "\\b(new)\\b\\s+(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - } - ] - }, - "du_declaration": { - "patterns": [ - { - "name": "du_declaration.fsharp", - "begin": "\\b(of)\\b", - "end": "$|(\\|)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)", - "captures": { - "1": { - "name": "variable.parameter.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#anonymous_record_declaration" - }, - { - "include": "#keywords" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "storage.modifier", - "match": "\\b(private|public|internal)\\b" - }, - { - "name": "keyword.fsharp", - "match": "\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b" - }, - { - "name": "keyword.control", - "match": "\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b" - }, - { - "name": "keyword.symbol.arrow.fsharp", - "match": "(\\->|\\<\\-)" - }, - { - "name": "keyword.symbol.fsharp", - "match": "(&&&|\\|\\|\\||\\^\\^\\^|~~~|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)" - } - ] - }, - "modules": { - "patterns": [ - { - "name": "entity.name.section.fsharp", - "begin": "\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)", - "end": "(\\s?=|\\s|$)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "storage.modifier.fsharp" - }, - "4": { - "name": "entity.name.section.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "name": "entity.name.section.fsharp", - "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)", - "captures": { - "1": { - "name": "punctuation.separator.namespace-reference.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - } - } - ] - }, - { - "name": "namespace.open.fsharp", - "begin": "\\b(open type|open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)", - "end": "(\\s|$)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - }, - "patterns": [ - { - "name": "entity.name.section.fsharp", - "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)", - "captures": { - "1": { - "name": "punctuation.separator.namespace-reference.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - } - }, - { - "include": "#comments" - } - ] - }, - { - "name": "namespace.alias.fsharp", - "begin": "^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)", - "end": "(\\s|$)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "entity.name.type.namespace.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "entity.name.section.fsharp" - } - }, - "patterns": [ - { - "name": "entity.name.section.fsharp", - "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)", - "captures": { - "1": { - "name": "punctuation.separator.namespace-reference.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - } - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.literal.fsharp", - "begin": "(?=[^\\\\])(@\")", - "end": "(\")(?!\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.fsharp" - } - }, - "patterns": [ - { - "name": "constant.character.string.escape.fsharp", - "match": "\"(\")" - } - ] - }, - { - "name": "string.quoted.triple.fsharp", - "begin": "(?=[^\\\\])(\"\"\")", - "end": "(\"\"\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.fsharp" - } - }, - "patterns": [ - { - "include": "#string_formatter" - } - ] - }, - { - "name": "string.quoted.double.fsharp", - "begin": "(?=[^\\\\])(\")", - "end": "(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.fsharp" - } - }, - "patterns": [ - { - "name": "punctuation.separator.string.ignore-eol.fsharp", - "match": "\\\\$[ \\t]*" - }, - { - "name": "constant.character.string.escape.fsharp", - "match": "\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))" - }, - { - "name": "invalid.illegal.character.string.fsharp", - "match": "\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])" - }, - { - "include": "#string_formatter" - } - ] - } - ] - }, - "string_formatter": { - "patterns": [ - { - "name": "entity.name.type.format.specifier.fsharp", - "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))", - "captures": { - "1": { - "name": "keyword.format.specifier.fsharp" - } - } - } - ] - }, - "variables": { - "patterns": [ - { - "name": "keyword.symbol.fsharp", - "match": "\\(\\)" - }, - { - "match": "(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - } - } - } - ] - }, - "common_declaration": { - "patterns": [ - { - "begin": "\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "([[:alpha:]0-9'`^._ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - { - "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", - "captures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#anonymous_record_declaration" - }, - { - "begin": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "keyword.symbol.fsharp" - }, - "5": { - "name": "entity.name.type.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "([[:alpha:]0-9'`^._ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - } - ] - }, - "member_declaration": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#common_declaration" - }, - { - "comments": "SRTP syntax support", - "begin": "(:)\\s*(\\()\\s*(static member|member)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(\\))\\s*((?=,)|(?=\\=))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.fsharp", - "match": "\\b(and|when|or)\\b" - }, - { - "name": "keyword.symbol.fsharp", - "match": "(\\(|\\))" - }, - { - "match": "(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - "double_tick": { - "patterns": [ - { - "name": "variable.other.binding.fsharp", - "match": "(``)([^`]*)(``)", - "captures": { - "1": { - "name": "string.quoted.single.fsharp" - }, - "2": { - "name": "variable.other.binding.fsharp" - }, - "3": { - "name": "string.quoted.single.fsharp" - } - } - } - ] - }, - "records": { - "patterns": [ - { - "name": "record.fsharp", - "begin": "\\b(type)[\\s]+(private|internal|public)?\\s*", - "end": "\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "storage.modifier.fsharp" - } - }, - "endCaptures": { - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "keyword.fsharp" - }, - "4": { - "name": "keyword.fsharp" - }, - "5": { - "name": "variable.parameter.fsharp" - }, - "6": { - "name": "keyword.symbol.fsharp" - }, - "7": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attributes" - }, - { - "match": "([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(<)", - "end": "((?<!:)>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.fsharp", - "match": "\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b" - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(static member|member|new)", - "captures": { - "1": { - "name": "keyword.fsharp" - } - } - }, - { - "include": "#common_binding_definition" - } - ] - }, - { - "match": "([\\w0-9'`^._]+)", - "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - { - "match": "\\s*(private|internal|public)", - "captures": { - "1": { - "name": "storage.modifier.fsharp" - } - } - }, - { - "begin": "(\\()", - "end": "\\s*(?=(=)|[\\n=]|(\\(\\))|(as))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "include": "#keywords" - } - ] - } - ] - }, - "record_declaration": { - "patterns": [ - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?<!:):(?!:))\\s*", - "beginCaptures": { - "3": { - "name": "keyword.fsharp" - }, - "4": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "$|(;|\\})", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - { - "include": "#compiler_directives" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#chars" - }, - { - "include": "#double_tick" - }, - { - "include": "#definition" - }, - { - "include": "#attributes" - }, - { - "include": "#anonymous_functions" - }, - { - "include": "#keywords" - }, - { - "include": "#cexprs" - }, - { - "include": "#text" - } - ] - } - ] - }, - "cexprs": { - "patterns": [ - { - "name": "cexpr.fsharp", - "match": "\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)", - "captures": { - "0": { - "name": "keyword.fsharp" - } - } - } - ] - }, - "chars": { - "patterns": [ - { - "name": "char.fsharp", - "match": "('\\\\?.')", - "captures": { - "1": { - "name": "string.quoted.single.fsharp" - } - } - } - ] - }, - "text": { - "patterns": [ - { - "name": "text.fsharp", - "match": "\\\\" - } - ] - }, - "compiler_directives": { - "patterns": [ - { - "name": "keyword.control.directive.fsharp", - "match": "\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)", - "captures": {} - } - ] - } - } -} diff --git a/lib/grammars/gdresource.tmLanguage.json b/lib/grammars/gdresource.tmLanguage.json deleted file mode 100644 index b4690f4..0000000 --- a/lib/grammars/gdresource.tmLanguage.json +++ /dev/null @@ -1,326 +0,0 @@ -{ - "scopeName": "source.gdresource", - "uuid": "e076faa2-3c52-42fa-a8e6-9a7c453c1a5b", - "patterns": [ - { - "include": "#embedded_shader" - }, - { - "include": "#embedded_gdscript" - }, - { - "include": "#comment" - }, - { - "include": "#heading" - }, - { - "include": "#key_value" - } - ], - "repository": { - "comment": { - "captures": { - "1": { - "name": "punctuation.definition.comment.gdresource" - } - }, - "match": "(;).*$\\n?", - "name": "comment.line.gdresource" - }, - "embedded_shader": { - "name": "meta.embedded.block.gdshader", - "begin": "(code) = \"", - "end": "\"", - "beginCaptures": { - "1": { - "name": "variable.other.property.gdresource" - } - }, - "patterns": [ - { - "include": "source.gdshader" - } - ] - }, - "embedded_gdscript": { - "comment": "meta.embedded.block.gdscript", - "begin": "(script/source) = \"", - "end": "\"", - "beginCaptures": { - "1": { - "name": "variable.other.property.gdresource" - } - }, - "patterns": [ - { - "include": "source.gdscript" - } - ] - }, - "heading": { - "begin": "\\[([a-z_]*)\\s?", - "beginCaptures": { - "1": { - "name": "keyword.control.gdresource" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#heading_properties" - }, - { - "include": "#data" - } - ] - }, - "heading_properties": { - "patterns": [ - { - "name": "invalid.deprecated.noValue.gdresource", - "match": "(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)" - }, - { - "begin": "\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*", - "beginCaptures": { - "1": { - "name": "variable.other.property.gdresource" - }, - "2": { - "name": "punctuation.definition.keyValue.gdresource" - } - }, - "end": "($|(?==)|\\,?|\\s*(?=\\}))", - "patterns": [ - { - "include": "#data" - } - ] - } - ] - }, - "key_value": { - "patterns": [ - { - "name": "invalid.deprecated.noValue.gdresource", - "match": "(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)" - }, - { - "begin": "\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*", - "beginCaptures": { - "1": { - "name": "variable.other.property.gdresource" - }, - "2": { - "name": "punctuation.definition.keyValue.gdresource" - } - }, - "end": "($|(?==)|\\,|\\s*(?=\\}))", - "patterns": [ - { - "include": "#data" - } - ] - } - ] - }, - "data": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<!\\w)(\\{)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.table.inline.gdresource" - } - }, - "end": "\\s*(\\})(?!\\w)", - "endCaptures": { - "1": { - "name": "punctuation.definition.table.inline.gdresource" - } - }, - "patterns": [ - { - "include": "#key_value" - }, - { - "include": "#data" - } - ] - }, - { - "begin": "(?<!\\w)(\\[)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.array.gdresource" - } - }, - "end": "\\s*(\\])(?!\\w)", - "endCaptures": { - "1": { - "name": "punctuation.definition.array.gdresource" - } - }, - "patterns": [ - { - "include": "#data" - } - ] - }, - { - "name": "string.quoted.triple.basic.block.gdresource", - "begin": "\"\"\"", - "end": "\"\"\"", - "patterns": [ - { - "match": "\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape.gdresource" - }, - { - "match": "\\\\[^btnfr/\"\\\\\\n]", - "name": "invalid.illegal.escape.gdresource" - } - ] - }, - { - "name": "support.function.any-method.gdresource", - "match": "\"res:\\/\\/[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" - }, - { - "name": "support.class.library.gdresource", - "match": "(?<=type=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" - }, - { - "name": "constant.character.escape.gdresource", - "match": "(?<=NodePath\\(|parent=|name=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" - }, - { - "name": "string.quoted.double.basic.line.gdresource", - "match": "\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"", - "patterns": [ - { - "match": "\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape.gdresource" - }, - { - "match": "\\\\[^btnfr/\"\\\\\\n]", - "name": "invalid.illegal.escape.gdresource" - } - ] - }, - { - "name": "invalid.illegal.escape.gdresource", - "begin": "'''", - "end": "'''" - }, - { - "name": "string.quoted.single.literal.line.gdresource", - "match": "'.*?'" - }, - { - "match": "(?<!\\w)(true|false)(?!\\w)", - "captures": { - "1": { - "name": "constant.language.gdresource" - } - } - }, - { - "match": "(?<!\\w)([\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\\+\\-]?[1-9]_?[0-9]*|(?:\\.[0-9_]*)))(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.float.gdresource" - } - } - }, - { - "match": "(?<!\\w)((?:[\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))))(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.integer.gdresource" - } - } - }, - { - "match": "(?<!\\w)([\\+\\-]?inf)(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.inf.gdresource" - } - } - }, - { - "match": "(?<!\\w)([\\+\\-]?nan)(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.nan.gdresource" - } - } - }, - { - "match": "(?<!\\w)((?:0x(([0-9a-fA-F](([0-9a-fA-F]|_[0-9a-fA-F])+)?))))(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.hex.gdresource" - } - } - }, - { - "match": "(?<!\\w)(0o[0-7](_?[0-7])*)(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.oct.gdresource" - } - } - }, - { - "match": "(?<!\\w)(0b[01](_?[01])*)(?!\\w)", - "captures": { - "1": { - "name": "constant.numeric.bin.gdresource" - } - } - }, - { - "begin": "(?<!\\w)(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\()\\s?", - "beginCaptures": { - "1": { - "name": "support.class.library.gdresource" - } - }, - "end": "\\s?(\\))", - "patterns": [ - { - "include": "#key_value" - }, - { - "include": "#data" - } - ] - }, - { - "begin": "(?<!\\w)(ExtResource|SubResource)(\\()\\s?", - "beginCaptures": { - "1": { - "name": "keyword.control.gdresource" - } - }, - "end": "\\s?(\\))", - "patterns": [ - { - "include": "#key_value" - }, - { - "include": "#data" - } - ] - } - ] - } - }, - "name": "gdresource" -} diff --git a/lib/grammars/gdscript.tmLanguage.json b/lib/grammars/gdscript.tmLanguage.json deleted file mode 100644 index 4a4d6d2..0000000 --- a/lib/grammars/gdscript.tmLanguage.json +++ /dev/null @@ -1,883 +0,0 @@ -{ - "fileTypes": ["gd"], - "scopeName": "source.gdscript", - "name": "gdscript", - "patterns": [ - { - "include": "#nodepath_object" - }, - { - "include": "#nodepath_function" - }, - { - "include": "#base_expression" - }, - { - "include": "#logic_op" - }, - { - "include": "#in_keyword" - }, - { - "include": "#getter_setter_godot4" - }, - { - "include": "#compare_op" - }, - { - "include": "#arithmetic_op" - }, - { - "include": "#assignment_op" - }, - { - "include": "#lambda_declaration" - }, - { - "include": "#control_flow" - }, - { - "include": "#annotations" - }, - { - "include": "#keywords" - }, - { - "include": "#self" - }, - { - "include": "#class_definition" - }, - { - "include": "#variable_definition" - }, - { - "include": "#class_name" - }, - { - "include": "#builtin_func" - }, - { - "include": "#builtin_get_node_shorthand" - }, - { - "include": "#builtin_classes" - }, - { - "include": "#const_vars" - }, - { - "include": "#pascal_case_class" - }, - { - "include": "#class_new" - }, - { - "include": "#class_is" - }, - { - "include": "#class_enum" - }, - { - "include": "#signal_declaration_bare" - }, - { - "include": "#signal_declaration" - }, - { - "include": "#function_declaration" - }, - { - "include": "#function_keyword" - }, - { - "include": "#any_method" - }, - { - "include": "#any_property" - }, - { - "include": "#extends" - } - ], - "repository": { - "comment": { - "captures": { - "1": { - "name": "punctuation.definition.comment.number-sign.gdscript" - } - }, - "match": "(#).*$\\n?", - "name": "comment.line.number-sign.gdscript" - }, - "strings": { - "patterns": [ - { - "begin": "(?:(?<=get_node|has_node|find_node|get_node_or_null|NodePath)\\s*\\(\\s*)", - "end": "(?:\\s*\\))", - "patterns": [ - { - "begin": "[\"']", - "end": "[\"']", - "name": "constant.character.escape" - }, - { - "include": "#base_expression" - } - ] - }, - { - "name": "invalid.illegal.escape.gdscript", - "begin": "'''", - "end": "'''" - }, - { - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.untitled", - "match": "\\\\." - } - ], - "name": "string.quoted.double.gdscript" - }, - { - "begin": "'", - "end": "'", - "patterns": [ - { - "name": "constant.character.escape.untitled", - "match": "\\\\." - } - ], - "name": "string.quoted.single.gdscript" - }, - { - "begin": "@\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.untitled", - "match": "\\." - } - ], - "name": "string.nodepath.gdscript" - } - ] - }, - "nodepath_object": { - "name": "meta.literal.nodepath.gdscript", - "begin": "(NodePath)\\s*(?:\\()", - "beginCaptures": { - "1": { - "name": "support.class.library.gdscript" - } - }, - "end": "(?:\\))", - "patterns": [ - { - "begin": "[\"']", - "end": "[\"']", - "name": "constant.character.escape", - "patterns": [ - { - "match": "%", - "name": "keyword.control.flow" - } - ] - } - ] - }, - "nodepath_function": { - "name": "meta.literal.nodepath.gdscript", - "begin": "(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(?:\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.gdscript" - } - }, - "end": "(?:\\))", - "patterns": [ - { - "begin": "[\"']", - "end": "[\"']", - "name": "constant.character.escape", - "patterns": [ - { - "match": "%", - "name": "keyword.control.flow" - } - ] - } - ] - }, - "self": { - "match": "\\bself\\b", - "name": "variable.language.gdscript" - }, - "base_expression": { - "patterns": [ - { - "include": "#builtin_get_node_shorthand" - }, - { - "include": "#nodepath_object" - }, - { - "include": "#nodepath_function" - }, - { - "include": "#strings" - }, - { - "include": "#keywords" - }, - { - "include": "#logic_op" - }, - { - "include": "#lambda_declaration" - }, - { - "include": "#in_keyword" - }, - { - "include": "#control_flow" - }, - { - "include": "#function_call" - }, - { - "include": "#comment" - }, - { - "include": "#self" - }, - { - "include": "#letter" - }, - { - "include": "#numbers" - }, - { - "include": "#builtin_func" - }, - { - "include": "#builtin_classes" - }, - { - "include": "#const_vars" - }, - { - "include": "#pascal_case_class" - }, - { - "include": "#line_continuation" - } - ] - }, - "logic_op": { - "match": "\\b(and|or|not)\\b", - "name": "keyword.operator.wordlike.gdscript" - }, - "in_keyword": { - "patterns": [ - { - "match": "\\b(for)\\s+[a-zA-Z_]\\w*\\s+(in)\\b", - "captures": { - "1": { - "name": "keyword.control.gdscript" - }, - "2": { - "name": "keyword.control.gdscript" - } - } - }, - { - "match": "\\bin\\b", - "name": "keyword.operator.wordlike.gdscript" - } - ] - }, - "compare_op": { - "match": "<=|>=|==|<|>|!=", - "name": "keyword.operator.comparison.gdscript" - }, - "arithmetic_op": { - "match": "\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~", - "name": "keyword.operator.arithmetic.gdscript" - }, - "assignment_op": { - "match": "=", - "name": "keyword.operator.assignment.gdscript" - }, - "control_flow": { - "match": "\\b(?i:if|elif|else|for|while|break|continue|pass|return|match|yield|await)\\b", - "name": "keyword.control.gdscript" - }, - "keywords": { - "match": "\\b(?i:class|class_name|extends|is|onready|tool|static|export|as|void|enum|preload|assert|breakpoint|rpc|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b", - "name": "keyword.language.gdscript" - }, - "letter": { - "match": "\\b(?i:true|false|null)\\b", - "name": "constant.language.gdscript" - }, - "numbers": { - "patterns": [ - { - "match": "\\b(?i:0x\\h*)\\b", - "name": "constant.numeric.integer.hexadecimal.gdscript" - }, - { - "match": "\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))\\b", - "name": "constant.numeric.float.gdscript" - }, - { - "match": "\\b(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))\\b", - "name": "constant.numeric.float.gdscript" - }, - { - "match": "\\b(?i:(\\d+e[\\-\\+]?\\d+))\\b", - "name": "constant.numeric.float.gdscript" - }, - { - "match": "\\b\\d+\\b", - "name": "constant.numeric.integer.gdscript" - } - ] - }, - "variable_definition": { - "begin": "\\b(?:(var)|(const))\\s+", - "end": "$|;", - "beginCaptures": { - "1": { - "name": "storage.type.var.gdscript" - }, - "2": { - "name": "storage.type.const.gdscript" - } - }, - "patterns": [ - { - "match": "(:)\\s*([a-zA-Z_]\\w*)?", - "captures": { - "1": { - "name": "punctuation.separator.annotation.gdscript" - }, - "2": { - "name": "entity.name.type.class.gdscript" - } - } - }, - { - "match": "=(?!=)", - "name": "keyword.operator.assignment.gdscript" - }, - { - "match": "(setget)\\s+([a-zA-Z_]\\w*)(?:[,]\\s*([a-zA-Z_]\\w*))?", - "captures": { - "1": { - "name": "storage.type.const.gdscript" - }, - "2": { - "name": "entity.name.function.gdscript" - }, - "3": { - "name": "entity.name.function.gdscript" - } - } - }, - { - "include": "#base_expression" - } - ] - }, - "getter_setter_godot4": { - "patterns": [ - { - "match": "\\b(get):", - "captures": { - "1": { - "name": "entity.name.function.gdscript" - } - } - }, - { - "name": "meta.function.gdscript", - "begin": "(?x) \\s+\n (set) \\s*\n (?=\\()", - "end": "(:|(?=[#'\"\\n]))", - "beginCaptures": { - "1": { - "name": "entity.name.function.gdscript" - } - }, - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#line_continuation" - }, - { - "match": "\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:", - "captures": { - "1": {}, - "2": { - "name": "entity.name.type.class.gdscript" - } - } - } - ] - } - ] - }, - "class_definition": { - "captures": { - "1": { - "name": "entity.name.type.class.gdscript" - }, - "2": { - "name": "class.other.gdscript" - } - }, - "match": "(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)" - }, - "class_new": { - "captures": { - "1": { - "name": "entity.name.type.class.gdscript" - }, - "2": { - "name": "storage.type.new.gdscript" - } - }, - "match": "\\b([a-zA-Z_]\\w*).(new)\\(" - }, - "class_is": { - "captures": { - "1": { - "name": "storage.type.is.gdscript" - }, - "2": { - "name": "entity.name.type.class.gdscript" - } - }, - "match": "\\s+(is)\\s+([a-zA-Z_]\\w*)" - }, - "class_enum": { - "captures": { - "1": { - "name": "entity.name.type.class.gdscript" - }, - "2": { - "name": "constant.language.gdscript" - } - }, - "match": "\\b([A-Z][a-zA-Z_0-9]*)\\.([A-Z_0-9]+)" - }, - "class_name": { - "captures": { - "1": { - "name": "entity.name.type.class.gdscript" - }, - "2": { - "name": "class.other.gdscript" - } - }, - "match": "(?<=class_name)\\s+([a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?)" - }, - "extends": { - "match": "(?<=extends)\\s+[a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?", - "name": "entity.other.inherited-class.gdscript" - }, - "builtin_func": { - "match": "(?<![^.]\\.|:)\\b(abs|absf|absi|acos|asin|assert|atan|atan2|bytes2var|bytes2var_with_objects|ceil|char|clamp|clampf|clampi|Color8|convert|cos|cosh|cubic_interpolate|db2linear|decimals|dectime|deg2rad|dict2inst|ease|error_string|exp|floor|fmod|fposmod|funcref|get_stack|hash|inst2dict|instance_from_id|inverse_lerp|is_equal_approx|is_inf|is_instance_id_valid|is_instance_valid|is_nan|is_zero_approx|len|lerp|lerp_angle|linear2db|load|log|max|maxf|maxi|min|minf|mini|move_toward|nearest_po2|pingpong|posmod|pow|preload|print|printerr|printraw|prints|printt|print_debug|print_stack|print_verbose|push_error|push_warning|rad2deg|randf|randfn|randf_range|randi|randi_range|randomize|rand_from_seed|rand_range|rand_seed|range|range_lerp|range_step_decimals|rid_allocate_id|rid_from_int64|round|seed|sign|signf|signi|sin|sinh|smoothstep|snapped|sqrt|stepify|step_decimals|str|str2var|tan|tanh|typeof|type_exists|var2bytes|var2bytes_with_objects|var2str|weakref|wrapf|wrapi|yield)\\b(?=(\\()([^)]*)(\\)))", - "name": "support.function.builtin.gdscript" - }, - "builtin_get_node_shorthand": { - "patterns": [ - { - "include": "#builtin_get_node_shorthand_quoted" - }, - { - "include": "#builtin_get_node_shorthand_bare" - } - ] - }, - "builtin_get_node_shorthand_quoted": { - "begin": "(\\$)([\"'])", - "end": "([\"'])", - "name": "support.function.builtin.shorthand.gdscript", - "beginCaptures": { - "1": { - "name": "keyword.control.flow" - }, - "2": { - "name": "constant.character.escape" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.escape" - } - }, - "patterns": [ - { - "match": "%", - "name": "keyword.control.flow" - }, - { - "match": "[^%^\"^']*", - "name": "constant.character.escape" - } - ] - }, - "builtin_get_node_shorthand_bare": { - "begin": "(\\$)", - "end": "[^\\w%]", - "name": "support.function.builtin.shorthand.gdscript", - "beginCaptures": { - "1": { - "name": "keyword.control.flow" - } - }, - "patterns": [ - { - "match": "[a-zA-Z_]\\w*/?", - "name": "constant.character.escape" - }, - { - "match": "%[a-zA-Z_]\\w*/?", - "name": "invalid.illegal.escape.gdscript" - } - ] - }, - "annotations": { - "match": "(@)(export|export_color_no_alpha|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|icon|onready|rpc|tool|warning_ignore)\\b", - "captures": { - "1": { - "name": "entity.name.function.decorator.gdscript" - }, - "2": { - "name": "entity.name.function.decorator.gdscript" - } - } - }, - "builtin_classes": { - "match": "(?<![^.]\\.|:)\\b(OS|GDScript|Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray|super)\\b", - "name": "support.class.library.gdscript" - }, - "const_vars": { - "match": "\\b([A-Z_][A-Z_0-9]*)\\b", - "name": "constant.language.gdscript" - }, - "pascal_case_class": { - "match": "\\b([A-Z][a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b", - "name": "support.class.library.gdscript" - }, - "signal_declaration_bare": { - "match": "(?x) \\s*\n (signal) \\s+\n ([a-zA-Z_]\\w*)(?=[\\n\\s])", - "captures": { - "1": { - "name": "storage.type.function.gdscript" - }, - "2": { - "name": "entity.name.function.gdscript" - } - } - }, - "signal_declaration": { - "name": "meta.signal.gdscript", - "begin": "(?x) \\s*\n (signal) \\s+\n ([a-zA-Z_]\\w*) \\s*\n (?=\\()", - "end": "((?=[#'\"\\n]))", - "beginCaptures": { - "1": { - "name": "storage.type.function.gdscript" - }, - "2": { - "name": "entity.name.function.gdscript" - } - }, - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#line_continuation" - }, - { - "match": "\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:", - "captures": { - "1": {}, - "2": { - "name": "entity.name.type.class.gdscript" - } - } - } - ] - }, - "lambda_declaration": { - "name": "meta.function.gdscript", - "begin": "(func)(?=\\()", - "end": "(:|(?=[#'\"\\n]))", - "beginCaptures": { - "1": { - "name": "storage.type.function.gdscript" - }, - "2": { - "name": "entity.name.function.gdscript" - } - }, - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#line_continuation" - } - ] - }, - "function_declaration": { - "name": "meta.function.gdscript", - "begin": "(?x) \\s*\n (func) \\s+\n ([a-zA-Z_]\\w*) \\s*\n (?=\\()", - "end": "((:)|(?=[#'\"\\n]))", - "beginCaptures": { - "1": { - "name": "storage.type.function.gdscript" - }, - "2": { - "name": "entity.name.function.gdscript" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.function.begin.gdscript" - } - }, - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#line_continuation" - }, - { - "match": "\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:", - "captures": { - "1": {}, - "2": { - "name": "entity.name.type.class.gdscript" - } - } - }, - { - "include": "#base_expression" - } - ] - }, - "function_keyword": { - "match": "func", - "name": "keyword.language.gdscript" - }, - "parameters": { - "name": "meta.function.parameters.gdscript", - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.gdscript" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.gdscript" - } - }, - "patterns": [ - { - "include": "#annotated_parameter" - }, - { - "match": "(?x)\n ([a-zA-Z_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", - "captures": { - "1": { - "name": "variable.parameter.function.language.gdscript" - }, - "2": { - "name": "punctuation.separator.parameters.gdscript" - } - } - }, - { - "include": "#comment" - }, - { - "include": "#loose_default" - } - ] - }, - "loose_default": { - "begin": "(=)", - "end": "(,)|(?=\\))", - "beginCaptures": { - "1": { - "name": "keyword.operator.gdscript" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.gdscript" - } - }, - "patterns": [ - { - "include": "#base_expression" - } - ] - }, - "annotated_parameter": { - "begin": "(?x)\n \\b\n ([a-zA-Z_]\\w*) \\s* (:)\n", - "end": "(,)|(?=\\))", - "beginCaptures": { - "1": { - "name": "variable.parameter.function.language.gdscript" - }, - "2": { - "name": "punctuation.separator.annotation.gdscript" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.gdscript" - } - }, - "patterns": [ - { - "include": "#base_expression" - }, - { - "name": "keyword.operator.assignment.gdscript", - "match": "=(?!=)" - } - ] - }, - "line_continuation": { - "patterns": [ - { - "match": "(\\\\)\\s*(\\S.*$\\n?)", - "captures": { - "1": { - "name": "punctuation.separator.continuation.line.gdscript" - }, - "2": { - "name": "invalid.illegal.line.continuation.gdscript" - } - } - }, - { - "begin": "(\\\\)\\s*$\\n?", - "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", - "beginCaptures": { - "1": { - "name": "punctuation.separator.continuation.line.gdscript" - } - }, - "patterns": [ - { - "include": "#base_expression" - } - ] - } - ] - }, - "any_method": { - "match": "\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))", - "name": "support.function.any-method.gdscript" - }, - "any_property": { - "match": "(?<=[^.]\\.)\\b([A-Za-z_]\\w*)\\b(?![(])", - "name": "variable.other.property.gdscript" - }, - "function_call": { - "name": "meta.function-call.gdscript", - "comment": "Regular function call of the type \"name(args)\"", - "begin": "(?x)\n \\b(?=\n ([a-zA-Z_]\\w*) \\s* (\\()\n )\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.gdscript" - } - }, - "patterns": [ - { - "include": "#function_name" - }, - { - "include": "#function_arguments" - } - ] - }, - "function_name": { - "patterns": [ - { - "include": "#builtin_func" - }, - { - "include": "#builtin_classes" - }, - { - "comment": "Some color schemas support meta.function-call.generic scope", - "name": "support.function.any-method.gdscript", - "match": "(?x)\n \\b ([a-zA-Z_]\\w*) \\b\n" - } - ] - }, - "function_arguments": { - "begin": "(\\()", - "end": "(?=\\))(?!\\)\\s*\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.gdscript" - } - }, - "contentName": "meta.function-call.arguments.gdscript", - "patterns": [ - { - "name": "punctuation.separator.arguments.gdscript", - "match": "(,)" - }, - { - "match": "\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)", - "captures": { - "1": { - "name": "variable.parameter.function-call.gdscript" - }, - "2": { - "name": "keyword.operator.assignment.gdscript" - } - } - }, - { - "name": "keyword.operator.assignment.gdscript", - "match": "=(?!=)" - }, - { - "include": "#base_expression" - }, - { - "match": "\\s*(\\))\\s*(\\()", - "captures": { - "1": { - "name": "punctuation.definition.arguments.end.gdscript" - }, - "2": { - "name": "punctuation.definition.arguments.begin.gdscript" - } - } - } - ] - } - } -} diff --git a/lib/grammars/gdshader.tmLanguage.json b/lib/grammars/gdshader.tmLanguage.json deleted file mode 100644 index 9221f38..0000000 --- a/lib/grammars/gdshader.tmLanguage.json +++ /dev/null @@ -1,403 +0,0 @@ -{ - "name": "gdshader", - "scopeName": "source.gdshader", - "uuid": "3a95d25d-688b-481f-a581-eee47f00e5ca", - "fileTypes": ["gdshader"], - "patterns": [ - { - "include": "#any" - } - ], - "repository": { - "any": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#enclosed" - }, - { - "include": "#classifier" - }, - { - "include": "#definition" - }, - { - "include": "#keyword" - }, - { - "include": "#element" - }, - { - "include": "#separator" - }, - { - "include": "#operator" - } - ] - }, - "comment": { - "patterns": [ - { - "include": "#commentLine" - }, - { - "include": "#commentBlock" - } - ] - }, - "commentLine": { - "name": "comment.line.double-slash.gdshader", - "begin": "//", - "end": "$" - }, - "commentBlock": { - "name": "comment.block.gdshader", - "begin": "/\\*", - "end": "\\*/" - }, - "enclosed": { - "name": "meta.parenthesis.gdshader", - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.parenthesis.gdshader" - } - }, - "patterns": [ - { - "include": "#any" - } - ] - }, - "classifier": { - "name": "meta.classifier.gdshader", - "begin": "(?=\\b(?:shader_type|render_mode)\\b)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#keyword" - }, - { - "include": "#identifierClassification" - }, - { - "include": "#separator" - } - ], - "end": "(?<=;)" - }, - "classifierKeyword": { - "name": "keyword.language.classifier.gdshader", - "match": "\\b(?:shader_type|render_mode)\\b" - }, - "identifierClassification": { - "name": "entity.other.inherited-class.gdshader", - "match": "\\b[a-z_]+\\b" - }, - "definition": { - "patterns": [ - { - "include": "#structDefinition" - } - ] - }, - "arraySize": { - "name": "meta.array-size.gdshader", - "begin": "\\[", - "end": "\\]", - "captures": { - "0": { - "name": "punctuation.bracket.gdshader" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#keyword" - }, - { - "include": "#element" - }, - { - "include": "#separator" - } - ] - }, - "structDefinition": { - "begin": "(?=\\b(?:struct)\\b)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#keyword" - }, - { - "include": "#structName" - }, - { - "include": "#structDefinitionBlock" - }, - { - "include": "#separator" - } - ], - "end": "(?<=;)" - }, - "structKeyword": { - "name": "keyword.other.struct.gdshader", - "match": "\\b(?:struct)\\b" - }, - "structName": { - "name": "entity.name.type.struct.gdshader", - "match": "\\b[a-zA-Z_]\\w*\\b" - }, - "structDefinitionBlock": { - "name": "meta.definition.block.struct.gdshader", - "begin": "\\{", - "end": "\\}", - "captures": { - "0": { - "name": "punctuation.definition.block.struct.gdshader" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#precisionKeyword" - }, - { - "include": "#fieldDefinition" - }, - { - "include": "#keyword" - }, - { - "include": "#any" - } - ] - }, - "fieldDefinition": { - "name": "meta.definition.field.gdshader", - "begin": "\\b[a-zA-Z_]\\w*\\b", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#typeKeyword" - }, - { - "match": ".+", - "name": "entity.name.type.gdshader" - } - ] - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#keyword" - }, - { - "include": "#arraySize" - }, - { - "include": "#fieldName" - }, - { - "include": "#any" - } - ], - "end": "(?<=;)" - }, - "fieldName": { - "name": "entity.name.variable.field.gdshader", - "match": "\\b[a-zA-Z_]\\w*\\b" - }, - "keyword": { - "patterns": [ - { - "include": "#classifierKeyword" - }, - { - "include": "#structKeyword" - }, - { - "include": "#controlKeyword" - }, - { - "include": "#modifierKeyword" - }, - { - "include": "#precisionKeyword" - }, - { - "include": "#typeKeyword" - }, - { - "include": "#hintKeyword" - } - ] - }, - "controlKeyword": { - "name": "keyword.control.gdshader", - "match": "\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\b" - }, - "modifierKeyword": { - "name": "storage.modifier.gdshader", - "match": "\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\b" - }, - "precisionKeyword": { - "name": "storage.type.built-in.primitive.precision.gdshader", - "match": "\\b(?:low|medium|high)p\\b" - }, - "typeKeyword": { - "name": "support.type.gdshader", - "match": "\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b" - }, - "hintKeyword": { - "name": "support.type.annotation.gdshader", - "match": "\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\b" - }, - "element": { - "patterns": [ - { - "include": "#literalFloat" - }, - { - "include": "#literalInt" - }, - { - "include": "#literalBool" - }, - { - "include": "#identifierType" - }, - { - "include": "#constructor" - }, - { - "include": "#processorFunction" - }, - { - "include": "#identifierFunction" - }, - { - "include": "#swizzling" - }, - { - "include": "#identifierField" - }, - { - "include": "#constantFloat" - }, - { - "include": "#languageVariable" - }, - { - "include": "#identifierVariable" - } - ] - }, - "literalFloat": { - "name": "constant.numeric.float.gdshader", - "match": "\\b(?:\\d+[eE][-+]?\\d+|(?:\\d*[.]\\d+|\\d+[.])(?:[eE][-+]?\\d+)?)[fF]?" - }, - "literalInt": { - "name": "constant.numeric.integer.gdshader", - "match": "\\b(?:0[xX][0-9A-Fa-f]+|\\d+[uU]?)\\b" - }, - "literalBool": { - "name": "constant.language.boolean.gdshader", - "match": "\\b(?:false|true)\\b" - }, - "identifierType": { - "name": "entity.name.type.gdshader", - "match": "\\b[a-zA-Z_]\\w*(?=(?:\\s*\\[\\s*\\w*\\s*\\])?\\s+[a-zA-Z_]\\w*\\b)" - }, - "constructor": { - "name": "entity.name.type.constructor.gdshader", - "match": "\\b[a-zA-Z_]\\w*(?=\\s*\\[\\s*\\w*\\s*\\]\\s*[(])|\\b[A-Z]\\w*(?=\\s*[(])" - }, - "processorFunction": { - "name": "support.function.gdshader", - "match": "\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])" - }, - "identifierFunction": { - "name": "entity.name.function.gdshader", - "match": "\\b[a-zA-Z_]\\w*(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])" - }, - "swizzling": { - "match": "([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b", - "captures": { - "1": { - "name": "punctuation.accessor.gdshader" - }, - "2": { - "name": "variable.other.property.gdshader" - } - } - }, - "identifierField": { - "match": "([.])\\s*([a-zA-Z_]\\w*)\\b(?!\\s*\\()", - "captures": { - "1": { - "name": "punctuation.accessor.gdshader" - }, - "2": { - "name": "entity.name.variable.field.gdshader" - } - } - }, - "constantFloat": { - "name": "constant.language.float.gdshader", - "match": "\\b(?:E|PI|TAU)\\b" - }, - "languageVariable": { - "name": "variable.language.gdshader", - "match": "\\b(?:[A-Z][A-Z_0-9]*)\\b" - }, - "identifierVariable": { - "name": "variable.name.gdshader", - "match": "\\b[a-zA-Z_]\\w*\\b" - }, - "separator": { - "patterns": [ - { - "match": "[.]", - "name": "punctuation.accessor.gdshader" - }, - { - "include": "#separatorComma" - }, - { - "match": "[;]", - "name": "punctuation.terminator.statement.gdshader" - }, - { - "match": "[:]", - "name": "keyword.operator.type.annotation.gdshader" - } - ] - }, - "separatorComma": { - "name": "punctuation.separator.comma.gdshader", - "match": "[,]" - }, - "operator": { - "name": "keyword.operator.gdshader", - "match": "\\<\\<\\=?|\\>\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]" - } - } -} diff --git a/lib/grammars/gherkin.tmLanguage.json b/lib/grammars/gherkin.tmLanguage.json deleted file mode 100644 index 3b33010..0000000 --- a/lib/grammars/gherkin.tmLanguage.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "fileTypes": ["feature"], - "firstLineMatch": "기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)", - "foldingStartMarker": "^\\s*\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)", - "foldingStopMarker": "^\\s*$", - "keyEquivalent": "^~C", - "name": "gherkin", - "patterns": [ - { - "include": "#feature_element_keyword" - }, - { - "include": "#feature_keyword" - }, - { - "include": "#step_keyword" - }, - { - "include": "#strings_triple_quote" - }, - { - "include": "#strings_single_quote" - }, - { - "include": "#strings_double_quote" - }, - { - "include": "#comments" - }, - { - "include": "#tags" - }, - { - "include": "#scenario_outline_variable" - }, - { - "include": "#table" - } - ], - "repository": { - "comments": { - "captures": { - "0": { - "name": "comment.line.number-sign" - } - }, - "match": "^\\s*(#.*)" - }, - "table": { - "begin": "^\\s*\\|", - "end": "\\|\\s*$", - "name": "keyword.control.cucumber.table", - "patterns": [ - { - "match": "\\w", - "name": "source" - } - ] - }, - "feature_keyword": { - "captures": { - "1": { - "name": "keyword.language.gherkin.feature" - }, - "2": { - "name": "string.language.gherkin.feature.title" - } - }, - "match": "^\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\b" - }, - "step_keyword": { - "captures": { - "1": { - "name": "keyword.language.gherkin.feature.step" - } - }, - "match": "^\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\* )" - }, - "feature_element_keyword": { - "captures": { - "1": { - "name": "keyword.language.gherkin.feature.scenario" - }, - "2": { - "name": "string.language.gherkin.scenario.title.title" - } - }, - "match": "^\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)" - }, - "scenario_outline_variable": { - "match": "<[a-zA-Z0-9 _-]*>", - "name": "variable.other" - }, - "strings_double_quote": { - "begin": "(?<![a-zA-Z0-9'])\"", - "end": "\"(?![a-zA-Z0-9'])", - "name": "string.quoted.double", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.untitled" - } - ] - }, - "strings_single_quote": { - "begin": "(?<![a-zA-Z0-9\"])'", - "end": "'(?![a-zA-Z0-9\"])", - "name": "string.quoted.single", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape" - } - ] - }, - "strings_triple_quote": { - "begin": "\"\"\".*", - "end": "\"\"\"", - "name": "string.quoted.single" - }, - "tags": { - "captures": { - "0": { - "name": "entity.name.type.class.tsx" - } - }, - "match": "(@[^@\\r\\n\\t ]+)" - } - }, - "scopeName": "text.gherkin.feature", - "uuid": "85E2C52C-9B16-4A54-81E7-6D8D3ADAEFA8" -} diff --git a/lib/grammars/git-commit.tmLanguage.json b/lib/grammars/git-commit.tmLanguage.json deleted file mode 100644 index f619774..0000000 --- a/lib/grammars/git-commit.tmLanguage.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/walles/git-commit-message-plus/blob/master/syntaxes/git-commit.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/walles/git-commit-message-plus/commit/35a079dea5a91b087021b40c01a6bb4eb0337a87", - "name": "git-commit", - "scopeName": "text.git-commit", - "patterns": [ - { - "comment": "diff presented at the end of the commit message when using commit -v.", - "name": "meta.embedded.diff.git-commit", - "contentName": "source.diff", - "begin": "(?=^diff\\ \\-\\-git)", - "end": "\\z", - "patterns": [ - { - "include": "source.diff" - } - ] - }, - { - "comment": "User supplied message", - "name": "meta.scope.message.git-commit", - "begin": "^(?!#)", - "end": "^(?=#)", - "patterns": [ - { - "comment": "Mark > 50 lines as deprecated, > 72 as illegal", - "name": "meta.scope.subject.git-commit", - "match": "\\G.{0,50}(.{0,22}(.*))$", - "captures": { - "1": { - "name": "invalid.deprecated.line-too-long.git-commit" - }, - "2": { - "name": "invalid.illegal.line-too-long.git-commit" - } - } - } - ] - }, - { - "comment": "Git supplied metadata in a number of lines starting with #", - "name": "meta.scope.metadata.git-commit", - "begin": "^(?=#)", - "contentName": "comment.line.number-sign.git-commit", - "end": "^(?!#)", - "patterns": [ - { - "match": "^#\\t((modified|renamed):.*)$", - "captures": { - "1": { - "name": "markup.changed.git-commit" - } - } - }, - { - "match": "^#\\t(new file:.*)$", - "captures": { - "1": { - "name": "markup.inserted.git-commit" - } - } - }, - { - "match": "^#\\t(deleted.*)$", - "captures": { - "1": { - "name": "markup.deleted.git-commit" - } - } - }, - { - "comment": "Fallback for non-English git commit template", - "match": "^#\\t([^:]+): *(.*)$", - "captures": { - "1": { - "name": "keyword.other.file-type.git-commit" - }, - "2": { - "name": "string.unquoted.filename.git-commit" - } - } - } - ] - } - ] -} diff --git a/lib/grammars/git-rebase.tmLanguage.json b/lib/grammars/git-rebase.tmLanguage.json deleted file mode 100644 index 33e164c..0000000 --- a/lib/grammars/git-rebase.tmLanguage.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/git.tmbundle/blob/master/Syntaxes/Git%20Rebase%20Message.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/git.tmbundle/commit/5870cf3f8abad3a6637bdf69250b5d2ded427dc4", - "name": "git-rebase", - "scopeName": "text.git-rebase", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.git-rebase" - } - }, - "match": "^\\s*(#).*$\\n?", - "name": "comment.line.number-sign.git-rebase" - }, - { - "captures": { - "1": { - "name": "support.function.git-rebase" - }, - "2": { - "name": "constant.sha.git-rebase" - }, - "3": { - "name": "meta.commit-message.git-rebase" - } - }, - "match": "^\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f|drop|d)\\s+([0-9a-f]+)\\s+(.*)$", - "name": "meta.commit-command.git-rebase" - }, - { - "captures": { - "1": { - "name": "support.function.git-rebase" - }, - "2": { - "patterns": [ - { - "include": "source.shell" - } - ] - } - }, - "match": "^\\s*(exec|x)\\s+(.*)$", - "name": "meta.commit-command.git-rebase" - }, - { - "captures": { - "1": { - "name": "support.function.git-rebase" - } - }, - "match": "^\\s*(break|b)\\s*$", - "name": "meta.commit-command.git-rebase" - } - ] -} diff --git a/lib/grammars/glimmer-js.tmLanguage.json b/lib/grammars/glimmer-js.tmLanguage.json deleted file mode 100644 index 07fa21c..0000000 --- a/lib/grammars/glimmer-js.tmLanguage.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "glimmer-js", - "scopeName": "source.gjs", - "patterns": [ - { - "include": "source.js" - } - ], - "injections": { - "L:source.gjs -comment": { - "patterns": [ - { - "name": "meta.js.embeddedTemplateWithoutArgs", - "begin": "\\s*(<)(template)\\s*(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "end": "(</)(template)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "patterns": [ - { - "include": "text.html.handlebars" - } - ] - }, - { - "name": "meta.js.embeddedTemplateWithArgs", - "begin": "(<)(template)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - } - }, - "end": "(</)(template)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "patterns": [ - { - "begin": "(?<=\\<template)", - "end": "(?=\\>)", - "patterns": [ - { - "include": "text.html.handlebars#tag-stuff" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js" - } - }, - "end": "(?=</template>)", - "contentName": "meta.html.embedded.block", - "patterns": [ - { - "include": "text.html.handlebars" - } - ] - } - ] - } - ] - } - } -} diff --git a/lib/grammars/glimmer-ts.tmLanguage.json b/lib/grammars/glimmer-ts.tmLanguage.json deleted file mode 100644 index 52e0b6c..0000000 --- a/lib/grammars/glimmer-ts.tmLanguage.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "glimmer-ts", - "scopeName": "source.gts", - "patterns": [ - { - "include": "source.ts" - } - ], - "injections": { - "L:source.gts -comment": { - "patterns": [ - { - "name": "meta.js.embeddedTemplateWithoutArgs", - "begin": "\\s*(<)(template)\\s*(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "end": "(</)(template)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "patterns": [ - { - "include": "text.html.handlebars" - } - ] - }, - { - "name": "meta.js.embeddedTemplateWithArgs", - "begin": "(<)(template)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - } - }, - "end": "(</)(template)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "patterns": [ - { - "begin": "(?<=\\<template)", - "end": "(?=\\>)", - "patterns": [ - { - "include": "text.html.handlebars#tag-stuff" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js" - } - }, - "end": "(?=</template>)", - "contentName": "meta.html.embedded.block", - "patterns": [ - { - "include": "text.html.handlebars" - } - ] - } - ] - } - ] - } - } -} diff --git a/lib/grammars/glsl.tmLanguage.json b/lib/grammars/glsl.tmLanguage.json deleted file mode 100644 index d127031..0000000 --- a/lib/grammars/glsl.tmLanguage.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "fileTypes": [ - "vs", - "fs", - "gs", - "vsh", - "fsh", - "gsh", - "vshader", - "fshader", - "gshader", - "vert", - "frag", - "geom", - "f.glsl", - "v.glsl", - "g.glsl" - ], - "foldingStartMarker": "/\\*\\*|\\{\\s*$", - "foldingStopMarker": "\\*\\*/|^\\s*\\}", - "keyEquivalent": "^~G", - "name": "glsl", - "patterns": [ - { - "match": "\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\b", - "name": "keyword.control.glsl" - }, - { - "match": "\\b(void|bool|int|uint|float|vec2|vec3|vec4|bvec2|bvec3|bvec4|ivec2|ivec2|ivec3|uvec2|uvec2|uvec3|mat2|mat3|mat4|mat2x2|mat2x3|mat2x4|mat3x2|mat3x3|mat3x4|mat4x2|mat4x3|mat4x4|sampler[1|2|3]D|samplerCube|sampler2DRect|sampler[1|2]DShadow|sampler2DRectShadow|sampler[1|2]DArray|sampler[1|2]DArrayShadow|samplerBuffer|sampler2DMS|sampler2DMSArray|struct|isampler[1|2|3]D|isamplerCube|isampler2DRect|isampler[1|2]DArray|isamplerBuffer|isampler2DMS|isampler2DMSArray|usampler[1|2|3]D|usamplerCube|usampler2DRect|usampler[1|2]DArray|usamplerBuffer|usampler2DMS|usampler2DMSArray)\\b", - "name": "storage.type.glsl" - }, - { - "match": "\\b(attribute|centroid|const|flat|in|inout|invariant|noperspective|out|smooth|uniform|varying)\\b", - "name": "storage.modifier.glsl" - }, - { - "match": "\\b(gl_BackColor|gl_BackLightModelProduct|gl_BackLightProduct|gl_BackMaterial|gl_BackSecondaryColor|gl_ClipDistance|gl_ClipPlane|gl_ClipVertex|gl_Color|gl_DepthRange|gl_DepthRangeParameters|gl_EyePlaneQ|gl_EyePlaneR|gl_EyePlaneS|gl_EyePlaneT|gl_Fog|gl_FogCoord|gl_FogFragCoord|gl_FogParameters|gl_FragColor|gl_FragCoord|gl_FragDat|gl_FragDept|gl_FrontColor|gl_FrontFacing|gl_FrontLightModelProduct|gl_FrontLightProduct|gl_FrontMaterial|gl_FrontSecondaryColor|gl_InstanceID|gl_Layer|gl_LightModel|gl_LightModelParameters|gl_LightModelProducts|gl_LightProducts|gl_LightSource|gl_LightSourceParameters|gl_MaterialParameters|gl_ModelViewMatrix|gl_ModelViewMatrixInverse|gl_ModelViewMatrixInverseTranspose|gl_ModelViewMatrixTranspose|gl_ModelViewProjectionMatrix|gl_ModelViewProjectionMatrixInverse|gl_ModelViewProjectionMatrixInverseTranspose|gl_ModelViewProjectionMatrixTranspose|gl_MultiTexCoord[0-7]|gl_Normal|gl_NormalMatrix|gl_NormalScale|gl_ObjectPlaneQ|gl_ObjectPlaneR|gl_ObjectPlaneS|gl_ObjectPlaneT|gl_Point|gl_PointCoord|gl_PointParameters|gl_PointSize|gl_Position|gl_PrimitiveIDIn|gl_ProjectionMatrix|gl_ProjectionMatrixInverse|gl_ProjectionMatrixInverseTranspose|gl_ProjectionMatrixTranspose|gl_SecondaryColor|gl_TexCoord|gl_TextureEnvColor|gl_TextureMatrix|gl_TextureMatrixInverse|gl_TextureMatrixInverseTranspose|gl_TextureMatrixTranspose|gl_Vertex|gl_VertexIDh)\\b", - "name": "support.variable.glsl" - }, - { - "match": "\\b(gl_MaxClipPlanes|gl_MaxCombinedTextureImageUnits|gl_MaxDrawBuffers|gl_MaxFragmentUniformComponents|gl_MaxLights|gl_MaxTextureCoords|gl_MaxTextureImageUnits|gl_MaxTextureUnits|gl_MaxVaryingFloats|gl_MaxVertexAttribs|gl_MaxVertexTextureImageUnits|gl_MaxVertexUniformComponents)\\b", - "name": "support.constant.glsl" - }, - { - "match": "\\b(abs|acos|all|any|asin|atan|ceil|clamp|cos|cross|degrees|dFdx|dFdy|distance|dot|equal|exp|exp2|faceforward|floor|fract|ftransform|fwidth|greaterThan|greaterThanEqual|inversesqrt|length|lessThan|lessThanEqual|log|log2|matrixCompMult|max|min|mix|mod|noise[1-4]|normalize|not|notEqual|outerProduct|pow|radians|reflect|refract|shadow1D|shadow1DLod|shadow1DProj|shadow1DProjLod|shadow2D|shadow2DLod|shadow2DProj|shadow2DProjLod|sign|sin|smoothstep|sqrt|step|tan|texture1D|texture1DLod|texture1DProj|texture1DProjLod|texture2D|texture2DLod|texture2DProj|texture2DProjLod|texture3D|texture3DLod|texture3DProj|texture3DProjLod|textureCube|textureCubeLod|transpose)\\b", - "name": "support.function.glsl" - }, - { - "match": "\\b(asm|double|enum|extern|goto|inline|long|short|sizeof|static|typedef|union|unsigned|volatile)\\b", - "name": "invalid.illegal.glsl" - }, - { - "include": "source.c" - } - ], - "scopeName": "source.glsl", - "uuid": "D0FD1B52-F137-4FBA-A148-B8A893CD948C" -} diff --git a/lib/grammars/gnuplot.tmLanguage.json b/lib/grammars/gnuplot.tmLanguage.json deleted file mode 100644 index 4d5273c..0000000 --- a/lib/grammars/gnuplot.tmLanguage.json +++ /dev/null @@ -1,887 +0,0 @@ -{ - "name": "gnuplot", - "scopeName": "source.gnuplot", - "uuid": "A75AB1C2-611C-4500-9EE4-20668B5BB465", - "fileTypes": ["gp", "plt", "plot", "gnuplot"], - "patterns": [ - { - "name": "invalid.illegal.backslash.gnuplot", - "match": "(\\\\(?!\\n).*)" - }, - { - "name": "punctuation.separator.statement.gnuplot", - "match": "(;)" - }, - { - "include": "#LineComment" - }, - { - "include": "#DataBlock" - }, - { - "include": "#MacroExpansion" - }, - { - "include": "#VariableDecl" - }, - { - "include": "#ArrayDecl" - }, - { - "include": "#FunctionDecl" - }, - { - "include": "#ShellCommand" - }, - { - "include": "#Command" - } - ], - "repository": { - "DataBlock": { - "name": "meta.datablock.gnuplot", - "begin": "(?x:\n\t\t\t\t([$][A-Za-z_]\\w*)\\s* # 1: var name\n\t\t\t\t(<<)\\s* # 2: shift operator\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 3: end tag\n\t\t\t\t(?=(\\#|$)) # 4: comment or end of line\n\t\t\t)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#SpecialVariable" - } - ] - }, - "3": { - "name": "constant.language.datablock.gnuplot" - } - }, - "end": "^(\\3)\\b(.*)", - "endCaptures": { - "1": { - "name": "constant.language.datablock.gnuplot" - }, - "2": { - "name": "invalid.illegal.datablock.gnuplot" - } - }, - "patterns": [ - { - "include": "#LineComment" - }, - { - "include": "#NumberLiteral" - }, - { - "include": "#DoubleQuotedStringLiteral" - } - ] - }, - "MacroExpansion": { - "begin": "([@][A-Za-z_]\\w*)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#SpecialVariable" - } - ] - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#Expression" - } - ] - }, - "VariableDecl": { - "name": "meta.variable.gnuplot", - "begin": "\\b(?x:\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 1: var name\n\t\t\t\t(?:\n\t\t\t\t\t(\\[)\\s* # 2: opening bracket\n\t\t\t\t\t(.*)\\s* # 3: expression\n\t\t\t\t\t(\\])\\s* # 4: closing bracket\n\t\t\t\t)?\n\t\t\t\t(?=(=)(?!\\s*=)) # 5: assignment\n\t\t\t)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.gnuplot", - "patterns": [ - { - "include": "#InvalidVariableDecl" - }, - { - "include": "#BuiltinVariable" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#Expression" - } - ] - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#Expression" - } - ] - }, - "ArrayDecl": { - "name": "meta.variable.gnuplot", - "begin": "\\b(?x:\n\t\t\t\t(array)\\s+ # 1: array keyword\n\t\t\t\t([A-Za-z_]\\w*)? # 2: var name\n\t\t\t\t# Note: Handle size decl and init expression inside.\n\t\t\t\t# TODO: Properly annotate brackets.\n\t\t\t)", - "beginCaptures": { - "1": { - "name": "support.type.array.gnuplot" - }, - "2": { - "name": "entity.name.variable.gnuplot", - "patterns": [ - { - "include": "#InvalidVariableDecl" - }, - { - "include": "#BuiltinVariable" - } - ] - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#Expression" - } - ] - }, - "FunctionDecl": { - "name": "meta.function.gnuplot", - "begin": "\\b(?x:\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 1: func name\n\t\t\t\t( # 2: parameter list\n\t\t\t\t\t(\\()\\s* # 3: opening parens\n\t\t\t\t\t([A-Za-z_]\\w*)\\s* # 4: arg name\n\t\t\t\t\t(?:\n\t\t\t\t\t\t(,)\\s* # 5: comma\n\t\t\t\t\t\t([A-Za-z_]\\w*)\\s* # 6: other args\n\t\t\t\t\t)*\n\t\t\t\t\t(\\)) # 7: closing parens\n\t\t\t\t)\n\t\t\t)", - "beginCaptures": { - "1": { - "name": "entity.name.function.gnuplot", - "patterns": [ - { - "include": "#BuiltinFunction" - } - ] - }, - "2": { - "name": "meta.function.parameters.gnuplot" - }, - "3": { - "name": "punctuation.definition.parameters.begin.gnuplot" - }, - "4": { - "name": "variable.parameter.function.language.gnuplot" - }, - "5": { - "name": "punctuation.separator.parameters.gnuplot" - }, - "6": { - "name": "variable.parameter.function.language.gnuplot" - }, - "7": { - "name": "punctuation.definition.parameters.end.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#Expression" - } - ] - }, - "InvalidVariableDecl": { - "name": "invalid.illegal.variable.gnuplot", - "match": "\\b(GPVAL_\\w*|MOUSE_\\w*)\\b" - }, - "ShellCommand": { - "begin": "(!)", - "beginCaptures": { - "1": { - "name": "keyword.other.shell.gnuplot" - } - }, - "end": "(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "name": "string.unquoted", - "match": "([^#]|\\\\(?=\\n))" - } - ] - }, - "Command": { - "patterns": [ - { - "name": "invalid.deprecated.command.gnuplot", - "begin": "\\b(?x:\n\t\t\t\t\t\tupdate\n\t\t\t\t\t)\\b", - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))" - }, - { - "begin": "\\b(?x:\n\t\t\t\t\t\tbreak |\n\t\t\t\t\t\tclear |\n\t\t\t\t\t\tcontinue |\n\t\t\t\t\t\tpwd |\n\t\t\t\t\t\trefresh |\n\t\t\t\t\t\treplot |\n\t\t\t\t\t\treread |\n\t\t\t\t\t\tshell\n\t\t\t\t\t)\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#InvalidWord" - } - ] - }, - { - "begin": "\\b(?x:\n\t\t\t\t\t\tcd |\n\t\t\t\t\t\tcall |\n\t\t\t\t\t\teval |\n\t\t\t\t\t\texit |\n\t\t\t\t\t\thelp |\n\t\t\t\t\t\thistory |\n\t\t\t\t\t\tload |\n\t\t\t\t\t\tlower |\n\t\t\t\t\t\tpause |\n\t\t\t\t\t\tprint |\n\t\t\t\t\t\tprinterr |\n\t\t\t\t\t\tquit |\n\t\t\t\t\t\traise |\n\t\t\t\t\t\tsave |\n\t\t\t\t\t\tstats |\n\t\t\t\t\t\tsystem |\n\t\t\t\t\t\ttest |\n\t\t\t\t\t\ttoggle\n\t\t\t\t\t)\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#Expression" - } - ] - }, - { - "begin": "\\b(import)\\s(.+)\\s(from)", - "beginCaptures": { - "1": { - "name": "keyword.control.import.gnuplot" - }, - "2": { - "patterns": [ - { - "include": "#FunctionDecl" - } - ] - }, - "3": { - "name": "keyword.control.import.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#SingleQuotedStringLiteral" - }, - { - "include": "#DoubleQuotedStringLiteral" - }, - { - "include": "#InvalidWord" - } - ] - }, - { - "begin": "\\b(reset)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "name": "support.class.reset.gnuplot", - "match": "\\b(bind|error(state)?|session)\\b" - }, - { - "include": "#InvalidWord" - } - ] - }, - { - "begin": "\\b(undefine)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#BuiltinVariable" - }, - { - "include": "#BuiltinFunction" - }, - { - "name": "source.gnuplot", - "match": "(?<=\\s)([$]?[A-Za-z_]\\w*\\*?)(?=\\s)" - }, - { - "include": "#InvalidWord" - } - ] - }, - { - "begin": "\\b(if|while)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.gnuplot" - } - }, - "end": "(?=(\\{|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#Expression" - } - ] - }, - { - "begin": "\\b(else)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.gnuplot" - } - }, - "end": "(?=(\\{|#|\\\\(?!\\n)|(?<!\\\\)\\n$))" - }, - { - "begin": "\\b(do)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.gnuplot" - } - }, - "end": "(?=(\\{|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#ForIterationExpr" - } - ] - }, - { - "begin": "\\b(set)(?=\\s+pm3d)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "name": "invalid.deprecated.options.gnuplot", - "match": "\\b(hidden3d|map|transparent|solid)\\b" - }, - { - "include": "#SetUnsetOptions" - }, - { - "include": "#ForIterationExpr" - }, - { - "include": "#Expression" - } - ] - }, - { - "begin": "\\b((un)?set)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#SetUnsetOptions" - }, - { - "include": "#ForIterationExpr" - }, - { - "include": "#Expression" - } - ] - }, - { - "begin": "\\b(show)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#ExtraShowOptions" - }, - { - "include": "#SetUnsetOptions" - }, - { - "include": "#Expression" - } - ] - }, - { - "begin": "\\b(fit|(s)?plot)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.command.gnuplot" - } - }, - "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", - "patterns": [ - { - "include": "#ColumnIndexLiteral" - }, - { - "include": "#PlotModifiers" - }, - { - "include": "#ForIterationExpr" - }, - { - "include": "#Expression" - } - ] - } - ] - }, - "SetUnsetOptions": { - "patterns": [ - { - "name": "invalid.deprecated.options.gnuplot", - "match": "\\G\\s*\\b(?x:\n\t\t\t\t\t\tclabel |\n\t\t\t\t\t\tdata |\n\t\t\t\t\t\tfunction |\n\t\t\t\t\t\thistorysize |\n\t\t\t\t\t\tmacros |\n\t\t\t\t\t\tticslevel |\n\t\t\t\t\t\tticscale |\n\t\t\t\t\t\t(style\\s+increment\\s+\\w+)\n\t\t\t\t\t)\\b" - }, - { - "name": "support.class.options.gnuplot", - "match": "\\G\\s*\\b(?x:\n\t\t\t\t\t\tangles |\n\t\t\t\t\t\tarrow |\n\t\t\t\t\t\tautoscale |\n\t\t\t\t\t\tborder |\n\t\t\t\t\t\tboxwidth |\n\t\t\t\t\t\tclip |\n\t\t\t\t\t\tcntr(label|param) |\n\t\t\t\t\t\tcolor(box|sequence)?|\n\t\t\t\t\t\tcontour |\n\t\t\t\t\t\t(dash|line)type |\n\t\t\t\t\t\tdatafile |\n\t\t\t\t\t\tdecimal(sign)? |\n\t\t\t\t\t\tdgrid3d |\n\t\t\t\t\t\tdummy |\n\t\t\t\t\t\tencoding |\n\t\t\t\t\t\t(error)?bars |\n\t\t\t\t\t\tfit |\n\t\t\t\t\t\tfontpath |\n\t\t\t\t\t\tformat |\n\t\t\t\t\t\tgrid |\n\t\t\t\t\t\thidden3d |\n\t\t\t\t\t\thistory |\n\t\t\t\t\t\t(iso)?samples |\n\t\t\t\t\t\tjitter |\n\t\t\t\t\t\tkey |\n\t\t\t\t\t\tlabel |\n\t\t\t\t\t\tlink |\n\t\t\t\t\t\tloadpath |\n\t\t\t\t\t\tlocale |\n\t\t\t\t\t\tlogscale |\n\t\t\t\t\t\tmapping |\n\t\t\t\t\t\t[lrtb]margin |\n\t\t\t\t\t\tmargins |\n\t\t\t\t\t\tmicro |\n\t\t\t\t\t\tminus(sign)? |\n\t\t\t\t\t\tmono(chrome)? |\n\t\t\t\t\t\tmouse |\n\t\t\t\t\t\tmultiplot |\n\t\t\t\t\t\tnonlinear |\n\t\t\t\t\t\tobject |\n\t\t\t\t\t\toffsets |\n\t\t\t\t\t\torigin |\n\t\t\t\t\t\toutput |\n\t\t\t\t\t\tparametric |\n\t\t\t\t\t\t(p|r)axis |\n\t\t\t\t\t\tpm3d |\n\t\t\t\t\t\tpalette |\n\t\t\t\t\t\tpointintervalbox |\n\t\t\t\t\t\tpointsize |\n\t\t\t\t\t\tpolar |\n\t\t\t\t\t\tprint |\n\t\t\t\t\t\tpsdir |\n\t\t\t\t\t\tsize |\n\t\t\t\t\t\tstyle |\n\t\t\t\t\t\tsurface |\n\t\t\t\t\t\ttable |\n\t\t\t\t\t\tterminal |\n\t\t\t\t\t\ttermoption |\n\t\t\t\t\t\ttheta |\n\t\t\t\t\t\ttics |\n\t\t\t\t\t\ttimestamp |\n\t\t\t\t\t\ttimefmt |\n\t\t\t\t\t\ttitle |\n\t\t\t\t\t\tview |\n\t\t\t\t\t\txyplane |\n\t\t\t\t\t\tzero |\n\t\t\t\t\t\t(no)?(m)?(x|x2|y|y2|z|cb|r|t)tics |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb)data |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb|r)label |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb)dtics |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb)mtics |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb|[rtuv])range |\n\t\t\t\t\t\t(x|x2|y|y2|z)?zeroaxis\n\t\t\t\t\t)\\b" - } - ] - }, - "ExtraShowOptions": { - "name": "support.class.options.gnuplot", - "match": "\\b(?x:\n\t\t\t\tall |\n\t\t\t\tbind |\n\t\t\t\tcolornames |\n\t\t\t\tfunctions |\n\t\t\t\tplot |\n\t\t\t\tvariables |\n\t\t\t\tversion\n\t\t\t)\\b" - }, - "PlotModifiers": { - "patterns": [ - { - "name": "invalid.deprecated.plot.gnuplot", - "match": "\\b(thru)\\b" - }, - { - "name": "storage.type.plot.gnuplot", - "match": "\\b(?x:\n\t\t\t\t\t\tin(dex)? |\n\t\t\t\t\t\tevery |\n\t\t\t\t\t\tus(ing)? |\n\t\t\t\t\t\twi(th)? |\n\t\t\t\t\t\tvia\n\t\t\t\t\t)\\b" - }, - { - "name": "storage.type.plot.gnuplot", - "match": "\\b(newhist(ogram)?)\\b" - } - ] - }, - "InvalidWord": { - "name": "invalid.illegal.gnuplot", - "match": "([^;#\\\\[:space:]]+)" - }, - "Expression": { - "patterns": [ - { - "include": "#Literal" - }, - { - "include": "#SpecialVariable" - }, - { - "include": "#BuiltinVariable" - }, - { - "include": "#BuiltinOperator" - }, - { - "include": "#TernaryExpr" - }, - { - "include": "#FunctionCallExpr" - }, - { - "include": "#SummationExpr" - } - ] - }, - "ForIterationExpr": { - "begin": "\\b(?x:\n\t\t\t\t(for)\\s* # 1: for keyword\n\t\t\t\t(\\[)\\s* # 2: opening bracket\n\t\t\t\t(?: # optionally\n\t\t\t\t\t([A-Za-z_]\\w*)\\s+ # 3: var name\n\t\t\t\t\t(in)\\b # 4: in keyword\n\t\t\t\t)?\n\t\t\t)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.gnuplot" - }, - "2": { - "patterns": [ - { - "include": "#RangeSeparators" - } - ] - }, - "3": { - "name": "variable.other.iterator.gnuplot" - }, - "4": { - "name": "keyword.control.flow.gnuplot" - } - }, - "end": "((\\])|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", - "endCaptures": { - "2": { - "patterns": [ - { - "include": "#RangeSeparators" - } - ] - } - }, - "patterns": [ - { - "include": "#Expression" - }, - { - "include": "#RangeSeparators" - } - ] - }, - "SummationExpr": { - "begin": "\\b(sum)\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.other.sum.gnuplot" - }, - "2": { - "patterns": [ - { - "include": "#RangeSeparators" - } - ] - } - }, - "end": "((\\])|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", - "endCaptures": { - "2": { - "patterns": [ - { - "include": "#RangeSeparators" - } - ] - } - }, - "patterns": [ - { - "include": "#Expression" - }, - { - "include": "#RangeSeparators" - } - ] - }, - "FunctionCallExpr": { - "name": "meta.function-call.gnuplot", - "begin": "\\b([A-Za-z_]\\w*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "variable.function.gnuplot", - "patterns": [ - { - "include": "#BuiltinFunction" - } - ] - }, - "2": { - "name": "punctuation.definition.arguments.begin.gnuplot" - } - }, - "end": "((\\))|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", - "endCaptures": { - "2": { - "name": "punctuation.definition.arguments.end.gnuplot" - } - }, - "patterns": [ - { - "include": "#Expression" - } - ] - }, - "TernaryExpr": { - "begin": "(?<!\\?)(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.gnuplot" - } - }, - "end": "((?<!:)(:)(?!:)|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", - "endCaptures": { - "2": { - "name": "keyword.operator.ternary.gnuplot" - } - }, - "patterns": [ - { - "include": "#Expression" - } - ] - }, - "RangeSeparators": { - "patterns": [ - { - "name": "punctuation.section.brackets.begin.gnuplot", - "match": "(\\[)" - }, - { - "name": "punctuation.separator.range.gnuplot", - "match": "(:)" - }, - { - "name": "punctuation.section.brackets.end.gnuplot", - "match": "(\\])" - } - ] - }, - "BuiltinOperator": { - "patterns": [ - { - "name": "keyword.operator.logical.gnuplot", - "match": "(&&|\\|\\|)" - }, - { - "name": "keyword.operator.bitwise.gnuplot", - "match": "(<<|>>|&|\\||\\^)" - }, - { - "name": "keyword.operator.comparison.gnuplot", - "match": "(==|!=|<=|<|>=|>)" - }, - { - "name": "keyword.operator.assignment.gnuplot", - "match": "(=)" - }, - { - "name": "keyword.operator.arithmetic.gnuplot", - "match": "(\\+|-|~|!)" - }, - { - "name": "keyword.operator.arithmetic.gnuplot", - "match": "(\\*\\*|\\+|-|\\*|/|%)" - }, - { - "name": "keyword.operator.strings.gnuplot", - "match": "(\\.|\\b(eq|ne)\\b)", - "captures": { - "2": { - "name": "keyword.operator.word.gnuplot" - } - } - } - ] - }, - "BuiltinVariable": { - "patterns": [ - { - "name": "invalid.deprecated.variable.gnuplot", - "match": "\\b(?x:\n\t\t\t\t\t\tFIT_LIMIT |\n\t\t\t\t\t\tFIT_MAXITER |\n\t\t\t\t\t\tFIT_START_LAMBDA |\n\t\t\t\t\t\tFIT_LAMBDA_FACTOR |\n\t\t\t\t\t\tFIT_SKIP |\n\t\t\t\t\t\tFIT_INDEX\n\t\t\t\t\t)\\b" - }, - { - "name": "support.constant.gnuplot", - "match": "\\b(GPVAL_\\w*|MOUSE_\\w*)\\b" - }, - { - "name": "support.variable.gnuplot", - "match": "\\b(ARG[0-9C]|GPFUN_\\w*|FIT_\\w*|STATS_\\w*|pi|NaN)\\b" - } - ] - }, - "SpecialVariable": { - "patterns": [ - { - "match": "(?<=[\\[:=])\\s*(\\*)\\s*(?=[:\\]])", - "captures": { - "1": { - "name": "constant.language.wildcard.gnuplot" - } - } - }, - { - "name": "constant.language.special.gnuplot", - "match": "(([@$])[A-Za-z_]\\w*)\\b", - "captures": { - "2": { - "name": "punctuation.definition.variable.gnuplot" - } - } - } - ] - }, - "BuiltinFunction": { - "patterns": [ - { - "name": "invalid.deprecated.function.gnuplot", - "match": "\\b(?x:\n\t\t\t\t\t\tdefined\n\t\t\t\t\t)\\b" - }, - { - "name": "support.function.math.gnuplot", - "match": "\\b(?x:\n\t\t\t\t\t\tabs |\n\t\t\t\t\t\tacos |\n\t\t\t\t\t\tacosh |\n\t\t\t\t\t\tairy |\n\t\t\t\t\t\targ |\n\t\t\t\t\t\tasin |\n\t\t\t\t\t\tasinh |\n\t\t\t\t\t\tatan |\n\t\t\t\t\t\tatan2 |\n\t\t\t\t\t\tatanh |\n\t\t\t\t\t\tEllipticK |\n\t\t\t\t\t\tEllipticE |\n\t\t\t\t\t\tEllipticPi |\n\t\t\t\t\t\tbesj0 |\n\t\t\t\t\t\tbesj1 |\n\t\t\t\t\t\tbesy0 |\n\t\t\t\t\t\tbesy1 |\n\t\t\t\t\t\tceil |\n\t\t\t\t\t\tcos |\n\t\t\t\t\t\tcosh |\n\t\t\t\t\t\terf |\n\t\t\t\t\t\terfc |\n\t\t\t\t\t\texp |\n\t\t\t\t\t\texpint |\n\t\t\t\t\t\tfloor |\n\t\t\t\t\t\tgamma |\n\t\t\t\t\t\tibeta |\n\t\t\t\t\t\tinverf |\n\t\t\t\t\t\tigamma |\n\t\t\t\t\t\timag |\n\t\t\t\t\t\tinvnorm |\n\t\t\t\t\t\tint |\n\t\t\t\t\t\tlambertw |\n\t\t\t\t\t\tlgamma |\n\t\t\t\t\t\tlog |\n\t\t\t\t\t\tlog10 |\n\t\t\t\t\t\tnorm |\n\t\t\t\t\t\trand |\n\t\t\t\t\t\treal |\n\t\t\t\t\t\tsgn |\n\t\t\t\t\t\tsin |\n\t\t\t\t\t\tsinh |\n\t\t\t\t\t\tsqrt |\n\t\t\t\t\t\ttan |\n\t\t\t\t\t\ttanh |\n\t\t\t\t\t\tvoigt |\n\t\t\t\t\t\tcerf |\n\t\t\t\t\t\tcdawson |\n\t\t\t\t\t\tfaddeeva |\n\t\t\t\t\t\terfi |\n\t\t\t\t\t\tVP\n\t\t\t\t\t)\\b" - }, - { - "name": "support.function.string.gnuplot", - "match": "\\b(?x:\n\t\t\t\t\t\tgprintf |\n\t\t\t\t\t\tsprintf |\n\t\t\t\t\t\tstrlen |\n\t\t\t\t\t\tstrstrt |\n\t\t\t\t\t\tsubstr |\n\t\t\t\t\t\tstrftime |\n\t\t\t\t\t\tstrptime |\n\t\t\t\t\t\tsystem |\n\t\t\t\t\t\tword |\n\t\t\t\t\t\twords\n\t\t\t\t\t)\\b" - }, - { - "name": "support.function.other.gnuplot", - "match": "\\b(?x:\n\t\t\t\t\t\tcolumn |\n\t\t\t\t\t\tcolumnhead |\n\t\t\t\t\t\texists |\n\t\t\t\t\t\thsv2rgb |\n\t\t\t\t\t\tstringcolumn |\n\t\t\t\t\t\ttimecolumn |\n\t\t\t\t\t\ttm_hour |\n\t\t\t\t\t\ttm_mday |\n\t\t\t\t\t\ttm_min |\n\t\t\t\t\t\ttm_mon |\n\t\t\t\t\t\ttm_sec |\n\t\t\t\t\t\ttm_wday |\n\t\t\t\t\t\ttm_yday |\n\t\t\t\t\t\ttm_year |\n\t\t\t\t\t\ttime |\n\t\t\t\t\t\tvalid |\n\t\t\t\t\t\tvalue\n\t\t\t\t\t)\\b" - } - ] - }, - "Literal": { - "patterns": [ - { - "include": "#NumberLiteral" - }, - { - "include": "#DeprecatedScriptArgsLiteral" - }, - { - "include": "#SingleQuotedStringLiteral" - }, - { - "include": "#DoubleQuotedStringLiteral" - }, - { - "include": "#InterpolatedStringLiteral" - } - ] - }, - "NumberLiteral": { - "patterns": [ - { - "name": "constant.numeric.float.gnuplot", - "match": "(?x:\n\t\t\t\t\t\t# .5e2 and 0.5e2\n\t\t\t\t\t\t( ((\\b[0-9]+)|(?<!\\d)) ) # number or not a preceding digit\n\t\t\t\t\t\t( [.][0-9]+ ) # non-optional fractional\n\t\t\t\t\t\t( [Ee][+-]?[0-9]+ )? # optional exponent\n\t\t\t\t\t)(cm|in)?\\b" - }, - { - "name": "constant.numeric.float.gnuplot", - "match": "(?x:\n\t\t\t\t\t\t# 5e2 and 5.e2\n\t\t\t\t\t\t( \\b[0-9]+ ) # non-optional number\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t( ( [Ee][+-]?[0-9]+\\b ) ) | # non-optional exponent\n\t\t\t\t\t\t\t( [.] ( [Ee][+-]?[0-9]+\\b )? ) # point and optional exponent\n\t\t\t\t\t\t)\n\t\t\t\t\t)(cm\\b|in\\b)?" - }, - { - "name": "constant.numeric.hex.gnuplot", - "match": "\\b(0[Xx][0-9a-fA-F]+)(cm|in)?\\b" - }, - { - "name": "constant.numeric.dec.gnuplot", - "match": "\\b(0+)(cm|in)?\\b" - }, - { - "name": "constant.numeric.oct.gnuplot", - "match": "\\b(0[0-7]+)(cm|in)?\\b" - }, - { - "name": "invalid.illegal.oct.gnuplot", - "match": "\\b(0[0-9]+)(cm|in)?\\b" - }, - { - "name": "constant.numeric.dec.gnuplot", - "match": "\\b([0-9]+)(cm|in)?\\b" - } - ] - }, - "ColumnIndexLiteral": { - "name": "support.constant.columnindex.gnuplot", - "match": "([$][0-9]+)\\b" - }, - "DeprecatedScriptArgsLiteral": { - "name": "invalid.illegal.scriptargs.gnuplot", - "match": "([$][0-9#])" - }, - "SingleQuotedStringLiteral": { - "name": "string.quoted.single.gnuplot", - "begin": "(')", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.gnuplot" - } - }, - "end": "((')(?!')|(?=(?<!\\\\)\\n$))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.gnuplot" - } - }, - "patterns": [ - { - "include": "#RGBColorSpec" - }, - { - "name": "constant.character.escape.gnuplot", - "match": "('')" - } - ] - }, - "DoubleQuotedStringLiteral": { - "name": "string.quoted.double.gnuplot", - "begin": "(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.gnuplot" - } - }, - "end": "((\")|(?=(?<!\\\\)\\n$))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.gnuplot" - } - }, - "patterns": [ - { - "include": "#EscapedChar" - }, - { - "include": "#RGBColorSpec" - }, - { - "include": "#DeprecatedScriptArgsLiteral" - }, - { - "include": "#InterpolatedStringLiteral" - } - ] - }, - "InterpolatedStringLiteral": { - "name": "string.interpolated.gnuplot", - "begin": "(`)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.gnuplot" - } - }, - "end": "((`)|(?=(?<!\\\\)\\n$))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.gnuplot" - } - }, - "patterns": [ - { - "include": "#EscapedChar" - } - ] - }, - "RGBColorSpec": { - "name": "constant.other.placeholder.gnuplot", - "match": "\\G(0x|#)(([0-9a-fA-F]{6})|([0-9a-fA-F]{8}))\\b" - }, - "EscapedChar": { - "name": "constant.character.escape.gnuplot", - "match": "(\\\\.)" - }, - "LineComment": { - "name": "comment.line.number-sign.gnuplot", - "begin": "(#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.gnuplot" - } - }, - "end": "(?=(?<!\\\\)\\n$)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.gnuplot" - } - } - } - } -} diff --git a/lib/grammars/go.tmLanguage.json b/lib/grammars/go.tmLanguage.json deleted file mode 100644 index 32f9615..0000000 --- a/lib/grammars/go.tmLanguage.json +++ /dev/null @@ -1,1017 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-go-syntax/blob/master/export/generated.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-go-syntax/commit/6175663a7a0e23d58ccf9aab95054cb6e5c92aff", - "name": "go", - "scopeName": "source.go", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#comments" - }, - { - "comment": "Interpreted string literals", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.go" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.go" - } - }, - "name": "string.quoted.double.go", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "comment": "Raw string literals", - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.go" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.go" - } - }, - "name": "string.quoted.raw.go", - "patterns": [ - { - "include": "#string_placeholder" - } - ] - }, - { - "comment": "Syntax error receiving channels", - "match": "<\\-([\\t ]+)chan\\b", - "captures": { - "1": { - "name": "invalid.illegal.receive-channel.go" - } - } - }, - { - "comment": "Syntax error sending channels", - "match": "\\bchan([\\t ]+)<-", - "captures": { - "1": { - "name": "invalid.illegal.send-channel.go" - } - } - }, - { - "comment": "Syntax error using slices", - "match": "\\[\\](\\s+)", - "captures": { - "1": { - "name": "invalid.illegal.slice.go" - } - } - }, - { - "comment": "Syntax error numeric literals", - "match": "\\b0[0-7]*[89]\\d*\\b", - "name": "invalid.illegal.numeric.go" - }, - { - "comment": "Built-in functions", - "match": "\\b(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)\\b(?=\\()", - "name": "support.function.builtin.go" - }, - { - "comment": "Function declarations", - "match": "^(\\bfunc\\b)(?:\\s+(\\([^\\)]+\\)\\s+)?(\\w+)(?=\\())?", - "captures": { - "1": { - "name": "keyword.function.go" - }, - "2": { - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#operators" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "entity.name.function.go" - } - ] - } - } - }, - { - "comment": "Functions", - "match": "(\\bfunc\\b)|(\\w+)(?=\\()", - "captures": { - "1": { - "name": "keyword.function.go" - }, - "2": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "support.function.go" - } - ] - } - } - }, - { - "include": "#numeric_literals" - }, - { - "comment": "Language constants", - "match": "\\b(true|false|nil|iota)\\b", - "name": "constant.language.go" - }, - { - "begin": "\\b(package)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.package.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "entity.name.package.go" - } - ] - }, - { - "begin": "\\b(type)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.type.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "entity.name.type.go" - } - ] - }, - { - "begin": "\\b(import)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.import.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#imports" - } - ] - }, - { - "begin": "\\b(var)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.var.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#variables" - } - ] - }, - { - "match": "(?<!var)\\s*(\\w+(?:\\.\\w+)*(?>,\\s*\\w+(?:\\.\\w+)*)*)(?=\\s*=(?!=))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+(?:\\.\\w+)*", - "name": "variable.other.assignment.go", - "captures": { - "0": { - "patterns": [ - { - "include": "#delimiters" - } - ] - } - } - }, - { - "include": "#delimiters" - } - ] - } - } - }, - { - "match": "\\b\\w+(?:,\\s*\\w+)*(?=\\s*:=)", - "captures": { - "0": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "variable.other.assignment.go" - }, - { - "include": "#delimiters" - } - ] - } - } - }, - { - "comment": "Terminators", - "match": ";", - "name": "punctuation.terminator.go" - }, - { - "include": "#brackets" - }, - { - "include": "#delimiters" - }, - { - "include": "#keywords" - }, - { - "include": "#operators" - }, - { - "include": "#runes" - }, - { - "include": "#storage_types" - } - ], - "repository": { - "brackets": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.curly.go" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.curly.go" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.round.go" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.round.go" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\[|\\]", - "name": "punctuation.definition.bracket.square.go" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.block.go", - "begin": "(\\/\\*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.go" - } - }, - "end": "(\\*\\/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.go" - } - } - }, - { - "name": "comment.line.double-slash.go", - "begin": "(\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.go" - } - }, - "end": "(?:\\n|$)" - } - ] - }, - "delimiters": { - "patterns": [ - { - "match": ",", - "name": "punctuation.other.comma.go" - }, - { - "match": "\\.(?!\\.\\.)", - "name": "punctuation.other.period.go" - }, - { - "match": ":(?!=)", - "name": "punctuation.other.colon.go" - } - ] - }, - "imports": { - "patterns": [ - { - "match": "((?!\\s+\")[^\\s]*)?\\s*((\")([^\"]*)(\"))", - "captures": { - "1": { - "name": "entity.alias.import.go" - }, - "2": { - "name": "string.quoted.double.go" - }, - "3": { - "name": "punctuation.definition.string.begin.go" - }, - "4": { - "name": "entity.name.import.go" - }, - "5": { - "name": "punctuation.definition.string.end.go" - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.imports.begin.bracket.round.go" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.imports.end.bracket.round.go" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#imports" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "comment": "Flow control keywords", - "match": "\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\b", - "name": "keyword.control.go" - }, - { - "match": "\\bchan\\b", - "name": "keyword.channel.go" - }, - { - "match": "\\bconst\\b", - "name": "keyword.const.go" - }, - { - "match": "\\bfunc\\b", - "name": "keyword.function.go" - }, - { - "match": "\\binterface\\b", - "name": "keyword.interface.go" - }, - { - "match": "\\bmap\\b", - "name": "keyword.map.go" - }, - { - "match": "\\bstruct\\b", - "name": "keyword.struct.go" - } - ] - }, - "operators": { - "comment": "Note that the order here is very important!", - "patterns": [ - { - "match": "(\\*|&)(?=\\w)", - "name": "keyword.operator.address.go" - }, - { - "match": "<\\-", - "name": "keyword.operator.channel.go" - }, - { - "match": "\\-\\-", - "name": "keyword.operator.decrement.go" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.go" - }, - { - "match": "(==|!=|<=|>=|<(?!<)|>(?!>))", - "name": "keyword.operator.comparison.go" - }, - { - "match": "(&&|\\|\\||!)", - "name": "keyword.operator.logical.go" - }, - { - "match": "(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)", - "name": "keyword.operator.assignment.go" - }, - { - "match": "(\\+|\\-|\\*|/|%)", - "name": "keyword.operator.arithmetic.go" - }, - { - "match": "(&(?!\\^)|\\||\\^|&\\^|<<|>>)", - "name": "keyword.operator.arithmetic.bitwise.go" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.ellipsis.go" - } - ] - }, - "runes": { - "patterns": [ - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.go" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.go" - } - }, - "name": "string.quoted.rune.go", - "patterns": [ - { - "match": "\\G(\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')", - "name": "constant.other.rune.go" - }, - { - "match": "[^']+", - "name": "invalid.illegal.unknown-rune.go" - } - ] - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "\\bbool\\b", - "name": "storage.type.boolean.go" - }, - { - "match": "\\bbyte\\b", - "name": "storage.type.byte.go" - }, - { - "match": "\\berror\\b", - "name": "storage.type.error.go" - }, - { - "match": "\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\b", - "name": "storage.type.numeric.go" - }, - { - "match": "\\brune\\b", - "name": "storage.type.rune.go" - }, - { - "match": "\\bstring\\b", - "name": "storage.type.string.go" - }, - { - "match": "\\buintptr\\b", - "name": "storage.type.uintptr.go" - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})", - "name": "constant.character.escape.go" - }, - { - "match": "\\\\[^0-7xuUabfnrtv\\'\"]", - "name": "invalid.illegal.unknown-escape.go" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]", - "name": "constant.other.placeholder.go" - } - ] - }, - "variables": { - "patterns": [ - { - "match": "(\\w+(?:,\\s*\\w+)*)(\\s+\\*?\\w+(?:\\.\\w+)?\\s*)?(?=\\s*=)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "variable.other.assignment.go" - }, - { - "include": "#delimiters" - } - ] - }, - "2": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "match": "(\\w+(?:,\\s*\\w+)*)(\\s+(\\[(\\d*|\\.\\.\\.)\\])*\\*?(<-)?\\w+(?:\\.\\w+)?\\s*[^=].*)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "variable.other.declaration.go" - }, - { - "include": "#delimiters" - } - ] - }, - "2": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variables.begin.bracket.round.go" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.variables.end.bracket.round.go" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "numeric_literals": { - "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])*", - "captures": { - "0": { - "patterns": [ - { - "begin": "(?=.)", - "end": "(?:\\n|$)", - "patterns": [ - { - "match": "(?:(?:(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\w))?(?:\\n|$)|\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|\\G((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|(\\G0[xX])((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))", - "captures": { - "1": { - "name": "constant.numeric.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "2": { - "name": "punctuation.separator.constant.numeric.go" - }, - "3": { - "name": "constant.numeric.decimal.point.go" - }, - "4": { - "name": "constant.numeric.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "5": { - "name": "punctuation.separator.constant.numeric.go" - }, - "6": { - "name": "keyword.other.unit.exponent.decimal.go" - }, - "7": { - "name": "keyword.operator.plus.exponent.decimal.go" - }, - "8": { - "name": "keyword.operator.minus.exponent.decimal.go" - }, - "9": { - "name": "constant.numeric.exponent.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "10": { - "name": "keyword.other.unit.imaginary.go" - }, - "11": { - "name": "constant.numeric.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "12": { - "name": "punctuation.separator.constant.numeric.go" - }, - "13": { - "name": "keyword.other.unit.exponent.decimal.go" - }, - "14": { - "name": "keyword.operator.plus.exponent.decimal.go" - }, - "15": { - "name": "keyword.operator.minus.exponent.decimal.go" - }, - "16": { - "name": "constant.numeric.exponent.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "17": { - "name": "keyword.other.unit.imaginary.go" - }, - "18": { - "name": "constant.numeric.decimal.point.go" - }, - "19": { - "name": "constant.numeric.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "20": { - "name": "punctuation.separator.constant.numeric.go" - }, - "21": { - "name": "keyword.other.unit.exponent.decimal.go" - }, - "22": { - "name": "keyword.operator.plus.exponent.decimal.go" - }, - "23": { - "name": "keyword.operator.minus.exponent.decimal.go" - }, - "24": { - "name": "constant.numeric.exponent.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "25": { - "name": "keyword.other.unit.imaginary.go" - }, - "26": { - "name": "keyword.other.unit.hexadecimal.go" - }, - "27": { - "name": "constant.numeric.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "28": { - "name": "punctuation.separator.constant.numeric.go" - }, - "29": { - "name": "constant.numeric.hexadecimal.go" - }, - "30": { - "name": "constant.numeric.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "31": { - "name": "punctuation.separator.constant.numeric.go" - }, - "32": { - "name": "keyword.other.unit.exponent.hexadecimal.go" - }, - "33": { - "name": "keyword.operator.plus.exponent.hexadecimal.go" - }, - "34": { - "name": "keyword.operator.minus.exponent.hexadecimal.go" - }, - "35": { - "name": "constant.numeric.exponent.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "36": { - "name": "keyword.other.unit.imaginary.go" - }, - "37": { - "name": "keyword.other.unit.hexadecimal.go" - }, - "38": { - "name": "constant.numeric.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "39": { - "name": "punctuation.separator.constant.numeric.go" - }, - "40": { - "name": "keyword.other.unit.exponent.hexadecimal.go" - }, - "41": { - "name": "keyword.operator.plus.exponent.hexadecimal.go" - }, - "42": { - "name": "keyword.operator.minus.exponent.hexadecimal.go" - }, - "43": { - "name": "constant.numeric.exponent.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "44": { - "name": "keyword.other.unit.imaginary.go" - }, - "45": { - "name": "keyword.other.unit.hexadecimal.go" - }, - "46": { - "name": "constant.numeric.hexadecimal.go" - }, - "47": { - "name": "constant.numeric.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "48": { - "name": "punctuation.separator.constant.numeric.go" - }, - "49": { - "name": "keyword.other.unit.exponent.hexadecimal.go" - }, - "50": { - "name": "keyword.operator.plus.exponent.hexadecimal.go" - }, - "51": { - "name": "keyword.operator.minus.exponent.hexadecimal.go" - }, - "52": { - "name": "constant.numeric.exponent.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "53": { - "name": "keyword.other.unit.imaginary.go" - } - } - }, - { - "match": "(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$)|(\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$))|(\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$))", - "captures": { - "1": { - "name": "constant.numeric.decimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "2": { - "name": "punctuation.separator.constant.numeric.go" - }, - "3": { - "name": "keyword.other.unit.imaginary.go" - }, - "4": { - "name": "keyword.other.unit.binary.go" - }, - "5": { - "name": "constant.numeric.binary.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.go" - }, - "7": { - "name": "keyword.other.unit.imaginary.go" - }, - "8": { - "name": "keyword.other.unit.octal.go" - }, - "9": { - "name": "constant.numeric.octal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "10": { - "name": "punctuation.separator.constant.numeric.go" - }, - "11": { - "name": "keyword.other.unit.imaginary.go" - }, - "12": { - "name": "keyword.other.unit.hexadecimal.go" - }, - "13": { - "name": "constant.numeric.hexadecimal.go", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.go" - } - ] - }, - "14": { - "name": "punctuation.separator.constant.numeric.go" - }, - "15": { - "name": "keyword.other.unit.imaginary.go" - } - } - }, - { - "match": "(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])+", - "name": "invalid.illegal.constant.numeric.go" - } - ] - } - ] - } - } - } - } -} diff --git a/lib/grammars/graphql.tmLanguage.json b/lib/grammars/graphql.tmLanguage.json deleted file mode 100644 index 44c48e4..0000000 --- a/lib/grammars/graphql.tmLanguage.json +++ /dev/null @@ -1,1289 +0,0 @@ -{ - "name": "graphql", - "scopeName": "source.graphql", - "fileTypes": ["graphql", "graphqls", "gql", "graphcool"], - "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-operation-def": { - "patterns": [ - { - "include": "#graphql-query-mutation" - }, - { - "include": "#graphql-name" - }, - { - "include": "#graphql-variable-definitions" - }, - { - "include": "#graphql-directive" - }, - { - "include": "#graphql-selection-set" - } - ] - }, - "graphql-fragment-definition": { - "name": "meta.fragment.graphql", - "begin": "\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))", - "end": "(?<=})", - "captures": { - "1": { - "name": "keyword.fragment.graphql" - }, - "2": { - "name": "entity.name.fragment.graphql" - }, - "3": { - "name": "keyword.on.graphql" - }, - "4": { - "name": "support.type.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-query-mutation": { - "match": "\\s*\\b(query|mutation)\\b", - "captures": { - "1": { - "name": "keyword.operation.graphql" - } - } - }, - "graphql-type-interface": { - "name": "meta.type.interface.graphql", - "begin": "\\s*\\b(?:(extends?)?\\b\\s*\\b(type)|(interface)|(input))\\b\\s*([_A-Za-z][_0-9A-Za-z]*)?", - "end": "(?=.)", - "applyEndPatternLast": 1, - "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" - } - }, - "patterns": [ - { - "begin": "\\s*\\b(implements)\\b\\s*", - "end": "\\s*(?={)", - "beginCaptures": { - "1": { - "name": "keyword.implements.graphql" - } - }, - "patterns": [ - { - "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "support.type.graphql" - } - } - }, - { - "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-ignore-spaces": { - "match": "\\s*" - }, - "graphql-type-object": { - "name": "meta.type.object.graphql", - "begin": "\\s*({)", - "end": "\\s*(})", - "beginCaptures": { - "1": { - "name": "punctuation.operation.graphql" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.operation.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-type-definition": { - "comment": "key (optionalArgs): Type", - "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", - "end": "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)", - "beginCaptures": { - "1": { - "name": "variable.graphql" - } - }, - "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-schema": { - "begin": "\\s*\\b(schema)\\b", - "end": "(?<=})", - "beginCaptures": { - "1": { - "name": "keyword.schema.graphql" - } - }, - "patterns": [ - { - "begin": "\\s*({)", - "end": "\\s*(})", - "beginCaptures": { - "1": { - "name": "punctuation.operation.graphql" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.operation.graphql" - } - }, - "patterns": [ - { - "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", - "end": "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)", - "beginCaptures": { - "1": { - "name": "variable.arguments.graphql" - } - }, - "endCaptures": { - "5": { - "name": "punctuation.comma.graphql" - } - }, - "patterns": [ - { - "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "support.type.graphql" - } - } - }, - { - "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-comment": { - "patterns": [ - { - "comment": "need to prefix comment space with a scope else Atom's reflow cmd doesn't work", - "name": "comment.line.graphql.js", - "match": "(\\s*)(#).*", - "captures": { - "1": { - "name": "punctuation.whitespace.comment.leading.graphql" - } - } - }, - { - "name": "comment.line.graphql.js", - "begin": "(\"\"\")", - "end": "(\"\"\")", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.graphql" - } - } - }, - { - "name": "comment.line.graphql.js", - "begin": "(\")", - "end": "(\")", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.graphql" - } - } - } - ] - }, - "graphql-description-singleline": { - "name": "comment.line.number-sign.graphql", - "match": "#(?=([^\"]*\"[^\"]*\")*[^\"]*$).*$" - }, - "graphql-description-docstring": { - "name": "comment.block.graphql", - "begin": "\"\"\"", - "end": "\"\"\"" - }, - "graphql-variable-definitions": { - "begin": "\\s*(\\()", - "end": "\\s*(\\))", - "captures": { - "1": { - "name": "meta.brace.round.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-comment" - }, - { - "include": "#graphql-description-docstring" - }, - { - "include": "#graphql-description-singleline" - }, - { - "include": "#graphql-variable-definition" - }, - { - "include": "#literal-quasi-embedded" - } - ] - }, - "graphql-variable-definition": { - "comment": "variable: type = value,.... which may be a list", - "name": "meta.variables.graphql", - "begin": "\\s*(\\$?[_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", - "end": "(?=\\s*((\\$?[_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(}|\\))))|\\s*(,)", - "beginCaptures": { - "1": { - "name": "variable.parameter.graphql" - } - }, - "endCaptures": { - "5": { - "name": "punctuation.comma.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-input-types": { - "patterns": [ - { - "include": "#graphql-scalar-type" - }, - { - "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(!))?", - "captures": { - "1": { - "name": "support.type.graphql" - }, - "2": { - "name": "keyword.operator.nulltype.graphql" - } - } - }, - { - "name": "meta.type.list.graphql", - "begin": "\\s*(\\[)", - "end": "\\s*(\\])(?:\\s*(!))?", - "captures": { - "1": { - "name": "meta.brace.square.graphql" - }, - "2": { - "name": "keyword.operator.nulltype.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-scalar": { - "match": "\\s*\\b(scalar)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "keyword.scalar.graphql" - }, - "2": { - "name": "entity.scalar.graphql" - } - } - }, - "graphql-scalar-type": { - "match": "\\s*\\b(Int|Float|String|Boolean|ID)\\b(?:\\s*(!))?", - "captures": { - "1": { - "name": "support.type.builtin.graphql" - }, - "2": { - "name": "keyword.operator.nulltype.graphql" - } - } - }, - "graphql-variable-assignment": { - "begin": "\\s(=)", - "end": "(?=[\n,)])", - "applyEndPatternLast": 1, - "beginCaptures": { - "1": { - "name": "punctuation.assignment.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-value" - } - ] - }, - "graphql-comma": { - "match": "\\s*(,)", - "captures": { - "1": { - "name": "punctuation.comma.graphql" - } - } - }, - "graphql-ampersand": { - "match": "\\s*(&)", - "captures": { - "1": { - "name": "keyword.operator.logical.graphql" - } - } - }, - "graphql-colon": { - "match": "\\s*(:)", - "captures": { - "1": { - "name": "punctuation.colon.graphql" - } - } - }, - "graphql-union-mark": { - "match": "\\s*(\\|)", - "captures": { - "1": { - "name": "punctuation.union.graphql" - } - } - }, - "graphql-name": { - "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "entity.name.function.graphql" - } - } - }, - "graphql-directive": { - "begin": "\\s*((@)\\s*([_A-Za-z][_0-9A-Za-z]*))", - "end": "(?=.)", - "applyEndPatternLast": 1, - "beginCaptures": { - "1": { - "name": "entity.name.function.directive.graphql" - } - }, - "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": { - "begin": "\\s*(\\bdirective\\b)\\s*(@[_A-Za-z][_0-9A-Za-z]*)", - "end": "(?=.)", - "applyEndPatternLast": 1, - "beginCaptures": { - "1": { - "name": "keyword.directive.graphql" - }, - "2": { - "name": "entity.name.function.directive.graphql" - }, - "3": { - "name": "keyword.on.graphql" - }, - "4": { - "name": "support.type.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-variable-definitions" - }, - { - "begin": "\\s*(\\bon\\b)\\s*([_A-Za-z]*)", - "end": "(?=.)", - "applyEndPatternLast": 1, - "beginCaptures": { - "1": { - "name": "keyword.on.graphql" - }, - "2": { - "name": "support.type.location.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-skip-newlines" - }, - { - "include": "#graphql-comment" - }, - { - "include": "#literal-quasi-embedded" - }, - { - "match": "\\s*(\\|)\\s*([_A-Za-z]*)", - "captures": { - "2": { - "name": "support.type.location.graphql" - } - } - } - ] - }, - { - "include": "#graphql-skip-newlines" - }, - { - "include": "#graphql-comment" - }, - { - "include": "#literal-quasi-embedded" - } - ] - }, - "graphql-selection-set": { - "name": "meta.selectionset.graphql", - "begin": "\\s*({)", - "end": "\\s*(})", - "beginCaptures": { - "1": { - "name": "punctuation.operation.graphql" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.operation.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-field": { - "patterns": [ - { - "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(:)", - "captures": { - "1": { - "name": "string.unquoted.alias.graphql" - }, - "2": { - "name": "punctuation.colon.graphql" - } - } - }, - { - "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "variable.graphql" - } - } - }, - { - "include": "#graphql-arguments" - }, - { - "include": "#graphql-directive" - }, - { - "include": "#graphql-selection-set" - }, - { - "include": "#literal-quasi-embedded" - }, - { - "include": "#graphql-skip-newlines" - } - ] - }, - "graphql-fragment-spread": { - "begin": "\\s*(\\.\\.\\.)\\s*(?!\\bon\\b)([_A-Za-z][_0-9A-Za-z]*)", - "end": "(?=.)", - "applyEndPatternLast": 1, - "captures": { - "1": { - "name": "keyword.operator.spread.graphql" - }, - "2": { - "name": "variable.fragment.graphql" - } - }, - "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-inline-fragment": { - "begin": "\\s*(\\.\\.\\.)\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*))?", - "end": "(?=.)", - "applyEndPatternLast": 1, - "captures": { - "1": { - "name": "keyword.operator.spread.graphql" - }, - "2": { - "name": "keyword.on.graphql" - }, - "3": { - "name": "support.type.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-arguments": { - "name": "meta.arguments.graphql", - "begin": "\\s*(\\()", - "end": "\\s*(\\))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.directive.graphql" - } - }, - "endCaptures": { - "1": { - "name": "meta.brace.round.directive.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-comment" - }, - { - "include": "#graphql-description-docstring" - }, - { - "include": "#graphql-description-singleline" - }, - { - "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(:))", - "end": "(?=\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\s*(:))|\\)))|\\s*(,)", - "beginCaptures": { - "1": { - "name": "variable.parameter.graphql" - }, - "2": { - "name": "punctuation.colon.graphql" - } - }, - "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-variable-name": { - "match": "\\s*(\\$[_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "variable.graphql" - } - } - }, - "graphql-float-value": { - "match": "\\s*(-?(0|[1-9][0-9]*)(\\.[0-9]+)?((e|E)(\\+|-)?[0-9]+)?)", - "captures": { - "1": { - "name": "constant.numeric.float.graphql" - } - } - }, - "graphql-boolean-value": { - "match": "\\s*\\b(true|false)\\b", - "captures": { - "1": { - "name": "constant.language.boolean.graphql" - } - } - }, - "graphql-null-value": { - "match": "\\s*\\b(null)\\b", - "captures": { - "1": { - "name": "constant.language.null.graphql" - } - } - }, - "graphql-string-value": { - "contentName": "string.quoted.double.graphql", - "begin": "\\s*+((\"))", - "end": "\\s*+(?:((\"))|(\n))", - "beginCaptures": { - "1": { - "name": "string.quoted.double.graphql" - }, - "2": { - "name": "punctuation.definition.string.begin.graphql" - } - }, - "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-string-content": { - "patterns": [ - { - "name": "constant.character.escape.graphql", - "match": "\\\\[/'\"\\\\nrtbf]" - }, - { - "name": "constant.character.escape.graphql", - "match": "\\\\u([0-9a-fA-F]{4})" - } - ] - }, - "graphql-enum": { - "name": "meta.enum.graphql", - "begin": "\\s*+\\b(enum)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", - "end": "(?<=})", - "beginCaptures": { - "1": { - "name": "keyword.enum.graphql" - }, - "2": { - "name": "support.type.enum.graphql" - } - }, - "patterns": [ - { - "name": "meta.type.object.graphql", - "begin": "\\s*({)", - "end": "\\s*(})", - "beginCaptures": { - "1": { - "name": "punctuation.operation.graphql" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.operation.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": { - "name": "constant.character.enum.graphql", - "match": "\\s*(?!=\\b(true|false|null)\\b)([_A-Za-z][_0-9A-Za-z]*)" - }, - "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-list-value": { - "patterns": [ - { - "name": "meta.listvalues.graphql", - "begin": "\\s*+(\\[)", - "end": "\\s*(\\])", - "endCaptures": { - "1": { - "name": "meta.brace.square.graphql" - } - }, - "beginCaptures": { - "1": { - "name": "meta.brace.square.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-value" - } - ] - } - ] - }, - "graphql-object-value": { - "patterns": [ - { - "name": "meta.objectvalues.graphql", - "begin": "\\s*+({)", - "end": "\\s*(})", - "beginCaptures": { - "1": { - "name": "meta.brace.curly.graphql" - } - }, - "endCaptures": { - "1": { - "name": "meta.brace.curly.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-object-field" - }, - { - "include": "#graphql-value" - } - ] - } - ] - }, - "graphql-object-field": { - "match": "\\s*(([_A-Za-z][_0-9A-Za-z]*))\\s*(:)", - "captures": { - "1": { - "name": "constant.object.key.graphql" - }, - "2": { - "name": "string.unquoted.graphql" - }, - "3": { - "name": "punctuation.graphql" - } - } - }, - "graphql-union": { - "begin": "\\s*\\b(union)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", - "end": "(?=.)", - "applyEndPatternLast": 1, - "captures": { - "1": { - "name": "keyword.union.graphql" - }, - "2": { - "name": "support.type.graphql" - } - }, - "patterns": [ - { - "begin": "\\s*(=)\\s*([_A-Za-z][_0-9A-Za-z]*)", - "end": "(?=.)", - "applyEndPatternLast": 1, - "captures": { - "1": { - "name": "punctuation.assignment.graphql" - }, - "2": { - "name": "support.type.graphql" - } - }, - "patterns": [ - { - "include": "#graphql-comment" - }, - { - "include": "#graphql-description-docstring" - }, - { - "include": "#graphql-description-singleline" - }, - { - "include": "#graphql-skip-newlines" - }, - { - "include": "#literal-quasi-embedded" - }, - { - "match": "\\s*(\\|)\\s*([_A-Za-z][_0-9A-Za-z]*)", - "captures": { - "1": { - "name": "punctuation.or.graphql" - }, - "2": { - "name": "support.type.graphql" - } - } - } - ] - }, - { - "include": "#graphql-comment" - }, - { - "include": "#graphql-description-docstring" - }, - { - "include": "#graphql-description-singleline" - }, - { - "include": "#graphql-skip-newlines" - }, - { - "include": "#literal-quasi-embedded" - } - ] - }, - "native-interpolation": { - "name": "native.interpolation", - "begin": "\\s*(\\${)", - "end": "(})", - "beginCaptures": { - "1": { - "name": "keyword.other.substitution.begin" - } - }, - "endCaptures": { - "1": { - "name": "keyword.other.substitution.end" - } - }, - "patterns": [ - { - "include": "source.js" - }, - { - "include": "source.ts" - }, - { - "include": "source.js.jsx" - }, - { - "include": "source.tsx" - } - ] - }, - "graphql-skip-newlines": { - "match": "\\s*\n" - } - } -} diff --git a/lib/grammars/groovy.tmLanguage.json b/lib/grammars/groovy.tmLanguage.json deleted file mode 100644 index cbab66f..0000000 --- a/lib/grammars/groovy.tmLanguage.json +++ /dev/null @@ -1,1383 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/groovy.tmbundle/blob/master/Syntaxes/Groovy.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/groovy.tmbundle/commit/85d8f7c97ae473ccb9473f6c8d27e4ec957f4be1", - "name": "groovy", - "scopeName": "source.groovy", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.groovy" - } - }, - "match": "^(#!).+$\\n", - "name": "comment.line.hashbang.groovy" - }, - { - "captures": { - "1": { - "name": "keyword.other.package.groovy" - }, - "2": { - "name": "storage.modifier.package.groovy" - }, - "3": { - "name": "punctuation.terminator.groovy" - } - }, - "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", - "name": "meta.package.groovy" - }, - { - "begin": "(import static)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.import.static.groovy" - } - }, - "captures": { - "1": { - "name": "keyword.other.import.groovy" - }, - "2": { - "name": "storage.modifier.import.groovy" - }, - "3": { - "name": "punctuation.terminator.groovy" - } - }, - "contentName": "storage.modifier.import.groovy", - "end": "\\s*(?:$|(?=%>)(;))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.groovy" - } - }, - "name": "meta.import.groovy", - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.groovy" - }, - { - "match": "\\s", - "name": "invalid.illegal.character_not_allowed_here.groovy" - } - ] - }, - { - "begin": "(import)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.import.groovy" - } - }, - "captures": { - "1": { - "name": "keyword.other.import.groovy" - }, - "2": { - "name": "storage.modifier.import.groovy" - }, - "3": { - "name": "punctuation.terminator.groovy" - } - }, - "contentName": "storage.modifier.import.groovy", - "end": "\\s*(?:$|(?=%>)|(;))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.groovy" - } - }, - "name": "meta.import.groovy", - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.groovy" - }, - { - "match": "\\s", - "name": "invalid.illegal.character_not_allowed_here.groovy" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.import.groovy" - }, - "2": { - "name": "keyword.other.import.static.groovy" - }, - "3": { - "name": "storage.modifier.import.groovy" - }, - "4": { - "name": "punctuation.terminator.groovy" - } - }, - "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", - "name": "meta.import.groovy" - }, - { - "include": "#groovy" - } - ], - "repository": { - "annotations": { - "patterns": [ - { - "begin": "(?<!\\.)(@[^ (]+)(\\()", - "beginCaptures": { - "1": { - "name": "storage.type.annotation.groovy" - }, - "2": { - "name": "punctuation.definition.annotation-arguments.begin.groovy" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.annotation-arguments.end.groovy" - } - }, - "name": "meta.declaration.annotation.groovy", - "patterns": [ - { - "captures": { - "1": { - "name": "constant.other.key.groovy" - }, - "2": { - "name": "keyword.operator.assignment.groovy" - } - }, - "match": "(\\w*)\\s*(=)" - }, - { - "include": "#values" - }, - { - "match": ",", - "name": "punctuation.definition.seperator.groovy" - } - ] - }, - { - "match": "(?<!\\.)@\\S+", - "name": "storage.type.annotation.groovy" - } - ] - }, - "anonymous-classes-and-new": { - "begin": "\\bnew\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.new.groovy" - } - }, - "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=[;])|$", - "patterns": [ - { - "begin": "(\\w+)\\s*(?=\\[)", - "beginCaptures": { - "1": { - "name": "storage.type.groovy" - } - }, - "end": "}|(?=\\s*(?:,|;|\\)))|$", - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#groovy" - } - ] - }, - { - "begin": "{", - "end": "(?=})", - "patterns": [ - { - "include": "#groovy" - } - ] - } - ] - }, - { - "begin": "(?=\\w.*\\(?)", - "end": "(?<=\\))|$", - "patterns": [ - { - "include": "#object-types" - }, - { - "begin": "\\(", - "beginCaptures": { - "1": { - "name": "storage.type.groovy" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#groovy" - } - ] - } - ] - }, - { - "begin": "{", - "end": "}", - "name": "meta.inner-class.groovy", - "patterns": [ - { - "include": "#class-body" - } - ] - } - ] - }, - "braces": { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - "class": { - "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)", - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.class.end.groovy" - } - }, - "name": "meta.definition.class.groovy", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "storage.modifier.groovy" - }, - "2": { - "name": "entity.name.type.class.groovy" - } - }, - "match": "(class|(?:@)?interface|enum)\\s+(\\w+)", - "name": "meta.class.identifier.groovy" - }, - { - "begin": "extends", - "beginCaptures": { - "0": { - "name": "storage.modifier.extends.groovy" - } - }, - "end": "(?={|implements)", - "name": "meta.definition.class.inherited.classes.groovy", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "(implements)\\s", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.groovy" - } - }, - "end": "(?=\\s*extends|\\{)", - "name": "meta.definition.class.implemented.interfaces.groovy", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "{", - "end": "(?=})", - "name": "meta.class.body.groovy", - "patterns": [ - { - "include": "#class-body" - } - ] - } - ] - }, - "class-body": { - "patterns": [ - { - "include": "#enum-values" - }, - { - "include": "#constructors" - }, - { - "include": "#groovy" - } - ] - }, - "closures": { - "begin": "\\{(?=.*?->)", - "end": "\\}", - "patterns": [ - { - "begin": "(?<=\\{)(?=[^\\}]*?->)", - "end": "->", - "endCaptures": { - "0": { - "name": "keyword.operator.groovy" - } - }, - "patterns": [ - { - "begin": "(?!->)", - "end": "(?=->)", - "name": "meta.closure.parameters.groovy", - "patterns": [ - { - "begin": "(?!,|->)", - "end": "(?=,|->)", - "name": "meta.closure.parameter.groovy", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.groovy" - } - }, - "end": "(?=,|->)", - "name": "meta.parameter.default.groovy", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - { - "include": "#parameters" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=[^}])", - "end": "(?=\\})", - "patterns": [ - { - "include": "#groovy-code" - } - ] - } - ] - }, - "comment-block": { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.groovy" - } - }, - "end": "\\*/", - "name": "comment.block.groovy" - }, - "comments": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.definition.comment.groovy" - } - }, - "match": "/\\*\\*/", - "name": "comment.block.empty.groovy" - }, - { - "include": "text.html.javadoc" - }, - { - "include": "#comment-block" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.groovy" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.groovy" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "\\b([A-Z][A-Z0-9_]+)\\b", - "name": "constant.other.groovy" - }, - { - "match": "\\b(true|false|null)\\b", - "name": "constant.language.groovy" - } - ] - }, - "constructors": { - "applyEndPatternLast": 1, - "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()", - "end": "}", - "patterns": [ - { - "include": "#method-content" - } - ] - }, - "enum-values": { - "patterns": [ - { - "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))", - "beginCaptures": { - "1": { - "name": "constant.enum.name.groovy" - } - }, - "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "name": "meta.enum.value.groovy", - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.seperator.parameter.groovy" - }, - { - "include": "#groovy-code" - } - ] - } - ] - } - ] - }, - "groovy": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#class" - }, - { - "include": "#variables" - }, - { - "include": "#methods" - }, - { - "include": "#annotations" - }, - { - "include": "#groovy-code" - } - ] - }, - "groovy-code": { - "patterns": [ - { - "include": "#groovy-code-minus-map-keys" - }, - { - "include": "#map-keys" - } - ] - }, - "groovy-code-minus-map-keys": { - "comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#annotations" - }, - { - "include": "#support-functions" - }, - { - "include": "#keyword-language" - }, - { - "include": "#values" - }, - { - "include": "#anonymous-classes-and-new" - }, - { - "include": "#keyword-operator" - }, - { - "include": "#types" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#parens" - }, - { - "include": "#closures" - }, - { - "include": "#braces" - } - ] - }, - "keyword": { - "patterns": [ - { - "include": "#keyword-operator" - }, - { - "include": "#keyword-language" - } - ] - }, - "keyword-language": { - "patterns": [ - { - "match": "\\b(try|catch|finally|throw)\\b", - "name": "keyword.control.exception.groovy" - }, - { - "match": "\\b((?<!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b", - "name": "keyword.control.groovy" - }, - { - "begin": "\\bcase\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.groovy" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "punctuation.definition.case-terminator.groovy" - } - }, - "name": "meta.case.groovy", - "patterns": [ - { - "include": "#groovy-code-minus-map-keys" - } - ] - }, - { - "begin": "\\b(assert)\\s", - "beginCaptures": { - "1": { - "name": "keyword.control.assert.groovy" - } - }, - "end": "$|;|}", - "name": "meta.declaration.assertion.groovy", - "patterns": [ - { - "match": ":", - "name": "keyword.operator.assert.expression-seperator.groovy" - }, - { - "include": "#groovy-code-minus-map-keys" - } - ] - }, - { - "match": "\\b(throws)\\b", - "name": "keyword.other.throws.groovy" - } - ] - }, - "keyword-operator": { - "patterns": [ - { - "match": "\\b(as)\\b", - "name": "keyword.operator.as.groovy" - }, - { - "match": "\\b(in)\\b", - "name": "keyword.operator.in.groovy" - }, - { - "match": "\\?\\:", - "name": "keyword.operator.elvis.groovy" - }, - { - "match": "\\*\\:", - "name": "keyword.operator.spreadmap.groovy" - }, - { - "match": "\\.\\.", - "name": "keyword.operator.range.groovy" - }, - { - "match": "\\->", - "name": "keyword.operator.arrow.groovy" - }, - { - "match": "<<", - "name": "keyword.operator.leftshift.groovy" - }, - { - "match": "(?<=\\S)\\.(?=\\S)", - "name": "keyword.operator.navigation.groovy" - }, - { - "match": "(?<=\\S)\\?\\.(?=\\S)", - "name": "keyword.operator.safe-navigation.groovy" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.groovy" - } - }, - "end": "(?=$|\\)|}|])", - "name": "meta.evaluation.ternary.groovy", - "patterns": [ - { - "match": ":", - "name": "keyword.operator.ternary.expression-seperator.groovy" - }, - { - "include": "#groovy-code-minus-map-keys" - } - ] - }, - { - "match": "==~", - "name": "keyword.operator.match.groovy" - }, - { - "match": "=~", - "name": "keyword.operator.find.groovy" - }, - { - "match": "\\b(instanceof)\\b", - "name": "keyword.operator.instanceof.groovy" - }, - { - "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)", - "name": "keyword.operator.comparison.groovy" - }, - { - "match": "=", - "name": "keyword.operator.assignment.groovy" - }, - { - "match": "(\\-\\-|\\+\\+)", - "name": "keyword.operator.increment-decrement.groovy" - }, - { - "match": "(\\-|\\+|\\*|\\/|%)", - "name": "keyword.operator.arithmetic.groovy" - }, - { - "match": "(!|&&|\\|\\|)", - "name": "keyword.operator.logical.groovy" - } - ] - }, - "language-variables": { - "patterns": [ - { - "match": "\\b(this|super)\\b", - "name": "variable.language.groovy" - } - ] - }, - "map-keys": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.other.key.groovy" - }, - "2": { - "name": "punctuation.definition.seperator.key-value.groovy" - } - }, - "match": "(\\w+)\\s*(:)" - } - ] - }, - "method-call": { - "begin": "([\\w$]+)(\\()", - "beginCaptures": { - "1": { - "name": "meta.method.groovy" - }, - "2": { - "name": "punctuation.definition.method-parameters.begin.groovy" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.method-parameters.end.groovy" - } - }, - "name": "meta.method-call.groovy", - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.seperator.parameter.groovy" - }, - { - "include": "#groovy-code" - } - ] - }, - "method-content": { - "patterns": [ - { - "match": "\\s" - }, - { - "include": "#annotations" - }, - { - "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()", - "end": "(?=[\\w$]+\\s*\\()", - "name": "meta.method.return-type.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#types" - } - ] - }, - { - "begin": "([\\w$]+)\\s*\\(", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - } - }, - "end": "\\)", - "name": "meta.definition.method.signature.java", - "patterns": [ - { - "begin": "(?=[^)])", - "end": "(?=\\))", - "name": "meta.method.parameters.groovy", - "patterns": [ - { - "begin": "(?=[^,)])", - "end": "(?=,|\\))", - "name": "meta.method.parameter.groovy", - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.separator.groovy" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.groovy" - } - }, - "end": "(?=,|\\))", - "name": "meta.parameter.default.groovy", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - { - "include": "#parameters" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=<)", - "end": "(?=\\s)", - "name": "meta.method.paramerised-type.groovy", - "patterns": [ - { - "begin": "<", - "end": ">", - "name": "storage.type.parameters.groovy", - "patterns": [ - { - "include": "#types" - }, - { - "match": ",", - "name": "punctuation.definition.seperator.groovy" - } - ] - } - ] - }, - { - "begin": "throws", - "beginCaptures": { - "0": { - "name": "storage.modifier.groovy" - } - }, - "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))", - "name": "meta.throwables.groovy", - "patterns": [ - { - "include": "#object-types" - } - ] - }, - { - "begin": "{", - "end": "(?=})", - "name": "meta.method.body.java", - "patterns": [ - { - "include": "#groovy-code" - } - ] - } - ] - }, - "methods": { - "applyEndPatternLast": 1, - "begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))", - "end": "}|(?=[^{])", - "name": "meta.definition.method.groovy", - "patterns": [ - { - "include": "#method-content" - } - ] - }, - "nest_curly": { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.groovy" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b", - "name": "constant.numeric.groovy" - } - ] - }, - "object-types": { - "patterns": [ - { - "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<", - "end": ">|[^\\w\\s,\\?<\\[\\]]", - "name": "storage.type.generic.groovy", - "patterns": [ - { - "include": "#object-types" - }, - { - "begin": "<", - "comment": "This is just to support <>'s with no actual type prefix", - "end": ">|[^\\w\\s,\\[\\]<]", - "name": "storage.type.generic.groovy" - } - ] - }, - { - "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)", - "end": "(?=[^\\]\\s])", - "name": "storage.type.object.array.groovy", - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#groovy" - } - ] - } - ] - }, - { - "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b", - "name": "storage.type.groovy" - } - ] - }, - "object-types-inherited": { - "patterns": [ - { - "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<", - "end": ">|[^\\w\\s,\\?<\\[\\]]", - "name": "entity.other.inherited-class.groovy", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "begin": "<", - "comment": "This is just to support <>'s with no actual type prefix", - "end": ">|[^\\w\\s,\\[\\]<]", - "name": "storage.type.generic.groovy" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.dereference.groovy" - } - }, - "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b", - "name": "entity.other.inherited-class.groovy" - } - ] - }, - "parameters": { - "patterns": [ - { - "include": "#annotations" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#types" - }, - { - "match": "\\w+", - "name": "variable.parameter.method.groovy" - } - ] - }, - "parens": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - "primitive-arrays": { - "patterns": [ - { - "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b", - "name": "storage.type.primitive.array.groovy" - } - ] - }, - "primitive-types": { - "patterns": [ - { - "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b", - "name": "storage.type.primitive.groovy" - } - ] - }, - "regexp": { - "patterns": [ - { - "begin": "/(?=[^/]+/([^>]|$))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.begin.groovy" - } - }, - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.end.groovy" - } - }, - "name": "string.regexp.groovy", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - } - ] - }, - { - "begin": "~\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.begin.groovy" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.end.groovy" - } - }, - "name": "string.regexp.compiled.groovy", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - } - ] - } - ] - }, - "storage-modifiers": { - "patterns": [ - { - "match": "\\b(private|protected|public)\\b", - "name": "storage.modifier.access-control.groovy" - }, - { - "match": "\\b(static)\\b", - "name": "storage.modifier.static.groovy" - }, - { - "match": "\\b(final)\\b", - "name": "storage.modifier.final.groovy" - }, - { - "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b", - "name": "storage.modifier.other.groovy" - } - ] - }, - "string-quoted-double": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.double.groovy", - "patterns": [ - { - "include": "#string-quoted-double-contents" - } - ] - }, - "string-quoted-double-contents": { - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - }, - { - "applyEndPatternLast": 1, - "begin": "\\$\\w", - "end": "(?=\\W)", - "name": "variable.other.interpolated.groovy", - "patterns": [ - { - "match": "\\w", - "name": "variable.other.interpolated.groovy" - }, - { - "match": "\\.", - "name": "keyword.other.dereference.groovy" - } - ] - }, - { - "begin": "\\$\\{", - "captures": { - "0": { - "name": "punctuation.section.embedded.groovy" - } - }, - "end": "\\}", - "name": "source.groovy.embedded.source", - "patterns": [ - { - "include": "#nest_curly" - } - ] - } - ] - }, - "string-quoted-double-multiline": { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.double.multiline.groovy", - "patterns": [ - { - "include": "#string-quoted-double-contents" - } - ] - }, - "string-quoted-single": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.single.groovy", - "patterns": [ - { - "include": "#string-quoted-single-contents" - } - ] - }, - "string-quoted-single-contents": { - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - } - ] - }, - "string-quoted-single-multiline": { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.single.multiline.groovy", - "patterns": [ - { - "include": "#string-quoted-single-contents" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#string-quoted-double-multiline" - }, - { - "include": "#string-quoted-single-multiline" - }, - { - "include": "#string-quoted-double" - }, - { - "include": "#string-quoted-single" - }, - { - "include": "#regexp" - } - ] - }, - "structures": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.structure.begin.groovy" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.structure.end.groovy" - } - }, - "name": "meta.structure.groovy", - "patterns": [ - { - "include": "#groovy-code" - }, - { - "match": ",", - "name": "punctuation.definition.separator.groovy" - } - ] - }, - "support-functions": { - "patterns": [ - { - "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b", - "name": "support.function.print.groovy" - }, - { - "match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b", - "name": "support.function.testing.groovy" - } - ] - }, - "types": { - "patterns": [ - { - "match": "\\b(def)\\b", - "name": "storage.type.def.groovy" - }, - { - "include": "#primitive-types" - }, - { - "include": "#primitive-arrays" - }, - { - "include": "#object-types" - } - ] - }, - "values": { - "patterns": [ - { - "include": "#language-variables" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#constants" - }, - { - "include": "#types" - }, - { - "include": "#structures" - }, - { - "include": "#method-call" - } - ] - }, - "variables": { - "applyEndPatternLast": 1, - "patterns": [ - { - "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))", - "end": ";|$", - "name": "meta.definition.variable.groovy", - "patterns": [ - { - "match": "\\s" - }, - { - "captures": { - "1": { - "name": "constant.variable.groovy" - } - }, - "match": "([A-Z_0-9]+)\\s+(?=\\=)" - }, - { - "captures": { - "1": { - "name": "meta.definition.variable.name.groovy" - } - }, - "match": "(\\w[^\\s,]*)\\s+(?=\\=)" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.groovy" - } - }, - "end": "$", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - { - "captures": { - "1": { - "name": "meta.definition.variable.name.groovy" - } - }, - "match": "(\\w[^\\s=]*)(?=\\s*($|;))" - }, - { - "include": "#groovy-code" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/hack.tmLanguage.json b/lib/grammars/hack.tmLanguage.json deleted file mode 100644 index 1b8265d..0000000 --- a/lib/grammars/hack.tmLanguage.json +++ /dev/null @@ -1,2645 +0,0 @@ -{ - "scopeName": "source.hack", - "name": "hack", - "fileTypes": ["hh", "php", "hack"], - "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)", - "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)", - "patterns": [ - { - "include": "text.html.basic" - }, - { - "include": "#language" - } - ], - "repository": { - "class-builtin": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(?i)(\\\\)?\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection)|ursor(Exception)?|lient)|Timestamp|I(nt(32|64)|d)|D(B(Ref)?|ate)|Pool|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(tackable|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Yaf_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|llator)|a(chingIterator|llbackFilterIterator))|T(hread|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tlDateFormatter|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|ZipArchive|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(Zone)?|Interval|Period))|Un(derflowException|expectedValueException)|JsonSerializable|finfo|P(har(Data|FileInfo)?|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|Fil(terIterator|esystemIterator)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(MQP(C(hannel|onnection)|E(nvelope|xchange)|Queue)|ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\b", - "name": "support.class.builtin.php" - } - ] - }, - "class-name": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "begin": "(?=[\\\\a-zA-Z_])", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?:#@\\+)?\\s*$", - "captures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "comment": "This now only highlights a docblock if the first line contains only /**\n- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n- Now matches /**#@+ too - used for docblock templates:\n http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate", - "end": "\\*/", - "name": "comment.block.documentation.phpdoc.php", - "patterns": [ - { - "include": "#php_doc" - } - ] - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "name": "comment.block.php" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.double-slash.php" - } - ] - } - ] - }, - "generics": { - "patterns": [ - { - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.generics.php" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.generics.php" - } - }, - "name": "meta.generics.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generics" - }, - { - "match": "([-+])?([A-Za-z_][A-Za-z0-9_]*)(?:\\s+(as|super)\\s+([A-Za-z_][A-Za-z0-9_]*))?", - "name": "support.type.php" - }, - { - "include": "#type-annotation" - } - ] - } - ] - }, - "implements": { - "patterns": [ - { - "begin": "(?i)(implements)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.php" - } - }, - "end": "(?i)(?=[;{])", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)(?=[a-z0-9_\\\\]+)", - "contentName": "meta.other.inherited-class.php", - "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)", - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_][a-z_0-9]*", - "name": "entity.other.inherited-class.php" - } - ] - } - ] - } - ] - }, - "attributes": { - "patterns": [ - { - "begin": "(<<)(?!<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.attributes.php" - } - }, - "end": "(>>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.attributes.php" - } - }, - "name": "meta.attributes.php", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "([A-Za-z_][A-Za-z0-9_]*)", - "name": "entity.other.attribute-name.php" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.php" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "begin": "(?xi)\n(?=\n (\n (\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n |\n ([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n )\n [^a-z_0-9\\\\]\n)", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "constant.other.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "begin": "(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])", - "end": "(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])", - "patterns": [ - { - "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__)\\b", - "name": "constant.language.php" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b", - "name": "support.constant.core.php" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b", - "name": "support.constant.std.php" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b", - "name": "support.constant.ext.php" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b", - "name": "support.constant.parser-token.php" - }, - { - "comment": "In PHP, any identifier which is not a variable is taken to be a constant.\nHowever, if there is no constant defined with the given name then a notice\nis generated and the constant is assumed to have the value of its name.", - "match": "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*", - "name": "constant.other.php" - } - ] - } - ] - }, - "function-return-type": { - "patterns": [ - { - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.type.php" - } - }, - "end": "(?=[{;])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#type-annotation" - }, - { - "include": "#class-name" - } - ] - } - ] - }, - "type-annotation": { - "name": "support.type.php", - "patterns": [ - { - "match": "\\b(?:bool|int|float|string|resource|mixed|arraykey|nonnull|dict|vec|keyset)\\b", - "name": "support.type.php" - }, - { - "begin": "([A-Za-z_][A-Za-z0-9_]*)<", - "beginCaptures": { - "1": { - "name": "support.class.php" - } - }, - "end": ">", - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - { - "begin": "(shape\\()", - "end": "((,|\\.\\.\\.)?\\s*\\))", - "endCaptures": { - "1": { - "name": "keyword.operator.key.php" - } - }, - "name": "storage.type.shape.php", - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#strings" - }, - { - "include": "#constants" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - { - "include": "#class-name" - }, - { - "include": "#comments" - } - ] - }, - "function-arguments": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attributes" - }, - { - "include": "#type-annotation" - }, - { - "begin": "(?xi)((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name", - "end": "(?xi)\n\\s*(?=,|\\)|$) # A closing parentheses (end of argument list) or a comma", - "beginCaptures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "begin": "(=)", - "end": "(?=,|\\))", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - } - ] - } - ] - }, - "literal-collections": { - "patterns": [ - { - "begin": "(Vector|ImmVector|Set|ImmSet|Map|ImmMap|Pair)\\s*({)", - "end": "(})", - "beginCaptures": { - "1": { - "name": "support.class.php" - }, - "2": { - "name": "punctuation.section.array.begin.php" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.array.end.php" - } - }, - "name": "meta.collection.literal.php", - "patterns": [ - { - "include": "#language" - } - ] - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()", - "comment": "Functions in a user-defined namespace (overrides any built-ins)", - "end": "(?=\\s*\\()", - "patterns": [ - { - "include": "#user-function-call" - } - ] - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.php" - }, - { - "begin": "(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()", - "beginCaptures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "comment": "Root namespace function calls (built-in or user)", - "end": "(?=\\s*\\()", - "patterns": [ - { - "match": "(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()", - "name": "support.function.construct.php" - }, - { - "include": "#support" - }, - { - "include": "#user-function-call" - } - ] - } - ] - }, - "heredoc": { - "patterns": [ - { - "begin": "<<<\\s*(\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.operator.heredoc.php" - } - }, - "end": "^(\\2)(?=;?$)", - "endCaptures": { - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "string.unquoted.heredoc.php", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "begin": "<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.operator.heredoc.php" - } - }, - "end": "^(\\2)(?=;?$)", - "endCaptures": { - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "string.unquoted.heredoc.nowdoc.php" - } - ] - }, - "instantiation": { - "begin": "(?i)(new)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.new.php" - } - }, - "end": "(?i)(?=[^$a-z0-9_\\\\])", - "patterns": [ - { - "match": "(parent|static|self)(?=[^a-z0-9_])", - "name": "support.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - "interpolation": { - "comment": "http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing", - "patterns": [ - { - "comment": "Interpolating octal values e.g. \\01 or \\07.", - "match": "\\\\[0-7]{1,3}", - "name": "constant.numeric.octal.php" - }, - { - "comment": "Interpolating hex values e.g. \\x1 or \\xFF.", - "match": "\\\\x[0-9A-Fa-f]{1,2}", - "name": "constant.numeric.hex.php" - }, - { - "comment": "Escaped characters in double-quoted strings e.g. \\n or \\t.", - "match": "\\\\[nrt\\\\\\$\\\"]", - "name": "constant.character.escape.php" - }, - { - "comment": "Interpolating expressions in double-quoted strings with {} e.g. {$x->y->z[0][1]}.", - "match": "(\\{\\$.*?\\})", - "name": "variable.other.php" - }, - { - "comment": "Interpolating simple variables, e.g. $x, $x->y, $x[z] but not $x->y->z.", - "match": "(\\$[a-zA-Z_][a-zA-Z0-9_]*((->[a-zA-Z_][a-zA-Z0-9_]*)|(\\[[a-zA-Z0-9_]+\\]))?)", - "name": "variable.other.php" - } - ] - }, - "invoke-call": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - }, - "2": { - "name": "variable.other.php" - } - }, - "match": "(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()", - "name": "meta.function-call.invoke.php" - }, - "interface": { - "begin": "^(?i)\\s*(?:(public|internal)\\s+)?(interface)\\b", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "storage.type.interface.php" - } - }, - "name": "meta.interface.php", - "end": "(?=[;{])", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\b(extends)\\b", - "captures": { - "1": { - "name": "storage.modifier.extends.php" - } - } - }, - { - "include": "#generics" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z0-9_]+", - "name": "entity.name.type.class.php" - } - ] - }, - "language": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?=^\\s*<<)", - "end": "(?<=>>)", - "patterns": [ - { - "include": "#attributes" - } - ] - }, - { - "include": "#xhp" - }, - { - "include": "#interface" - }, - { - "begin": "(?xi)\n^\\s*\n(?:(module)\\s*)?(type|newtype)\n\\s+\n([a-z0-9_]+)", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "storage.type.typedecl.php" - }, - "3": { - "name": "entity.name.type.typedecl.php" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "punctuation.termination.expression.php" - } - }, - "name": "meta.typedecl.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generics" - }, - { - "match": "(=)", - "name": "keyword.operator.assignment.php" - }, - { - "include": "#type-annotation" - } - ] - }, - { - "begin": "(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+(class)\\s+([a-z0-9_]+)\\s*:?", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "storage.modifier.php" - }, - "3": { - "name": "storage.type.class.enum.php" - }, - "4": { - "name": "entity.name.type.class.enum.php" - } - }, - "end": "(?=[{])", - "name": "meta.class.enum.php", - "patterns": [ - { - "match": "\\b(extends)\\b", - "name": "storage.modifier.extends.php" - }, - { - "include": "#type-annotation" - } - ] - }, - { - "begin": "(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+([a-z0-9_]+)\\s*:?", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "storage.type.enum.php" - }, - "3": { - "name": "entity.name.type.enum.php" - } - }, - "end": "\\{", - "name": "meta.enum.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#type-annotation" - } - ] - }, - { - "begin": "(?i)^\\s*(?:(public|internal)\\s+)?(trait)\\s+([a-z0-9_]+)\\s*", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "storage.type.trait.php" - }, - "3": { - "name": "entity.name.type.class.php" - } - }, - "end": "(?=[{])", - "name": "meta.trait.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generics" - }, - { - "include": "#implements" - } - ] - }, - { - "begin": "^\\s*(new)\\s+(module)\\s+([A-Za-z0-9_\\.]+)\\b", - "beginCaptures": { - "1": { - "name": "storage.type.module.php" - }, - "2": { - "name": "storage.type.module.php" - }, - "3": { - "name": "entity.name.type.module.php" - } - }, - "end": "(?=[{])", - "name": "meta.module.php", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "begin": "^\\s*(module)\\s+([A-Za-z0-9_\\.]+)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.module.php" - }, - "2": { - "name": "entity.name.type.module.php" - } - }, - "end": "$|(?=[\\s;])", - "name": "meta.use.module.php", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "begin": "(?i)(?:^\\s*|\\s*)(namespace)\\b\\s+(?=([a-z0-9_\\\\]*\\s*($|[;{]|(\\/[\\/*])))|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.php" - } - }, - "contentName": "entity.name.type.namespace.php", - "end": "(?i)(?=\\s*$|[^a-z0-9_\\\\])", - "name": "meta.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - }, - { - "begin": "(?i)\\s*\\b(use)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.use.php" - } - }, - "end": "(?=;|(?:^\\s*$))", - "name": "meta.use.php", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)\\s*(?=[a-z_0-9\\\\])", - "end": "(?xi)\n(?:\n (?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))|\n (?=,|;|$)\n)", - "endCaptures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "name": "support.other.namespace.use-as.php" - } - }, - "patterns": [ - { - "include": "#class-builtin" - }, - { - "begin": "(?i)\\s*(?=[\\\\a-z_0-9])", - "end": "$|(?=[\\s,;])", - "name": "support.other.namespace.use.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - ] - }, - { - "match": "\\s*,\\s*" - } - ] - }, - { - "begin": "(?i)^\\s*((?:(?:final|abstract|public|internal)\\s+)*)(class)\\s+([a-z0-9_]+)\\s*", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|internal", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.class.php" - }, - "3": { - "name": "entity.name.type.class.php" - } - }, - "end": "(?=[;{])", - "name": "meta.class.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generics" - }, - { - "include": "#implements" - }, - { - "begin": "(?i)(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.extends.php" - } - }, - "contentName": "meta.other.inherited-class.php", - "end": "(?i)(?=[^a-z_0-9\\\\])", - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", - "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_][a-z_0-9]*", - "name": "entity.other.inherited-class.php" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.php" - } - }, - "match": "\\s*\\b(await|break|c(ase|ontinue)|concurrent|default|do|else|for(each)?|if|return|switch|use|while)\\b" - }, - { - "begin": "(?i)\\b((?:require|include)(?:_once)?)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.import.include.php" - } - }, - "end": "(?=\\s|;|$)", - "name": "meta.include.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "begin": "\\b(catch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.exception.catch.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "name": "meta.catch.php", - "patterns": [ - { - "include": "#namespace" - }, - { - "match": "(?xi)\n([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable", - "captures": { - "1": { - "name": "support.class.exception.php" - }, - "2": { - "patterns": [ - { - "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "name": "support.class.exception.php" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - } - } - ] - }, - { - "match": "\\b(catch|try|throw|exception|finally)\\b", - "name": "keyword.control.exception.php" - }, - { - "begin": "(?i)\\s*(?:(public|internal)\\s+)?(function)\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "storage.type.function.php" - } - }, - "end": "\\{|\\)", - "name": "meta.function.closure.php", - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.php" - } - }, - "contentName": "meta.function.arguments.php", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.php" - } - }, - "patterns": [ - { - "include": "#function-arguments" - } - ] - }, - { - "begin": "(?i)(use)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.function.use.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.php" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.php" - } - }, - "patterns": [ - { - "captures": { - "1": { - "name": "storage.modifier.reference.php" - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))", - "name": "meta.function.closure.use.php" - } - ] - } - ] - }, - { - "begin": "(?x)\n\\s*((?:(?:final|abstract|public|private|protected|internal|static|async)\\s+)*)\n(function)\n(?:\\s+)\n(?:\n (__(?:call|construct|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic|dispose|disposeAsync)(?=[^a-zA-Z0-9_\\x7f-\\xff]))\n |\n ([a-zA-Z0-9_]+)\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|private|protected|internal|static|async", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.function.php" - }, - "3": { - "name": "support.function.magic.php" - }, - "4": { - "name": "entity.name.function.php" - }, - "5": { - "name": "meta.function.generics.php" - } - }, - "end": "(?=[{;])", - "name": "meta.function.php", - "patterns": [ - { - "include": "#generics" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.php" - } - }, - "end": "(?=\\))", - "contentName": "meta.function.arguments.php", - "patterns": [ - { - "include": "#function-arguments" - } - ] - }, - { - "begin": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.php" - } - }, - "end": "(?=[{;])", - "patterns": [ - { - "include": "#function-return-type" - } - ] - } - ] - }, - { - "include": "#invoke-call" - }, - { - "begin": "(?xi)\n\\s*\n (?=\n [a-z_0-9$\\\\]+(::)\n (?:\n ([a-z_][a-z_0-9]*)\\s*\\(\n |\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n )?\n )", - "end": "(?x)\n(::)\n(?:\n ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n |\n ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n |\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)?", - "endCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "meta.function-call.static.php" - }, - "3": { - "name": "variable.other.class.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - }, - "5": { - "name": "constant.other.class.php" - } - }, - "patterns": [ - { - "match": "(self|static|parent)\\b", - "name": "support.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - { - "include": "#variables" - }, - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.php" - }, - "3": { - "name": "punctuation.definition.array.end.php" - } - }, - "match": "(array)(\\()(\\))", - "name": "meta.array.empty.php" - }, - { - "begin": "(array)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "captures": { - "1": { - "name": "support.type.php" - } - }, - "match": "(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset|arraykey|nonnull|dict|vec|keyset)\\s*\\)" - }, - { - "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object|arraykey|nonnull|dict|vec|keyset)\\b", - "name": "support.type.php" - }, - { - "match": "(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|internal|static)\\b", - "name": "storage.modifier.php" - }, - { - "include": "#object" - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "include": "#heredoc" - }, - { - "match": "\\.=?", - "name": "keyword.operator.string.php" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "match": "==>", - "name": "keyword.operator.lambda.php" - }, - { - "match": "\\|>", - "name": "keyword.operator.pipe.php" - }, - { - "match": "(!==|!=|===|==)", - "name": "keyword.operator.comparison.php" - }, - { - "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "(<=|>=|<|>)", - "name": "keyword.operator.comparison.php" - }, - { - "match": "(\\-\\-|\\+\\+)", - "name": "keyword.operator.increment-decrement.php" - }, - { - "match": "(\\-|\\+|\\*|/|%)", - "name": "keyword.operator.arithmetic.php" - }, - { - "match": "(!|&&|\\|\\|)", - "name": "keyword.operator.logical.php" - }, - { - "begin": "(?i)\\b(as|is)\\b\\s+(?=[\\\\$a-z_])", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.php" - } - }, - "end": "(?=[^\\\\$A-Za-z_0-9])", - "patterns": [ - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - { - "match": "(?i)\\b(is|as)\\b", - "name": "keyword.operator.type.php" - }, - { - "include": "#function-call" - }, - { - "match": "<<|>>|~|\\^|&|\\|", - "name": "keyword.operator.bitwise.php" - }, - { - "include": "#numbers" - }, - { - "include": "#instantiation" - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.php" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "include": "#literal-collections" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.php" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "include": "#constants" - } - ] - }, - "namespace": { - "begin": "(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])", - "beginCaptures": { - "1": { - "name": "entity.name.type.namespace.php" - }, - "3": { - "name": "punctuation.separator.inheritance.php" - } - }, - "end": "(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])", - "name": "support.other.namespace.php", - "patterns": [ - { - "name": "entity.name.type.namespace.php", - "match": "(?i)[a-z0-9_]+(?=\\\\)" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - }, - "match": "(?i)(\\\\)" - } - ] - }, - "numbers": { - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b", - "name": "constant.numeric.php" - }, - "object": { - "patterns": [ - { - "begin": "(->)(\\$?\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "meta.function-call.object.php" - }, - "3": { - "name": "variable.other.property.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?x)\n(->)\n (?:\n ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n |\n ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?" - } - ] - }, - "parameter-default-types": { - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#variables" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "match": "=", - "name": "keyword.operator.assignment.php" - }, - { - "include": "#instantiation" - }, - { - "begin": "(?xi)\n\\s*\n(?=\n [a-z_0-9\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)", - "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?", - "endCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "constant.other.class.php" - } - }, - "patterns": [ - { - "include": "#class-name" - } - ] - }, - { - "include": "#constants" - } - ] - }, - "php_doc": { - "patterns": [ - { - "comment": "PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character", - "match": "^(?!\\s*\\*).*$\\n?", - "name": "invalid.illegal.missing-asterisk.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "3": { - "name": "storage.modifier.php" - }, - "4": { - "name": "invalid.illegal.wrong-access-type.phpdoc.php" - } - }, - "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected|internal)|(.+))\\s*$" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "2": { - "name": "markup.underline.link.php" - } - }, - "match": "(@xlink)\\s+(.+)\\s*$" - }, - { - "match": "\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b", - "name": "keyword.other.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "match": "\\{(@(link)).+?\\}", - "name": "meta.tag.inline.phpdoc.php" - } - ] - }, - "regex-double-quoted": { - "begin": "(?x)\n(?<=re)\"/ (?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.double-quoted.php", - "patterns": [ - { - "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "include": "#interpolation" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "(\\{)\\d+(,\\d+)?(\\})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "regex-single-quoted": { - "begin": "(?x)\n(?<=re)'/ (?=(\\\\.|[^'/])++/[imsxeADSUXu]*')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.single-quoted.php", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "(\\{)\\d+(,\\d+)?(\\})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "comment": "Escaped from the PHP string – there can also be 2 backslashes (since 1 will escape the first)", - "match": "\\\\{1,2}[\\\\']", - "name": "constant.character.escape.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "sql-string-double-quoted": { - "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.sql.php", - "patterns": [ - { - "comment": "Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = \"SELECT (\")\";", - "match": "\\(", - "name": "punctuation.definition.parameters.begin.bracket.round.php" - }, - { - "match": "#(\\\\\"|[^\"])*(?=\"|$\\n?)", - "name": "comment.line.number-sign.sql" - }, - { - "match": "--(\\\\\"|[^\"])*(?=\"|$\\n?)", - "name": "comment.line.double-dash.sql" - }, - { - "match": "\\\\[\\\\\"`']", - "name": "constant.character.escape.php" - }, - { - "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", - "match": "'(?=((\\\\')|[^'\"])*(\"|$))", - "name": "string.quoted.single.unclosed.sql" - }, - { - "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", - "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", - "name": "string.quoted.other.backtick.unclosed.sql" - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.sql", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "begin": "`", - "end": "`", - "name": "string.quoted.other.backtick.sql", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "include": "#interpolation" - }, - { - "include": "source.sql" - } - ] - }, - "sql-string-single-quoted": { - "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.sql.php", - "patterns": [ - { - "comment": "Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = 'SELECT (')';", - "match": "\\(", - "name": "punctuation.definition.parameters.begin.bracket.round.php" - }, - { - "match": "#(\\\\'|[^'])*(?='|$\\n?)", - "name": "comment.line.number-sign.sql" - }, - { - "match": "--(\\\\'|[^'])*(?='|$\\n?)", - "name": "comment.line.double-dash.sql" - }, - { - "match": "\\\\[\\\\'`\"]", - "name": "constant.character.escape.php" - }, - { - "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", - "match": "`(?=((\\\\`)|[^`'])*('|$))", - "name": "string.quoted.other.backtick.unclosed.sql" - }, - { - "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", - "match": "\"(?=((\\\\\")|[^\"'])*('|$))", - "name": "string.quoted.double.unclosed.sql" - }, - { - "include": "source.sql" - } - ] - }, - "string-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "comment": "This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes", - "contentName": "meta.string-contents.quoted.double.php", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.php", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - "string-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "meta.string-contents.quoted.single.php", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.php", - "patterns": [ - { - "match": "\\\\[\\\\']", - "name": "constant.character.escape.php" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#regex-double-quoted" - }, - { - "include": "#sql-string-double-quoted" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#regex-single-quoted" - }, - { - "include": "#sql-string-single-quoted" - }, - { - "include": "#string-single-quoted" - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b", - "name": "support.function.apc.php" - }, - { - "match": "(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b", - "name": "support.function.array.php" - }, - { - "match": "(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|timeout|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b", - "name": "support.function.basic_functions.php" - }, - { - "match": "(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b", - "name": "support.function.bcmath.php" - }, - { - "match": "(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b", - "name": "support.function.bz2.php" - }, - { - "match": "(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b", - "name": "support.function.calendar.php" - }, - { - "match": "(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b", - "name": "support.function.classobj.php" - }, - { - "match": "(?i)\\b(com_(set|create_guid|i(senum|nvoke)|pr(int_typeinfo|op(set|put|get))|event_sink|load(_typelib)?|addref|release|get(_active_object)?|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b", - "name": "support.function.com.php" - }, - { - "match": "(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b", - "name": "support.function.ctype.php" - }, - { - "match": "(?i)\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo|multi_(select|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b", - "name": "support.function.curl.php" - }, - { - "match": "(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_from_format)?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b", - "name": "support.function.datetime.php" - }, - { - "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b", - "name": "support.function.dba.php" - }, - { - "match": "(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b", - "name": "support.function.dbx.php" - }, - { - "match": "(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b", - "name": "support.function.dir.php" - }, - { - "match": "(?i)\\bdotnet_load\\b", - "name": "support.function.dotnet.php" - }, - { - "match": "(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b", - "name": "support.function.eio.php" - }, - { - "match": "(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b", - "name": "support.function.enchant.php" - }, - { - "match": "(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b", - "name": "support.function.ereg.php" - }, - { - "match": "(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b", - "name": "support.function.errorfunc.php" - }, - { - "match": "(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b", - "name": "support.function.exec.php" - }, - { - "match": "(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b", - "name": "support.function.exif.php" - }, - { - "match": "(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b", - "name": "support.function.file.php" - }, - { - "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", - "name": "support.function.fileinfo.php" - }, - { - "match": "(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b", - "name": "support.function.filter.php" - }, - { - "match": "(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b", - "name": "support.function.funchand.php" - }, - { - "match": "(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b", - "name": "support.function.gettext.php" - }, - { - "match": "(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\\b", - "name": "support.function.gmp.php" - }, - { - "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|fi(nal|le)|algos))?\\b", - "name": "support.function.hash.php" - }, - { - "match": "(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b", - "name": "support.function.http.php" - }, - { - "match": "(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", - "name": "support.function.iconv.php" - }, - { - "match": "(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b", - "name": "support.function.iisfunc.php" - }, - { - "match": "(?i)\\b(i(ptc(parse|embed)|mage(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|l(ine|oadfont|ayereffect)|a(ntialias|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b", - "name": "support.function.image.php" - }, - { - "match": "(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b", - "name": "support.function.info.php" - }, - { - "match": "(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b", - "name": "support.function.interbase.php" - }, - { - "match": "(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl_(is_failure|error_name|get_error_(code|message))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b", - "name": "support.function.intl.php" - }, - { - "match": "(?i)\\bjson_(decode|encode|last_error)\\b", - "name": "support.function.json.php" - }, - { - "match": "(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify|_(del|add|replace))|bind)\\b", - "name": "support.function.ldap.php" - }, - { - "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", - "name": "support.function.libxml.php" - }, - { - "match": "(?i)\\b(ezmlm_hash|mail)\\b", - "name": "support.function.mail.php" - }, - { - "match": "(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b", - "name": "support.function.math.php" - }, - { - "match": "(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b", - "name": "support.function.mbstring.php" - }, - { - "match": "(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b", - "name": "support.function.mcrypt.php" - }, - { - "match": "(?i)\\bmemcache_debug\\b", - "name": "support.function.memcache.php" - }, - { - "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", - "name": "support.function.mhash.php" - }, - { - "match": "(?i)\\bbson_(decode|encode)\\b", - "name": "support.function.mongo.php" - }, - { - "match": "(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b", - "name": "support.function.mysql.php" - }, - { - "match": "(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|metadata)|m(ore_results|ulti_query|aster_query)|bind_(param|result))\\b", - "name": "support.function.mysqli.php" - }, - { - "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", - "name": "support.function.mysqlnd-memcache.php" - }, - { - "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|query_is_select|get_(stats|last_(used_connection|gtid))|match_wild)\\b", - "name": "support.function.mysqlnd-ms.php" - }, - { - "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b", - "name": "support.function.mysqlnd-qc.php" - }, - { - "match": "(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b", - "name": "support.function.mysqlnd-uh.php" - }, - { - "match": "(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b", - "name": "support.function.network.php" - }, - { - "match": "(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b", - "name": "support.function.nsapi.php" - }, - { - "match": "(?i)\\b(deaggregate|aggregat(ion_info|e(_(info|properties(_by_(list|regexp))?|methods(_by_(list|regexp))?))?))\\b", - "name": "support.function.objaggregation.php" - }, - { - "match": "(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b", - "name": "support.function.oci8.php" - }, - { - "match": "(?i)\\bopenssl_(s(ign|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(cipher_methods|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\\b", - "name": "support.function.openssl.php" - }, - { - "match": "(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b", - "name": "support.function.output.php" - }, - { - "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", - "name": "support.function.password.php" - }, - { - "match": "(?i)\\bpcntl_(s(ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|exec|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\\b", - "name": "support.function.pcntl.php" - }, - { - "match": "(?i)\\bpg_(se(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b", - "name": "support.function.pgsql.php" - }, - { - "match": "(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b", - "name": "support.function.php_apache.php" - }, - { - "match": "(?i)\\bdom_import_simplexml\\b", - "name": "support.function.php_dom.php" - }, - { - "match": "(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b", - "name": "support.function.php_ftp.php" - }, - { - "match": "(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b", - "name": "support.function.php_imap.php" - }, - { - "match": "(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b", - "name": "support.function.php_mssql.php" - }, - { - "match": "(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b", - "name": "support.function.php_odbc.php" - }, - { - "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", - "name": "support.function.php_pcre.php" - }, - { - "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", - "name": "support.function.php_spl.php" - }, - { - "match": "(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b", - "name": "support.function.php_zip.php" - }, - { - "match": "(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b", - "name": "support.function.posix.php" - }, - { - "match": "(?i)\\bset(threadtitle|proctitle)\\b", - "name": "support.function.proctitle.php" - }, - { - "match": "(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b", - "name": "support.function.pspell.php" - }, - { - "match": "(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b", - "name": "support.function.readline.php" - }, - { - "match": "(?i)\\brecode(_(string|file))?\\b", - "name": "support.function.recode.php" - }, - { - "match": "(?i)\\brrd_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport)\\b", - "name": "support.function.rrd.php" - }, - { - "match": "(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b", - "name": "support.function.sem.php" - }, - { - "match": "(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister(_shutdown)?|enerate_id)|get_cookie_params|module_name)\\b", - "name": "support.function.session.php" - }, - { - "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", - "name": "support.function.shmop.php" - }, - { - "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", - "name": "support.function.simplexml.php" - }, - { - "match": "(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b", - "name": "support.function.snmp.php" - }, - { - "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", - "name": "support.function.soap.php" - }, - { - "match": "(?i)\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|import_stream|write|l(isten|ast_error)|accept|re(cv(from)?|ad)|get(sockname|_option|peername)|bind)\\b", - "name": "support.function.sockets.php" - }, - { - "match": "(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b", - "name": "support.function.sqlite.php" - }, - { - "match": "(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b", - "name": "support.function.sqlsrv.php" - }, - { - "match": "(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b", - "name": "support.function.stats.php" - }, - { - "match": "(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b", - "name": "support.function.streamsfuncs.php" - }, - { - "match": "(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b", - "name": "support.function.string.php" - }, - { - "match": "(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b", - "name": "support.function.sybase.php" - }, - { - "match": "(?i)\\b(taint|is_tainted|untaint)\\b", - "name": "support.function.taint.php" - }, - { - "match": "(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b", - "name": "support.function.tidy.php" - }, - { - "match": "(?i)\\btoken_(name|get_all)\\b", - "name": "support.function.tokenizer.php" - }, - { - "match": "(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b", - "name": "support.function.trader.php" - }, - { - "match": "(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b", - "name": "support.function.url.php" - }, - { - "match": "(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool|arraykey|nonnull|dict|vec|keyset))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b", - "name": "support.function.var.php" - }, - { - "match": "(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b", - "name": "support.function.wddx.php" - }, - { - "match": "(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b", - "name": "support.function.xhprof.php" - }, - { - "match": "(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b", - "name": "support.function.xml.php" - }, - { - "match": "(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b", - "name": "support.function.xmlrpc.php" - }, - { - "match": "(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b", - "name": "support.function.xmlwriter.php" - }, - { - "match": "(?i)\\bxslt_(set(opt|_(s(cheme_handler(s)?|ax_handler(s)?)|object|e(ncoding|rror_handler)|log|base))|create|process|err(no|or)|free|getopt|backend_(name|info|version))\\b", - "name": "support.function.xslt.php" - }, - { - "match": "(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b", - "name": "support.function.zlib.php" - }, - { - "match": "(?i)\\bis_int(eger)?\\b", - "name": "support.function.alias.php" - } - ] - }, - "user-function-call": { - "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()", - "end": "(?i)[a-z_][a-z_0-9]*(?=\\s*\\()", - "endCaptures": { - "0": { - "name": "entity.name.function.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#namespace" - } - ] - }, - "var_basic": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?x)\n(\\$+)\n[a-zA-Z_\\x{7f}-\\x{ff}]\n[a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\n\\b", - "name": "variable.other.php" - } - ] - }, - "var_global": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", - "name": "variable.other.global.php" - }, - "var_global_safer": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", - "name": "variable.other.global.safer.php" - }, - "variable-name": { - "patterns": [ - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "keyword.operator.class.php" - }, - "5": { - "name": "variable.other.property.php" - }, - "6": { - "name": "punctuation.section.array.begin.php" - }, - "7": { - "name": "constant.numeric.index.php" - }, - "8": { - "name": "variable.other.index.php" - }, - "9": { - "name": "punctuation.definition.variable.php" - }, - "10": { - "name": "string.unquoted.index.php" - }, - "11": { - "name": "punctuation.section.array.end.php" - } - }, - "comment": "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar", - "match": "(?x)\n((\\$)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g<name>)\n |\n (\\[)\n (?:(\\d+)|((\\$)\\g<name>)|(\\w+))\n (\\])\n)?" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "comment": "Simple syntax with braces: \"foo${bar}baz\"", - "match": "(?x)\n((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))" - } - ] - }, - "variables": { - "patterns": [ - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "include": "#var_basic" - }, - { - "begin": "(\\$\\{)(?=.*?\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "#language" - } - ] - } - ] - }, - "xhp": { - "comment": "Avoid < operator expressions as best we can using Zertosh's regex", - "patterns": [ - { - "contentName": "source.xhp", - "begin": "(?<=\\(|\\{|\\[|,|&&|\\|\\||\\?|:|=|=>|\\Wreturn|^return|^)\\s*(?=<[_\\p{L}])", - "end": "(?=.)", - "applyEndPatternLast": 1, - "patterns": [ - { - "include": "#xhp-tag-element-name" - } - ] - } - ] - }, - "xhp-tag-element-name": { - "patterns": [ - { - "comment": "Tags that end > are trapped in #xhp-tag-termination", - "begin": "\\s*(<)([_\\p{L}](?:[:\\p{L}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Nl}\\p{Pc}-])*+)(?=[/>\\s])(?<![\\:])", - "end": "\\s*(?<=</)(\\2)(>)|(/>)|((?<=</)[\\S ]*?)>", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.xhp" - }, - "2": { - "name": "entity.name.tag.open.xhp" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.tag.close.xhp" - }, - "2": { - "name": "punctuation.definition.tag.xhp" - }, - "3": { - "name": "punctuation.definition.tag.xhp" - }, - "4": { - "name": "invalid.illegal.termination.xhp" - } - }, - "patterns": [ - { - "include": "#xhp-tag-termination" - }, - { - "include": "#xhp-html-comments" - }, - { - "include": "#xhp-tag-attributes" - } - ] - } - ] - }, - "xhp-tag-termination": { - "patterns": [ - { - "comment": "uses non consuming search for </ in </tag>", - "begin": "(?<!--)(>)", - "end": "(</)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.xhp" - }, - "1": { - "name": "XHPStartTagEnd" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.xhp" - }, - "1": { - "name": "XHPEndTagStart" - } - }, - "patterns": [ - { - "include": "#xhp-evaluated-code" - }, - { - "include": "#xhp-entities" - }, - { - "include": "#xhp-html-comments" - }, - { - "include": "#xhp-tag-element-name" - } - ] - } - ] - }, - "xhp-tag-attributes": { - "patterns": [ - { - "include": "#xhp-attribute-name" - }, - { - "include": "#xhp-assignment" - }, - { - "include": "#xhp-string-double-quoted" - }, - { - "include": "#xhp-string-single-quoted" - }, - { - "include": "#xhp-evaluated-code" - }, - { - "include": "#xhp-tag-element-name" - }, - { - "include": "#comments" - } - ] - }, - "xhp-attribute-name": { - "patterns": [ - { - "comment": "look for attribute name", - "match": "(?<!\\S)([_\\p{L}](?:[\\p{L}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Nl}\\p{Pc}-](?<!\\.\\.))*+)(?<!\\.)(?=//|/\\*|=|\\s|>|/>)", - "captures": { - "0": { - "name": "entity.other.attribute-name.xhp" - } - } - } - ] - }, - "xhp-assignment": { - "patterns": [ - { - "comment": "look for attribute assignment", - "name": "keyword.operator.assignment.xhp", - "match": "=(?=\\s*(?:'|\"|{|/\\*|<|//|\\n))" - } - ] - }, - "xhp-string-double-quoted": { - "name": "string.quoted.double.php", - "begin": "\"", - "end": "\"(?<!\\\\\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xhp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xhp" - } - }, - "patterns": [ - { - "include": "#xhp-entities" - } - ] - }, - "xhp-string-single-quoted": { - "name": "string.quoted.single.php", - "begin": "'", - "end": "'(?<!\\\\')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xhp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xhp" - } - }, - "patterns": [ - { - "include": "#xhp-entities" - } - ] - }, - "xhp-evaluated-code": { - "name": "meta.embedded.expression.php", - "begin": "{", - "end": "}", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.xhp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.xhp" - } - }, - "contentName": "source.php.xhp", - "patterns": [ - { - "include": "#language" - } - ] - }, - "xhp-entities": { - "patterns": [ - { - "comment": "Embeded HTML entities &blah", - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "captures": { - "0": { - "name": "constant.character.entity.xhp" - }, - "1": { - "name": "punctuation.definition.entity.xhp" - }, - "2": { - "name": "entity.name.tag.html.xhp" - }, - "3": { - "name": "punctuation.definition.entity.xhp" - } - } - }, - { - "comment": "Entity with & and invalid name", - "match": "&\\S*;", - "name": "invalid.illegal.bad-ampersand.xhp" - } - ] - }, - "xhp-html-comments": { - "begin": "<!--", - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - }, - "end": "--\\s*>", - "name": "comment.block.html", - "patterns": [ - { - "match": "--(?!-*\\s*>)", - "name": "invalid.illegal.bad-comments-or-CDATA.html" - } - ] - } - } -} diff --git a/lib/grammars/haml.tmLanguage.json b/lib/grammars/haml.tmLanguage.json deleted file mode 100644 index c1220ee..0000000 --- a/lib/grammars/haml.tmLanguage.json +++ /dev/null @@ -1,596 +0,0 @@ -{ - "fileTypes": ["haml", "html.haml"], - "foldingStartMarker": "^\\s*([-%#\\:\\.\\w\\=].*)\\s$", - "foldingStopMarker": "^\\s*$", - "keyEquivalent": "^~H", - "name": "haml", - "patterns": [ - { - "begin": "^(\\s*)==", - "contentName": "string.quoted.double.ruby", - "end": "$\\n*", - "patterns": [ - { - "include": "#interpolated_ruby" - } - ] - }, - { - "begin": "^(\\s*):ruby", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "source.ruby.embedded.filter.haml", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.prolog.haml" - } - }, - "match": "^(!!!)($|\\s.*)", - "name": "meta.prolog.haml" - }, - { - "begin": "^(\\s*):javascript", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "js.haml", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "^(\\s*)%script", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "js.inline.haml", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "^(\\s*):ruby$", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "source.ruby.embedded.filter.haml", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.section.comment.haml" - } - }, - "match": "^(\\s*)(\\/\\[[^\\]].*?$\\n?)", - "name": "comment.line.slash.haml" - }, - { - "begin": "^(\\s*)(\\-\\#|\\/|\\-\\s*\\/\\*+)", - "beginCaptures": { - "2": { - "name": "punctuation.section.comment.haml" - } - }, - "end": "^(?!\\1\\s+|\\n)", - "name": "comment.block.haml", - "patterns": [ - { - "include": "text.haml" - } - ] - }, - { - "begin": "^\\s*(?:((%)([-\\w:]+))|(?=\\.|#))", - "end": "$|(?!\\.|#|\\{|\\(|\\[|&|=|-|~|!=|&=|/)", - "captures": { - "1": { - "name": "meta.tag.haml" - }, - "2": { - "name": "punctuation.definition.tag.haml" - }, - "3": { - "name": "entity.name.tag.haml" - } - }, - "patterns": [ - { - "begin": "==", - "contentName": "string.quoted.double.ruby", - "end": "$\\n?", - "patterns": [ - { - "include": "#interpolated_ruby" - } - ] - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.class" - } - }, - "match": "(\\.[\\w\\-\\:]+)", - "name": "meta.selector.css" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.id" - } - }, - "match": "(#[\\w-]+)", - "name": "meta.selector.css" - }, - { - "begin": "(?<!\\#)\\{(?=.*(,|(do)|\\{|\\}|\\||(\\#.*)|\\R)\\s*)", - "end": "\\s*\\}(?!\\s*\\,)(?!\\s*\\|)(?!\\#\\{.*\\})", - "name": "meta.section.attributes.haml", - "patterns": [ - { - "include": "source.ruby" - }, - { - "include": "#continuation" - }, - { - "include": "#rubyline" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "name": "meta.section.attributes.plain.haml", - "patterns": [ - { - "match": "([\\w-]+)", - "name": "constant.other.symbol.ruby" - }, - { - "match": "\\=", - "name": "punctuation" - }, - { - "include": "#variables" - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.ruby", - "patterns": [ - { - "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)", - "name": "constant.character.escape.ruby" - }, - { - "include": "#interpolated_ruby" - } - ] - }, - { - "include": "#interpolated_ruby" - } - ] - }, - { - "begin": "\\[(?=.+(,|\\[|\\]|\\||(\\#.*))\\s*)", - "end": "\\s*\\](?!.*(?!\\#\\[)\\])", - "name": "meta.section.object.haml", - "patterns": [ - { - "include": "source.ruby" - }, - { - "include": "#continuation" - }, - { - "include": "#rubyline" - } - ] - }, - { - "include": "#interpolated_ruby_line" - }, - { - "include": "#rubyline" - }, - { - "match": "/", - "name": "punctuation.terminator.tag.haml" - } - ] - }, - { - "begin": "^(\\s*):(ruby|opal)$", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "source.ruby.embedded.filter.haml", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "begin": "^(\\s*):ruby$", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "source.ruby.embedded.filter.haml", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "begin": "^(\\s*):(style|sass)$", - "end": "^(?=\\1\\s+|$\\n*)", - "name": "source.sass.embedded.filter.haml", - "patterns": [ - { - "include": "source.sass" - } - ] - }, - { - "begin": "^(\\s*):coffee(script)?", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "source.coffee.embedded.filter.haml", - "patterns": [ - { - "include": "source.coffee" - } - ] - }, - { - "begin": "^(\\s*):plain$", - "end": "^(?=\\1\\s+|$\\n*)", - "name": "text.plain.embedded.filter.haml", - "patterns": [ - { - "include": "text.plain" - } - ] - }, - { - "begin": "^(\\s*)(:ruby)", - "beginCaptures": { - "2": { - "name": "keyword.control.filter.haml" - } - }, - "end": "(?m:(?<=\\n)(?!\\1\\s+|$\\n*))", - "name": "source.ruby.embedded.filter.haml", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "begin": "^(\\s*)(:sass)", - "beginCaptures": { - "2": { - "name": "keyword.control.filter.haml" - } - }, - "end": "^(?!\\1\\s+|$\\n*)", - "name": "source.embedded.filter.sass", - "patterns": [ - { - "include": "source.sass" - } - ] - }, - { - "begin": "^(\\s*):(styles|sass)$", - "end": "^(?=\\1\\s+|$\\n*)", - "name": "source.sass.embedded.filter.haml", - "patterns": [ - { - "include": "source.sass" - } - ] - }, - { - "begin": "^(\\s*):plain$", - "end": "^(?=\\1\\s+|$\\n*)", - "name": "text.plain.embedded.filter.haml", - "patterns": [ - { - "include": "text.plain" - } - ] - }, - { - "captures": { - "1": { - "name": "meta.escape.haml" - } - }, - "match": "^\\s*(\\.)" - }, - { - "begin": "^\\s*(?==|-|~|!=|&=)", - "end": "$", - "patterns": [ - { - "include": "#interpolated_ruby_line" - }, - { - "include": "#rubyline" - } - ] - }, - { - "begin": "^(\\s*)(:php)", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "meta.embedded.php", - "captures": { - "2": { - "name": "entity.name.tag.haml" - } - }, - "patterns": [ - { - "include": "text.html.php#language" - } - ] - }, - { - "begin": "^(\\s*)(:markdown)", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "meta.embedded.markdown", - "captures": { - "2": { - "name": "entity.name.tag.haml" - } - }, - "patterns": [ - { - "include": "text.html.markdown" - } - ] - }, - { - "begin": "^(\\s*)(:(css|styles?))$", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "meta.embedded.css", - "captures": { - "2": { - "name": "entity.name.tag.haml" - } - }, - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "^(\\s*)(:sass)$", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "meta.embedded.sass", - "captures": { - "2": { - "name": "entity.name.tag.haml" - } - }, - "patterns": [ - { - "include": "source.sass" - } - ] - }, - { - "begin": "^(\\s*)(:scss)$", - "end": "^(?!\\1\\s+|$\\n*)", - "name": "meta.embedded.scss", - "captures": { - "2": { - "name": "entity.name.tag.haml" - } - }, - "patterns": [ - { - "include": "source.scss" - } - ] - } - ], - "repository": { - "continuation": { - "captures": { - "1": { - "name": "punctuation.separator.continuation.haml" - } - }, - "match": "(\\|)\\s*\\n" - }, - "interpolated_ruby": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.section.embedded.ruby" - }, - "1": { - "name": "source.ruby.embedded.source.empty" - } - }, - "match": "#\\{(\\})", - "name": "source.ruby.embedded.source" - }, - { - "begin": "#\\{", - "captures": { - "0": { - "name": "punctuation.section.embedded.ruby" - } - }, - "end": "(\\})", - "name": "source.ruby.embedded.source", - "patterns": [ - { - "include": "#nest_curly_and_self" - }, - { - "include": "source.ruby" - } - ] - }, - { - "include": "#variables" - } - ] - }, - "interpolated_ruby_line": { - "begin": "!?==", - "contentName": "string.source.ruby.embedded.haml", - "end": "$", - "name": "meta.line.ruby.interpolated.haml", - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "source.ruby#escaped_char" - } - ] - }, - "nest_curly_and_self": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly_and_self" - }, - { - "include": "source.ruby" - } - ] - } - ] - }, - "variables": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.instance.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#@@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.class.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#\\$)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.global.ruby" - } - ] - }, - "rubyline": { - "begin": "(&|!)?(=|-|~)", - "contentName": "source.ruby.embedded.haml", - "end": "((do|\\{)( \\|[.*]+\\|)?)$|$|^(?!.*\\|\\s*)$\\n?", - "endCaptures": { - "1": { - "name": "source.ruby.embedded.html" - }, - "2": { - "name": "keyword.control.ruby.start-block" - } - }, - "name": "meta.line.ruby.haml", - "patterns": [ - { - "match": "\\s+((elseif|foreach|switch|declare|default|use))(?=\\s|\\()", - "captures": { - "1": { - "name": "keyword.control.php" - } - } - }, - { - "match": "\\s+(require_once|include_once)(?=\\s|\\()", - "captures": { - "1": { - "name": "keyword.control.import.include.php" - } - } - }, - { - "match": "\\s+(catch|try|throw|exception|finally|die)(?=\\s|\\(|\\n*)", - "name": "keyword.control.exception.php" - }, - { - "match": "\\s+(function\\s*)((?=\\())", - "captures": { - "1": { - "name": "storage.type.function.php" - } - } - }, - { - "match": "\\s+(use\\s*)((?=\\())", - "captures": { - "1": { - "name": "keyword.control.php" - } - } - }, - { - "match": "(\\||,|<|do|\\{)\\s*(\\#.*)?$\\n*", - "name": "source.ruby", - "patterns": [ - { - "include": "#rubyline" - } - ] - }, - { - "comment": "Hack to let ruby comments work in this context properly", - "match": "#.*$", - "name": "comment.line.number-sign.ruby" - }, - { - "include": "source.ruby" - }, - { - "include": "#continuation" - } - ] - } - }, - "scopeName": "text.haml", - "uuid": "3D727049-DD05-45DF-92A5-D50EA36FD035" -} diff --git a/lib/grammars/handlebars.tmLanguage.json b/lib/grammars/handlebars.tmLanguage.json deleted file mode 100644 index 6cf744e..0000000 --- a/lib/grammars/handlebars.tmLanguage.json +++ /dev/null @@ -1,852 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/daaain/Handlebars/blob/master/grammars/Handlebars.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/daaain/Handlebars/commit/85a153a6f759df4e8da7533e1b3651f007867c51", - "name": "handlebars", - "scopeName": "text.html.handlebars", - "patterns": [ - { - "include": "#yfm" - }, - { - "include": "#extends" - }, - { - "include": "#block_comments" - }, - { - "include": "#comments" - }, - { - "include": "#block_helper" - }, - { - "include": "#end_block" - }, - { - "include": "#else_token" - }, - { - "include": "#partial_and_var" - }, - { - "include": "#inline_script" - }, - { - "include": "#html_tags" - }, - { - "include": "text.html.basic" - } - ], - "repository": { - "html_tags": { - "patterns": [ - { - "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*></\\2>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(>(<)/)(\\2)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "meta.scope.between-tag-pair.html" - }, - "3": { - "name": "entity.name.tag.html" - }, - "4": { - "name": "punctuation.definition.tag.html" - } - }, - "name": "meta.tag.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(<\\?)(xml)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.xml.html" - } - }, - "end": "(\\?>)", - "name": "meta.tag.preprocessor.xml.html", - "patterns": [ - { - "include": "#tag_generic_attribute" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "<!--", - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - }, - "end": "--\\s*>", - "name": "comment.block.html", - "patterns": [ - { - "match": "--", - "name": "invalid.illegal.bad-comments-or-CDATA.html" - } - ] - }, - { - "begin": "<!", - "captures": { - "0": { - "name": "punctuation.definition.tag.html" - } - }, - "end": ">", - "name": "meta.tag.sgml.html", - "patterns": [ - { - "begin": "(DOCTYPE|doctype)", - "captures": { - "1": { - "name": "entity.name.tag.doctype.html" - } - }, - "end": "(?=>)", - "name": "meta.tag.sgml.doctype.html", - "patterns": [ - { - "match": "\"[^\">]*\"", - "name": "string.quoted.double.doctype.identifiers-and-DTDs.html" - } - ] - }, - { - "begin": "\\[CDATA\\[", - "end": "]](?=>)", - "name": "constant.other.inline-data.html" - }, - { - "match": "(\\s*)(?!--|>)\\S(\\s*)", - "name": "invalid.illegal.bad-comments-or-CDATA.html" - } - ] - }, - { - "begin": "(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.style.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "end": "(</)((?i:style))(>)(?:\\s*\\n)?", - "name": "source.css.embedded.html", - "patterns": [ - { - "include": "#tag-stuff" - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - } - }, - "end": "(?=</(?i:style))", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - { - "begin": "(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.script.html" - } - }, - "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?", - "endCaptures": { - "2": { - "name": "punctuation.definition.tag.html" - } - }, - "name": "source.js.embedded.html", - "patterns": [ - { - "include": "#tag-stuff" - }, - { - "begin": "(?<!</(?:script|SCRIPT))(>)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.script.html" - } - }, - "end": "(</)((?i:script))", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.js" - } - }, - "match": "(//).*?((?=</script)|$\\n?)", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "\\*/|(?=</script)", - "name": "comment.block.js" - }, - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "(</?)((?i:body|head|html)\\b)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.structure.any.html" - } - }, - "end": "(>)", - "name": "meta.tag.structure.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.block.any.html" - } - }, - "end": "(>)", - "name": "meta.tag.block.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.inline.any.html" - } - }, - "end": "((?: ?/)?>)", - "name": "meta.tag.inline.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)([a-zA-Z0-9:-]+)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.other.html" - } - }, - "end": "(>)", - "name": "meta.tag.other.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)([a-zA-Z0-9{}:-]+)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.tokenised.html" - } - }, - "end": "(>)", - "name": "meta.tag.tokenised.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "include": "#entities" - }, - { - "match": "<>", - "name": "invalid.illegal.incomplete.html" - }, - { - "match": "<", - "name": "invalid.illegal.bad-angle-bracket.html" - } - ] - }, - "entities": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - }, - "name": "constant.character.entity.html", - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)" - }, - { - "name": "invalid.illegal.bad-ampersand.html", - "match": "&" - } - ] - }, - "end_block": { - "begin": "(\\{\\{)(~?/)([a-zA-Z0-9/_\\.-]+)\\s*", - "end": "(~?\\}\\})", - "name": "meta.function.block.end.handlebars", - "endCaptures": { - "1": { - "name": "support.constant.handlebars" - } - }, - "beginCaptures": { - "1": { - "name": "support.constant.handlebars" - }, - "2": { - "name": "support.constant.handlebars keyword.control" - }, - "3": { - "name": "support.constant.handlebars keyword.control" - } - }, - "patterns": [] - }, - "yfm": { - "patterns": [ - { - "patterns": [ - { - "include": "source.yaml" - } - ], - "begin": "(?<!\\s)---\\n$", - "end": "^---\\s", - "name": "markup.raw.yaml.front-matter" - } - ] - }, - "comments": { - "patterns": [ - { - "patterns": [ - { - "name": "keyword.annotation.handlebars", - "match": "@\\w*" - }, - { - "include": "#comments" - } - ], - "begin": "\\{\\{!", - "end": "\\}\\}", - "name": "comment.block.handlebars" - }, - { - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - }, - "begin": "<!--", - "end": "-{2,3}\\s*>", - "name": "comment.block.html", - "patterns": [ - { - "name": "invalid.illegal.bad-comments-or-CDATA.html", - "match": "--" - } - ] - } - ] - }, - "block_comments": { - "patterns": [ - { - "patterns": [ - { - "name": "keyword.annotation.handlebars", - "match": "@\\w*" - }, - { - "include": "#comments" - } - ], - "begin": "\\{\\{!--", - "end": "--\\}\\}", - "name": "comment.block.handlebars" - }, - { - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - }, - "begin": "<!--", - "end": "-{2,3}\\s*>", - "name": "comment.block.html", - "patterns": [ - { - "name": "invalid.illegal.bad-comments-or-CDATA.html", - "match": "--" - } - ] - } - ] - }, - "block_helper": { - "begin": "(\\{\\{)(~?\\#)([-a-zA-Z0-9_\\./>]+)\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*", - "end": "(~?\\}\\})", - "name": "meta.function.block.start.handlebars", - "endCaptures": { - "1": { - "name": "support.constant.handlebars" - } - }, - "beginCaptures": { - "1": { - "name": "support.constant.handlebars" - }, - "2": { - "name": "support.constant.handlebars keyword.control" - }, - "3": { - "name": "support.constant.handlebars keyword.control" - }, - "4": { - "name": "variable.parameter.handlebars" - }, - "5": { - "name": "support.constant.handlebars" - }, - "6": { - "name": "variable.parameter.handlebars" - }, - "7": { - "name": "support.constant.handlebars" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "include": "#handlebars_attribute" - } - ] - }, - "string-single-quoted": { - "begin": "'", - "end": "'", - "name": "string.quoted.single.handlebars", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "patterns": [ - { - "include": "#escaped-single-quote" - }, - { - "include": "#block_comments" - }, - { - "include": "#comments" - }, - { - "include": "#block_helper" - }, - { - "include": "#else_token" - }, - { - "include": "#end_block" - }, - { - "include": "#partial_and_var" - } - ] - }, - "string": { - "patterns": [ - { - "include": "#string-single-quoted" - }, - { - "include": "#string-double-quoted" - } - ] - }, - "escaped-single-quote": { - "name": "constant.character.escape.js", - "match": "\\\\'" - }, - "escaped-double-quote": { - "name": "constant.character.escape.js", - "match": "\\\\\"" - }, - "partial_and_var": { - "begin": "(\\{\\{~?\\{*(>|!<)*)\\s*(@?[-a-zA-Z0-9$_\\./]+)*", - "end": "(~?\\}\\}\\}*)", - "name": "meta.function.inline.other.handlebars", - "beginCaptures": { - "1": { - "name": "support.constant.handlebars" - }, - "3": { - "name": "variable.parameter.handlebars" - } - }, - "endCaptures": { - "1": { - "name": "support.constant.handlebars" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "include": "#handlebars_attribute" - } - ] - }, - "handlebars_attribute_name": { - "begin": "\\b([-a-zA-Z0-9_\\.]+)\\b=", - "captures": { - "1": { - "name": "variable.parameter.handlebars" - } - }, - "end": "(?='|\"|)", - "name": "entity.other.attribute-name.handlebars" - }, - "handlebars_attribute_value": { - "begin": "([-a-zA-Z0-9_\\./]+)\\b", - "captures": { - "1": { - "name": "variable.parameter.handlebars" - } - }, - "end": "('|\"|)", - "name": "entity.other.attribute-value.handlebars", - "patterns": [ - { - "include": "#string" - } - ] - }, - "handlebars_attribute": { - "patterns": [ - { - "include": "#handlebars_attribute_name" - }, - { - "include": "#handlebars_attribute_value" - } - ] - }, - "extends": { - "patterns": [ - { - "end": "(\\}\\})", - "begin": "(\\{\\{!<)\\s([-a-zA-Z0-9_\\./]+)", - "beginCaptures": { - "1": { - "name": "support.function.handlebars" - }, - "2": { - "name": "support.class.handlebars" - } - }, - "endCaptures": { - "1": { - "name": "support.function.handlebars" - } - }, - "name": "meta.preprocessor.handlebars" - } - ] - }, - "else_token": { - "begin": "(\\{\\{)(~?else)(@?\\s(if)\\s([-a-zA-Z0-9_\\.\\(\\s\\)/]+))?", - "end": "(~?\\}\\}\\}*)", - "name": "meta.function.inline.else.handlebars", - "beginCaptures": { - "1": { - "name": "support.constant.handlebars" - }, - "2": { - "name": "support.constant.handlebars keyword.control" - }, - "3": { - "name": "support.constant.handlebars" - }, - "4": { - "name": "variable.parameter.handlebars" - } - }, - "endCaptures": { - "1": { - "name": "support.constant.handlebars" - } - } - }, - "string-double-quoted": { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.handlebars", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "#escaped-double-quote" - }, - { - "include": "#block_comments" - }, - { - "include": "#comments" - }, - { - "include": "#block_helper" - }, - { - "include": "#else_token" - }, - { - "include": "#end_block" - }, - { - "include": "#partial_and_var" - } - ] - }, - "inline_script": { - "begin": "(?:^\\s+)?(<)((?i:script))\\b(?:.*(type)=([\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\"']))(?![^>]*/>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.script.html" - }, - "3": { - "name": "entity.other.attribute-name.html" - }, - "4": { - "name": "string.quoted.double.html" - } - }, - "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?", - "endCaptures": { - "2": { - "name": "punctuation.definition.tag.html" - } - }, - "name": "source.handlebars.embedded.html", - "patterns": [ - { - "include": "#tag-stuff" - }, - { - "begin": "(?<!</(?:script|SCRIPT))(>)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.script.html" - } - }, - "end": "(</)((?i:script))", - "patterns": [ - { - "include": "#block_comments" - }, - { - "include": "#comments" - }, - { - "include": "#block_helper" - }, - { - "include": "#end_block" - }, - { - "include": "#else_token" - }, - { - "include": "#partial_and_var" - }, - { - "include": "#html_tags" - }, - { - "include": "text.html.basic" - } - ] - } - ] - }, - "tag_generic_attribute": { - "begin": "\\b([a-zA-Z0-9_-]+)\\b\\s*(=)", - "captures": { - "1": { - "name": "entity.other.attribute-name.generic.html" - }, - "2": { - "name": "punctuation.separator.key-value.html" - } - }, - "patterns": [ - { - "include": "#string" - } - ], - "name": "entity.other.attribute-name.html", - "end": "(?<='|\"|)" - }, - "tag_id_attribute": { - "begin": "\\b(id)\\b\\s*(=)", - "captures": { - "1": { - "name": "entity.other.attribute-name.id.html" - }, - "2": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<='|\"|)", - "name": "meta.attribute-with-value.id.html", - "patterns": [ - { - "include": "#string" - } - ] - }, - "tag-stuff": { - "patterns": [ - { - "include": "#tag_id_attribute" - }, - { - "include": "#tag_generic_attribute" - }, - { - "include": "#string" - }, - { - "include": "#block_comments" - }, - { - "include": "#comments" - }, - { - "include": "#block_helper" - }, - { - "include": "#end_block" - }, - { - "include": "#else_token" - }, - { - "include": "#partial_and_var" - } - ] - } - } -} diff --git a/lib/grammars/haskell.tmLanguage.json b/lib/grammars/haskell.tmLanguage.json deleted file mode 100644 index 8342ee2..0000000 --- a/lib/grammars/haskell.tmLanguage.json +++ /dev/null @@ -1,2428 +0,0 @@ -{ - "fileTypes": ["hs", "hs-boot", "hsig"], - "keyEquivalent": "^~H", - "name": "haskell", - "patterns": [ - { - "include": "#liquid_haskell" - }, - { - "include": "#comment_like" - }, - { - "include": "#numeric_literals" - }, - { - "include": "#string_literal" - }, - { - "include": "#char_literal" - }, - { - "match": "(?<!@|#)-\\}", - "name": "invalid" - }, - { - "match": "(\\()\\s*(\\))", - "name": "constant.language.unit.haskell", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - } - } - }, - { - "match": "(\\()(#)\\s*(#)(\\))", - "name": "constant.language.unit.unboxed.haskell", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - }, - "3": { - "name": "keyword.operator.hash.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - } - }, - { - "match": "(\\()\\s*,[\\s,]*(\\))", - "name": "support.constant.tuple.haskell", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - } - } - }, - { - "match": "(\\()(#)\\s*,[\\s,]*(#)(\\))", - "name": "support.constant.tuple.unboxed.haskell", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - }, - "3": { - "name": "keyword.operator.hash.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - } - }, - { - "match": "(\\[)\\s*(\\])", - "name": "constant.language.empty-list.haskell", - "captures": { - "1": { - "name": "punctuation.bracket.haskell" - }, - "2": { - "name": "punctuation.bracket.haskell" - } - } - }, - { - "begin": "(\\b(?<!')(module)|^(signature))(\\b(?!'))", - "beginCaptures": { - "2": { - "name": "keyword.other.module.haskell" - }, - "3": { - "name": "keyword.other.signature.haskell" - } - }, - "end": "(?=\\b(?<!')where\\b(?!'))", - "name": "meta.declaration.module.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#module_name" - }, - { - "include": "#module_exports" - }, - { - "match": "[a-z]+", - "name": "invalid" - } - ] - }, - { - "include": "#ffi" - }, - { - "begin": "^(\\s*)(class)(\\b(?!'))", - "beginCaptures": { - "2": { - "name": "keyword.other.class.haskell" - } - }, - "end": "(?x) # Detect end of class declaration:\n # 'where' keyword\n (?=(?<!')\\bwhere\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", - "name": "meta.declaration.class.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#where" - }, - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(?x)\n ^(\\s*)(data|newtype)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n ((?:(?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?<!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)\n (?=\\b(?<!'')where\\b(?!''))", - "beginCaptures": { - "2": { - "name": "keyword.other.$2.haskell" - }, - "3": { - "name": "keyword.other.instance.haskell" - }, - "4": { - "patterns": [ - { - "include": "#type_signature" - } - ] - } - }, - "name": "meta.declaration.$2.generalized.haskell", - "end": "(?x) # Detect end of data declaration:\n # Deriving clause\n (?=(?<!')\\bderiving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "#comment_like" - }, - { - "begin": "(?x)\n (?<!')\\b(where)\n \\s*(\\{)(?!-)", - "end": "(\\})", - "beginCaptures": { - "1": { - "name": "keyword.other.where.haskell" - }, - "2": { - "name": "punctuation.brace.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#gadt_constructor" - }, - { - "match": ";", - "name": "punctuation.semicolon.haskell" - } - ] - }, - { - "match": "\\b(?<!')(where)\\b(?!')", - "name": "keyword.other.where.haskell" - }, - { - "include": "#deriving" - }, - { - "include": "#gadt_constructor" - } - ] - }, - { - "include": "#role_annotation" - }, - { - "name": "meta.declaration.pattern.type.haskell", - "begin": "^(\\s*)(pattern)\\s+(.*?)\\s+(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", - "beginCaptures": { - "2": { - "name": "keyword.other.pattern.haskell" - }, - "3": { - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#data_constructor" - } - ] - }, - "4": { - "name": "keyword.operator.double-colon.haskell" - } - }, - "end": "(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "name": "meta.declaration.pattern.haskell", - "begin": "^\\s*(pattern)\\b(?!')", - "captures": { - "1": { - "name": "keyword.other.pattern.haskell" - } - }, - "end": "(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?x)\n # Data declaration\n ^(\\s*)(data|newtype)(?:\\s+(family|instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?<!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)", - "beginCaptures": { - "2": { - "name": "keyword.other.$2.haskell" - }, - "3": { - "name": "keyword.other.$3.haskell" - }, - "4": { - "patterns": [ - { - "include": "#type_signature" - } - ] - } - }, - "name": "meta.declaration.$2.algebraic.haskell", - "end": "(?x) # Detect end of data declaration: \n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#deriving" - }, - { - "include": "#forall" - }, - { - "include": "#adt_constructor" - }, - { - "include": "#context" - }, - { - "include": "#record_decl" - }, - { - "include": "#type_signature" - } - ] - }, - { - "name": "meta.declaration.type.family.haskell", - "begin": "(?x)\n # Type family\n ^(\\s*)(type)\\s+(family)\\b(?!')\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" keyword, or\n | \\b(?<!')where\\b(?!')\n # the start of a block comment.\n | {-\n #\n ).)*)", - "beginCaptures": { - "2": { - "name": "keyword.other.type.haskell" - }, - "3": { - "name": "keyword.other.family.haskell" - }, - "4": { - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#where" - }, - { - "include": "#type_signature" - } - ] - } - }, - "end": "(?x) # Detect end of type family by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#where" - }, - { - "include": "#type_signature" - } - ] - }, - { - "name": "meta.declaration.type.haskell", - "begin": "(?x)\n # Type declaration\n ^(\\s*)(type)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol, the start of a single-line comment, or a type signature\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+|::|∷)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the start of a block comment.\n | {-\n #\n ).)*)", - "beginCaptures": { - "2": { - "name": "keyword.other.type.haskell" - }, - "3": { - "name": "keyword.other.instance.haskell" - }, - "4": { - "patterns": [ - { - "include": "#type_signature" - } - ] - } - }, - "end": "(?x) # Detect end of type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "begin": "^(\\s*)(instance)(\\b(?!'))", - "beginCaptures": { - "2": { - "name": "keyword.other.instance.haskell" - } - }, - "end": "(?x) # Detect end of instance declaration:\n # 'where' keyword\n (?=\\b(?<!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "name": "meta.declaration.instance.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#where" - }, - { - "include": "#type_signature" - } - ] - }, - { - "begin": "^(\\s*)(import)(\\b(?!'))", - "beginCaptures": { - "2": { - "name": "keyword.other.import.haskell" - } - }, - "end": "(?x) # Detect end of import\n # 'where' keyword\n (?=\\b(?<!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "name": "meta.import.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#where" - }, - { - "match": "(qualified|as|hiding)", - "captures": { - "1": { - "name": "keyword.other.$1.haskell" - } - } - }, - { - "include": "#module_name" - }, - { - "include": "#module_exports" - } - ] - }, - { - "include": "#deriving" - }, - { - "include": "#layout_herald" - }, - { - "include": "#keyword" - }, - { - "match": "^\\s*(infix[lr]?)\\s+(.*)", - "captures": { - "1": { - "name": "keyword.other.$1.haskell" - }, - "2": { - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#integer_literals" - }, - { - "include": "#infix_op" - } - ] - } - }, - "name": "meta.fixity-declaration.haskell" - }, - { - "include": "#overloaded_label" - }, - { - "include": "#type_application" - }, - { - "include": "#reserved_symbol" - }, - { - "include": "#fun_decl" - }, - { - "include": "#qualifier" - }, - { - "include": "#data_constructor" - }, - { - "include": "#start_type_signature" - }, - { - "include": "#prefix_op" - }, - { - "include": "#infix_op" - }, - { - "begin": "(\\()(#)\\s", - "end": "(#)(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.hash.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comma" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.paren.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comma" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#quasi_quote" - }, - { - "begin": "(\\[)", - "end": "(\\])", - "beginCaptures": { - "1": { - "name": "punctuation.bracket.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.bracket.haskell" - } - }, - "patterns": [ - { - "include": "#comma" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#record" - } - ], - "repository": { - "block_comment": { - "applyEndPatternLast": 1, - "begin": "\\{-", - "captures": { - "0": { - "name": "punctuation.definition.comment.haskell" - } - }, - "end": "-\\}", - "name": "comment.block.haskell", - "patterns": [ - { - "include": "#block_comment" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "^(\\s*)(--\\s[\\|\\$])", - "beginCaptures": { - "2": { - "name": "punctuation.whitespace.comment.leading.haskell" - } - }, - "end": "(?=^(?!\\1--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])))", - "name": "comment.block.documentation.haskell" - }, - { - "begin": "(^[ \\t]+)?(--\\s[\\^\\*])", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.haskell" - } - }, - "end": "\\n", - "name": "comment.line.documentation.haskell" - }, - { - "applyEndPatternLast": 1, - "begin": "\\{-\\s?[\\|\\$\\*\\^]", - "captures": { - "0": { - "name": "punctuation.definition.comment.haskell" - } - }, - "end": "-\\}", - "name": "comment.block.documentation.haskell", - "patterns": [ - { - "include": "#block_comment" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.haskell" - } - }, - "comment": "Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.", - "end": "(?!\\G)", - "patterns": [ - { - "begin": "--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.haskell" - } - }, - "end": "\\n", - "name": "comment.line.double-dash.haskell" - } - ] - }, - { - "include": "#block_comment" - } - ] - }, - "comment_like": { - "patterns": [ - { - "include": "#cpp" - }, - { - "include": "#pragma" - }, - { - "include": "#comments" - } - ] - }, - "cpp": { - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.c" - } - }, - "comment": "In addition to Haskell's \"native\" syntax, GHC permits the C preprocessor to be run on a source file.", - "match": "^(#).*$", - "name": "meta.preprocessor.c" - }, - "where": { - "patterns": [ - { - "begin": "(?x)\n (?<!')\\b(where)\n \\s*(\\{)(?!-)", - "end": "(\\})", - "beginCaptures": { - "1": { - "name": "keyword.other.where.haskell" - }, - "2": { - "name": "punctuation.brace.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "match": ";", - "name": "punctuation.semicolon.haskell" - } - ] - }, - { - "match": "\\b(?<!')(where)\\b(?!')", - "name": "keyword.other.where.haskell" - } - ] - }, - "layout_herald": { - "begin": "(?x)\n (?<!')\\b(?:(where|let|m?do)|(of))\n \\s*(\\{)(?!-)", - "end": "(\\})", - "beginCaptures": { - "1": { - "name": "keyword.other.$1.haskell" - }, - "2": { - "name": "keyword.control.of.haskell" - }, - "3": { - "name": "punctuation.brace.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "match": ";", - "name": "punctuation.semicolon.haskell" - } - ] - }, - "keyword": { - "match": "\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\b(?!')", - "captures": { - "1": { - "name": "keyword.other.$1.haskell" - }, - "2": { - "name": "keyword.control.$2.haskell" - } - } - }, - "deriving": { - "patterns": [ - { - "begin": "^(\\s*)(deriving)\\s+(?:(via|stock|newtype|anyclass)\\s+)?", - "beginCaptures": { - "2": { - "name": "keyword.other.deriving.haskell" - }, - "3": { - "name": "keyword.other.deriving.strategy.$3.haskell" - } - }, - "end": "(?x) # Detect end of deriving statement\n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", - "patterns": [ - { - "include": "#comment_like" - }, - { - "match": "(?<!')\\b(instance)\\b(?!')", - "name": "keyword.other.instance.haskell" - }, - { - "match": "(?<!')\\b(via|stock|newtype|anyclass)\\b(?!')", - "captures": { - "1": { - "name": "keyword.other.deriving.strategy.$1.haskell" - } - } - }, - { - "include": "#type_signature" - } - ], - "name": "meta.deriving.haskell" - }, - { - "begin": "(deriving)(?:\\s+(stock|newtype|anyclass))?\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.deriving.haskell" - }, - "2": { - "name": "keyword.other.deriving.strategy.$2.haskell" - }, - "3": { - "name": "punctuation.paren.haskell" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.paren.haskell" - } - }, - "name": "meta.deriving.haskell", - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "match": "(?x)\n (deriving)(?:\\s+(stock|newtype|anyclass))?\\s+\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n (\\s+(via)\\s+(.*)$)?\n", - "captures": { - "1": { - "name": "keyword.other.deriving.haskell" - }, - "2": { - "name": "keyword.other.deriving.strategy.$2.haskell" - }, - "3": { - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - "5": { - "name": "keyword.other.deriving.strategy.via.haskell" - }, - "6": { - "patterns": [ - { - "include": "#type_signature" - } - ] - } - }, - "name": "meta.deriving.haskell" - }, - { - "match": "(?<!')\\b(via)\\b(?!')", - "name": "keyword.other.deriving.strategy.via.haskell" - } - ] - }, - "prefix_op": { - "patterns": [ - { - "comment": "An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\n", - "match": "(?x)\n (\\()\\s*(?!(?:--+|\\.\\.)\\))(\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))\\s*(\\))", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "entity.name.function.infix.haskell" - }, - "3": { - "name": "punctuation.paren.haskell" - } - } - } - ] - }, - "infix_op": { - "patterns": [ - { - "match": "(?x)\n ((?:(?<!'')('')?[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)\n (\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))", - "comment": "In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\n", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "entity.name.namespace.haskell" - }, - "3": { - "name": "keyword.operator.infix.haskell" - } - } - }, - { - "match": "(`)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*)(`)", - "captures": { - "1": { - "name": "punctuation.backtick.haskell" - }, - "2": { - "name": "entity.name.namespace.haskell" - }, - "3": { - "patterns": [ - { - "include": "#data_constructor" - } - ] - }, - "4": { - "name": "punctuation.backtick.haskell" - } - }, - "comment": "In case this regex seems unusual for an infix operator, note that Haskell\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\nas an infix expression (4 `elem` [1..10]).\n", - "name": "keyword.operator.function.infix.haskell" - } - ] - }, - "module_exports": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.paren.haskell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.paren.haskell" - } - }, - "applyEndPatternLast": 1, - "name": "meta.declaration.exports.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "match": "\\b(?<!')(module)\\b(?!')", - "captures": { - "1": { - "name": "keyword.other.module.haskell" - } - } - }, - { - "include": "#comma" - }, - { - "include": "#export_constructs" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.paren.haskell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#record_wildcard" - }, - { - "include": "#export_constructs" - }, - { - "include": "#comma" - } - ] - } - ] - }, - "export_constructs": { - "patterns": [ - { - "include": "#comment_like" - }, - { - "begin": "\\b(?<!')(pattern)\\b(?!')", - "beginCaptures": { - "1": { - "name": "keyword.other.pattern.haskell" - } - }, - "end": "(?x)\n # Data constructor\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of symbolic constructor\n | (\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))", - "endCaptures": { - "1": { - "name": "constant.other.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "constant.other.operator.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - } - ] - }, - { - "begin": "\\b(?<!')(type)\\b(?!')", - "beginCaptures": { - "1": { - "name": "keyword.other.type.haskell" - } - }, - "end": "(?x)\n # Type name\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of type operator\n | (\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))", - "endCaptures": { - "1": { - "name": "storage.type.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "storage.type.operator.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - } - ] - }, - { - "match": "(?<!')\\b[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", - "name": "entity.name.function.haskell" - }, - { - "match": "(?<!')\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", - "name": "storage.type.haskell" - }, - { - "include": "#record_wildcard" - }, - { - "include": "#reserved_symbol" - }, - { - "include": "#prefix_op" - } - ] - }, - "comma": { - "match": ",", - "name": "punctuation.separator.comma.haskell" - }, - "module_name": { - "match": "(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.\\g<conid>)?)", - "name": "entity.name.namespace.haskell" - }, - "pragma": { - "begin": "\\{-#", - "end": "#-\\}", - "name": "meta.preprocessor.haskell", - "patterns": [ - { - "begin": "(?xi) \\b(?<!')(LANGUAGE)\\b(?!')", - "end": "(?=#-\\})", - "beginCaptures": { - "1": { - "name": "keyword.other.preprocessor.pragma.haskell" - } - }, - "patterns": [ - { - "match": "(?x)\n (?:No)?\n (?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)", - "name": "invalid.deprecated" - }, - { - "match": "(?x)\n (\n (?:No)?\n (?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali(?:s|z)edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns)\n )", - "captures": { - "1": { - "name": "keyword.other.preprocessor.extension.haskell" - } - } - }, - { - "include": "#comma" - } - ] - }, - { - "begin": "(?xi)\n \\b(?<!')(SPECIALI(?:S|Z)E)\n (?:\n \\s*( \\[ [^\\[\\]]* \\])?\\s*\n |\\s+\n )\n (instance)\\b(?!')", - "end": "(?=#-\\})", - "beginCaptures": { - "1": { - "name": "keyword.other.preprocessor.pragma.haskell" - }, - "2": { - "patterns": [ - { - "include": "#inline_phase" - } - ] - }, - "3": { - "name": "keyword.other.instance.haskell" - } - }, - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(?xi)\n \\b(?<!')(SPECIALI(?:S|Z)E)\\b(?!')\n (?:\\s+(INLINE)\\b(?!'))?\n (?:\\s*(\\[ [^\\[\\]]* \\])?)\n \\s*", - "end": "(?=#-\\})", - "beginCaptures": { - "1": { - "name": "keyword.other.preprocessor.pragma.haskell" - }, - "2": { - "name": "keyword.other.preprocessor.pragma.haskell" - }, - "3": { - "patterns": [ - { - "include": "#inline_phase" - } - ] - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "(?xi) \\b(?<!')\n (LANGUAGE|OPTIONS_GHC|INCLUDE\n |MINIMAL|UNPACK|OVERLAPS|INCOHERENT\n |NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE\n |NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES\n |COMPLETE)\\b(?!')", - "name": "keyword.other.preprocessor.haskell" - }, - { - "begin": "(?i)\\b(DEPRECATED|WARNING)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other.preprocessor.pragma.haskell" - } - }, - "end": "(?=#-\\})", - "patterns": [ - { - "include": "#string_literal" - } - ] - } - ] - }, - "liquid_haskell": { - "name": "block.liquidhaskell.haskell", - "begin": "\\{-@", - "end": "@-\\}", - "patterns": [ - { - "include": "$self" - } - ] - }, - "context": { - "match": "(?x)\n (.*)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (=>|⇒)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n", - "captures": { - "1": { - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#type_signature" - } - ] - }, - "2": { - "name": "keyword.operator.big-arrow.haskell" - } - } - }, - "data_constructor": { - "match": "\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?![\\.'\\w])", - "name": "constant.other.haskell" - }, - "qualifier": { - "match": "\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.", - "name": "entity.name.namespace.haskell" - }, - "record_decl": { - "begin": "({)(?!-)", - "beginCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "end": "(?<!-)(})", - "endCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "name": "meta.record.definition.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#record_decl_field" - } - ] - }, - "record": { - "begin": "({)(?!-)", - "beginCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "end": "(?<!-)(})", - "endCaptures": { - "1": { - "name": "punctuation.brace.haskell" - } - }, - "name": "meta.record.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#record_field" - } - ] - }, - "record_decl_field": { - "begin": "(?x)\n (?:([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n", - "end": "(,)|(?=})", - "beginCaptures": { - "1": { - "name": "variable.other.member.definition.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "variable.other.member.definition.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comma.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#comma" - }, - { - "include": "#double_colon" - }, - { - "include": "#type_signature" - }, - { - "include": "#record_decl_field" - } - ] - }, - "record_wildcard": { - "match": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (\\.\\.)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", - "captures": { - "1": { - "name": "variable.other.member.wildcard.haskell" - } - } - }, - "record_field": { - "patterns": [ - { - "begin": "(?x)\n (?:([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\.']*)\n |(\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n", - "end": "(,)|(?=})", - "beginCaptures": { - "1": { - "name": "variable.other.member.haskell", - "patterns": [ - { - "include": "#qualifier" - } - ] - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "variable.other.member.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comma.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#comma" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#record_wildcard" - } - ] - }, - "role_annotation": { - "patterns": [ - { - "begin": "^(\\s*)(type)\\s+(role)\\b(?!')", - "beginCaptures": { - "2": { - "name": "keyword.other.type.haskell" - }, - "3": { - "name": "keyword.other.role.haskell" - } - }, - "end": "(?x) # Detect end of block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", - "name": "meta.role-annotation.haskell", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#type_constructor" - }, - { - "match": "\\b(?<!')(nominal|representational|phantom)\\b(?!')", - "captures": { - "1": { - "name": "keyword.other.role.$1.haskell" - } - } - } - ] - } - ] - }, - "fun_decl": { - "begin": "(?x)^(\\s*)\n (?<fn>\n (?:\n [\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\#*\n | \\(\\s*\n (?!--+\\))\n [\\p{S}\\p{P}&&[^(),:;\\[\\]`{}_\"']]\n [\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*\n \\s*\\)\n )\n (?:\\s*,\\s*\\g<fn>)?\n )\n \\s*(?<![\\p{S}\\p{P}&&[^\\),;\\]`}_\"']])(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])\n", - "beginCaptures": { - "2": { - "name": "entity.name.function.haskell", - "patterns": [ - { - "include": "#reserved_symbol" - }, - { - "include": "#prefix_op" - } - ] - }, - "3": { - "name": "keyword.operator.double-colon.haskell" - } - }, - "name": "meta.function.type-declaration.haskell", - "patterns": [ - { - "include": "#type_signature" - } - ], - "end": "(?x)\n # End of type annotation:\n # To the left of a reserved symbolic keyword such as = or <-\n (?= \n # non-symbolic character\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n # symbolic keyword except (->)\n ((<-|←)|(=)|(-<|↢)|(-<<|⤛))\n # non-symbolic character\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n )\n # Decreasing indentation:\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n" - }, - "adt_constructor": { - "patterns": [ - { - "include": "#comment_like" - }, - { - "begin": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:(=)|(\\|))\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol", - "beginCaptures": { - "1": { - "name": "keyword.operator.eq.haskell" - }, - "2": { - "name": "keyword.operator.pipe.haskell" - } - }, - "end": "(?x)\n (?:\\G|^)\\s* # Enforce starting condition to avoid catastrophic backtracking (https://github.com/JustusAdam/language-haskell/issues/161)\n (?: # Infix data constructor\n # First argument\n (?:\n # Simple type\n (?<!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)\n # Type inside balanced parentheses\n | ('? # Optional promotion tick\n (?<paren>\n \\( # Opening parenthesis\n (?:\n [^\\(\\)]* # Match non-parentheses\n | \\g<paren> # or recurse into further depth\n )*\n \\) # Closing parenthesis\n )\n )\n # Type inside balanced brackets\n | ('? # Optional promotion tick\n (?<brac>\n \\( # Opening bracket\n (?:\n [^\\[\\]]* # Match non-brackets\n | \\g<brac> # or recurse into further depth\n )*\n \\] # Closing bracket\n )\n )\n ) \n # Then either\n \\s*\n # - a symbolic infix constructor, or\n (?:(?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\n # - an alphabetic infix constructor\n | (`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`)\n )\n\n ) # Otherwise, prefix data constructor, either:\n | # - an alphabetic data constructor e.g. \"Cons_123\"\n (?:(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))\n | # - a symbolic (prefix) data constructor\n (\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - "4": { - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - "6": { - "name": "constant.other.operator.haskell" - }, - "7": { - "name": "punctuation.backtick.haskell" - }, - "8": { - "name": "constant.other.haskell" - }, - "9": { - "name": "punctuation.backtick.haskell" - }, - "10": { - "name": "constant.other.haskell" - }, - "11": { - "name": "punctuation.paren.haskell" - }, - "12": { - "name": "constant.other.operator.haskell" - }, - "13": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#deriving" - }, - { - "include": "#record_decl" - }, - { - "include": "#forall" - }, - { - "include": "#context" - } - ] - } - ] - }, - "gadt_constructor": { - "patterns": [ - { - "begin": "(?x)\n ^(\\s*)\n (?:\n (\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n )", - "beginCaptures": { - "2": { - "name": "constant.other.haskell" - }, - "3": { - "name": "punctuation.paren.haskell" - }, - "4": { - "name": "constant.other.operator.haskell" - }, - "5": { - "name": "punctuation.paren.haskell" - } - }, - "end": "(?x)\n # GADT constructor ends\n (?=\\b(?<!'')deriving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#deriving" - }, - { - "include": "#double_colon" - }, - { - "include": "#record_decl" - }, - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(?x)\n (\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}]*) # named constructor\n |(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\)) # prefix operator", - "beginCaptures": { - "1": { - "name": "constant.other.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "constant.other.operator.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - }, - "end": "$", - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#deriving" - }, - { - "include": "#double_colon" - }, - { - "include": "#record_decl" - }, - { - "include": "#type_signature" - } - ] - } - ] - }, - "type_application": { - "patterns": [ - { - "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(')?(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.prefix.at.haskell" - }, - "2": { - "name": "keyword.operator.promotion.haskell" - }, - "3": { - "name": "punctuation.paren.haskell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.paren.haskell" - } - }, - "name": "meta.type-application.haskell", - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(')?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.prefix.at.haskell" - }, - "2": { - "name": "keyword.operator.promotion.haskell" - }, - "3": { - "name": "punctuation.bracket.haskell" - } - }, - "end": "\\]", - "name": "meta.type-application.haskell", - "endCaptures": { - "0": { - "name": "punctuation.bracket.haskell" - } - }, - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(?=\\\")", - "beginCaptures": { - "1": { - "name": "keyword.operator.prefix.at.haskell" - } - }, - "end": "(?<=\\\")", - "name": "meta.type-application.haskell", - "patterns": [ - { - "include": "#string_literal" - } - ] - }, - { - "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])", - "beginCaptures": { - "1": { - "name": "keyword.operator.prefix.at.haskell" - } - }, - "end": "(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])", - "name": "meta.type-application.haskell", - "patterns": [ - { - "include": "#type_signature" - } - ] - } - ] - }, - "type_signature": { - "patterns": [ - { - "include": "#comment_like" - }, - { - "match": "(')?(\\()\\s*(\\))", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "punctuation.paren.haskell" - } - }, - "name": "support.constant.unit.haskell" - }, - { - "match": "(\\()(#)\\s*(#)(\\))", - "name": "support.constant.unit.unboxed.haskell", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - }, - "3": { - "name": "keyword.operator.hash.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - } - }, - { - "match": "(')?(\\()\\s*,[\\s,]*(\\))", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "punctuation.paren.haskell" - } - }, - "name": "support.constant.tuple.haskell" - }, - { - "match": "(\\()(#)\\s*(#)(\\))", - "name": "support.constant.unit.unboxed.haskell", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - }, - "3": { - "name": "keyword.operator.hash.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - } - }, - { - "match": "(\\()(#)\\s*,[\\s,]*(#)(\\))", - "captures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - }, - "3": { - "name": "keyword.operator.hash.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - }, - "name": "support.constant.tuple.unboxed.haskell" - }, - { - "match": "(')?(\\[)\\s*(\\])", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.bracket.haskell" - }, - "3": { - "name": "punctuation.bracket.haskell" - } - }, - "name": "support.constant.empty-list.haskell" - }, - { - "include": "#integer_literals" - }, - { - "match": "(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", - "name": "keyword.operator.double-colon.haskell" - }, - { - "include": "#forall" - }, - { - "match": "=>|⇒", - "name": "keyword.operator.big-arrow.haskell" - }, - { - "include": "#string_literal" - }, - { - "match": "'[^']'", - "name": "invalid" - }, - { - "include": "#type_application" - }, - { - "include": "#reserved_symbol" - }, - { - "include": "#type_operator" - }, - { - "include": "#type_constructor" - }, - { - "begin": "(\\()(#)", - "end": "(#)(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.paren.haskell" - }, - "2": { - "name": "keyword.operator.hash.haskell" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.hash.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(')?(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.paren.haskell" - } - }, - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(')?(\\[)", - "end": "(\\])", - "beginCaptures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.bracket.haskell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.bracket.haskell" - } - }, - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#type_signature" - } - ] - }, - { - "include": "#type_variable" - } - ] - }, - "double_colon": { - "match": "\\s*(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\\s*", - "captures": { - "1": { - "name": "keyword.operator.double-colon.haskell" - } - } - }, - "start_type_signature": { - "patterns": [ - { - "begin": "^(\\s*)(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])\\s*", - "beginCaptures": { - "2": { - "name": "keyword.operator.double-colon.haskell" - } - }, - "end": "(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |(?<!')\\b(in|then|else|of)\\b(?!') # keyword\n | # symbolic keyword except (->)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(<-|←)\n |(=)\n |(-<|↢)\n |(-<<|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n |(\\#|@)-\\} # End of annotation block (LiquidHaskell or pragma)\n # Decreasing indentation:\n | (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s*\\S # - equally indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n )", - "patterns": [ - { - "include": "#type_signature" - } - ], - "name": "meta.type-declaration.haskell" - }, - { - "begin": "(?<![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])", - "beginCaptures": { - "1": { - "name": "keyword.operator.double-colon.haskell" - } - }, - "end": "(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |\\b(?<!')(in|then|else|of)\\b(?!') # keyword\n |(\\#|@)-\\} # End of annotation block (LiquidHaskell or pragma)\n | # symbolic keyword except (->)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(<-|←)\n |(=)\n |(-<|↢)\n |(-<<|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n # Indentation \n |(?=\\}|;) # Explicit indentation\n |$ # End of line\n )", - "patterns": [ - { - "include": "#type_signature" - } - ] - } - ] - }, - "type_variable": { - "match": "\\b(?<!')(?!(?:forall|deriving)\\b(?!'))[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", - "name": "variable.other.generic-type.haskell" - }, - "type_constructor": { - "patterns": [ - { - "match": "(?x)\n # Optional promotion tick\n (')?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n (\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "entity.name.namespace.haskell" - }, - "3": { - "name": "storage.type.haskell" - } - } - }, - { - "match": "(?x)\n # Optional promotion tick\n (')?\n # Opening parenthesis\n (\\()\\s*\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n ([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\n # Closing parenthesis\n \\s*(\\))", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "entity.name.namespace.haskell" - }, - "4": { - "name": "storage.type.operator.haskell" - }, - "5": { - "name": "punctuation.paren.haskell" - } - } - } - ] - }, - "overloaded_label": { - "patterns": [ - { - "match": "(?x) \n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^(,;\\[`{]]) # Disallow closing characters\n (\\#)\n (?:\n # String\n (\"(?:\\\\\"|[^\"])*\")\n # Sequence of allowed label identifiers\n |[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+\n )", - "captures": { - "1": { - "name": "keyword.operator.prefix.hash.haskell" - }, - "2": { - "patterns": [ - { - "include": "#string_literal" - } - ] - } - }, - "name": "entity.name.label.haskell" - } - ] - }, - "reserved_symbol": { - "patterns": [ - { - "match": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])\n (?:\n (\\.\\.)\n |(:)\n |(=)\n |(\\\\) # λ not reserved as it is a letter\n |(\\|)\n |(<-|←)\n |(->|→)\n |(-<|↢)\n |(-<<|⤛)\n |(>-|⤚)\n |(>>-|⤜)\n |(∀)\n )\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])", - "captures": { - "1": { - "name": "keyword.operator.double-dot.haskell" - }, - "2": { - "name": "keyword.operator.colon.haskell" - }, - "3": { - "name": "keyword.operator.eq.haskell" - }, - "4": { - "name": "keyword.operator.lambda.haskell" - }, - "5": { - "name": "keyword.operator.pipe.haskell" - }, - "6": { - "name": "keyword.operator.arrow.left.haskell" - }, - "7": { - "name": "keyword.operator.arrow.haskell" - }, - "8": { - "name": "keyword.operator.arrow.left.tail.haskell" - }, - "9": { - "name": "keyword.operator.arrow.left.tail.double.haskell" - }, - "10": { - "name": "keyword.operator.arrow.tail.haskell" - }, - "11": { - "name": "keyword.operator.arrow.tail.double.haskell" - }, - "12": { - "name": "keyword.other.forall.haskell" - } - } - }, - { - "match": "(?x)\n (?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^\\#,;\\[`{]]) # Require closing characters\n (\\#+)\n (?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^),;\\]`}]]) # Disallow opening character", - "captures": { - "1": { - "name": "keyword.operator.postfix.hash.haskell" - } - } - }, - { - "match": "(?x)\n (?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\)\\}\\]]) # Require closing characters\n (@)\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\(\\[\\{]) # Require opening character", - "captures": { - "1": { - "name": "keyword.operator.infix.tight.at.haskell" - } - } - }, - { - "match": "(?x)\n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^(,;\\[`{]]) # Disallow closing characters\n (?:(~)|(!)|(-)|(\\$)|(\\$\\$))\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\(\\{\\[]) # Require opening character (non operator symbol)", - "captures": { - "1": { - "name": "keyword.operator.prefix.tilde.haskell" - }, - "2": { - "name": "keyword.operator.prefix.bang.haskell" - }, - "3": { - "name": "keyword.operator.prefix.minus.haskell" - }, - "4": { - "name": "keyword.operator.prefix.dollar.haskell" - }, - "5": { - "name": "keyword.operator.prefix.double-dollar.haskell" - } - } - } - ] - }, - "type_operator": { - "patterns": [ - { - "match": "(?x)\n # Optional promotion tick\n (?:(?<!')('))?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n (?![#@]?-})(\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))\n #((?:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']&&[^#@]]|[@#](?!-}))+)", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "entity.name.namespace.haskell" - }, - "3": { - "name": "storage.type.operator.infix.haskell" - } - } - }, - { - "match": "(?x)\n # Optional promotion tick\n (')?\n # Opening backtick\n (\\`)\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Closing backtick\n (`)", - "captures": { - "1": { - "name": "keyword.operator.promotion.haskell" - }, - "2": { - "name": "punctuation.backtick.haskell" - }, - "3": { - "name": "entity.name.namespace.haskell" - }, - "4": { - "name": "storage.type.infix.haskell" - }, - "5": { - "name": "punctuation.backtick.haskell" - } - } - } - ] - }, - "forall": { - "begin": "\\b(?<!')(forall|∀)\\b(?!')", - "end": "(\\.)|(->|→)", - "beginCaptures": { - "1": { - "name": "keyword.other.forall.haskell" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.period.haskell" - }, - "2": { - "name": "keyword.operator.arrow.haskell" - } - }, - "patterns": [ - { - "include": "#comment_like" - }, - { - "include": "#type_variable" - }, - { - "include": "#type_signature" - } - ] - }, - "string_literal": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.haskell" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.haskell" - } - }, - "name": "string.quoted.double.haskell", - "patterns": [ - { - "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])", - "name": "constant.character.escape.haskell" - }, - { - "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+", - "name": "constant.character.escape.octal.haskell" - }, - { - "match": "\\\\\\^[A-Z@\\[\\]\\\\\\^_]", - "name": "constant.character.escape.control.haskell" - }, - { - "begin": "\\\\\\s", - "beginCaptures": { - "0": { - "name": "constant.character.escape.begin.haskell" - } - }, - "end": "\\\\", - "endCaptures": { - "0": { - "name": "constant.character.escape.end.haskell" - } - }, - "patterns": [ - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.haskell" - } - ] - } - ] - }, - "char_literal": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.haskell" - }, - "2": { - "name": "constant.character.escape.haskell" - }, - "3": { - "name": "constant.character.escape.octal.haskell" - }, - "4": { - "name": "constant.character.escape.hexadecimal.haskell" - }, - "5": { - "name": "constant.character.escape.control.haskell" - }, - "6": { - "name": "punctuation.definition.string.end.haskell" - } - }, - "match": "(?x)\n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])\n (')\n (?:\n [\\ -\\[\\]-~] # Basic Char\n | (\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE\n |DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS\n |US|SP|DEL|[abfnrtv\\\\\\\"'\\\\&])) # Escapes\n | (\\\\o[0-7]+) # Octal Escapes\n | (\\\\x[0-9A-Fa-f]+) # Hexadecimal Escapes\n | (\\\\\\^[A-Z@\\[\\]\\\\\\^_]) # Control Chars\n )\n (')\n", - "name": "string.quoted.single.haskell" - }, - "float_literals": { - "comment": "Floats are decimal or hexadecimal", - "match": "(?x)\n \\b(?<!')\n (?: # Decimal\n ([0-9][_0-9]*\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?\n |[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*\n )\n | # Hexadecimal\n (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?\n |0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*\n )\n )\\b(?!')", - "captures": { - "1": { - "name": "constant.numeric.floating.decimal.haskell" - }, - "2": { - "name": "constant.numeric.floating.hexadecimal.haskell" - } - } - }, - "integer_literals": { - "match": "(?x)\n \\b(?<!')\n (?:\n ([0-9][_0-9]*) # Decimal integer\n | (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*) # Hexadecimal integer\n | (0[oO]_*[0-7][_0-7]*) # Octal integer\n | (0[bB]_*[01][_01]*) # Binary integer\n )\n \\b(?!')", - "captures": { - "1": { - "name": "constant.numeric.integral.decimal.haskell" - }, - "2": { - "name": "constant.numeric.integral.hexadecimal.haskell" - }, - "3": { - "name": "constant.numeric.integral.octal.haskell" - }, - "4": { - "name": "constant.numeric.integral.binary.haskell" - } - } - }, - "numeric_literals": { - "patterns": [ - { - "include": "#float_literals" - }, - { - "include": "#integer_literals" - } - ] - }, - "ffi": { - "begin": "^(\\s*)(foreign)\\s+(import|export)\\s+", - "beginCaptures": { - "2": { - "name": "keyword.other.foreign.haskell" - }, - "3": { - "name": "keyword.other.$3.haskell" - } - }, - "name": "meta.$3.foreign.haskell", - "end": "(?x) # Detect end of FFI block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", - "patterns": [ - { - "include": "#comment_like" - }, - { - "match": "\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\s+", - "captures": { - "1": { - "name": "keyword.other.calling-convention.$1.haskell" - } - } - }, - { - "begin": "(?=\")|(?=\\b(?<!')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))", - "end": "(?=(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))", - "patterns": [ - { - "include": "#comment_like" - }, - { - "match": "(?x)\n \\b(?<!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*\n (?:\n (?:\\b(?<!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:\\(\\s*(?!--+\\))([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*\\))\n )\n", - "captures": { - "1": { - "name": "keyword.other.safety.$1.haskell" - }, - "2": { - "name": "entity.name.foreign.haskell", - "patterns": [ - { - "include": "#string_literal" - } - ] - }, - "3": { - "name": "entity.name.function.haskell" - }, - "4": { - "name": "entity.name.function.infix.haskell" - } - } - }, - { - "match": "(?x)\n \\b(?<!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*$\n", - "captures": { - "1": { - "name": "keyword.other.safety.$1.haskell" - }, - "2": { - "name": "entity.name.foreign.haskell", - "patterns": [ - { - "include": "#string_literal" - } - ] - } - } - }, - { - "match": "(?x)\n \"(?:\\\\\"|[^\"])*\"", - "captures": { - "0": { - "name": "entity.name.foreign.haskell", - "patterns": [ - { - "include": "#string_literal" - } - ] - } - } - }, - { - "match": "(?x)\n (?:\\b(?<!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:(\\()\\s*(?!--+\\))([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\)))\n", - "captures": { - "1": { - "name": "entity.name.function.haskell" - }, - "2": { - "name": "punctuation.paren.haskell" - }, - "3": { - "name": "entity.name.function.infix.haskell" - }, - "4": { - "name": "punctuation.paren.haskell" - } - } - } - ] - }, - { - "include": "#double_colon" - }, - { - "include": "#type_signature" - } - ] - }, - "inline_phase": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.haskell" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.bracket.haskell" - } - }, - "name": "meta.inlining-phase.haskell", - "patterns": [ - { - "match": "~", - "name": "punctuation.tilde.haskell" - }, - { - "include": "#integer_literals" - }, - { - "match": "\\w*", - "name": "invalid" - } - ] - }, - "quasi_quote": { - "patterns": [ - { - "begin": "(?x)\n (\\[)\n (e|d|p)?\n (\\|\\|?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.quasi-quotation.begin.haskell" - }, - "2": { - "name": "entity.name.quasi-quoter.haskell" - }, - "3": { - "name": "keyword.operator.quasi-quotation.begin.haskell" - } - }, - "end": "\\3\\]", - "endCaptures": { - "0": { - "name": "keyword.operator.quasi-quotation.end.haskell" - } - }, - "name": "meta.quasi-quotation.haskell", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?x)\n (\\[)\n (t)\n (\\|\\|?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.quasi-quotation.begin.haskell" - }, - "2": { - "name": "entity.name.quasi-quoter.haskell" - }, - "3": { - "name": "keyword.operator.quasi-quotation.begin.haskell" - } - }, - "end": "\\3\\]", - "endCaptures": { - "0": { - "name": "keyword.operator.quasi-quotation.end.haskell" - } - }, - "name": "meta.quasi-quotation.haskell", - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "begin": "(?x)\n (\\[)\n (?:(\\$\\$)|(\\$))?\n ((?:[^\\s\\p{S}\\p{P}]|[\\.'_])*)\n (\\|\\|?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.quasi-quotation.begin.haskell" - }, - "2": { - "name": "keyword.operator.prefix.double-dollar.haskell" - }, - "3": { - "name": "keyword.operator.prefix.dollar.haskell" - }, - "4": { - "patterns": [ - { - "include": "#qualifier" - } - ], - "name": "entity.name.quasi-quoter.haskell" - }, - "5": { - "name": "keyword.operator.quasi-quotation.begin.haskell" - } - }, - "end": "\\5\\]", - "endCaptures": { - "0": { - "name": "keyword.operator.quasi-quotation.end.haskell" - } - }, - "name": "meta.quasi-quotation.haskell" - } - ] - } - }, - "scopeName": "source.haskell", - "uuid": "5C034675-1F6D-497E-8073-369D37E2FD7D" -} diff --git a/lib/grammars/hcl.tmLanguage.json b/lib/grammars/hcl.tmLanguage.json deleted file mode 100644 index a7b44bf..0000000 --- a/lib/grammars/hcl.tmLanguage.json +++ /dev/null @@ -1,780 +0,0 @@ -{ - "scopeName": "source.hcl", - "name": "hcl", - "uuid": "a14187be-98d8-42c1-ac89-bb5eaccf911e", - "fileTypes": ["hcl"], - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attribute_definition" - }, - { - "include": "#block" - }, - { - "include": "#expressions" - } - ], - "repository": { - "attribute_access": { - "begin": "\\.(?!\\*)", - "end": "[[:alpha:]][\\w-]*|\\d*", - "comment": "Matches traversal attribute access such as .attr", - "beginCaptures": { - "0": { - "name": "keyword.operator.accessor.hcl" - } - }, - "endCaptures": { - "0": { - "patterns": [ - { - "match": "(?!null|false|true)[[:alpha:]][\\w-]*", - "comment": "Attribute name", - "name": "variable.other.member.hcl" - }, - { - "match": "\\d+", - "comment": "Optional attribute index", - "name": "constant.numeric.integer.hcl" - } - ] - } - } - }, - "attribute_definition": { - "name": "variable.declaration.hcl", - "match": "(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*", - "comment": "Identifier \"=\" with optional parens", - "captures": { - "1": { - "name": "punctuation.section.parens.begin.hcl" - }, - "2": { - "name": "variable.other.readwrite.hcl" - }, - "3": { - "name": "punctuation.section.parens.end.hcl" - }, - "4": { - "name": "keyword.operator.assignment.hcl" - } - } - }, - "attribute_splat": { - "begin": "\\.", - "end": "\\*", - "comment": "Legacy attribute-only splat", - "beginCaptures": { - "0": { - "name": "keyword.operator.accessor.hcl" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.splat.hcl" - } - } - }, - "block": { - "name": "meta.block.hcl", - "begin": "([\\w][\\-\\w]*)([\\s\\\"\\-\\w]*)(\\{)", - "end": "\\}", - "comment": "This will match HCL blocks like `thing1 \"one\" \"two\" {` or `thing2 {`", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", - "comment": "Block type", - "name": "entity.name.type.hcl" - } - ] - }, - "2": { - "patterns": [ - { - "match": "[\\\"\\-\\w]+", - "comment": "Block label", - "name": "variable.other.enummember.hcl" - } - ] - }, - "3": { - "name": "punctuation.section.block.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.hcl" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attribute_definition" - }, - { - "include": "#block" - }, - { - "include": "#expressions" - } - ] - }, - "block_inline_comments": { - "name": "comment.block.hcl", - "begin": "/\\*", - "end": "\\*/", - "comment": "Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence", - "captures": { - "0": { - "name": "punctuation.definition.comment.hcl" - } - } - }, - "brackets": { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.end.hcl" - } - }, - "patterns": [ - { - "name": "keyword.operator.splat.hcl", - "match": "\\*", - "comment": "Splat operator" - }, - { - "include": "#comma" - }, - { - "include": "#comments" - }, - { - "include": "#inline_for_expression" - }, - { - "include": "#inline_if_expression" - }, - { - "include": "#expressions" - }, - { - "include": "#local_identifiers" - } - ] - }, - "char_escapes": { - "name": "constant.character.escape.hcl", - "match": "\\\\[nrt\"\\\\]|\\\\u(\\h{8}|\\h{4})", - "comment": "Character Escapes" - }, - "comma": { - "name": "punctuation.separator.hcl", - "match": "\\,", - "comment": "Commas - used in certain expressions" - }, - "comments": { - "patterns": [ - { - "include": "#hash_line_comments" - }, - { - "include": "#double_slash_line_comments" - }, - { - "include": "#block_inline_comments" - } - ] - }, - "double_slash_line_comments": { - "name": "comment.line.double-slash.hcl", - "begin": "//", - "end": "$\\n?", - "comment": "Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence", - "captures": { - "0": { - "name": "punctuation.definition.comment.hcl" - } - } - }, - "expressions": { - "patterns": [ - { - "include": "#literal_values" - }, - { - "include": "#operators" - }, - { - "include": "#tuple_for_expression" - }, - { - "include": "#object_for_expression" - }, - { - "include": "#brackets" - }, - { - "include": "#objects" - }, - { - "include": "#attribute_access" - }, - { - "include": "#attribute_splat" - }, - { - "include": "#functions" - }, - { - "include": "#parens" - } - ] - }, - "for_expression_body": { - "patterns": [ - { - "name": "keyword.operator.word.hcl", - "match": "\\bin\\b", - "comment": "in keyword" - }, - { - "name": "keyword.control.conditional.hcl", - "match": "\\bif\\b", - "comment": "if keyword" - }, - { - "name": "keyword.operator.hcl", - "match": "\\:" - }, - { - "include": "#expressions" - }, - { - "include": "#comments" - }, - { - "include": "#comma" - }, - { - "include": "#local_identifiers" - } - ] - }, - "functions": { - "name": "meta.function-call.hcl", - "begin": "(\\w+)(\\()", - "end": "\\)", - "comment": "Built-in function calls", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", - "name": "support.function.builtin.hcl" - } - ] - }, - "2": { - "name": "punctuation.section.parens.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.hcl" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#expressions" - }, - { - "include": "#comma" - } - ] - }, - "hash_line_comments": { - "name": "comment.line.number-sign.hcl", - "begin": "#", - "end": "$\\n?", - "comment": "Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence", - "captures": { - "0": { - "name": "punctuation.definition.comment.hcl" - } - } - }, - "hcl_type_keywords": { - "name": "storage.type.hcl", - "match": "\\b(any|string|number|bool|list|set|map|tuple|object)\\b", - "comment": "Type keywords known to HCL." - }, - "heredoc": { - "name": "string.unquoted.heredoc.hcl", - "begin": "(\\<\\<\\-?)\\s*(\\w+)\\s*$", - "end": "^\\s*\\2\\s*$", - "comment": "String Heredoc", - "beginCaptures": { - "1": { - "name": "keyword.operator.heredoc.hcl" - }, - "2": { - "name": "keyword.control.heredoc.hcl" - } - }, - "endCaptures": { - "0": { - "name": "keyword.control.heredoc.hcl" - } - }, - "patterns": [ - { - "include": "#string_interpolation" - } - ] - }, - "inline_for_expression": { - "begin": "(for)\\b", - "end": "\\n", - "beginCaptures": { - "1": { - "name": "keyword.control.hcl" - } - }, - "patterns": [ - { - "name": "storage.type.function.hcl", - "match": "\\=\\>" - }, - { - "include": "#for_expression_body" - } - ] - }, - "inline_if_expression": { - "begin": "(if)\\b", - "end": "\\n", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.hcl" - } - }, - "patterns": [ - { - "include": "#expressions" - }, - { - "include": "#comments" - }, - { - "include": "#comma" - }, - { - "include": "#local_identifiers" - } - ] - }, - "language_constants": { - "name": "constant.language.hcl", - "match": "\\b(true|false|null)\\b", - "comment": "Language Constants" - }, - "literal_values": { - "patterns": [ - { - "include": "#numeric_literals" - }, - { - "include": "#language_constants" - }, - { - "include": "#string_literals" - }, - { - "include": "#heredoc" - }, - { - "include": "#hcl_type_keywords" - } - ] - }, - "local_identifiers": { - "name": "variable.other.readwrite.hcl", - "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", - "comment": "Local Identifiers" - }, - "numeric_literals": { - "patterns": [ - { - "name": "constant.numeric.float.hcl", - "match": "\\b\\d+([Ee][+-]?)\\d+\\b", - "comment": "Integer, no fraction, optional exponent", - "captures": { - "1": { - "name": "punctuation.separator.exponent.hcl" - } - } - }, - { - "name": "constant.numeric.float.hcl", - "match": "\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b", - "comment": "Integer, fraction, optional exponent", - "captures": { - "1": { - "name": "punctuation.separator.decimal.hcl" - }, - "2": { - "name": "punctuation.separator.exponent.hcl" - } - } - }, - { - "name": "constant.numeric.integer.hcl", - "match": "\\b\\d+\\b", - "comment": "Integers" - } - ] - }, - "object_for_expression": { - "begin": "(\\{)\\s?(for)\\b", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "punctuation.section.braces.begin.hcl" - }, - "2": { - "name": "keyword.control.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.braces.end.hcl" - } - }, - "patterns": [ - { - "name": "storage.type.function.hcl", - "match": "\\=\\>" - }, - { - "include": "#for_expression_body" - } - ] - }, - "object_key_values": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#literal_values" - }, - { - "include": "#operators" - }, - { - "include": "#tuple_for_expression" - }, - { - "include": "#object_for_expression" - }, - { - "include": "#heredoc" - }, - { - "include": "#functions" - } - ] - }, - "objects": { - "name": "meta.braces.hcl", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.braces.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.braces.end.hcl" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#objects" - }, - { - "include": "#inline_for_expression" - }, - { - "include": "#inline_if_expression" - }, - { - "match": "\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\>?)\\s*", - "comment": "Literal, named object key", - "captures": { - "1": { - "name": "meta.mapping.key.hcl variable.other.readwrite.hcl" - }, - "2": { - "name": "keyword.operator.assignment.hcl", - "patterns": [ - { - "match": "\\=\\>", - "name": "storage.type.function.hcl" - } - ] - } - } - }, - { - "match": "\\b((\").*(\"))\\s*(\\=)\\s*", - "comment": "String object key", - "captures": { - "1": { - "name": "meta.mapping.key.hcl string.quoted.double.hcl" - }, - "2": { - "name": "punctuation.definition.string.begin.hcl" - }, - "3": { - "name": "punctuation.definition.string.end.hcl" - }, - "4": { - "name": "keyword.operator.hcl" - } - } - }, - { - "name": "meta.mapping.key.hcl", - "begin": "^\\s*\\(", - "end": "(\\))\\s*(=|:)\\s*", - "comment": "Computed object key (any expression between parens)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.hcl" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.hcl" - }, - "2": { - "name": "keyword.operator.hcl" - } - }, - "patterns": [ - { - "include": "#attribute_access" - }, - { - "include": "#attribute_splat" - } - ] - }, - { - "include": "#object_key_values" - } - ] - }, - "operators": { - "patterns": [ - { - "name": "keyword.operator.hcl", - "match": "\\>\\=" - }, - { - "name": "keyword.operator.hcl", - "match": "\\<\\=" - }, - { - "name": "keyword.operator.hcl", - "match": "\\=\\=" - }, - { - "name": "keyword.operator.hcl", - "match": "\\!\\=" - }, - { - "name": "keyword.operator.arithmetic.hcl", - "match": "\\+" - }, - { - "name": "keyword.operator.arithmetic.hcl", - "match": "\\-" - }, - { - "name": "keyword.operator.arithmetic.hcl", - "match": "\\*" - }, - { - "name": "keyword.operator.arithmetic.hcl", - "match": "\\/" - }, - { - "name": "keyword.operator.arithmetic.hcl", - "match": "\\%" - }, - { - "name": "keyword.operator.logical.hcl", - "match": "\\&\\&" - }, - { - "name": "keyword.operator.logical.hcl", - "match": "\\|\\|" - }, - { - "name": "keyword.operator.logical.hcl", - "match": "\\!" - }, - { - "name": "keyword.operator.hcl", - "match": "\\>" - }, - { - "name": "keyword.operator.hcl", - "match": "\\<" - }, - { - "name": "keyword.operator.hcl", - "match": "\\?" - }, - { - "name": "keyword.operator.hcl", - "match": "\\.\\.\\." - }, - { - "match": "\\:" - } - ] - }, - "parens": { - "begin": "\\(", - "end": "\\)", - "comment": "Parens - matched *after* function syntax", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.hcl" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#expressions" - } - ] - }, - "string_interpolation": { - "name": "meta.interpolation.hcl", - "begin": "(?<![%$])([%$]{)", - "end": "\\}", - "comment": "String interpolation", - "beginCaptures": { - "1": { - "name": "keyword.other.interpolation.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "keyword.other.interpolation.end.hcl" - } - }, - "patterns": [ - { - "name": "keyword.operator.template.left.trim.hcl", - "match": "\\~\\s", - "comment": "Trim left whitespace" - }, - { - "name": "keyword.operator.template.right.trim.hcl", - "match": "\\s\\~", - "comment": "Trim right whitespace" - }, - { - "name": "keyword.control.hcl", - "match": "\\b(if|else|endif|for|in|endfor)\\b", - "comment": "if/else/endif and for/in/endfor directives" - }, - { - "include": "#expressions" - }, - { - "include": "#local_identifiers" - } - ] - }, - "string_literals": { - "name": "string.quoted.double.hcl", - "begin": "\"", - "end": "\"", - "comment": "Strings", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.hcl" - } - }, - "patterns": [ - { - "include": "#string_interpolation" - }, - { - "include": "#char_escapes" - } - ] - }, - "tuple_for_expression": { - "begin": "(\\[)\\s?(for)\\b", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "punctuation.section.brackets.begin.hcl" - }, - "2": { - "name": "keyword.control.hcl" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.end.hcl" - } - }, - "patterns": [ - { - "include": "#for_expression_body" - } - ] - } - } -} diff --git a/lib/grammars/hjson.tmLanguage.json b/lib/grammars/hjson.tmLanguage.json deleted file mode 100644 index d5466a9..0000000 --- a/lib/grammars/hjson.tmLanguage.json +++ /dev/null @@ -1,819 +0,0 @@ -{ - "fileTypes": ["hjson"], - "foldingStartMarker": "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [{\\[] # the start of an object or array\n (?! # but not followed by\n .* # whatever\n [}\\]] # and the close of an object or array\n ,? # an optional comma\n \\s* # some optional space\n $ # at the end of the line\n )\n | # ...or...\n [{\\[] # the start of an object or array\n \\s* # some optional space\n $ # at the end of the line\n )", - "foldingStopMarker": "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [}\\]] # and the close of an object or array\n )", - "keyEquivalent": "^~J", - "name": "hjson", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#value" - }, - { - "match": "[^\\s]", - "name": "invalid.illegal.excess-characters.hjson" - } - ], - "repository": { - "array": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.hjson" - } - }, - "end": "(\\])(?:\\s*([^,\\s]+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.array.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "meta.structure.array.hjson", - "patterns": [ - { - "include": "#arrayContent" - } - ] - }, - "arrayArray": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.hjson" - } - }, - "end": "(\\])(?:\\s*([^,\\s\\]]+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.array.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "meta.structure.array.hjson", - "patterns": [ - { - "include": "#arrayContent" - } - ] - }, - "arrayConstant": { - "captures": { - "1": { - "name": "constant.language.hjson" - }, - "2": { - "name": "punctuation.separator.array.after-const.hjson" - } - }, - "match": "\\b(true|false|null)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\]))" - }, - "arrayContent": { - "name": "meta.structure.array.hjson", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#arrayValue" - }, - { - "begin": "(?<=\\[)|,", - "beginCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.hjson" - } - }, - "end": "(?=[^\\s,/#])|(?=/[^/*])", - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "invalid.illegal.extra-comma.hjson" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.array.hjson" - }, - { - "match": "[^\\s\\]]", - "name": "invalid.illegal.expected-array-separator.hjson" - } - ] - }, - "arrayJstring": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(\")(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.double.hjson", - "patterns": [ - { - "include": "#jstringDoubleContent" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(')(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.single.hjson", - "patterns": [ - { - "include": "#jstringSingleContent" - } - ] - } - ] - }, - "arrayMstring": { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(''')(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.multiline.hjson" - }, - "arrayNumber": { - "captures": { - "1": { - "name": "constant.numeric.hjson" - }, - "2": { - "name": "punctuation.separator.array.after-num.hjson" - } - }, - "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\]))" - }, - "arrayObject": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.hjson" - } - }, - "end": "(\\}|(?<=\\}))(?:\\s*([^,\\s\\]]+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.dictionary.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "meta.structure.dictionary.hjson", - "patterns": [ - { - "include": "#objectContent" - } - ] - }, - "arrayString": { - "patterns": [ - { - "include": "#arrayMstring" - }, - { - "include": "#arrayJstring" - }, - { - "include": "#ustring" - } - ] - }, - "arrayValue": { - "patterns": [ - { - "include": "#arrayNumber" - }, - { - "include": "#arrayConstant" - }, - { - "include": "#arrayString" - }, - { - "include": "#arrayObject" - }, - { - "include": "#arrayArray" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "match": "^\\s*(#).*(?:\\n)?", - "name": "comment.line.hash" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "match": "^\\s*(//).*(?:\\n)?", - "name": "comment.line.double-slash" - }, - { - "begin": "^\\s*/\\*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "end": "\\*/(?:\\s*\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "name": "comment.block.double-slash" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "match": "(#)[^\\n]*", - "name": "comment.line.hash" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "match": "(//)[^\\n]*", - "name": "comment.line.double-slash" - }, - { - "begin": "/\\*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "end": "\\*/", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "name": "comment.block.double-slash" - } - ] - }, - "commentsNewline": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "match": "(#).*\\n", - "name": "comment.line.hash" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "match": "(//).*\\n", - "name": "comment.line.double-slash" - }, - { - "begin": "/\\*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "end": "\\*/(\\s*\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.hjson" - } - }, - "name": "comment.block.double-slash" - } - ] - }, - "constant": { - "captures": { - "1": { - "name": "constant.language.hjson" - } - }, - "match": "\\b(true|false|null)[\\t ]*(?=$|#|/\\*|//|\\])" - }, - "jstring": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(\")(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.double.hjson", - "patterns": [ - { - "include": "#jstringDoubleContent" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(')(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.single.hjson", - "patterns": [ - { - "include": "#jstringSingleContent" - } - ] - } - ] - }, - "jstringDoubleContent": { - "patterns": [ - { - "match": "\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})", - "name": "constant.character.escape.hjson" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.hjson" - }, - { - "match": "[^\"]*[^\\n\\r\"\\\\]$", - "name": "invalid.illegal.string.hjson" - } - ] - }, - "jstringSingleContent": { - "patterns": [ - { - "match": "\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})", - "name": "constant.character.escape.hjson" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.hjson" - }, - { - "match": "[^']*[^\\n\\r'\\\\]$", - "name": "invalid.illegal.string.hjson" - } - ] - }, - "key": { - "begin": "(?x:\n (\n (?:[^:,\\{\\}\\[\\]\\s\"'][^:,\\{\\}\\[\\]\\s]*) |\n (?: # json string w/ '\n '\n (?:\n [^\\\\'] | # anything but an escape character or quote\n (\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})) | # escape characters\n (\\\\.) # bad escape characters\n )*\n '\n ) |\n (?: # json string w/ \"\n \"\n (?:\n [^\\\\\"] | # anything but an escape character or quote\n (\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})) | # escape characters\n (\\\\.) # bad escape characters\n )*\n \"\n )\n )\n \\s*\n (?!\\n)\n ([,\\{\\}\\[\\]]*)\n )", - "beginCaptures": { - "0": { - "name": "meta.structure.key-value.begin.hjson" - }, - "1": { - "name": "support.type.property-name.hjson" - }, - "2": { - "name": "constant.character.escape.hjson" - }, - "3": { - "name": "invalid.illegal.unrecognized-string-escape.hjson" - }, - "4": { - "name": "constant.character.escape.hjson" - }, - "5": { - "name": "invalid.illegal.unrecognized-string-escape.hjson" - }, - "6": { - "name": "invalid.illegal.separator.hjson" - }, - "7": { - "name": "invalid.illegal.property-name.hjson" - } - }, - "end": "(?<!^|:)\\s*\\n|(?=})|(,)", - "endCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.hjson" - } - }, - "patterns": [ - { - "include": "#commentsNewline" - }, - { - "include": "#keyValue" - }, - { - "match": "[^\\s]", - "name": "invalid.illegal.object-property.hjson" - } - ] - }, - "keyValue": { - "begin": "(?x:\n \\s*\n (:)\n \\s* # capture the line ending if there is no value on the same line\n ([,\\}\\]]*)\n )", - "beginCaptures": { - "1": { - "name": "punctuation.separator.dictionary.key-value.hjson" - }, - "2": { - "name": "invalid.illegal.object-property.hjson" - } - }, - "end": "(?<!^)\\s*(?=\\n)|(?=[},])", - "name": "meta.structure.key-value.hjson", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "^\\s+" - }, - { - "include": "#objectValue" - }, - { - "captures": { - "1": { - "name": "invalid.illegal.object-property.closing-bracket.hjson" - } - }, - "match": "^\\s*(\\})" - }, - { - "match": "[^\\s]", - "name": "invalid.illegal.object-property.hjson" - } - ] - }, - "mstring": { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(''')(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.multiline.hjson" - }, - "number": { - "captures": { - "1": { - "name": "constant.numeric.hjson" - } - }, - "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)[\\t ]*(?=$|#|/\\*|//|\\])" - }, - "object": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.hjson" - } - }, - "end": "(\\}|(?<=\\}))(?:\\s*([^,\\s]+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.dictionary.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "meta.structure.dictionary.hjson", - "patterns": [ - { - "include": "#objectContent" - } - ] - }, - "objectArray": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.hjson" - } - }, - "end": "(\\])(?:\\s*([^,\\s\\}]+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.array.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "meta.structure.array.hjson", - "patterns": [ - { - "include": "#arrayContent" - } - ] - }, - "objectConstant": { - "captures": { - "1": { - "name": "constant.language.hjson" - }, - "2": { - "name": "punctuation.separator.dictionary.pair.after-const.hjson" - } - }, - "match": "\\b(true|false|null)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\}))" - }, - "objectContent": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#key" - }, - { - "match": ":[.|\\s]", - "name": "invalid.illegal.object-property.hjson" - }, - { - "begin": "(?<=\\{|,)|,", - "beginCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.hjson" - } - }, - "end": "(?=[^\\s,/#])|(?=/[^/*])", - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "invalid.illegal.extra-comma.hjson" - } - ] - }, - { - "match": "[^\\s]", - "name": "invalid.illegal.object-property.hjson" - } - ] - }, - "objectJstring": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(\")(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.double.hjson", - "patterns": [ - { - "include": "#jstringDoubleContent" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(')(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.single.hjson", - "patterns": [ - { - "include": "#jstringSingleContent" - } - ] - } - ] - }, - "objectMstring": { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.hjson" - } - }, - "end": "(''')(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "string.quoted.multiline.hjson" - }, - "objectNumber": { - "captures": { - "1": { - "name": "constant.numeric.hjson" - }, - "2": { - "name": "punctuation.separator.dictionary.pair.after-num.hjson" - } - }, - "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\}))" - }, - "objectObject": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.hjson" - } - }, - "end": "(\\}|(?<=\\})\\}?)(?:\\s*([^,\\s}]+))?", - "endCaptures": { - "1": { - "name": "punctuation.definition.dictionary.end.hjson" - }, - "2": { - "name": "invalid.illegal.value.hjson" - } - }, - "name": "meta.structure.dictionary.hjson", - "patterns": [ - { - "include": "#objectContent" - } - ] - }, - "objectString": { - "patterns": [ - { - "include": "#objectMstring" - }, - { - "include": "#objectJstring" - }, - { - "include": "#ustring" - } - ] - }, - "objectValue": { - "patterns": [ - { - "include": "#objectNumber" - }, - { - "include": "#objectConstant" - }, - { - "include": "#objectString" - }, - { - "include": "#objectObject" - }, - { - "include": "#objectArray" - } - ] - }, - "string": { - "patterns": [ - { - "include": "#mstring" - }, - { - "include": "#jstring" - }, - { - "include": "#ustring" - } - ] - }, - "ustring": { - "match": "([^:,\\{\\[\\}\\]\\s].*)$", - "name": "string.quoted.none.hjson" - }, - "value": { - "patterns": [ - { - "include": "#number" - }, - { - "include": "#constant" - }, - { - "include": "#string" - }, - { - "include": "#object" - }, - { - "include": "#array" - } - ] - } - }, - "scopeName": "source.hjson" -} diff --git a/lib/grammars/hlsl.tmLanguage.json b/lib/grammars/hlsl.tmLanguage.json deleted file mode 100644 index bdcee21..0000000 --- a/lib/grammars/hlsl.tmLanguage.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/hlsl.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/tgjones/shaders-tmLanguage/commit/87c0dca3a39170dbd7ee7e277db4f915fb2de14a", - "name": "hlsl", - "scopeName": "source.hlsl", - "patterns": [ - { - "name": "comment.line.block.hlsl", - "begin": "/\\*", - "end": "\\*/" - }, - { - "name": "comment.line.double-slash.hlsl", - "begin": "//", - "end": "$" - }, - { - "name": "constant.numeric.decimal.hlsl", - "match": "\\b[0-9]+\\.[0-9]*(F|f)?\\b" - }, - { - "name": "constant.numeric.decimal.hlsl", - "match": "(\\.([0-9]+)(F|f)?)\\b" - }, - { - "name": "constant.numeric.decimal.hlsl", - "match": "\\b([0-9]+(F|f)?)\\b" - }, - { - "name": "constant.numeric.hex.hlsl", - "match": "\\b(0(x|X)[0-9a-fA-F]+)\\b" - }, - { - "name": "constant.language.hlsl", - "match": "\\b(false|true)\\b" - }, - { - "name": "keyword.preprocessor.hlsl", - "match": "^\\s*#\\s*(define|elif|else|endif|ifdef|ifndef|if|undef|include|line|error|pragma)" - }, - { - "name": "keyword.control.hlsl", - "match": "\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\b" - }, - { - "name": "keyword.control.fx.hlsl", - "match": "\\b(compile)\\b" - }, - { - "name": "keyword.typealias.hlsl", - "match": "\\b(typedef)\\b" - }, - { - "name": "storage.type.basic.hlsl", - "match": "\\b(bool([1-4](x[1-4])?)?|double([1-4](x[1-4])?)?|dword|float([1-4](x[1-4])?)?|half([1-4](x[1-4])?)?|int([1-4](x[1-4])?)?|matrix|min10float([1-4](x[1-4])?)?|min12int([1-4](x[1-4])?)?|min16float([1-4](x[1-4])?)?|min16int([1-4](x[1-4])?)?|min16uint([1-4](x[1-4])?)?|unsigned|uint([1-4](x[1-4])?)?|vector|void)\\b" - }, - { - "name": "support.function.hlsl", - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(?=[\\s]*\\()" - }, - { - "name": "support.variable.semantic.hlsl", - "match": "(?<=\\:\\s|\\:)(?i:BINORMAL[0-9]*|BLENDINDICES[0-9]*|BLENDWEIGHT[0-9]*|COLOR[0-9]*|NORMAL[0-9]*|POSITIONT|POSITION|PSIZE[0-9]*|TANGENT[0-9]*|TEXCOORD[0-9]*|FOG|TESSFACTOR[0-9]*|VFACE|VPOS|DEPTH[0-9]*)\\b" - }, - { - "name": "support.variable.semantic.sm4.hlsl", - "match": "(?<=\\:\\s|\\:)(?i:SV_ClipDistance[0-9]*|SV_CullDistance[0-9]*|SV_Coverage|SV_Depth|SV_DepthGreaterEqual[0-9]*|SV_DepthLessEqual[0-9]*|SV_InstanceID|SV_IsFrontFace|SV_Position|SV_RenderTargetArrayIndex|SV_SampleIndex|SV_StencilRef|SV_Target[0-7]?|SV_VertexID|SV_ViewportArrayIndex)\\b" - }, - { - "name": "support.variable.semantic.sm5.hlsl", - "match": "(?<=\\:\\s|\\:)(?i:SV_DispatchThreadID|SV_DomainLocation|SV_GroupID|SV_GroupIndex|SV_GroupThreadID|SV_GSInstanceID|SV_InsideTessFactor|SV_OutputControlPointID|SV_TessFactor)\\b" - }, - { - "name": "support.variable.semantic.sm5_1.hlsl", - "match": "(?<=\\:\\s|\\:)(?i:SV_InnerCoverage|SV_StencilRef)\\b" - }, - { - "name": "storage.modifier.hlsl", - "match": "\\b(column_major|const|export|extern|globallycoherent|groupshared|inline|inout|in|out|precise|row_major|shared|static|uniform|volatile)\\b" - }, - { - "name": "storage.modifier.float.hlsl", - "match": "\\b(snorm|unorm)\\b" - }, - { - "name": "storage.modifier.postfix.hlsl", - "match": "\\b(packoffset|register)\\b" - }, - { - "name": "storage.modifier.interpolation.hlsl", - "match": "\\b(centroid|linear|nointerpolation|noperspective|sample)\\b" - }, - { - "name": "storage.modifier.geometryshader.hlsl", - "match": "\\b(lineadj|line|point|triangle|triangleadj)\\b" - }, - { - "name": "support.type.other.hlsl", - "match": "\\b(string)\\b" - }, - { - "name": "support.type.object.hlsl", - "match": "\\b(AppendStructuredBuffer|Buffer|ByteAddressBuffer|ConstantBuffer|ConsumeStructuredBuffer|InputPatch|OutputPatch)\\b" - }, - { - "name": "support.type.object.rasterizerordered.hlsl", - "match": "\\b(RasterizerOrderedBuffer|RasterizerOrderedByteAddressBuffer|RasterizerOrderedStructuredBuffer|RasterizerOrderedTexture1D|RasterizerOrderedTexture1DArray|RasterizerOrderedTexture2D|RasterizerOrderedTexture2DArray|RasterizerOrderedTexture3D)\\b" - }, - { - "name": "support.type.object.rw.hlsl", - "match": "\\b(RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture1D|RWTexture1DArray|RWTexture2D|RWTexture2DArray|RWTexture3D)\\b" - }, - { - "name": "support.type.object.geometryshader.hlsl", - "match": "\\b(LineStream|PointStream|TriangleStream)\\b" - }, - { - "name": "support.type.sampler.legacy.hlsl", - "match": "\\b(sampler|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler_state)\\b" - }, - { - "name": "support.type.sampler.hlsl", - "match": "\\b(SamplerState|SamplerComparisonState)\\b" - }, - { - "name": "support.type.texture.legacy.hlsl", - "match": "\\b(texture2D|textureCUBE)\\b" - }, - { - "name": "support.type.texture.hlsl", - "match": "\\b(Texture1D|Texture1DArray|Texture2D|Texture2DArray|Texture2DMS|Texture2DMSArray|Texture3D|TextureCube|TextureCubeArray)\\b" - }, - { - "name": "storage.type.structured.hlsl", - "match": "\\b(cbuffer|class|interface|namespace|struct|tbuffer)\\b" - }, - { - "name": "support.constant.property-value.fx.hlsl", - "match": "\\b(FALSE|TRUE|NULL)\\b" - }, - { - "name": "support.type.fx.hlsl", - "match": "\\b(BlendState|DepthStencilState|RasterizerState)\\b" - }, - { - "name": "storage.type.fx.technique.hlsl", - "match": "\\b(technique|Technique|technique10|technique11|pass)\\b" - }, - { - "name": "meta.object-literal.key.fx.blendstate.hlsl", - "match": "\\b(AlphaToCoverageEnable|BlendEnable|SrcBlend|DestBlend|BlendOp|SrcBlendAlpha|DestBlendAlpha|BlendOpAlpha|RenderTargetWriteMask)\\b" - }, - { - "name": "meta.object-literal.key.fx.depthstencilstate.hlsl", - "match": "\\b(DepthEnable|DepthWriteMask|DepthFunc|StencilEnable|StencilReadMask|StencilWriteMask|FrontFaceStencilFail|FrontFaceStencilZFail|FrontFaceStencilPass|FrontFaceStencilFunc|BackFaceStencilFail|BackFaceStencilZFail|BackFaceStencilPass|BackFaceStencilFunc)\\b" - }, - { - "name": "meta.object-literal.key.fx.rasterizerstate.hlsl", - "match": "\\b(FillMode|CullMode|FrontCounterClockwise|DepthBias|DepthBiasClamp|SlopeScaleDepthBias|ZClipEnable|ScissorEnable|MultiSampleEnable|AntiAliasedLineEnable)\\b" - }, - { - "name": "meta.object-literal.key.fx.samplerstate.hlsl", - "match": "\\b(Filter|AddressU|AddressV|AddressW|MipLODBias|MaxAnisotropy|ComparisonFunc|BorderColor|MinLOD|MaxLOD)\\b" - }, - { - "name": "support.constant.property-value.fx.blend.hlsl", - "match": "\\b(?i:ZERO|ONE|SRC_COLOR|INV_SRC_COLOR|SRC_ALPHA|INV_SRC_ALPHA|DEST_ALPHA|INV_DEST_ALPHA|DEST_COLOR|INV_DEST_COLOR|SRC_ALPHA_SAT|BLEND_FACTOR|INV_BLEND_FACTOR|SRC1_COLOR|INV_SRC1_COLOR|SRC1_ALPHA|INV_SRC1_ALPHA)\\b" - }, - { - "name": "support.constant.property-value.fx.blendop.hlsl", - "match": "\\b(?i:ADD|SUBTRACT|REV_SUBTRACT|MIN|MAX)\\b" - }, - { - "name": "support.constant.property-value.fx.depthwritemask.hlsl", - "match": "\\b(?i:ALL)\\b" - }, - { - "name": "support.constant.property-value.fx.comparisonfunc.hlsl", - "match": "\\b(?i:NEVER|LESS|EQUAL|LESS_EQUAL|GREATER|NOT_EQUAL|GREATER_EQUAL|ALWAYS)\\b" - }, - { - "name": "support.constant.property-value.fx.stencilop.hlsl", - "match": "\\b(?i:KEEP|REPLACE|INCR_SAT|DECR_SAT|INVERT|INCR|DECR)\\b" - }, - { - "name": "support.constant.property-value.fx.fillmode.hlsl", - "match": "\\b(?i:WIREFRAME|SOLID)\\b" - }, - { - "name": "support.constant.property-value.fx.cullmode.hlsl", - "match": "\\b(?i:NONE|FRONT|BACK)\\b" - }, - { - "name": "support.constant.property-value.fx.filter.hlsl", - "match": "\\b(?i:MIN_MAG_MIP_POINT|MIN_MAG_POINT_MIP_LINEAR|MIN_POINT_MAG_LINEAR_MIP_POINT|MIN_POINT_MAG_MIP_LINEAR|MIN_LINEAR_MAG_MIP_POINT|MIN_LINEAR_MAG_POINT_MIP_LINEAR|MIN_MAG_LINEAR_MIP_POINT|MIN_MAG_MIP_LINEAR|ANISOTROPIC|COMPARISON_MIN_MAG_MIP_POINT|COMPARISON_MIN_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_POINT_MAG_MIP_LINEAR|COMPARISON_MIN_LINEAR_MAG_MIP_POINT|COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_MAG_MIP_LINEAR|COMPARISON_ANISOTROPIC|TEXT_1BIT)\\b" - }, - { - "name": "support.constant.property-value.fx.textureaddressmode.hlsl", - "match": "\\b(?i:WRAP|MIRROR|CLAMP|BORDER|MIRROR_ONCE)\\b" - }, - { - "name": "string.quoted.double.hlsl", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.hlsl", - "match": "\\\\." - } - ] - } - ] -} diff --git a/lib/grammars/html.tmLanguage.json b/lib/grammars/html.tmLanguage.json deleted file mode 100644 index f44c8f9..0000000 --- a/lib/grammars/html.tmLanguage.json +++ /dev/null @@ -1,2643 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/html.tmbundle/blob/master/Syntaxes/HTML.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/html.tmbundle/commit/0c3d5ee54de3a993f747f54186b73a4d2d3c44a2", - "name": "html", - "scopeName": "text.html.basic", - "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" - } - ] - } - }, - "patterns": [ - { - "include": "#xml-processing" - }, - { - "include": "#comment" - }, - { - "include": "#doctype" - }, - { - "include": "#cdata" - }, - { - "include": "#tags-valid" - }, - { - "include": "#tags-invalid" - }, - { - "include": "#entities" - } - ], - "repository": { - "attribute": { - "patterns": [ - { - "begin": "(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 attributes, not event handlers", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "style(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 style attribute", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.style.html", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "begin": "(?=[^\\s=<>`/]|/(?!>))", - "end": "(?!\\G)", - "name": "meta.embedded.line.css", - "patterns": [ - { - "captures": { - "0": { - "name": "source.css" - } - }, - "match": "([^\\s\"'=<>`/]|/(?!>))+", - "name": "string.unquoted.html" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.css", - "end": "(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.css" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "#entities" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.css", - "end": "(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.css" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "include": "#entities" - } - ] - } - ] - }, - { - "match": "=", - "name": "invalid.illegal.unexpected-equals-sign.html" - } - ] - } - ] - }, - { - "begin": "on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 attributes, event handlers", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.event-handler.$1.html", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "begin": "(?=[^\\s=<>`/]|/(?!>))", - "end": "(?!\\G)", - "name": "meta.embedded.line.js", - "patterns": [ - { - "captures": { - "0": { - "name": "source.js" - }, - "1": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "match": "(([^\\s\"'=<>`/]|/(?!>))+)", - "name": "string.unquoted.html" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.js", - "end": "(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.js" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "match": "([^\\n\"/]|/(?![/*]))+" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=\")|\\n", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.js" - } - }, - "end": "(?=\")|\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.js" - } - }, - "name": "comment.block.js" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.js", - "end": "(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.js" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "match": "([^\\n'/]|/(?![/*]))+" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=')|\\n", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.js" - } - }, - "end": "(?=')|\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.js" - } - }, - "name": "comment.block.js" - } - ] - } - ] - }, - { - "match": "=", - "name": "invalid.illegal.unexpected-equals-sign.html" - } - ] - } - ] - }, - { - "begin": "(data-[a-z\\-]+)(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 attributes, data-*", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.data-x.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "(align|bgcolor|border)(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "invalid.deprecated.entity.other.attribute-name.html" - } - }, - "comment": "HTML attributes, deprecated", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "Anything else that is valid", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.unrecognized.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "match": "[^\\s>]+", - "name": "invalid.illegal.character-not-allowed-here.html" - } - ] - }, - "attribute-interior": { - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "match": "([^\\s\"'=<>`/]|/(?!>))+", - "name": "string.unquoted.html" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "#entities" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "include": "#entities" - } - ] - }, - { - "match": "=", - "name": "invalid.illegal.unexpected-equals-sign.html" - } - ] - } - ] - }, - "cdata": { - "begin": "<!\\[CDATA\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.begin.html" - } - }, - "contentName": "string.other.inline-data.html", - "end": "]]>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.cdata.html" - }, - "comment": { - "begin": "<!--", - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - }, - "end": "-->", - "name": "comment.block.html", - "patterns": [ - { - "match": "\\G-?>", - "name": "invalid.illegal.characters-not-allowed-here.html" - }, - { - "match": "<!--(?!>)|<!-(?=-->)", - "name": "invalid.illegal.characters-not-allowed-here.html" - }, - { - "match": "--!>", - "name": "invalid.illegal.characters-not-allowed-here.html" - } - ] - }, - "core-minus-invalid": { - "comment": "This should be the root pattern array includes minus #tags-invalid", - "patterns": [ - { - "include": "#xml-processing" - }, - { - "include": "#comment" - }, - { - "include": "#doctype" - }, - { - "include": "#cdata" - }, - { - "include": "#tags-valid" - }, - { - "include": "#entities" - } - ] - }, - "doctype": { - "begin": "<!(?=(?i:DOCTYPE\\s))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.begin.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.doctype.html", - "patterns": [ - { - "match": "\\G(?i:DOCTYPE)", - "name": "entity.name.tag.html" - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.html" - }, - { - "match": "[^\\s>]+", - "name": "entity.other.attribute-name.html" - } - ] - }, - "entities": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "912": { - "name": "punctuation.definition.entity.html" - } - }, - "comment": "Yes this is a bit ridiculous, there are quite a lot of these", - "match": "(?x)\n\t\t\t\t\t\t(&)\t(?=[a-zA-Z])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n\t\t\t\t\t\t | (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n\t\t\t\t\t\t | (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n\t\t\t\t\t\t | (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n\t\t\t\t\t\t | (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n\t\t\t\t\t\t | (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n\t\t\t\t\t\t | (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n\t\t\t\t\t\t | (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n\t\t\t\t\t\t | (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n\t\t\t\t\t\t | (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n\t\t\t\t\t\t | (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n\t\t\t\t\t\t | (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n\t\t\t\t\t\t | (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n\t\t\t\t\t\t | (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n\t\t\t\t\t\t | (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n\t\t\t\t\t\t | (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n\t\t\t\t\t\t | (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n\t\t\t\t\t\t | (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n\t\t\t\t\t\t | (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n\t\t\t\t\t\t | (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n\t\t\t\t\t\t | (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n\t\t\t\t\t\t | (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n\t\t\t\t\t\t | (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n\t\t\t\t\t\t | (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n\t\t\t\t\t\t | (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n\t\t\t\t\t\t | (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(;)\n\t\t\t\t\t", - "name": "constant.character.entity.named.$2.html" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - }, - "match": "(&)#[0-9]+(;)", - "name": "constant.character.entity.numeric.decimal.html" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - }, - "match": "(&)#[xX][0-9a-fA-F]+(;)", - "name": "constant.character.entity.numeric.hexadecimal.html" - }, - { - "match": "&(?=[a-zA-Z0-9]+;)", - "name": "invalid.illegal.ambiguous-ampersand.html" - } - ] - }, - "math": { - "patterns": [ - { - "begin": "(?i)(<)(math)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)", - "endCaptures": { - "0": { - "name": "meta.tag.structure.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.structure.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - } - ], - "repository": { - "attribute": { - "patterns": [ - { - "begin": "(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "Anything else that is valid", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.unrecognized.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "match": "[^\\s>]+", - "name": "invalid.illegal.character-not-allowed-here.html" - } - ] - }, - "tags": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#cdata" - }, - { - "captures": { - "0": { - "name": "meta.tag.structure.math.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.structure.math.$2.html" - }, - { - "begin": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.math.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.structure.math.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.structure.math.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.inline.math.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.inline.math.$2.html" - }, - { - "begin": "(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.inline.math.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.inline.math.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.inline.math.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.object.math.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.object.math.$2.html" - }, - { - "begin": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.object.math.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.object.math.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.object.math.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.other.invalid.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.other.invalid.html" - }, - { - "begin": "(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.other.invalid.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.other.invalid.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.other.invalid.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.invalid.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "include": "#tags-invalid" - } - ] - } - } - }, - "svg": { - "patterns": [ - { - "begin": "(?i)(<)(svg)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)", - "endCaptures": { - "0": { - "name": "meta.tag.structure.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.structure.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - } - ], - "repository": { - "attribute": { - "patterns": [ - { - "begin": "(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "Anything else that is valid", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.unrecognized.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "match": "[^\\s>]+", - "name": "invalid.illegal.character-not-allowed-here.html" - } - ] - }, - "tags": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#cdata" - }, - { - "captures": { - "0": { - "name": "meta.tag.metadata.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.metadata.svg.$2.html" - }, - { - "begin": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.svg.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.metadata.svg.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.structure.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.structure.svg.$2.html" - }, - { - "begin": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.structure.svg.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.structure.svg.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.inline.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.inline.svg.$2.html" - }, - { - "begin": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.inline.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.inline.svg.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.inline.svg.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.object.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.object.svg.$2.html" - }, - { - "begin": "(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.object.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.object.svg.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.object.svg.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.other.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.other.svg.$2.html" - }, - { - "begin": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.other.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.other.svg.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.other.svg.$2.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.other.invalid.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.other.invalid.html" - }, - { - "begin": "(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.other.invalid.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)", - "endCaptures": { - "0": { - "name": "meta.tag.other.invalid.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.other.invalid.html", - "patterns": [ - { - "begin": "(?<!>)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.invalid.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "include": "#tags-invalid" - } - ] - } - } - }, - "tags-invalid": { - "patterns": [ - { - "begin": "(</?)((\\w[^\\s>]*))(?<!/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - } - }, - "end": "((?: ?/)?>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.$2.html", - "patterns": [ - { - "include": "#attribute" - } - ] - } - ] - }, - "tags-valid": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=<(?i:style)\\b(?!-))", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.leading.html" - } - }, - "end": "(?!\\G)([ \\t]*$\\n?)?", - "endCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.trailing.html" - } - }, - "patterns": [ - { - "begin": "(?i)(<)(style)(?=\\s|/?>)", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.style.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(?i)((<)/)(style)\\s*(>)", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.style.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "source.css-ignored-vscode" - }, - "3": { - "name": "entity.name.tag.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "\\G", - "captures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(>)", - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=</(?i:style))", - "name": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=<(?i:script)\\b(?!-))", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.leading.html" - } - }, - "end": "(?!\\G)([ \\t]*$\\n?)?", - "endCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.trailing.html" - } - }, - "patterns": [ - { - "begin": "(<)((?i:script))\\b", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.script.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(/)((?i:script))(>)", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "\\G", - "end": "(?=/)", - "patterns": [ - { - "begin": "(>)", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.script.start.html" - }, - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "((<))(?=/(?i:script))", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "source.js-ignored-vscode" - } - }, - "patterns": [ - { - "begin": "\\G", - "end": "(?=</(?i:script))", - "name": "source.js", - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=</script)|\\n", - "name": "comment.line.double-slash.js" - } - ] - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "\\*/|(?=</script)", - "name": "comment.block.js" - }, - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "\\G", - "end": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=>\t\t\t\t\t\t\t\t\t\t\t# Tag without type attribute\n\t\t\t\t\t\t\t\t\t\t\t\t | type(?=[\\s=])\n\t\t\t\t\t\t\t\t\t\t\t\t \t(?!\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t''\t\t\t\t\t\t\t\t# Empty\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | \"\"\t\t\t\t\t\t\t\t\t# Values\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | ('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\t\t\t\t\t\t\t# Text mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjavascript(1\\.[0-5])?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | x-javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | jscript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | livescript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | babel\t\t\t\t\t\t# Javascript variant currently\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t# recognized as such\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | application/\t\t\t\t\t# Application mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x-)?javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | module\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)", - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx-handlebars\n\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-(handlebars-)?|ng-)?template\n\t\t\t\t\t\t\t\t\t\t\t\t\t | html\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)", - "end": "((<))(?=/(?i:script))", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "text.html.basic" - } - }, - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=</(?i:script))", - "name": "text.html.basic", - "patterns": [ - { - "include": "text.html.basic" - } - ] - } - ] - }, - { - "begin": "(?=(?i:type))", - "end": "(<)(?=/(?i:script))", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - } - }, - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=</(?i:script))", - "name": "source.unknown" - } - ] - } - ] - } - ] - } - ] - }, - { - "begin": "(?i)(<)(base|link|meta)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(noscript|title)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)(noscript|title)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(col|hr|input)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(area|br|wbr)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((basefont|isindex))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)((center|frameset|noembed|noframes))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((frame))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((applet))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)((applet))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.no-longer-supported.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(</)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.no-longer-supported.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#math" - }, - { - "include": "#svg" - }, - { - "begin": "(<)([a-zA-Z][.0-9_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}]*-[\\-.0-9_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}]*)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.custom.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(</)([a-zA-Z][.0-9_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}]*-[\\-.0-9_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}]*)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.custom.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - } - ] - }, - "xml-processing": { - "begin": "(<\\?)(xml)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(\\?>)", - "name": "meta.tag.metadata.processing.xml.html", - "patterns": [ - { - "include": "#attribute" - } - ] - } - } -} diff --git a/lib/grammars/http.tmLanguage.json b/lib/grammars/http.tmLanguage.json deleted file mode 100644 index 80f1614..0000000 --- a/lib/grammars/http.tmLanguage.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "scopeName": "source.http", - "fileTypes": ["http", "rest"], - "keyEquivalent": "^~H", - "name": "http", - "patterns": [ - { - "begin": "^\\s*(?=curl)", - "name": "http.request.curl", - "end": "^\\s*(\\#{3,}.*?)?\\s*$", - "endCaptures": { - "0": { - "name": "comment.line.sharp.http" - } - }, - "patterns": [ - { - "include": "source.shell" - } - ] - }, - { - "begin": "\\s*(?=(\\[|{[^{]))", - "name": "http.request.body.json", - "end": "^\\s*(\\#{3,}.*?)?\\s*$", - "endCaptures": { - "0": { - "name": "comment.line.sharp.http" - } - }, - "patterns": [ - { - "include": "source.json" - } - ] - }, - { - "begin": "^\\s*(?=<\\S)", - "name": "http.request.body.xml", - "end": "^\\s*(\\#{3,}.*?)?\\s*$", - "endCaptures": { - "0": { - "name": "comment.line.sharp.http" - } - }, - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "\\s*(?=(query|mutation))", - "name": "http.request.body.graphql", - "end": "^\\s*(\\#{3,}.*?)?\\s*$", - "endCaptures": { - "0": { - "name": "comment.line.sharp.http" - } - }, - "patterns": [ - { - "include": "source.graphql" - } - ] - }, - { - "begin": "\\s*(?=(query|mutation))", - "name": "http.request.body.graphql", - "end": "^\\{\\s*$", - "patterns": [ - { - "include": "source.graphql" - } - ] - }, - { - "include": "#metadata" - }, - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "keyword.other.http" - }, - "2": { - "name": "variable.other.http" - }, - "3": { - "name": "string.other.http" - } - }, - "match": "^\\s*(@)([^\\s=]+)\\s*=\\s*(.*?)\\s*$", - "name": "http.filevariable" - }, - { - "captures": { - "1": { - "name": "keyword.operator.http" - }, - "2": { - "name": "variable.other.http" - }, - "3": { - "name": "string.other.http" - } - }, - "match": "^\\s*(\\?|&)([^=\\s]+)=(.*)$", - "name": "http.query" - }, - { - "captures": { - "1": { - "name": "entity.name.tag.http" - }, - "2": { - "name": "keyword.other.http" - }, - "3": { - "name": "string.other.http" - } - }, - "match": "^([\\w\\-]+)\\s*(\\:)\\s*([^/].*?)\\s*$", - "name": "http.headers" - }, - { - "include": "#request-line" - }, - { - "include": "#response-line" - } - ], - "repository": { - "metadata": { - "patterns": [ - { - "match": "^\\s*\\#{1,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$", - "captures": { - "1": { - "name": "entity.other.attribute-name" - }, - "2": { - "name": "punctuation.definition.block.tag.metadata" - }, - "3": { - "name": "entity.name.type.http" - } - }, - "name": "comment.line.sharp.http" - }, - { - "match": "^\\s*\\/{2,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$", - "captures": { - "1": { - "name": "entity.other.attribute-name" - }, - "2": { - "name": "punctuation.definition.block.tag.metadata" - }, - "3": { - "name": "entity.name.type.http" - } - }, - "name": "comment.line.double-slash.http" - }, - { - "match": "^\\s*\\#{1,}\\s+((@)note)\\s*$", - "captures": { - "1": { - "name": "entity.other.attribute-name" - }, - "2": { - "name": "punctuation.definition.block.tag.metadata" - } - }, - "name": "comment.line.sharp.http" - }, - { - "match": "^\\s*\\/{2,}\\s+((@)note)\\s*$", - "captures": { - "1": { - "name": "entity.other.attribute-name" - }, - "2": { - "name": "punctuation.definition.block.tag.metadata" - } - }, - "name": "comment.line.double-slash.http" - }, - { - "match": "^\\s*\\#{1,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$", - "captures": { - "1": { - "name": "entity.other.attribute-name" - }, - "2": { - "name": "punctuation.definition.block.tag.metadata" - }, - "3": { - "name": "variable.other.http" - }, - "4": { - "name": "string.other.http" - } - }, - "name": "comment.line.sharp.http" - }, - { - "match": "^\\s*\\/{2,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$", - "captures": { - "1": { - "name": "entity.other.attribute-name" - }, - "2": { - "name": "punctuation.definition.block.tag.metadata" - }, - "3": { - "name": "variable.other.http" - }, - "4": { - "name": "string.other.http" - } - }, - "name": "comment.line.double-slash.http" - } - ] - }, - "comments": { - "patterns": [ - { - "match": "^\\s*\\#{1,}.*$", - "name": "comment.line.sharp.http" - }, - { - "match": "^\\s*\\/{2,}.*$", - "name": "comment.line.double-slash.http" - } - ] - }, - "request-line": { - "captures": { - "1": { - "name": "keyword.control.http" - }, - "2": { - "name": "const.language.http" - }, - "3": { - "patterns": [ - { - "include": "#protocol" - } - ] - } - }, - "match": "(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace)\\s+)?\\s*(.+?)(?:\\s+(HTTP\\/\\S+))?$", - "name": "http.requestline" - }, - "response-line": { - "captures": { - "1": { - "patterns": [ - { - "include": "#protocol" - } - ] - }, - "2": { - "name": "constant.numeric.http" - }, - "3": { - "name": "string.other.http" - } - }, - "match": "(?i)^\\s*(HTTP\\/\\S+)\\s([1-5][0-9][0-9])\\s(.*)$", - "name": "http.responseLine" - }, - "protocol": { - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.http" - }, - "2": { - "name": "constant.numeric.http" - } - }, - "name": "http.version", - "match": "(HTTP)/(\\d+.\\d+)" - } - ] - } - } -} diff --git a/lib/grammars/imba.tmLanguage.json b/lib/grammars/imba.tmLanguage.json deleted file mode 100644 index d6f366d..0000000 --- a/lib/grammars/imba.tmLanguage.json +++ /dev/null @@ -1,2693 +0,0 @@ -{ - "name": "imba", - "scopeName": "source.imba", - "fileTypes": ["imba", "imba2"], - "uuid": "ef98eb90-bf9b-11e4-bb52-0800200c9a67", - "patterns": [ - { - "include": "#root" - }, - { - "name": "comment.line.shebang.imba", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.imba" - } - } - } - ], - "repository": { - "root": { - "patterns": [ - { - "include": "#block" - } - ] - }, - "block": { - "patterns": [ - { - "include": "#style-declaration" - }, - { - "include": "#object-keys" - }, - { - "include": "#tag-literal" - }, - { - "include": "#regex" - }, - { - "include": "#keywords" - }, - { - "include": "#comment" - }, - { - "include": "#literal" - }, - { - "include": "#plain-identifiers" - }, - { - "include": "#plain-accessors" - }, - { - "include": "#pairs" - }, - { - "include": "#invalid-indentation" - } - ] - }, - "expr": { - "patterns": [ - { - "include": "#style-declaration" - }, - { - "include": "#object-keys" - }, - { - "include": "#tag-literal" - }, - { - "include": "#regex" - }, - { - "include": "#keywords" - }, - { - "include": "#comment" - }, - { - "include": "#literal" - }, - { - "include": "#plain-identifiers" - }, - { - "include": "#plain-accessors" - }, - { - "include": "#pairs" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#number-with-unit-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#undefined-literal" - }, - { - "include": "#numericConstant-literal" - }, - { - "include": "#this-literal" - }, - { - "include": "#global-literal" - }, - { - "include": "#super-literal" - }, - { - "include": "#type-literal" - }, - { - "include": "#string" - } - ] - }, - "pairs": { - "patterns": [ - { - "include": "#curly-braces" - }, - { - "include": "#square-braces" - }, - { - "include": "#round-braces" - } - ] - }, - "curly-braces": { - "begin": "\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "meta.brace.curly.imba" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "meta.brace.curly.imba" - } - }, - "patterns": [ - { - "include": "#expr" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "square-braces": { - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.imba" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.imba" - } - }, - "patterns": [ - { - "include": "#expr" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "round-braces": { - "begin": "\\s*(\\()", - "beginCaptures": { - "1": { - "name": "meta.brace.round.imba" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.imba" - } - }, - "patterns": [ - { - "include": "#expr" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.imba", - "match": "(if|elif|else|unless|switch|when|then|do|import|export|for own|for|while|until|return|try|catch|await|finally|throw|as|continue|break|extend|augment)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.imba", - "match": "(?<=export\\s+)(default)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.imba", - "match": "(?<=import\\s+)(type)(?=\\s+[\\w\\{\\$\\_])" - }, - { - "name": "keyword.control.imba", - "match": "(extend)\\s+(?=class|tag)" - }, - { - "name": "keyword.control.imba", - "match": "(?<=[\\*\\}\\w\\$]\\s+)(from)(?=\\s+[\\\"\\'])" - }, - { - "name": "storage.type.function.imba", - "match": "(def|get|set)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "storage.type.class.imba", - "match": "(tag|class|struct)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "storage.type.imba", - "match": "(let|const|constructor)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "storage.type.imba", - "match": "(prop|attr)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "storage.modifier.imba", - "match": "(static)\\s+" - }, - { - "include": "#ops" - }, - { - "name": "keyword.operator.assignment.imba", - "match": "(=|\\|\\|=|\\?\\?=|\\&\\&=|\\+=|\\-=|\\*=|\\^=|\\%=)" - }, - { - "name": "keyword.operator.imba", - "match": "(\\>\\=?|\\<\\=?)" - }, - { - "name": "keyword.operator.imba", - "match": "(of|delete|\\!?isa|typeof|in|new)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "ops": { - "patterns": [ - { - "name": "keyword.operator.spread.imba", - "match": "\\.\\.\\." - }, - { - "name": "keyword.operator.assignment.compound.imba", - "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=|\\?=|\\?\\?=|=\\?" - }, - { - "name": "keyword.operator.assignment.compound.bitwise.imba", - "match": "\\^=\\?|\\|=\\?|\\~=\\?|\\&=|\\^=|<<=|>>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.imba", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.imba", - "match": "===|!==|==|!=|~=" - }, - { - "name": "keyword.operator.relational.imba", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(\\!)\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.logical.imba" - }, - "2": { - "name": "keyword.operator.arithmetic.imba" - } - } - }, - { - "name": "keyword.operator.logical.imba", - "match": "\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)" - }, - { - "name": "keyword.operator.bitwise.imba", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.imba", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.imba", - "match": "--" - }, - { - "name": "keyword.operator.increment.imba", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.imba", - "match": "%|\\*|/|-|\\+" - } - ] - }, - "object-keys": { - "patterns": [ - { - "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\:", - "name": "meta.object-literal.key" - } - ] - }, - "invalid-indentation": { - "patterns": [ - { - "name": "invalid.whitespace", - "match": "^[\\ ]+" - }, - { - "name": "invalid.whitespace", - "match": "^\\t+\\s+" - } - ] - }, - "style-property": { - "patterns": [ - { - "name": "meta.property-name.css", - "begin": "(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", - "beginCaptures": { - "1": { - "name": "support.function.calc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\s*\\:", - "endCaptures": { - "0": { - "name": "punctuation.separator.key-value.css" - } - }, - "patterns": [ - { - "name": "support.type.property-name.variable.css", - "match": "(?:--|\\$)[\\w\\-\\$]+" - }, - { - "name": "support.type.property-name.modifier.breakpoint.css", - "match": "\\@[\\!\\<\\>]?[0-9]+" - }, - { - "name": "support.type.property-name.modifier.css", - "match": "\\@[\\w\\-\\$]+" - }, - { - "name": "support.type.property-name.modifier.up.css", - "match": "\\.\\.[\\w\\-\\$]+" - }, - { - "name": "support.type.property-name.modifier.is.css", - "match": "\\.[\\w\\-\\$]+" - }, - { - "name": "support.type.property-name.css", - "match": "[\\w\\-\\$]+" - } - ] - } - ] - }, - "style-expr": { - "patterns": [ - { - "match": "(\\b[0-9][0-9_]*)(\\w+|%)?", - "captures": { - "1": { - "name": "constant.numeric.integer.decimal.css" - }, - "2": { - "name": "keyword.other.unit.css" - } - } - }, - { - "name": "support.constant.property-value.var.css", - "match": "--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "support.constant.property-value.size.css", - "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])" - }, - { - "name": "support.constant.property-value.css", - "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "meta.function.css", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#style-expr" - } - ] - } - ] - }, - "inline-styles": { - "patterns": [ - { - "include": "#style-property" - }, - { - "include": "#css-property-values" - }, - { - "include": "#style-expr" - } - ] - }, - "style-declaration": { - "name": "meta.style.imba", - "begin": "^(\\t*)(?:(global|local|export)\\s+)?(?:(scoped)\\s+)?(css)\\s", - "beginCaptures": { - "2": { - "name": "keyword.control.export.imba" - }, - "3": { - "name": "storage.modifier.imba" - }, - "4": { - "name": "storage.type.style.imba" - } - }, - "end": "^(?!(\\1\\t|\\s*$))", - "patterns": [ - { - "include": "#css-selector" - }, - { - "include": "#css-comment" - }, - { - "include": "#nested-css-selector" - }, - { - "include": "#inline-styles" - } - ] - }, - "nested-style-declaration": { - "name": "meta.style.imba", - "begin": "^(\\t+)(?=[\\n^]*\\&)", - "end": "^(?!(\\1\\t|\\s*$))", - "patterns": [ - { - "include": "#nested-css-selector" - }, - { - "include": "#inline-styles" - } - ] - }, - "css-size-keywords": [ - { - "name": "support.constant.size.property-value.css", - "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])" - } - ], - "css-color-keywords": { - "patterns": [ - { - "name": "support.constant.color.w3c-standard-color-name.css", - "match": "(?i)(?<![\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w-])" - }, - { - "name": "support.constant.color.w3c-extended-color-name.css", - "match": "(?xi) (?<![\\w-])\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\n(?![\\w-])" - }, - { - "name": "support.constant.color.current.css", - "match": "(?i)(?<![\\w-])currentColor(?![\\w-])" - } - ] - }, - "css-functions": { - "patterns": [ - { - "name": "meta.function.calc.css", - "begin": "(?i)(?<![\\w-])(calc)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.calc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "name": "keyword.operator.arithmetic.css", - "match": "[*/]|(?<=\\s|^)[-+](?=\\s|$)" - }, - { - "include": "#css-property-values" - } - ] - }, - { - "name": "meta.function.color.css", - "begin": "(?i)(?<![\\w-])(rgba?|hsla?)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#css-property-values" - } - ] - }, - { - "name": "meta.function.gradient.css", - "begin": "(?xi) (?<![\\w-])\n(\n (?:-webkit-|-moz-|-o-)? # Accept prefixed/historical variants\n (?:repeating-)? # \"Repeating\"-type gradient\n (?:linear|radial|conic) # Shape\n -gradient\n)\n(\\()", - "beginCaptures": { - "1": { - "name": "support.function.gradient.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "name": "keyword.operator.gradient.css", - "match": "(?i)(?<![\\w-])(from|to|at)(?![\\w-])" - }, - { - "include": "#css-property-values" - } - ] - }, - { - "name": "meta.function.gradient.invalid.deprecated.gradient.css", - "begin": "(?i)(?<![\\w-])(-webkit-gradient)(\\()", - "beginCaptures": { - "1": { - "name": "invalid.deprecated.gradient.function.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "begin": "(?i)(?<![\\w-])(from|to|color-stop)(\\()", - "beginCaptures": { - "1": { - "name": "invalid.deprecated.function.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#css-property-values" - } - ] - }, - { - "include": "#css-property-values" - } - ] - }, - { - "name": "meta.function.misc.css", - "begin": "(?xi) (?<![\\w-])\n(annotation|attr|blur|brightness|character-variant|contrast|counters?\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate\n|image-set|invert|local|minmax|opacity|ornaments|repeat|saturate|sepia\n|styleset|stylistic|swash|symbols)\n(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "name": "constant.numeric.other.density.css", - "match": "(?i)(?<=[,\\s\"]|\\*/|^)\\d+x(?=[\\s,\"')]|/\\*|$)" - }, - { - "include": "#css-property-values" - }, - { - "name": "variable.parameter.misc.css", - "match": "[^'\"),\\s]+" - } - ] - }, - { - "name": "meta.function.shape.css", - "begin": "(?i)(?<![\\w-])(circle|ellipse|inset|polygon|rect)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.shape.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "name": "keyword.operator.shape.css", - "match": "(?i)(?<=\\s|^|\\*/)(at|round)(?=\\s|/\\*|$)" - }, - { - "include": "#css-property-values" - } - ] - }, - { - "name": "meta.function.timing-function.css", - "begin": "(?i)(?<![\\w-])(cubic-bezier|steps)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.timing-function.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "name": "support.constant.step-direction.css", - "match": "(?i)(?<![\\w-])(start|end)(?=\\s*\\)|$)" - }, - { - "include": "#css-property-values" - } - ] - }, - { - "begin": "(?xi) (?<![\\w-])\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\n| matrix(?:3D)?\n| skew[XY]?\n| perspective\n)\n(\\()", - "beginCaptures": { - "1": { - "name": "support.function.transform.css" - }, - "2": { - "name": "punctuation.section.function.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#css-property-values" - } - ] - } - ] - }, - "css-numeric-values": { - "patterns": [ - { - "name": "constant.other.color.rgb-value.hex.css", - "match": "(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", - "captures": { - "1": { - "name": "punctuation.definition.constant.css" - } - } - }, - { - "name": "constant.numeric.css", - "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|vh|vmax|vmin|\n vw\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars", - "captures": { - "1": { - "name": "keyword.other.unit.percentage.css" - }, - "2": { - "name": "keyword.other.unit.${2:/downcase}.css" - } - } - } - ] - }, - "css-combinators": { - "patterns": [ - { - "name": "punctuation.separator.combinator.css", - "match": ">>>|>>|>|\\+|~" - }, - { - "name": "keyword.other.parent-selector.css", - "match": "&" - } - ] - }, - "css-pseudo-classes": { - "name": "entity.other.attribute-name.pseudo-class.css", - "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|defined|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within\n | fullscreen|host|hover|in-range|indeterminate|invalid|left|link\n | optional|out-of-range|placeholder-shown|read-only|read-write\n | required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])", - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "name": "invalid.illegal.colon.css" - } - } - }, - "css-pseudo-elements": { - "name": "entity.other.attribute-name.pseudo-element.css", - "match": "(?xi)\n(?:\n (::?) # Elements using both : and :: notation\n (?: after\n | before\n | first-letter\n | first-line\n | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\n |ms|o|rim|ro|tc|wap|webkit|xv)\n | (?:mso|prince))\n -[a-z-]+\n )\n |\n (::) # Double-colon only\n (?: backdrop\n | content\n | grammar-error\n | marker\n | placeholder\n | selection\n | shadow\n | spelling-error\n )\n)\n(?![\\w-]|\\s*[;}])", - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - } - } - }, - "css-commas": { - "name": "punctuation.separator.list.comma.css", - "match": "," - }, - "css-comment": { - "patterns": [ - { - "name": "comment.line.imba", - "match": "\\#(\\s.+)?(\\n|$)" - }, - { - "name": "comment.line.imba", - "match": "(^\\t+)(\\#(\\s.+)?(\\n|$))" - } - ] - }, - "css-escapes": { - "patterns": [ - { - "name": "constant.character.escape.codepoint.css", - "match": "\\\\[0-9a-fA-F]{1,6}" - }, - { - "name": "constant.character.escape.newline.css", - "begin": "\\\\$\\s*", - "end": "^(?<!\\G)" - }, - { - "name": "constant.character.escape.css", - "match": "\\\\." - } - ] - }, - "css-selector": { - "name": "meta.selector.css", - "begin": "(?<=css\\s)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", - "end": "(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))|\\s*$|(?=\\s+\\#\\s))", - "endCaptures": { - "0": { - "name": "punctuation.separator.sel-properties.css" - } - }, - "patterns": [ - { - "include": "#css-selector-innards" - } - ] - }, - "nested-css-selector": { - "name": "meta.selector.css", - "begin": "(^\\t+)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", - "end": "(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))|\\s*$|(?=\\s+\\#\\s))", - "endCaptures": { - "0": { - "name": "punctuation.separator.sel-properties.css" - } - }, - "patterns": [ - { - "include": "#css-selector-innards" - } - ] - }, - "inline-css-selector": { - "name": "meta.selector.css", - "begin": "(^\\t+)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", - "end": "(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:)|\\)|\\])|\\s*$)", - "endCaptures": { - "0": { - "name": "punctuation.separator.sel-properties.css" - } - }, - "patterns": [ - { - "include": "#css-selector-innards" - } - ] - }, - "css-selector-innards": { - "patterns": [ - { - "include": "#css-commas" - }, - { - "include": "#css-escapes" - }, - { - "include": "#css-combinators" - }, - { - "name": "entity.name.tag.wildcard.css", - "match": "\\*" - }, - { - "name": "meta.attribute-selector.css", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.entity.begin.bracket.square.css" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.entity.end.bracket.square.css" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "match": "(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)", - "captures": { - "1": { - "name": "storage.modifier.ignore-case.css" - } - } - }, - { - "match": "(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)", - "captures": { - "1": { - "name": "string.unquoted.attribute-value.css" - } - } - }, - { - "include": "#css-escapes" - }, - { - "name": "keyword.operator.pattern.css", - "match": "[~|^$*]?=" - }, - { - "name": "punctuation.separator.css", - "match": "\\|" - }, - { - "match": "(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\\\x00-\\\\x7F]\n )\n)", - "captures": { - "1": { - "name": "entity.other.namespace-prefix.css" - } - } - }, - { - "match": "(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)", - "captures": { - "1": { - "name": "entity.other.attribute-name.css" - } - } - } - ] - }, - { - "include": "#css-pseudo-classes" - }, - { - "include": "#css-pseudo-elements" - } - ] - }, - "css-property-values": { - "patterns": [ - { - "include": "#css-commas" - }, - { - "include": "#css-escapes" - }, - { - "include": "#css-functions" - }, - { - "include": "#css-numeric-values" - }, - { - "include": "#css-size-keywords" - }, - { - "include": "#css-color-keywords" - }, - { - "include": "#string" - }, - { - "name": "keyword.other.important.css", - "match": "!\\s*important(?![\\w-])" - } - ] - }, - "tag-literal": { - "patterns": [ - { - "name": "meta.tag.imba", - "begin": "(<)(?=[\\w\\{\\[\\.\\#\\$\\@])", - "beginCaptures": { - "1": { - "name": "punctuation.section.tag.open.imba" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.section.tag.close.imba" - } - }, - "patterns": [ - { - "include": "#tag-content" - } - ], - "contentName": "meta.tag.attributes.imba" - } - ] - }, - "tag-content": { - "patterns": [ - { - "include": "#tag-name" - }, - { - "include": "#tag-expr-name" - }, - { - "include": "#tag-interpolated-content" - }, - { - "include": "#tag-interpolated-parens" - }, - { - "include": "#tag-interpolated-brackets" - }, - { - "include": "#tag-event-handler" - }, - { - "include": "#tag-classname" - }, - { - "include": "#tag-ref" - }, - { - "include": "#tag-attr-value" - }, - { - "include": "#tag-attr-name" - }, - { - "include": "#comment" - } - ] - }, - "tag-name": { - "patterns": [ - { - "name": "entity.name.tag.special.imba", - "match": "(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])" - } - ] - }, - "tag-expr-name": { - "begin": "(?<=<)(?=[\\w\\{])", - "contentName": "entity.name.tag.imba", - "end": "(?=[\\.\\[\\>\\s\\(])", - "patterns": [ - { - "include": "#tag-interpolated-content" - } - ] - }, - "tag-interpolated-content": { - "name": "meta.tag.expression.imba", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.tag.imba" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.tag.imba" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.imba" - }, - "tag-interpolated-parens": { - "name": "meta.tag.expression.imba", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.tag.imba" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.tag.imba" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.imba" - }, - "tag-interpolated-brackets": { - "name": "meta.tag.expression.imba", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.tag.imba" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.tag.imba" - } - }, - "patterns": [ - { - "include": "#inline-css-selector" - }, - { - "include": "#inline-styles" - } - ], - "contentName": "meta.embedded.line.imba" - }, - "tag-classname": { - "begin": "\\.", - "patterns": [ - { - "include": "#tag-interpolated-content" - } - ], - "end": "(?=[\\.\\[\\>\\s\\(\\=])", - "contentName": "entity.other.attribute-name.class.css" - }, - "tag-ref": { - "match": "(\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)", - "name": "entity.other.attribute-name.reference.css" - }, - "tag-event-handler": { - "begin": "(\\@[\\w$_]+(?:\\-[\\w$_]+)*)", - "beginCaptures": { - "0": { - "name": "entity.other.event-name.imba" - } - }, - "patterns": [ - { - "include": "#tag-interpolated-content" - }, - { - "include": "#tag-interpolated-parens" - }, - { - "name": "entity.other.event-modifier.imba", - "begin": "\\.", - "beginCaptures": { - "0": { - "name": "punctuation.section.tag" - } - }, - "patterns": [ - { - "include": "#tag-interpolated-parens" - }, - { - "include": "#tag-interpolated-content" - } - ], - "end": "(?=[\\.\\[\\>\\s\\=]|$)" - } - ], - "end": "(?=[\\[\\>\\s\\=])", - "contentName": "entity.other.tag.event" - }, - "tag-attr-name": { - "begin": "([\\w$_]+(?:\\-[\\w$_]+)*)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.imba" - } - }, - "end": "(?=[\\s\\.\\[\\>\\=])", - "contentName": "entity.other.attribute-name.imba" - }, - "tag-attr-value": { - "begin": "(\\=)", - "beginCaptures": { - "0": { - "name": "keyword.operator.tag.assignment" - } - }, - "end": "(?=>|\\s)", - "contentName": "meta.tag.attribute-value.imba", - "patterns": [ - { - "include": "#expr" - } - ] - }, - "expression": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.imba" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.imba" - } - }, - "patterns": [ - { - "include": "#expr" - } - ] - }, - { - "include": "#tag-literal" - }, - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "expressionWithoutIdentifiers": { - "patterns": [ - { - "include": "#string" - }, - { - "include": "#regex" - }, - { - "include": "#comment" - }, - { - "include": "#function-expression" - }, - { - "include": "#class-expression" - }, - { - "include": "#ternary-expression" - }, - { - "include": "#new-expr" - }, - { - "include": "#instanceof-expr" - }, - { - "include": "#object-literal" - }, - { - "include": "#expression-operators" - }, - { - "include": "#literal" - }, - { - "include": "#support-objects" - } - ] - }, - "expressionPunctuations": { - "patterns": [ - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "decorator": { - "name": "meta.decorator.imba", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@(?!\\@)", - "beginCaptures": { - "0": { - "name": "punctuation.decorator.imba" - } - }, - "end": "(?=\\s)", - "patterns": [ - { - "include": "#expr" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.imba", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.imba" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.imba" - } - }, - "patterns": [ - { - "include": "#expr" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-literal": { - "name": "meta.type.annotation.imba", - "begin": "(\\\\)", - "beginCaptures": { - "1": { - "name": "meta.type.annotation.open.imba" - } - }, - "end": "(?=[\\s\\]\\)\\,\\.\\=\\}]|$)", - "patterns": [ - { - "include": "#type-brackets" - } - ] - }, - "type-brackets": { - "patterns": [ - { - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#type-brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#type-brackets" - } - ] - }, - { - "begin": "\\<", - "end": "\\>", - "patterns": [ - { - "include": "#type-brackets" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#type-brackets" - } - ] - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.imba", - "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.imba" - } - } - }, - { - "name": "constant.numeric.binary.imba", - "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.imba" - } - } - }, - { - "name": "constant.numeric.octal.imba", - "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.imba" - } - } - }, - { - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b) # 1\n)(?!\\$)", - "captures": { - "0": { - "name": "constant.numeric.decimal.imba" - }, - "1": { - "name": "meta.delimiter.decimal.period.imba" - }, - "2": { - "name": "storage.type.numeric.bigint.imba" - }, - "3": { - "name": "meta.delimiter.decimal.period.imba" - }, - "4": { - "name": "storage.type.numeric.bigint.imba" - }, - "5": { - "name": "meta.delimiter.decimal.period.imba" - }, - "6": { - "name": "storage.type.numeric.bigint.imba" - }, - "7": { - "name": "storage.type.numeric.bigint.imba" - }, - "8": { - "name": "meta.delimiter.decimal.period.imba" - }, - "9": { - "name": "storage.type.numeric.bigint.imba" - }, - "10": { - "name": "meta.delimiter.decimal.period.imba" - }, - "11": { - "name": "storage.type.numeric.bigint.imba" - }, - "12": { - "name": "meta.delimiter.decimal.period.imba" - }, - "13": { - "name": "storage.type.numeric.bigint.imba" - }, - "14": { - "name": "storage.type.numeric.bigint.imba" - } - } - } - ] - }, - "number-with-unit-literal": { - "patterns": [ - { - "match": "([0-9]+)([a-z]+|\\%)", - "captures": { - "1": { - "name": "constant.numeric.imba" - }, - "2": { - "name": "keyword.other.unit.imba" - } - } - }, - { - "match": "([0-9]*\\.[0-9]+(?:[eE][\\-+]?[0-9]+)?)([a-z]+|\\%)", - "captures": { - "1": { - "name": "constant.numeric.decimal.imba" - }, - "2": { - "name": "keyword.other.unit.imba" - } - } - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(true|yes)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.boolean.false.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(false|no)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "null-literal": { - "name": "constant.language.null.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "this-literal": { - "name": "variable.language.this.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|self)\\b(?!\\$)" - }, - "global-literal": { - "name": "variable.language.global.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(global)\\b(?!\\$)" - }, - "super-literal": { - "name": "variable.language.super.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" - }, - "undefined-literal": { - "name": "constant.language.undefined.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "numericConstant-literal": { - "patterns": [ - { - "name": "constant.language.nan.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.infinity.imba", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "plain-identifiers": { - "patterns": [ - { - "name": "variable.other.constant.imba", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.class.imba", - "match": "[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?" - }, - { - "name": "variable.special.imba", - "match": "\\$\\d+" - }, - { - "name": "variable.other.internal.imba", - "match": "\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "variable.other.symbol.imba", - "match": "\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "variable.other.readwrite.imba", - "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "variable.other.instance.imba", - "match": "\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "variable.other.private.imba", - "match": "\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - }, - { - "name": "string.symbol.imba", - "match": "\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" - } - ] - }, - "plain-accessors": { - "patterns": [ - { - "match": "(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)", - "captures": { - "1": { - "name": "punctuation.accessor.imba" - }, - "2": { - "name": "variable.other.property.imba" - } - } - } - ] - }, - "identifiers": { - "patterns": [ - { - "match": "(?x)(?:(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*)?([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)(?=\\s*={{functionOrArrowLookup}})", - "captures": { - "1": { - "name": "punctuation.accessor.imba" - }, - "2": { - "name": "punctuation.accessor.optional.imba" - }, - "3": { - "name": "entity.name.function.property.imba" - } - } - }, - { - "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.imba" - }, - "2": { - "name": "punctuation.accessor.optional.imba" - }, - "3": { - "name": "variable.other.constant.property.imba" - } - } - }, - { - "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))([[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?)", - "captures": { - "1": { - "name": "punctuation.accessor.imba" - }, - "2": { - "name": "punctuation.accessor.optional.imba" - }, - "3": { - "name": "variable.other.class.property.imba" - } - } - }, - { - "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))(\\#?[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)", - "captures": { - "1": { - "name": "punctuation.accessor.imba" - }, - "2": { - "name": "punctuation.accessor.optional.imba" - }, - "3": { - "name": "variable.other.property.imba" - } - } - }, - { - "name": "keyword.other", - "match": "(for own|for|if|unless|when)\\b" - }, - { - "name": "support.function.require", - "match": "require" - }, - { - "include": "#plain-identifiers" - }, - { - "include": "#type-literal" - } - ] - }, - "type-annotation": { - "patterns": [ - { - "include": "#type-literal" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.imba", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.imba", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))", - "captures": { - "1": { - "name": "punctuation.accessor.imba" - }, - "2": { - "name": "punctuation.accessor.optional.imba" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single-multi" - }, - { - "include": "#qstring-double-multi" - }, - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.imba", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.imba" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.imba" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.imba", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.imba" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.imba" - }, - "2": { - "name": "invalid.illegal.newline.imba" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single-multi": { - "name": "string.quoted.single.imba", - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.imba" - } - }, - "end": "'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.imba" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.imba", - "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]?|.|$)" - }, - "template": { - "patterns": [ - { - "name": "string.template.imba", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))", - "end": "(?=({{typeArguments}}\\s*)?`)", - "patterns": [ - { - "name": "entity.name.function.tagged-template.imba", - "match": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)" - } - ] - } - ] - }, - { - "name": "string.template.imba", - "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.imba" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - }, - { - "name": "string.template.imba", - "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.imba" - }, - "2": { - "name": "punctuation.definition.string.template.begin.imba" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.imba" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.imba", - "begin": "(?<!\\\\)\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.imba" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.imba" - } - }, - "patterns": [ - { - "include": "#expr" - } - ], - "contentName": "meta.embedded.line.imba" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.imba", - "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.imba" - } - }, - "end": "(/)([gimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.imba" - }, - "2": { - "name": "keyword.other.imba" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.imba", - "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.imba" - } - }, - "end": "(/)([gimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.imba" - }, - "2": { - "name": "keyword.other.imba" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - } - ] - }, - "regexp": { - "patterns": [ - { - "name": "keyword.control.anchor.regexp", - "match": "\\\\[bB]|\\^|\\$" - }, - { - "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "meta.group.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.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" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.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])|(\\\\.))", - "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" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.imba", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.imba" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.imba" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.imba", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.imba" - }, - "2": { - "name": "storage.type.internaldeclaration.imba" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.imba" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.imba" - } - } - }, - { - "name": "comment.block.imba", - "begin": "(###)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.imba" - } - }, - "end": "###(?:[ \\t]*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.imba" - } - } - }, - { - "begin": "(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.imba" - }, - "2": { - "name": "comment.line.double-slash.imba" - }, - "3": { - "name": "punctuation.definition.comment.imba" - }, - "4": { - "name": "storage.type.internaldeclaration.imba" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.imba" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.imba" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.imba" - }, - "2": { - "name": "comment.line.double-slash.imba" - }, - "3": { - "name": "punctuation.definition.comment.imba" - }, - "4": { - "name": "storage.type.internaldeclaration.imba" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.imba" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.imba" - }, - "directives": { - "name": "comment.line.triple-slash.directive.imba", - "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.imba" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.imba", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.imba" - }, - "2": { - "name": "entity.name.tag.directive.imba" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.imba" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.imba", - "match": "path|types|no-default-lib|lib|name" - }, - { - "name": "keyword.operator.assignment.imba", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", - "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" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "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" - } - }, - "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" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.imba" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "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" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "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" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.imba" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "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" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.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" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "name": "invalid.illegal.type.jsdoc", - "match": "\\G{(?:[^}*]|\\*[^/}])+$" - }, - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - } - }, - "end": "((}))\\s*|(?=\\*/)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/ini.tmLanguage.json b/lib/grammars/ini.tmLanguage.json deleted file mode 100644 index 3a38fb4..0000000 --- a/lib/grammars/ini.tmLanguage.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/ini.tmbundle/blob/master/Syntaxes/Ini.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/ini.tmbundle/commit/2af0cbb0704940f967152616f2f1ff0aae6287a6", - "name": "ini", - "scopeName": "source.ini", - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ini" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ini" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.ini" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=;)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ini" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": ";", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ini" - } - }, - "end": "\\n", - "name": "comment.line.semicolon.ini" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.definition.ini" - }, - "2": { - "name": "punctuation.separator.key-value.ini" - } - }, - "match": "\\b([a-zA-Z0-9_.-]+)\\b\\s*(=)" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.ini" - }, - "3": { - "name": "punctuation.definition.entity.ini" - } - }, - "match": "^(\\[)(.*?)(\\])", - "name": "entity.name.section.group-title.ini" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ini" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ini" - } - }, - "name": "string.quoted.single.ini", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.ini" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ini" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ini" - } - }, - "name": "string.quoted.double.ini" - } - ] -} diff --git a/lib/grammars/java.tmLanguage.json b/lib/grammars/java.tmLanguage.json deleted file mode 100644 index e26797d..0000000 --- a/lib/grammars/java.tmLanguage.json +++ /dev/null @@ -1,1855 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-java/blob/master/grammars/java.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-java/commit/29f977dc42a7e2568b39bb6fb34c4ef108eb59b3", - "name": "java", - "scopeName": "source.java", - "patterns": [ - { - "begin": "\\b(package)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.package.java" - } - }, - "end": "\\s*(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.java" - } - }, - "name": "meta.package.java", - "contentName": "storage.modifier.package.java", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "[A-Z]+", - "name": "invalid.deprecated.package_name_not_lowercase.java" - }, - { - "match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.java" - } - ] - }, - { - "begin": "\\b(import)\\b\\s*\\b(static)?\\b\\s", - "beginCaptures": { - "1": { - "name": "keyword.other.import.java" - }, - "2": { - "name": "storage.modifier.java" - } - }, - "end": "\\s*(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.java" - } - }, - "name": "meta.import.java", - "contentName": "storage.modifier.import.java", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "(?<!\\.)\\s*\\*", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.java" - }, - { - "match": "\\*", - "name": "variable.language.wildcard.java" - } - ] - }, - { - "include": "#comments-javadoc" - }, - { - "include": "#code" - }, - { - "include": "#module" - } - ], - "repository": { - "all-types": { - "patterns": [ - { - "include": "#primitive-arrays" - }, - { - "include": "#primitive-types" - }, - { - "include": "#object-types" - } - ] - }, - "annotations": { - "patterns": [ - { - "begin": "((@)\\s*([^\\s(]+))(\\()", - "beginCaptures": { - "2": { - "name": "punctuation.definition.annotation.java" - }, - "3": { - "name": "storage.type.annotation.java" - }, - "4": { - "name": "punctuation.definition.annotation-arguments.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.annotation-arguments.end.bracket.round.java" - } - }, - "name": "meta.declaration.annotation.java", - "patterns": [ - { - "captures": { - "1": { - "name": "constant.other.key.java" - }, - "2": { - "name": "keyword.operator.assignment.java" - } - }, - "match": "(\\w*)\\s*(=)" - }, - { - "include": "#code" - } - ] - }, - { - "match": "(@)(interface)\\s+(\\w*)|((@)\\s*(\\w+))", - "name": "meta.declaration.annotation.java", - "captures": { - "1": { - "name": "punctuation.definition.annotation.java" - }, - "2": { - "name": "storage.modifier.java" - }, - "3": { - "name": "storage.type.annotation.java" - }, - "5": { - "name": "punctuation.definition.annotation.java" - }, - "6": { - "name": "storage.type.annotation.java" - } - } - } - ] - }, - "anonymous-block-and-instance-initializer": { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.java" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - }, - "anonymous-classes-and-new": { - "begin": "\\bnew\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.new.java" - } - }, - "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#function-call" - }, - { - "include": "#all-types" - }, - { - "begin": "(?<=\\))", - "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.inner-class.begin.bracket.curly.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.inner-class.end.bracket.curly.java" - } - }, - "name": "meta.inner-class.java", - "patterns": [ - { - "include": "#class-body" - } - ] - } - ] - }, - { - "begin": "(?<=\\])", - "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.array-initializer.begin.bracket.curly.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.array-initializer.end.bracket.curly.java" - } - }, - "name": "meta.array-initializer.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - { - "include": "#parens" - } - ] - }, - "assertions": { - "patterns": [ - { - "begin": "\\b(assert)\\s", - "beginCaptures": { - "1": { - "name": "keyword.control.assert.java" - } - }, - "end": "$", - "name": "meta.declaration.assertion.java", - "patterns": [ - { - "match": ":", - "name": "keyword.operator.assert.expression-separator.java" - }, - { - "include": "#code" - } - ] - } - ] - }, - "class": { - "begin": "(?=\\w?[\\w\\s-]*\\b(?:class|(?<!@)interface|enum)\\s+[\\w$]+)", - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.class.end.bracket.curly.java" - } - }, - "name": "meta.class.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#generics" - }, - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "storage.modifier.java" - }, - "2": { - "name": "entity.name.type.class.java" - } - }, - "match": "(class|(?<!@)interface|enum)\\s+([\\w$]+)", - "name": "meta.class.identifier.java" - }, - { - "begin": "extends", - "beginCaptures": { - "0": { - "name": "storage.modifier.extends.java" - } - }, - "end": "(?={|implements|permits)", - "name": "meta.definition.class.inherited.classes.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "(implements)\\s", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.java" - } - }, - "end": "(?=\\s*extends|permits|\\{)", - "name": "meta.definition.class.implemented.interfaces.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "(permits)\\s", - "beginCaptures": { - "1": { - "name": "storage.modifier.permits.java" - } - }, - "end": "(?=\\s*extends|implements|\\{)", - "name": "meta.definition.class.permits.classes.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.class.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.class.body.java", - "patterns": [ - { - "include": "#class-body" - } - ] - } - ] - }, - "class-body": { - "patterns": [ - { - "include": "#comments-javadoc" - }, - { - "include": "#comments" - }, - { - "include": "#enums" - }, - { - "include": "#class" - }, - { - "include": "#generics" - }, - { - "include": "#static-initializer" - }, - { - "include": "#class-fields-and-methods" - }, - { - "include": "#annotations" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#member-variables" - }, - { - "include": "#code" - } - ] - }, - "class-fields-and-methods": { - "patterns": [ - { - "begin": "(?=\\=)", - "end": "(?=;)", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "include": "#methods" - } - ] - }, - "code": { - "patterns": [ - { - "include": "#annotations" - }, - { - "include": "#comments" - }, - { - "include": "#enums" - }, - { - "include": "#class" - }, - { - "include": "#record" - }, - { - "include": "#anonymous-block-and-instance-initializer" - }, - { - "include": "#try-catch-finally" - }, - { - "include": "#assertions" - }, - { - "include": "#parens" - }, - { - "include": "#constants-and-special-vars" - }, - { - "include": "#numbers" - }, - { - "include": "#anonymous-classes-and-new" - }, - { - "include": "#lambda-expression" - }, - { - "include": "#keywords" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#method-call" - }, - { - "include": "#function-call" - }, - { - "include": "#variables" - }, - { - "include": "#variables-local" - }, - { - "include": "#objects" - }, - { - "include": "#properties" - }, - { - "include": "#strings" - }, - { - "include": "#all-types" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.period.java" - }, - { - "match": ";", - "name": "punctuation.terminator.java" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.definition.comment.java" - } - }, - "match": "/\\*\\*/", - "name": "comment.block.empty.java" - }, - { - "include": "#comments-inline" - } - ] - }, - "comments-inline": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.java" - } - }, - "end": "\\*/", - "name": "comment.block.java" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.java" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.java" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.java" - } - ] - } - ] - }, - "comments-javadoc": { - "patterns": [ - { - "begin": "^\\s*(/\\*\\*)(?!/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.java" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.java" - } - }, - "name": "comment.block.javadoc.java", - "patterns": [ - { - "match": "@(author|deprecated|return|see|serial|since|version)\\b", - "name": "keyword.other.documentation.javadoc.java" - }, - { - "match": "(@param)\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.java" - }, - "2": { - "name": "variable.parameter.java" - } - } - }, - { - "match": "(@(?:exception|throws))\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.java" - }, - "2": { - "name": "entity.name.type.class.java" - } - } - }, - { - "match": "{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*?}", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.java" - }, - "2": { - "name": "entity.name.type.class.java" - }, - "3": { - "name": "variable.parameter.java" - } - } - } - ] - } - ] - }, - "constants-and-special-vars": { - "patterns": [ - { - "match": "\\b(true|false|null)\\b", - "name": "constant.language.java" - }, - { - "match": "\\bthis\\b", - "name": "variable.language.this.java" - }, - { - "match": "\\bsuper\\b", - "name": "variable.language.java" - } - ] - }, - "enums": { - "begin": "^\\s*([\\w\\s]*)(enum)\\s+(\\w+)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#storage-modifiers" - } - ] - }, - "2": { - "name": "storage.modifier.java" - }, - "3": { - "name": "entity.name.type.enum.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.enum.end.bracket.curly.java" - } - }, - "name": "meta.enum.java", - "patterns": [ - { - "begin": "\\b(extends)\\b", - "beginCaptures": { - "1": { - "name": "storage.modifier.extends.java" - } - }, - "end": "(?={|\\bimplements\\b)", - "name": "meta.definition.class.inherited.classes.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "\\b(implements)\\b", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.java" - } - }, - "end": "(?={|\\bextends\\b)", - "name": "meta.definition.class.implemented.interfaces.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.enum.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "patterns": [ - { - "begin": "(?<={)", - "end": "(?=;|})", - "patterns": [ - { - "include": "#comments-javadoc" - }, - { - "include": "#comments" - }, - { - "begin": "\\b(\\w+)\\b", - "beginCaptures": { - "1": { - "name": "constant.other.enum.java" - } - }, - "end": "(,)|(?=;|})", - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.java" - } - }, - "patterns": [ - { - "include": "#comments-javadoc" - }, - { - "include": "#comments" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.bracket.round.java" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.curly.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.bracket.curly.java" - } - }, - "patterns": [ - { - "include": "#class-body" - } - ] - } - ] - } - ] - }, - { - "include": "#class-body" - } - ] - } - ] - }, - "function-call": { - "begin": "([A-Za-z_$][\\w$]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.function-call.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - "generics": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.angle.java" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.bracket.angle.java" - } - }, - "patterns": [ - { - "match": "\\b(extends|super)\\b", - "name": "storage.modifier.$1.java" - }, - { - "match": "(?<!\\.)([a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\s*<)", - "captures": { - "1": { - "name": "storage.type.java" - } - } - }, - { - "include": "#primitive-arrays" - }, - { - "match": "[a-zA-Z$_][a-zA-Z0-9$_]*", - "name": "storage.type.generic.java" - }, - { - "match": "\\?", - "name": "storage.type.generic.wildcard.java" - }, - { - "match": "&", - "name": "punctuation.separator.types.java" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.period.java" - }, - { - "include": "#parens" - }, - { - "include": "#generics" - }, - { - "include": "#comments" - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "\\bthrow\\b", - "name": "keyword.control.throw.java" - }, - { - "match": "\\?|:", - "name": "keyword.control.ternary.java" - }, - { - "match": "\\b(return|yield|break|case|continue|default|do|while|for|switch|if|else)\\b", - "name": "keyword.control.java" - }, - { - "match": "\\b(instanceof)\\b", - "name": "keyword.operator.instanceof.java" - }, - { - "match": "(<<|>>>?|~|\\^)", - "name": "keyword.operator.bitwise.java" - }, - { - "match": "((&|\\^|\\||<<|>>>?)=)", - "name": "keyword.operator.assignment.bitwise.java" - }, - { - "match": "(===?|!=|<=|>=|<>|<|>)", - "name": "keyword.operator.comparison.java" - }, - { - "match": "([+*/%-]=)", - "name": "keyword.operator.assignment.arithmetic.java" - }, - { - "match": "(=)", - "name": "keyword.operator.assignment.java" - }, - { - "match": "(\\-\\-|\\+\\+)", - "name": "keyword.operator.increment-decrement.java" - }, - { - "match": "(\\-|\\+|\\*|\\/|%)", - "name": "keyword.operator.arithmetic.java" - }, - { - "match": "(!|&&|\\|\\|)", - "name": "keyword.operator.logical.java" - }, - { - "match": "(\\||&)", - "name": "keyword.operator.bitwise.java" - }, - { - "match": "\\b(const|goto)\\b", - "name": "keyword.reserved.java" - } - ] - }, - "lambda-expression": { - "patterns": [ - { - "match": "->", - "name": "storage.type.function.arrow.java" - } - ] - }, - "member-variables": { - "begin": "(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)", - "end": "(?=\\=|;)", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#variables" - }, - { - "include": "#primitive-arrays" - }, - { - "include": "#object-types" - } - ] - }, - "method-call": { - "begin": "(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.separator.period.java" - }, - "2": { - "name": "entity.name.function.java" - }, - "3": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.method-call.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - "methods": { - "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()", - "end": "(})|(?=;)", - "endCaptures": { - "1": { - "name": "punctuation.section.method.end.bracket.curly.java" - } - }, - "name": "meta.method.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "begin": "(\\w+)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.method.identifier.java", - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#parens" - }, - { - "include": "#comments" - } - ] - }, - { - "include": "#generics" - }, - { - "begin": "(?=\\w.*\\s+\\w+\\s*\\()", - "end": "(?=\\s+\\w+\\s*\\()", - "name": "meta.method.return-type.java", - "patterns": [ - { - "include": "#all-types" - }, - { - "include": "#parens" - }, - { - "include": "#comments" - } - ] - }, - { - "include": "#throws" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.method.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.method.body.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "include": "#comments" - } - ] - }, - "module": { - "begin": "((open)\\s)?(module)\\s+(\\w+)", - "end": "}", - "beginCaptures": { - "1": { - "name": "storage.modifier.java" - }, - "3": { - "name": "storage.modifier.java" - }, - "4": { - "name": "entity.name.type.module.java" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.module.end.bracket.curly.java" - } - }, - "name": "meta.module.java", - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.module.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.module.body.java", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#comments-javadoc" - }, - { - "match": "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b", - "name": "keyword.module.java" - } - ] - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "(?x)\n\\b(?<!\\$)\n0(x|X)\n(\n (?<!\\.)[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?[Ll]?(?!\\.)\n |\n (\n [0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\\.?\n |\n ([0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?)?\\.[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\n )\n [Pp][+-]?[0-9]([0-9_]*[0-9])?[FfDd]?\n)\n\\b(?!\\$)", - "name": "constant.numeric.hex.java" - }, - { - "match": "\\b(?<!\\$)0(b|B)[01]([01_]*[01])?[Ll]?\\b(?!\\$)", - "name": "constant.numeric.binary.java" - }, - { - "match": "\\b(?<!\\$)0[0-7]([0-7_]*[0-7])?[Ll]?\\b(?!\\$)", - "name": "constant.numeric.octal.java" - }, - { - "match": "(?x)\n(?<!\\$)\n(\n \\b[0-9]([0-9_]*[0-9])?\\.\\B(?!\\.)\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([0-9]([0-9_]*[0-9])?)([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n (?<!\\.)\\B\\.[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b(0|[1-9]([0-9_]*[0-9])?)(?!\\.)[Ll]?\\b\n)\n(?!\\$)", - "name": "constant.numeric.decimal.java" - } - ] - }, - "object-types": { - "patterns": [ - { - "include": "#generics" - }, - { - "begin": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*)([A-Z_]\\w*)\\s*(?=\\[)", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "[A-Za-z_]\\w*", - "name": "storage.type.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.period.java" - } - ] - }, - "2": { - "name": "storage.type.object.array.java" - } - }, - "end": "(?!\\s*\\[)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parens" - } - ] - }, - { - "match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\s*(?=<)", - "captures": { - "1": { - "patterns": [ - { - "match": "[A-Za-z_]\\w*", - "name": "storage.type.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.period.java" - } - ] - } - } - }, - { - "match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\b((?=\\s*[A-Za-z$_\\n])|(?=\\s*\\.\\.\\.))", - "captures": { - "1": { - "patterns": [ - { - "match": "[A-Za-z_]\\w*", - "name": "storage.type.java" - }, - { - "match": "\\.", - "name": "punctuation.separator.period.java" - } - ] - } - } - } - ] - }, - "object-types-inherited": { - "patterns": [ - { - "include": "#generics" - }, - { - "match": "\\b(?:[A-Z]\\w*\\s*(\\.)\\s*)*[A-Z]\\w*\\b", - "name": "entity.other.inherited-class.java", - "captures": { - "1": { - "name": "punctuation.separator.period.java" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.java" - } - ] - }, - "objects": { - "match": "(?<![\\w$])[a-zA-Z_$][\\w$]*(?=\\s*\\.\\s*[\\w$]+)", - "name": "variable.other.object.java" - }, - "parameters": { - "patterns": [ - { - "match": "\\bfinal\\b", - "name": "storage.modifier.java" - }, - { - "include": "#annotations" - }, - { - "include": "#all-types" - }, - { - "include": "#strings" - }, - { - "match": "\\w+", - "name": "variable.parameter.java" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.java" - }, - { - "match": "\\.\\.\\.", - "name": "punctuation.definition.parameters.varargs.java" - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.bracket.round.java" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.square.java" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.bracket.square.java" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.bracket.curly.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.bracket.curly.java" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "primitive-arrays": { - "patterns": [ - { - "begin": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b\\s*(?=\\[)", - "beginCaptures": { - "1": { - "name": "storage.type.primitive.array.java" - } - }, - "end": "(?!\\s*\\[)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parens" - } - ] - } - ] - }, - "primitive-types": { - "match": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b", - "name": "storage.type.primitive.java" - }, - "properties": { - "patterns": [ - { - "match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)(?=\\s*\\.\\s*[a-zA-Z_$][\\w$]*)", - "captures": { - "1": { - "name": "punctuation.separator.period.java" - }, - "2": { - "name": "variable.other.object.property.java" - } - } - }, - { - "match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)", - "captures": { - "1": { - "name": "punctuation.separator.period.java" - }, - "2": { - "name": "variable.other.object.property.java" - } - } - }, - { - "match": "(\\.)\\s*([0-9][\\w$]*)", - "captures": { - "1": { - "name": "punctuation.separator.period.java" - }, - "2": { - "name": "invalid.illegal.identifier.java" - } - } - } - ] - }, - "record": { - "begin": "(?=\\w?[\\w\\s]*\\b(?:record)\\s+[\\w$]+)", - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.class.end.bracket.curly.java" - } - }, - "name": "meta.record.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#generics" - }, - { - "include": "#comments" - }, - { - "begin": "(record)\\s+([\\w$]+)(<[\\w$]+>)?(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.java" - }, - "2": { - "name": "entity.name.type.record.java" - }, - "3": { - "patterns": [ - { - "include": "#generics" - } - ] - }, - "4": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.record.identifier.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "(implements)\\s", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.java" - } - }, - "end": "(?=\\s*\\{)", - "name": "meta.definition.class.implemented.interfaces.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "include": "#record-body" - } - ] - }, - "record-body": { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.class.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "name": "meta.record.body.java", - "patterns": [ - { - "include": "#record-constructor" - }, - { - "include": "#class-body" - } - ] - }, - "record-constructor": { - "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))", - "end": "(})|(?=;)", - "endCaptures": { - "1": { - "name": "punctuation.section.method.end.bracket.curly.java" - } - }, - "name": "meta.method.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "begin": "(\\w+)", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - } - }, - "end": "(?=\\s*{)", - "name": "meta.method.identifier.java", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.method.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.method.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "static-initializer": { - "patterns": [ - { - "include": "#anonymous-block-and-instance-initializer" - }, - { - "match": "static", - "name": "storage.modifier.java" - } - ] - }, - "storage-modifiers": { - "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b", - "name": "storage.modifier.java" - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.java" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.java" - } - }, - "name": "string.quoted.double.java", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.java" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.java" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.java" - } - }, - "name": "string.quoted.single.java", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.java" - } - ] - } - ] - }, - "throws": { - "begin": "throws", - "beginCaptures": { - "0": { - "name": "storage.modifier.java" - } - }, - "end": "(?={|;)", - "name": "meta.throwables.java", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.java" - }, - { - "match": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*", - "name": "storage.type.java" - } - ] - }, - "try-catch-finally": { - "patterns": [ - { - "begin": "\\btry\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.try.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.try.end.bracket.curly.java" - } - }, - "name": "meta.try.java", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.try.resources.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.try.resources.end.bracket.round.java" - } - }, - "name": "meta.try.resources.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.try.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.try.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - { - "begin": "\\b(catch)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.catch.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.catch.end.bracket.curly.java" - } - }, - "name": "meta.catch.java", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "contentName": "meta.catch.parameters.java", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage-modifiers" - }, - { - "begin": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*", - "beginCaptures": { - "0": { - "name": "storage.type.java" - } - }, - "end": "(\\|)|(?=\\))", - "endCaptures": { - "1": { - "name": "punctuation.catch.separator.java" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\w+", - "captures": { - "0": { - "name": "variable.parameter.java" - } - } - } - ] - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.catch.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.catch.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - { - "begin": "\\bfinally\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.finally.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.finally.end.bracket.curly.java" - } - }, - "name": "meta.finally.java", - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.finally.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.finally.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - } - ] - }, - "variables": { - "begin": "(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap<Integer, String>`, or `List<java.lang.String>`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)", - "end": "(?=\\=|:|;)", - "name": "meta.definition.variable.java", - "patterns": [ - { - "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))", - "captures": { - "1": { - "name": "variable.other.definition.java" - } - } - }, - { - "include": "#all-types" - }, - { - "include": "#code" - } - ] - }, - "variables-local": { - "begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))", - "end": "(?=\\=|:|;)", - "name": "meta.definition.variable.local.java", - "patterns": [ - { - "match": "\\bvar\\b", - "name": "storage.type.local.java" - }, - { - "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))", - "captures": { - "1": { - "name": "variable.other.definition.java" - } - } - }, - { - "include": "#code" - } - ] - } - } -} diff --git a/lib/grammars/javascript.tmLanguage.json b/lib/grammars/javascript.tmLanguage.json deleted file mode 100644 index 6917aa9..0000000 --- a/lib/grammars/javascript.tmLanguage.json +++ /dev/null @@ -1,5989 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", - "name": "javascript", - "scopeName": "source.js", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.js", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.js" - } - } - }, - "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" - } - ] - }, - "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" - }, - { - "name": "storage.modifier.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "control-statement": { - "patterns": [ - { - "include": "#switch-statement" - }, - { - "include": "#for-loop" - }, - { - "name": "keyword.control.trycatch.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.control.loop.js" - }, - "2": { - "name": "entity.name.label.js" - } - } - }, - { - "name": "keyword.control.loop.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.js" - } - }, - "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "keyword.control.switch.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#if-statement" - }, - { - "name": "keyword.control.conditional.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.with.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.other.debugger.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "label": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", - "beginCaptures": { - "1": { - "name": "entity.name.label.js" - }, - "2": { - "name": "punctuation.separator.label.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#decl-block" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.js" - }, - "2": { - "name": "punctuation.separator.label.js" - } - } - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "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" - } - ] - }, - "expressionPunctuations": { - "patterns": [ - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "decorator": { - "name": "meta.decorator.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", - "beginCaptures": { - "0": { - "name": "punctuation.decorator.js" - } - }, - "end": "(?=\\s)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "var-expr": { - "patterns": [ - { - "name": "meta.var.expr.js", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.js" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.js" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.js", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.js" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.js" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.js" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.js", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.js" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.js" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.js" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "var-single-variable": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.js", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js entity.name.function.js" - }, - "2": { - "name": "keyword.operator.definiteassignment.js" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.js", - "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js variable.other.constant.js" - }, - "2": { - "name": "keyword.operator.definiteassignment.js" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js variable.other.readwrite.js" - }, - "2": { - "name": "keyword.operator.definiteassignment.js" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-const": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.js", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js variable.other.constant.js entity.name.function.js" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js variable.other.constant.js" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-variable-type-annotation": { - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "destructuring-variable": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.js", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.js", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "destructuring-const": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.js", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.js", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element" - } - ] - }, - { - "include": "#object-binding-pattern" - }, - { - "include": "#destructuring-variable-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-const": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element-const" - } - ] - }, - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#destructuring-variable-rest-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-propertyName": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(:)", - "endCaptures": { - "0": { - "name": "punctuation.destructuring.js" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "variable.object.property.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "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" - } - ] - }, - "destructuring-variable-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "meta.definition.variable.js variable.other.readwrite.js" - } - } - }, - "destructuring-variable-rest-const": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "meta.definition.variable.js variable.other.constant.js" - } - } - }, - "object-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "patterns": [ - { - "include": "#object-binding-element" - } - ] - }, - "object-binding-pattern-const": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "patterns": [ - { - "include": "#object-binding-element-const" - } - ] - }, - "array-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "patterns": [ - { - "include": "#binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "array-binding-pattern-const": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "patterns": [ - { - "include": "#binding-element-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "parameter-name": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.js" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "entity.name.function.js variable.language.this.js" - }, - "4": { - "name": "entity.name.function.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "variable.parameter.js variable.language.this.js" - }, - "4": { - "name": "variable.parameter.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - } - ] - }, - "destructuring-parameter": { - "patterns": [ - { - "name": "meta.parameter.object-binding-pattern.js", - "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "patterns": [ - { - "include": "#parameter-object-binding-element" - } - ] - }, - { - "name": "meta.paramter.array-binding-pattern.js", - "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "patterns": [ - { - "include": "#parameter-binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "parameter-object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#parameter-binding-element" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "include": "#parameter-object-binding-pattern" - }, - { - "include": "#destructuring-parameter-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "parameter-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" - } - ] - }, - "destructuring-parameter-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "variable.parameter.js" - } - } - }, - "parameter-object-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.js" - } - }, - "patterns": [ - { - "include": "#parameter-object-binding-element" - } - ] - }, - "parameter-array-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.js" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.js" - } - }, - "patterns": [ - { - "include": "#parameter-binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "field-declaration": { - "name": "meta.field.declaration.js", - "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - } - }, - "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", - "patterns": [ - { - "include": "#variable-initializer" - }, - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#comment" - }, - { - "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.js entity.name.function.js" - }, - "2": { - "name": "keyword.operator.optional.js" - }, - "3": { - "name": "keyword.operator.definiteassignment.js" - } - } - }, - { - "name": "meta.definition.property.js variable.object.property.js", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.js", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.js", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js" - } - }, - "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<!=|!)(=)(?!=)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js" - } - }, - "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "function-declaration": { - "name": "meta.function.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.async.js" - }, - "4": { - "name": "storage.type.function.js" - }, - "5": { - "name": "keyword.generator.asterisk.js" - }, - "6": { - "name": "meta.definition.function.js entity.name.function.js" - } - }, - "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#function-body" - } - ] - }, - "function-expression": { - "name": "meta.function.expression.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "storage.type.function.js" - }, - "3": { - "name": "keyword.generator.asterisk.js" - }, - "4": { - "name": "meta.definition.function.js entity.name.function.js" - } - }, - "end": "(?=;)|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#function-body" - } - ] - }, - "function-name": { - "name": "meta.definition.function.js entity.name.function.js", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - "function-body": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#return-type" - }, - { - "include": "#type-function-return-type" - }, - { - "include": "#decl-block" - }, - { - "name": "keyword.generator.asterisk.js", - "match": "\\*" - } - ] - }, - "method-declaration": { - "patterns": [ - { - "name": "meta.method.declaration.js", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.js" - }, - "4": { - "name": "storage.modifier.async.js" - }, - "5": { - "name": "storage.type.js" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.js", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.js" - }, - "4": { - "name": "storage.modifier.async.js" - }, - "5": { - "name": "keyword.operator.new.js" - }, - "6": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.js", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.js" - }, - "4": { - "name": "storage.modifier.async.js" - }, - "5": { - "name": "storage.type.property.js" - }, - "6": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.js", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "storage.type.property.js" - }, - "3": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "storage.type.property.js" - }, - "3": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "meta.definition.method.js entity.name.function.js", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.js", - "match": "\\?" - } - ] - }, - "arrow-function": { - "patterns": [ - { - "name": "meta.arrow.js", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", - "captures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "variable.parameter.js" - } - } - }, - { - "name": "meta.arrow.js", - "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.js", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js" - } - }, - "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.js", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "meta.brace.square.js" - }, - "3": { - "name": "variable.parameter.js" - } - }, - "end": "(\\])\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.js" - }, - "2": { - "name": "keyword.operator.optional.js" - } - }, - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - "indexer-mapped-type-declaration": { - "name": "meta.indexer.mappedtype.declaration.js", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.modifier.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "meta.brace.square.js" - }, - "4": { - "name": "entity.name.type.js" - }, - "5": { - "name": "keyword.operator.expression.in.js" - } - }, - "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.js" - }, - "2": { - "name": "keyword.operator.type.modifier.js" - }, - "3": { - "name": "keyword.operator.optional.js" - } - }, - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", - "captures": { - "1": { - "name": "keyword.control.as.js" - } - } - }, - { - "include": "#type" - } - ] - }, - "function-parameters": { - "name": "meta.parameters.js", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.js" - } - }, - "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" - }, - { - "name": "punctuation.separator.parameter.js", - "match": "," - } - ] - }, - "class-declaration": { - "name": "meta.class.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.js" - }, - "4": { - "name": "storage.type.class.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-expression": { - "name": "meta.class.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "storage.type.class.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-declaration-or-expression-patterns": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.class.js" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "interface-declaration": { - "name": "meta.interface.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.js" - }, - "4": { - "name": "storage.type.interface.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.interface.js" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "class-or-interface-heritage": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "include": "#type-parameters" - }, - { - "include": "#expressionWithoutIdentifiers" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", - "captures": { - "1": { - "name": "entity.name.type.module.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - } - } - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "entity.other.inherited-class.js" - } - } - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "class-or-interface-body": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#decorator" - }, - { - "begin": "(?<=:)\\s*", - "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#method-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#field-declaration" - }, - { - "include": "#string" - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#access-modifier" - }, - { - "include": "#property-accessor" - }, - { - "include": "#async-modifier" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "access-modifier": { - "name": "storage.modifier.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "property-accessor": { - "name": "storage.type.property.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "async-modifier": { - "name": "storage.modifier.async.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "enum-declaration": { - "name": "meta.enum.declaration.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.js" - }, - "4": { - "name": "storage.type.enum.js" - }, - "5": { - "name": "entity.name.type.enum.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "0": { - "name": "variable.other.enummember.js" - } - }, - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "namespace-declaration": { - "name": "meta.namespace.declaration.js", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.namespace.js" - } - }, - "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "entity.name.type.module.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - }, - { - "include": "#punctuation-accessor" - }, - { - "include": "#decl-block" - } - ] - }, - "type-alias-declaration": { - "name": "meta.type.declaration.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.type.type.js" - }, - "4": { - "name": "entity.name.type.alias.js" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js" - }, - "2": { - "name": "keyword.control.intrinsic.js" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "import-equals-declaration": { - "patterns": [ - { - "name": "meta.import-equals.external.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "keyword.control.import.js" - }, - "4": { - "name": "keyword.control.type.js" - }, - "5": { - "name": "variable.other.readwrite.alias.js" - }, - "6": { - "name": "keyword.operator.assignment.js" - }, - "7": { - "name": "keyword.control.require.js" - }, - "8": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.import-equals.internal.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "keyword.control.import.js" - }, - "4": { - "name": "keyword.control.type.js" - }, - "5": { - "name": "variable.other.readwrite.alias.js" - }, - "6": { - "name": "keyword.operator.assignment.js" - } - }, - "end": "(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - } - } - }, - { - "name": "variable.other.readwrite.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - } - ] - }, - "import-declaration": { - "name": "meta.import.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "keyword.control.import.js" - }, - "4": { - "name": "keyword.control.type.js" - } - }, - "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", - "end": "\\bfrom\\b", - "endCaptures": { - "0": { - "name": "keyword.control.from.js" - } - }, - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - }, - { - "include": "#import-export-declaration" - } - ] - }, - "export-declaration": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "keyword.control.as.js" - }, - "3": { - "name": "storage.type.namespace.js" - }, - "4": { - "name": "entity.name.type.module.js" - } - } - }, - { - "name": "meta.export.default.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "keyword.control.type.js" - }, - "3": { - "name": "keyword.operator.assignment.js" - }, - "4": { - "name": "keyword.control.default.js" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#interface-declaration" - }, - { - "include": "#expression" - } - ] - }, - { - "name": "meta.export.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js" - }, - "2": { - "name": "keyword.control.type.js" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - } - ] - }, - "import-export-declaration": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#import-export-block" - }, - { - "name": "keyword.control.from.js", - "match": "\\bfrom\\b" - }, - { - "include": "#import-export-assert-clause" - }, - { - "include": "#import-export-clause" - } - ] - }, - "import-export-assert-clause": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.assert.js" - }, - "2": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "meta.object-literal.key.js", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" - }, - { - "name": "punctuation.separator.key-value.js", - "match": ":" - } - ] - }, - "import-export-block": { - "name": "meta.block.js", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#import-export-clause" - } - ] - }, - "import-export-clause": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", - "captures": { - "1": { - "name": "keyword.control.type.js" - }, - "2": { - "name": "keyword.control.default.js" - }, - "3": { - "name": "constant.language.import-export-all.js" - }, - "4": { - "name": "variable.other.readwrite.js" - }, - "5": { - "name": "keyword.control.as.js" - }, - "6": { - "name": "keyword.control.default.js" - }, - "7": { - "name": "variable.other.readwrite.alias.js" - } - } - }, - { - "include": "#punctuation-comma" - }, - { - "name": "constant.language.import-export-all.js", - "match": "\\*" - }, - { - "name": "keyword.control.default.js", - "match": "\\b(default)\\b" - }, - { - "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.control.type.js" - }, - "2": { - "name": "variable.other.readwrite.alias.js" - } - } - } - ] - }, - "switch-statement": { - "name": "switch-statement.expr.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "switch-expression.expr.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.js" - }, - "2": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "switch-block.expr.js", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "name": "case-clause.expr.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.js" - } - }, - "end": "(?=:)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(:)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "case-clause.expr.js punctuation.definition.section.case-statement.js" - }, - "2": { - "name": "meta.block.js punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "meta.block.js punctuation.definition.block.js" - } - }, - "contentName": "meta.block.js", - "patterns": [ - { - "include": "#statements" - } - ] - }, - { - "match": "(:)", - "captures": { - "0": { - "name": "case-clause.expr.js punctuation.definition.section.case-statement.js" - } - } - }, - { - "include": "#statements" - } - ] - } - ] - }, - "for-loop": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", - "beginCaptures": { - "0": { - "name": "keyword.control.loop.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "keyword.control.loop.js", - "match": "await" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#var-expr" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - } - ] - } - ] - }, - "if-statement": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", - "end": "(?=;|$|\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.js" - }, - "2": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "string.regexp.js", - "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "keyword.other.js" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "include": "#statements" - } - ] - } - ] - }, - "decl-block": { - "name": "meta.block.js", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#statements" - } - ] - }, - "after-operator-block-as-object-literal": { - "name": "meta.objectliteral.js", - "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.js", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.js meta.object-literal.key.js", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.js meta.object-literal.key.js", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.js meta.object-literal.key.js", - "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", - "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#numeric-literal" - } - ] - }, - { - "name": "meta.method.declaration.js", - "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.object.member.js", - "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.js" - }, - "1": { - "name": "constant.numeric.decimal.js" - } - } - }, - { - "name": "meta.object.member.js", - "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.js" - }, - "1": { - "name": "entity.name.function.js" - } - } - }, - { - "name": "meta.object.member.js", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.js" - } - } - }, - { - "name": "meta.object.member.js", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.js" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.js" - } - } - }, - { - "name": "meta.object.member.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", - "captures": { - "1": { - "name": "keyword.control.as.js" - }, - "2": { - "name": "storage.modifier.js" - } - } - }, - { - "name": "meta.object.member.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.js" - }, - "2": { - "name": "keyword.control.satisfies.js" - } - }, - "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.object.member.js", - "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", - "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.js", - "begin": ":", - "beginCaptures": { - "0": { - "name": "meta.object-literal.key.js punctuation.separator.key-value.js" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "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" - }, - "2": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "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" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#decl-block" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.js" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.js", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.js", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.js", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.js punctuation.accessor.optional.js", - "match": "\\?\\." - }, - { - "name": "meta.function-call.js keyword.operator.definiteassignment.js", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.js", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" - } - ] - }, - "new-expr": { - "name": "new.expr.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.new.js" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "instanceof-expr": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.expression.instanceof.js" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#type" - } - ] - }, - "paren-expression-possibly-arrow": { - "patterns": [ - { - "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "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" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.js" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "entity.name.function.js variable.language.this.js" - }, - "4": { - "name": "entity.name.function.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "variable.parameter.js variable.language.this.js" - }, - "4": { - "name": "variable.parameter.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "name": "punctuation.separator.parameter.js", - "match": "," - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "paren-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "cast": { - "patterns": [ - { - "include": "#jsx" - } - ] - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.control.flow.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.js" - } - }, - "end": "\\*", - "endCaptures": { - "0": { - "name": "keyword.generator.asterisk.js" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", - "captures": { - "1": { - "name": "keyword.control.flow.js" - }, - "2": { - "name": "keyword.generator.asterisk.js" - } - } - }, - { - "name": "keyword.operator.expression.delete.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.in.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.of.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.instanceof.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.new.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#typeof-operator" - }, - { - "name": "keyword.operator.expression.void.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", - "captures": { - "1": { - "name": "keyword.control.as.js" - }, - "2": { - "name": "storage.modifier.js" - } - } - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.js" - }, - "2": { - "name": "keyword.control.satisfies.js" - } - }, - "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "keyword.operator.spread.js", - "match": "\\.\\.\\." - }, - { - "name": "keyword.operator.assignment.compound.js", - "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" - }, - { - "name": "keyword.operator.assignment.compound.bitwise.js", - "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.js", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.js", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.js", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.logical.js" - }, - "2": { - "name": "keyword.operator.assignment.compound.js" - }, - "3": { - "name": "keyword.operator.arithmetic.js" - } - } - }, - { - "name": "keyword.operator.logical.js", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.js", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.js", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.js", - "match": "--" - }, - { - "name": "keyword.operator.increment.js", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.js", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", - "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", - "endCaptures": { - "1": { - "name": "keyword.operator.assignment.compound.js" - }, - "2": { - "name": "keyword.operator.arithmetic.js" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.assignment.compound.js" - }, - "2": { - "name": "keyword.operator.arithmetic.js" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.operator.expression.typeof.js" - } - }, - "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type-arguments" - }, - { - "include": "#expression" - } - ] - }, - "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" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.js", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.js" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.js", - "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.js" - } - } - }, - { - "name": "constant.numeric.binary.js", - "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.js" - } - } - }, - { - "name": "constant.numeric.octal.js", - "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.js" - } - } - }, - { - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", - "captures": { - "0": { - "name": "constant.numeric.decimal.js" - }, - "1": { - "name": "meta.delimiter.decimal.period.js" - }, - "2": { - "name": "storage.type.numeric.bigint.js" - }, - "3": { - "name": "meta.delimiter.decimal.period.js" - }, - "4": { - "name": "storage.type.numeric.bigint.js" - }, - "5": { - "name": "meta.delimiter.decimal.period.js" - }, - "6": { - "name": "storage.type.numeric.bigint.js" - }, - "7": { - "name": "storage.type.numeric.bigint.js" - }, - "8": { - "name": "meta.delimiter.decimal.period.js" - }, - "9": { - "name": "storage.type.numeric.bigint.js" - }, - "10": { - "name": "meta.delimiter.decimal.period.js" - }, - "11": { - "name": "storage.type.numeric.bigint.js" - }, - "12": { - "name": "meta.delimiter.decimal.period.js" - }, - "13": { - "name": "storage.type.numeric.bigint.js" - }, - "14": { - "name": "storage.type.numeric.bigint.js" - } - } - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.boolean.false.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "null-literal": { - "name": "constant.language.null.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "this-literal": { - "name": "variable.language.this.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" - }, - "super-literal": { - "name": "variable.language.super.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" - }, - "undefined-literal": { - "name": "constant.language.undefined.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "numericConstant-literal": { - "patterns": [ - { - "name": "constant.language.nan.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.infinity.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "support-objects": { - "patterns": [ - { - "name": "variable.language.arguments.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" - }, - { - "name": "support.class.promise.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", - "captures": { - "1": { - "name": "keyword.control.import.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - }, - "4": { - "name": "support.variable.property.importmeta.js" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)", - "captures": { - "1": { - "name": "keyword.operator.new.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - }, - "4": { - "name": "support.variable.property.target.js" - } - } - }, - { - "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "support.variable.property.js" - }, - "4": { - "name": "support.constant.js" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)", - "captures": { - "1": { - "name": "support.type.object.module.js" - }, - "2": { - "name": "support.type.object.module.js" - }, - "3": { - "name": "punctuation.accessor.js" - }, - "4": { - "name": "punctuation.accessor.optional.js" - }, - "5": { - "name": "support.type.object.module.js" - } - } - } - ] - }, - "identifiers": { - "patterns": [ - { - "include": "#object-identifiers" - }, - { - "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "entity.name.function.js" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "variable.other.constant.property.js" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "variable.other.property.js" - } - } - }, - { - "name": "variable.other.constant.js", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.js", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "variable.other.constant.object.property.js" - }, - "4": { - "name": "variable.other.object.property.js" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.js" - }, - "2": { - "name": "variable.other.object.js" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.js", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.js", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?<![:|&])(?=$|^|[{};,]|//)", - "patterns": [ - { - "include": "#return-type-core" - } - ] - }, - { - "name": "meta.return.type.js", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#return-type-core" - } - ] - } - ] - }, - "return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<=[:|&])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "arrow-return-type": { - "name": "meta.return.type.arrow.js", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.js meta.return.type.arrow.js", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "arrow-return-type-body": { - "patterns": [ - { - "begin": "(?<=[:])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.js", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.js" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "name": "keyword.operator.assignment.js", - "match": "(=)(?!>)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.js", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.js" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.js" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "0": { - "name": "keyword.operator.type.js" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "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" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "captures": { - "1": { - "name": "storage.modifier.js" - } - } - }, - { - "include": "#type-name" - } - ] - }, - "type-primitive": { - "name": "support.type.primitive.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-builtin-literals": { - "name": "support.type.builtin.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-tuple": { - "name": "meta.type.tuple.js", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "meta.brace.square.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.js" - } - }, - "patterns": [ - { - "name": "keyword.operator.rest.js", - "match": "\\.\\.\\." - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.js" - }, - "2": { - "name": "keyword.operator.optional.js" - }, - "3": { - "name": "punctuation.separator.label.js" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-object": { - "name": "meta.object.type.js", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "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" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#type" - } - ] - }, - "type-conditional": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - } - }, - "end": "(?<=:)", - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.js" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.js" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#type" - } - ] - } - ] - }, - "type-paren-or-function-parameters": { - "name": "meta.type.paren.cover.js", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "entity.name.function.js variable.language.this.js" - }, - "4": { - "name": "entity.name.function.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "variable.parameter.js variable.language.this.js" - }, - "4": { - "name": "variable.parameter.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "include": "#type-annotation" - }, - { - "name": "punctuation.separator.parameter.js", - "match": "," - }, - { - "include": "#type" - } - ] - }, - "type-fn-type-parameters": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", - "beginCaptures": { - "1": { - "name": "meta.type.constructor.js storage.modifier.js" - }, - "2": { - "name": "meta.type.constructor.js keyword.control.new.js" - } - }, - "end": "(?<=>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.js", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.control.new.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "name": "meta.type.function.js", - "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.js", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.js" - } - }, - "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.js", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js" - } - }, - "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "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-operators": { - "patterns": [ - { - "include": "#typeof-operator" - }, - { - "include": "#type-infer" - }, - { - "begin": "([&|])(?=\\s*\\{)", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "begin": "[&|]", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.js" - } - }, - "end": "(?=\\S)" - }, - { - "name": "keyword.operator.expression.keyof.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.ternary.js", - "match": "(\\?|\\:)" - }, - { - "name": "keyword.operator.expression.import.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" - } - ] - }, - "type-infer": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", - "name": "meta.type.infer.js", - "captures": { - "1": { - "name": "keyword.operator.expression.infer.js" - }, - "2": { - "name": "entity.name.type.js" - }, - "3": { - "name": "keyword.operator.expression.extends.js" - } - } - } - ] - }, - "type-predicate-operator": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.js" - }, - "2": { - "name": "variable.parameter.js variable.language.this.js" - }, - "3": { - "name": "variable.parameter.js" - }, - "4": { - "name": "keyword.operator.expression.is.js" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.js" - }, - "2": { - "name": "variable.parameter.js variable.language.this.js" - }, - "3": { - "name": "variable.parameter.js" - } - } - }, - { - "name": "keyword.operator.type.asserts.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.is.js", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "type-name": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", - "captures": { - "1": { - "name": "entity.name.type.module.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - }, - "4": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.begin.js" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.end.js" - } - }, - "contentName": "meta.type.parameters.js", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.js" - }, - "2": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.begin.js" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.end.js" - } - }, - "contentName": "meta.type.parameters.js", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - } - } - }, - { - "name": "entity.name.type.js", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.js", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.js", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.js", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "invalid.illegal.newline.js" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.js", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "invalid.illegal.newline.js" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.js", - "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]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js" - }, - "2": { - "name": "string.template.js punctuation.definition.string.template.begin.js" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "string.template.js punctuation.definition.string.template.end.js" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.js", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.js" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js" - }, - "2": { - "name": "string.template.js punctuation.definition.string.template.begin.js" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "string.template.js punctuation.definition.string.template.end.js" - } - }, - "patterns": [ - { - "include": "#template-type-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-type-substitution-element": { - "name": "meta.template.expression.js", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.js" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.js", - "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "keyword.other.js" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.js", - "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "keyword.other.js" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - } - ] - }, - "regexp": { - "patterns": [ - { - "name": "keyword.control.anchor.regexp", - "match": "\\\\[bB]|\\^|\\$" - }, - { - "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "meta.group.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.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" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.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])|(\\\\.))", - "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" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.js", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.js", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.js" - }, - "2": { - "name": "storage.type.internaldeclaration.js" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.js" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - } - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js" - }, - "2": { - "name": "comment.line.double-slash.js" - }, - "3": { - "name": "punctuation.definition.comment.js" - }, - "4": { - "name": "storage.type.internaldeclaration.js" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.js" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.js" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js" - }, - "2": { - "name": "comment.line.double-slash.js" - }, - "3": { - "name": "punctuation.definition.comment.js" - }, - "4": { - "name": "storage.type.internaldeclaration.js" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.js" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.js" - }, - "directives": { - "name": "comment.line.triple-slash.directive.js", - "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" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.js", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.js" - }, - "2": { - "name": "entity.name.tag.directive.js" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.js" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.js", - "match": "path|types|no-default-lib|lib|name|resolution-mode" - }, - { - "name": "keyword.operator.assignment.js", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", - "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" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "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" - } - }, - "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" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.js" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "(?x)((@)template)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "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" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "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" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.js" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "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" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.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" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.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-tag-without-attributes-in-expression": { - "begin": "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - } - ] - }, - "jsx-tag-without-attributes": { - "name": "meta.tag.without-attributes.js", - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", - "end": "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js" - }, - "2": { - "name": "entity.name.tag.namespace.js" - }, - "3": { - "name": "punctuation.separator.namespace.js" - }, - "4": { - "name": "entity.name.tag.js" - }, - "5": { - "name": "support.class.component.js" - }, - "6": { - "name": "punctuation.definition.tag.end.js" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js" - }, - "2": { - "name": "entity.name.tag.namespace.js" - }, - "3": { - "name": "punctuation.separator.namespace.js" - }, - "4": { - "name": "entity.name.tag.js" - }, - "5": { - "name": "support.class.component.js" - }, - "6": { - "name": "punctuation.definition.tag.end.js" - } - }, - "contentName": "meta.jsx.children.js", - "patterns": [ - { - "include": "#jsx-children" - } - ] - }, - "jsx-tag-in-expression": { - "begin": "(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "patterns": [ - { - "include": "#jsx-tag" - } - ] - }, - "jsx-tag": { - "name": "meta.tag.js", - "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "end": "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js" - }, - "2": { - "name": "punctuation.definition.tag.begin.js" - }, - "3": { - "name": "entity.name.tag.namespace.js" - }, - "4": { - "name": "punctuation.separator.namespace.js" - }, - "5": { - "name": "entity.name.tag.js" - }, - "6": { - "name": "support.class.component.js" - }, - "7": { - "name": "punctuation.definition.tag.end.js" - } - }, - "patterns": [ - { - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js" - }, - "2": { - "name": "entity.name.tag.namespace.js" - }, - "3": { - "name": "punctuation.separator.namespace.js" - }, - "4": { - "name": "entity.name.tag.js" - }, - "5": { - "name": "support.class.component.js" - } - }, - "end": "(?=[/]?>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-arguments" - }, - { - "include": "#jsx-tag-attributes" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js" - } - }, - "end": "(?=</)", - "contentName": "meta.jsx.children.js", - "patterns": [ - { - "include": "#jsx-children" - } - ] - } - ] - }, - "jsx-children": { - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - }, - { - "include": "#jsx-tag" - }, - { - "include": "#jsx-evaluated-code" - }, - { - "include": "#jsx-entities" - } - ] - }, - "jsx-evaluated-code": { - "contentName": "meta.embedded.expression.js", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.js" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "jsx-entities": { - "patterns": [ - { - "name": "constant.character.entity.js", - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "captures": { - "1": { - "name": "punctuation.definition.entity.js" - }, - "3": { - "name": "punctuation.definition.entity.js" - } - } - } - ] - }, - "jsx-tag-attributes": { - "name": "meta.tag.attributes.js", - "begin": "\\s+", - "end": "(?=[/]?>)", - "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-attribute-name": { - "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.js" - }, - "2": { - "name": "punctuation.separator.namespace.js" - }, - "3": { - "name": "entity.other.attribute-name.js" - } - } - }, - "jsx-tag-attribute-assignment": { - "name": "keyword.operator.assignment.js", - "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" - }, - "jsx-string-double-quoted": { - "name": "string.quoted.double.js", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-string-single-quoted": { - "name": "string.quoted.single.js", - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-tag-attributes-illegal": { - "name": "invalid.illegal.attribute.js", - "match": "\\S+" - } - } -} diff --git a/lib/grammars/jinja-html.tmLanguage.json b/lib/grammars/jinja-html.tmLanguage.json deleted file mode 100644 index dfc74b5..0000000 --- a/lib/grammars/jinja-html.tmLanguage.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "jinja-html", - "scopeName": "text.html.jinja", - "comment": "Jinja HTML Templates", - "firstLineMatch": "^{% extends [\"'][^\"']+[\"'] %}", - "foldingStartMarker": "(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\b.*?>|{%\\s*(block|filter|for|if|macro|raw))", - "foldingStopMarker": "(</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\b.*?>|{%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})", - "patterns": [ - { - "include": "source.jinja" - }, - { - "include": "text.html.basic" - } - ] -} diff --git a/lib/grammars/jinja.tmLanguage.json b/lib/grammars/jinja.tmLanguage.json deleted file mode 100644 index aafd061..0000000 --- a/lib/grammars/jinja.tmLanguage.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "name": "jinja", - "scopeName": "source.jinja", - "comment": "Jinja Templates", - "foldingStartMarker": "({%\\s*(block|filter|for|if|macro|raw))", - "foldingStopMarker": "({%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})", - "patterns": [ - { - "begin": "({%)\\s*(raw)\\s*(%})", - "captures": { - "1": { - "name": "entity.other.jinja.delimiter.tag" - }, - "2": { - "name": "keyword.control.jinja" - }, - "3": { - "name": "entity.other.jinja.delimiter.tag" - } - }, - "end": "({%)\\s*(endraw)\\s*(%})", - "name": "comment.block.jinja.raw" - }, - { - "include": "#comments" - }, - { - "begin": "{{-?", - "captures": [ - { - "name": "variable.entity.other.jinja.delimiter" - } - ], - "end": "-?}}", - "name": "variable.meta.scope.jinja", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "{%-?", - "captures": [ - { - "name": "entity.other.jinja.delimiter.tag" - } - ], - "end": "-?%}", - "name": "meta.scope.jinja.tag", - "patterns": [ - { - "include": "#expression" - } - ] - } - ], - "repository": { - "comments": { - "begin": "{#-?", - "captures": [ - { - "name": "entity.other.jinja.delimiter.comment" - } - ], - "end": "-?#}", - "name": "comment.block.jinja", - "patterns": [ - { - "include": "#comments" - } - ] - }, - "escaped_char": { - "match": "\\\\x[0-9A-F]{2}", - "name": "constant.character.escape.hex.jinja" - }, - "escaped_unicode_char": { - "captures": { - "1": { - "name": "constant.character.escape.unicode.16-bit-hex.jinja" - }, - "2": { - "name": "constant.character.escape.unicode.32-bit-hex.jinja" - }, - "3": { - "name": "constant.character.escape.unicode.name.jinja" - } - }, - "match": "(\\\\U[0-9A-Fa-f]{8})|(\\\\u[0-9A-Fa-f]{4})|(\\\\N\\{[a-zA-Z ]+\\})" - }, - "expression": { - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.control.jinja" - }, - "2": { - "name": "variable.other.jinja.block" - } - }, - "match": "\\s*\\b(block)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.control.jinja" - }, - "2": { - "name": "variable.other.jinja.filter" - } - }, - "match": "\\s*\\b(filter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.control.jinja" - }, - "2": { - "name": "variable.other.jinja.test" - } - }, - "match": "\\s*\\b(is)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.control.jinja" - } - }, - "match": "(?<=\\{\\%-|\\{\\%)\\s*\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*[,=])" - }, - { - "match": "\\b(and|else|if|in|import|not|or|recursive|with(out)?\\s+context)\\b", - "name": "keyword.control.jinja" - }, - { - "match": "\\b(true|false|none)\\b", - "name": "constant.language.jinja" - }, - { - "match": "\\b(loop|super|self|varargs|kwargs)\\b", - "name": "variable.language.jinja" - }, - { - "match": "[a-zA-Z_][a-zA-Z0-9_]*", - "name": "variable.other.jinja" - }, - { - "match": "(\\+|\\-|\\*\\*|\\*|//|/|%)", - "name": "keyword.operator.arithmetic.jinja" - }, - { - "captures": { - "1": { - "name": "punctuation.other.jinja" - }, - "2": { - "name": "variable.other.jinja.filter" - } - }, - "match": "(\\|)([a-zA-Z_][a-zA-Z0-9_]*)" - }, - { - "captures": { - "1": { - "name": "punctuation.other.jinja" - }, - "2": { - "name": "variable.other.jinja.attribute" - } - }, - "match": "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)" - }, - { - "begin": "\\[", - "captures": [ - { - "name": "punctuation.other.jinja" - } - ], - "end": "\\]", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "\\(", - "captures": [ - { - "name": "punctuation.other.jinja" - } - ], - "end": "\\)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "\\{", - "captures": [ - { - "name": "punctuation.other.jinja" - } - ], - "end": "\\}", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "match": "(\\.|:|\\||,)", - "name": "punctuation.other.jinja" - }, - { - "match": "(==|<=|=>|<|>|!=)", - "name": "keyword.operator.comparison.jinja" - }, - { - "match": "=", - "name": "keyword.operator.assignment.jinja" - }, - { - "begin": "\"", - "beginCaptures": [ - { - "name": "punctuation.definition.string.begin.jinja" - } - ], - "end": "\"", - "endCaptures": [ - { - "name": "punctuation.definition.string.end.jinja" - } - ], - "name": "string.quoted.double.jinja", - "patterns": [ - { - "include": "#string" - } - ] - }, - { - "begin": "'", - "beginCaptures": [ - { - "name": "punctuation.definition.string.begin.jinja" - } - ], - "end": "'", - "endCaptures": [ - { - "name": "punctuation.definition.string.end.jinja" - } - ], - "name": "string.quoted.single.jinja", - "patterns": [ - { - "include": "#string" - } - ] - }, - { - "begin": "@/", - "beginCaptures": [ - { - "name": "punctuation.definition.regexp.begin.jinja" - } - ], - "end": "/", - "endCaptures": [ - { - "name": "punctuation.definition.regexp.end.jinja" - } - ], - "name": "string.regexp.jinja", - "patterns": [ - { - "include": "#simple_escapes" - } - ] - } - ] - }, - "simple_escapes": { - "captures": { - "1": { - "name": "constant.character.escape.newline.jinja" - }, - "2": { - "name": "constant.character.escape.backlash.jinja" - }, - "3": { - "name": "constant.character.escape.double-quote.jinja" - }, - "4": { - "name": "constant.character.escape.single-quote.jinja" - }, - "5": { - "name": "constant.character.escape.bell.jinja" - }, - "6": { - "name": "constant.character.escape.backspace.jinja" - }, - "7": { - "name": "constant.character.escape.formfeed.jinja" - }, - "8": { - "name": "constant.character.escape.linefeed.jinja" - }, - "9": { - "name": "constant.character.escape.return.jinja" - }, - "10": { - "name": "constant.character.escape.tab.jinja" - }, - "11": { - "name": "constant.character.escape.vertical-tab.jinja" - } - }, - "match": "(\\\\\\n)|(\\\\\\\\)|(\\\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)" - }, - "string": { - "patterns": [ - { - "include": "#simple_escapes" - }, - { - "include": "#escaped_char" - }, - { - "include": "#escaped_unicode_char" - } - ] - } - } -} diff --git a/lib/grammars/jison.tmLanguage.json b/lib/grammars/jison.tmLanguage.json deleted file mode 100644 index 103ae9b..0000000 --- a/lib/grammars/jison.tmLanguage.json +++ /dev/null @@ -1,712 +0,0 @@ -{ - "name": "jison", - "scopeName": "source.jison", - "fileTypes": ["jison"], - "patterns": [ - { - "begin": "%%", - "end": "\\z", - "beginCaptures": { - "0": { - "name": "meta.separator.section.jison" - } - }, - "patterns": [ - { - "begin": "%%", - "end": "\\z", - "beginCaptures": { - "0": { - "name": "meta.separator.section.jison" - } - }, - "patterns": [ - { - "name": "meta.section.epilogue.jison", - "begin": "\\G", - "end": "\\z", - "contentName": "source.js.embedded.jison", - "patterns": [ - { - "include": "#epilogue_section" - } - ] - } - ] - }, - { - "name": "meta.section.rules.jison", - "begin": "\\G", - "end": "(?=%%)", - "patterns": [ - { - "include": "#rules_section" - } - ] - } - ] - }, - { - "name": "meta.section.declarations.jison", - "begin": "^", - "end": "(?=%%)", - "patterns": [ - { - "include": "#declarations_section" - } - ] - } - ], - "repository": { - "declarations_section": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "^\\s*(%lex)\\s*$", - "end": "^\\s*(/lex)\\b", - "beginCaptures": { - "1": { - "name": "entity.name.tag.lexer.begin.jison" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.tag.lexer.end.jison" - } - }, - "patterns": [ - { - "begin": "%%", - "end": "(?=/lex)", - "beginCaptures": { - "0": { - "name": "meta.separator.section.jisonlex" - } - }, - "patterns": [ - { - "begin": "^%%", - "end": "(?=/lex)", - "beginCaptures": { - "0": { - "name": "meta.separator.section.jisonlex" - } - }, - "patterns": [ - { - "name": "meta.section.user-code.jisonlex", - "begin": "\\G", - "end": "(?=/lex)", - "contentName": "source.js.embedded.jisonlex", - "patterns": [ - { - "include": "source.jisonlex#user_code_section" - } - ] - } - ] - }, - { - "name": "meta.section.rules.jisonlex", - "begin": "\\G", - "end": "^(?=%%|/lex)", - "patterns": [ - { - "include": "source.jisonlex#rules_section" - } - ] - } - ] - }, - { - "name": "meta.section.definitions.jisonlex", - "begin": "^", - "end": "(?=%%|/lex)", - "patterns": [ - { - "include": "source.jisonlex#definitions_section" - } - ] - } - ] - }, - { - "name": "meta.section.prologue.jison", - "begin": "(?=%\\{)", - "end": "(?<=%\\})", - "patterns": [ - { - "include": "#user_code_blocks" - } - ] - }, - { - "include": "#options_declarations" - }, - { - "name": "keyword.other.declaration.$1.jison", - "match": "%(ebnf|left|nonassoc|parse-param|right|start)\\b" - }, - { - "include": "#include_declarations" - }, - { - "name": "meta.code.jison", - "begin": "%(code)\\b", - "end": "$", - "beginCaptures": { - "0": { - "name": "keyword.other.declaration.$1.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#rule_actions" - }, - { - "name": "keyword.other.code-qualifier.$1.jison", - "match": "(init|required)" - }, - { - "include": "#quoted_strings" - }, - { - "name": "string.unquoted.jison", - "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b" - } - ] - }, - { - "name": "meta.parser-type.jison", - "begin": "%(parser-type)\\b", - "end": "$", - "beginCaptures": { - "0": { - "name": "keyword.other.declaration.$1.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#quoted_strings" - }, - { - "name": "string.unquoted.jison", - "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b" - } - ] - }, - { - "name": "meta.token.jison", - "begin": "%(token)\\b", - "end": "$|(%%|;)", - "beginCaptures": { - "0": { - "name": "keyword.other.declaration.$1.jison" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.declaration.token.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#numbers" - }, - { - "include": "#quoted_strings" - }, - { - "name": "invalid.unimplemented.jison", - "match": "<[[:alpha:]_](?:[\\w-]*\\w)?>" - }, - { - "name": "entity.other.token.jison", - "match": "\\S+" - } - ] - }, - { - "name": "keyword.other.declaration.$1.jison", - "match": "%(debug|import)\\b" - }, - { - "name": "invalid.illegal.jison", - "match": "%prec\\b" - }, - { - "name": "invalid.unimplemented.jison", - "match": "%[[:alpha:]_](?:[\\w-]*\\w)?\\b" - }, - { - "include": "#numbers" - }, - { - "include": "#quoted_strings" - } - ] - }, - "rules_section": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#actions" - }, - { - "include": "#include_declarations" - }, - { - "name": "meta.rule.jison", - "begin": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b", - "end": ";", - "beginCaptures": { - "0": { - "name": "entity.name.constant.rule-result.jison" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "name": "meta.rule-components.jison", - "begin": ":", - "end": "(?=;)", - "beginCaptures": { - "0": { - "name": "keyword.operator.rule-components.assignment.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#quoted_strings" - }, - { - "match": "(\\[)([[:alpha:]_](?:[\\w-]*\\w)?)(\\])", - "captures": { - "1": { - "name": "punctuation.definition.named-reference.begin.jison" - }, - "2": { - "name": "entity.name.other.reference.jison" - }, - "3": { - "name": "punctuation.definition.named-reference.end.jison" - } - } - }, - { - "name": "meta.prec.jison", - "begin": "(%(prec))\\s*", - "end": "(?<=['\"])|(?=\\s)", - "beginCaptures": { - "1": { - "name": "keyword.other.$2.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#quoted_strings" - }, - { - "name": "constant.other.token.jison", - "begin": "(?=\\S)", - "end": "(?=\\s)" - } - ] - }, - { - "name": "keyword.operator.rule-components.separator.jison", - "match": "\\|" - }, - { - "name": "keyword.other.$0.jison", - "match": "\\b(?:EOF|error)\\b" - }, - { - "name": "keyword.other.empty.jison", - "match": "(?:%(?:e(?:mpty|psilon))|\\b[Ɛɛεϵ])\\b" - }, - { - "include": "#rule_actions" - } - ] - } - ] - } - ] - }, - "epilogue_section": { - "patterns": [ - { - "include": "#user_code_include_declarations" - }, - { - "include": "source.js" - } - ] - }, - "actions": { - "patterns": [ - { - "name": "meta.action.jison", - "begin": "\\{\\{", - "end": "\\}\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.action.begin.jison" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.action.end.jison" - } - }, - "contentName": "source.js.embedded.jison", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "name": "meta.action.jison", - "begin": "(?=%\\{)", - "end": "(?<=%\\})", - "patterns": [ - { - "include": "#user_code_blocks" - } - ] - } - ] - }, - "rule_actions": { - "patterns": [ - { - "include": "#actions" - }, - { - "name": "meta.action.jison", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.action.begin.jison" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.action.end.jison" - } - }, - "contentName": "source.js.embedded.jison", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "include": "#include_declarations" - }, - { - "name": "meta.action.jison", - "begin": "->|→", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.action.arrow.jison" - } - }, - "contentName": "source.js.embedded.jison", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.line.double-slash.jison", - "begin": "//", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.jison" - } - } - }, - { - "name": "comment.block.jison", - "begin": "/\\*", - "end": "\\*/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.jison" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.jison" - } - } - } - ] - }, - "include_declarations": { - "patterns": [ - { - "name": "meta.include.jison", - "begin": "(%(include))\\s*", - "end": "(?<=['\"])|(?=\\s)", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration.$2.jison" - } - }, - "patterns": [ - { - "include": "#include_paths" - } - ] - } - ] - }, - "user_code_include_declarations": { - "patterns": [ - { - "name": "meta.include.jison", - "begin": "^(%(include))\\s*", - "end": "(?<=['\"])|(?=\\s)", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration.$2.jison" - } - }, - "patterns": [ - { - "include": "#include_paths" - } - ] - } - ] - }, - "include_paths": { - "patterns": [ - { - "include": "#quoted_strings" - }, - { - "name": "string.unquoted.jison", - "begin": "(?=\\S)", - "end": "(?=\\s)", - "patterns": [ - { - "include": "source.js#string_escapes" - } - ] - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "(0[Xx])([0-9A-Fa-f]+)", - "captures": { - "1": { - "name": "storage.type.number.jison" - }, - "2": { - "name": "constant.numeric.integer.hexadecimal.jison" - } - } - }, - { - "name": "constant.numeric.integer.decimal.jison", - "match": "\\d+" - } - ] - }, - "options_declarations": { - "patterns": [ - { - "name": "meta.options.jison", - "begin": "%options\\b", - "end": "^(?=\\S|\\s*$)", - "beginCaptures": { - "0": { - "name": "keyword.other.options.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "name": "entity.name.constant.jison", - "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b" - }, - { - "begin": "(=)\\s*", - "end": "(?<=['\"])|(?=\\s)", - "beginCaptures": { - "1": { - "name": "keyword.operator.option.assignment.jison" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "name": "constant.language.boolean.$1.jison", - "match": "\\b(true|false)\\b" - }, - { - "include": "#numbers" - }, - { - "include": "#quoted_strings" - }, - { - "name": "string.unquoted.jison", - "match": "\\S+" - } - ] - }, - { - "include": "#quoted_strings" - } - ] - } - ] - }, - "quoted_strings": { - "patterns": [ - { - "name": "string.quoted.double.jison", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "include": "source.js#string_escapes" - } - ] - }, - { - "name": "string.quoted.single.jison", - "begin": "'", - "end": "'", - "patterns": [ - { - "include": "source.js#string_escapes" - } - ] - } - ] - }, - "user_code_blocks": { - "patterns": [ - { - "name": "meta.user-code-block.jison", - "begin": "%\\{", - "end": "%\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.user-code-block.begin.jison" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.user-code-block.end.jison" - } - }, - "contentName": "source.js.embedded.jison", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - } - }, - "injections": { - "L:(meta.action.jison - (comment | string)), source.js.embedded.jison - (comment | string), source.js.embedded.source - (comment | string.quoted.double | string.quoted.single)": { - "patterns": [ - { - "name": "variable.language.semantic-value.jison", - "match": "\\${2}" - }, - { - "name": "variable.language.result-location.jison", - "match": "@\\$" - }, - { - "name": "variable.language.stack-index-0.jison", - "match": "##\\$|\\byysp\\b" - }, - { - "name": "support.variable.token-reference.jison", - "match": "#\\S+#" - }, - { - "name": "variable.language.result-id.jison", - "match": "#\\$" - }, - { - "name": "support.variable.token-value.jison", - "match": "\\$(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" - }, - { - "name": "support.variable.token-location.jison", - "match": "@(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" - }, - { - "name": "support.variable.stack-index.jison", - "match": "##(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" - }, - { - "name": "support.variable.token-id.jison", - "match": "#(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" - }, - { - "name": "variable.language.jison", - "match": "\\byy(?:l(?:eng|ineno|oc|stack)|rulelength|s(?:tate|s?tack)|text|vstack)\\b" - }, - { - "name": "keyword.other.jison", - "match": "\\byy(?:clearin|erro[kr])\\b" - } - ] - } - } -} diff --git a/lib/grammars/json.tmLanguage.json b/lib/grammars/json.tmLanguage.json deleted file mode 100644 index f11db55..0000000 --- a/lib/grammars/json.tmLanguage.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", - "name": "json", - "scopeName": "source.json", - "patterns": [ - { - "include": "#value" - } - ], - "repository": { - "array": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.json" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.json" - } - }, - "name": "meta.structure.array.json", - "patterns": [ - { - "include": "#value" - }, - { - "match": ",", - "name": "punctuation.separator.array.json" - }, - { - "match": "[^\\s\\]]", - "name": "invalid.illegal.expected-array-separator.json" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?!/)", - "captures": { - "0": { - "name": "punctuation.definition.comment.json" - } - }, - "end": "\\*/", - "name": "comment.block.documentation.json" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.json" - } - }, - "end": "\\*/", - "name": "comment.block.json" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.json" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.js" - } - ] - }, - "constant": { - "match": "\\b(?:true|false|null)\\b", - "name": "constant.language.json" - }, - "number": { - "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", - "name": "constant.numeric.json" - }, - "object": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.json" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.dictionary.end.json" - } - }, - "name": "meta.structure.dictionary.json", - "patterns": [ - { - "comment": "the JSON object key", - "include": "#objectkey" - }, - { - "include": "#comments" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.dictionary.key-value.json" - } - }, - "end": "(,)|(?=\\})", - "endCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.json" - } - }, - "name": "meta.structure.dictionary.value.json", - "patterns": [ - { - "comment": "the JSON object value", - "include": "#value" - }, - { - "match": "[^\\s,]", - "name": "invalid.illegal.expected-dictionary-separator.json" - } - ] - }, - { - "match": "[^\\s\\}]", - "name": "invalid.illegal.expected-dictionary-separator.json" - } - ] - }, - "string": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.json" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.json" - } - }, - "name": "string.quoted.double.json", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "objectkey": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.support.type.property-name.begin.json" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.support.type.property-name.end.json" - } - }, - "name": "string.json support.type.property-name.json", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "stringcontent": { - "patterns": [ - { - "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", - "name": "constant.character.escape.json" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.json" - } - ] - }, - "value": { - "patterns": [ - { - "include": "#constant" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#array" - }, - { - "include": "#object" - }, - { - "include": "#comments" - } - ] - } - } -} diff --git a/lib/grammars/json5.tmLanguage.json b/lib/grammars/json5.tmLanguage.json deleted file mode 100644 index d95c20e..0000000 --- a/lib/grammars/json5.tmLanguage.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "scopeName": "source.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" - } - ] - }, - "constant": { - "match": "\\b(?:true|false|null|Infinity|NaN)\\b", - "name": "constant.language.json5" - }, - "infinity": { - "match": "(-)*\\b(?:Infinity|NaN)\\b", - "name": "constant.language.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" - } - ] - }, - "stringSingle": { - "begin": "[']", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.json5" - } - }, - "end": "[']", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.json5" - } - }, - "name": "string.quoted.json5", - "patterns": [ - { - "match": "(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )", - "name": "constant.character.escape.json5" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.json5" - } - ] - }, - "stringDouble": { - "begin": "[\"]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.json5" - } - }, - "end": "[\"]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.json5" - } - }, - "name": "string.quoted.json5", - "patterns": [ - { - "match": "(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )", - "name": "constant.character.escape.json5" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.json5" - } - ] - }, - "key": { - "name": "string.key.json5", - "patterns": [ - { - "include": "#stringSingle" - }, - { - "include": "#stringDouble" - }, - { - "match": "[a-zA-Z0-9_-]", - "name": "string.key.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" - } - ] - }, - "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" - } - ] - } - } -} diff --git a/lib/grammars/jsonc.tmLanguage.json b/lib/grammars/jsonc.tmLanguage.json deleted file mode 100644 index a440d4d..0000000 --- a/lib/grammars/jsonc.tmLanguage.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", - "name": "jsonc", - "scopeName": "source.json.comments", - "patterns": [ - { - "include": "#value" - } - ], - "repository": { - "array": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.json.comments" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.json.comments" - } - }, - "name": "meta.structure.array.json.comments", - "patterns": [ - { - "include": "#value" - }, - { - "match": ",", - "name": "punctuation.separator.array.json.comments" - }, - { - "match": "[^\\s\\]]", - "name": "invalid.illegal.expected-array-separator.json.comments" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?!/)", - "captures": { - "0": { - "name": "punctuation.definition.comment.json.comments" - } - }, - "end": "\\*/", - "name": "comment.block.documentation.json.comments" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.json.comments" - } - }, - "end": "\\*/", - "name": "comment.block.json.comments" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.json.comments" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.js" - } - ] - }, - "constant": { - "match": "\\b(?:true|false|null)\\b", - "name": "constant.language.json.comments" - }, - "number": { - "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", - "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" - } - ] - }, - "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" - } - ] - }, - "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" - } - ] - }, - "stringcontent": { - "patterns": [ - { - "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", - "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" - } - ] - } - } -} diff --git a/lib/grammars/jsonl.tmLanguage.json b/lib/grammars/jsonl.tmLanguage.json deleted file mode 100644 index f925d27..0000000 --- a/lib/grammars/jsonl.tmLanguage.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", - "name": "jsonl", - "scopeName": "source.json.lines", - "patterns": [ - { - "include": "#value" - } - ], - "repository": { - "array": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.json.lines" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.json.lines" - } - }, - "name": "meta.structure.array.json.lines", - "patterns": [ - { - "include": "#value" - }, - { - "match": ",", - "name": "punctuation.separator.array.json.lines" - }, - { - "match": "[^\\s\\]]", - "name": "invalid.illegal.expected-array-separator.json.lines" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?!/)", - "captures": { - "0": { - "name": "punctuation.definition.comment.json.lines" - } - }, - "end": "\\*/", - "name": "comment.block.documentation.json.lines" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.json.lines" - } - }, - "end": "\\*/", - "name": "comment.block.json.lines" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.json.lines" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.js" - } - ] - }, - "constant": { - "match": "\\b(?:true|false|null)\\b", - "name": "constant.language.json.lines" - }, - "number": { - "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", - "name": "constant.numeric.json.lines" - }, - "object": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.json.lines" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.dictionary.end.json.lines" - } - }, - "name": "meta.structure.dictionary.json.lines", - "patterns": [ - { - "comment": "the JSON object key", - "include": "#objectkey" - }, - { - "include": "#comments" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.dictionary.key-value.json.lines" - } - }, - "end": "(,)|(?=\\})", - "endCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.json.lines" - } - }, - "name": "meta.structure.dictionary.value.json.lines", - "patterns": [ - { - "comment": "the JSON object value", - "include": "#value" - }, - { - "match": "[^\\s,]", - "name": "invalid.illegal.expected-dictionary-separator.json.lines" - } - ] - }, - { - "match": "[^\\s\\}]", - "name": "invalid.illegal.expected-dictionary-separator.json.lines" - } - ] - }, - "string": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.json.lines" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.json.lines" - } - }, - "name": "string.quoted.double.json.lines", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "objectkey": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.support.type.property-name.begin.json.lines" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.support.type.property-name.end.json.lines" - } - }, - "name": "string.json.lines support.type.property-name.json.lines", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "stringcontent": { - "patterns": [ - { - "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", - "name": "constant.character.escape.json.lines" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.json.lines" - } - ] - }, - "value": { - "patterns": [ - { - "include": "#constant" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#array" - }, - { - "include": "#object" - }, - { - "include": "#comments" - } - ] - } - } -} diff --git a/lib/grammars/jsonnet.tmLanguage.json b/lib/grammars/jsonnet.tmLanguage.json deleted file mode 100644 index 231f6e4..0000000 --- a/lib/grammars/jsonnet.tmLanguage.json +++ /dev/null @@ -1,211 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "jsonnet", - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#keywords" - } - ], - "repository": { - "builtin-functions": { - "patterns": [ - { - "match": "\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\b", - "name": "support.function.jsonnet" - }, - { - "match": "\\bstd[.](range|split|stringChars|substr|toString|uniq)\\b", - "name": "support.function.jsonnet" - } - ] - }, - "comment": { - "patterns": [ - { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block.jsonnet" - }, - { - "match": "//.*$", - "name": "comment.line.jsonnet" - }, - { - "match": "#.*$", - "name": "comment.block.jsonnet" - } - ] - }, - "double-quoted-strings": { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.jsonnet", - "patterns": [ - { - "match": "\\\\([\"\\\\/bfnrt]|(u[0-9a-fA-F]{4}))", - "name": "constant.character.escape.jsonnet" - }, - { - "match": "\\\\[^\"\\\\/bfnrtu]", - "name": "invalid.illegal.jsonnet" - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#literals" - }, - { - "include": "#comment" - }, - { - "include": "#single-quoted-strings" - }, - { - "include": "#double-quoted-strings" - }, - { - "include": "#triple-quoted-strings" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#functions" - } - ] - }, - "functions": { - "patterns": [ - { - "begin": "\\b([a-zA-Z_][a-z0-9A-Z_]*)\\s*\\(", - "beginCaptures": { - "1": { - "name": "entity.name.function.jsonnet" - } - }, - "end": "\\)", - "name": "meta.function", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "[!:~\\+\\-&\\|\\^=<>\\*\\/%]", - "name": "keyword.operator.jsonnet" - }, - { - "match": "\\$", - "name": "keyword.other.jsonnet" - }, - { - "match": "\\b(self|super|import|importstr|local|tailstrict)\\b", - "name": "keyword.other.jsonnet" - }, - { - "match": "\\b(if|then|else|for|in|error|assert)\\b", - "name": "keyword.control.jsonnet" - }, - { - "match": "\\b(function)\\b", - "name": "storage.type.jsonnet" - }, - { - "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(:::|\\+:::)", - "name": "variable.parameter.jsonnet" - }, - { - "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(::|\\+::)", - "name": "entity.name.type" - }, - { - "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(:|\\+:)", - "name": "variable.parameter.jsonnet" - } - ] - }, - "literals": { - "patterns": [ - { - "match": "\\b(true|false|null)\\b", - "name": "constant.language.jsonnet" - }, - { - "match": "\\b(\\d+([Ee][+-]?\\d+)?)\\b", - "name": "constant.numeric.jsonnet" - }, - { - "match": "\\b\\d+[.]\\d*([Ee][+-]?\\d+)?\\b", - "name": "constant.numeric.jsonnet" - }, - { - "match": "\\b[.]\\d+([Ee][+-]?\\d+)?\\b", - "name": "constant.numeric.jsonnet" - } - ] - }, - "single-quoted-strings": { - "begin": "'", - "end": "'", - "name": "string.quoted.double.jsonnet", - "patterns": [ - { - "match": "\\\\(['\\\\/bfnrt]|(u[0-9a-fA-F]{4}))", - "name": "constant.character.escape.jsonnet" - }, - { - "match": "\\\\[^'\\\\/bfnrtu]", - "name": "invalid.illegal.jsonnet" - } - ] - }, - "triple-quoted-strings": { - "patterns": [ - { - "begin": "\\|\\|\\|", - "end": "\\|\\|\\|", - "name": "string.quoted.triple.jsonnet" - } - ] - } - }, - "scopeName": "source.jsonnet" -} diff --git a/lib/grammars/jssm.tmLanguage.json b/lib/grammars/jssm.tmLanguage.json deleted file mode 100644 index d251ac0..0000000 --- a/lib/grammars/jssm.tmLanguage.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "fileTypes": ["jssm", "jssm_state"], - "name": "jssm", - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.mn" - } - }, - "comment": "block comment", - "end": "\\*/", - "name": "comment.block.jssm" - }, - { - "begin": "//", - "comment": "block comment", - "end": "$", - "name": "comment.line.jssm" - }, - { - "begin": "\\${", - "captures": { - "0": { - "name": "entity.name.function" - } - }, - "comment": "js outcalls", - "end": "}", - "name": "keyword.other" - }, - { - "comment": "semver", - "match": "([0-9]*)(\\.)([0-9]*)(\\.)([0-9]*)", - "name": "constant.numeric" - }, - { - "comment": "jssm language tokens", - "match": "graph_layout(\\s*)(:)", - "name": "constant.language.jssmLanguage" - }, - { - "comment": "jssm language tokens", - "match": "machine_name(\\s*)(:)", - "name": "constant.language.jssmLanguage" - }, - { - "comment": "jssm language tokens", - "match": "machine_version(\\s*)(:)", - "name": "constant.language.jssmLanguage" - }, - { - "comment": "jssm language tokens", - "match": "jssm_version(\\s*)(:)", - "name": "constant.language.jssmLanguage" - }, - { - "comment": "transitions", - "match": "<->", - "name": "keyword.control.transition.jssmArrow.legal_legal" - }, - { - "comment": "transitions", - "match": "<-", - "name": "keyword.control.transition.jssmArrow.legal_none" - }, - { - "comment": "transitions", - "match": "->", - "name": "keyword.control.transition.jssmArrow.none_legal" - }, - { - "comment": "transitions", - "match": "<=>", - "name": "keyword.control.transition.jssmArrow.main_main" - }, - { - "comment": "transitions", - "match": "=>", - "name": "keyword.control.transition.jssmArrow.none_main" - }, - { - "comment": "transitions", - "match": "<=", - "name": "keyword.control.transition.jssmArrow.main_none" - }, - { - "comment": "transitions", - "match": "<~>", - "name": "keyword.control.transition.jssmArrow.forced_forced" - }, - { - "comment": "transitions", - "match": "~>", - "name": "keyword.control.transition.jssmArrow.none_forced" - }, - { - "comment": "transitions", - "match": "<~", - "name": "keyword.control.transition.jssmArrow.forced_none" - }, - { - "comment": "transitions", - "match": "<-=>", - "name": "keyword.control.transition.jssmArrow.legal_main" - }, - { - "comment": "transitions", - "match": "<=->", - "name": "keyword.control.transition.jssmArrow.main_legal" - }, - { - "comment": "transitions", - "match": "<-~>", - "name": "keyword.control.transition.jssmArrow.legal_forced" - }, - { - "comment": "transitions", - "match": "<~->", - "name": "keyword.control.transition.jssmArrow.forced_legal" - }, - { - "comment": "transitions", - "match": "<=~>", - "name": "keyword.control.transition.jssmArrow.main_forced" - }, - { - "comment": "transitions", - "match": "<~=>", - "name": "keyword.control.transition.jssmArrow.forced_main" - }, - { - "comment": "edge probability annotation", - "match": "([0-9]+)%", - "name": "constant.numeric.jssmProbability" - }, - { - "comment": "action annotation", - "match": "\\'[^']*\\'", - "name": "constant.character.jssmAction" - }, - { - "comment": "jssm label annotation", - "match": "\\\"[^\"]*\\\"", - "name": "entity.name.tag.jssmLabel.doublequoted" - }, - { - "comment": "jssm label annotation", - "match": "([a-zA-Z0-9_.+&()#@!?,])", - "name": "entity.name.tag.jssmLabel.atom" - } - ], - "scopeName": "source.jssm", - "uuid": "2bb22b55-e811-4383-9929-ae6d0ab92aca" -} diff --git a/lib/grammars/jsx.tmLanguage.json b/lib/grammars/jsx.tmLanguage.json deleted file mode 100644 index fd2a14e..0000000 --- a/lib/grammars/jsx.tmLanguage.json +++ /dev/null @@ -1,5989 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", - "name": "jsx", - "scopeName": "source.js.jsx", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.js.jsx", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.js.jsx" - } - } - }, - "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" - } - ] - }, - "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" - }, - { - "name": "storage.modifier.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "control-statement": { - "patterns": [ - { - "include": "#switch-statement" - }, - { - "include": "#for-loop" - }, - { - "name": "keyword.control.trycatch.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.control.loop.js.jsx" - }, - "2": { - "name": "entity.name.label.js.jsx" - } - } - }, - { - "name": "keyword.control.loop.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.js.jsx" - } - }, - "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "keyword.control.switch.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#if-statement" - }, - { - "name": "keyword.control.conditional.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.with.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.other.debugger.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "label": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", - "beginCaptures": { - "1": { - "name": "entity.name.label.js.jsx" - }, - "2": { - "name": "punctuation.separator.label.js.jsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#decl-block" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.js.jsx" - }, - "2": { - "name": "punctuation.separator.label.js.jsx" - } - } - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "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" - } - ] - }, - "expressionPunctuations": { - "patterns": [ - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "decorator": { - "name": "meta.decorator.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", - "beginCaptures": { - "0": { - "name": "punctuation.decorator.js.jsx" - } - }, - "end": "(?=\\s)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "var-expr": { - "patterns": [ - { - "name": "meta.var.expr.js.jsx", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.js.jsx" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.js.jsx" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.js.jsx", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.js.jsx" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.js.jsx" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.js.jsx" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.js.jsx", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.js.jsx" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.js.jsx" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.js.jsx" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "var-single-variable": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.js.jsx", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx entity.name.function.js.jsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.js.jsx", - "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-const": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.js.jsx", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-variable-type-annotation": { - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "destructuring-variable": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.js.jsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.js.jsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "destructuring-const": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.js.jsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.js.jsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element" - } - ] - }, - { - "include": "#object-binding-pattern" - }, - { - "include": "#destructuring-variable-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-const": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element-const" - } - ] - }, - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#destructuring-variable-rest-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-propertyName": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(:)", - "endCaptures": { - "0": { - "name": "punctuation.destructuring.js.jsx" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "variable.object.property.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "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" - } - ] - }, - "destructuring-variable-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.js.jsx" - }, - "2": { - "name": "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" - } - } - }, - "destructuring-variable-rest-const": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.js.jsx" - }, - "2": { - "name": "meta.definition.variable.js.jsx variable.other.constant.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" - } - ] - }, - "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" - } - ] - }, - "parameter-name": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "keyword.operator.rest.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx variable.language.this.js.jsx" - }, - "4": { - "name": "entity.name.function.js.jsx" - }, - "5": { - "name": "keyword.operator.optional.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", - "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" - } - } - } - ] - }, - "destructuring-parameter": { - "patterns": [ - { - "name": "meta.parameter.object-binding-pattern.js.jsx", - "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" - } - }, - "patterns": [ - { - "include": "#parameter-object-binding-element" - } - ] - }, - { - "name": "meta.paramter.array-binding-pattern.js.jsx", - "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" - } - }, - "patterns": [ - { - "include": "#parameter-binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "parameter-object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#parameter-binding-element" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "include": "#parameter-object-binding-pattern" - }, - { - "include": "#destructuring-parameter-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "parameter-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" - } - ] - }, - "destructuring-parameter-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.js.jsx" - }, - "2": { - "name": "variable.parameter.js.jsx" - } - } - }, - "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-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" - } - ] - }, - "field-declaration": { - "name": "meta.field.declaration.js.jsx", - "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - } - }, - "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", - "patterns": [ - { - "include": "#variable-initializer" - }, - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#comment" - }, - { - "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "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" - } - } - }, - { - "name": "meta.definition.property.js.jsx variable.object.property.js.jsx", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.js.jsx", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.js.jsx", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js.jsx" - } - }, - "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<!=|!)(=)(?!=)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js.jsx" - } - }, - "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "function-declaration": { - "name": "meta.function.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.async.js.jsx" - }, - "4": { - "name": "storage.type.function.js.jsx" - }, - "5": { - "name": "keyword.generator.asterisk.js.jsx" - }, - "6": { - "name": "meta.definition.function.js.jsx entity.name.function.js.jsx" - } - }, - "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#function-body" - } - ] - }, - "function-expression": { - "name": "meta.function.expression.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "storage.type.function.js.jsx" - }, - "3": { - "name": "keyword.generator.asterisk.js.jsx" - }, - "4": { - "name": "meta.definition.function.js.jsx entity.name.function.js.jsx" - } - }, - "end": "(?=;)|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#function-body" - } - ] - }, - "function-name": { - "name": "meta.definition.function.js.jsx entity.name.function.js.jsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - "function-body": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#return-type" - }, - { - "include": "#type-function-return-type" - }, - { - "include": "#decl-block" - }, - { - "name": "keyword.generator.asterisk.js.jsx", - "match": "\\*" - } - ] - }, - "method-declaration": { - "patterns": [ - { - "name": "meta.method.declaration.js.jsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.js.jsx" - }, - "4": { - "name": "storage.modifier.async.js.jsx" - }, - "5": { - "name": "storage.type.js.jsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.js.jsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.js.jsx" - }, - "4": { - "name": "storage.modifier.async.js.jsx" - }, - "5": { - "name": "keyword.operator.new.js.jsx" - }, - "6": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.js.jsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.js.jsx" - }, - "4": { - "name": "storage.modifier.async.js.jsx" - }, - "5": { - "name": "storage.type.property.js.jsx" - }, - "6": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.js.jsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "storage.type.property.js.jsx" - }, - "3": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "storage.type.property.js.jsx" - }, - "3": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "meta.definition.method.js.jsx entity.name.function.js.jsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.js.jsx", - "match": "\\?" - } - ] - }, - "arrow-function": { - "patterns": [ - { - "name": "meta.arrow.js.jsx", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", - "captures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "variable.parameter.js.jsx" - } - } - }, - { - "name": "meta.arrow.js.jsx", - "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.js.jsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js.jsx" - } - }, - "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.js.jsx", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "meta.brace.square.js.jsx" - }, - "3": { - "name": "variable.parameter.js.jsx" - } - }, - "end": "(\\])\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.js.jsx" - }, - "2": { - "name": "keyword.operator.optional.js.jsx" - } - }, - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - "indexer-mapped-type-declaration": { - "name": "meta.indexer.mappedtype.declaration.js.jsx", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.modifier.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "meta.brace.square.js.jsx" - }, - "4": { - "name": "entity.name.type.js.jsx" - }, - "5": { - "name": "keyword.operator.expression.in.js.jsx" - } - }, - "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.js.jsx" - }, - "2": { - "name": "keyword.operator.type.modifier.js.jsx" - }, - "3": { - "name": "keyword.operator.optional.js.jsx" - } - }, - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", - "captures": { - "1": { - "name": "keyword.control.as.js.jsx" - } - } - }, - { - "include": "#type" - } - ] - }, - "function-parameters": { - "name": "meta.parameters.js.jsx", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.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" - }, - { - "name": "punctuation.separator.parameter.js.jsx", - "match": "," - } - ] - }, - "class-declaration": { - "name": "meta.class.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.js.jsx" - }, - "4": { - "name": "storage.type.class.js.jsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-expression": { - "name": "meta.class.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "storage.type.class.js.jsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-declaration-or-expression-patterns": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.class.js.jsx" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "interface-declaration": { - "name": "meta.interface.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.js.jsx" - }, - "4": { - "name": "storage.type.interface.js.jsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.interface.js.jsx" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "class-or-interface-heritage": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "include": "#type-parameters" - }, - { - "include": "#expressionWithoutIdentifiers" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", - "captures": { - "1": { - "name": "entity.name.type.module.js.jsx" - }, - "2": { - "name": "punctuation.accessor.js.jsx" - }, - "3": { - "name": "punctuation.accessor.optional.js.jsx" - } - } - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "entity.other.inherited-class.js.jsx" - } - } - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "class-or-interface-body": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#decorator" - }, - { - "begin": "(?<=:)\\s*", - "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#method-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#field-declaration" - }, - { - "include": "#string" - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#access-modifier" - }, - { - "include": "#property-accessor" - }, - { - "include": "#async-modifier" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "access-modifier": { - "name": "storage.modifier.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "property-accessor": { - "name": "storage.type.property.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "async-modifier": { - "name": "storage.modifier.async.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "enum-declaration": { - "name": "meta.enum.declaration.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.js.jsx" - }, - "4": { - "name": "storage.type.enum.js.jsx" - }, - "5": { - "name": "entity.name.type.enum.js.jsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "0": { - "name": "variable.other.enummember.js.jsx" - } - }, - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "namespace-declaration": { - "name": "meta.namespace.declaration.js.jsx", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.namespace.js.jsx" - } - }, - "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "entity.name.type.module.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - }, - { - "include": "#punctuation-accessor" - }, - { - "include": "#decl-block" - } - ] - }, - "type-alias-declaration": { - "name": "meta.type.declaration.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.type.type.js.jsx" - }, - "4": { - "name": "entity.name.type.alias.js.jsx" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js.jsx" - }, - "2": { - "name": "keyword.control.intrinsic.js.jsx" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js.jsx" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "import-equals-declaration": { - "patterns": [ - { - "name": "meta.import-equals.external.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "keyword.control.import.js.jsx" - }, - "4": { - "name": "keyword.control.type.js.jsx" - }, - "5": { - "name": "variable.other.readwrite.alias.js.jsx" - }, - "6": { - "name": "keyword.operator.assignment.js.jsx" - }, - "7": { - "name": "keyword.control.require.js.jsx" - }, - "8": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.import-equals.internal.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "keyword.control.import.js.jsx" - }, - "4": { - "name": "keyword.control.type.js.jsx" - }, - "5": { - "name": "variable.other.readwrite.alias.js.jsx" - }, - "6": { - "name": "keyword.operator.assignment.js.jsx" - } - }, - "end": "(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.js.jsx" - }, - "2": { - "name": "punctuation.accessor.js.jsx" - }, - "3": { - "name": "punctuation.accessor.optional.js.jsx" - } - } - }, - { - "name": "variable.other.readwrite.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - } - ] - }, - "import-declaration": { - "name": "meta.import.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "keyword.control.import.js.jsx" - }, - "4": { - "name": "keyword.control.type.js.jsx" - } - }, - "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", - "end": "\\bfrom\\b", - "endCaptures": { - "0": { - "name": "keyword.control.from.js.jsx" - } - }, - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - }, - { - "include": "#import-export-declaration" - } - ] - }, - "export-declaration": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "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" - } - } - }, - { - "name": "meta.export.default.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "keyword.control.type.js.jsx" - }, - "3": { - "name": "keyword.operator.assignment.js.jsx" - }, - "4": { - "name": "keyword.control.default.js.jsx" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#interface-declaration" - }, - { - "include": "#expression" - } - ] - }, - { - "name": "meta.export.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.js.jsx" - }, - "2": { - "name": "keyword.control.type.js.jsx" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - } - ] - }, - "import-export-declaration": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#import-export-block" - }, - { - "name": "keyword.control.from.js.jsx", - "match": "\\bfrom\\b" - }, - { - "include": "#import-export-assert-clause" - }, - { - "include": "#import-export-clause" - } - ] - }, - "import-export-assert-clause": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.assert.js.jsx" - }, - "2": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "meta.object-literal.key.js.jsx", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" - }, - { - "name": "punctuation.separator.key-value.js.jsx", - "match": ":" - } - ] - }, - "import-export-block": { - "name": "meta.block.js.jsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#import-export-clause" - } - ] - }, - "import-export-clause": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", - "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" - } - } - }, - { - "include": "#punctuation-comma" - }, - { - "name": "constant.language.import-export-all.js.jsx", - "match": "\\*" - }, - { - "name": "keyword.control.default.js.jsx", - "match": "\\b(default)\\b" - }, - { - "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.control.type.js.jsx" - }, - "2": { - "name": "variable.other.readwrite.alias.js.jsx" - } - } - } - ] - }, - "switch-statement": { - "name": "switch-statement.expr.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "switch-expression.expr.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.js.jsx" - }, - "2": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "switch-block.expr.js.jsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "name": "case-clause.expr.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.js.jsx" - } - }, - "end": "(?=:)", - "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" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "meta.block.js.jsx punctuation.definition.block.js.jsx" - } - }, - "contentName": "meta.block.js.jsx", - "patterns": [ - { - "include": "#statements" - } - ] - }, - { - "match": "(:)", - "captures": { - "0": { - "name": "case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx" - } - } - }, - { - "include": "#statements" - } - ] - } - ] - }, - "for-loop": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", - "beginCaptures": { - "0": { - "name": "keyword.control.loop.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "keyword.control.loop.js.jsx", - "match": "await" - }, - { - "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" - } - ] - } - ] - }, - "if-statement": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", - "end": "(?=;|$|\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.js.jsx" - }, - "2": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "string.regexp.js.jsx", - "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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "include": "#statements" - } - ] - } - ] - }, - "decl-block": { - "name": "meta.block.js.jsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#statements" - } - ] - }, - "after-operator-block-as-object-literal": { - "name": "meta.objectliteral.js.jsx", - "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.js.jsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", - "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", - "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#numeric-literal" - } - ] - }, - { - "name": "meta.method.declaration.js.jsx", - "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.object.member.js.jsx", - "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.js.jsx" - }, - "1": { - "name": "constant.numeric.decimal.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.js.jsx" - }, - "1": { - "name": "entity.name.function.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.js.jsx" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", - "captures": { - "1": { - "name": "keyword.control.as.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.js.jsx" - }, - "2": { - "name": "keyword.control.satisfies.js.jsx" - } - }, - "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.object.member.js.jsx", - "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", - "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.js.jsx", - "begin": ":", - "beginCaptures": { - "0": { - "name": "meta.object-literal.key.js.jsx punctuation.separator.key-value.js.jsx" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\>)", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - { - "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#decl-block" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.js.jsx" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.js.jsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.js.jsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.js.jsx", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.js.jsx punctuation.accessor.optional.js.jsx", - "match": "\\?\\." - }, - { - "name": "meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.js.jsx", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" - } - ] - }, - "new-expr": { - "name": "new.expr.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.new.js.jsx" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "instanceof-expr": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.expression.instanceof.js.jsx" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#type" - } - ] - }, - "paren-expression-possibly-arrow": { - "patterns": [ - { - "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - "paren-expression-possibly-arrow-with-typeparameters": { - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "keyword.operator.rest.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx variable.language.this.js.jsx" - }, - "4": { - "name": "entity.name.function.js.jsx" - }, - "5": { - "name": "keyword.operator.optional.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", - "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" - } - } - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "name": "punctuation.separator.parameter.js.jsx", - "match": "," - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "paren-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "cast": { - "patterns": [ - { - "include": "#jsx" - } - ] - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.control.flow.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.js.jsx" - } - }, - "end": "\\*", - "endCaptures": { - "0": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", - "captures": { - "1": { - "name": "keyword.control.flow.js.jsx" - }, - "2": { - "name": "keyword.generator.asterisk.js.jsx" - } - } - }, - { - "name": "keyword.operator.expression.delete.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.in.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.of.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.instanceof.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.new.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#typeof-operator" - }, - { - "name": "keyword.operator.expression.void.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", - "captures": { - "1": { - "name": "keyword.control.as.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - } - } - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.js.jsx" - }, - "2": { - "name": "keyword.control.satisfies.js.jsx" - } - }, - "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "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", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.logical.js.jsx" - }, - "2": { - "name": "keyword.operator.assignment.compound.js.jsx" - }, - "3": { - "name": "keyword.operator.arithmetic.js.jsx" - } - } - }, - { - "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", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", - "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", - "endCaptures": { - "1": { - "name": "keyword.operator.assignment.compound.js.jsx" - }, - "2": { - "name": "keyword.operator.arithmetic.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.assignment.compound.js.jsx" - }, - "2": { - "name": "keyword.operator.arithmetic.js.jsx" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.operator.expression.typeof.js.jsx" - } - }, - "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type-arguments" - }, - { - "include": "#expression" - } - ] - }, - "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" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.js.jsx", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.js.jsx" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.js.jsx", - "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.js.jsx" - } - } - }, - { - "name": "constant.numeric.binary.js.jsx", - "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.js.jsx" - } - } - }, - { - "name": "constant.numeric.octal.js.jsx", - "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.js.jsx" - } - } - }, - { - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", - "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" - } - } - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.boolean.false.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "null-literal": { - "name": "constant.language.null.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "this-literal": { - "name": "variable.language.this.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" - }, - "super-literal": { - "name": "variable.language.super.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" - }, - "undefined-literal": { - "name": "constant.language.undefined.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "numericConstant-literal": { - "patterns": [ - { - "name": "constant.language.nan.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.infinity.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "support-objects": { - "patterns": [ - { - "name": "variable.language.arguments.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" - }, - { - "name": "support.class.promise.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", - "captures": { - "1": { - "name": "keyword.control.import.js.jsx" - }, - "2": { - "name": "punctuation.accessor.js.jsx" - }, - "3": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "4": { - "name": "support.variable.property.importmeta.js.jsx" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\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": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\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": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\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" - } - } - } - ] - }, - "identifiers": { - "patterns": [ - { - "include": "#object-identifiers" - }, - { - "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "variable.other.constant.property.js.jsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "variable.other.property.js.jsx" - } - } - }, - { - "name": "variable.other.constant.js.jsx", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.js.jsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "variable.other.constant.object.property.js.jsx" - }, - "4": { - "name": "variable.other.object.property.js.jsx" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.js.jsx" - }, - "2": { - "name": "variable.other.object.js.jsx" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js.jsx", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.js.jsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js.jsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.js.jsx", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?<![:|&])(?=$|^|[{};,]|//)", - "patterns": [ - { - "include": "#return-type-core" - } - ] - }, - { - "name": "meta.return.type.js.jsx", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#return-type-core" - } - ] - } - ] - }, - "return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<=[:|&])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "arrow-return-type": { - "name": "meta.return.type.arrow.js.jsx", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "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" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.js.jsx 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" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.js.jsx", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "name": "keyword.operator.assignment.js.jsx", - "match": "(=)(?!>)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.js.jsx", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "0": { - "name": "keyword.operator.type.js.jsx" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "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" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - } - } - }, - { - "include": "#type-name" - } - ] - }, - "type-primitive": { - "name": "support.type.primitive.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-builtin-literals": { - "name": "support.type.builtin.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-tuple": { - "name": "meta.type.tuple.js.jsx", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "meta.brace.square.js.jsx" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.js.jsx" - } - }, - "patterns": [ - { - "name": "keyword.operator.rest.js.jsx", - "match": "\\.\\.\\." - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.js.jsx" - }, - "2": { - "name": "keyword.operator.optional.js.jsx" - }, - "3": { - "name": "punctuation.separator.label.js.jsx" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-object": { - "name": "meta.object.type.js.jsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.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-conditional": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - } - }, - "end": "(?<=:)", - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.js.jsx" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.js.jsx" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#type" - } - ] - } - ] - }, - "type-paren-or-function-parameters": { - "name": "meta.type.paren.cover.js.jsx", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\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": "entity.name.function.js.jsx variable.language.this.js.jsx" - }, - "4": { - "name": "entity.name.function.js.jsx" - }, - "5": { - "name": "keyword.operator.optional.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", - "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" - } - } - }, - { - "include": "#type-annotation" - }, - { - "name": "punctuation.separator.parameter.js.jsx", - "match": "," - }, - { - "include": "#type" - } - ] - }, - "type-fn-type-parameters": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", - "beginCaptures": { - "1": { - "name": "meta.type.constructor.js.jsx storage.modifier.js.jsx" - }, - "2": { - "name": "meta.type.constructor.js.jsx keyword.control.new.js.jsx" - } - }, - "end": "(?<=>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.js.jsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "keyword.control.new.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "name": "meta.type.function.js.jsx", - "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.js.jsx", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.js.jsx" - } - }, - "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.js.jsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js.jsx" - } - }, - "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "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-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)" - }, - { - "name": "keyword.operator.expression.keyof.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.ternary.js.jsx", - "match": "(\\?|\\:)" - }, - { - "name": "keyword.operator.expression.import.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" - } - ] - }, - "type-infer": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", - "name": "meta.type.infer.js.jsx", - "captures": { - "1": { - "name": "keyword.operator.expression.infer.js.jsx" - }, - "2": { - "name": "entity.name.type.js.jsx" - }, - "3": { - "name": "keyword.operator.expression.extends.js.jsx" - } - } - } - ] - }, - "type-predicate-operator": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.js.jsx" - }, - "2": { - "name": "variable.parameter.js.jsx variable.language.this.js.jsx" - }, - "3": { - "name": "variable.parameter.js.jsx" - }, - "4": { - "name": "keyword.operator.expression.is.js.jsx" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.js.jsx" - }, - "2": { - "name": "variable.parameter.js.jsx variable.language.this.js.jsx" - }, - "3": { - "name": "variable.parameter.js.jsx" - } - } - }, - { - "name": "keyword.operator.type.asserts.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.is.js.jsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "type-name": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", - "captures": { - "1": { - "name": "entity.name.type.module.js.jsx" - }, - "2": { - "name": "punctuation.accessor.js.jsx" - }, - "3": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "4": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" - } - }, - "contentName": "meta.type.parameters.js.jsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.js.jsx" - }, - "2": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" - } - }, - "contentName": "meta.type.parameters.js.jsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.js.jsx" - }, - "2": { - "name": "punctuation.accessor.js.jsx" - }, - "3": { - "name": "punctuation.accessor.optional.js.jsx" - } - } - }, - { - "name": "entity.name.type.js.jsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.js.jsx", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.js.jsx", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.js.jsx", - "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" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.js.jsx", - "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" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.js.jsx", - "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]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js.jsx" - }, - "2": { - "name": "string.template.js.jsx punctuation.definition.string.template.begin.js.jsx" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "string.template.js.jsx punctuation.definition.string.template.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js.jsx" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.js.jsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.js.jsx" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js.jsx" - }, - "2": { - "name": "string.template.js.jsx punctuation.definition.string.template.begin.js.jsx" - } - }, - "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": { - "name": "meta.template.expression.js.jsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.js.jsx" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.js.jsx", - "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js.jsx" - }, - "2": { - "name": "keyword.other.js.jsx" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.js.jsx", - "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js.jsx" - }, - "2": { - "name": "keyword.other.js.jsx" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - } - ] - }, - "regexp": { - "patterns": [ - { - "name": "keyword.control.anchor.regexp", - "match": "\\\\[bB]|\\^|\\$" - }, - { - "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "meta.group.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.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" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.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])|(\\\\.))", - "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" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.js.jsx", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js.jsx" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js.jsx" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.js.jsx", - "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" - } - } - }, - { - "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" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.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" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.js.jsx" - }, - "directives": { - "name": "comment.line.triple-slash.directive.js.jsx", - "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": "(?=$)", - "patterns": [ - { - "name": "meta.tag.js.jsx", - "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" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.js.jsx", - "match": "path|types|no-default-lib|lib|name|resolution-mode" - }, - { - "name": "keyword.operator.assignment.js.jsx", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", - "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" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "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" - } - }, - "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" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.js.jsx" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "(?x)((@)template)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "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" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "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" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "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" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "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" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.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" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.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-tag-without-attributes-in-expression": { - "begin": "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - } - ] - }, - "jsx-tag-without-attributes": { - "name": "meta.tag.without-attributes.js.jsx", - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", - "end": "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "2": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "3": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "4": { - "name": "entity.name.tag.js.jsx" - }, - "5": { - "name": "support.class.component.js.jsx" - }, - "6": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "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" - } - }, - "contentName": "meta.jsx.children.js.jsx", - "patterns": [ - { - "include": "#jsx-children" - } - ] - }, - "jsx-tag-in-expression": { - "begin": "(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "patterns": [ - { - "include": "#jsx-tag" - } - ] - }, - "jsx-tag": { - "name": "meta.tag.js.jsx", - "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "end": "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js.jsx" - }, - "2": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "3": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "4": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "5": { - "name": "entity.name.tag.js.jsx" - }, - "6": { - "name": "support.class.component.js.jsx" - }, - "7": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "patterns": [ - { - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "2": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "3": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "4": { - "name": "entity.name.tag.js.jsx" - }, - "5": { - "name": "support.class.component.js.jsx" - } - }, - "end": "(?=[/]?>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-arguments" - }, - { - "include": "#jsx-tag-attributes" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "end": "(?=</)", - "contentName": "meta.jsx.children.js.jsx", - "patterns": [ - { - "include": "#jsx-children" - } - ] - } - ] - }, - "jsx-children": { - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - }, - { - "include": "#jsx-tag" - }, - { - "include": "#jsx-evaluated-code" - }, - { - "include": "#jsx-entities" - } - ] - }, - "jsx-evaluated-code": { - "contentName": "meta.embedded.expression.js.jsx", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.js.jsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "jsx-entities": { - "patterns": [ - { - "name": "constant.character.entity.js.jsx", - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "captures": { - "1": { - "name": "punctuation.definition.entity.js.jsx" - }, - "3": { - "name": "punctuation.definition.entity.js.jsx" - } - } - } - ] - }, - "jsx-tag-attributes": { - "name": "meta.tag.attributes.js.jsx", - "begin": "\\s+", - "end": "(?=[/]?>)", - "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-attribute-name": { - "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", - "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" - } - } - }, - "jsx-tag-attribute-assignment": { - "name": "keyword.operator.assignment.js.jsx", - "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" - }, - "jsx-string-double-quoted": { - "name": "string.quoted.double.js.jsx", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-string-single-quoted": { - "name": "string.quoted.single.js.jsx", - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-tag-attributes-illegal": { - "name": "invalid.illegal.attribute.js.jsx", - "match": "\\S+" - } - } -} diff --git a/lib/grammars/julia.tmLanguage.json b/lib/grammars/julia.tmLanguage.json deleted file mode 100644 index 32a91bf..0000000 --- a/lib/grammars/julia.tmLanguage.json +++ /dev/null @@ -1,983 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/JuliaEditorSupport/atom-language-julia/blob/master/grammars/julia_vscode.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/JuliaEditorSupport/atom-language-julia/commit/ccc0277c9ee9af34a0b50e5fa27a6f5191601b8c", - "name": "julia", - "scopeName": "source.julia", - "comment": "This grammar is used by Atom (Oniguruma), GitHub (PCRE), and VSCode (Oniguruma),\nso all regexps must be compatible with both engines.\n\nSpecs:\n- https://github.com/kkos/oniguruma/blob/master/doc/RE\n- https://www.pcre.org/current/doc/html/", - "patterns": [ - { - "include": "#operator" - }, - { - "include": "#array" - }, - { - "include": "#string" - }, - { - "include": "#parentheses" - }, - { - "include": "#bracket" - }, - { - "include": "#function_decl" - }, - { - "include": "#function_call" - }, - { - "include": "#keyword" - }, - { - "include": "#number" - }, - { - "include": "#comment" - }, - { - "include": "#type_decl" - }, - { - "include": "#symbol" - } - ], - "repository": { - "array": { - "patterns": [ - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "meta.bracket.julia" - } - }, - "end": "(\\])((?:\\.)?'*)", - "endCaptures": { - "1": { - "name": "meta.bracket.julia" - }, - "2": { - "name": "keyword.operator.transpose.julia" - } - }, - "name": "meta.array.julia", - "patterns": [ - { - "match": "\\bbegin\\b", - "name": "constant.numeric.julia" - }, - { - "match": "\\bend\\b", - "name": "constant.numeric.julia" - }, - { - "match": "\\bfor\\b", - "name": "keyword.control.julia" - }, - { - "include": "$self" - } - ] - } - ] - }, - "parentheses": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.bracket.julia" - } - }, - "end": "(\\))((?:\\.)?'*)", - "endCaptures": { - "1": { - "name": "meta.bracket.julia" - }, - "2": { - "name": "keyword.operator.transpose.julia" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "bracket": { - "patterns": [ - { - "match": "(?:\\(|\\)|\\[|\\]|\\{|\\}|,|;)(?!('|(?:\\.'))*\\.?')", - "name": "meta.bracket.julia" - } - ] - }, - "comment_tags": { - "patterns": [ - { - "match": "\\bTODO\\b", - "name": "keyword.other.comment-annotation.julia" - }, - { - "match": "\\bFIXME\\b", - "name": "keyword.other.comment-annotation.julia" - }, - { - "match": "\\bCHANGED\\b", - "name": "keyword.other.comment-annotation.julia" - }, - { - "match": "\\bXXX\\b", - "name": "keyword.other.comment-annotation.julia" - } - ] - }, - "comment": { - "patterns": [ - { - "include": "#comment_block" - }, - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.julia" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.julia", - "patterns": [ - { - "include": "#comment_tags" - } - ] - } - ] - }, - "comment_block": { - "patterns": [ - { - "begin": "#=", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.julia" - } - }, - "end": "=#", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.julia" - } - }, - "name": "comment.block.number-sign-equals.julia", - "patterns": [ - { - "include": "#comment_tags" - }, - { - "include": "#comment_block" - } - ] - } - ] - }, - "function_call": { - "patterns": [ - { - "begin": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(\\()", - "beginCaptures": { - "1": { - "name": "support.function.julia" - }, - "2": { - "name": "support.type.julia" - }, - "3": { - "name": "meta.bracket.julia" - } - }, - "end": "\\)(('|(\\.'))*\\.?')?", - "endCaptures": { - "0": { - "name": "meta.bracket.julia" - }, - "1": { - "name": "keyword.operator.transposed-func.julia" - } - }, - "patterns": [ - { - "match": "\\bfor\\b", - "name": "keyword.control.julia" - }, - { - "include": "$self" - } - ] - } - ] - }, - "function_decl": { - "patterns": [ - { - "captures": { - "1": { - "name": "entity.name.function.julia" - }, - "2": { - "name": "support.type.julia" - } - }, - "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\([^#]*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s+.+?)?\\s*?=(?![=>]))", - "comment": "first group is function name\nSecond group is type parameters (e.g. {T<:Number, S})\nThen open parens\nThen a lookahead ensures that we are followed by:\n - anything (function argumnets)\n - 0 or more spaces\n - Finally an equal sign\nNegative lookahead ensures we don't have another equal sign (not `==`)" - }, - { - "captures": { - "1": { - "name": "keyword.other.julia" - }, - "2": { - "name": "keyword.operator.dots.julia" - }, - "3": { - "name": "entity.name.function.julia" - }, - "4": { - "name": "support.type.julia" - } - }, - "match": "\\b(function|macro)(?:\\s+(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(\\.))?((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()", - "comment": "similar regex to previous, but with keyword not 1-line syntax" - } - ] - }, - "keyword": { - "patterns": [ - { - "match": "\\b(?<![:_\\.])(?:function|mutable\\s+struct|struct|macro|quote|abstract\\s+type|primitive\\s+type|module|baremodule|where)\\b", - "name": "keyword.other.julia" - }, - { - "comment": "special case for blocks to support tokenizing outer properly", - "begin": "\\b(for)\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.julia" - } - }, - "end": "(?<!,|\\s)(\\s*\\n)", - "patterns": [ - { - "match": "\\bouter\\b", - "name": "keyword.other.julia" - }, - { - "include": "$self" - } - ] - }, - { - "match": "\\b(?<![:_])(?:if|else|elseif|while|begin|let|do|try|catch|finally|return|break|continue)\\b", - "name": "keyword.control.julia" - }, - { - "match": "\\b(?<![:_])end\\b", - "name": "keyword.control.end.julia" - }, - { - "match": "\\b(?<![:_])(?:global|local|const)\\b", - "name": "keyword.storage.modifier.julia" - }, - { - "match": "\\b(?<![:_])(?:export)\\b", - "name": "keyword.control.export.julia" - }, - { - "match": "\\b(?<![:_])(?:import)\\b", - "name": "keyword.control.import.julia" - }, - { - "match": "\\b(?<![:_])(?:using)\\b", - "name": "keyword.control.using.julia" - }, - { - "match": "(?<=\\w\\s)\\b(as)\\b(?=\\s\\w)", - "name": "keyword.control.as.julia" - }, - { - "match": "(@(\\.|(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*))", - "name": "support.function.macro.julia" - } - ] - }, - "number": { - "patterns": [ - { - "match": "((?<!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))(?:(?:\\b0(?:x|X)[0-9a-fA-F](?:_?[0-9a-fA-F])*)|(?:\\b0o[0-7](?:_?[0-7])*)|(?:\\b0b[0-1](?:_?[0-1])*)|(?:(?:\\b[0-9](?:_?[0-9])*\\.?(?!\\.)(?:[_0-9]*))|(?:\\b\\.[0-9](?:_?[0-9])*))(?:[efE][+-]?[0-9](?:_?[0-9])*)?(?:im\\b|Inf(?:16|32|64)?\\b|NaN(?:16|32|64)?\\b|π\\b|pi\\b|ℯ\\b)?|\\b[0-9]+|\\bInf(?:16|32|64)?\\b|\\bNaN(?:16|32|64)?\\b|\\bπ\\b|\\bpi\\b|\\bℯ\\b))('*)", - "captures": { - "1": { - "name": "constant.numeric.julia" - }, - "2": { - "name": "keyword.operator.conjugate-number.julia" - } - } - }, - { - "match": "\\bARGS\\b|\\bC_NULL\\b|\\bDEPOT_PATH\\b|\\bENDIAN_BOM\\b|\\bENV\\b|\\bLOAD_PATH\\b|\\bPROGRAM_FILE\\b|\\bstdin\\b|\\bstdout\\b|\\bstderr\\b|\\bVERSION\\b|\\bdevnull\\b", - "name": "constant.global.julia" - }, - { - "match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b|\\bmissing\\b", - "name": "constant.language.julia" - } - ] - }, - "operator": { - "patterns": [ - { - "match": "(?:->|<-|-->|=>)", - "name": "keyword.operator.arrow.julia" - }, - { - "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))", - "name": "keyword.operator.update.julia" - }, - { - "match": "(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)", - "name": "keyword.operator.shift.julia" - }, - { - "match": "(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?<!\\\\)\"))?)))(?:\\.\\.\\.)?", - "captures": { - "1": { - "name": "keyword.operator.relation.types.julia" - }, - "2": { - "name": "support.type.julia" - } - } - }, - { - "match": "(?:===|∈|\\.∈|∉|\\.∉|∋|\\.∋|∌|\\.∌|≈|\\.≈|≉|\\.≉|≠|\\.≠|≡|\\.≡|≢|\\.≢|⊆|\\.⊆|⊇|\\.⊇|⊈|\\.⊈|⊉|\\.⊉|⊊|\\.⊊|⊋|\\.⊋|\\.==|!==|!=|\\.>=|\\.>|\\.<=|\\.<|\\.≤|\\.≥|==|\\.!=|\\.=|\\.!|<:|>:|:>|(?<!>)>=|(?<!<)<=|>|<|≥|≤)", - "name": "keyword.operator.relation.julia" - }, - { - "match": "(?<=\\s)(?:\\?)(?=\\s)", - "name": "keyword.operator.ternary.julia" - }, - { - "match": "(?<=\\s)(?:\\:)(?=\\s)", - "name": "keyword.operator.ternary.julia" - }, - { - "match": "(?:\\|\\||&&|(?<!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))!)", - "name": "keyword.operator.boolean.julia" - }, - { - "match": "(?<=[[:word:]⁺-ₜ!′∇\\)\\]\\}])(?::)", - "name": "keyword.operator.range.julia" - }, - { - "match": "(?:\\|>)", - "name": "keyword.operator.applies.julia" - }, - { - "match": "(?:\\||\\.\\||\\&|\\.\\&|~|\\.~|⊻|\\.⊻)", - "name": "keyword.operator.bitwise.julia" - }, - { - "match": "(?:\\+\\+|--|\\+|\\.\\+|-|\\.\\-|\\*|\\.\\*|//(?!=)|\\.//(?!=)|/|\\./|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^|÷|\\.÷|⋅|\\.⋅|∩|\\.∩|∪|\\.∪|×|√|∛)", - "name": "keyword.operator.arithmetic.julia" - }, - { - "match": "(?:∘)", - "name": "keyword.operator.compose.julia" - }, - { - "match": "(?:::|(?<=\\s)isa(?=\\s))", - "name": "keyword.operator.isa.julia" - }, - { - "match": "(?:(?<=\\s)in(?=\\s))", - "name": "keyword.operator.relation.in.julia" - }, - { - "match": "(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+)", - "name": "keyword.operator.dots.julia" - }, - { - "match": "(?:\\$)(?=.+)", - "name": "keyword.operator.interpolation.julia" - }, - { - "captures": { - "2": { - "name": "keyword.operator.transposed-variable.julia" - } - }, - "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')" - }, - { - "captures": { - "1": { - "name": "bracket.end.julia" - }, - "2": { - "name": "keyword.operator.transposed-matrix.julia" - } - }, - "match": "(\\])((?:'|(?:\\.'))*\\.?')" - }, - { - "captures": { - "1": { - "name": "bracket.end.julia" - }, - "2": { - "name": "keyword.operator.transposed-parens.julia" - } - }, - "match": "(\\))((?:'|(?:\\.'))*\\.?')" - } - ] - }, - "string": { - "patterns": [ - { - "begin": "(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "(\"\"\") ?(->)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.julia" - }, - "2": { - "name": "keyword.operator.arrow.julia" - } - }, - "name": "string.docstring.julia", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "(i?cxx)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "embed.cxx.julia", - "contentName": "meta.embedded.inline.cpp", - "patterns": [ - { - "include": "source.cpp#root_context" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "(py)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "([\\s\\w]*)(\"\"\")", - "endCaptures": { - "2": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "embed.python.julia", - "contentName": "meta.embedded.inline.python", - "patterns": [ - { - "include": "source.python" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "(js)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "embed.js.julia", - "contentName": "meta.embedded.inline.javascript", - "patterns": [ - { - "include": "source.js" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "(R)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "embed.R.julia", - "contentName": "meta.embedded.inline.r", - "patterns": [ - { - "include": "source.r" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "(raw)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"\"\"", - "name": "string.quoted.other.julia", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - } - }, - { - "begin": "(raw)(\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"", - "name": "string.quoted.other.julia", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - } - }, - { - "begin": "(sql)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "embed.sql.julia", - "contentName": "meta.embedded.inline.sql", - "patterns": [ - { - "include": "source.sql" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "var\"\"\"", - "end": "\"\"\"", - "name": "constant.other.symbol.julia" - }, - { - "begin": "var\"", - "end": "\"", - "name": "constant.other.symbol.julia" - }, - { - "begin": "^\\s?(doc)?(\"\"\")\\s?$", - "beginCaptures": { - "1": { - "name": "support.function.macro.julia" - }, - "2": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "(\"\"\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "string.docstring.julia", - "comment": "This only matches docstrings that start and end with triple quotes on\ntheir own line in the void", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "'(?!')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - }, - "name": "string.quoted.single.julia", - "patterns": [ - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.multiline.begin.julia" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.multiline.end.julia" - } - }, - "name": "string.quoted.triple.double.julia", - "comment": "multi-line string with triple double quotes", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "name": "string.quoted.double.julia", - "begin": "\"(?!\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.julia" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.julia" - } - }, - "comment": "String with single pair of double quotes. Regex matches isolated double quote", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "r\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.begin.julia" - } - }, - "end": "(\"\"\")([imsx]{0,4})?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.regexp.end.julia" - }, - "2": { - "comment": "I took this scope name from python regex grammar", - "name": "keyword.other.option-toggle.regexp.julia" - } - }, - "name": "string.regexp.julia", - "patterns": [ - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "r\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.begin.julia" - } - }, - "end": "(\")([imsx]{0,4})?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.regexp.end.julia" - }, - "2": { - "comment": "I took this scope name from python regex grammar", - "name": "keyword.other.option-toggle.regexp.julia" - } - }, - "name": "string.regexp.julia", - "patterns": [ - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "(?<!\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.julia" - }, - "1": { - "name": "support.function.macro.julia" - } - }, - "end": "(\"\"\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.julia" - }, - "2": { - "name": "support.function.macro.julia" - } - }, - "name": "string.quoted.other.julia", - "patterns": [ - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "(?<!\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.julia" - }, - "1": { - "name": "support.function.macro.julia" - } - }, - "end": "(?<![^\\\\]\\\\)(\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.julia" - }, - "2": { - "name": "support.function.macro.julia" - } - }, - "name": "string.quoted.other.julia", - "patterns": [ - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "(?<!`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?```", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.julia" - }, - "1": { - "name": "support.function.macro.julia" - } - }, - "end": "(```)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.julia" - }, - "2": { - "name": "support.function.macro.julia" - } - }, - "name": "string.interpolated.backtick.julia", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - }, - { - "begin": "(?<!`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.julia" - }, - "1": { - "name": "support.function.macro.julia" - } - }, - "end": "(?<![^\\\\]\\\\)(`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.julia" - }, - "2": { - "name": "support.function.macro.julia" - } - }, - "name": "string.interpolated.backtick.julia", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_dollar_sign_interpolate" - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "\\\\(\\\\|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)", - "name": "constant.character.escape.julia" - } - ] - }, - "string_dollar_sign_interpolate": { - "patterns": [ - { - "match": "\\$(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*", - "name": "variable.interpolation.julia" - }, - { - "begin": "\\$\\(", - "end": "\\)", - "name": "variable.interpolation.julia", - "comment": "`punctuation.section.embedded`, `constant.escape`,\n& `meta.embedded.line` were considered but appear to have even spottier\nsupport among popular syntaxes.", - "patterns": [ - { - "match": "\\bfor\\b", - "name": "keyword.control.julia" - }, - { - "include": "#parentheses" - }, - { - "include": "$self" - } - ] - } - ] - }, - "symbol": { - "patterns": [ - { - "match": "(?<![[:word:]⁺-ₜ!′∇\\)\\]\\}]):(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(?!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))(?![\"`])", - "name": "constant.other.symbol.julia", - "comment": "This is string.quoted.symbol.julia in tpoisot's package" - } - ] - }, - "type_decl": { - "patterns": [ - { - "captures": { - "1": { - "name": "entity.name.type.julia" - }, - "2": { - "name": "entity.other.inherited-class.julia" - }, - "3": { - "name": "punctuation.separator.inheritance.julia" - } - }, - "match": "(?>!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?", - "name": "meta.type.julia" - } - ] - } - } -} diff --git a/lib/grammars/kotlin.tmLanguage.json b/lib/grammars/kotlin.tmLanguage.json deleted file mode 100644 index ab90ed9..0000000 --- a/lib/grammars/kotlin.tmLanguage.json +++ /dev/null @@ -1,566 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "kotlin", - "scopeName": "source.kotlin", - "patterns": [ - { - "include": "#import" - }, - { - "include": "#package" - }, - { - "include": "#code" - } - ], - "fileTypes": ["kt", "kts"], - "repository": { - "import": { - "begin": "\\b(import)\\b\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.import.kotlin" - } - }, - "end": ";|$", - "name": "meta.import.kotlin", - "contentName": "entity.name.package.kotlin", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#hard-keywords" - }, - { - "match": "\\*", - "name": "variable.language.wildcard.kotlin" - } - ] - }, - "package": { - "begin": "\\b(package)\\b\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.package.kotlin" - } - }, - "end": ";|$", - "name": "meta.package.kotlin", - "contentName": "entity.name.package.kotlin", - "patterns": [ - { - "include": "#comments" - } - ] - }, - "code": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#annotation-simple" - }, - { - "include": "#annotation-site-list" - }, - { - "include": "#annotation-site" - }, - { - "include": "#class-declaration" - }, - { - "include": "#object-declaration" - }, - { - "include": "#type-alias" - }, - { - "include": "#function-declaration" - }, - { - "include": "#variable-declaration" - }, - { - "include": "#type-constraint" - }, - { - "include": "#type-annotation" - }, - { - "include": "#function-call" - }, - { - "include": "#method-reference" - }, - { - "include": "#key" - }, - { - "include": "#string" - }, - { - "include": "#string-empty" - }, - { - "include": "#string-multiline" - }, - { - "include": "#character" - }, - { - "include": "#lambda-arrow" - }, - { - "include": "#operators" - }, - { - "include": "#self-reference" - }, - { - "include": "#decimal-literal" - }, - { - "include": "#hex-literal" - }, - { - "include": "#binary-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - } - ] - }, - "comments": { - "patterns": [ - { - "include": "#comment-line" - }, - { - "include": "#comment-block" - }, - { - "include": "#comment-javadoc" - } - ] - }, - "comment-line": { - "begin": "//", - "end": "$", - "name": "comment.line.double-slash.kotlin" - }, - "comment-block": { - "begin": "/\\*(?!\\*)", - "end": "\\*/", - "name": "comment.block.kotlin" - }, - "comment-javadoc": { - "patterns": [ - { - "begin": "/\\*\\*", - "end": "\\*/", - "name": "comment.block.javadoc.kotlin", - "patterns": [ - { - "match": "@(author|deprecated|return|see|serial|since|version)\\b", - "name": "keyword.other.documentation.javadoc.kotlin" - }, - { - "match": "(@param)\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.kotlin" - }, - "2": { - "name": "variable.parameter.kotlin" - } - } - }, - { - "match": "(@(?:exception|throws))\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.kotlin" - }, - "2": { - "name": "entity.name.type.class.kotlin" - } - } - }, - { - "match": "{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*}", - "captures": { - "1": { - "name": "keyword.other.documentation.javadoc.kotlin" - }, - "2": { - "name": "entity.name.type.class.kotlin" - }, - "3": { - "name": "variable.parameter.kotlin" - } - } - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "include": "#prefix-modifiers" - }, - { - "include": "#postfix-modifiers" - }, - { - "include": "#soft-keywords" - }, - { - "include": "#hard-keywords" - }, - { - "include": "#control-keywords" - } - ] - }, - "prefix-modifiers": { - "match": "\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\b", - "name": "storage.modifier.other.kotlin" - }, - "postfix-modifiers": { - "match": "\\b(where|by|get|set)\\b", - "name": "storage.modifier.other.kotlin" - }, - "soft-keywords": { - "match": "\\b(catch|finally|field)\\b", - "name": "keyword.soft.kotlin" - }, - "hard-keywords": { - "match": "\\b(as|typeof|is|in)\\b", - "name": "keyword.hard.kotlin" - }, - "control-keywords": { - "match": "\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\b", - "name": "keyword.control.kotlin" - }, - "annotation-simple": { - "match": "(?<!\\w)@[\\w\\.]+\\b(?!:)", - "name": "entity.name.type.annotation.kotlin" - }, - "annotation-site-list": { - "begin": "(?<!\\w)(@\\w+):\\s*\\[", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "entity.name.type.annotation-site.kotlin" - } - }, - "patterns": [ - { - "include": "#unescaped-annotation" - } - ] - }, - "annotation-site": { - "begin": "(?<!\\w)(@\\w+):\\s*(?!\\[)", - "end": "$", - "beginCaptures": { - "1": { - "name": "entity.name.type.annotation-site.kotlin" - } - }, - "patterns": [ - { - "include": "#unescaped-annotation" - } - ] - }, - "unescaped-annotation": { - "match": "\\b[\\w\\.]+\\b", - "name": "entity.name.type.annotation.kotlin" - }, - "class-declaration": { - "match": "\\b(class|interface)\\s+(\\b\\w+\\b|`[^`]+`)\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?", - "captures": { - "1": { - "name": "storage.type.class.kotlin" - }, - "2": { - "name": "entity.name.type.class.kotlin" - }, - "3": { - "patterns": [ - { - "include": "#type-parameter" - } - ] - } - } - }, - "object-declaration": { - "match": "\\b(object)\\s+(\\b\\w+\\b|`[^`]+`)", - "captures": { - "1": { - "name": "storage.type.object.kotlin" - }, - "2": { - "name": "entity.name.type.object.kotlin" - } - } - }, - "type-alias": { - "match": "\\b(typealias)\\s+(\\b\\w+\\b|`[^`]+`)\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?", - "captures": { - "1": { - "name": "storage.type.alias.kotlin" - }, - "2": { - "name": "entity.name.type.kotlin" - }, - "3": { - "patterns": [ - { - "include": "#type-parameter" - } - ] - } - } - }, - "function-declaration": { - "match": "\\b(fun)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?\\s*(?:(\\w+)\\.)?(\\b\\w+\\b|`[^`]+`)", - "captures": { - "1": { - "name": "storage.type.function.kotlin" - }, - "2": { - "patterns": [ - { - "include": "#type-parameter" - } - ] - }, - "4": { - "name": "entity.name.type.class.extension.kotlin" - }, - "5": { - "name": "entity.name.function.declaration.kotlin" - } - } - }, - "variable-declaration": { - "match": "\\b(val|var)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?", - "captures": { - "1": { - "name": "storage.type.variable.kotlin" - }, - "2": { - "patterns": [ - { - "include": "#type-parameter" - } - ] - } - } - }, - "type-parameter": { - "patterns": [ - { - "match": "\\b\\w+\\b", - "name": "entity.name.type.kotlin" - }, - { - "match": "\\b(in|out)\\b", - "name": "storage.modifier.kotlin" - } - ] - }, - "type-annotation": { - "match": "(?<![:?]):\\s*(\\w|\\?|\\s|->|(?<GROUP>[<(]([^<>()\"']|\\g<GROUP>)+[)>]))+", - "captures": { - "0": { - "patterns": [ - { - "include": "#type-parameter" - } - ] - } - } - }, - "function-call": { - "match": "\\??\\.?(\\b\\w+\\b|`[^`]+`)\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?\\s*(?=[({])", - "captures": { - "1": { - "name": "entity.name.function.call.kotlin" - }, - "2": { - "patterns": [ - { - "include": "#type-parameter" - } - ] - } - } - }, - "method-reference": { - "match": "\\??::(\\b\\w+\\b|`[^`]+`)", - "captures": { - "1": { - "name": "entity.name.function.reference.kotlin" - } - } - }, - "key": { - "match": "\\b(\\w=)\\s*(=)", - "captures": { - "1": { - "name": "variable.parameter.kotlin" - }, - "2": { - "name": "keyword.operator.assignment.kotlin" - } - } - }, - "string-empty": { - "match": "(?<!\")\"\"(?!\")", - "name": "string.quoted.double.kotlin" - }, - "string": { - "begin": "(?<!\")\"(?!\")", - "end": "\"", - "name": "string.quoted.double.kotlin", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.kotlin" - }, - { - "include": "#string-escape-simple" - }, - { - "include": "#string-escape-bracketed" - } - ] - }, - "string-multiline": { - "begin": "\"\"\"", - "end": "\"\"\"", - "name": "string.quoted.double.kotlin", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.kotlin" - }, - { - "include": "#string-escape-simple" - }, - { - "include": "#string-escape-bracketed" - } - ] - }, - "string-escape-simple": { - "match": "(?<!\\\\)\\$\\w+\\b", - "name": "variable.string-escape.kotlin" - }, - "string-escape-bracketed": { - "begin": "(?<!\\\\)(\\$\\{)", - "end": "(\\})", - "name": "meta.template.expression.kotlin", - "beginCaptures": { - "1": { - "name": "punctuation.definition.template-expression.begin" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.template-expression.end" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - }, - "character": { - "begin": "'", - "end": "'", - "name": "string.quoted.single.kotlin", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.kotlin" - } - ] - }, - "decimal-literal": { - "match": "\\b\\d[\\d_]*(\\.[\\d_]+)?((e|E)\\d+)?(u|U)?(L|F|f)?\\b", - "name": "constant.numeric.decimal.kotlin" - }, - "hex-literal": { - "match": "0(x|X)[A-Fa-f0-9][A-Fa-f0-9_]*(u|U)?", - "name": "constant.numeric.hex.kotlin" - }, - "binary-literal": { - "match": "0(b|B)[01][01_]*", - "name": "constant.numeric.binary.kotlin" - }, - "boolean-literal": { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.kotlin" - }, - "null-literal": { - "match": "\\bnull\\b", - "name": "constant.language.null.kotlin" - }, - "lambda-arrow": { - "match": "->", - "name": "storage.type.function.arrow.kotlin" - }, - "operators": { - "patterns": [ - { - "match": "(===?|\\!==?|<=|>=|<|>)", - "name": "keyword.operator.comparison.kotlin" - }, - { - "match": "([+*/%-]=)", - "name": "keyword.operator.assignment.arithmetic.kotlin" - }, - { - "match": "(=)", - "name": "keyword.operator.assignment.kotlin" - }, - { - "match": "([+*/%-])", - "name": "keyword.operator.arithmetic.kotlin" - }, - { - "match": "(!|&&|\\|\\|)", - "name": "keyword.operator.logical.kotlin" - }, - { - "match": "(--|\\+\\+)", - "name": "keyword.operator.increment-decrement.kotlin" - }, - { - "match": "(\\.\\.)", - "name": "keyword.operator.range.kotlin" - } - ] - }, - "self-reference": { - "match": "\\b(this|super)(@\\w+)?\\b", - "name": "variable.language.this.kotlin" - } - } -} diff --git a/lib/grammars/kusto.tmLanguage.json b/lib/grammars/kusto.tmLanguage.json deleted file mode 100644 index 4912664..0000000 --- a/lib/grammars/kusto.tmLanguage.json +++ /dev/null @@ -1,684 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "scopeName": "source.kusto", - "fileTypes": ["csl", "kusto", "kql"], - "name": "kusto", - "patterns": [ - { - "match": "\\b(by|from|of|to|step|with)\\b", - "name": "keyword.other.operator.kusto", - "comment": "Tabular operators: common helper operators" - }, - { - "match": "\\b(let|set|alias|declare|pattern|query_parameters|restrict|access|set)\\b", - "name": "keyword.control.kusto", - "comment": "Query statements: https://docs.microsoft.com/en-us/azure/kusto/query/statements" - }, - { - "match": "\\b(and|or|has_all|has_any|matches|regex)\\b", - "name": "keyword.other.operator.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators" - }, - { - "match": "\\b(cluster|database)(?:\\s*\\(\\s*(.+?)\\s*\\))?(?!\\w)", - "captures": { - "1": { - "name": "support.function.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Strings" - } - ] - } - }, - "name": "meta.special.database.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/clusterfunction" - }, - { - "match": "\\b(external_table|materialized_view|materialize|table|toscalar)\\b", - "name": "support.function.kusto", - "comment": "Special functions: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tablefunction" - }, - { - "match": "(?<!\\w)(!?between)\\b", - "name": "keyword.other.operator.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/betweenoperator" - }, - { - "match": "\\b(binary_and|binary_or|binary_shift_left|binary_shift_right|binary_xor)(?:\\s*\\(\\s*(\\w+)\\s*,\\s*(\\w+)\\s*\\))?(?!\\w)", - "captures": { - "1": { - "name": "support.function.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.scalar.bitwise.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binoperators" - }, - { - "match": "\\b(binary_not|bitset_count_ones)(?:\\s*\\(\\s*(\\w+)\\s*\\))?(?!\\w)", - "captures": { - "1": { - "name": "support.function.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.scalar.bitwise.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binary-notfunction" - }, - { - "match": "(?<!\\w)(!?in~?)(?!\\w)", - "name": "keyword.other.operator.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/in-cs-operator" - }, - { - "match": "(?<!\\w)(!?(?:contains|endswith|hasprefix|hassuffix|has|startswith)(?:_cs)?)(?!\\w)", - "name": "keyword.other.operator.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators" - }, - { - "match": "\\b(range)\\s*\\((?:\\s*(\\w+(?:\\(.*?\\))?)\\s*,\\s*(\\w+(?:\\(.*?\\))?)\\s*,?(?:\\s*)?(\\w+(?:\\(.*?\\))?)?\\s*\\))?(?!\\w)", - "captures": { - "1": { - "name": "support.function.kusto" - }, - "2": { - "patterns": [ - { - "include": "#DateTimeTimeSpanDataTypes" - }, - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#DateTimeTimeSpanDataTypes" - }, - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - }, - "4": { - "patterns": [ - { - "include": "#DateTimeTimeSpanDataTypes" - }, - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.scalar.function.range.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/rangefunction" - }, - { - "match": "\\b(abs|acos|around|array_concat|array_iff|array_index_of|array_length|array_reverse|array_rotate_left|array_rotate_right|array_shift_left|array_shift_right|array_slice|array_sort_asc|array_sort_desc|array_split|array_sum|asin|assert|atan2|atan|bag_has_key|bag_keys|bag_merge|bag_remove_keys|base64_decode_toarray|base64_decode_tostring|base64_decode_toguid|base64_encode_fromarray|base64_encode_tostring|base64_encode_fromguid|beta_cdf|beta_inv|beta_pdf|bin_at|bin_auto|case|ceiling|coalesce|column_ifexists|convert_angle|convert_energy|convert_force|convert_length|convert_mass|convert_speed|convert_temperature|convert_volume|cos|cot|countof|current_cluster_endpoint|current_database|current_principal_details|current_principal_is_member_of|current_principal|cursor_after|cursor_before_or_at|cursor_current|current_cursor|dcount_hll|degrees|dynamic_to_json|estimate_data_size|exp10|exp2|exp|extent_id|extent_tags|extract_all|extract_json|extractjson|extract|floor|format_bytes|format_ipv4_mask|format_ipv4|gamma|gettype|gzip_compress_to_base64_string|gzip_decompress_from_base64_string|has_any_index|has_any_ipv4_prefix|has_any_ipv4|has_ipv4_prefix|has_ipv4|hash_combine|hash_many|hash_md5|hash_sha1|hash_sha256|hash_xxhash64|hash|iff|iif|indexof_regex|indexof|ingestion_time|ipv4_compare|ipv4_is_in_range|ipv4_is_in_any_range|ipv4_is_match|ipv4_is_private|ipv4_netmask_suffix|ipv6_compare|ipv6_is_match|isascii|isempty|isfinite|isinf|isnan|isnotempty|notempty|isnotnull|notnull|isnull|isutf8|jaccard_index|log10|log2|loggamma|log|make_string|max_of|min_of|new_guid|not|bag_pack|pack_all|pack_array|pack_dictionary|pack|parse_command_line|parse_csv|parse_ipv4_mask|parse_ipv4|parse_ipv6_mask|parse_ipv6|parse_path|parse_urlquery|parse_url|parse_user_agent|parse_version|parse_xml|percentile_tdigest|percentile_array_tdigest|percentrank_tdigest|pi|pow|radians|rand|rank_tdigest|regex_quote|repeat|replace_regex|replace_string|reverse|round|set_difference|set_has_element|set_intersect|set_union|sign|sin|split|sqrt|strcat_array|strcat_delim|strcmp|strcat|string_size|strlen|strrep|substring|tan|to_utf8|tobool|todecimal|todouble|toreal|toguid|tohex|toint|tolong|tolower|tostring|toupper|translate|treepath|trim_end|trim_start|trim|unixtime_microseconds_todatetime|unixtime_milliseconds_todatetime|unixtime_nanoseconds_todatetime|unixtime_seconds_todatetime|url_decode|url_encode_component|url_encode|welch_test|zip|zlib_compress_to_base64_string|zlib_decompress_from_base64_string)\\b", - "name": "support.function.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions" - }, - { - "match": "\\b(bin)(?:\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\))?(?!\\w)", - "captures": { - "1": { - "name": "support.function.kusto" - }, - "2": { - "patterns": [ - { - "include": "#DateTimeTimeSpanDataTypes" - }, - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.scalar.function.bin.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binfunction" - }, - { - "match": "\\b(count)\\s*\\(\\s*\\)(?!\\w)", - "name": "support.function.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/count-aggfunction" - }, - { - "match": "\\b(arg_max|arg_min|avgif|avg|binary_all_and|binary_all_or|binary_all_xor|buildschema|countif|dcount|dcountif|hll|hll_merge|make_bag_if|make_bag|make_list_with_nulls|make_list_if|make_list|make_set_if|make_set|maxif|max|minif|min|percentilesw_array|percentiles_array|percentilesw|percentilew|percentiles|percentile|stdevif|stdevp|stdev|sumif|sum|take_anyif|take_any|tdigest_merge|merge_tdigest|tdigest|varianceif|variancep|variance)\\b", - "name": "support.function.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/aggregation-functions" - }, - { - "match": "\\b(geo_distance_2points|geo_distance_point_to_line|geo_distance_point_to_polygon|geo_intersects_2lines|geo_intersects_2polygons|geo_intersects_line_with_polygon|geo_intersection_2lines|geo_intersection_2polygons|geo_intersection_line_with_polygon|geo_line_centroid|geo_line_densify|geo_line_length|geo_line_simplify|geo_polygon_area|geo_polygon_centroid|geo_polygon_densify|geo_polygon_perimeter|geo_polygon_simplify|geo_polygon_to_s2cells|geo_point_in_circle|geo_point_in_polygon|geo_point_to_geohash|geo_point_to_h3cell|geo_point_to_s2cell|geo_geohash_to_central_point|geo_geohash_neighbors|geo_geohash_to_polygon|geo_s2cell_to_central_point|geo_s2cell_neighbors|geo_s2cell_to_polygon|geo_h3cell_to_central_point|geo_h3cell_neighbors|geo_h3cell_to_polygon|geo_h3cell_parent|geo_h3cell_children|geo_h3cell_level|geo_h3cell_rings|geo_simplify_polygons_array|geo_union_lines_array|geo_union_polygons_array)\\b", - "name": "support.function.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/geospatial-grid-systems" - }, - { - "match": "\\b(next|prev|row_cumsum|row_number|row_rank|row_window_session)\\b", - "name": "support.function.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/windowsfunctions" - }, - { - "match": "\\.(create-or-alter|replace)", - "name": "keyword.control.kusto", - "comment": "User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions" - }, - { - "match": "(?<=let ).+(?=\\W*=)", - "name": "entity.function.name.lambda.kusto", - "comment": "User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions" - }, - { - "match": "\\b(folder|docstring|skipvalidation)\\b", - "name": "keyword.other.operator.kusto", - "comment": "User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions" - }, - { - "match": "\\b(function)\\b", - "name": "storage.type.kusto" - }, - { - "match": "\\b(bool|decimal|dynamic|guid|int|long|real|string)\\b", - "name": "storage.type.kusto", - "comment": "Data types: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types" - }, - { - "match": "\\b(as)\\s+(\\w+)\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "name": "variable.other.kusto" - } - }, - "name": "meta.query.as.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/asoperator" - }, - { - "match": "\\b(datatable)(?=\\W*\\()", - "name": "keyword.other.query.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatableoperator" - }, - { - "match": "\\b(facet)(?:\\s+(by))?\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "name": "keyword.other.operator.kusto" - } - }, - "name": "meta.query.facet.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/facetoperator" - }, - { - "match": "\\b(invoke)(?:\\s+(\\w+))?\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "name": "entity.name.function.kusto" - } - }, - "name": "meta.query.invoke.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/invokeoperator" - }, - { - "match": "\\b(order)(?:\\s+(by)\\s+(\\w+))?\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "name": "keyword.other.operator.kusto" - }, - "3": { - "name": "variable.other.column.kusto" - } - }, - "name": "meta.query.order.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/orderoperator" - }, - { - "match": "\\b(range)\\s+(\\w+)\\s+(from)\\s+(\\w+(?:\\(\\w*\\))?)\\s+(to)\\s+(\\w+(?:\\(\\w*\\))?)\\s+(step)\\s+(\\w+(?:\\(\\w*\\))?)\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "name": "variable.other.column.kusto" - }, - "3": { - "name": "keyword.other.operator.kusto" - }, - "4": { - "patterns": [ - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - }, - "5": { - "name": "keyword.other.operator.kusto" - }, - "6": { - "patterns": [ - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - }, - "7": { - "name": "keyword.other.operator.kusto" - }, - "8": { - "patterns": [ - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.query.range.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/rangeoperator" - }, - { - "match": "\\b(sample)(?:\\s+(\\d+))?(?![\\w-])", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.query.sample.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sampleoperator" - }, - { - "match": "\\b(sample-distinct)(?:\\s+(\\d+)\\s+(of)\\s+(\\w+))?\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - }, - "3": { - "name": "keyword.other.operator.kusto" - }, - "4": { - "name": "variable.other.column.kusto" - } - }, - "name": "meta.query.sample-distinct.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sampledistinctoperator" - }, - { - "match": "\\b(sort)(?:\\s+(by))?\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "name": "keyword.other.operator.kusto" - } - }, - "name": "meta.query.sort.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sortoperator" - }, - { - "match": "\\b(take|limit)(?:\\s+(\\d+))\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - } - }, - "name": "meta.query.take.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/takeoperator" - }, - { - "match": "\\b(top)(?:\\s+(\\d+)\\s+(by)\\s+(\\w+))?(?![\\w-])\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - }, - "3": { - "name": "keyword.other.operator.kusto" - }, - "4": { - "name": "variable.other.column.kusto" - } - }, - "name": "meta.query.top.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/topoperator" - }, - { - "match": "\\b(top-hitters)(?:\\s+(\\d+)\\s+(of)\\s+(\\w+)(?:\\s+(by)\\s+(\\w+))?)?\\b", - "captures": { - "1": { - "name": "keyword.other.query.kusto" - }, - "2": { - "patterns": [ - { - "include": "#Numeric" - } - ] - }, - "3": { - "name": "keyword.other.operator.kusto" - }, - "4": { - "name": "variable.other.column.kusto" - }, - "5": { - "name": "keyword.other.operator.kusto" - }, - "6": { - "name": "variable.other.column.kusto" - } - }, - "name": "meta.query.top-hitters.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tophittersoperator" - }, - { - "match": "\\b(consume|count|distinct|evaluate|extend|externaldata|find|fork|getschema|join|lookup|make-series|mv-apply|mv-expand|project-away|project-keep|project-rename|project-reorder|project|parse|parse-where|parse-kv|partition|print|reduce|render|scan|search|serialize|shuffle|summarize|top-nested|union|where)\\b", - "name": "keyword.other.query.kusto", - "comment": "Tabular operators: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/queries" - }, - { - "match": "\\b(active_users_count|activity_counts_metrics|activity_engagement|new_activity_metrics|activity_metrics|autocluster|azure_digital_twins_query_request|bag_unpack|basket|cosmosdb_sql_request|dcount_intersect|diffpatterns|funnel_sequence_completion|funnel_sequence|http_request_post|http_request|infer_storage_schema|ipv4_lookup|mysql_request|narrow|pivot|preview|rolling_percentile|rows_near|schema_merge|session_count|sequence_detect|sliding_window_counts|sql_request)\\b", - "name": "support.function.kusto", - "comment": "Tabular operators: evalute (plugins): https://docs.microsoft.com/en-us/azure/kusto/query/evaluateoperator" - }, - { - "match": "\\b(on|kind|hint\\.remote|hint\\.strategy)\\b", - "name": "keyword.other.operator.kusto", - "comment": "Tabular operators: join: https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator" - }, - { - "match": "(\\$left|\\$right)\\b", - "name": "keyword.other.kusto", - "comment": "Tabular operators: join ($left, $right): https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator" - }, - { - "match": "\\b(innerunique|inner|leftouter|rightouter|fullouter|leftanti|anti|leftantisemi|rightanti|rightantisemi|leftsemi|rightsemi|broadcast)\\b", - "name": "keyword.other.kusto", - "comment": "Tabular operators: join (kinds, strategies): https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator" - }, - { - "match": "\\b(series_abs|series_acos|series_add|series_asin|series_atan|series_cos|series_decompose|series_decompose_anomalies|series_decompose_forecast|series_divide|series_equals|series_exp|series_fft|series_fill_backward|series_fill_const|series_fill_forward|series_fill_linear|series_fir|series_fit_2lines_dynamic|series_fit_2lines|series_fit_line_dynamic|series_fit_line|series_fit_poly|series_greater_equals|series_greater|series_ifft|series_iir|series_less_equals|series_less|series_multiply|series_not_equals|series_outliers|series_pearson_correlation|series_periods_detect|series_periods_validate|series_pow|series_seasonal|series_sign|series_sin|series_stats|series_stats_dynamic|series_subtract|series_tan)\\b", - "name": "support.function.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/machine-learning-and-tsa" - }, - { - "match": "\\b(bag|array)\\b", - "name": "keyword.other.operator.kusto", - "comment": "Tabular operators: mv-expand (bagexpand options): https://docs.microsoft.com/en-us/azure/kusto/query/mvexpandoperator" - }, - { - "match": "\\b(asc|desc|nulls first|nulls last)\\b", - "name": "keyword.other.kusto", - "comment": "Tabular operators: order: https://docs.microsoft.com/en-us/azure/kusto/query/orderoperator" - }, - { - "match": "\\b(regex|simple|relaxed)\\b", - "name": "keyword.other.kusto", - "comment": "Tabular operators: parse: https://docs.microsoft.com/en-us/azure/kusto/query/parseoperator" - }, - { - "match": "\\b(anomalychart|areachart|barchart|card|columnchart|ladderchart|linechart|piechart|pivotchart|scatterchart|stackedareachart|timechart|timepivot)\\b", - "name": "support.function.kusto" - }, - { - "include": "#Strings" - }, - { - "match": "\\{.*?\\}", - "name": "string.other.kusto" - }, - { - "match": "//.*", - "name": "comment.line.kusto", - "comment": "Comments" - }, - { - "include": "#TimeSpanLiterals" - }, - { - "include": "#DateTimeTimeSpanFunctions" - }, - { - "include": "#DateTimeTimeSpanDataTypes" - }, - { - "include": "#Numeric" - }, - { - "match": "\\b(true|false|null)\\b", - "name": "constant.language.kusto" - }, - { - "match": "\\b(anyif|any|array_strcat|base64_decodestring|base64_encodestring|make_dictionary|makelist|makeset|mvexpand|todynamic|parse_json|replace|weekofyear)(?=\\W*\\(|\\b)", - "name": "invalid.deprecated.kusto", - "comment": "Deprecated functions" - } - ], - "repository": { - "Strings": { - "patterns": [ - { - "begin": "([@h]?\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.kusto" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.kusto" - } - }, - "patterns": [ - { - "include": "#Escapes" - } - ], - "name": "string.quoted.double.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string" - }, - { - "begin": "([@h]?')", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.kusto" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.kusto" - } - }, - "patterns": [ - { - "include": "#Escapes" - } - ], - "name": "string.quoted.single.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string" - } - ] - }, - "Escapes": { - "patterns": [ - { - "match": "\\\\['\"]", - "name": "constant.character.escape.kusto" - } - ] - }, - "Numeric": { - "patterns": [ - { - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*+)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?(?=\\b|\\w)", - "name": "constant.numeric.kusto" - } - ] - }, - "TimeSpanLiterals": { - "patterns": [ - { - "match": "[+-]?(?:\\d*\\.)?\\d+(?:microseconds?|ticks?|seconds?|ms|d|h|m|s)\\b", - "name": "constant.numeric.kusto", - "comment": "timespan literals: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/timespan#timespan-literals" - } - ] - }, - "DateTimeTimeSpanFunctions": { - "patterns": [ - { - "match": "\\b(format_datetime)(?:\\s*\\(\\s*(.+?)\\s*,\\s*(['\"].*?['\"])\\s*\\))?(?!\\w)", - "captures": { - "1": { - "name": "support.function.kusto" - }, - "2": { - "patterns": [ - { - "include": "#DateTimeTimeSpanDataTypes" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#Strings" - } - ] - } - }, - "name": "meta.scalar.function.format_datetime.kusto", - "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/format-datetimefunction" - }, - { - "match": "\\b(ago|datetime_add|datetime_diff|datetime_local_to_utc|datetime_part|datetime_utc_to_local|dayofmonth|dayofweek|dayofyear|endofday|endofmonth|endofweek|endofyear|format_timespan|getmonth|getyear|hourofday|make_datetime|make_timespan|monthofyear|now|startofday|startofmonth|startofweek|startofyear|todatetime|totimespan|week_of_year)(?=\\W*\\()", - "name": "support.function.kusto", - "comment": "Scalar function: DateTime/Timespan Functions: https://docs.microsoft.com/en-us/azure/kusto/query/scalarfunctions#datetimetimespan-functions" - } - ] - }, - "DateTimeTimeSpanDataTypes": { - "patterns": [ - { - "match": "\\b(datetime|timespan|time)\\b", - "name": "storage.type.kusto" - } - ] - } - }, - "uuid": "FF0550E0-3A29-11E3-AA6E-0800200C9B77" -} diff --git a/lib/grammars/latex.tmLanguage.json b/lib/grammars/latex.tmLanguage.json deleted file mode 100644 index 45731d5..0000000 --- a/lib/grammars/latex.tmLanguage.json +++ /dev/null @@ -1,2365 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/LaTeX.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jlelong/vscode-latex-basics/commit/30adbfae9dcb0a6477584247ac477f13845d1f5f", - "name": "latex", - "scopeName": "text.tex.latex", - "patterns": [ - { - "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.", - "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s", - "name": "meta.space-after-command.latex" - }, - { - "begin": "((\\\\)(?:usepackage|documentclass))\\b(?=\\[|\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.preamble.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - } - }, - "end": "(?<=\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.preamble.latex", - "patterns": [ - { - "include": "#multiline-optional-arg" - }, - { - "begin": "((?:\\G|(?<=\\]))\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "support.class.latex", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "((\\\\)(?:include|input))(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.include.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.include.latex", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\*)?)((?:\\[[^\\[]*?\\]){0,2})(\\{)", - "beginCaptures": { - "1": { - "name": "support.function.section.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "4": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "5": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "comment": "this works OK with all kinds of crazy stuff as long as section is one line", - "contentName": "entity.name.section.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.function.section.$3.latex", - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "name": "meta.function.environment.songs.latex", - "begin": "((?:\\s*)\\\\begin\\{songs\\}\\{.*\\})", - "end": "(\\\\end\\{songs\\}(?:\\s*\\n)?)", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "meta.data.environment.songs.latex", - "patterns": [ - { - "name": "meta.chord.block.latex support.class.chord.block.environment.latex", - "begin": "\\\\\\[", - "end": "\\]", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "name": "meta.chord.block.latex support.class.chord.block.environment.latex", - "match": "\\^" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(^\\s*)?\\\\begin\\{(lstlisting|minted|pyglist)\\}(?=\\[|\\{)", - "end": "\\\\end\\{(?:minted|lstlisting|pyglist)\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:c|cpp))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.cpp.embedded.latex", - "patterns": [ - { - "include": "source.cpp.embedded.latex" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:asy|asymptote))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.asy", - "patterns": [ - { - "include": "source.asy" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:css))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:hs|haskell))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.haskell", - "patterns": [ - { - "include": "source.haskell" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:html))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "text.html", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:xml))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "text.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:java))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.java", - "patterns": [ - { - "include": "source.java" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:lua))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.lua", - "patterns": [ - { - "include": "source.lua" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:jl|julia))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.julia", - "patterns": [ - { - "include": "source.julia" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:rb|ruby))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.ruby", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:js|javascript))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:ts|typescript))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:py|python))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:yaml))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.yaml", - "patterns": [ - { - "include": "source.yaml" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)((?:rust))(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", - "contentName": "source.rust", - "patterns": [ - { - "include": "source.rust" - } - ] - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "meta.function.embedded.latex", - "end": "^\\s*(?=\\\\end\\{(?:lstlisting|minted|pyglist)\\})", - "name": "meta.embedded.block.generic.latex" - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:cppcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:cppcode)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:cppcode)\\*?\\})", - "contentName": "source.cpp.embedded.latex", - "patterns": [ - { - "include": "source.cpp.embedded.latex" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:hscode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:hscode)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:hscode)\\*?\\})", - "contentName": "source.haskell", - "patterns": [ - { - "include": "source.haskell" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:luacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:luacode)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:luacode)\\*?\\})", - "contentName": "source.lua", - "patterns": [ - { - "include": "source.lua" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\})", - "contentName": "source.julia", - "patterns": [ - { - "include": "source.julia" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\})", - "contentName": "source.julia", - "patterns": [ - { - "include": "source.julia" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\})", - "contentName": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\})", - "contentName": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\})", - "contentName": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\})", - "contentName": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:scalacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:scalacode)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:scalacode)\\*?\\})", - "contentName": "source.scala", - "patterns": [ - { - "include": "source.scala" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:asy|asycode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:asy|asycode)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:asy|asycode)\\*?\\})", - "contentName": "source.asymptote", - "patterns": [ - { - "include": "source.asymptote" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:dot2tex|dotcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:dot2tex|dotcode)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:dot2tex|dotcode)\\*?\\})", - "contentName": "source.dot", - "patterns": [ - { - "include": "source.dot" - } - ] - } - ] - }, - { - "begin": "\\s*\\\\begin\\{(?:gnuplot)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", - "end": "\\s*\\\\end\\{(?:gnuplot)\\*?\\}", - "captures": { - "0": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "patterns": [ - { - "include": "#multiline-optional-arg-no-highlight" - }, - { - "begin": "(?:\\G|(?<=\\]))(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "variable.parameter.function.latex" - }, - { - "begin": "^(?=\\s*)", - "end": "^\\s*(?=\\\\end\\{(?:gnuplot)\\*?\\})", - "contentName": "source.gnuplot", - "patterns": [ - { - "include": "source.gnuplot" - } - ] - } - ] - }, - { - "begin": "((?:\\s*)\\\\begin\\{([a-zA-Z]*code|lstlisting|minted|pyglist)(?:\\*)?\\}(?:\\[.*\\])?(?:\\{.*\\})?)", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", - "contentName": "meta.function.embedded.latex", - "name": "meta.embedded.block.generic.latex" - }, - { - "begin": "((\\\\)addplot)(?:\\+?)((?:\\[[^\\[]*\\]))*\\s*(gnuplot)\\s*((?:\\[[^\\[]*\\]))*\\s*(\\{)", - "captures": { - "1": { - "name": "support.function.be.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "variable.parameter.function.latex" - }, - "5": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "6": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "patterns": [ - { - "begin": "%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.latex" - } - }, - "end": "$\\n?", - "name": "comment.line.percentage.latex" - }, - { - "include": "source.gnuplot" - } - ], - "end": "\\s*(\\};)" - }, - { - "begin": "(\\s*\\\\begin\\{((?:fboxv|boxedv|V|v|spv)erbatim\\*?)\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "markup.raw.verbatim.latex", - "end": "(\\\\end\\{\\2\\})", - "name": "meta.function.verbatim.latex" - }, - { - "begin": "(\\s*\\\\begin\\{VerbatimOut\\}\\{[^\\}]*\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "markup.raw.verbatim.latex", - "end": "(\\\\end\\{\\VerbatimOut\\})", - "name": "meta.function.verbatim.latex" - }, - { - "begin": "(\\s*\\\\begin\\{alltt\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "markup.raw.verbatim.latex", - "end": "(\\\\end\\{alltt\\})", - "name": "meta.function.alltt.latex", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.function.latex" - } - }, - "match": "(\\\\)[A-Za-z]+", - "name": "support.function.general.latex" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{([Cc]omment)\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "punctuation.definition.comment.latex", - "end": "(\\\\end\\{\\2\\})", - "name": "meta.function.verbatim.latex" - }, - { - "captures": { - "1": { - "name": "support.function.url.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "5": { - "name": "markup.underline.link.latex" - }, - "6": { - "name": "punctuation.definition.arguments.end.latex" - }, - "7": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "8": { - "name": "entity.name.hyperlink.latex" - }, - "9": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "match": "(?:\\s*)((\\\\)(?:url|href|hyperref|hyperimage))(\\[[^\\[]*?\\])?(\\{)([^}]*)(\\})(?:\\{[^}]*\\}){2}?(?:(\\{)([^}]*)(\\}))?", - "name": "meta.function.link.url.latex" - }, - { - "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.", - "match": "(\\s*\\\\begin\\{document\\})", - "name": "meta.function.begin-document.latex", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - } - }, - { - "match": "(\\s*\\\\end\\{document\\})", - "name": "meta.function.end-document.latex", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - } - }, - { - "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:\\+?array|equation|(?:IEEE)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|\\+?cases|(?:display)?math|\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\*|!)?)(\\})(\\s*\\n)?", - "captures": { - "1": { - "name": "support.function.be.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "4": { - "name": "variable.parameter.function.latex" - }, - "5": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "contentName": "meta.math.block.latex support.class.math.block.environment.latex", - "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", - "name": "meta.function.environment.math.latex", - "patterns": [ - { - "match": "(?<!\\\\)&", - "name": "keyword.control.equation.align.latex" - }, - { - "match": "\\\\\\\\", - "name": "keyword.control.equation.newline.latex" - }, - { - "include": "#definition-label" - }, - { - "include": "text.tex#math" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(?:\\s*)(\\\\begin\\{empheq\\}(?:\\[.*\\])?)", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "meta.math.block.latex support.class.math.block.environment.latex", - "end": "(?:\\s*)(\\\\end\\{empheq\\})", - "name": "meta.function.environment.math.latex", - "patterns": [ - { - "match": "(?<!\\\\)&", - "name": "keyword.control.equation.align.latex" - }, - { - "match": "\\\\\\\\", - "name": "keyword.control.equation.newline.latex" - }, - { - "include": "#definition-label" - }, - { - "include": "text.tex#math" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?)\\}(\\s*\\n)?)", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "contentName": "meta.data.environment.tabular.latex", - "end": "(\\s*\\\\end\\{(\\2)\\}(?:\\s*\\n)?)", - "name": "meta.function.environment.tabular.latex", - "patterns": [ - { - "match": "(?<!\\\\)&", - "name": "keyword.control.table.cell.latex" - }, - { - "match": "\\\\\\\\", - "name": "keyword.control.table.newline.latex" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{(itemize|enumerate|description|list)\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", - "name": "meta.function.environment.list.latex", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{tikzpicture\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{tikzpicture\\}(?:\\s*\\n)?)", - "name": "meta.function.environment.latex.tikz", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{frame\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{frame\\})", - "name": "meta.function.environment.frame.latex", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{(mpost\\*?)\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", - "name": "meta.function.environment.latex.mpost" - }, - { - "begin": "(\\s*\\\\begin\\{markdown\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{markdown\\})", - "contentName": "meta.embedded.markdown_latex_combined", - "patterns": [ - { - "include": "text.tex.markdown_latex_combined" - } - ] - }, - { - "begin": "(\\s*\\\\begin\\{(\\w+\\*?)\\})", - "captures": { - "1": { - "patterns": [ - { - "include": "#begin-env-tokenizer" - } - ] - } - }, - "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", - "name": "meta.function.environment.general.latex", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.function.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.begin.latex" - }, - "4": { - "name": "support.function.general.latex" - }, - "5": { - "name": "punctuation.definition.function.latex" - }, - "6": { - "name": "punctuation.definition.end.latex" - } - }, - "match": "((\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand))\\*?({)((\\\\)[^}]*)(})" - }, - { - "begin": "((\\\\)marginpar)((?:\\[[^\\[]*?\\])*)(\\{)", - "beginCaptures": { - "1": { - "name": "support.function.marginpar.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.marginpar.begin.latex" - } - }, - "contentName": "meta.paragraph.margin.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.marginpar.end.latex" - } - }, - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)", - "beginCaptures": { - "1": { - "name": "support.function.footnote.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.footnote.begin.latex" - } - }, - "contentName": "entity.name.footnote.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.footnote.end.latex" - } - }, - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "((\\\\)emph)(\\{)", - "beginCaptures": { - "1": { - "name": "support.function.emph.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.emph.begin.latex" - } - }, - "contentName": "markup.italic.emph.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.emph.end.latex" - } - }, - "name": "meta.function.emph.latex", - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "((\\\\)textit)(\\{)", - "captures": { - "1": { - "name": "support.function.textit.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.textit.begin.latex" - } - }, - "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions", - "contentName": "markup.italic.textit.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.textit.end.latex" - } - }, - "name": "meta.function.textit.latex", - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "((\\\\)textbf)(\\{)", - "captures": { - "1": { - "name": "support.function.textbf.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.textbf.begin.latex" - } - }, - "contentName": "markup.bold.textbf.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.textbf.end.latex" - } - }, - "name": "meta.function.textbf.latex", - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "((\\\\)texttt)(\\{)", - "captures": { - "1": { - "name": "support.function.texttt.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.texttt.begin.latex" - } - }, - "contentName": "markup.raw.texttt.latex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.texttt.end.latex" - } - }, - "name": "meta.function.texttt.latex", - "patterns": [ - { - "include": "text.tex#braces" - }, - { - "include": "$base" - } - ] - }, - { - "captures": { - "0": { - "name": "keyword.other.item.latex" - }, - "1": { - "name": "punctuation.definition.keyword.latex" - } - }, - "match": "(\\\\)item\\b", - "name": "meta.scope.item.latex" - }, - { - "begin": "((\\\\)(?:[aA]uto|foot|full|no|ref|short|[tT]ext|[pP]aren|[sS]mart)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title)?[ANP]*\\*?)((?:(?:\\([^\\)]*\\)){0,2}(?:\\[[^\\]]*\\]){0,2}\\{[\\p{Alphabetic}:.]*\\})*)(?:([<\\[])[^\\]<>]*([>\\]]))?(?:(\\[)[^\\]]*(\\]))?(\\{)", - "captures": { - "1": { - "name": "keyword.control.cite.latex" - }, - "2": { - "name": "punctuation.definition.keyword.latex" - }, - "3": { - "patterns": [ - { - "include": "#autocites-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.arguments.optional.begin.latex" - }, - "5": { - "name": "punctuation.definition.arguments.optional.end.latex" - }, - "6": { - "name": "punctuation.definition.arguments.optional.begin.latex" - }, - "7": { - "name": "punctuation.definition.arguments.optional.end.latex" - }, - "8": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.citation.latex", - "patterns": [ - { - "captures": { - "1": { - "name": "comment.line.percentage.tex" - }, - "2": { - "name": "punctuation.definition.comment.tex" - } - }, - "match": "((%).*)$" - }, - { - "match": "[\\p{Alphabetic}\\p{Number}:.-]+", - "name": "constant.other.reference.citation.latex" - } - ] - }, - { - "begin": "((\\\\)bibentry)(\\{)", - "captures": { - "1": { - "name": "keyword.control.cite.latex" - }, - "2": { - "name": "punctuation.definition.keyword.latex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.citation.latex", - "patterns": [ - { - "match": "[\\p{Alphabetic}\\p{Number}:.]+", - "name": "constant.other.reference.citation.latex" - } - ] - }, - { - "begin": "((\\\\)(?:\\w*[rR]ef\\*?))(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.ref.latex" - }, - "2": { - "name": "punctuation.definition.keyword.latex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.reference.label.latex", - "patterns": [ - { - "match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]", - "name": "constant.other.reference.label.latex" - } - ] - }, - { - "include": "#definition-label" - }, - { - "begin": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)", - "beginCaptures": { - "1": { - "name": "support.function.verb.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "support.function.verb.latex" - }, - "4": { - "name": "punctuation.definition.verb.latex" - }, - "5": { - "name": "punctuation.definition.begin.latex" - } - }, - "contentName": "markup.raw.verb.latex", - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.end.latex" - } - }, - "name": "meta.function.verb.latex", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "captures": { - "1": { - "name": "support.function.verb.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.verb.latex" - }, - "4": { - "name": "markup.raw.verb.latex" - }, - "5": { - "name": "punctuation.definition.verb.latex" - } - }, - "match": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)", - "name": "meta.function.verb.latex" - }, - { - "captures": { - "1": { - "name": "support.function.verb.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "5": { - "name": "punctuation.definition.arguments.end.latex" - }, - "6": { - "name": "punctuation.definition.verb.latex" - }, - "7": { - "name": "markup.raw.verb.latex" - }, - "8": { - "name": "punctuation.definition.verb.latex" - }, - "9": { - "name": "punctuation.definition.verb.latex" - }, - "10": { - "name": "markup.raw.verb.latex" - }, - "11": { - "name": "punctuation.definition.verb.latex" - } - }, - "match": "((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))", - "name": "meta.function.verb.latex" - }, - { - "captures": { - "1": { - "name": "support.function.verb.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.verb.latex" - }, - "5": { - "name": "markup.raw.verb.latex" - }, - "6": { - "name": "punctuation.definition.verb.latex" - }, - "7": { - "name": "punctuation.definition.verb.latex" - }, - "8": { - "name": "markup.raw.verb.latex" - }, - "9": { - "name": "punctuation.definition.verb.latex" - } - }, - "match": "((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", - "name": "meta.function.verb.latex" - }, - { - "captures": { - "1": { - "name": "support.function.verb.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.verb.latex" - }, - "5": { - "name": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - }, - "6": { - "name": "punctuation.definition.verb.latex" - }, - "7": { - "name": "punctuation.definition.verb.latex" - }, - "8": { - "name": "source.python", - "patterns": [ - { - "include": "source.python" - } - ] - }, - "9": { - "name": "punctuation.definition.verb.latex" - } - }, - "match": "((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", - "name": "meta.function.verb.latex" - }, - { - "captures": { - "1": { - "name": "support.function.verb.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.verb.latex" - }, - "5": { - "name": "source.julia", - "patterns": [ - { - "include": "source.julia" - } - ] - }, - "6": { - "name": "punctuation.definition.verb.latex" - }, - "7": { - "name": "punctuation.definition.verb.latex" - }, - "8": { - "name": "source.julia", - "patterns": [ - { - "include": "source.julia" - } - ] - }, - "9": { - "name": "punctuation.definition.verb.latex" - } - }, - "match": "((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", - "name": "meta.function.verb.latex" - }, - { - "match": "\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)", - "name": "keyword.control.layout.latex" - }, - { - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.latex" - } - }, - "end": "\\\\\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.latex" - } - }, - "name": "meta.math.block.latex support.class.math.block.environment.latex", - "patterns": [ - { - "include": "text.tex#math" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(?<!\\\\)(\\`\\`)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.latex" - } - }, - "end": "(?<!\\\\)(\\'\\'|\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.latex" - } - }, - "name": "string.quoted.double.latex" - }, - { - "begin": "\\$\\$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.latex" - } - }, - "end": "\\$\\$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.latex" - } - }, - "name": "meta.math.block.latex support.class.math.block.environment.latex", - "patterns": [ - { - "match": "\\\\\\$", - "name": "constant.character.escape.latex" - }, - { - "include": "text.tex#math" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tex" - } - }, - "end": "\\$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.tex" - } - }, - "name": "meta.math.block.tex support.class.math.block.tex", - "patterns": [ - { - "match": "\\\\\\$", - "name": "constant.character.escape.latex" - }, - { - "include": "text.tex#math" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\\\\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.latex" - } - }, - "end": "\\\\\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.latex" - } - }, - "name": "meta.math.block.latex support.class.math.block.environment.latex", - "patterns": [ - { - "include": "text.tex#math" - }, - { - "include": "$base" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.latex" - } - }, - "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b", - "name": "constant.character.latex" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.column-specials.begin.latex" - }, - "2": { - "name": "punctuation.definition.column-specials.end.latex" - } - }, - "match": "(?:<|>)(\\{)\\$(\\})", - "name": "meta.column-specials.latex" - }, - { - "include": "text.tex" - } - ], - "repository": { - "optional-arg": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.arguments.optional.begin.latex" - }, - "2": { - "name": "variable.parameter.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.optional.end.latex" - } - }, - "match": "(\\[)([^\\[]*?)(\\])", - "name": "meta.parameter.optional.latex" - } - ] - }, - "multiline-optional-arg-no-highlight": { - "begin": "\\G\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.optional.begin.latex" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.optional.end.latex" - } - }, - "name": "meta.parameter.optional.latex", - "patterns": [ - { - "include": "$self" - } - ] - }, - "multiline-optional-arg": { - "begin": "\\G\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.optional.begin.latex" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.optional.end.latex" - } - }, - "name": "meta.parameter.optional.latex", - "contentName": "variable.parameter.function.latex", - "patterns": [ - { - "include": "$self" - } - ] - }, - "autocites-arg": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.arguments.optional.begin.latex" - }, - "2": { - "name": "punctuation.definition.arguments.optional.end.latex" - }, - "3": { - "name": "punctuation.definition.arguments.optional.begin.latex" - }, - "4": { - "name": "punctuation.definition.arguments.optional.end.latex" - }, - "5": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "6": { - "name": "constant.other.reference.citation.latex" - }, - "7": { - "name": "punctuation.definition.arguments.end.latex" - }, - "8": { - "patterns": [ - { - "include": "#autocites-arg" - } - ] - } - }, - "match": "(?:(\\()[^\\)]*(\\))){0,2}(?:(\\[)[^\\]]*(\\])){0,2}(\\{)([\\p{Alphabetic}\\p{Number}:.]+)(\\})(.*)" - } - ] - }, - "begin-env-tokenizer": { - "captures": { - "1": { - "name": "support.function.be.latex" - }, - "2": { - "name": "punctuation.definition.function.latex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "4": { - "name": "variable.parameter.function.latex" - }, - "5": { - "name": "punctuation.definition.arguments.end.latex" - }, - "6": { - "name": "punctuation.definition.arguments.optional.begin.latex" - }, - "7": { - "patterns": [ - { - "include": "$base" - } - ] - }, - "8": { - "name": "punctuation.definition.arguments.optional.end.latex" - }, - "9": { - "name": "punctuation.definition.arguments.begin.latex" - }, - "10": { - "name": "variable.parameter.function.latex" - }, - "11": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "match": "\\s*((\\\\)(?:begin|end))(\\{)([a-zA-Z]*\\*?)(\\})(?:(\\[)(.*)(\\]))?(?:(\\{)([^{}]*)(\\}))?" - }, - "definition-label": { - "begin": "((\\\\)label)((?:\\[[^\\[]*?\\])*)(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.label.latex" - }, - "2": { - "name": "punctuation.definition.keyword.latex" - }, - "3": { - "patterns": [ - { - "include": "#optional-arg" - } - ] - }, - "4": { - "name": "punctuation.definition.arguments.begin.latex" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.latex" - } - }, - "name": "meta.definition.label.latex", - "patterns": [ - { - "match": "[a-zA-Z0-9\\.,:/*!^_-]", - "name": "variable.parameter.definition.label.latex" - } - ] - } - } -} diff --git a/lib/grammars/less.tmLanguage.json b/lib/grammars/less.tmLanguage.json deleted file mode 100644 index 1f265af..0000000 --- a/lib/grammars/less.tmLanguage.json +++ /dev/null @@ -1,542 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-less/blob/master/grammars/less.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-less/commit/87d4d59e8de6796b506b81a16e1dc1fafc99d30f", - "name": "less", - "scopeName": "source.css.less", - "patterns": [ - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.class.mixin.css" - } - }, - "match": "(\\.[_a-zA-Z][a-zA-Z0-9_-]*(?=\\())" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "4": { - "name": "variable.other.interpolation.less" - } - }, - "match": "((\\.)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)" - }, - { - "captures": { - "0": { - "name": "entity.other.attribute-name.parent-selector.css" - }, - "1": { - "name": "punctuation.definition.entity.css" - } - }, - "match": "(&)[a-zA-Z0-9_-]*" - }, - { - "begin": "(format|local|url|attr|counter|counters)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.css" - } - }, - "patterns": [ - { - "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": "\\\\.", - "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.double.css", - "patterns": [ - { - "match": "\\\\(\\d{1,6}|.)", - "name": "constant.character.escape.css" - } - ] - }, - { - "match": "[^'\") \\t]+", - "name": "variable.parameter.misc.css" - } - ] - }, - { - "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b(?!.*?(?<!@){)", - "name": "constant.other.rgb-value.css" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.id" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "4": { - "name": "variable.other.interpolation.less" - } - }, - "match": "((#)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)", - "name": "meta.selector.css" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.css" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.css" - } - }, - "name": "comment.block.css" - }, - { - "include": "source.css#numeric-values" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.begin.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.end.entity.css" - } - }, - "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", - "name": "meta.attribute-selector.css" - }, - { - "begin": "((@)import\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.import.less" - }, - "2": { - "name": "punctuation.definition.keyword.less" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.import.css", - "patterns": [ - { - "match": "(?<=\\(|,|\\s)\\b(reference|optional|once|multiple|less|inline)\\b(?=\\)|,)", - "name": "keyword.control.import.option.less" - }, - { - "include": "#brace_round" - }, - { - "include": "source.css#commas" - }, - { - "include": "#strings" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.fontface.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "match": "^\\s*((@)font-face\\b)", - "name": "meta.at-rule.fontface.css" - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.media.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "match": "^\\s*((@)media\\b)", - "name": "meta.at-rule.media.css" - }, - { - "include": "source.css#media-features" - }, - { - "match": "\\b(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)\\b", - "name": "support.constant.media-type.media.css" - }, - { - "match": "\\b(portrait|landscape)\\b", - "name": "support.constant.property-value.media-property.media.css" - }, - { - "captures": { - "1": { - "name": "support.function.less" - } - }, - "match": "(\\.[a-zA-Z0-9_-]+)\\s*(;|\\()" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.less" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.less" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.less" - } - ] - }, - { - "match": "(@|\\-\\-)[\\w-]+(?=\\s*)", - "name": "variable.other.less", - "captures": { - "1": { - "name": "punctuation.definition.variable.less" - } - } - }, - { - "include": "#variable_interpolation" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.property-list.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.property-list.end.bracket.curly.css" - } - }, - "name": "meta.property-list.css", - "patterns": [ - { - "include": "source.css#pseudo-elements" - }, - { - "include": "source.css#pseudo-classes" - }, - { - "include": "source.css#tag-names" - }, - { - "include": "source.css#commas" - }, - { - "include": "#variable_interpolation" - }, - { - "include": "source.css#property-names" - }, - { - "include": "#property_values" - }, - { - "include": "$self" - } - ] - }, - { - "match": "\\!\\s*important", - "name": "keyword.other.important.css" - }, - { - "match": "\\*|\\/|\\-|\\+|~|=|<=|>=|<|>", - "name": "keyword.operator.less" - }, - { - "match": "\\b(not|and|when)\\b", - "name": "keyword.control.logical.operator.less" - }, - { - "include": "source.css#tag-names" - }, - { - "match": "(?<![\\w-])[a-z][\\w&&[^A-Z]]*+-[\\w-&&[^A-Z]]+", - "name": "entity.name.tag.custom.css" - }, - { - "include": "source.css#pseudo-elements" - }, - { - "include": "source.css#pseudo-classes" - }, - { - "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": "#brace_round" - }, - { - "match": "\\[|\\]", - "name": "meta.brace.square.less" - }, - { - "match": ";", - "name": "punctuation.terminator.rule.css" - }, - { - "match": ":", - "name": "punctuation.separator.key-value.css" - }, - { - "match": "\\btrue\\b", - "name": "constant.language.boolean.less" - }, - { - "match": "\\bdefault\\b", - "name": "support.function.default.less" - }, - { - "match": "\\b(isurl|isstring|isnumber|iskeyword|iscolor)\\b", - "name": "support.function.type-checking.less" - }, - { - "match": "\\b(isunit|ispixel|ispercentage|isem)\\b", - "name": "support.function.unit-checking.less" - }, - { - "include": "source.css#property-keywords" - }, - { - "include": "source.css#color-keywords" - }, - { - "include": "source.css#commas" - }, - { - "include": "#less_builtin_functions" - }, - { - "include": "source.css#functions" - } - ], - "repository": { - "variable_interpolation": { - "match": "@{[a-zA-Z0-9_-]+}", - "name": "variable.other.interpolation.less" - }, - "strings": { - "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": "\\\\([0-9A-Fa-f]{1,6}|.)", - "name": "constant.character.escape.css" - }, - { - "include": "#variable_interpolation" - } - ] - }, - { - "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": "\\\\([0-9A-Fa-f]{1,6}|.)", - "name": "constant.character.escape.css" - }, - { - "include": "#variable_interpolation" - } - ] - } - ] - }, - "brace_round": { - "match": "\\(|\\)", - "name": "meta.brace.round.css" - }, - "property_values": { - "begin": "(?<!&)(:)\\s*(?!(\\s*{))(?!.*(?<!@){)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.key-value.css" - } - }, - "end": "\\s*(;)|\\s*(?=})", - "endCaptures": { - "1": { - "name": "punctuation.terminator.rule.css" - } - }, - "contentName": "meta.property-value.css", - "patterns": [ - { - "begin": "url(\\()", - "beginCaptures": { - "1": { - "name": "meta.brace.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.css" - } - }, - "name": "support.function.any-method.builtin.url.css", - "patterns": [ - { - "include": "#strings" - }, - { - "match": "(\\b|\\.{0,2}/)[^)]*\\b", - "name": "string.url.css" - } - ] - }, - { - "include": "source.css#property-keywords" - }, - { - "include": "source.css#color-keywords" - }, - { - "include": "source.css#commas" - }, - { - "include": "#less_builtin_functions" - }, - { - "include": "source.css#functions" - }, - { - "include": "$self" - } - ] - }, - "less_builtin_functions": { - "match": "\\b(abs|acos|alpha|argb|asin|atan|average|blue|calc|ceil|color|contrast|convert|convert|cos|darken|data-uri|desaturate|difference|e|escape|exclusion|extract|fade|fadein|fadeout|floor|format|green|greyscale|hardlight|hsl|hsla|hsv|hsva|hsvhue|hsvsaturation|hsvvalue|hue|length|lighten|lightness|luma|max|min|mix|mod|multiply|negation|overlay|percentage|pi|pow|red|replace|round|saturate|saturation|screen|sin|softlight|spin|sqrt|tan|unit)\\b", - "name": "support.function.any-method.builtin.less" - } - } -} diff --git a/lib/grammars/liquid.tmLanguage.json b/lib/grammars/liquid.tmLanguage.json deleted file mode 100644 index 45fbf6d..0000000 --- a/lib/grammars/liquid.tmLanguage.json +++ /dev/null @@ -1,987 +0,0 @@ -{ - "name": "liquid", - "scopeName": "text.html.liquid", - "fileTypes": ["liquid"], - "foldingStartMarker": "(?x)\n{%\n -?\n \\s*\n (capture|case|comment|for|form|if|javascript|paginate|schema|style)\n [^(%})]+\n%}\n", - "foldingStopMarker": "(?x)\n{%\n \\s*\n (endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)\n [^(%})]+\n%}\n", - "injections": { - "L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted": { - "patterns": [ - { - "include": "#injection" - } - ] - } - }, - "patterns": [ - { - "include": "#core" - } - ], - "repository": { - "core": { - "patterns": [ - { - "include": "#raw_tag" - }, - { - "include": "#comment_block" - }, - { - "include": "#style_codefence" - }, - { - "include": "#stylesheet_codefence" - }, - { - "include": "#json_codefence" - }, - { - "include": "#javascript_codefence" - }, - { - "include": "#object" - }, - { - "include": "#tag" - }, - { - "include": "text.html.basic" - } - ] - }, - "injection": { - "patterns": [ - { - "include": "#raw_tag" - }, - { - "include": "#comment_block" - }, - { - "include": "#object" - }, - { - "include": "#tag_injection" - } - ] - }, - "raw_tag": { - "begin": "{%-?\\s*(raw)\\s*-?%}", - "end": "{%-?\\s*(endraw)\\s*-?%}", - "beginCaptures": { - "1": { - "name": "entity.name.tag.liquid" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.tag.liquid" - } - }, - "name": "meta.entity.tag.raw.liquid", - "contentName": "string.unquoted.liquid", - "patterns": [ - { - "match": "(.(?!{%-?\\s*endraw\\s*-?%}))*." - } - ] - }, - "comment_block": { - "begin": "{%-?\\s*comment\\s*-?%}", - "end": "{%-?\\s*endcomment\\s*-?%}", - "name": "comment.block.liquid", - "patterns": [ - { - "include": "#comment_block" - }, - { - "match": "(.(?!{%-?\\s*(comment|endcomment)\\s*-?%}))*." - } - ] - }, - "style_codefence": { - "begin": "({%-?)\\s*(style)\\s*(-?%})", - "end": "({%-?)\\s*(endstyle)\\s*(-?%})", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.style.start.liquid" - }, - "1": { - "name": "punctuation.definition.tag.begin.liquid" - }, - "2": { - "name": "entity.name.tag.style.liquid" - }, - "3": { - "name": "punctuation.definition.tag.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "meta.tag.metadata.style.end.liquid" - }, - "1": { - "name": "punctuation.definition.tag.end.liquid" - }, - "2": { - "name": "entity.name.tag.style.liquid" - }, - "3": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "name": "meta.block.style.liquid", - "contentName": "meta.embedded.block.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - "stylesheet_codefence": { - "begin": "({%-?)\\s*(stylesheet)\\s*(-?%})", - "end": "({%-?)\\s*(endstylesheet)\\s*(-?%})", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.style.start.liquid" - }, - "1": { - "name": "punctuation.definition.tag.begin.liquid" - }, - "2": { - "name": "entity.name.tag.style.liquid" - }, - "3": { - "name": "punctuation.definition.tag.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "meta.tag.metadata.style.end.liquid" - }, - "1": { - "name": "punctuation.definition.tag.end.liquid" - }, - "2": { - "name": "entity.name.tag.style.liquid" - }, - "3": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "name": "meta.block.style.liquid", - "contentName": "meta.embedded.block.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - "json_codefence": { - "begin": "({%-?)\\s*(schema)\\s*(-?%})", - "end": "({%-?)\\s*(endschema)\\s*(-?%})", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.schema.start.liquid" - }, - "1": { - "name": "punctuation.definition.tag.begin.liquid" - }, - "2": { - "name": "entity.name.tag.schema.liquid" - }, - "3": { - "name": "punctuation.definition.tag.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "meta.tag.metadata.schema.end.liquid" - }, - "1": { - "name": "punctuation.definition.tag.end.liquid" - }, - "2": { - "name": "entity.name.tag.schema.liquid" - }, - "3": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "name": "meta.block.schema.liquid", - "contentName": "meta.embedded.block.json", - "patterns": [ - { - "include": "source.json" - } - ] - }, - "javascript_codefence": { - "begin": "({%-?)\\s*(javascript)\\s*(-?%})", - "end": "({%-?)\\s*(endjavascript)\\s*(-?%})", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.javascript.start.liquid" - }, - "1": { - "name": "punctuation.definition.tag.begin.liquid" - }, - "2": { - "name": "entity.name.tag.javascript.liquid" - }, - "3": { - "name": "punctuation.definition.tag.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "meta.tag.metadata.javascript.end.liquid" - }, - "1": { - "name": "punctuation.definition.tag.end.liquid" - }, - "2": { - "name": "entity.name.tag.javascript.liquid" - }, - "3": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "name": "meta.block.javascript.liquid", - "contentName": "meta.embedded.block.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - "tag": { - "begin": "(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){%-?", - "end": "-?%}", - "name": "meta.tag.liquid", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "patterns": [ - { - "include": "#tag_body" - } - ] - }, - "tag_injection": { - "begin": "(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){%-?(?!-?\\s*(endstyle|endjavascript|endcomment|endraw))", - "end": "-?%}", - "name": "meta.tag.liquid", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "patterns": [ - { - "include": "#tag_body" - } - ] - }, - "tag_body": { - "patterns": [ - { - "include": "#tag_liquid" - }, - { - "include": "#tag_assign" - }, - { - "include": "#tag_comment_inline" - }, - { - "include": "#tag_case" - }, - { - "include": "#tag_conditional" - }, - { - "include": "#tag_for" - }, - { - "include": "#tag_paginate" - }, - { - "include": "#tag_render" - }, - { - "include": "#tag_tablerow" - }, - { - "include": "#tag_expression" - } - ] - }, - "tag_liquid": { - "name": "meta.entity.tag.liquid.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(liquid)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.liquid.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#tag_comment_block_liquid" - }, - { - "include": "#tag_comment_inline_liquid" - }, - { - "include": "#tag_assign_liquid" - }, - { - "include": "#tag_case_liquid" - }, - { - "include": "#tag_conditional_liquid" - }, - { - "include": "#tag_for_liquid" - }, - { - "include": "#tag_paginate_liquid" - }, - { - "include": "#tag_render_liquid" - }, - { - "include": "#tag_tablerow_liquid" - }, - { - "include": "#tag_expression_liquid" - } - ] - }, - "tag_comment_block_liquid": { - "name": "comment.block.liquid", - "begin": "(?:^\\s*)(comment)\\b", - "end": "(?:^\\s*)(endcomment)\\b", - "patterns": [ - { - "include": "#tag_comment_block_liquid" - }, - { - "match": "(?:^\\s*)(?!(comment|endcomment)).*" - } - ] - }, - "tag_comment_inline": { - "name": "comment.line.number-sign.liquid", - "begin": "#", - "end": "(?=%})" - }, - "tag_comment_inline_liquid": { - "name": "comment.line.number-sign.liquid", - "begin": "(?:^\\s*)#.*", - "end": "$" - }, - "tag_tablerow": { - "name": "meta.entity.tag.tablerow.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(tablerow)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.tablerow.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#tag_tablerow_body" - } - ] - }, - "tag_tablerow_liquid": { - "name": "meta.entity.tag.tablerow.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(tablerow)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.tablerow.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#tag_tablerow_body" - } - ] - }, - "tag_tablerow_body": { - "patterns": [ - { - "match": "\\b(in)\\b", - "name": "keyword.control.liquid" - }, - { - "match": "\\b(cols|offset|limit):", - "name": "keyword.control.liquid" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_for": { - "name": "meta.entity.tag.for.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(for)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.for.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#tag_for_body" - } - ] - }, - "tag_for_liquid": { - "name": "meta.entity.tag.for.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(for)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.for.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#tag_for_body" - } - ] - }, - "tag_for_body": { - "patterns": [ - { - "match": "\\b(in|reversed)\\b", - "name": "keyword.control.liquid" - }, - { - "match": "\\b(offset|limit):", - "name": "keyword.control.liquid" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_assign": { - "name": "meta.entity.tag.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(assign|echo)\\b", - "beginCaptures": { - "1": { - "name": "entity.name.tag.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#filter" - }, - { - "include": "#attribute" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_assign_liquid": { - "name": "meta.entity.tag.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(assign|echo)\\b", - "beginCaptures": { - "1": { - "name": "entity.name.tag.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#filter" - }, - { - "include": "#attribute_liquid" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_render": { - "name": "meta.entity.tag.render.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(render)\\b", - "beginCaptures": { - "1": { - "name": "entity.name.tag.render.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#tag_render_special_keywords" - }, - { - "include": "#attribute" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_render_liquid": { - "name": "meta.entity.tag.render.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(render)\\b", - "beginCaptures": { - "1": { - "name": "entity.name.tag.render.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#tag_render_special_keywords" - }, - { - "include": "#attribute_liquid" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_render_special_keywords": { - "match": "\\b(with|as|for)\\b", - "name": "keyword.control.other.liquid" - }, - "tag_paginate": { - "name": "meta.entity.tag.paginate.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(paginate)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.paginate.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#tag_paginate_body" - } - ] - }, - "tag_paginate_liquid": { - "name": "meta.entity.tag.paginate.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(paginate)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.paginate.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#tag_paginate_body" - } - ] - }, - "tag_paginate_body": { - "patterns": [ - { - "match": "\\b(by)\\b", - "name": "keyword.control.liquid" - }, - { - "include": "#value_expression" - } - ] - }, - "tag_conditional": { - "name": "meta.entity.tag.conditional.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(if|elsif|unless)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#value_expression" - } - ] - }, - "tag_conditional_liquid": { - "name": "meta.entity.tag.conditional.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(if|elsif|unless)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#value_expression" - } - ] - }, - "tag_case": { - "name": "meta.entity.tag.case.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(case|when)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.case.liquid" - } - }, - "end": "(?=%})", - "patterns": [ - { - "include": "#value_expression" - } - ] - }, - "tag_case_liquid": { - "name": "meta.entity.tag.case.liquid", - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(case|when)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.case.liquid" - } - }, - "end": "$", - "patterns": [ - { - "include": "#value_expression" - } - ] - }, - "tag_expression_without_arguments": { - "patterns": [ - { - "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endunless|endif)\\b", - "captures": { - "1": { - "name": "keyword.control.conditional.liquid" - } - } - }, - { - "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endfor|endtablerow|endpaginate)\\b", - "captures": { - "1": { - "name": "keyword.control.loop.liquid" - } - } - }, - { - "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endcase)\\b", - "captures": { - "1": { - "name": "keyword.control.case.liquid" - } - } - }, - { - "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(capture|case|comment|for|form|if|javascript|paginate|schema|style)\\b", - "captures": { - "1": { - "name": "keyword.control.other.liquid" - } - } - }, - { - "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)\\b", - "captures": { - "1": { - "name": "keyword.control.other.liquid" - } - } - }, - { - "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(else|break|continue)\\b", - "captures": { - "1": { - "name": "keyword.control.other.liquid" - } - } - } - ] - }, - "tag_expression": { - "patterns": [ - { - "include": "#tag_expression_without_arguments" - }, - { - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(\\w+)", - "beginCaptures": { - "1": { - "name": "entity.name.tag.liquid" - } - }, - "end": "(?=%})", - "name": "meta.entity.tag.liquid", - "patterns": [ - { - "include": "#value_expression" - } - ] - } - ] - }, - "tag_expression_liquid": { - "patterns": [ - { - "include": "#tag_expression_without_arguments" - }, - { - "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(\\w+)", - "beginCaptures": { - "1": { - "name": "entity.name.tag.liquid" - } - }, - "end": "$", - "name": "meta.entity.tag.liquid", - "patterns": [ - { - "include": "#value_expression" - } - ] - } - ] - }, - "object": { - "begin": "(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){{-?", - "end": "-?}}", - "name": "meta.object.liquid", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.liquid" - } - }, - "patterns": [ - { - "include": "#filter" - }, - { - "include": "#attribute" - }, - { - "include": "#value_expression" - } - ] - }, - "invalid_range": { - "match": "\\((.(?!\\.\\.))+\\)", - "name": "invalid.illegal.range.liquid" - }, - "range": { - "begin": "\\(", - "end": "\\)", - "name": "meta.range.liquid", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.liquid" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.liquid" - } - }, - "patterns": [ - { - "match": "\\.\\.", - "name": "punctuation.range.liquid" - }, - { - "include": "#variable_lookup" - }, - { - "include": "#number" - } - ] - }, - "number": { - "match": "((-|\\+)\\s*)?[0-9]+(\\.[0-9]+)?", - "name": "constant.numeric.liquid" - }, - "string": { - "patterns": [ - { - "include": "#string_single" - }, - { - "include": "#string_double" - } - ] - }, - "string_double": { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.liquid" - }, - "string_single": { - "begin": "'", - "end": "'", - "name": "string.quoted.single.liquid" - }, - "operator": { - "match": "(?:(?<=\\s)|\\b)(\\=\\=|!\\=|\\>|\\<|\\>\\=|\\<\\=|or|and|contains)(?:(?=\\s)|\\b)", - "captures": { - "1": { - "name": "keyword.operator.expression.liquid" - } - } - }, - "language_constant": { - "match": "\\b(false|true|nil|blank)\\b|empty(?!\\?)", - "name": "constant.language.liquid" - }, - "attribute": { - "begin": "\\w+:", - "end": "(?=,|%}|}}|\\|)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.liquid" - } - }, - "patterns": [ - { - "include": "#value_expression" - } - ] - }, - "attribute_liquid": { - "begin": "\\w+:", - "end": "(?=,|\\|)|$", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.liquid" - } - }, - "patterns": [ - { - "include": "#value_expression" - } - ] - }, - "filter": { - "match": "\\|\\s*((?![\\.0-9])[a-zA-Z0-9_-]+\\:?)\\s*", - "captures": { - "1": { - "name": "support.function.liquid" - } - } - }, - "value_expression": { - "patterns": [ - { - "match": "(\\[)(\\|)(?=[^\\]]*)(?=\\])", - "captures": { - "2": { - "name": "invalid.illegal.filter.liquid" - }, - "3": { - "name": "invalid.illegal.filter.liquid" - } - } - }, - { - "match": "(?<=\\s)(\\+|\\-|\\/|\\*)(?=\\s)", - "name": "invalid.illegal.filter.liquid" - }, - { - "include": "#language_constant" - }, - { - "include": "#operator" - }, - { - "include": "#invalid_range" - }, - { - "include": "#range" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#variable_lookup" - } - ] - }, - "variable_lookup": { - "patterns": [ - { - "match": "\\b(additional_checkout_buttons|address|all_country_option_tags|all_products|article|articles|block|blog|blogs|canonical_url|cart|checkout|collection|collections|comment|content_for_additional_checkout_buttons|content_for_header|content_for_index|content_for_layout|country_option_tags|currency|current_page|current_tags|customer|customer_address|discount_allocation|discount_application|external_video|font|forloop|form|fulfillment|gift_card|handle|image|images|line_item|link|linklist|linklists|location|localization|metafield|model|model_source|order|page|page_description|page_image|page_title|pages|paginate|part|policy|powered_by_link|predictive_search|product|product_option|product_variant|recommendations|request|routes|script|scripts|search|section|selling_plan|selling_plan_allocation|selling_plan_group|settings|shipping_method|shop|shop_locale|store_availability|tablerow|tax_line|template|theme|transaction|unit_price_measurement|variant|video|video_source)\\b", - "name": "variable.language.liquid" - }, - { - "match": "((?<=\\w\\:\\s)\\w+)", - "name": "variable.parameter.liquid" - }, - { - "begin": "(?<=\\w)\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.begin.liquid" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.end.liquid" - } - }, - "name": "meta.brackets.liquid", - "patterns": [ - { - "include": "#string" - } - ] - }, - { - "match": "(?<=(\\w|\\])\\.)([-\\w]+\\??)", - "name": "variable.other.member.liquid" - }, - { - "match": "(?<=\\w)\\.(?=\\w)", - "name": "punctuation.accessor.liquid" - }, - { - "match": "(?i)[a-z_](\\w|(?:-(?!\\}\\})))*", - "name": "variable.other.liquid" - } - ] - } - } -} diff --git a/lib/grammars/lisp.tmLanguage.json b/lib/grammars/lisp.tmLanguage.json deleted file mode 100644 index e7ca6be..0000000 --- a/lib/grammars/lisp.tmLanguage.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "comment": "", - "fileTypes": ["lisp", "cl", "l", "mud", "el"], - "foldingStartMarker": "\\(", - "foldingStopMarker": "\\)", - "keyEquivalent": "^~L", - "name": "lisp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.lisp" - } - }, - "match": "(;).*$\\n?", - "name": "comment.line.semicolon.lisp" - }, - { - "captures": { - "1": { - "name": "storage.type.function-type.lisp" - }, - "2": { - "name": "entity.name.function.lisp" - } - }, - "match": "(?:\\()((?i:defgeneric|define-compiler-macro|define-method-combination|define-modify-macro|define-setf-expander|defmacro|defmethod|defsetf|defun||define-\\S+))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)", - "name": "meta.function.lisp" - }, - { - "match": "(?<=\\s)(?i:&allow-other-keys|&aux|&body|&environment|&key|&optional|&rest|&whole)(?=\\s+)", - "name": "meta.function-parameters.lisp" - }, - { - "captures": { - "1": { - "name": "storage.type.function-type.lisp" - }, - "2": { - "name": "entity.name.type.lisp" - } - }, - "match": "(?:\\()((?i:deftype|defstruct|define-condition|defpackage|defclass))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)" - }, - { - "captures": { - "1": { - "name": "storage.type.function-type.lisp" - }, - "2": { - "name": "entity.name.variable.lisp" - } - }, - "match": "(?:\\()((?i:defvar|defconstant|defparameter|define-symbol-macro))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.lisp" - } - }, - "match": "(#)(\\w|[\\\\+-=<>'\"&#])+", - "name": "constant.character.lisp" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.lisp" - }, - "3": { - "name": "punctuation.definition.variable.lisp" - } - }, - "match": "(?<=^|\\s|[()])(\\*)(\\S*)(\\*)(?=$|\\s|[()])", - "name": "variable.other.global.lisp" - }, - { - "match": "(?<=^|\\s|[()]):(\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])*", - "name": "keyword.constant.lisp" - }, - { - "match": "(?<=\\()(?i:\\*|\\*\\*|\\*\\*\\*|\\+|\\+\\+|\\+\\+\\+|\\-|/|//|///|/=|1\\+|1\\-|<|<=|=|>|>=|abort|abs|acons|acos|acosh|add-method|adjoin|adjust-array|adjustable-array-p|allocate-instance|alpha-char-p|alphanumericp|and|append|apply|apropos|apropos-list|aref|arithmetic-error|arithmetic-error-operands|arithmetic-error-operation|array|array-dimension|array-dimension-limit|array-dimensions|array-displacement|array-element-type|array-has-fill-pointer-p|array-in-bounds-p|array-rank|array-rank-limit|array-row-major-index|array-total-size|array-total-size-limit|arrayp|ash|asin|asinh|assert|assoc|assoc-if|assoc-if-not|atan|atanh|atom|base-char|base-string|bignum|bit|bit-and|bit-andc1|bit-andc2|bit-eqv|bit-ior|bit-nand|bit-nor|bit-not|bit-orc1|bit-orc2|bit-vector|bit-vector-p|bit-xor|block|boole|boole-1|boole-2|boole-and|boole-andc1|boole-andc2|boole-c1|boole-c2|boole-clr|boole-eqv|boole-ior|boole-nand|boole-nor|boole-orc1|boole-orc2|boole-set|boole-xor|boolean|both-case-p|boundp|break|broadcast-stream|broadcast-stream-streams|built-in-class|butlast|byte|byte-position|byte-size|caaaar|caaadr|caaar|caadar|caaddr|caadr|caar|cadaar|cadadr|cadar|caddar|cadddr|caddr|cadr|call-arguments-limit|call-method|call-next-method|car|case|catch|ccase|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cdar|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cddr|cdr|ceiling|cell-error|cell-error-name|cerror|change-class|char|char-code|char-code-limit|char-downcase|char-equal|char-greaterp|char-int|char-lessp|char-name|char-not-equal|char-not-greaterp|char-not-lessp|char-upcase|char/=|char<|char<=|char=|char>|char>=|character|characterp|check-type|cis|class|class-name|class-of|clear-input|clear-output|close|clrhash|code-char|coerce|compilation-speed|compile|compile-file|compile-file-pathname|compiled-function|compiled-function-p|compiler-macro|compiler-macro-function|complement|complex|complexp|compute-applicable-methods|compute-restarts|concatenate|concatenated-stream|concatenated-stream-streams|cond|condition|conjugate|cons|consp|constantly|constantp|continue|control-error|copy-alist|copy-list|copy-pprint-dispatch|copy-readtable|copy-seq|copy-structure|copy-symbol|copy-tree|cos|cosh|count|count-if|count-if-not|ctypecase|debug|decf|declaim|declaration|declare|decode-float|decode-universal-time|defclass|defconstant|defgeneric|define-compiler-macro|define-condition|define-method-combination|define-modify-macro|define-setf-expander|define-symbol-macro|defmacro|defmethod|defpackage|defparameter|defsetf|defstruct|deftype|defun|defvar|delete|delete-duplicates|delete-file|delete-if|delete-if-not|delete-package|denominator|deposit-field|describe|describe-object|destructuring-bind|digit-char|digit-char-p|directory|directory-namestring|disassemble|division-by-zero|do|do\\*|do-all-symbols|do-external-symbols|do-symbols|documentation|dolist|dotimes|double-float|double-float-epsilon|double-float-negative-epsilon|dpb|dribble|dynamic-extent|ecase|echo-stream|echo-stream-input-stream|echo-stream-output-stream|ed|eighth|elt|encode-universal-time|end-of-file|endp|enough-namestring|ensure-directories-exist|ensure-generic-function|eq|eql|equal|equalp|error|etypecase|eval|eval-when|evenp|every|exp|export|expt|extended-char|fboundp|fceiling|fdefinition|ffloor|fifth|file-author|file-error|file-error-pathname|file-length|file-namestring|file-position|file-stream|file-string-length|file-write-date|fill|fill-pointer|find|find-all-symbols|find-class|find-if|find-if-not|find-method|find-package|find-restart|find-symbol|finish-output|first|fixnum|flet|float|float-digits|float-precision|float-radix|float-sign|floating-point-inexact|floating-point-invalid-operation|floating-point-overflow|floating-point-underflow|floatp|floor|fmakunbound|force-output|format|formatter|fourth|fresh-line|fround|ftruncate|ftype|funcall|function|function-keywords|function-lambda-expression|functionp|gcd|generic-function|gensym|gentemp|get|get-decoded-time|get-dispatch-macro-character|get-internal-real-time|get-internal-run-time|get-macro-character|get-output-stream-string|get-properties|get-setf-expansion|get-universal-time|getf|gethash|go|graphic-char-p|handler-bind|handler-case|hash-table|hash-table-count|hash-table-p|hash-table-rehash-size|hash-table-rehash-threshold|hash-table-size|hash-table-test|host-namestring|identity|if|ignorable|ignore|ignore-errors|imagpart|import|in-package|incf|initialize-instance|inline|input-stream-p|inspect|integer|integer-decode-float|integer-length|integerp|interactive-stream-p|intern|internal-time-units-per-second|intersection|invalid-method-error|invoke-debugger|invoke-restart|invoke-restart-interactively|isqrt|keyword|keywordp|labels|lambda|lambda-list-keywords|lambda-parameters-limit|last|lcm|ldb|ldb-test|ldiff|least-negative-double-float|least-negative-long-float|least-negative-normalized-double-float|least-negative-normalized-long-float|least-negative-normalized-short-float|least-negative-normalized-single-float|least-negative-short-float|least-negative-single-float|least-positive-double-float|least-positive-long-float|least-positive-normalized-double-float|least-positive-normalized-long-float|least-positive-normalized-short-float|least-positive-normalized-single-float|least-positive-short-float|least-positive-single-float|length|let|let\\*|lisp-implementation-type|lisp-implementation-version|list|list\\*|list-all-packages|list-length|listen|listp|load|load-logical-pathname-translations|load-time-value|locally|log|logand|logandc1|logandc2|logbitp|logcount|logeqv|logical-pathname|logical-pathname-translations|logior|lognand|lognor|lognot|logorc1|logorc2|logtest|logxor|long-float|long-float-epsilon|long-float-negative-epsilon|long-site-name|loop|loop-finish|lower-case-p|machine-instance|machine-type|machine-version|macro-function|macroexpand|macroexpand-1|macrolet|make-array|make-broadcast-stream|make-concatenated-stream|make-condition|make-dispatch-macro-character|make-echo-stream|make-hash-table|make-instance|make-instances-obsolete|make-list|make-load-form|make-load-form-saving-slots|make-method|make-package|make-pathname|make-random-state|make-sequence|make-string|make-string-input-stream|make-string-output-stream|make-symbol|make-synonym-stream|make-two-way-stream|makunbound|map|map-into|mapc|mapcan|mapcar|mapcon|maphash|mapl|maplist|mask-field|max|member|member-if|member-if-not|merge|merge-pathnames|method|method-combination|method-combination-error|method-qualifiers|min|minusp|mismatch|mod|most-negative-double-float|most-negative-fixnum|most-negative-long-float|most-negative-short-float|most-negative-single-float|most-positive-double-float|most-positive-fixnum|most-positive-long-float|most-positive-short-float|most-positive-single-float|muffle-warning|multiple-value-bind|multiple-value-call|multiple-value-list|multiple-value-prog1|multiple-value-setq|multiple-values-limit|name-char|namestring|nbutlast|nconc|next-method-p|nil|nintersection|ninth|no-applicable-method|no-next-method|not|notany|notevery|notinline|nreconc|nreverse|nset-difference|nset-exclusive-or|nstring-capitalize|nstring-downcase|nstring-upcase|nsublis|nsubst|nsubst-if|nsubst-if-not|nsubstitute|nsubstitute-if|nsubstitute-if-not|nth|nth-value|nthcdr|null|number|numberp|numerator|nunion|oddp|open|open-stream-p|optimize|or|otherwise|output-stream-p|package|package-error|package-error-package|package-name|package-nicknames|package-shadowing-symbols|package-use-list|package-used-by-list|packagep|pairlis|parse-error|parse-integer|parse-namestring|pathname|pathname-device|pathname-directory|pathname-host|pathname-match-p|pathname-name|pathname-type|pathname-version|pathnamep|peek-char|phase|pi|plusp|pop|position|position-if|position-if-not|pprint|pprint-dispatch|pprint-exit-if-list-exhausted|pprint-fill|pprint-indent|pprint-linear|pprint-logical-block|pprint-newline|pprint-pop|pprint-tab|pprint-tabular|prin1|prin1-to-string|princ|princ-to-string|print|print-not-readable|print-not-readable-object|print-object|print-unreadable-object|probe-file|proclaim|prog|prog\\*|prog1|prog2|progn|program-error|progv|provide|psetf|psetq|push|pushnew|quote|random|random-state|random-state-p|rassoc|rassoc-if|rassoc-if-not|ratio|rational|rationalize|rationalp|read|read-byte|read-char|read-char-no-hang|read-delimited-list|read-from-string|read-line|read-preserving-whitespace|read-sequence|reader-error|readtable|readtable-case|readtablep|real|realp|realpart|reduce|reinitialize-instance|rem|remf|remhash|remove|remove-duplicates|remove-if|remove-if-not|remove-method|remprop|rename-file|rename-package|replace|require|rest|restart|restart-bind|restart-case|restart-name|return|return-from|revappend|reverse|room|rotatef|round|row-major-aref|rplaca|rplacd|safety|satisfies|sbit|scale-float|schar|search|second|sequence|serious-condition|set|set-difference|set-dispatch-macro-character|set-exclusive-or|set-macro-character|set-pprint-dispatch|set-syntax-from-char|setf|setq|seventh|shadow|shadowing-import|shared-initialize|shiftf|short-float|short-float-epsilon|short-float-negative-epsilon|short-site-name|signal|signed-byte|signum|simple-array|simple-base-string|simple-bit-vector|simple-bit-vector-p|simple-condition|simple-condition-format-arguments|simple-condition-format-control|simple-error|simple-string|simple-string-p|simple-type-error|simple-vector|simple-vector-p|simple-warning|sin|single-float|single-float-epsilon|single-float-negative-epsilon|sinh|sixth|sleep|slot-boundp|slot-exists-p|slot-makunbound|slot-missing|slot-unbound|slot-value|software-type|software-version|some|sort|space|special|special-operator-p|speed|sqrt|stable-sort|standard|standard-char|standard-char-p|standard-class|standard-generic-function|standard-method|standard-object|step|storage-condition|store-value|stream|stream-element-type|stream-error|stream-error-stream|stream-external-format|streamp|string|string-capitalize|string-downcase|string-equal|string-greaterp|string-left-trim|string-lessp|string-not-equal|string-not-greaterp|string-not-lessp|string-right-trim|string-stream|string-trim|string-upcase|string/=|string<|string<=|string=|string>|string>=|stringp|structure|structure-class|structure-object|style-warning|sublis|subseq|subsetp|subst|subst-if|subst-if-not|substitute|substitute-if|substitute-if-not|subtypep|svref|sxhash|symbol|symbol-function|symbol-macrolet|symbol-name|symbol-package|symbol-plist|symbol-value|symbolp|synonym-stream|synonym-stream-symbol|t|tagbody|tailp|tan|tanh|tenth|terpri|the|third|throw|time|trace|translate-logical-pathname|translate-pathname|tree-equal|truename|truncate|two-way-stream|two-way-stream-input-stream|two-way-stream-output-stream|type|type-error|type-error-datum|type-error-expected-type|type-of|typecase|typep|unbound-slot|unbound-slot-instance|unbound-variable|undefined-function|unexport|unintern|union|unless|unread-char|unsigned-byte|untrace|unuse-package|unwind-protect|update-instance-for-different-class|update-instance-for-redefined-class|upgraded-array-element-type|upgraded-complex-part-type|upper-case-p|use-package|use-value|user-homedir-pathname|values|values-list|variable|vector|vector-pop|vector-push|vector-push-extend|vectorp|warn|warning|when|wild-pathname-p|with-accessors|with-compilation-unit|with-condition-restarts|with-hash-table-iterator|with-input-from-string|with-open-file|with-open-stream|with-output-to-string|with-package-iterator|with-simple-restart|with-slots|with-standard-io-syntax|write|write-byte|write-char|write-line|write-sequence|write-string|write-to-string|y-or-n-p|yes-or-no-p|zerop|with-\\S+)(?=\\s+)", - "name": "keyword.control.lisp" - }, - { - "match": "(?<=^|\\s|[()])(?i:nil|t)(?=$|\\s|[()])", - "name": "constant.language.lisp" - }, - { - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b", - "name": "constant.numeric.lisp" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.lisp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.lisp" - } - }, - "name": "string.quoted.double.lisp", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.lisp" - } - ] - } - ], - "scopeName": "source.lisp", - "uuid": "00D451C9-6B1D-11D9-8DFA-000D93589AF6" -} diff --git a/lib/grammars/logo.tmLanguage.json b/lib/grammars/logo.tmLanguage.json deleted file mode 100644 index 4abee2a..0000000 --- a/lib/grammars/logo.tmLanguage.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "comment": "Roughed out by Paul Bissex <http://e-scribe.com/news/>", - "fileTypes": [], - "keyEquivalent": "^~L", - "name": "logo", - "patterns": [ - { - "match": "^to [\\w.]+", - "name": "entity.name.function.logo" - }, - { - "match": "continue|do\\.until|do\\.while|end|for(each)?|if(else|falsetrue|)|repeat|stop|until", - "name": "keyword.control.logo" - }, - { - "match": "\\b(\\.defmacro|\\.eq|\\.macro|\\.maybeoutput|\\.setbf|\\.setfirst|\\.setitem|\\.setsegmentsize|allopen|allowgetset|and|apply|arc|arctan|arity|array|arrayp|arraytolist|ascii|ashift|back|background|backslashedp|beforep|bitand|bitnot|bitor|bitxor|buried|buriedp|bury|buryall|buryname|butfirst|butfirsts|butlast|bye|cascade|case|caseignoredp|catch|char|clean|clearscreen|cleartext|close|closeall|combine|cond|contents|copydef|cos|count|crossmap|cursor|define|definedp|dequeue|difference|dribble|edall|edit|editfile|edn|edns|edpl|edpls|edps|emptyp|eofp|epspict|equalp|erall|erase|erasefile|ern|erns|erpl|erpls|erps|erract|error|exp|fence|filep|fill|filter|find|first|firsts|forever|form|forward|fput|fullprintp|fullscreen|fulltext|gc|gensym|global|goto|gprop|greaterp|heading|help|hideturtle|home|ignore|int|invoke|iseq|item|keyp|label|last|left|lessp|list|listp|listtoarray|ln|load|loadnoisily|loadpict|local|localmake|log10|lowercase|lput|lshift|macroexpand|macrop|make|map|map.se|mdarray|mditem|mdsetitem|member|memberp|minus|modulo|name|namelist|namep|names|nodes|nodribble|norefresh|not|numberp|openappend|openread|openupdate|openwrite|or|output|palette|parse|pause|pen|pencolor|pendown|pendownp|penerase|penmode|penpaint|penreverse|pensize|penup|pick|plist|plistp|plists|pllist|po|poall|pon|pons|pop|popl|popls|pops|pos|pot|pots|power|pprop|prefix|primitivep|print|printdepthlimit|printwidthlimit|procedurep|procedures|product|push|queue|quoted|quotient|radarctan|radcos|radsin|random|rawascii|readchar|readchars|reader|readlist|readpos|readrawline|readword|redefp|reduce|refresh|remainder|remdup|remove|remprop|repcount|rerandom|reverse|right|round|rseq|run|runparse|runresult|save|savel|savepict|screenmode|scrunch|sentence|setbackground|setcursor|seteditor|setheading|sethelploc|setitem|setlibloc|setmargins|setpalette|setpen|setpencolor|setpensize|setpos|setprefix|setread|setreadpos|setscrunch|settemploc|settextcolor|setwrite|setwritepos|setx|setxy|sety|shell|show|shownp|showturtle|sin|splitscreen|sqrt|standout|startup|step|stepped|steppedp|substringp|sum|tag|test|text|textscreen|thing|throw|towards|trace|traced|tracedp|transfer|turtlemode|type|unbury|unburyall|unburyname|unburyonedit|unstep|untrace|uppercase|usealternatenam|wait|while|window|word|wordp|wrap|writepos|writer|xcor|ycor)\\b", - "name": "keyword.other.logo" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.logo" - } - }, - "match": "(\\:)(?:\\|[^|]*\\||[-\\w.]*)+", - "name": "variable.parameter.logo" - }, - { - "match": "\"(?:\\|[^|]*\\||[-\\w.]*)+", - "name": "string.other.word.logo" - }, - { - "begin": "(^[ \\t]+)?(?=;)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.logo" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": ";", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.logo" - } - }, - "end": "\\n", - "name": "comment.line.semicolon.logo" - } - ] - } - ], - "scopeName": "source.logo", - "uuid": "7613EC24-B0F9-4D01-8706-1D54098BFFD8" -} diff --git a/lib/grammars/lua.tmLanguage.json b/lib/grammars/lua.tmLanguage.json deleted file mode 100644 index bcd70cf..0000000 --- a/lib/grammars/lua.tmLanguage.json +++ /dev/null @@ -1,942 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/sumneko/lua.tmbundle/blob/master/Syntaxes/Lua.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/sumneko/lua.tmbundle/commit/3a18700941737c3ab66ac5964696f141aee61800", - "name": "lua", - "scopeName": "source.lua", - "patterns": [ - { - "begin": "\\b(?:(local)\\s+)?(function)\\b(?![,:])", - "beginCaptures": { - "1": { - "name": "keyword.local.lua" - }, - "2": { - "name": "keyword.control.lua" - } - }, - "end": "(?<=[\\)\\-{}\\[\\]\"'])", - "name": "meta.function.lua", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.lua" - } - }, - "end": "(\\))|(?=[\\-\\.{}\\[\\]\"'])", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.finish.lua" - } - }, - "name": "meta.parameter.lua", - "patterns": [ - { - "include": "#comment" - }, - { - "match": "[a-zA-Z_][a-zA-Z0-9_]*", - "name": "variable.parameter.function.lua" - }, - { - "match": ",", - "name": "punctuation.separator.arguments.lua" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.arguments.lua" - } - }, - "end": "(?=[\\),])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - } - ] - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=:)", - "name": "entity.name.class.lua" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "entity.name.function.lua" - } - ] - }, - { - "match": "(?<![\\w\\d.])0[xX][0-9A-Fa-f]+(\\.[0-9A-Fa-f]*)?([eE]-?\\d*)?([pP][-+]\\d+)?", - "name": "constant.numeric.float.hexadecimal.lua" - }, - { - "match": "(?<![\\w\\d.])0[xX]\\.[0-9A-Fa-f]+([eE]-?\\d*)?([pP][-+]\\d+)?", - "name": "constant.numeric.float.hexadecimal.lua" - }, - { - "match": "(?<![\\w\\d.])0[xX][0-9A-Fa-f]+(?![pPeE.0-9])", - "name": "constant.numeric.integer.hexadecimal.lua" - }, - { - "match": "(?<![\\w\\d.])\\d+(\\.\\d*)?([eE]-?\\d*)?", - "name": "constant.numeric.float.lua" - }, - { - "match": "(?<![\\w\\d.])\\.\\d+([eE]-?\\d*)?", - "name": "constant.numeric.float.lua" - }, - { - "match": "(?<![\\w\\d.])\\d+(?![pPeE.0-9])", - "name": "constant.numeric.integer.lua" - }, - { - "include": "#string" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.lua" - } - }, - "match": "\\A(#!).*$\\n?", - "name": "comment.line.shebang.lua" - }, - { - "include": "#comment" - }, - { - "captures": { - "1": { - "name": "keyword.control.goto.lua" - }, - "2": { - "name": "string.tag.lua" - } - }, - "match": "\\b(goto)\\s+([a-zA-Z_][a-zA-Z0-9_]*)" - }, - { - "captures": { - "1": { - "name": "punctuation.section.embedded.begin.lua" - }, - "2": { - "name": "punctuation.section.embedded.end.lua" - } - }, - "match": "(::)\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*(::)", - "name": "string.tag.lua" - }, - { - "match": "<\\s*(const|close)\\s*>", - "captures": { - "1": { - "name": "string.tag.lua" - } - } - }, - { - "match": "\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>", - "name": "storage.type.generic.lua" - }, - { - "match": "\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\b", - "name": "keyword.control.lua" - }, - { - "match": "\\b(local|global)\\b", - "name": "keyword.local.lua" - }, - { - "match": "\\b(function)\\b(?![,:])", - "name": "keyword.control.lua" - }, - { - "match": "(?<![^.]\\.|:)\\b(false|nil(?!:)|true|_ENV|_G|_VERSION|math\\.(pi|huge|maxinteger|mininteger)|utf8\\.charpattern|io\\.(stdin|stdout|stderr)|package\\.(config|cpath|loaded|loaders|path|preload|searchers))\\b|(?<![.])\\.{3}(?!\\.)", - "name": "constant.language.lua" - }, - { - "match": "(?<![^.]\\.|:)\\b(self)\\b", - "name": "variable.language.self.lua" - }, - { - "match": "(?<![^.]\\.|:)\\b(assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|loadstring|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\\b(?!\\s*=(?!=))", - "name": "support.function.lua" - }, - { - "match": "(?<![^.]\\.|:)\\b(async)\\b(?!\\s*=(?!=))", - "name": "entity.name.tag.lua" - }, - { - "match": "(?<![^.]\\.|:)\\b(coroutine\\.(create|isyieldable|close|resume|running|status|wrap|yield)|string\\.(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)|table\\.(concat|insert|maxn|move|pack|remove|sort|unpack)|math\\.(abs|acos|asin|atan2?|ceil|cosh?|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pow|rad|random|randomseed|sinh?|sqrt|tanh?|tointeger|type)|io\\.(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|os\\.(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(loadlib|seeall|searchpath)|debug\\.(debug|[gs]etfenv|[gs]ethook|getinfo|[gs]etlocal|[gs]etmetatable|getregistry|[gs]etupvalue|[gs]etuservalue|set[Cc]stacklimit|traceback|upvalueid|upvaluejoin)|bit32\\.(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)|utf8\\.(char|codes|codepoint|len|offset))\\b(?!\\s*=(?!=))", - "name": "support.function.library.lua" - }, - { - "match": "\\b(and|or|not|\\|\\||\\&\\&|\\!)\\b", - "name": "keyword.operator.lua" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*(?:[({\"']|\\[\\[))", - "name": "support.function.any-method.lua" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*\\??:)", - "name": "entity.name.class.lua" - }, - { - "match": "(?<=[^.]\\.|:)\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*=\\s*\\b(function)\\b)", - "name": "entity.other.attribute.lua" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*=\\s*\\b(function)\\b)", - "name": "variable.other.lua" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*=\\s*\\b(function)\\b)", - "name": "entity.name.function.lua" - }, - { - "match": "\\+|-|%|#|\\*|\\/|\\^|==?|~=|!=|<=?|>=?|(?<!\\.)\\.{2}(?!\\.)", - "name": "keyword.operator.lua" - } - ], - "repository": { - "escaped_char": { - "patterns": [ - { - "match": "\\\\[abfnrtv\\\\\"'\\n]", - "name": "constant.character.escape.lua" - }, - { - "match": "\\\\z[\\n\\t ]*", - "name": "constant.character.escape.lua" - }, - { - "match": "\\\\\\d{1,3}", - "name": "constant.character.escape.byte.lua" - }, - { - "match": "\\\\x[0-9A-Fa-f][0-9A-Fa-f]", - "name": "constant.character.escape.byte.lua" - }, - { - "match": "\\\\u\\{[0-9A-Fa-f]+\\}", - "name": "constant.character.escape.unicode.lua" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.character.escape.lua" - } - ] - }, - "string": { - "patterns": [ - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.lua" - } - }, - "end": "'[ \\t]*|(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.lua" - } - }, - "name": "string.quoted.single.lua", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.lua" - } - }, - "end": "\"[ \\t]*|(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.lua" - } - }, - "name": "string.quoted.double.lua", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.lua" - } - }, - "end": "`[ \\t]*|(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.lua" - } - }, - "name": "string.quoted.double.lua" - }, - { - "begin": "(?<=\\.cdef)\\s*(\\[(=*)\\[)", - "beginCaptures": { - "0": { - "name": "string.quoted.other.multiline.lua" - }, - "1": { - "name": "punctuation.definition.string.begin.lua" - } - }, - "contentName": "meta.embedded.lua", - "end": "(\\]\\2\\])[ \\t]*", - "endCaptures": { - "0": { - "name": "string.quoted.other.multiline.lua" - }, - "1": { - "name": "punctuation.definition.string.end.lua" - } - }, - "patterns": [ - { - "include": "source.c" - } - ] - }, - { - "begin": "(?<!--)\\[(=*)\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.lua" - } - }, - "end": "\\]\\1\\][ \\t]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.lua" - } - }, - "name": "string.quoted.other.multiline.lua" - } - ] - }, - "comment": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=--)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.lua" - } - }, - "end": "(?!\\G)((?!^)[ \\t]+\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.whitespace.comment.trailing.lua" - } - }, - "patterns": [ - { - "begin": "--\\[(=*)\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.lua" - } - }, - "end": "\\]\\1\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.lua" - } - }, - "name": "comment.block.lua", - "patterns": [ - { - "include": "#emmydoc" - }, - { - "include": "#ldoc_tag" - } - ] - }, - { - "begin": "----", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.lua" - } - }, - "end": "\\n", - "name": "comment.line.double-dash.lua" - }, - { - "begin": "---", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.lua" - } - }, - "end": "\\n", - "name": "comment.line.double-dash.documentation.lua", - "patterns": [ - { - "include": "#emmydoc" - }, - { - "include": "#ldoc_tag" - } - ] - }, - { - "begin": "--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.lua" - } - }, - "end": "\\n", - "name": "comment.line.double-dash.lua", - "patterns": [ - { - "include": "#ldoc_tag" - } - ] - } - ] - }, - { - "begin": "\\/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.lua" - } - }, - "end": "\\*\\/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.lua" - } - }, - "name": "comment.block.lua", - "patterns": [ - { - "include": "#emmydoc" - }, - { - "include": "#ldoc_tag" - } - ] - } - ] - }, - "emmydoc": { - "patterns": [ - { - "begin": "(?<=---[ \\t]*)@class", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", - "name": "support.class.lua" - }, - { - "match": ":|,", - "name": "keyword.operator.lua" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@enum", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", - "beginCaptures": { - "0": { - "name": "variable.lua" - } - }, - "end": "(?=\\n)" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@type", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@alias", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", - "beginCaptures": { - "0": { - "name": "variable.lua" - } - }, - "end": "(?=[\\n#])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - } - ] - }, - { - "begin": "(?<=---[ \\t]*)(@operator)\\s*(\\b[a-z]+)?", - "beginCaptures": { - "1": { - "name": "storage.type.annotation.lua" - }, - "2": { - "name": "support.function.library.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@cast", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", - "beginCaptures": { - "0": { - "name": "variable.other.lua" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "include": "#emmydoc.type" - }, - { - "match": "([+-|])", - "name": "keyword.operator.lua" - } - ] - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@param", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(\\??)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.lua" - }, - "2": { - "name": "keyword.operator.lua" - } - }, - "end": "(?=[\\n#])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@return", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "match": "\\?", - "name": "keyword.operator.lua" - }, - { - "include": "#emmydoc.type" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@field", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "(\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b|(\\[))(\\??)", - "beginCaptures": { - "2": { - "name": "entity.name.variable.lua" - }, - "3": { - "name": "keyword.operator.lua" - } - }, - "end": "(?=[\\n#])", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#emmydoc.type" - }, - { - "match": "\\]", - "name": "keyword.operator.lua" - } - ] - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@generic", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "beginCaptures": { - "0": { - "name": "storage.type.generic.lua" - } - }, - "end": "(?=\\n)|(,)", - "endCaptures": { - "0": { - "name": "keyword.operator.lua" - } - }, - "patterns": [ - { - "match": ":", - "name": "keyword.operator.lua" - }, - { - "include": "#emmydoc.type" - } - ] - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@vararg", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@overload", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "include": "#emmydoc.type" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@deprecated", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])" - }, - { - "begin": "(?<=---[ \\t]*)@meta", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])" - }, - { - "begin": "(?<=---[ \\t]*)@private", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])" - }, - { - "begin": "(?<=---[ \\t]*)@protected", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])" - }, - { - "begin": "(?<=---[ \\t]*)@package", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])" - }, - { - "begin": "(?<=---[ \\t]*)@version", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "match": "\\b(5\\.1|5\\.2|5\\.3|5\\.4|JIT)\\b", - "name": "support.class.lua" - }, - { - "match": ",|\\>|\\<", - "name": "keyword.operator.lua" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@see", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", - "name": "support.class.lua" - }, - { - "match": "#", - "name": "keyword.operator.lua" - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@diagnostic", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "begin": "([a-zA-Z_\\-0-9]+)[ \\t]*(:)?", - "beginCaptures": { - "1": { - "name": "keyword.other.unit" - }, - "2": { - "name": "keyword.operator.unit" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)", - "name": "support.class.lua" - }, - { - "match": ",", - "name": "keyword.operator.lua" - } - ] - } - ] - }, - { - "begin": "(?<=---[ \\t]*)@module", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "include": "#string" - } - ] - }, - { - "match": "(?<=---[ \\t]*)@(async|nodiscard)", - "name": "storage.type.annotation.lua" - }, - { - "begin": "(?<=---)\\|\\s*[\\>\\+]?", - "beginCaptures": { - "0": { - "name": "storage.type.annotation.lua" - } - }, - "end": "(?=[\\n@#])", - "patterns": [ - { - "include": "#string" - } - ] - } - ] - }, - "emmydoc.type": { - "patterns": [ - { - "begin": "\\bfun\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.lua" - } - }, - "end": "(?=[\\s#])", - "patterns": [ - { - "match": "[\\(\\),:\\?][ \\t]*", - "name": "keyword.operator.lua" - }, - { - "match": "([a-zA-Z_][a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]*)(?<!,)[ \\t]*(?=\\??:)", - "name": "entity.name.variable.lua" - }, - { - "include": "#emmydoc.type" - }, - { - "include": "#string" - } - ] - }, - { - "match": "\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>", - "name": "storage.type.generic.lua" - }, - { - "match": "\\basync\\b", - "name": "entity.name.tag.lua" - }, - { - "match": "[\\{\\}\\:\\,\\?\\|\\`][ \\t]*", - "name": "keyword.operator.lua" - }, - { - "begin": "(?=[a-zA-Z_\\.\\*\"'\\[])", - "end": "(?=[\\s\\)\\,\\?\\:\\}\\|#])", - "patterns": [ - { - "match": "([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?<!,)[ \\t]*", - "name": "support.type.lua" - }, - { - "match": "(\\.\\.\\.)[ \\t]*", - "name": "constant.language.lua" - }, - { - "include": "#string" - } - ] - } - ] - }, - "ldoc_tag": { - "match": "\\G[ \\t]*(@)(alias|annotation|author|charset|class|classmod|comment|constructor|copyright|description|example|export|factory|field|file|fixme|function|include|lfunction|license|local|module|name|param|pragma|private|raise|release|return|script|section|see|set|static|submodule|summary|tfield|thread|tparam|treturn|todo|topic|type|usage|warning|within)\\b", - "end": "(?!@)\\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.ldoc" - }, - "2": { - "name": "storage.type.class.ldoc" - } - } - } - } -} diff --git a/lib/grammars/make.tmLanguage.json b/lib/grammars/make.tmLanguage.json deleted file mode 100644 index 439f758..0000000 --- a/lib/grammars/make.tmLanguage.json +++ /dev/null @@ -1,634 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/fadeevab/make.tmbundle/blob/master/Syntaxes/Makefile.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/fadeevab/make.tmbundle/commit/1d4c0b541959995db098df751ffc129da39a294b", - "name": "make", - "scopeName": "source.makefile", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variables" - }, - { - "include": "#variable-assignment" - }, - { - "include": "#directives" - }, - { - "include": "#recipe" - }, - { - "include": "#target" - } - ], - "repository": { - "comma": { - "match": ",", - "name": "punctuation.separator.delimeter.comma.makefile" - }, - "comment": { - "begin": "(^[ ]+)?((?<!\\\\)(\\\\\\\\)*)(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.makefile" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.makefile" - } - }, - "end": "(?=[^\\\\])$", - "name": "comment.line.number-sign.makefile", - "patterns": [ - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - } - ] - } - ] - }, - "directives": { - "patterns": [ - { - "begin": "^[ ]*([s\\-]?include)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.include.makefile" - } - }, - "end": "^", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variables" - }, - { - "match": "%", - "name": "constant.other.placeholder.makefile" - } - ] - }, - { - "begin": "^[ ]*(vpath)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.vpath.makefile" - } - }, - "end": "^", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variables" - }, - { - "match": "%", - "name": "constant.other.placeholder.makefile" - } - ] - }, - { - "begin": "^\\s*(?:(override)\\s*)?(define)\\s*([^\\s]+)\\s*(=|\\?=|:=|\\+=)?(?=\\s)", - "captures": { - "1": { - "name": "keyword.control.override.makefile" - }, - "2": { - "name": "keyword.control.define.makefile" - }, - "3": { - "name": "variable.other.makefile" - }, - "4": { - "name": "punctuation.separator.key-value.makefile" - } - }, - "end": "^\\s*(endef)\\b", - "name": "meta.scope.conditional.makefile", - "patterns": [ - { - "begin": "\\G(?!\\n)", - "end": "^", - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "include": "#variables" - }, - { - "include": "#directives" - } - ] - }, - { - "begin": "^[ ]*(export)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.$1.makefile" - } - }, - "end": "^", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-assignment" - }, - { - "match": "[^\\s]+", - "name": "variable.other.makefile" - } - ] - }, - { - "begin": "^[ ]*(override|private)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.$1.makefile" - } - }, - "end": "^", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-assignment" - } - ] - }, - { - "begin": "^[ ]*(unexport|undefine)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.$1.makefile" - } - }, - "end": "^", - "patterns": [ - { - "include": "#comment" - }, - { - "match": "[^\\s]+", - "name": "variable.other.makefile" - } - ] - }, - { - "begin": "^\\s*(ifeq|ifneq|ifdef|ifndef)(?=\\s)", - "captures": { - "1": { - "name": "keyword.control.$1.makefile" - } - }, - "end": "^\\s*(endif)\\b", - "name": "meta.scope.conditional.makefile", - "patterns": [ - { - "begin": "\\G", - "end": "^", - "name": "meta.scope.condition.makefile", - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#variables" - }, - { - "include": "#comment" - } - ] - }, - { - "begin": "^\\s*else(?=\\s)\\s*(ifeq|ifneq|ifdef|ifndef)*(?=\\s)", - "beginCaptures": { - "0": { - "name": "keyword.control.else.makefile" - } - }, - "end": "^", - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#variables" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "$self" - } - ] - } - ] - }, - "target": { - "begin": "^(?!\\t)([^:]*)(:)(?!\\=)", - "beginCaptures": { - "1": { - "patterns": [ - { - "captures": { - "1": { - "name": "support.function.target.$1.makefile" - } - }, - "match": "^\\s*(\\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\\s*$" - }, - { - "begin": "(?=\\S)", - "end": "(?=\\s|$)", - "name": "entity.name.function.target.makefile", - "patterns": [ - { - "include": "#variables" - }, - { - "match": "%", - "name": "constant.other.placeholder.makefile" - } - ] - } - ] - }, - "2": { - "name": "punctuation.separator.key-value.makefile" - } - }, - "end": "[^\\\\]$", - "name": "meta.scope.target.makefile", - "patterns": [ - { - "begin": "\\G", - "end": "(?=[^\\\\])$", - "name": "meta.scope.prerequisites.makefile", - "patterns": [ - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - }, - { - "match": "%|\\*", - "name": "constant.other.placeholder.makefile" - }, - { - "include": "#comment" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "recipe": { - "begin": "^\\t([+\\-@]*)", - "beginCaptures": { - "1": { - "name": "keyword.control.$1.makefile" - } - }, - "end": "[^\\\\]$", - "name": "meta.scope.recipe.makefile", - "patterns": [ - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - }, - { - "include": "#variables" - } - ] - }, - "variable-assignment": { - "begin": "(^[ ]*|\\G\\s*)([^\\s:#=]+)\\s*((?<![?:+!])=|\\?=|:=|\\+=|!=)", - "beginCaptures": { - "2": { - "name": "variable.other.makefile", - "patterns": [ - { - "include": "#variables" - } - ] - }, - "3": { - "name": "punctuation.separator.key-value.makefile" - } - }, - "end": "\\n", - "patterns": [ - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - }, - { - "include": "#comment" - }, - { - "include": "#variables" - } - ] - }, - "interpolation": { - "patterns": [ - { - "include": "#parentheses-interpolation" - }, - { - "include": "#braces-interpolation" - } - ] - }, - "parentheses-interpolation": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#interpolation" - } - ] - }, - "braces-interpolation": { - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#interpolation" - } - ] - }, - "variables": { - "patterns": [ - { - "include": "#simple-variable" - }, - { - "include": "#variable-parentheses" - }, - { - "include": "#variable-braces" - } - ] - }, - "simple-variable": { - "patterns": [ - { - "match": "\\$[^(){}]", - "name": "variable.language.makefile" - } - ] - }, - "variable-parentheses": { - "patterns": [ - { - "begin": "\\$\\(", - "captures": { - "0": { - "name": "punctuation.definition.variable.makefile" - } - }, - "end": "\\)|((?<!\\\\)\\n)", - "name": "string.interpolated.makefile", - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#builtin-variable-parentheses" - }, - { - "include": "#function-variable-parentheses" - }, - { - "include": "#flavor-variable-parentheses" - }, - { - "include": "#another-variable-parentheses" - } - ] - } - ] - }, - "variable-braces": { - "patterns": [ - { - "begin": "\\${", - "captures": { - "0": { - "name": "punctuation.definition.variable.makefile" - } - }, - "end": "}|((?<!\\\\)\\n)", - "name": "string.interpolated.makefile", - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#builtin-variable-braces" - }, - { - "include": "#function-variable-braces" - }, - { - "include": "#flavor-variable-braces" - }, - { - "include": "#another-variable-braces" - } - ] - } - ] - }, - "builtin-variable-parentheses": { - "patterns": [ - { - "match": "(?<=\\()(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\.LIBPATTERNS)(?=\\s*\\))", - "name": "variable.language.makefile" - } - ] - }, - "builtin-variable-braces": { - "patterns": [ - { - "match": "(?<={)(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\.LIBPATTERNS)(?=\\s*})", - "name": "variable.language.makefile" - } - ] - }, - "function-variable-parentheses": { - "patterns": [ - { - "begin": "(?<=\\()(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addsuffix|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value|file|guile)\\s", - "beginCaptures": { - "1": { - "name": "support.function.$1.makefile" - } - }, - "end": "(?=\\)|((?<!\\\\)\\n))", - "name": "meta.scope.function-call.makefile", - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#variables" - }, - { - "include": "#interpolation" - }, - { - "match": "%|\\*", - "name": "constant.other.placeholder.makefile" - }, - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - } - ] - } - ] - }, - "function-variable-braces": { - "patterns": [ - { - "begin": "(?<={)(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addsuffix|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value|file|guile)\\s", - "beginCaptures": { - "1": { - "name": "support.function.$1.makefile" - } - }, - "end": "(?=}|((?<!\\\\)\\n))", - "name": "meta.scope.function-call.makefile", - "patterns": [ - { - "include": "#comma" - }, - { - "include": "#variables" - }, - { - "include": "#interpolation" - }, - { - "match": "%|\\*", - "name": "constant.other.placeholder.makefile" - }, - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - } - ] - } - ] - }, - "flavor-variable-parentheses": { - "patterns": [ - { - "begin": "(?<=\\()(origin|flavor)\\s(?=[^\\s)]+\\s*\\))", - "contentName": "variable.other.makefile", - "beginCaptures": { - "1": { - "name": "support.function.$1.makefile" - } - }, - "end": "(?=\\))", - "name": "meta.scope.function-call.makefile", - "patterns": [ - { - "include": "#variables" - } - ] - } - ] - }, - "flavor-variable-braces": { - "patterns": [ - { - "begin": "(?<={)(origin|flavor)\\s(?=[^\\s}]+\\s*})", - "contentName": "variable.other.makefile", - "beginCaptures": { - "1": { - "name": "support.function.$1.makefile" - } - }, - "end": "(?=})", - "name": "meta.scope.function-call.makefile", - "patterns": [ - { - "include": "#variables" - } - ] - } - ] - }, - "another-variable-parentheses": { - "patterns": [ - { - "begin": "(?<=\\()(?!\\))", - "end": "(?=\\)|((?<!\\\\)\\n))", - "name": "variable.other.makefile", - "patterns": [ - { - "include": "#variables" - }, - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - } - ] - } - ] - }, - "another-variable-braces": { - "patterns": [ - { - "begin": "(?<={)(?!})", - "end": "(?=}|((?<!\\\\)\\n))", - "name": "variable.other.makefile", - "patterns": [ - { - "include": "#variables" - }, - { - "match": "\\\\\\n", - "name": "constant.character.escape.continuation.makefile" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/markdown.tmLanguage.json b/lib/grammars/markdown.tmLanguage.json deleted file mode 100644 index 4d4e7af..0000000 --- a/lib/grammars/markdown.tmLanguage.json +++ /dev/null @@ -1,3037 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-markdown-tm-grammar/blob/master/syntaxes/markdown.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-markdown-tm-grammar/commit/e2af2e59c84c47b7b3c3ea690d74e7001bab96a1", - "name": "markdown", - "scopeName": "text.html.markdown", - "patterns": [ - { - "include": "#frontMatter" - }, - { - "include": "#block" - } - ], - "repository": { - "block": { - "patterns": [ - { - "include": "#separator" - }, - { - "include": "#heading" - }, - { - "include": "#blockquote" - }, - { - "include": "#lists" - }, - { - "include": "#fenced_code_block" - }, - { - "include": "#raw_block" - }, - { - "include": "#link-def" - }, - { - "include": "#html" - }, - { - "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*(>) ?" - }, - "fenced_code_block_css": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - "fenced_code_block_basic": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.html", - "patterns": [ - { - "include": "text.html.basic" - } - ] - } - ] - }, - "fenced_code_block_ini": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.ini", - "patterns": [ - { - "include": "source.ini" - } - ] - } - ] - }, - "fenced_code_block_java": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.java", - "patterns": [ - { - "include": "source.java" - } - ] - } - ] - }, - "fenced_code_block_lua": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.lua", - "patterns": [ - { - "include": "source.lua" - } - ] - } - ] - }, - "fenced_code_block_makefile": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.makefile", - "patterns": [ - { - "include": "source.makefile" - } - ] - } - ] - }, - "fenced_code_block_perl": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.perl", - "patterns": [ - { - "include": "source.perl" - } - ] - } - ] - }, - "fenced_code_block_r": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.r", - "patterns": [ - { - "include": "source.r" - } - ] - } - ] - }, - "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+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.ruby", - "patterns": [ - { - "include": "source.ruby" - } - ] - } - ] - }, - "fenced_code_block_php": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.php", - "patterns": [ - { - "include": "text.html.basic" - }, - { - "include": "source.php" - } - ] - } - ] - }, - "fenced_code_block_sql": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.sql", - "patterns": [ - { - "include": "source.sql" - } - ] - } - ] - }, - "fenced_code_block_vs_net": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.vs_net", - "patterns": [ - { - "include": "source.asp.vb.net" - } - ] - } - ] - }, - "fenced_code_block_xml": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - } - ] - }, - "fenced_code_block_xsl": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.xsl", - "patterns": [ - { - "include": "text.xml.xsl" - } - ] - } - ] - }, - "fenced_code_block_yaml": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.yaml", - "patterns": [ - { - "include": "source.yaml" - } - ] - } - ] - }, - "fenced_code_block_dosbatch": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.dosbatch", - "patterns": [ - { - "include": "source.batchfile" - } - ] - } - ] - }, - "fenced_code_block_clojure": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.clojure", - "patterns": [ - { - "include": "source.clojure" - } - ] - } - ] - }, - "fenced_code_block_coffee": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.coffee", - "patterns": [ - { - "include": "source.coffee" - } - ] - } - ] - }, - "fenced_code_block_c": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.c", - "patterns": [ - { - "include": "source.c" - } - ] - } - ] - }, - "fenced_code_block_cpp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.cpp source.cpp", - "patterns": [ - { - "include": "source.cpp" - } - ] - } - ] - }, - "fenced_code_block_diff": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.diff", - "patterns": [ - { - "include": "source.diff" - } - ] - } - ] - }, - "fenced_code_block_dockerfile": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.dockerfile", - "patterns": [ - { - "include": "source.dockerfile" - } - ] - } - ] - }, - "fenced_code_block_git_commit": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.git_commit", - "patterns": [ - { - "include": "text.git-commit" - } - ] - } - ] - }, - "fenced_code_block_git_rebase": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.git_rebase", - "patterns": [ - { - "include": "text.git-rebase" - } - ] - } - ] - }, - "fenced_code_block_go": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.go", - "patterns": [ - { - "include": "source.go" - } - ] - } - ] - }, - "fenced_code_block_groovy": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.groovy", - "patterns": [ - { - "include": "source.groovy" - } - ] - } - ] - }, - "fenced_code_block_pug": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.pug", - "patterns": [ - { - "include": "text.pug" - } - ] - } - ] - }, - "fenced_code_block_js": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.javascript", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "fenced_code_block_js_regexp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.js_regexp", - "patterns": [ - { - "include": "source.js.regexp" - } - ] - } - ] - }, - "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+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.json", - "patterns": [ - { - "include": "source.json" - } - ] - } - ] - }, - "fenced_code_block_jsonc": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.jsonc", - "patterns": [ - { - "include": "source.json.comments" - } - ] - } - ] - }, - "fenced_code_block_less": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.less", - "patterns": [ - { - "include": "source.css.less" - } - ] - } - ] - }, - "fenced_code_block_objc": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.objc", - "patterns": [ - { - "include": "source.objc" - } - ] - } - ] - }, - "fenced_code_block_swift": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.swift", - "patterns": [ - { - "include": "source.swift" - } - ] - } - ] - }, - "fenced_code_block_scss": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.scss", - "patterns": [ - { - "include": "source.css.scss" - } - ] - } - ] - }, - "fenced_code_block_perl6": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.perl6", - "patterns": [ - { - "include": "source.perl.6" - } - ] - } - ] - }, - "fenced_code_block_powershell": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.powershell", - "patterns": [ - { - "include": "source.powershell" - } - ] - } - ] - }, - "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+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.python", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - "fenced_code_block_julia": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.julia", - "patterns": [ - { - "include": "source.julia" - } - ] - } - ] - }, - "fenced_code_block_regexp_python": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.regexp_python", - "patterns": [ - { - "include": "source.regexp.python" - } - ] - } - ] - }, - "fenced_code_block_rust": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.rust", - "patterns": [ - { - "include": "source.rust" - } - ] - } - ] - }, - "fenced_code_block_scala": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.scala", - "patterns": [ - { - "include": "source.scala" - } - ] - } - ] - }, - "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+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.shellscript", - "patterns": [ - { - "include": "source.shell" - } - ] - } - ] - }, - "fenced_code_block_ts": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.typescript", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - "fenced_code_block_tsx": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.typescriptreact", - "patterns": [ - { - "include": "source.tsx" - } - ] - } - ] - }, - "fenced_code_block_csharp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.csharp", - "patterns": [ - { - "include": "source.cs" - } - ] - } - ] - }, - "fenced_code_block_fsharp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.fsharp", - "patterns": [ - { - "include": "source.fsharp" - } - ] - } - ] - }, - "fenced_code_block_dart": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.dart", - "patterns": [ - { - "include": "source.dart" - } - ] - } - ] - }, - "fenced_code_block_handlebars": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.handlebars", - "patterns": [ - { - "include": "text.html.handlebars" - } - ] - } - ] - }, - "fenced_code_block_markdown": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.markdown", - "patterns": [ - { - "include": "text.html.markdown" - } - ] - } - ] - }, - "fenced_code_block_log": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.log", - "patterns": [ - { - "include": "text.log" - } - ] - } - ] - }, - "fenced_code_block_erlang": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.erlang", - "patterns": [ - { - "include": "source.erlang" - } - ] - } - ] - }, - "fenced_code_block_elixir": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.elixir", - "patterns": [ - { - "include": "source.elixir" - } - ] - } - ] - }, - "fenced_code_block_latex": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.latex", - "patterns": [ - { - "include": "text.tex.latex" - } - ] - } - ] - }, - "fenced_code_block_bibtex": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.bibtex", - "patterns": [ - { - "include": "text.bibtex" - } - ] - } - ] - }, - "fenced_code_block_twig": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.twig", - "patterns": [ - { - "include": "source.twig" - } - ] - } - ] - }, - "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_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" - }, - "heading": { - "match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$", - "captures": { - "1": { - "patterns": [ - { - "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", - "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" - } - } - } - ] - } - }, - "name": "markup.heading.markdown", - "patterns": [ - { - "include": "#inline" - } - ] - }, - "heading-setext": { - "patterns": [ - { - "match": "^(={3,})(?=[ \\t]*$\\n?)", - "name": "markup.heading.setext.1.markdown" - }, - { - "match": "^(-{3,})(?=[ \\t]*$\\n?)", - "name": "markup.heading.setext.2.markdown" - } - ] - }, - "html": { - "patterns": [ - { - "begin": "(^|\\G)\\s*(<!--)", - "captures": { - "1": { - "name": "punctuation.definition.comment.html" - }, - "2": { - "name": "punctuation.definition.comment.html" - } - }, - "end": "(-->)", - "name": "comment.block.html" - }, - { - "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))", - "end": "(?i)(.*)((</)(script|style|pre)(>))", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "text.html.derivative" - } - ] - }, - "2": { - "name": "meta.tag.structure.$4.end.html" - }, - "3": { - "name": "punctuation.definition.tag.begin.html" - }, - "4": { - "name": "entity.name.tag.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "begin": "(\\s*|$)", - "patterns": [ - { - "include": "text.html.derivative" - } - ], - "while": "(?i)^(?!.*</(script|style|pre)>)" - } - ] - }, - { - "begin": "(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))", - "patterns": [ - { - "include": "text.html.derivative" - } - ], - "while": "^(?!\\s*$)" - }, - { - "begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)", - "patterns": [ - { - "include": "text.html.derivative" - } - ], - "while": "^(?!\\s*$)" - } - ] - }, - "link-def": { - "captures": { - "1": { - "name": "punctuation.definition.constant.markdown" - }, - "2": { - "name": "constant.other.reference.link.markdown" - }, - "3": { - "name": "punctuation.definition.constant.markdown" - }, - "4": { - "name": "punctuation.separator.key-value.markdown" - }, - "5": { - "name": "punctuation.definition.link.markdown" - }, - "6": { - "name": "markup.underline.link.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "markup.underline.link.markdown" - }, - "9": { - "name": "string.other.link.description.title.markdown" - }, - "10": { - "name": "punctuation.definition.string.begin.markdown" - }, - "11": { - "name": "punctuation.definition.string.end.markdown" - }, - "12": { - "name": "string.other.link.description.title.markdown" - }, - "13": { - "name": "punctuation.definition.string.begin.markdown" - }, - "14": { - "name": "punctuation.definition.string.end.markdown" - }, - "15": { - "name": "string.other.link.description.title.markdown" - }, - "16": { - "name": "punctuation.definition.string.begin.markdown" - }, - "17": { - "name": "punctuation.definition.string.end.markdown" - } - }, - "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n", - "name": "meta.link.reference.def.markdown" - }, - "list_paragraph": { - "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)", - "name": "meta.paragraph.markdown", - "patterns": [ - { - "include": "#inline" - }, - { - "include": "text.html.derivative" - }, - { - "include": "#heading-setext" - } - ], - "while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)" - }, - "lists": { - "patterns": [ - { - "begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])", - "beginCaptures": { - "3": { - "name": "punctuation.definition.list.begin.markdown" - } - }, - "comment": "Currently does not support un-indented second lines.", - "name": "markup.list.unnumbered.markdown", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#list_paragraph" - } - ], - "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" - }, - { - "begin": "(^|\\G)([ ]{0,3})([0-9]+\\.)([ \\t])", - "beginCaptures": { - "3": { - "name": "punctuation.definition.list.begin.markdown" - } - }, - "name": "markup.list.numbered.markdown", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#list_paragraph" - } - ], - "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" - } - ] - }, - "paragraph": { - "begin": "(^|\\G)[ ]{0,3}(?=\\S)", - "name": "meta.paragraph.markdown", - "patterns": [ - { - "include": "#inline" - }, - { - "include": "text.html.derivative" - }, - { - "include": "#heading-setext" - } - ], - "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))" - }, - "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" - }, - "frontMatter": { - "begin": "\\A-{3}\\s*$", - "contentName": "meta.embedded.block.frontmatter", - "patterns": [ - { - "include": "source.yaml" - } - ], - "end": "(^|\\G)-{3}|\\.{3}\\s*$" - }, - "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" - } - ] - }, - "ampersand": { - "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", - "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)", - "name": "meta.other.valid-ampersand.markdown" - }, - "bold": { - "begin": "(?x) (?<open>(\\*\\*(?=\\w)|(?<!\\w)\\*\\*|(?<!\\w)\\b__))(?=\\S) (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close\n)\n", - "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" - }, - "image-inline": { - "captures": { - "1": { - "name": "punctuation.definition.link.description.begin.markdown" - }, - "2": { - "name": "string.other.link.description.markdown" - }, - "4": { - "name": "punctuation.definition.link.description.end.markdown" - }, - "5": { - "name": "punctuation.definition.metadata.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "markup.underline.link.image.markdown" - }, - "9": { - "name": "punctuation.definition.link.markdown" - }, - "10": { - "name": "markup.underline.link.image.markdown" - }, - "12": { - "name": "string.other.link.description.title.markdown" - }, - "13": { - "name": "punctuation.definition.string.begin.markdown" - }, - "14": { - "name": "punctuation.definition.string.end.markdown" - }, - "15": { - "name": "string.other.link.description.title.markdown" - }, - "16": { - "name": "punctuation.definition.string.begin.markdown" - }, - "17": { - "name": "punctuation.definition.string.end.markdown" - }, - "18": { - "name": "string.other.link.description.title.markdown" - }, - "19": { - "name": "punctuation.definition.string.begin.markdown" - }, - "20": { - "name": "punctuation.definition.string.end.markdown" - }, - "21": { - "name": "punctuation.definition.metadata.markdown" - } - }, - "match": "(?x)\n (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n", - "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" - }, - "italic": { - "begin": "(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open\n (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\k<open>\\k<open> # Must be bold closer\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k<open> # Close\n )\n", - "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-email": { - "captures": { - "1": { - "name": "punctuation.definition.link.markdown" - }, - "2": { - "name": "markup.underline.link.markdown" - }, - "4": { - "name": "punctuation.definition.link.markdown" - } - }, - "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)", - "name": "meta.link.email.lt-gt.markdown" - }, - "link-inet": { - "captures": { - "1": { - "name": "punctuation.definition.link.markdown" - }, - "2": { - "name": "markup.underline.link.markdown" - }, - "3": { - "name": "punctuation.definition.link.markdown" - } - }, - "match": "(<)((?:https?|ftp)://.*?)(>)", - "name": "meta.link.inet.markdown" - }, - "link-inline": { - "captures": { - "1": { - "name": "punctuation.definition.link.title.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown", - "patterns": [ - { - "include": "#raw" - }, - { - "include": "#bold" - }, - { - "include": "#italic" - }, - { - "include": "#strikethrough" - }, - { - "include": "#image-inline" - } - ] - }, - "4": { - "name": "punctuation.definition.link.title.end.markdown" - }, - "5": { - "name": "punctuation.definition.metadata.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "markup.underline.link.markdown" - }, - "9": { - "name": "punctuation.definition.link.markdown" - }, - "10": { - "name": "markup.underline.link.markdown" - }, - "12": { - "name": "string.other.link.description.title.markdown" - }, - "13": { - "name": "punctuation.definition.string.begin.markdown" - }, - "14": { - "name": "punctuation.definition.string.end.markdown" - }, - "15": { - "name": "string.other.link.description.title.markdown" - }, - "16": { - "name": "punctuation.definition.string.begin.markdown" - }, - "17": { - "name": "punctuation.definition.string.end.markdown" - }, - "18": { - "name": "string.other.link.description.title.markdown" - }, - "19": { - "name": "punctuation.definition.string.begin.markdown" - }, - "20": { - "name": "punctuation.definition.string.end.markdown" - }, - "21": { - "name": "punctuation.definition.metadata.markdown" - } - }, - "match": "(?x)\n (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n # The title \n (?:\n ((\\()[^()]*(\\))) # Match title in parens…\n | ((\")[^\"]*(\")) # or in double quotes…\n | ((')[^']*(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n", - "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" - }, - "raw": { - "captures": { - "1": { - "name": "punctuation.definition.raw.markdown" - }, - "3": { - "name": "punctuation.definition.raw.markdown" - } - }, - "match": "(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)", - "name": "markup.inline.raw.string.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" - } - } -} diff --git a/lib/grammars/marko.tmLanguage.json b/lib/grammars/marko.tmLanguage.json deleted file mode 100644 index db2f7a4..0000000 --- a/lib/grammars/marko.tmLanguage.json +++ /dev/null @@ -1,1342 +0,0 @@ -{ - "fileTypes": ["marko"], - "name": "marko", - "patterns": [ - { - "begin": "^\\s*(style)\\s+(\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.marko.css" - }, - "2": { - "name": "punctuation.section.scope.begin.marko.css" - } - }, - "comment": "CSS style block, eg: style { color: green }", - "contentName": "source.css", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.marko.css" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "^\\s*(style)\\.(less)\\s+(\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.marko.css" - }, - "2": { - "name": "storage.modifier.marko.css" - }, - "3": { - "name": "punctuation.section.scope.begin.marko.css" - } - }, - "comment": "Less style block, eg: style.less { color: green }", - "contentName": "source.less", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.marko.css" - } - }, - "name": "meta.embedded.less", - "patterns": [ - { - "include": "source.css.less" - } - ] - }, - { - "begin": "^\\s*(style)\\.(scss)\\s+(\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.marko.css" - }, - "2": { - "name": "storage.modifier.marko.css" - }, - "3": { - "name": "punctuation.section.scope.begin.marko.css" - } - }, - "comment": "SCSS style block, eg: style.scss { color: green }", - "contentName": "source.scss", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.marko.css" - } - }, - "name": "meta.embedded.scss", - "patterns": [ - { - "include": "source.css.scss" - } - ] - }, - { - "begin": "^\\s*(?:(static )|(?=(?:class|import|export) ))", - "beginCaptures": { - "1": { - "name": "keyword.control.static.marko" - } - }, - "comment": "Top level blocks parsed as JavaScript", - "contentName": "source.js", - "end": "(?=\\n|$)", - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#javascript-statement" - } - ] - }, - { - "include": "#content-concise-mode" - } - ], - "repository": { - "attrs": { - "patterns": [ - { - "applyEndPatternLast": 1, - "begin": "(?:\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?", - "beginCaptures": { - "1": { - "name": "support.type.attribute-name.marko" - }, - "2": { - "name": "entity.other.attribute-name.marko" - }, - "3": { - "name": "support.function.attribute-name.marko" - } - }, - "comment": "Attribute with optional value", - "end": "(?=.|$)", - "name": "meta.marko-attribute", - "patterns": [ - { - "include": "#html-args-or-method" - }, - { - "applyEndPatternLast": 1, - "begin": "\\s*(:?=)\\s*", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "comment": "Attribute value", - "contentName": "source.js", - "end": "(?=.|$)", - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#javascript-expression" - } - ] - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "(?:\\s+|,)\\.\\.\\.", - "beginCaptures": { - "1": { - "name": "keyword.operator.spread.marko" - } - }, - "comment": "A ...spread attribute", - "contentName": "source.js", - "end": "(?=.|$)", - "name": "meta.marko-spread-attribute", - "patterns": [ - { - "include": "#javascript-expression" - } - ] - }, - { - "begin": "\\s*(,(?!,))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "comment": "Consume any whitespace after a comma", - "end": "(?!\\S)" - }, - { - "include": "#javascript-comment-multiline" - }, - { - "include": "#invalid" - } - ] - }, - "concise-html-block": { - "begin": "\\s*(--+)\\s*$", - "beginCaptures": { - "2": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "--- HTML block within concise mode content. ---", - "end": "\\1", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.marko" - } - }, - "name": "meta.section.marko-html-block", - "patterns": [ - { - "include": "#content-html-mode" - } - ] - }, - "concise-html-line": { - "captures": { - "1": { - "name": "punctuation.section.scope.begin.marko" - }, - "2": { - "patterns": [ - { - "include": "#html-comments" - }, - { - "include": "#tag-html" - }, - { - "match": "\\\\.", - "name": "string" - }, - { - "include": "#placeholder" - }, - { - "match": ".+?", - "name": "string" - } - ] - } - }, - "comment": "-- HTML line within concise mode content. (content-html-mode w/o scriptlet)", - "match": "\\s*(--+)(?=\\s+\\S)(.*$)", - "name": "meta.section.marko-html-line" - }, - "concise-open-tag-content": { - "patterns": [ - { - "include": "#tag-before-attrs" - }, - { - "begin": "\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "end": "]", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.marko" - } - }, - "patterns": [ - { - "include": "#attrs" - }, - { - "include": "#invalid" - } - ] - }, - { - "begin": "(?!^)(?= )", - "end": "(?=--)|(?<!,)(?=\\n)", - "patterns": [ - { - "include": "#attrs" - }, - { - "include": "#invalid" - } - ] - } - ] - }, - "concise-script-block": { - "begin": "(\\s+)(--+)\\s*$", - "beginCaptures": { - "2": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "--- Embedded concise script content block. ---", - "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.marko" - } - }, - "name": "meta.section.marko-script-block", - "patterns": [ - { - "include": "#content-embedded-script" - } - ] - }, - "concise-script-line": { - "applyEndPatternLast": 1, - "begin": "\\s*(--+)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "-- Embedded concise script content line.", - "end": "$", - "name": "meta.section.marko-script-line", - "patterns": [ - { - "include": "#content-embedded-script" - } - ] - }, - "concise-style-block": { - "begin": "(\\s+)(--+)\\s*$", - "beginCaptures": { - "2": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "--- Embedded concise style content block. ---", - "contentName": "source.css", - "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.marko" - } - }, - "name": "meta.section.marko-style-block", - "patterns": [ - { - "include": "#content-embedded-style" - } - ] - }, - "concise-style-block-less": { - "begin": "(\\s+)(--+)\\s*$", - "beginCaptures": { - "2": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "--- Embedded concise style content block. ---", - "contentName": "source.less", - "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.marko" - } - }, - "name": "meta.section.marko-style-block", - "patterns": [ - { - "include": "#content-embedded-style-less" - } - ] - }, - "concise-style-block-scss": { - "begin": "(\\s+)(--+)\\s*$", - "beginCaptures": { - "2": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "--- Embedded concise style content block. ---", - "contentName": "source.scss", - "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.marko" - } - }, - "name": "meta.section.marko-style-block", - "patterns": [ - { - "include": "#content-embedded-style-scss" - } - ] - }, - "concise-style-line": { - "applyEndPatternLast": 1, - "begin": "\\s*(--+)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "-- Embedded concise style content line.", - "contentName": "source.css", - "end": "$", - "name": "meta.section.marko-style-line", - "patterns": [ - { - "include": "#content-embedded-style" - } - ] - }, - "concise-style-line-less": { - "applyEndPatternLast": 1, - "begin": "\\s*(--+)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "-- Embedded concise style content line.", - "contentName": "source.less", - "end": "$", - "name": "meta.section.marko-style-line", - "patterns": [ - { - "include": "#content-embedded-style-less" - } - ] - }, - "concise-style-line-scss": { - "applyEndPatternLast": 1, - "begin": "\\s*(--+)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "-- Embedded concise style content line.", - "contentName": "source.scss", - "end": "$", - "name": "meta.section.marko-style-line", - "patterns": [ - { - "include": "#content-embedded-style-scss" - } - ] - }, - "content-concise-mode": { - "comment": "Concise mode content block.", - "name": "meta.marko-concise-content", - "patterns": [ - { - "include": "#scriptlet" - }, - { - "include": "#javascript-comments" - }, - { - "include": "#html-comments" - }, - { - "include": "#concise-html-block" - }, - { - "include": "#concise-html-line" - }, - { - "include": "#tag-html" - }, - { - "comment": "A concise html tag.", - "patterns": [ - { - "begin": "^(\\s*)(?=style\\.less\\b)", - "comment": "Concise style tag less", - "patterns": [ - { - "include": "#concise-open-tag-content" - }, - { - "include": "#concise-style-block-less" - }, - { - "include": "#concise-style-line-less" - } - ], - "while": "(?=^\\1\\s+(\\S|$))" - }, - { - "begin": "^(\\s*)(?=style\\.scss\\b)", - "comment": "Concise style tag scss", - "patterns": [ - { - "include": "#concise-open-tag-content" - }, - { - "include": "#concise-style-block-scss" - }, - { - "include": "#concise-style-line-scss" - } - ], - "while": "(?=^\\1\\s+(\\S|$))" - }, - { - "begin": "^(\\s*)(?=style\\b)", - "comment": "Concise style tag", - "patterns": [ - { - "include": "#concise-open-tag-content" - }, - { - "include": "#concise-style-block" - }, - { - "include": "#concise-style-line" - } - ], - "while": "(?=^\\1\\s+(\\S|$))" - }, - { - "begin": "^(\\s*)(?=script\\b)", - "comment": "Concise script tag", - "patterns": [ - { - "include": "#concise-open-tag-content" - }, - { - "include": "#concise-script-block" - }, - { - "include": "#concise-script-line" - } - ], - "while": "(?=^\\1\\s+(\\S|$))" - }, - { - "begin": "^(\\s*)(?=[a-zA-Z0-9_$@])", - "comment": "Normal concise tag", - "patterns": [ - { - "include": "#concise-open-tag-content" - }, - { - "include": "#content-concise-mode" - } - ], - "while": "(?=^\\1\\s+(\\S|$))" - } - ] - }, - { - "include": "#invalid" - } - ] - }, - "content-embedded-script": { - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#placeholder" - }, - { - "include": "source.js" - } - ] - }, - "content-embedded-style": { - "name": "meta.embedded.css", - "patterns": [ - { - "include": "#placeholder" - }, - { - "include": "source.css" - } - ] - }, - "content-embedded-style-less": { - "name": "meta.embedded.css.less", - "patterns": [ - { - "include": "#placeholder" - }, - { - "include": "source.css.less" - } - ] - }, - "content-embedded-style-scss": { - "name": "meta.embedded.css.scss", - "patterns": [ - { - "include": "#placeholder" - }, - { - "include": "source.css.scss" - } - ] - }, - "content-html-mode": { - "comment": "HTML mode content block.", - "patterns": [ - { - "include": "#scriptlet" - }, - { - "include": "#html-comments" - }, - { - "include": "#tag-html" - }, - { - "match": "\\\\.", - "name": "string" - }, - { - "include": "#placeholder" - }, - { - "match": ".+?", - "name": "string" - } - ] - }, - "html-args-or-method": { - "patterns": [ - { - "include": "#javascript-args" - }, - { - "begin": "(?<=\\))\\s*(?=\\{)", - "comment": "Attribute method shorthand following parens", - "contentName": "source.js", - "end": "(?<=\\})", - "name": "meta.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "html-comments": { - "patterns": [ - { - "begin": "\\s*(<!(--)?)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.marko" - } - }, - "comment": "HTML comments, doctypes & cdata", - "end": "\\2>", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.marko" - } - }, - "name": "comment.block.marko" - }, - { - "begin": "\\s*(<html-comment>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.marko" - } - }, - "comment": "Preserved HTML comment tag", - "end": "</html-comment>", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.marko" - } - }, - "name": "comment.block.marko" - } - ] - }, - "invalid": { - "match": "[^\\s]", - "name": "invalid.illegal.character-not-allowed-here.marko" - }, - "javascript-args": { - "begin": "(?=\\()", - "comment": "Javascript style arguments", - "contentName": "source.js", - "end": "(?<=\\))", - "name": "meta.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - "javascript-comment-line": { - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "comment": "JavaScript // single line comment", - "contentName": "source.js", - "match": "\\s*//.*$" - }, - "javascript-comment-multiline": { - "begin": "\\s*(?=/\\*)", - "comment": "JavaScript /* block comment */", - "contentName": "source.js", - "end": "(?<=\\*/)", - "patterns": [ - { - "include": "source.js" - } - ] - }, - "javascript-comments": { - "patterns": [ - { - "include": "#javascript-comment-multiline" - }, - { - "include": "#javascript-comment-line" - } - ] - }, - "javascript-enclosed": { - "comment": "Matches JavaScript content and ensures enclosed blocks are matched.", - "patterns": [ - { - "include": "#javascript-comments" - }, - { - "include": "#javascript-args" - }, - { - "begin": "(?={)", - "end": "(?<=})", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?=\\[)", - "end": "(?<=])", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?=\")", - "end": "(?<=\")", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?=')", - "end": "(?<=')", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?=`)", - "end": "(?<=`)", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "/(?!<[\\]})A-Z0-9.<%]\\s*/)(?!/?>|$)", - "captures": { - "0": { - "name": "string.regexp.js" - } - }, - "contentName": "source.js", - "end": "/[gimsuy]*", - "patterns": [ - { - "include": "source.js#regexp" - }, - { - "include": "source.js" - } - ] - }, - { - "begin": "(?x)\\s*(?:\n\t\t\t\t\t\t\t\t(?:\\b(?:new|typeof|instanceof|in)\\b)| # Keyword operators\n\t\t\t\t\t\t\t\t\\&\\&|\\|\\|| # Logical operators\n\t\t\t\t\t\t\t\t[\\^|&]| # Bitwise operators\n\t\t\t\t\t\t\t\t[!=]=|[!=]==|<|<[=<]|=>| # Comparison operators (Note you cannot use * or ? here)\n\t\t\t\t\t\t\t\t[?:]| # Ternary operators\n\t\t\t\t\t\t\t\t[-+*%](?!-) # Arithmetic operators\n\t\t\t\t\t\t\t)", - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "end": "(?=\\S)" - } - ] - }, - "javascript-expression": { - "patterns": [ - { - "include": "#javascript-enclosed" - }, - { - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "comment": "Match identifiers and member expressions", - "match": "[0-9a-zA-Z$_.]+" - } - ] - }, - "javascript-statement": { - "patterns": [ - { - "include": "#javascript-enclosed" - }, - { - "include": "source.js" - } - ] - }, - "open-tag-content": { - "patterns": [ - { - "include": "#tag-before-attrs" - }, - { - "begin": "(?= )", - "comment": "Attributes begin after the first space within the tag name", - "end": "(?=/?>)", - "patterns": [ - { - "include": "#attrs" - } - ] - } - ] - }, - "placeholder": { - "begin": "\\$!?{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js" - } - }, - "comment": "${ } placeholder", - "contentName": "source.js", - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js" - } - }, - "patterns": [ - { - "include": "source.js" - } - ] - }, - "scriptlet": { - "begin": "^\\s*(\\$)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.scriptlet.marko" - } - }, - "comment": "An inline JavaScript scriptlet.", - "contentName": "source.js", - "end": "$", - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#javascript-statement" - } - ] - }, - "tag-before-attrs": { - "comment": "Everything in a tag before the attributes content", - "patterns": [ - { - "include": "#tag-name" - }, - { - "comment": "Shorthand class or ID attribute", - "match": "[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*", - "name": "entity.other.attribute-name.marko" - }, - { - "begin": "/(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.marko" - } - }, - "comment": "Variable for a tag", - "contentName": "source.js", - "end": "(?=:?\\=|\\s|>|$|\\||\\(|/)", - "name": "meta.embedded.js", - "patterns": [ - { - "comment": "Match identifiers", - "match": "[a-zA-Z$_][0-9a-zA-Z$_]*", - "name": "variable.other.constant.object.js" - }, - { - "include": "source.js#object-binding-pattern" - }, - { - "include": "source.js#array-binding-pattern" - }, - { - "include": "source.js#var-single-variable" - }, - { - "include": "#javascript-expression" - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "\\s*(:?=)\\s*", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "comment": "Default attribute value", - "contentName": "source.js", - "end": "(?=.|$)", - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#javascript-expression" - } - ] - }, - { - "begin": "\\|", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.marko" - } - }, - "comment": "Parameters for a tag", - "end": "\\|", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.marko" - } - }, - "patterns": [ - { - "include": "source.js#function-parameters-body" - }, - { - "include": "source.js" - } - ] - }, - { - "include": "#html-args-or-method" - } - ] - }, - "tag-html": { - "comment": "Matches an HTML tag and its contents", - "patterns": [ - { - "begin": "\\s*(<)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "comment": "HTML void elements", - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#open-tag-content" - } - ] - }, - { - "begin": "\\s*(<)(?=style\\.less\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.marko" - } - }, - "comment": "HTML style tag with less", - "end": "/>|(?<=\\>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#open-tag-content" - }, - { - "begin": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "comment": "Style body content", - "contentName": "source.less", - "end": "\\s*(</)(style)?(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.marko" - }, - "2": { - "patterns": [ - { - "include": "#tag-name" - } - ] - }, - "3": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#content-embedded-style-less" - } - ] - } - ] - }, - { - "begin": "\\s*(<)(?=style\\.scss\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.marko" - } - }, - "comment": "HTML style tag with scss", - "end": "/>|(?<=\\>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#open-tag-content" - }, - { - "begin": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "comment": "Style body content", - "contentName": "source.less", - "end": "\\s*(</)(style)?(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.marko" - }, - "2": { - "patterns": [ - { - "include": "#tag-name" - } - ] - }, - "3": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#content-embedded-style-scss" - } - ] - } - ] - }, - { - "begin": "\\s*(<)(?=style\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.marko" - } - }, - "comment": "HTML style tag", - "end": "/>|(?<=\\>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#open-tag-content" - }, - { - "begin": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "comment": "Style body content", - "contentName": "source.css", - "end": "\\s*(</)(style)?(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.marko" - }, - "2": { - "patterns": [ - { - "include": "#tag-name" - } - ] - }, - "3": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#content-embedded-style" - } - ] - } - ] - }, - { - "begin": "\\s*(<)(?=script\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.marko" - } - }, - "comment": "HTML script tag", - "end": "/>|(?<=\\>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#open-tag-content" - }, - { - "begin": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "comment": "Script body content", - "contentName": "source.js", - "end": "\\s*(</)(script)?(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.marko" - }, - "2": { - "patterns": [ - { - "include": "#tag-name" - } - ] - }, - "3": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#content-embedded-script" - } - ] - } - ] - }, - { - "begin": "\\s*(<)(?=[a-zA-Z0-9_$@])", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.marko" - } - }, - "comment": "HTML normal tag", - "end": "/>|(?<=\\>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#open-tag-content" - }, - { - "begin": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "comment": "Body content", - "end": "\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.marko" - }, - "2": { - "patterns": [ - { - "include": "#tag-name" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#invalid" - } - ] - }, - "4": { - "name": "punctuation.definition.tag.end.marko" - } - }, - "patterns": [ - { - "include": "#content-html-mode" - } - ] - } - ] - } - ] - }, - "tag-name": { - "patterns": [ - { - "begin": "\\${", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js" - } - }, - "comment": "Dynamic tag.", - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js" - } - }, - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "captures": { - "1": { - "name": "entity.name.tag.marko" - }, - "2": { - "name": "storage.type.marko.css" - }, - "3": { - "patterns": [ - { - "comment": "Core tag.", - "match": "(attrs|return|import)(?=\\b)", - "name": "support.type.builtin.marko" - }, - { - "comment": "Core tag.", - "match": "(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\b)", - "name": "support.function.marko" - }, - { - "comment": "Attribute tag.", - "match": "@.+", - "name": "entity.other.attribute-name.marko" - }, - { - "comment": "Native or userland tag.", - "match": ".+", - "name": "entity.name.tag.marko" - } - ] - } - }, - "match": "(style)\\.([a-zA-Z0-9$_-]+(?:\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)" - } - ] - } - }, - "scopeName": "text.marko", - "uuid": "46c8c3f8-cabe-466a-a633-5deafdc51253" -} diff --git a/lib/grammars/matlab.tmLanguage.json b/lib/grammars/matlab.tmLanguage.json deleted file mode 100644 index e9226ef..0000000 --- a/lib/grammars/matlab.tmLanguage.json +++ /dev/null @@ -1,1130 +0,0 @@ -{ - "fileTypes": ["m"], - "keyEquivalent": "^~M", - "name": "matlab", - "patterns": [ - { - "comment": "This and #all_after_command_dual are split out so #command_dual can be excluded in things like (), {}, []", - "include": "#all_before_command_dual" - }, - { - "include": "#command_dual" - }, - { - "include": "#all_after_command_dual" - } - ], - "repository": { - "all_before_command_dual": { - "patterns": [ - { - "include": "#classdef" - }, - { - "include": "#function" - }, - { - "include": "#blocks" - }, - { - "include": "#control_statements" - }, - { - "include": "#global_persistent" - }, - { - "include": "#parens" - }, - { - "include": "#square_brackets" - }, - { - "include": "#indexing_curly_brackets" - }, - { - "include": "#curly_brackets" - } - ] - }, - "all_after_command_dual": { - "patterns": [ - { - "include": "#string" - }, - { - "include": "#line_continuation" - }, - { - "include": "#comments" - }, - { - "include": "#conjugate_transpose" - }, - { - "include": "#transpose" - }, - { - "include": "#constants" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#operators" - } - ] - }, - "blocks": { - "patterns": [ - { - "begin": "\\s*(?:^|[\\s,;])(for)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.for.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.for.matlab" - } - }, - "name": "meta.for.matlab", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\s*(?:^|[\\s,;])(if)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.if.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.if.matlab" - }, - "2": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "name": "meta.if.matlab", - "patterns": [ - { - "captures": { - "2": { - "name": "keyword.control.elseif.matlab" - }, - "3": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "end": "^", - "match": "(\\s*)(?:^|[\\s,;])(elseif)\\b(.*)$\\n?", - "name": "meta.elseif.matlab" - }, - { - "captures": { - "2": { - "name": "keyword.control.else.matlab" - }, - "3": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "end": "^", - "match": "(\\s*)(?:^|[\\s,;])(else)\\b(.*)?$\\n?", - "name": "meta.else.matlab" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\s*(?:^|[\\s,;])(parfor)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.for.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.for.matlab" - } - }, - "name": "meta.parfor.matlab", - "patterns": [ - { - "begin": "\\G(?!$)", - "end": "$\\n?", - "name": "meta.parfor-quantity.matlab", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\s*(?:^|[\\s,;])(spmd)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.spmd.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.spmd.matlab" - } - }, - "name": "meta.spmd.matlab", - "patterns": [ - { - "begin": "\\G(?!$)", - "end": "$\\n?", - "name": "meta.spmd-statement.matlab", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\s*(?:^|[\\s,;])(switch)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.switch.matlab" - } - }, - "name": "meta.switch.matlab", - "patterns": [ - { - "captures": { - "2": { - "name": "keyword.control.case.matlab" - }, - "3": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "end": "^", - "match": "(\\s*)(?:^|[\\s,;])(case)\\b(.*)$\\n?", - "name": "meta.case.matlab" - }, - { - "captures": { - "2": { - "name": "keyword.control.otherwise.matlab" - }, - "3": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "end": "^", - "match": "(\\s*)(?:^|[\\s,;])(otherwise)\\b(.*)?$\\n?", - "name": "meta.otherwise.matlab" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\s*(?:^|[\\s,;])(try)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.try.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.try.matlab" - } - }, - "name": "meta.try.matlab", - "patterns": [ - { - "captures": { - "2": { - "name": "keyword.control.catch.matlab" - }, - "3": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "end": "^", - "match": "(\\s*)(?:^|[\\s,;])(catch)\\b(.*)?$\\n?", - "name": "meta.catch.matlab" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\s*(?:^|[\\s,;])(while)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.while.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.while.matlab" - } - }, - "name": "meta.while.matlab", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "classdef": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(classdef)\n\t\t\t\t\t\t\t\\b\\s*\n\t\t\t\t\t\t\t(.*)\n\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "storage.type.class.matlab" - }, - "3": { - "patterns": [ - { - "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\t \\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\t\t\t# Class name\n\t\t\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t# Optional inheritance\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t(<)\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t([^%]*)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\\s*($|(?=(%|...)).*)\n\t\t\t\t\t\t\t\t\t", - "captures": { - "1": { - "patterns": [ - { - "match": "[a-zA-Z][a-zA-Z0-9_]*", - "name": "variable.parameter.class.matlab" - }, - { - "begin": "=\\s*", - "end": ",|(?=\\))", - "patterns": [ - { - "match": "true|false", - "name": "constant.language.boolean.matlab" - }, - { - "include": "#string" - } - ] - } - ] - }, - "2": { - "name": "meta.class-declaration.matlab" - }, - "3": { - "name": "entity.name.section.class.matlab" - }, - "4": { - "name": "keyword.operator.other.matlab" - }, - "5": { - "patterns": [ - { - "match": "[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*", - "name": "entity.other.inherited-class.matlab" - }, - { - "match": "&", - "name": "keyword.operator.other.matlab" - } - ] - }, - "6": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - } - ] - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.class.matlab" - } - }, - "name": "meta.class.matlab", - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(properties)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "keyword.control.properties.matlab" - }, - "3": { - "patterns": [ - { - "match": "[a-zA-Z][a-zA-Z0-9_]*", - "name": "variable.parameter.properties.matlab" - }, - { - "begin": "=\\s*", - "end": ",|(?=\\))", - "patterns": [ - { - "match": "true|false", - "name": "constant.language.boolean.matlab" - }, - { - "match": "public|protected|private", - "name": "constant.language.access.matlab" - } - ] - } - ] - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.properties.matlab" - } - }, - "name": "meta.properties.matlab", - "patterns": [ - { - "include": "#validators" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(methods)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "keyword.control.methods.matlab" - }, - "3": { - "patterns": [ - { - "match": "[a-zA-Z][a-zA-Z0-9_]*", - "name": "variable.parameter.methods.matlab" - }, - { - "begin": "=\\s*", - "end": ",|(?=\\))", - "patterns": [ - { - "match": "true|false", - "name": "constant.language.boolean.matlab" - }, - { - "match": "public|protected|private", - "name": "constant.language.access.matlab" - } - ] - } - ] - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.methods.matlab" - } - }, - "name": "meta.methods.matlab", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(events)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "keyword.control.events.matlab" - }, - "3": { - "patterns": [ - { - "match": "[a-zA-Z][a-zA-Z0-9_]*", - "name": "variable.parameter.events.matlab" - }, - { - "begin": "=\\s*", - "end": ",|(?=\\))", - "patterns": [ - { - "match": "true|false", - "name": "constant.language.boolean.matlab" - }, - { - "match": "public|protected|private", - "name": "constant.language.access.matlab" - } - ] - } - ] - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.events.matlab" - } - }, - "name": "meta.events.matlab", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(enumeration)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "keyword.control.enumeration.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.enumeration.matlab" - } - }, - "name": "meta.enumeration.matlab", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - } - ] - }, - "command_dual": { - "captures": { - "1": { - "name": "string.interpolated.matlab" - }, - "2": { - "name": "variable.other.command.matlab" - }, - "28": { - "name": "comment.line.percentage.matlab" - } - }, - "comment": " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 22 23 24 25 26 27 28", - "match": "^\\s*((?# A> )([b-df-hk-moq-zA-HJ-MO-Z]\\w*|a|an|a([A-Za-mo-z0-9_]\\w*|n[A-Za-rt-z0-9_]\\w*|ns\\w+)|e|ep|e([A-Za-oq-z0-9_]\\w*|p[A-Za-rt-z0-9_]\\w*|ps\\w+)|in|i([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|I|In|I([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|j\\w+|N|Na|N([A-Zb-z0-9_]\\w*|a[A-MO-Za-z0-9_]\\w*|aN\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\w*|a([A-Za-mo-qs-z0-9_]\\w*|n\\w+|r([A-Za-fh-z0-9_]\\w*|g([A-Za-hj-nq-z0-9_]\\w*|i([A-Za-mo-z0-9_]\\w*|n\\w+)|o([A-Za-tv-z0-9_]\\w*|u([A-Za-su-z]\\w*|t\\w+))))))|p|p[A-Za-hj-z0-9_]\\w*|pi\\w+)(?# <A )\\s+(((?# B> )([^\\s;,%()=.{&|~<>:+\\-*/\\\\@^'\"]|(?=')|(?=\"))(?# <B )|(?# C> )(\\.\\^|\\.\\*|\\./|\\.\\\\|\\.'|\\.\\(|&&|==|\\|\\||&(?=[^&])|\\|(?=[^\\|])|~=|<=|>=|~(?!=)|<(?!=)|>(?!=)|:|\\+|-|\\*|/|\\\\|@|\\^)(?# <C )(?# D> )([^\\s]|\\s*(?=%)|\\s+$|\\s+(,|;|\\)|}|\\]|&|\\||<|>|=|:|\\*|/|\\\\|\\^|@|(\\.[^\\d.]|\\.\\.[^.])))(?# <D )|(?# E> )(\\.[^^*/\\\\'(\\sA-Za-z])(?# <E ))(?# F> )([^%]|'[^']*'|\"[^\"]*\")*(?# <F )|(?# X> )(\\.(?=\\s)|\\.[A-Za-z]|(?={))(?# <X )(?# Y> )([^(=\\'\"%]|==|'[^']*'|\"[^\"]*\"|\\(|\\([^)%]*\\)|\\[|\\[[^\\]%]*\\]|{|{[^}%]*})*(\\.\\.\\.[^%]*)?((?=%)|$)(?# <Y )))(%.*)?$" - }, - "comment_block": { - "begin": "(^[\\s]*)%\\{[^\\n\\S]*+\\n", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.matlab" - } - }, - "end": "^[\\s]*%\\}[^\\n\\S]*+(?:\\n|$)", - "name": "comment.block.percentage.matlab", - "patterns": [ - { - "include": "#comment_block" - }, - { - "match": "^[^\\n]*\\n" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=%%\\s)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.matlab" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "%%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.matlab" - } - }, - "end": "\\n", - "name": "comment.line.double-percentage.matlab", - "patterns": [ - { - "begin": "\\G[^\\S\\n]*(?![\\n\\s])", - "contentName": "meta.cell.matlab", - "end": "(?=\\n)" - } - ] - } - ] - }, - { - "include": "#comment_block" - }, - { - "begin": "(^[ \\t]+)?(?=%)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.matlab" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.matlab" - } - }, - "end": "\\n", - "name": "comment.line.percentage.matlab" - } - ] - } - ] - }, - "control_statements": { - "captures": { - "1": { - "name": "keyword.control.matlab" - } - }, - "match": "\\s*(?:^|[\\s,;])(break|continue|return)\\b", - "name": "meta.control.matlab" - }, - "function": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(function)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t\t\t\t\t\t# Optional\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\[) ([^\\]]*) (\\])\n\t\t\t\t\t\t\t\t | ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s* = \\s*\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*)\t# Function name\n\t\t\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t\t\t\t\t\t# Trailing space\n\t\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "storage.type.function.matlab" - }, - "3": { - "name": "punctuation.definition.arguments.begin.matlab" - }, - "4": { - "patterns": [ - { - "match": "\\w+", - "name": "variable.parameter.output.matlab" - } - ] - }, - "5": { - "name": "punctuation.definition.arguments.end.matlab" - }, - "6": { - "name": "variable.parameter.output.function.matlab" - }, - "7": { - "name": "entity.name.function.matlab" - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b(\\s*\\n)?", - "endCaptures": { - "1": { - "name": "keyword.control.end.function.matlab" - } - }, - "name": "meta.function.matlab", - "patterns": [ - { - "begin": "\\G\\(", - "end": "\\)", - "name": "meta.arguments.function.matlab", - "patterns": [ - { - "include": "#line_continuation" - }, - { - "match": "\\w+", - "name": "variable.parameter.input.matlab" - } - ] - }, - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(arguments)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "keyword.control.arguments.matlab" - }, - "3": { - "patterns": [ - { - "match": "[a-zA-Z][a-zA-Z0-9_]*", - "name": "variable.parameter.arguments.matlab" - } - ] - } - }, - "end": "\\s*(?:^|[\\s,;])(end)\\b", - "endCaptures": { - "1": { - "name": "keyword.control.end.arguments.matlab" - } - }, - "name": "meta.arguments.matlab", - "patterns": [ - { - "include": "#validators" - }, - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - } - ] - }, - "global_persistent": { - "captures": { - "1": { - "name": "keyword.control.globalpersistent.matlab" - } - }, - "match": "^\\s*(global|persistent)\\b", - "name": "meta.globalpersistent.matlab" - }, - "parens": { - "begin": "\\(", - "end": "(\\)|(?<!\\.\\.\\.).\\n)", - "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", - "patterns": [ - { - "include": "#end_in_parens" - }, - { - "include": "#all_before_command_dual" - }, - { - "include": "#all_after_command_dual" - }, - { - "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", - "include": "#block_keywords" - } - ] - }, - "square_brackets": { - "begin": "\\[", - "end": "\\]", - "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", - "patterns": [ - { - "include": "#all_before_command_dual" - }, - { - "include": "#all_after_command_dual" - }, - { - "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", - "include": "#block_keywords" - } - ] - }, - "curly_brackets": { - "begin": "\\{", - "end": "\\}", - "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", - "patterns": [ - { - "include": "#end_in_parens" - }, - { - "include": "#all_before_command_dual" - }, - { - "include": "#all_after_command_dual" - }, - { - "include": "#end_in_parens" - }, - { - "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", - "include": "#block_keywords" - } - ] - }, - "indexing_curly_brackets": { - "Comment": "Match identifier{idx, idx, } and stop at newline without ... This helps with partially written code like x{idx ", - "begin": "([a-zA-Z][a-zA-Z0-9_\\.]*\\s*)\\{", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "end": "(\\}|(?<!\\.\\.\\.).\\n)", - "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", - "patterns": [ - { - "include": "#end_in_parens" - }, - { - "include": "#all_before_command_dual" - }, - { - "include": "#all_after_command_dual" - }, - { - "include": "#end_in_parens" - }, - { - "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", - "include": "#block_keywords" - } - ] - }, - "line_continuation": { - "captures": { - "1": { - "name": "keyword.operator.symbols.matlab" - }, - "2": { - "name": "comment.line.continuation.matlab" - } - }, - "comment": "Line continuations", - "match": "(\\.\\.\\.)(.*)$", - "name": "meta.linecontinuation.matlab" - }, - "string": { - "patterns": [ - { - "captures": { - "1": { - "name": "string.interpolated.matlab" - }, - "2": { - "name": "punctuation.definition.string.begin.matlab" - } - }, - "comment": "Shell command", - "match": "^\\s*((!).*$\\n?)" - }, - { - "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.matlab" - } - }, - "comment": "Character vector literal (single-quoted)", - "end": "'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.matlab" - } - }, - "name": "string.quoted.single.matlab", - "patterns": [ - { - "match": "''", - "name": "constant.character.escape.matlab" - }, - { - "match": "'(?=.)", - "name": "invalid.illegal.unescaped-quote.matlab" - }, - { - "comment": "Operator symbols", - "match": "((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))", - "name": "constant.character.escape.matlab" - } - ] - }, - { - "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.matlab" - } - }, - "comment": "String literal (double-quoted)", - "end": "\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.matlab" - } - }, - "name": "string.quoted.double.matlab", - "patterns": [ - { - "match": "\"\"", - "name": "constant.character.escape.matlab" - }, - { - "match": "\"(?=.)", - "name": "invalid.illegal.unescaped-quote.matlab" - } - ] - } - ] - }, - "conjugate_transpose": { - "match": "((?<=[^\\s])|(?<=\\])|(?<=\\))|(?<=\\}))'", - "name": "keyword.operator.transpose.matlab" - }, - "transpose": { - "match": "\\.'", - "name": "keyword.operator.transpose.matlab" - }, - "constants": { - "comment": "MATLAB Constants", - "match": "(?<!\\.)\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\b", - "name": "constant.language.matlab" - }, - "variables": { - "comment": "MATLAB variables", - "match": "(?<!\\.)\\b(nargin|nargout|varargin|varargout)\\b", - "name": "variable.other.function.matlab" - }, - "end_in_parens": { - "comment": "end as operator symbol", - "match": "\\bend\\b", - "name": "keyword.operator.symbols.matlab" - }, - "numbers": { - "comment": "Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j", - "match": "(?<=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9&&[^\\.]])*(i|j)?\\b", - "name": "constant.numeric.matlab" - }, - "operators": { - "comment": "Operator symbols", - "match": "(?<=\\s)(==|~=|>|>=|<|<=|&|&&|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)(?=\\s)", - "name": "keyword.operator.symbols.matlab" - }, - "validators": { - "comment": "Property and argument validation. Match an identifier allowing . and ?.", - "begin": "\\s*[;]?\\s*([a-zA-Z][a-zA-Z0-9_\\.\\?]*)", - "end": "([;\\n%=].*)", - "endCaptures": { - "1": { - "patterns": [ - { - "comment": "Match comments", - "match": "([%].*)", - "captures": { - "1": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "comment": "Handle things like arg = val; nextArg", - "match": "(=[^;]*)", - "captures": { - "1": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "comment": "End of property/argument patterns which start a new property/argument. Look for beginning of identifier after semicolon. Otherwise treat as regular code.", - "match": "([\\n;]\\s*[a-zA-Z].*)", - "captures": { - "1": { - "patterns": [ - { - "include": "#validators" - } - ] - } - } - }, - { - "include": "$self" - } - ] - } - }, - "patterns": [ - { - "include": "#line_continuation" - }, - { - "comment": "Size declaration", - "match": "\\s*(\\([^\\)]*\\))", - "name": "storage.type.matlab" - }, - { - "comment": "Type declaration", - "match": "([a-zA-Z][a-zA-Z0-9_\\.]*)", - "name": "storage.type.matlab" - }, - { - "include": "#braced_validator_list" - } - ] - }, - "braced_validator_list": { - "comment": "Validator functions. Treated as a recursive group to permit nested brackets, quotes, etc.", - "begin": "\\s*({)\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.matlab" - } - }, - "end": "(})", - "endCaptures": { - "1": { - "name": "storage.type.matlab" - } - }, - "patterns": [ - { - "include": "#braced_validator_list" - }, - { - "include": "#validator_strings" - }, - { - "include": "#line_continuation" - }, - { - "match": "([^{}}'\"\\.]+)", - "captures": { - "1": { - "name": "storage.type.matlab" - } - } - }, - { - "match": "\\.", - "name": "storage.type.matlab" - } - ] - }, - "validator_strings": { - "comment": "Simplified string patterns nested inside validator functions which don't change scopes of matches.", - "patterns": [ - { - "patterns": [ - { - "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'", - "comment": "Character vector literal (single-quoted)", - "end": "'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))", - "name": "storage.type.matlab", - "patterns": [ - { - "match": "''" - }, - { - "match": "'(?=.)" - }, - { - "match": "([^']+)" - } - ] - }, - { - "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"", - "comment": "String literal (double-quoted)", - "end": "\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))", - "name": "storage.type.matlab", - "patterns": [ - { - "match": "\"\"" - }, - { - "match": "\"(?=.)" - }, - { - "match": "[^\"]+" - } - ] - } - ] - } - ] - } - }, - "scopeName": "source.matlab", - "uuid": "48F8858B-72FF-11D9-BFEE-000D93589AF6" -} diff --git a/lib/grammars/mdx.tmLanguage.json b/lib/grammars/mdx.tmLanguage.json deleted file mode 100644 index 534ed99..0000000 --- a/lib/grammars/mdx.tmLanguage.json +++ /dev/null @@ -1,5627 +0,0 @@ -{ - "name": "mdx", - "uuid": "fe65e2cd-7c73-4a27-8b5e-5902893626aa", - "fileTypes": ["mdx"], - "patterns": [ - { - "include": "#markdown-frontmatter" - }, - { - "include": "#markdown-sections" - } - ], - "repository": { - "markdown-frontmatter": { - "patterns": [ - { - "include": "#extension-toml" - }, - { - "include": "#extension-yaml" - } - ] - }, - "markdown-sections": { - "patterns": [ - { - "include": "#commonmark-block-quote" - }, - { - "include": "#commonmark-code-fenced" - }, - { - "include": "#extension-gfm-footnote-definition" - }, - { - "include": "#commonmark-definition" - }, - { - "include": "#commonmark-heading-atx" - }, - { - "include": "#commonmark-thematic-break" - }, - { - "include": "#commonmark-heading-setext" - }, - { - "include": "#commonmark-list-item" - }, - { - "include": "#extension-gfm-table" - }, - { - "include": "#extension-math-flow" - }, - { - "include": "#extension-mdx-esm" - }, - { - "include": "#extension-mdx-expression-flow" - }, - { - "include": "#extension-mdx-jsx-flow" - }, - { - "include": "#commonmark-paragraph" - } - ] - }, - "markdown-string": { - "patterns": [ - { - "include": "#commonmark-character-escape" - }, - { - "include": "#commonmark-character-reference" - } - ] - }, - "markdown-text": { - "patterns": [ - { - "include": "#commonmark-attention" - }, - { - "include": "#commonmark-character-escape" - }, - { - "include": "#commonmark-character-reference" - }, - { - "include": "#commonmark-code-text" - }, - { - "include": "#commonmark-hard-break-trailing" - }, - { - "include": "#commonmark-hard-break-escape" - }, - { - "include": "#commonmark-label-end" - }, - { - "include": "#extension-gfm-footnote-call" - }, - { - "include": "#commonmark-label-start" - }, - { - "include": "#extension-gfm-autolink-literal" - }, - { - "include": "#extension-gfm-strikethrough" - }, - { - "include": "#extension-github-gemoji" - }, - { - "include": "#extension-github-mention" - }, - { - "include": "#extension-github-reference" - }, - { - "include": "#extension-math-text" - }, - { - "include": "#extension-mdx-expression-text" - }, - { - "include": "#extension-mdx-jsx-text" - } - ] - }, - "commonmark-attention": { - "patterns": [ - { - "match": "(?<=\\S)\\*{3,}|\\*{3,}(?=\\S)", - "name": "string.other.strong.emphasis.asterisk.mdx" - }, - { - "match": "(?<=[\\p{L}\\p{N}])_{3,}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{3,}|(?<![\\p{L}\\p{N}]|\\p{P})_{3,}(?!\\s)", - "name": "string.other.strong.emphasis.underscore.mdx" - }, - { - "match": "(?<=\\S)\\*{2}|\\*{2}(?=\\S)", - "name": "string.other.strong.asterisk.mdx" - }, - { - "match": "(?<=[\\p{L}\\p{N}])_{2}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{2}|(?<![\\p{L}\\p{N}]|\\p{P})_{2}(?!\\s)", - "name": "string.other.strong.underscore.mdx" - }, - { - "match": "(?<=\\S)\\*|\\*(?=\\S)", - "name": "string.other.emphasis.asterisk.mdx" - }, - { - "match": "(?<=[\\p{L}\\p{N}])_(?![\\p{L}\\p{N}])|(?<=\\p{P})_|(?<![\\p{L}\\p{N}]|\\p{P})_(?!\\s)", - "name": "string.other.emphasis.underscore.mdx" - } - ] - }, - "commonmark-block-quote": { - "begin": "(?:^|\\G)[\\t ]*(>)[ ]?", - "beginCaptures": { - "0": { - "name": "markup.quote.mdx" - }, - "1": { - "name": "punctuation.definition.quote.begin.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "name": "markup.quote.mdx", - "while": "(?:^|\\G)[\\t ]*(>)[ ]?", - "whileCaptures": { - "0": { - "name": "markup.quote.mdx" - }, - "1": { - "name": "punctuation.definition.quote.begin.mdx" - } - } - }, - "commonmark-character-escape": { - "match": "\\\\(?:[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])", - "name": "constant.language.character-escape.mdx" - }, - "commonmark-character-reference": { - "patterns": [ - { - "include": "#whatwg-html-data-character-reference-named-terminated" - }, - { - "match": "(&)(#)([Xx])([0-9A-Fa-f]{1,6})(;)", - "name": "constant.language.character-reference.numeric.hexadecimal.html", - "captures": { - "1": { - "name": "punctuation.definition.character-reference.begin.html" - }, - "2": { - "name": "punctuation.definition.character-reference.numeric.html" - }, - "3": { - "name": "punctuation.definition.character-reference.numeric.hexadecimal.html" - }, - "4": { - "name": "constant.numeric.integer.hexadecimal.html" - }, - "5": { - "name": "punctuation.definition.character-reference.end.html" - } - } - }, - { - "match": "(&)(#)([0-9]{1,7})(;)", - "name": "constant.language.character-reference.numeric.decimal.html", - "captures": { - "1": { - "name": "punctuation.definition.character-reference.begin.html" - }, - "2": { - "name": "punctuation.definition.character-reference.numeric.html" - }, - "3": { - "name": "constant.numeric.integer.decimal.html" - }, - "4": { - "name": "punctuation.definition.character-reference.end.html" - } - } - } - ] - }, - "commonmark-code-fenced": { - "patterns": [ - { - "include": "#commonmark-code-fenced-apib" - }, - { - "include": "#commonmark-code-fenced-asciidoc" - }, - { - "include": "#commonmark-code-fenced-c" - }, - { - "include": "#commonmark-code-fenced-clojure" - }, - { - "include": "#commonmark-code-fenced-coffee" - }, - { - "include": "#commonmark-code-fenced-console" - }, - { - "include": "#commonmark-code-fenced-cpp" - }, - { - "include": "#commonmark-code-fenced-cs" - }, - { - "include": "#commonmark-code-fenced-css" - }, - { - "include": "#commonmark-code-fenced-diff" - }, - { - "include": "#commonmark-code-fenced-dockerfile" - }, - { - "include": "#commonmark-code-fenced-elixir" - }, - { - "include": "#commonmark-code-fenced-elm" - }, - { - "include": "#commonmark-code-fenced-erlang" - }, - { - "include": "#commonmark-code-fenced-gitconfig" - }, - { - "include": "#commonmark-code-fenced-go" - }, - { - "include": "#commonmark-code-fenced-graphql" - }, - { - "include": "#commonmark-code-fenced-haskell" - }, - { - "include": "#commonmark-code-fenced-html" - }, - { - "include": "#commonmark-code-fenced-ini" - }, - { - "include": "#commonmark-code-fenced-java" - }, - { - "include": "#commonmark-code-fenced-js" - }, - { - "include": "#commonmark-code-fenced-json" - }, - { - "include": "#commonmark-code-fenced-julia" - }, - { - "include": "#commonmark-code-fenced-kotlin" - }, - { - "include": "#commonmark-code-fenced-less" - }, - { - "include": "#commonmark-code-fenced-less" - }, - { - "include": "#commonmark-code-fenced-lua" - }, - { - "include": "#commonmark-code-fenced-makefile" - }, - { - "include": "#commonmark-code-fenced-md" - }, - { - "include": "#commonmark-code-fenced-mdx" - }, - { - "include": "#commonmark-code-fenced-objc" - }, - { - "include": "#commonmark-code-fenced-perl" - }, - { - "include": "#commonmark-code-fenced-php" - }, - { - "include": "#commonmark-code-fenced-php" - }, - { - "include": "#commonmark-code-fenced-python" - }, - { - "include": "#commonmark-code-fenced-r" - }, - { - "include": "#commonmark-code-fenced-raku" - }, - { - "include": "#commonmark-code-fenced-ruby" - }, - { - "include": "#commonmark-code-fenced-rust" - }, - { - "include": "#commonmark-code-fenced-scala" - }, - { - "include": "#commonmark-code-fenced-scss" - }, - { - "include": "#commonmark-code-fenced-shell" - }, - { - "include": "#commonmark-code-fenced-shell-session" - }, - { - "include": "#commonmark-code-fenced-sql" - }, - { - "include": "#commonmark-code-fenced-svg" - }, - { - "include": "#commonmark-code-fenced-swift" - }, - { - "include": "#commonmark-code-fenced-toml" - }, - { - "include": "#commonmark-code-fenced-ts" - }, - { - "include": "#commonmark-code-fenced-tsx" - }, - { - "include": "#commonmark-code-fenced-vbnet" - }, - { - "include": "#commonmark-code-fenced-xml" - }, - { - "include": "#commonmark-code-fenced-yaml" - }, - { - "include": "#commonmark-code-fenced-unknown" - } - ] - }, - "commonmark-code-fenced-unknown": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?:[^\\t\\n\\r` ])+)(?:[\\t ]+((?:[^\\n\\r`])+))?)?(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "markup.raw.code.fenced.mdx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.other.mdx" - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?:[^\\t\\n\\r ])+)(?:[\\t ]+((?:[^\\n\\r])+))?)?(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "markup.raw.code.fenced.mdx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.other.mdx" - } - ] - }, - "commonmark-code-text": { - "match": "(?<!`)(`+)(?!`)(.+?)(?<!`)(\\1)(?!`)", - "name": "markup.code.other.mdx", - "captures": { - "1": { - "name": "string.other.begin.code.mdx" - }, - "2": { - "name": "markup.raw.code.mdx markup.inline.raw.code.mdx" - }, - "3": { - "name": "string.other.end.code.mdx" - } - } - }, - "commonmark-definition": { - "match": "(?:^|\\G)[\\t ]*(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])(:)[ \\t]*(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?$(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}", - "name": "meta.link.reference.def.mdx", - "captures": { - "1": { - "name": "string.other.begin.mdx" - }, - "2": { - "name": "entity.name.identifier.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "name": "string.other.end.mdx" - }, - "4": { - "name": "punctuation.separator.key-value.mdx" - }, - "5": { - "name": "string.other.begin.destination.mdx" - }, - "6": { - "name": "string.other.link.destination.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "7": { - "name": "string.other.end.destination.mdx" - }, - "8": { - "name": "string.other.link.destination.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "9": { - "name": "string.other.begin.mdx" - }, - "10": { - "name": "string.quoted.double.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "11": { - "name": "string.other.end.mdx" - }, - "12": { - "name": "string.other.begin.mdx" - }, - "13": { - "name": "string.quoted.single.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "14": { - "name": "string.other.end.mdx" - }, - "15": { - "name": "string.other.begin.mdx" - }, - "16": { - "name": "string.quoted.paren.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "17": { - "name": "string.other.end.mdx" - } - } - }, - "commonmark-hard-break-escape": { - "match": "\\\\$", - "name": "constant.language.character-escape.line-ending.mdx" - }, - "commonmark-hard-break-trailing": { - "match": "( ){2,}$", - "name": "carriage-return constant.language.character-escape.line-ending.mdx" - }, - "commonmark-heading-atx": { - "patterns": [ - { - "match": "(?:^|\\G)[\\t ]*(#{1}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", - "name": "markup.heading.atx.1.mdx", - "captures": { - "1": { - "name": "punctuation.definition.heading.mdx" - }, - "2": { - "name": "entity.name.section.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ] - }, - "3": { - "name": "punctuation.definition.heading.mdx" - } - } - }, - { - "match": "(?:^|\\G)[\\t ]*(#{2}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", - "name": "markup.heading.atx.2.mdx", - "captures": { - "1": { - "name": "punctuation.definition.heading.mdx" - }, - "2": { - "name": "entity.name.section.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ] - }, - "3": { - "name": "punctuation.definition.heading.mdx" - } - } - }, - { - "match": "(?:^|\\G)[\\t ]*(#{3}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", - "name": "markup.heading.atx.2.mdx", - "captures": { - "1": { - "name": "punctuation.definition.heading.mdx" - }, - "2": { - "name": "entity.name.section.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ] - }, - "3": { - "name": "punctuation.definition.heading.mdx" - } - } - }, - { - "match": "(?:^|\\G)[\\t ]*(#{4}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", - "name": "markup.heading.atx.2.mdx", - "captures": { - "1": { - "name": "punctuation.definition.heading.mdx" - }, - "2": { - "name": "entity.name.section.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ] - }, - "3": { - "name": "punctuation.definition.heading.mdx" - } - } - }, - { - "match": "(?:^|\\G)[\\t ]*(#{5}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", - "name": "markup.heading.atx.2.mdx", - "captures": { - "1": { - "name": "punctuation.definition.heading.mdx" - }, - "2": { - "name": "entity.name.section.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ] - }, - "3": { - "name": "punctuation.definition.heading.mdx" - } - } - }, - { - "match": "(?:^|\\G)[\\t ]*(#{6}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", - "name": "markup.heading.atx.2.mdx", - "captures": { - "1": { - "name": "punctuation.definition.heading.mdx" - }, - "2": { - "name": "entity.name.section.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ] - }, - "3": { - "name": "punctuation.definition.heading.mdx" - } - } - } - ] - }, - "commonmark-heading-setext": { - "patterns": [ - { - "match": "(?:^|\\G)[\\t ]*(={1,})[ \\t]*$", - "name": "markup.heading.setext.1.mdx" - }, - { - "match": "(?:^|\\G)[\\t ]*(-{1,})[ \\t]*$", - "name": "markup.heading.setext.2.mdx" - } - ] - }, - "commonmark-label-end": { - "patterns": [ - { - "match": "(\\])(\\()[\\t ]*(?:(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?)?[\\t ]*(\\))(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}", - "captures": { - "1": { - "name": "string.other.end.mdx" - }, - "2": { - "name": "string.other.begin.mdx" - }, - "3": { - "name": "string.other.begin.destination.mdx" - }, - "4": { - "name": "string.other.link.destination.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "5": { - "name": "string.other.end.destination.mdx" - }, - "6": { - "name": "string.other.link.destination.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "7": { - "name": "string.other.begin.mdx" - }, - "8": { - "name": "string.quoted.double.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "9": { - "name": "string.other.end.mdx" - }, - "10": { - "name": "string.other.begin.mdx" - }, - "11": { - "name": "string.quoted.single.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "12": { - "name": "string.other.end.mdx" - }, - "13": { - "name": "string.other.begin.mdx" - }, - "14": { - "name": "string.quoted.paren.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "15": { - "name": "string.other.end.mdx" - }, - "16": { - "name": "string.other.end.mdx" - } - } - }, - { - "match": "(\\])(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])", - "captures": { - "1": { - "name": "string.other.end.mdx" - }, - "2": { - "name": "string.other.begin.mdx" - }, - "3": { - "name": "entity.name.identifier.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "4": { - "name": "string.other.end.mdx" - } - } - }, - { - "match": "(\\])", - "captures": { - "1": { - "name": "string.other.end.mdx" - } - } - } - ] - }, - "commonmark-label-start": { - "patterns": [ - { - "match": "\\!\\[(?!\\^)", - "name": "string.other.begin.image.mdx" - }, - { - "match": "\\[", - "name": "string.other.begin.link.mdx" - } - ] - }, - "commonmark-list-item": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{4}(?![ ])|\\t)(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "variable.unordered.list.mdx" - }, - "2": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}" - }, - { - "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{3}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "variable.unordered.list.mdx" - }, - "2": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)" - }, - { - "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{2}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "variable.unordered.list.mdx" - }, - "2": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}" - }, - { - "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{1}|(?=\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "variable.unordered.list.mdx" - }, - "2": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)[ ]{2}" - }, - { - "begin": "(?:^|\\G)[\\t ]*([0-9]{9})((?:\\.|\\)))(?:[ ]{4}(?![ ])|\\t(?![\\t ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{2}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{1}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{8})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "string.other.number.mdx" - }, - "8": { - "name": "variable.ordered.list.mdx" - }, - "9": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{3}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{8})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{7})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "string.other.number.mdx" - }, - "8": { - "name": "variable.ordered.list.mdx" - }, - "9": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{2}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{7})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{6})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "string.other.number.mdx" - }, - "8": { - "name": "variable.ordered.list.mdx" - }, - "9": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{1}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{6})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{5})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "string.other.number.mdx" - }, - "8": { - "name": "variable.ordered.list.mdx" - }, - "9": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{5})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{4})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "string.other.number.mdx" - }, - "8": { - "name": "variable.ordered.list.mdx" - }, - "9": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{3}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{4})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{3})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "string.other.number.mdx" - }, - "8": { - "name": "variable.ordered.list.mdx" - }, - "9": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{2}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{3})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{2})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{3}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "string.other.number.mdx" - }, - "6": { - "name": "variable.ordered.list.mdx" - }, - "7": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}" - }, - { - "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{2})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9])((?:\\.|\\)))(?:[ ]{2}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "string.other.number.mdx" - }, - "4": { - "name": "variable.ordered.list.mdx" - }, - "5": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)" - }, - { - "begin": "(?:^|\\G)[\\t ]*([0-9])((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", - "beginCaptures": { - "1": { - "name": "string.other.number.mdx" - }, - "2": { - "name": "variable.ordered.list.mdx" - }, - "3": { - "name": "keyword.other.tasklist.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}" - } - ] - }, - "commonmark-paragraph": { - "begin": "(?![\\t ]*$)", - "name": "meta.paragraph.mdx", - "patterns": [ - { - "include": "#markdown-text" - } - ], - "while": "(?:^|\\G)(?:[ ]{4}|\\t)" - }, - "commonmark-thematic-break": { - "match": "(?:^|\\G)[\\t ]*([-*_])[ \\t]*(?:\\1[ \\t]*){2,}$", - "name": "meta.separator.mdx" - }, - "extension-gfm-autolink-literal": { - "patterns": [ - { - "match": "(?<=^|[\\t\\n\\r \\(\\*\\_\\[\\]~])(?=(?i:www)\\.[^\\n\\r])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}", - "name": "string.other.link.autolink.literal.www.mdx" - }, - { - "match": "(?<=^|[^A-Za-z])(?i:https?://)(?=[\\p{L}\\p{N}])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}", - "name": "string.other.link.autolink.literal.http.mdx" - }, - { - "match": "(?<=^|[^A-Za-z/])(?i:mailto:|xmpp:)?(?:[0-9A-Za-z+\\-\\._])+@(?:(?:[0-9A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+(?:\\.(?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))))+(?:[A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+", - "name": "string.other.link.autolink.literal.email.mdx" - } - ] - }, - "extension-gfm-footnote-call": { - "match": "(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])", - "captures": { - "1": { - "name": "string.other.begin.link.mdx" - }, - "2": { - "name": "string.other.begin.footnote.mdx" - }, - "3": { - "name": "entity.name.identifier.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "4": { - "name": "string.other.end.footnote.mdx" - } - } - }, - "extension-gfm-footnote-definition": { - "begin": "(?:^|\\G)[\\t ]*(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])(:)[\\t ]*", - "beginCaptures": { - "1": { - "name": "string.other.begin.link.mdx" - }, - "2": { - "name": "string.other.begin.footnote.mdx" - }, - "3": { - "name": "entity.name.identifier.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "4": { - "name": "string.other.end.footnote.mdx" - } - }, - "patterns": [ - { - "include": "#markdown-sections" - } - ], - "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)" - }, - "extension-gfm-strikethrough": { - "match": "(?<=\\S)(?<!~)~{1,2}(?!~)|(?<!~)~{1,2}(?=\\S)(?!~)", - "name": "string.other.strikethrough.mdx" - }, - "extension-gfm-table": { - "begin": "(?:^|\\G)[\\t ]*(?=\\|[^\\n\\r]+\\|[ \\t]*$)", - "patterns": [ - { - "match": "(?<=\\||(?:^|\\G))[\\t ]*((?:[^\\n\\r\\\\\\|]|\\\\[\\\\\\|]?)+?)[\\t ]*(?=\\||$)", - "captures": { - "1": { - "patterns": [ - { - "include": "#markdown-text" - } - ] - } - } - }, - { - "match": "(?:\\|)", - "name": "markup.list.table-delimiter.mdx" - } - ], - "end": "^(?=[\\t ]*$)" - }, - "extension-github-gemoji": { - "match": "(:)((?:(?:(?:hand_with_index_finger_and_thumb_cros|mailbox_clo|fist_rai|confu)s|r(?:aised_hand_with_fingers_splay|e(?:gister|l(?:iev|ax)))|disappointed_reliev|confound|(?:a(?:ston|ngu)i|flu)sh|unamus|hush)e|(?:chart_with_(?:down|up)wards_tre|large_orange_diamo|small_(?:orang|blu)e_diamo|large_blue_diamo|parasol_on_grou|loud_sou|rewi)n|(?:rightwards_pushing_h|hourglass_flowing_s|leftwards_(?:pushing_)?h|(?:raised_back_of|palm_(?:down|up)|call_me)_h|(?:(?:(?:clippert|ascensi)on|norfolk)_is|christmas_is|desert_is|bouvet_is|new_zea|thai|eng|fin|ire)l|rightwards_h|pinching_h|writing_h|s(?:w(?:itzer|azi)|cot)l|magic_w|ok_h|icel)an|s(?:un_behind_(?:large|small|rain)_clou|hallow_pan_of_foo|tar_of_davi|leeping_be|kateboar|a(?:tisfie|uropo)|hiel|oun|qui)|(?:ear_with_hearing_a|pouring_liqu)i|(?:identification_c|(?:arrow_(?:back|for)|fast_for)w|credit_c|woman_be|biohaz|man_be|l(?:eop|iz))ar|m(?:usical_key|ortar_)boar|(?:drop_of_bl|canned_f)oo|c(?:apital_abc|upi)|person_bal|(?:black_bi|(?:cust|plac)a)r|(?:clip|key)boar|mermai|pea_po|worrie|po(?:la|u)n|threa|dv)d|(?:(?:(?:face_with_open_eyes_and_hand_over|face_with_diagonal|open|no)_mou|h(?:and_over_mou|yacin)|mammo)t|running_shirt_with_sas|(?:(?:fishing_pole_and_|blow)fi|(?:tropical_f|petri_d)i|(?:paint|tooth)bru|banglade|jellyfi)s|(?:camera_fl|wavy_d)as|triump|menora|pouc|blus|watc|das|has)h|(?:s(?:o(?:(?:uth_georgia_south_sandwich|lomon)_island|ck)|miling_face_with_three_heart|t_kitts_nevi|weat_drop|agittariu|c(?:orpiu|issor)|ymbol|hort)|twisted_rightwards_arrow|(?:northern_mariana|heard_mcdonald|(?:british_virgi|us_virgi|pitcair|cayma)n|turks_caicos|us_outlying|(?:falk|a)land|marshall|c(?:anary|ocos)|faroe)_island|(?:face_holding_back_tea|(?:c(?:ard_index_divid|rossed_fing)|pinched_fing)e|night_with_sta)r|(?:two_(?:wo)?men_holding|people_holding|heart|open)_hand|(?:sunrise_over_mountai|(?:congratul|united_n)atio|jea)n|(?:caribbean_)?netherland|(?:f(?:lower_playing_car|ace_in_clou)|crossed_swor|prayer_bea)d|(?:money_with_win|nest_with_eg|crossed_fla|hotsprin)g|revolving_heart|(?:high_brightne|(?:expression|wire)le|(?:tumbler|wine)_gla|milk_gla|compa|dre)s|performing_art|earth_america|orthodox_cros|l(?:ow_brightnes|a(?:tin_cros|o)|ung)|no_pedestrian|c(?:ontrol_kno|lu)b|b(?:ookmark_tab|rick|ean)|nesting_doll|cook_island|(?:fleur_de_l|tenn)i|(?:o(?:ncoming_b|phiuch|ctop)|hi(?:ppopotam|bisc)|trolleyb|m(?:(?:rs|x)_cla|auriti|inib)|belar|cact|abac|(?:cyp|tau)r)u|medal_sport|(?:chopstic|firewor)k|rhinocero|(?:p(?:aw_prin|eanu)|footprin)t|two_heart|princes|(?:hondur|baham)a|barbado|aquariu|c(?:ustom|hain)|maraca|comoro|flag|wale|hug|vh)s|(?:(?:diamond_shape_with_a_dot_ins|playground_sl)id|(?:(?:first_quarter|last_quarter|full|new)_moon_with|(?:zipper|money)_mouth|dotted_line|upside_down|c(?:rying_c|owboy_h)at|(?:disguis|nauseat)ed|neutral|monocle|panda|tired|woozy|clown|nerd|zany|fox)_fac|s(?:t(?:uck_out_tongue_winking_ey|eam_locomotiv)|(?:lightly_(?:frown|smil)|neez|h(?:ush|ak))ing_fac|(?:tudio_micropho|(?:hinto_shr|lot_mach)i|ierra_leo|axopho)n|mall_airplan|un_with_fac|a(?:luting_fac|tellit|k)|haved_ic|y(?:nagogu|ring)|n(?:owfl)?ak|urinam|pong)|(?:black_(?:medium_)?small|white_(?:(?:medium_)?small|large)|(?:black|white)_medium|black_large|orange|purple|yellow|b(?:rown|lue)|red)_squar|(?:(?:perso|woma)n_with_|man_with_)?probing_can|(?:p(?:ut_litter_in_its_pl|outing_f)|frowning_f|cold_f|wind_f|hot_f)ac|(?:arrows_c(?:ounterc)?lockwi|computer_mou|derelict_hou|carousel_hor|c(?:ity_sunri|hee)|heartpul|briefca|racehor|pig_no|lacros)s|(?:(?:face_with_head_band|ideograph_advant|adhesive_band|under|pack)a|currency_exchan|l(?:eft_l)?ugga|woman_jud|name_bad|man_jud|jud)g|face_with_peeking_ey|(?:(?:e(?:uropean_post_off|ar_of_r)|post_off)i|information_sour|ambulan)c|artificial_satellit|(?:busts?_in_silhouet|(?:vulcan_sal|parach)u|m(?:usical_no|ayot)|ro(?:ller_ska|set)|timor_les|ice_ska)t|(?:(?:incoming|red)_envelo|s(?:ao_tome_princi|tethosco)|(?:micro|tele)sco|citysca)p|(?:(?:(?:convenience|department)_st|musical_sc)o|f(?:light_depar|ramed_pic)tu|love_you_gestu|heart_on_fi|japanese_og|cote_divoi|perseve|singapo)r|b(?:ullettrain_sid|eliz|on)|(?:(?:female_|male_)?dete|radioa)ctiv|(?:christmas|deciduous|evergreen|tanabata|palm)_tre|(?:vibration_mo|cape_ver)d|(?:fortune_cook|neckt|self)i|(?:fork_and_)?knif|athletic_sho|(?:p(?:lead|arty)|drool|curs|melt|yawn|ly)ing_fac|vomiting_fac|(?:(?:c(?:urling_st|ycl)|meat_on_b|repeat_|headst)o|(?:fire_eng|tanger|ukra)i|rice_sce|(?:micro|i)pho|champag|pho)n|(?:cricket|video)_gam|(?:boxing_glo|oli)v|(?:d(?:ragon|izzy)|monkey)_fac|(?:m(?:artin|ozamb)iq|fond)u|wind_chim|test_tub|flat_sho|m(?:a(?:ns_sho|t)|icrob|oos|ut)|(?:handsh|fish_c|moon_c|cupc)ak|nail_car|zimbabw|ho(?:neybe|l)|ice_cub|airplan|pensiv|c(?:a(?:n(?:dl|o)|k)|o(?:ffe|oki))|tongu|purs|f(?:lut|iv)|d(?:at|ov)|n(?:iu|os)|kit|rag|ax)e|(?:(?:british_indian_ocean_territo|(?:plate_with_cutl|batt)e|medal_milita|low_batte|hunga|wea)r|family_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy))_bo|person_feeding_bab|woman_feeding_bab|s(?:u(?:spension_railwa|nn)|t(?:atue_of_libert|_barthelem|rawberr))|(?:m(?:ountain_cable|ilky_)|aerial_tram)wa|articulated_lorr|man_feeding_bab|mountain_railwa|partly_sunn|(?:vatican_c|infin)it|(?:outbox_tr|inbox_tr|birthd|motorw|paragu|urugu|norw|x_r)a|butterfl|ring_buo|t(?:urke|roph)|angr|fogg)y|(?:(?:perso|woma)n_in_motorized_wheelchai|(?:(?:notebook_with_decorative_c|four_leaf_cl)ov|(?:index_pointing_at_the_vie|white_flo)w|(?:face_with_thermome|non\\-potable_wa|woman_firefigh|desktop_compu|m(?:an_firefigh|otor_scoo)|(?:ro(?:ller_coa|o)|oy)s|potable_wa|kick_scoo|thermome|firefigh|helicop|ot)t|(?:woman_factory_wor|(?:woman_office|woman_health|health)_wor|man_(?:factory|office|health)_wor|(?:factory|office)_wor|rice_crac|black_jo|firecrac)k|telephone_receiv|(?:palms_up_toget|f(?:ire_extinguis|eat)|teac)h|(?:(?:open_)?file_fol|level_sli)d|police_offic|f(?:lying_sauc|arm)|woman_teach|roll_of_pap|(?:m(?:iddle_f|an_s)in|woman_sin|hambur|plun|dag)g|do_not_litt|wilted_flow|woman_farm|man_(?:teach|farm)|(?:bell_pe|hot_pe|fli)pp|l(?:o(?:udspeak|ve_lett|bst)|edg|add)|tokyo_tow|c(?:ucumb|lapp|anc)|b(?:e(?:ginn|av)|adg)|print|hamst)e|(?:perso|woma)n_in_manual_wheelchai|m(?:an(?:_in_motorized|(?:_in_man)?ual)|otorized)_wheelchai|(?:person_(?:white|curly|red)_|wheelc)hai|triangular_rule|(?:film_project|e(?:l_salv|cu)ad|elevat|tract|anch)o|s(?:traight_rul|pace_invad|crewdriv|nowboard|unflow|peak|wimm|ing|occ|how|urf|ki)e|r(?:ed_ca|unne|azo)|d(?:o(?:lla|o)|ee)|barbe)r|(?:(?:cloud_with_(?:lightning_and_)?ra|japanese_gobl|round_pushp|liechtenste|mandar|pengu|dolph|bahra|pushp|viol)i|(?:couple(?:_with_heart_wo|kiss_)man|construction_worker|(?:mountain_bik|bow|row)ing|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|white_haired|curly_haired|raising_hand|super(?:villain|hero)|red_haired|basketball|s(?:(?:wimm|urf)ing|assy)|haircut|no_good|(?:vampir|massag)e|b(?:iking|ald)|zombie|fairy|mage|elf|ng)_(?:wo)?ma|(?:(?:couple_with_heart_man|isle_of)_m|(?:couplekiss_woman_|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_|frowning_|s(?:tanding|auna)_|po(?:uting_|lice)|running_|blonde_|o(?:lder|k)_)wom|(?:perso|woma)n_with_turb|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_m|f(?:olding_hand_f|rowning_m)|man_with_turb|(?:turkmen|afghan|pak)ist|s(?:tanding_m|(?:outh_s)?ud|auna_m)|po(?:uting_|lice)m|running_m|azerbaij|k(?:yrgyz|azakh)st|tajikist|uzbekist|o(?:lder_m|k_m|ce)|(?:orang|bh)ut|taiw|jord)a|s(?:mall_red_triangle_dow|(?:valbard_jan_may|int_maart|ev)e|afety_pi|top_sig|t_marti|(?:corpi|po|o)o|wede)|(?:heavy_(?:d(?:ivision|ollar)|equals|minus|plus)|no_entry|female|male)_sig|(?:arrow_(?:heading|double)_d|p(?:erson_with_cr|oint_d)|arrow_up_d|thumbsd)ow|(?:house_with_gard|l(?:ock_with_ink_p|eafy_gre)|dancing_(?:wo)?m|fountain_p|keycap_t|chick|ali|yem|od)e|(?:izakaya|jack_o)_lanter|(?:funeral_u|(?:po(?:stal_h|pc)|capric)o|unico)r|chess_paw|b(?:a(?:llo|c)o|eni|rai)|l(?:anter|io)|c(?:o(?:ff)?i|row)|melo|rame|oma|yar)n|(?:s(?:t(?:uck_out_tongue_closed_ey|_vincent_grenadin)|kull_and_crossbon|unglass|pad)|(?:french_souther|palestinia)n_territori|(?:face_with_spiral|kissing_smiling)_ey|united_arab_emirat|kissing_closed_ey|(?:clinking_|dark_sun|eye)glass|(?:no_mobile_|head)phon|womans_cloth|b(?:allet_sho|lueberri)|philippin|(?:no_bicyc|seychel)l|roll_ey|(?:cher|a)ri|p(?:ancak|isc)|maldiv|leav)es|(?:f(?:amily_(?:woman_(?:woman_)?|man_(?:woman_|man_)?)girl_gir|earfu)|(?:woman_playing_hand|m(?:an_playing_hand|irror_)|c(?:onfetti|rystal)_|volley|track|base|8)bal|(?:(?:m(?:ailbox_with_(?:no_)?m|onor)|cockt|e\\-m)a|(?:person|bride|woman)_with_ve|man_with_ve|light_ra|braz|ema)i|(?:transgender|baby)_symbo|passport_contro|(?:arrow_(?:down|up)_sm|rice_b|footb)al|(?:dromedary_cam|ferris_whe|love_hot|high_he|pretz|falaf|isra)e|page_with_cur|me(?:dical_symbo|ta)|(?:n(?:ewspaper_ro|o_be)|bellhop_be)l|rugby_footbal|s(?:chool_satche|(?:peak|ee)_no_evi|oftbal|crol|anda|nai|hel)|(?:peace|atom)_symbo|hear_no_evi|cora|hote|bage|labe|rof|ow)l|(?:(?:negative_squared_cross|heavy_exclamation|part_alternation)_mar|(?:eight_spoked_)?asteris|(?:ballot_box_with_che|(?:(?:mantelpiece|alarm|timer)_c|un)lo|(?:ha(?:(?:mmer_and|ir)_p|tch(?:ing|ed)_ch)|baby_ch|joyst)i|railway_tra|lipsti|peaco)c|heavy_check_mar|white_check_mar|tr(?:opical_drin|uc)|national_par|pickup_truc|diving_mas|floppy_dis|s(?:tar_struc|hamroc|kun|har)|chipmun|denmar|duc|hoo|lin)k|(?:leftwards_arrow_with_h|arrow_right_h|(?:o(?:range|pen)|closed|blue)_b)ook|(?:woman_playing_water_pol|m(?:an(?:_(?:playing_water_pol|with_gua_pi_ma|in_tuxed)|g)|ontenegr|o(?:roc|na)c|e(?:xic|tr|m))|(?:perso|woma)n_in_tuxed|(?:trinidad_toba|vir)g|water_buffal|b(?:urkina_fas|a(?:mbo|nj)|ent)|puerto_ric|water_pol|flaming|kangaro|(?:mosqu|burr)it|(?:avoc|torn)ad|curaca|lesoth|potat|ko(?:sov|k)|tomat|d(?:ang|od)|yo_y|hoch|t(?:ac|og)|zer)o|(?:c(?:entral_african|zech)|dominican)_republic|(?:eight_pointed_black_s|six_pointed_s|qa)tar|(?:business_suit_levitat|(?:classical_buil|breast_fee)d|(?:woman_cartwhee|m(?:an_(?:cartwhee|jugg)|en_wrest)|women_wrest|woman_jugg|face_exha|cartwhee|wrest|dump)l|c(?:hildren_cross|amp)|woman_facepalm|woman_shrugg|man_(?:facepalm|shrugg)|people_hugg|(?:person_fe|woman_da|man_da)nc|fist_oncom|horse_rac|(?:no_smo|thin)k|laugh|s(?:eedl|mok)|park|w(?:arn|edd))ing|f(?:a(?:mily(?:_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy)))?|ctory)|o(?:u(?:ntain|r)|ot|g)|r(?:owning)?|i(?:re|s[ht])|ly|u)|(?:(?:(?:information_desk|handball|bearded)_|(?:frowning|ok)_|juggling_|mer)pers|(?:previous_track|p(?:lay_or_p)?ause|black_square|white_square|next_track|r(?:ecord|adio)|eject)_butt|(?:wa[nx]ing_(?:crescent|gibbous)_m|bowl_with_sp|crescent_m|racc)o|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_pers|s(?:t(?:_pierre_miquel|op_butt|ati)|tanding_pers|peech_ballo|auna_pers)|r(?:eminder_r)?ibb|thought_ballo|watermel|badmint|c(?:amero|ray)|le(?:ban|m)|oni|bis)on|(?:heavy_heart_exclama|building_construc|heart_decora|exclama)tion|(?:(?:triangular_flag_on_po|(?:(?:woman_)?technolog|m(?:ountain_bicycl|an_technolog)|bicycl)i|(?:wo)?man_scienti|(?:wo)?man_arti|s(?:afety_ve|cienti)|empty_ne)s|(?:vertical_)?traffic_ligh|(?:rescue_worker_helm|military_helm|nazar_amul|city_suns|wastebask|dropl|t(?:rump|oil)|bouqu|buck|magn|secr)e|one_piece_swimsui|(?:(?:arrow_(?:low|upp)er|point)_r|bridge_at_n|copyr|mag_r)igh|(?:bullettrain_fro|(?:potted_pl|croiss|e(?:ggpl|leph))a)n|s(?:t(?:ar_and_cresc|ud)en|cream_ca|mi(?:ley?|rk)_ca|(?:peed|ail)boa|hir)|(?:arrow_(?:low|upp)er|point)_lef|woman_astronau|r(?:o(?:tating_ligh|cke)|eceip)|heart_eyes_ca|man_astronau|(?:woman_stud|circus_t|man_stud|trid)en|(?:ringed_pla|file_cabi)ne|nut_and_bol|(?:older_)?adul|k(?:i(?:ssing_ca|wi_frui)|uwai|no)|(?:pouting_c|c(?:ut_of_m|old_sw)e|womans_h|montserr|(?:(?:motor_|row)b|lab_c)o|heartbe|toph)a|(?:woman_pil|honey_p|man_pil|[cp]arr|teap|rob)o|hiking_boo|arrow_lef|fist_righ|flashligh|f(?:ist_lef|ee)|black_ca|astronau|(?:c(?:hest|oco)|dough)nu|innocen|joy_ca|artis|(?:acce|egy)p|co(?:me|a)|pilo)t|(?:heavy_multiplication_|t\\-re)x|(?:s(?:miling_face_with_te|piral_calend)|oncoming_police_c|chocolate_b|ra(?:ilway|cing)_c|police_c|polar_be|teddy_be|madagasc|blue_c|calend|myanm)ar|c(?:l(?:o(?:ud(?:_with_lightning)?|ck(?:1[0-2]?|[2-9]))|ap)?|o(?:uple(?:_with_heart|kiss)?|nstruction|mputer|ok|p|w)|a(?:r(?:d_index)?|mera)|r(?:icket|y)|h(?:art|ild))|(?:m(?:artial_arts_unifo|echanical_a)r|(?:cherry_)?blosso|b(?:aggage_clai|roo)|ice_?crea|facepal|mushroo|restroo|vietna|dru|yu)m|(?:woman_with_headscar|m(?:obile_phone_of|aple_lea)|fallen_lea|wol)f|(?:(?:closed_lock_with|old)_|field_hoc|ice_hoc|han|don)key|g(?:lobe_with_meridians|r(?:e(?:y_(?:exclama|ques)tion|e(?:n(?:_(?:square|circle|salad|apple|heart|book)|land)|ce)|y_heart|nada)|i(?:mac|nn)ing|apes)|u(?:inea_bissau|ernsey|am|n)|(?:(?:olfing|enie)_(?:wo)?|uards(?:wo)?)man|(?:inger_roo|oal_ne|hos)t|(?:uadeloup|ame_di|iraff|oos)e|ift_heart|i(?:braltar|rl)|(?:uatemal|(?:eorg|amb)i|orill|uyan|han)a|uide_dog|(?:oggl|lov)es|arlic|emini|uitar|abon|oat|ear|b)|construction_worker|(?:(?:envelope_with|bow_and)_ar|left_right_ar|raised_eyeb)row|(?:(?:oncoming_automob|crocod)i|right_anger_bubb|l(?:eft_speech_bubb|otion_bott|ady_beet)|congo_brazzavil|eye_speech_bubb|(?:large_blue|orange|purple|yellow|brown)_circ|(?:(?:european|japanese)_cas|baby_bot)t|b(?:alance_sca|eet)|s(?:ewing_need|weat_smi)|(?:black|white|red)_circ|(?:motor|re)cyc|pood|turt|tama|waff|musc|eag)le|first_quarter_moon|s(?:m(?:all_red_triangle|i(?:ley?|rk))|t(?:uck_out_tongue|ar)|hopping|leeping|p(?:arkle|ider)|unrise|nowman|chool|cream|k(?:ull|i)|weat|ix|a)|(?:(?:b(?:osnia_herzegovi|ana)|wallis_futu|(?:french_gui|botsw)a|argenti|st_hele)n|(?:(?:equatorial|papua_new)_guin|north_kor|eritr)e|t(?:ristan_da_cunh|ad)|(?:(?:(?:french_poly|indo)ne|tuni)s|(?:new_caledo|ma(?:urita|cedo)|lithua|(?:tanz|alb|rom)a|arme|esto)n|diego_garc|s(?:audi_arab|t_luc|lov(?:ak|en)|omal|erb)|e(?:arth_as|thiop)|m(?:icrone|alay)s|(?:austra|mongo)l|c(?:ambod|roat)|(?:bulga|alge)r|(?:colom|nami|zam)b|boliv|l(?:iber|atv))i|(?:wheel_of_dhar|cine|pana)m|(?:(?:(?:closed|beach|open)_)?umbrel|ceuta_melil|venezue|ang(?:uil|o)|koa)l|c(?:ongo_kinshas|anad|ub)|(?:western_saha|a(?:mpho|ndor)|zeb)r|american_samo|video_camer|m(?:o(?:vie_camer|ldov)|alt|eg)|(?:earth_af|costa_)ric|s(?:outh_afric|ri_lank|a(?:mo|nt))|bubble_te|(?:antarct|jama)ic|ni(?:caragu|geri|nj)|austri|pi(?:nat|zz)|arub|k(?:eny|aab)|indi|u7a7|l(?:lam|ib[ry])|dn)a|l(?:ast_quarter_moon|o(?:tus|ck)|ips|eo)|(?:hammer_and_wren|c(?:ockroa|hur)|facepun|wren|crut|pun)ch|s(?:nowman_with_snow|ignal_strength|weet_potato|miling_imp|p(?:ider_web|arkle[rs])|w(?:im_brief|an)|a(?:n(?:_marino|dwich)|lt)|topwatch|t(?:a(?:dium|r[2s])|ew)|l(?:e(?:epy|d)|oth)|hrimp|yria|carf|(?:hee|oa)p|ea[lt]|h(?:oe|i[pt])|o[bs])|(?:s(?:tuffed_flatbre|p(?:iral_notep|eaking_he))|(?:exploding_h|baguette_br|flatbr)e)ad|(?:arrow_(?:heading|double)_u|(?:p(?:lace_of_wor|assenger_)sh|film_str|tul)i|page_facing_u|biting_li|(?:billed_c|world_m)a|mouse_tra|(?:curly_lo|busst)o|thumbsu|lo(?:llip)?o|clam|im)p|(?:anatomical|light_blue|sparkling|kissing|mending|orange|purple|yellow|broken|b(?:rown|l(?:ack|ue))|pink)_heart|(?:(?:transgender|black)_fla|mechanical_le|(?:checkered|pirate)_fla|electric_plu|rainbow_fla|poultry_le|service_do|white_fla|luxembour|fried_eg|moneyba|h(?:edgeh|otd)o|shru)g|(?:cloud_with|mountain)_snow|(?:(?:antigua_barb|berm)u|(?:kh|ug)an|rwan)da|(?:3r|2n)d_place_medal|1(?:st_place_medal|234|00)|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|(?:(?:cup_with_str|auto_ricksh)a|carpentry_sa|windo|jigsa)w|(?:(?:couch_and|diya)_la|f(?:ried_shri|uelpu))mp|(?:woman_mechan|man_mechan|alemb)ic|(?:european_un|accord|collis|reun)ion|(?:flight_arriv|hospit|portug|seneg|nep)al|card_file_box|(?:(?:oncoming_)?tax|m(?:o(?:unt_fuj|ya)|alaw)|s(?:paghett|ush|ar)|b(?:r(?:occol|une)|urund)|(?:djibou|kiriba)t|hait|fij)i|(?:shopping_c|white_he|bar_ch)art|d(?:isappointed|ominica|e(?:sert)?)|raising_hand|super(?:villain|hero)|b(?:e(?:verage_box|ers|d)|u(?:bbles|lb|g)|i(?:k(?:ini|e)|rd)|o(?:o(?:ks|t)|a[rt]|y)|read|a[cn]k)|ra(?:ised_hands|bbit2|t)|(?:hindu_tem|ap)ple|thong_sandal|a(?:r(?:row_(?:right|down|up)|t)|bc?|nt)?|r(?:a(?:i(?:sed_hand|nbow)|bbit|dio|m)|u(?:nning)?|epeat|i(?:ng|ce)|o(?:ck|se))|takeout_box|(?:flying_|mini)disc|(?:(?:interrob|yin_y)a|b(?:o(?:omera|wli)|angba)|(?:ping_p|hong_k)o|calli|mahjo)ng|b(?:a(?:llot_box|sket|th?|by)|o(?:o(?:k(?:mark)?|m)|w)|u(?:tter|s)|e(?:ll|er?|ar))?|heart_eyes|basketball|(?:paperclip|dancer|ticket)s|point_up_2|(?:wo)?man_cook|n(?:ew(?:spaper)?|o(?:tebook|_entry)|iger)|t(?:e(?:lephone|a)|o(?:oth|p)|r(?:oll)?|wo)|h(?:o(?:u(?:rglass|se)|rse)|a(?:mmer|nd)|eart)|paperclip|full_moon|(?:b(?:lack_ni|athtu|om)|her)b|(?:long|oil)_drum|pineapple|(?:clock(?:1[0-2]?|[2-9])3|u6e8)0|p(?:o(?:int_up|ut)|r(?:ince|ay)|i(?:ck|g)|en)|e(?:nvelope|ight|u(?:ro)?|gg|ar|ye|s)|m(?:o(?:u(?:ntain|se)|nkey|on)|echanic|a(?:ilbox|g|n)|irror)?|new_moon|d(?:iamonds|olls|art)|question|k(?:iss(?:ing)?|ey)|haircut|no_good|(?:vampir|massag)e|g(?:olf(?:ing)?|u(?:inea|ard)|e(?:nie|m)|ift|rin)|h(?:a(?:ndbag|msa)|ouses|earts|ut)|postbox|toolbox|(?:pencil|t(?:rain|iger)|whale|cat|dog)2|belgium|(?:volca|kimo)no|(?:vanuat|tuval|pala|naur|maca)u|tokelau|o(?:range|ne?|m|k)?|office|dancer|ticket|dragon|pencil|zombie|w(?:o(?:mens|rm|od)|ave|in[gk]|c)|m(?:o(?:sque|use2)|e(?:rman|ns)|a(?:li|sk))|jersey|tshirt|w(?:heel|oman)|dizzy|j(?:apan|oy)|t(?:rain|iger)|whale|fairy|a(?:nge[lr]|bcd|tm)|c(?:h(?:a(?:ir|d)|ile)|a(?:ndy|mel)|urry|rab|o(?:rn|ol|w2)|[dn])|p(?:ager|e(?:a(?:ch|r)|ru)|i(?:g2|ll|e)|oop)|n(?:otes|ine)|t(?:onga|hree|ent|ram|[mv])|f(?:erry|r(?:ies|ee|og)|ax)|u(?:7(?:533|981|121)|5(?:5b6|408|272)|6(?:307|70[89]))|mage|e(?:yes|nd)|i(?:ra[nq]|t)|cat|dog|elf|z(?:zz|ap)|yen|j(?:ar|p)|leg|id|u[kps]|ng|o[2x]|vs|kr|[\\+\\x2D]1|x|v)(:)", - "name": "string.emoji.mdx", - "captures": { - "1": { - "name": "punctuation.definition.gemoji.begin.mdx" - }, - "2": { - "name": "keyword.control.gemoji.mdx" - }, - "3": { - "name": "punctuation.definition.gemoji.end.mdx" - } - } - }, - "extension-github-mention": { - "match": "(?<![0-9A-Za-z_`])(@)((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:[0-9A-Za-z][0-9A-Za-z-]{0,38}))?)(?![0-9A-Za-z_`])", - "name": "string.mention.mdx", - "captures": { - "1": { - "name": "punctuation.definition.mention.begin.mdx" - }, - "2": { - "name": "string.other.link.mention.mdx" - } - } - }, - "extension-github-reference": { - "patterns": [ - { - "match": "(?<![0-9A-Za-z_])(?:((?i:ghsa-|cve-))([A-Za-z0-9]+)|((?i:gh-|#))([0-9]+))(?![0-9A-Za-z_])", - "name": "string.reference.mdx", - "captures": { - "1": { - "name": "punctuation.definition.reference.begin.mdx" - }, - "2": { - "name": "string.other.link.reference.security-advisory.mdx" - }, - "3": { - "name": "punctuation.definition.reference.begin.mdx" - }, - "4": { - "name": "string.other.link.reference.issue-or-pr.mdx" - } - } - }, - { - "match": "(?<![^\\t\\n\\r \\(@\\[\\{])((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:(?:\\.git[0-9A-Za-z_-]|\\.(?!git)|[0-9A-Za-z_-])+))?)(#)([0-9]+)(?![0-9A-Za-z_])", - "name": "string.reference.mdx", - "captures": { - "1": { - "name": "string.other.link.reference.user.mdx" - }, - "2": { - "name": "punctuation.definition.reference.begin.mdx" - }, - "3": { - "name": "string.other.link.reference.issue-or-pr.mdx" - } - } - } - ] - }, - "extension-math-flow": { - "begin": "(?:^|\\G)[\\t ]*(\\${2,})([^\\n\\r\\$]*)$", - "beginCaptures": { - "1": { - "name": "string.other.begin.math.flow.mdx" - }, - "2": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "markup.raw.math.flow.mdx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.math.flow.mdx" - } - }, - "name": "markup.code.other.mdx" - }, - "extension-math-text": { - "match": "(?<!\\$)(\\${2,})(?!\\$)(.+?)(?<!\\$)(\\1)(?!\\$)", - "captures": { - "1": { - "name": "string.other.begin.math.mdx" - }, - "2": { - "name": "markup.raw.math.mdx markup.inline.raw.math.mdx" - }, - "3": { - "name": "string.other.end.math.mdx" - } - } - }, - "extension-mdx-esm": { - "name": "meta.embedded.tsx", - "begin": "(?:^|\\G)(?=(?i:export|import)[ ])", - "end": "^(?=[\\t ]*$)", - "patterns": [ - { - "include": "source.tsx#statements" - } - ] - }, - "extension-mdx-expression-flow": { - "begin": "(?:^|\\G)[\\t ]*(\\{)", - "beginCaptures": { - "1": { - "name": "string.other.begin.expression.mdx.js" - } - }, - "contentName": "meta.embedded.tsx", - "end": "(\\})(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.begin.expression.mdx.js" - } - }, - "patterns": [ - { - "include": "source.tsx#expression" - } - ] - }, - "extension-mdx-expression-text": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "string.other.begin.expression.mdx.js" - } - }, - "contentName": "meta.embedded.tsx", - "end": "\\}", - "endCaptures": { - "0": { - "name": "string.other.begin.expression.mdx.js" - } - }, - "patterns": [ - { - "include": "source.tsx#expression" - } - ] - }, - "extension-mdx-jsx-flow": { - "begin": "(?<=^|\\G|\\>)[\\t ]*(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.jsx" - }, - "2": { - "name": "punctuation.definition.tag.closing.jsx" - }, - "3": { - "name": "entity.name.tag.namespace.jsx" - }, - "4": { - "name": "punctuation.separator.namespace.jsx" - }, - "5": { - "name": "entity.name.tag.local.jsx" - }, - "6": { - "name": "support.class.component.jsx" - }, - "7": { - "name": "support.class.component.jsx" - }, - "8": { - "name": "entity.name.tag.jsx" - } - }, - "patterns": [ - { - "include": "source.tsx#jsx-tag-attribute-name" - }, - { - "include": "source.tsx#jsx-tag-attribute-assignment" - }, - { - "include": "source.tsx#jsx-string-double-quoted" - }, - { - "include": "source.tsx#jsx-string-single-quoted" - }, - { - "include": "source.tsx#jsx-evaluated-code" - }, - { - "include": "source.tsx#jsx-tag-attributes-illegal" - } - ], - "end": "(?:(\\/)\\s*)?(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.self-closing.jsx" - }, - "2": { - "name": "punctuation.definition.tag.end.jsx" - } - } - }, - "extension-mdx-jsx-text": { - "begin": "(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.jsx" - }, - "2": { - "name": "punctuation.definition.tag.closing.jsx" - }, - "3": { - "name": "entity.name.tag.namespace.jsx" - }, - "4": { - "name": "punctuation.separator.namespace.jsx" - }, - "5": { - "name": "entity.name.tag.local.jsx" - }, - "6": { - "name": "support.class.component.jsx" - }, - "7": { - "name": "support.class.component.jsx" - }, - "8": { - "name": "entity.name.tag.jsx" - } - }, - "patterns": [ - { - "include": "source.tsx#jsx-tag-attribute-name" - }, - { - "include": "source.tsx#jsx-tag-attribute-assignment" - }, - { - "include": "source.tsx#jsx-string-double-quoted" - }, - { - "include": "source.tsx#jsx-string-single-quoted" - }, - { - "include": "source.tsx#jsx-evaluated-code" - }, - { - "include": "source.tsx#jsx-tag-attributes-illegal" - } - ], - "end": "(?:(\\/)\\s*)?(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.self-closing.jsx" - }, - "2": { - "name": "punctuation.definition.tag.end.jsx" - } - } - }, - "extension-toml": { - "begin": "\\A\\+{3}$", - "end": "^\\+{3}$", - "beginCaptures": { - "0": { - "name": "string.other.begin.toml" - } - }, - "endCaptures": { - "0": { - "name": "string.other.end.toml" - } - }, - "contentName": "meta.embedded.toml", - "patterns": [ - { - "include": "source.toml" - } - ] - }, - "extension-yaml": { - "begin": "\\A-{3}$", - "end": "^-{3}$", - "beginCaptures": { - "0": { - "name": "string.other.begin.yaml" - } - }, - "endCaptures": { - "0": { - "name": "string.other.end.yaml" - } - }, - "contentName": "meta.embedded.yaml", - "patterns": [ - { - "include": "source.yaml" - } - ] - }, - "whatwg-html-data-character-reference-named-terminated": { - "match": "(&)((?:C(?:(?:o(?:unterClockwiseCo)?|lockwiseCo)ntourIntegra|cedi)|(?:(?:Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)|Not(?:Righ|Lef)tTriangle|(?:Not(?:(?:Succeed|Precede|Les)s|Greater)|(?:Precede|Succeed)s|Less)Slant|SquareSu(?:per|b)set|(?:Not(?:Greater|Tilde)|Tilde|Less)Full|RightTriangle|LeftTriangle|Greater(?:Slant|Full)|Precedes|Succeeds|Superset|NotHump|Subset|Tilde|Hump)Equ|int(?:er)?c|DotEqu)a|DoubleContourIntegra|(?:n(?:short)?parall|shortparall|p(?:arall|rur))e|(?:rightarrowta|l(?:eftarrowta|ced|ata|Ata)|sced|rata|perm|rced|rAta|ced)i|Proportiona|smepars|e(?:qvpars|pars|xc|um)|Integra|suphso|rarr[pt]|n(?:pars|tg)|l(?:arr[pt]|cei)|Rarrt|(?:hybu|fora)l|ForAl|[GKLNR-Tcknt]cedi|rcei|iexc|gime|fras|[uy]um|oso|dso|ium|Ium)l|D(?:o(?:uble(?:(?:L(?:ong(?:Left)?R|eftR)ight|L(?:ongL)?eft|UpDown|Right|Up)Arrow|Do(?:wnArrow|t))|wn(?:ArrowUpA|TeeA|a)rrow)|iacriticalDot|strok|ashv|cy)|(?:(?:(?:N(?:(?:otN)?estedGreater|ot(?:Greater|Less))|Less(?:Equal)?)Great|GreaterGreat|l[lr]corn|mark|east)e|Not(?:Double)?VerticalBa|(?:Not(?:Righ|Lef)tTriangleB|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)VectorB|RightTriangleB|Left(?:Triangle|Arrow)B|RightArrowB|V(?:er(?:ticalB|b)|b)|UpArrowB|l(?:ur(?:ds|u)h|dr(?:us|d)h|trP|owb|H)|profal|r(?:ulu|dld)h|b(?:igst|rvb)|(?:wed|ve[er])b|s(?:wn|es)w|n(?:wne|ese|sp|hp)|gtlP|d(?:oll|uh|H)|(?:hor|ov)b|u(?:dh|H)|r(?:lh|H)|ohb|hb|St)a|D(?:o(?:wn(?:(?:Left(?:Right|Tee)|RightTee)Vecto|(?:(?:Righ|Lef)tVector|Arrow)Ba)|ubleVerticalBa)|a(?:gge|r)|sc|f)|(?:(?:(?:Righ|Lef)tDown|(?:Righ|Lef)tUp)Tee|(?:Righ|Lef)tUpDown)Vecto|VerticalSeparato|(?:Left(?:Right|Tee)|RightTee)Vecto|less(?:eqq?)?gt|e(?:qslantgt|sc)|(?:RightF|LeftF|[lr]f)loo|u(?:[lr]corne|ar)|timesba|(?:plusa|cirs|apa)ci|U(?:arroci|f)|(?:dzigr|s(?:u(?:pl|br)|imr|[lr])|zigr|angz|nvH|l(?:tl|B)|r[Br])ar|UnderBa|(?:plus|harr|top|mid|of)ci|O(?:verBa|sc|f)|dd?agge|s(?:olba|sc)|g(?:t(?:rar|ci)|sc|f)|c(?:opys|u(?:po|ep)|sc|f)|(?:n(?:(?:v[lr]|w|r)A|l[Aa]|h[Aa]|eA)|x[hlr][Aa]|u(?:ua|da|A)|s[ew]A|rla|o[lr]a|rba|rAa|l[Ablr]a|h(?:oa|A)|era|d(?:ua|A)|cra|vA)r|o(?:lci|sc|ro|pa)|ropa|roar|l(?:o(?:pa|ar)|sc|Ar)|i(?:ma|s)c|ltci|dd?ar|a(?:ma|s)c|R(?:Bar|sc|f)|I(?:mac|f)|(?:u(?:ma|s)|oma|ema|Oma|Ema|[wyz]s|qs|ks|fs|Zs|Ys|Xs|Ws|Vs|Us|Ss|Qs|Ns|Ms|Ks|Is|Gs|Fs|Cs|Bs)c|Umac|x(?:sc|f)|v(?:sc|f)|rsc|n(?:ld|f)|m(?:sc|ld|ac|f)|rAr|h(?:sc|f)|b(?:sc|f)|psc|P(?:sc|f)|L(?:sc|ar|f)|jsc|J(?:sc|f)|E(?:sc|f)|[HT]sc|[yz]f|wf|tf|qf|pf|kf|jf|Zf|Yf|Xf|Wf|Vf|Tf|Sf|Qf|Nf|Mf|Kf|Hf|Gf|Ff|Cf|Bf)r|(?:Diacritical(?:Double)?A|[EINOSYZaisz]a)cute|(?:(?:N(?:egative(?:VeryThin|Thi(?:ck|n))|onBreaking)|NegativeMedium|ZeroWidth|VeryThin|Medium|Thi(?:ck|n))Spac|Filled(?:Very)?SmallSquar|Empty(?:Very)?SmallSquar|(?:N(?:ot(?:Succeeds|Greater|Tilde|Less)T|t)|DiacriticalT|VerticalT|PrecedesT|SucceedsT|NotEqualT|GreaterT|TildeT|EqualT|LessT|at|Ut|It)ild|(?:(?:DiacriticalG|[EIOUaiu]g)ra|(?:u|U)?bre|(?:o|e)?gra)v|(?:doublebar|curly|big|x)wedg|H(?:orizontalLin|ilbertSpac)|Double(?:Righ|Lef)tTe|(?:(?:measured|uw)ang|exponentia|dwang|ssmi|fema)l|(?:Poincarepla|reali|pho|oli)n|(?:black)?lozeng|(?:VerticalL|(?:prof|imag)l)in|SmallCircl|(?:black|dot)squar|rmoustach|l(?:moustach|angl)|(?:b(?:ack)?pr|(?:tri|xo)t|[qt]pr)im|[Tt]herefor|(?:DownB|[Gag]b)rev|(?:infint|nv[lr]tr)i|b(?:arwedg|owti)|an(?:dslop|gl)|(?:cu(?:rly)?v|rthr|lthr|b(?:ig|ar)v|xv)e|n(?:s(?:qsu[bp]|ccu)|prcu)|orslop|NewLin|maltes|Becaus|rangl|incar|(?:otil|Otil|t(?:ra|il))d|[inu]tild|s(?:mil|imn)|(?:sc|pr)cu|Wedg|Prim|Brev)e|(?:CloseCurly(?:Double)?Quo|OpenCurly(?:Double)?Quo|[ry]?acu)te|(?:Reverse(?:Up)?|Up)Equilibrium|C(?:apitalDifferentialD|(?:oproduc|(?:ircleD|enterD|d)o)t|on(?:grue|i)nt|conint|upCap|o(?:lone|pf)|OPY|hi)|(?:(?:(?:left)?rightsquig|(?:longleftr|twoheadr|nleftr|nLeftr|longr|hookr|nR|Rr)ight|(?:twohead|hook)left|longleft|updown|Updown|nright|Right|nleft|nLeft|down|up|Up)a|L(?:(?:ong(?:left)?righ|(?:ong)?lef)ta|eft(?:(?:right)?a|RightA|TeeA))|RightTeeA|LongLeftA|UpTeeA)rrow|(?:(?:RightArrow|Short|Upper|Lower)Left|(?:L(?:eftArrow|o(?:wer|ng))|LongLeft|Short|Upper)Right|ShortUp)Arrow|(?:b(?:lacktriangle(?:righ|lef)|ulle|no)|RightDoubleBracke|RightAngleBracke|Left(?:Doub|Ang)leBracke|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow)righ|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow|mapsto)lef|(?:UnderBrack|OverBrack|emptys|targ|Sups)e|diamondsui|c(?:ircledas|lubsui|are)|(?:spade|heart)sui|(?:(?:c(?:enter|t)|lmi|ino)d|(?:Triple|mD)D|n(?:otin|e)d|(?:ncong|doteq|su[bp]e|e[gl]s)d|l(?:ess|t)d|isind|c(?:ong|up|ap)?d|b(?:igod|N)|t(?:(?:ri)?d|opb)|s(?:ub|im)d|midd|g(?:tr?)?d|Lmid|DotD|(?:xo|ut|z)d|e(?:s?d|rD|fD|DD)|dtd|Zd|Id|Gd|Ed)o|realpar|i(?:magpar|iin)|S(?:uchTha|qr)|su[bp]mul|(?:(?:lt|i)que|gtque|(?:mid|low)a|e(?:que|xi))s|Produc|s(?:updo|e[cx])|r(?:parg|ec)|lparl|vangr|hamil|(?:homt|[lr]fis|ufis|dfis)h|phmma|t(?:wix|in)|quo|o(?:do|as)|fla|eDo)t|(?:(?:Square)?Intersecti|(?:straight|back|var)epsil|SquareUni|expectati|upsil|epsil|Upsil|eq?col|Epsil|(?:omic|Omic|rca|lca|eca|Sca|[NRTt]ca|Lca|Eca|[Zdz]ca|Dca)r|scar|ncar|herc|ccar|Ccar|iog|Iog)on|Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)?|(?:(?:(?:Not(?:Reverse)?|Reverse)E|comp|E)leme|NotCongrue|(?:n[gl]|l)eqsla|geqsla|q(?:uat)?i|perc|iiii|coni|cwi|awi|oi)nt|(?:(?:rightleftharpo|leftrightharpo|quaterni)on|(?:(?:N(?:ot(?:NestedLess|Greater|Less)|estedLess)L|(?:eqslant|gtr(?:eqq?)?)l|LessL)e|Greater(?:Equal)?Le|cro)s|(?:rightright|leftleft|upup)arrow|rightleftarrow|(?:(?:(?:righ|lef)tthree|divideon|b(?:igo|ox)|[lr]o)t|InvisibleT)ime|downdownarrow|(?:(?:smallset|tri|dot|box)m|PlusM)inu|(?:RoundImpli|complex|Impli|Otim)e|C(?:ircle(?:Time|Minu|Plu)|ayley|ros)|(?:rationa|mode)l|NotExist|(?:(?:UnionP|MinusP|(?:b(?:ig[ou]|ox)|tri|s(?:u[bp]|im)|dot|xu|mn)p)l|(?:xo|u)pl|o(?:min|pl)|ropl|lopl|epl)u|otimesa|integer|e(?:linter|qual)|setminu|rarrbf|larrb?f|olcros|rarrf|mstpo|lesge|gesle|Exist|[lr]time|strn|napo|fltn|ccap|apo)s|(?:b(?:(?:lack|ig)triangledow|etwee)|(?:righ|lef)tharpoondow|(?:triangle|mapsto)dow|(?:nv|i)infi|ssetm|plusm|lagra|d(?:[lr]cor|isi)|c(?:ompf|aro)|s?frow|(?:hyph|curr)e|kgree|thor|ogo|ye)n|Not(?:Righ|Lef)tTriangle|(?:Up(?:Arrow)?|Short)DownArrow|(?:(?:n(?:triangle(?:righ|lef)t|succ|prec)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|backsim)e|lvertneq|gvertneq|(?:suc|pre)cneq|a(?:pprox|symp)e|(?:succ|prec|vee)e|circe)q|(?:UnderParenthes|OverParenthes|xn)is|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)Vector|D(?:o(?:wn(?:RightVector|LeftVector|Arrow|Tee)|t)|el|D)|l(?:eftrightarrows|br(?:k(?:sl[du]|e)|ac[ek])|tri[ef]|s(?:im[eg]|qb|h)|hard|a(?:tes|ngd|p)|o[pz]f|rm|gE|fr|eg|cy)|(?:NotHumpDownHum|(?:righ|lef)tharpoonu|big(?:(?:triangle|sqc)u|c[au])|HumpDownHum|m(?:apstou|lc)|(?:capbr|xsq)cu|smash|rarr[al]|(?:weie|sha)r|larrl|velli|(?:thin|punc)s|h(?:elli|airs)|(?:u[lr]c|vp)ro|d[lr]cro|c(?:upc[au]|apc[au])|thka|scna|prn?a|oper|n(?:ums|va|cu|bs)|ens|xc[au]|Ma)p|l(?:eftrightarrow|e(?:ftarrow|s(?:dot)?)?|moust|a(?:rrb?|te?|ng)|t(?:ri)?|sim|par|oz|l|g)|n(?:triangle(?:righ|lef)t|succ|prec)|SquareSu(?:per|b)set|(?:I(?:nvisibleComm|ot)|(?:varthe|iio)t|varkapp|(?:vars|S)igm|(?:diga|mco)mm|Cedill|lambd|Lambd|delt|Thet|omeg|Omeg|Kapp|Delt|nabl|zet|to[es]|rdc|ldc|iot|Zet|Bet|Et)a|b(?:lacktriangle|arwed|u(?:mpe?|ll)|sol|o(?:x[HVhv]|t)|brk|ne)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|RightT(?:riangl|e)e|(?:(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|nsu[bp]seteq|colone|(?:wedg|sim)e|nsime|lneq|gneq)q|DifferentialD|(?:(?:fall|ris)ingdots|(?:suc|pre)ccurly|ddots)eq|A(?:pplyFunction|ssign|(?:tild|grav|brev)e|acute|o(?:gon|pf)|lpha|(?:mac|sc|f)r|c(?:irc|y)|ring|Elig|uml|nd|MP)|(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|L(?:eft(?:T(?:riangl|e)e|Arrow)|l)|G(?:reaterEqual|amma)|E(?:xponentialE|quilibrium|sim|cy|TH|NG)|(?:(?:RightCeil|LeftCeil|varnoth|ar|Ur)in|(?:b(?:ack)?co|uri)n|vzigza|roan|loan|ffli|amal|sun|rin|n(?:tl|an)|Ran|Lan)g|(?:thick|succn?|precn?|less|g(?:tr|n)|ln|n)approx|(?:s(?:traightph|em)|(?:rtril|xu|u[lr]|xd|v[lr])tr|varph|l[lr]tr|b(?:sem|eps)|Ph)i|(?:circledd|osl|n(?:v[Dd]|V[Dd]|d)|hsl|V(?:vd|D)|Osl|v[Dd]|md)ash|(?:(?:RuleDelay|imp|cuw)e|(?:n(?:s(?:hort)?)?|short|rn)mi|D(?:Dotrah|iamon)|(?:i(?:nt)?pr|peri)o|odsol|llhar|c(?:opro|irmi)|(?:capa|anda|pou)n|Barwe|napi|api)d|(?:cu(?:rlyeq(?:suc|pre)|es)|telre|[ou]dbla|Udbla|Odbla|radi|lesc|gesc|dbla)c|(?:circled|big|eq|[is]|c|x|a|S|[hw]|W|H|G|E|C)circ|rightarrow|R(?:ightArrow|arr|e)|Pr(?:oportion)?|(?:longmapst|varpropt|p(?:lustw|ropt)|varrh|numer|(?:rsa|lsa|sb)qu|m(?:icr|h)|[lr]aqu|bdqu|eur)o|UnderBrace|ImaginaryI|B(?:ernoullis|a(?:ckslash|rv)|umpeq|cy)|(?:(?:Laplace|Mellin|zee)tr|Fo(?:uriertr|p)|(?:profsu|ssta)r|ordero|origo|[ps]op|nop|mop|i(?:op|mo)|h(?:op|al)|f(?:op|no)|dop|bop|Rop|Pop|Nop|Lop|Iop|Hop|Dop|[GJKMOQSTV-Zgjkoqvwyz]op|Bop)f|nsu[bp]seteq|t(?:ri(?:angleq|e)|imesd|he(?:tav|re4)|au)|O(?:verBrace|r)|(?:(?:pitchfo|checkma|t(?:opfo|b)|rob|rbb|l[bo]b)r|intlarh|b(?:brktbr|l(?:oc|an))|perten|NoBrea|rarrh|s[ew]arh|n[ew]arh|l(?:arrh|hbl)|uhbl|Hace)k|(?:NotCupC|(?:mu(?:lti)?|x)m|cupbrc)ap|t(?:riangle|imes|heta|opf?)|Precedes|Succeeds|Superset|NotEqual|(?:n(?:atural|exist|les)|s(?:qc[au]p|mte)|prime)s|c(?:ir(?:cled[RS]|[Ee])|u(?:rarrm|larrp|darr[lr]|ps)|o(?:mmat|pf)|aps|hi)|b(?:sol(?:hsu)?b|ump(?:eq|E)|ox(?:box|[Vv][HLRhlr]|[Hh][DUdu]|[DUdu][LRlr])|e(?:rnou|t[ah])|lk(?:34|1[24])|cy)|(?:l(?:esdot|squ|dqu)o|rsquo|rdquo|ngt)r|a(?:n(?:g(?:msda[a-h]|st|e)|d[dv])|st|p[Ee]|mp|fr|c[Edy])|(?:g(?:esdoto|E)|[lr]haru)l|(?:angrtvb|lrhar|nis)d|(?:(?:th(?:ic)?k|succn?|p(?:r(?:ecn?|n)?|lus)|rarr|l(?:ess|arr)|su[bp]|par|scn|g(?:tr|n)|ne|sc|n[glv]|ln|eq?)si|thetasy|ccupss|alefsy|botto)m|trpezium|(?:hks[ew]|dr?bk|bk)arow|(?:(?:[lr]a|d|c)empty|b(?:nequi|empty)|plank|nequi|odi)v|(?:(?:sc|rp|n)pol|point|fpart)int|(?:c(?:irf|wco)|awco)nint|PartialD|n(?:s(?:u[bp](?:set)?|c)|rarr|ot(?:ni|in)?|warr|e(?:arr)?|a(?:tur|p)|vlt|p(?:re?|ar)|um?|l[et]|ge|i)|n(?:atural|exist|les)|d(?:i(?:am(?:ond)?|v(?:ide)?)|tri|ash|ot|d)|backsim|l(?:esdot|squ|dqu)o|g(?:esdoto|E)|U(?:p(?:Arrow|si)|nion|arr)|angrtvb|p(?:l(?:anckh|us(?:d[ou]|[be]))|ar(?:sl|t)|r(?:od|nE|E)|erp|iv|m)|n(?:ot(?:niv[a-c]|in(?:v[a-c]|E))|rarr[cw]|s(?:u[bp][Ee]|c[er])|part|v(?:le|g[et])|g(?:es|E)|c(?:ap|y)|apE|lE|iv|Ll|Gg)|m(?:inus(?:du|b)|ale|cy|p)|rbr(?:k(?:sl[du]|e)|ac[ek])|(?:suphsu|tris|rcu|lcu)b|supdsub|(?:s[ew]a|n[ew]a)rrow|(?:b(?:ecaus|sim)|n(?:[lr]tri|bump)|csu[bp])e|equivDD|u(?:rcorn|lcorn|psi)|timesb|s(?:u(?:p(?:set)?|b(?:set)?)|q(?:su[bp]|u)|i(?:gma|m)|olb?|dot|mt|fr|ce?)|p(?:l(?:anck|us)|r(?:op|ec?)?|ara?|i)|o(?:times|r(?:d(?:er)?)?)|m(?:i(?:nusd?|d)|a(?:p(?:sto)?|lt)|u)|rmoust|g(?:e(?:s(?:dot|l)?|q)?|sim|n(?:ap|e)|t|l|g)|(?:spade|heart)s|c(?:u(?:rarr|larr|p)|o(?:m(?:ma|p)|lon|py|ng)|lubs|heck|cups|irc?|ent|ap)|colone|a(?:p(?:prox)?|n(?:g(?:msd|rt)?|d)|symp|f|c)|S(?:quare|u[bp]|c)|Subset|b(?:ecaus|sim)|vsu[bp]n[Ee]|s(?:u(?:psu[bp]|b(?:su[bp]|n[Ee]|E)|pn[Ee]|p[1-3E]|m)|q(?:u(?:ar[ef]|f)|su[bp]e)|igma[fv]|etmn|dot[be]|par|mid|hc?y|c[Ey])|f(?:rac(?:78|5[68]|45|3[458]|2[35]|1[2-68])|fr)|e(?:m(?:sp1[34]|ptyv)|psiv|c(?:irc|y)|t[ah]|ng|ll|fr|e)|(?:kappa|isins|vBar|fork|rho|phi|n[GL]t)v|divonx|V(?:dashl|ee)|gammad|G(?:ammad|cy|[Tgt])|[Ldhlt]strok|[HT]strok|(?:c(?:ylct|hc)|(?:s(?:oft|hch)|hard|S(?:OFT|HCH)|jser|J(?:ser|uk)|HARD|tsh|TSH|juk|iuk|I(?:uk|[EO])|zh|yi|nj|lj|k[hj]|gj|dj|ZH|Y[AIU]|NJ|LJ|K[HJ]|GJ|D[JSZ])c|ubrc|Ubrc|(?:yu|i[eo]|dz|v|p|f)c|TSc|SHc|CHc|Vc|Pc|Mc|Fc)y|(?:(?:wre|jm)at|dalet|a(?:ngs|le)p|imat|[lr]ds)h|[CLRUceglnou]acute|ff?llig|(?:f(?:fi|[ij])|sz|oe|ij|ae|OE|IJ)lig|r(?:a(?:tio|rr|ng)|tri|par|eal)|s[ew]arr|s(?:qc[au]p|mte)|prime|rarrb|i(?:n(?:fin|t)?|sin|t|i|c)|e(?:quiv|m(?:pty|sp)|p(?:si|ar)|cir|l|g)|kappa|isins|ncong|doteq|(?:wedg|sim)e|nsime|rsquo|rdquo|[lr]haru|V(?:dash|ert)|Tilde|lrhar|gamma|Equal|UpTee|n(?:[lr]tri|bump)|C(?:olon|up|ap)|v(?:arpi|ert)|u(?:psih|ml)|vnsu[bp]|r(?:tri[ef]|e(?:als|g)|a(?:rr[cw]|ng[de]|ce)|sh|lm|x)|rhard|sim[gl]E|i(?:sin[Ev]|mage|f[fr]|cy)|harrw|(?:n[gl]|l)eqq|g(?:sim[el]|tcc|e(?:qq|l)|nE|l[Eaj]|gg|ap)|ocirc|starf|utrif|d(?:trif|i(?:ams|e)|ashv|sc[ry]|fr|eg)|[du]har[lr]|T(?:HORN|a[bu])|(?:TRAD|[gl]vn)E|odash|[EUaeu]o(?:gon|pf)|alpha|[IJOUYgjuy]c(?:irc|y)|v(?:arr|ee)|succ|sim[gl]|harr|ln(?:ap|e)|lesg|(?:n[gl]|l)eq|ocir|star|utri|vBar|fork|su[bp]e|nsim|lneq|gneq|csu[bp]|zwn?j|yacy|x(?:opf|i)|scnE|o(?:r(?:d[fm]|v)|mid|lt|hm|gt|fr|cy|S)|scap|rsqb|ropf|ltcc|tsc[ry]|QUOT|[EOUYao]uml|rho|phi|n[GL]t|e[gl]s|ngt|I(?:nt|m)|nis|rfr|rcy|lnE|lEg|ufr|S(?:um|cy)|R(?:sh|ho)|psi|Ps?i|[NRTt]cy|L(?:sh|cy|[Tt])|kcy|Kcy|Hat|REG|[Zdz]cy|wr|lE|wp|Xi|Nu|Mu)(;)", - "name": "constant.language.character-reference.named.html", - "captures": { - "1": { - "name": "punctuation.definition.character-reference.begin.html" - }, - "2": { - "name": "keyword.control.character-reference.html" - }, - "3": { - "name": "punctuation.definition.character-reference.end.html" - } - } - }, - "commonmark-code-fenced-apib": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.apib", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.apib.mdx", - "patterns": [ - { - "include": "text.html.markdown.source.gfm.apib" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.apib", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.apib.mdx", - "patterns": [ - { - "include": "text.html.markdown.source.gfm.apib" - } - ] - } - ] - }, - "commonmark-code-fenced-asciidoc": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.asciidoc", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.asciidoc.mdx", - "patterns": [ - { - "include": "text.html.asciidoc" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.asciidoc", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.asciidoc.mdx", - "patterns": [ - { - "include": "text.html.asciidoc" - } - ] - } - ] - }, - "commonmark-code-fenced-c": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.c", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.c.mdx", - "patterns": [ - { - "include": "source.c" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.c", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.c.mdx", - "patterns": [ - { - "include": "source.c" - } - ] - } - ] - }, - "commonmark-code-fenced-clojure": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.clojure", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.clojure.mdx", - "patterns": [ - { - "include": "source.clojure" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.clojure", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.clojure.mdx", - "patterns": [ - { - "include": "source.clojure" - } - ] - } - ] - }, - "commonmark-code-fenced-coffee": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.coffee", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.coffee.mdx", - "patterns": [ - { - "include": "source.coffee" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.coffee", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.coffee.mdx", - "patterns": [ - { - "include": "source.coffee" - } - ] - } - ] - }, - "commonmark-code-fenced-console": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.console", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.console.mdx", - "patterns": [ - { - "include": "text.python.console" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.console", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.console.mdx", - "patterns": [ - { - "include": "text.python.console" - } - ] - } - ] - }, - "commonmark-code-fenced-cpp": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.cpp", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.cpp.mdx", - "patterns": [ - { - "include": "source.c++" - }, - { - "include": "source.cpp" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.cpp", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.cpp.mdx", - "patterns": [ - { - "include": "source.c++" - }, - { - "include": "source.cpp" - } - ] - } - ] - }, - "commonmark-code-fenced-cs": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.cs", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.cs.mdx", - "patterns": [ - { - "include": "source.cs" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.cs", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.cs.mdx", - "patterns": [ - { - "include": "source.cs" - } - ] - } - ] - }, - "commonmark-code-fenced-css": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.css", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.css.mdx", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.css", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.css.mdx", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - "commonmark-code-fenced-diff": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.diff", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.diff.mdx", - "patterns": [ - { - "include": "source.diff" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.diff", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.diff.mdx", - "patterns": [ - { - "include": "source.diff" - } - ] - } - ] - }, - "commonmark-code-fenced-dockerfile": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.dockerfile", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.dockerfile.mdx", - "patterns": [ - { - "include": "source.dockerfile" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.dockerfile", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.dockerfile.mdx", - "patterns": [ - { - "include": "source.dockerfile" - } - ] - } - ] - }, - "commonmark-code-fenced-elixir": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.elixir", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.elixir.mdx", - "patterns": [ - { - "include": "source.elixir" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.elixir", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.elixir.mdx", - "patterns": [ - { - "include": "source.elixir" - } - ] - } - ] - }, - "commonmark-code-fenced-elm": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.elm", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.elm.mdx", - "patterns": [ - { - "include": "source.elm" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.elm", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.elm.mdx", - "patterns": [ - { - "include": "source.elm" - } - ] - } - ] - }, - "commonmark-code-fenced-erlang": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.erlang", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.erlang.mdx", - "patterns": [ - { - "include": "source.erlang" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.erlang", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.erlang.mdx", - "patterns": [ - { - "include": "source.erlang" - } - ] - } - ] - }, - "commonmark-code-fenced-gitconfig": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.gitconfig", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.gitconfig.mdx", - "patterns": [ - { - "include": "source.gitconfig" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.gitconfig", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.gitconfig.mdx", - "patterns": [ - { - "include": "source.gitconfig" - } - ] - } - ] - }, - "commonmark-code-fenced-go": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.go", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.go.mdx", - "patterns": [ - { - "include": "source.go" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.go", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.go.mdx", - "patterns": [ - { - "include": "source.go" - } - ] - } - ] - }, - "commonmark-code-fenced-graphql": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.graphql", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.graphql.mdx", - "patterns": [ - { - "include": "source.graphql" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.graphql", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.graphql.mdx", - "patterns": [ - { - "include": "source.graphql" - } - ] - } - ] - }, - "commonmark-code-fenced-haskell": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.haskell", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.haskell.mdx", - "patterns": [ - { - "include": "source.haskell" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.haskell", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.haskell.mdx", - "patterns": [ - { - "include": "source.haskell" - } - ] - } - ] - }, - "commonmark-code-fenced-html": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.html", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.html.mdx", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.html", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.html.mdx", - "patterns": [ - { - "include": "text.html.basic" - } - ] - } - ] - }, - "commonmark-code-fenced-ini": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.ini", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.ini.mdx", - "patterns": [ - { - "include": "source.ini" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.ini", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.ini.mdx", - "patterns": [ - { - "include": "source.ini" - } - ] - } - ] - }, - "commonmark-code-fenced-java": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.java", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.java.mdx", - "patterns": [ - { - "include": "source.java" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.java", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.java.mdx", - "patterns": [ - { - "include": "source.java" - } - ] - } - ] - }, - "commonmark-code-fenced-js": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.js", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.js.mdx", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.js", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.js.mdx", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "commonmark-code-fenced-json": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.json", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.json.mdx", - "patterns": [ - { - "include": "source.json" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.json", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.json.mdx", - "patterns": [ - { - "include": "source.json" - } - ] - } - ] - }, - "commonmark-code-fenced-julia": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.julia", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.julia.mdx", - "patterns": [ - { - "include": "source.julia" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.julia", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.julia.mdx", - "patterns": [ - { - "include": "source.julia" - } - ] - } - ] - }, - "commonmark-code-fenced-kotlin": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:kotlin|(?:.*\\.)?(?:kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.kotlin", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.kotlin.mdx", - "patterns": [ - { - "include": "source.kotlin" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:kotlin|(?:.*\\.)?(?:kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.kotlin", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.kotlin.mdx", - "patterns": [ - { - "include": "source.kotlin" - } - ] - } - ] - }, - "commonmark-code-fenced-less": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.less", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.less.mdx", - "patterns": [ - { - "include": "source.css.less" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.less", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.less.mdx", - "patterns": [ - { - "include": "source.css.less" - } - ] - } - ] - }, - "commonmark-code-fenced-lua": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.lua", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.lua.mdx", - "patterns": [ - { - "include": "source.lua" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.lua", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.lua.mdx", - "patterns": [ - { - "include": "source.lua" - } - ] - } - ] - }, - "commonmark-code-fenced-makefile": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.makefile", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.makefile.mdx", - "patterns": [ - { - "include": "source.makefile" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.makefile", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.makefile.mdx", - "patterns": [ - { - "include": "source.makefile" - } - ] - } - ] - }, - "commonmark-code-fenced-md": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.md", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.md.mdx", - "patterns": [ - { - "include": "text.md" - }, - { - "include": "source.gfm" - }, - { - "include": "text.html.markdown" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.md", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.md.mdx", - "patterns": [ - { - "include": "text.md" - }, - { - "include": "source.gfm" - }, - { - "include": "text.html.markdown" - } - ] - } - ] - }, - "commonmark-code-fenced-mdx": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.mdx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.mdx.mdx", - "patterns": [ - { - "include": "source.mdx" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.mdx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.mdx.mdx", - "patterns": [ - { - "include": "source.mdx" - } - ] - } - ] - }, - "commonmark-code-fenced-objc": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.objc", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.objc.mdx", - "patterns": [ - { - "include": "source.objc" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.objc", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.objc.mdx", - "patterns": [ - { - "include": "source.objc" - } - ] - } - ] - }, - "commonmark-code-fenced-perl": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.perl", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.perl.mdx", - "patterns": [ - { - "include": "source.perl" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.perl", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.perl.mdx", - "patterns": [ - { - "include": "source.perl" - } - ] - } - ] - }, - "commonmark-code-fenced-php": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.php", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.php.mdx", - "patterns": [ - { - "include": "text.html.php" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.php", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.php.mdx", - "patterns": [ - { - "include": "text.html.php" - } - ] - } - ] - }, - "commonmark-code-fenced-python": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.python", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.python.mdx", - "patterns": [ - { - "include": "source.python" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.python", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.python.mdx", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - "commonmark-code-fenced-r": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.r", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.r.mdx", - "patterns": [ - { - "include": "source.r" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.r", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.r.mdx", - "patterns": [ - { - "include": "source.r" - } - ] - } - ] - }, - "commonmark-code-fenced-raku": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.raku", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.raku.mdx", - "patterns": [ - { - "include": "source.raku" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.raku", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.raku.mdx", - "patterns": [ - { - "include": "source.raku" - } - ] - } - ] - }, - "commonmark-code-fenced-ruby": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.ruby", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.ruby.mdx", - "patterns": [ - { - "include": "source.ruby" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.ruby", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.ruby.mdx", - "patterns": [ - { - "include": "source.ruby" - } - ] - } - ] - }, - "commonmark-code-fenced-rust": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.rust", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.rust.mdx", - "patterns": [ - { - "include": "source.rust" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.rust", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.rust.mdx", - "patterns": [ - { - "include": "source.rust" - } - ] - } - ] - }, - "commonmark-code-fenced-scala": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.scala", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.scala.mdx", - "patterns": [ - { - "include": "source.scala" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.scala", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.scala.mdx", - "patterns": [ - { - "include": "source.scala" - } - ] - } - ] - }, - "commonmark-code-fenced-scss": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.scss", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.scss.mdx", - "patterns": [ - { - "include": "source.css.scss" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.scss", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.scss.mdx", - "patterns": [ - { - "include": "source.css.scss" - } - ] - } - ] - }, - "commonmark-code-fenced-shell": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.shell", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.shell.mdx", - "patterns": [ - { - "include": "source.shell" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.shell", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.shell.mdx", - "patterns": [ - { - "include": "source.shell" - } - ] - } - ] - }, - "commonmark-code-fenced-shell-session": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.shell-session", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.shell-session.mdx", - "patterns": [ - { - "include": "text.shell-session" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.shell-session", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.shell-session.mdx", - "patterns": [ - { - "include": "text.shell-session" - } - ] - } - ] - }, - "commonmark-code-fenced-sql": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.sql", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.sql.mdx", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.sql", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.sql.mdx", - "patterns": [ - { - "include": "source.sql" - } - ] - } - ] - }, - "commonmark-code-fenced-svg": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.svg", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.svg.mdx", - "patterns": [ - { - "include": "text.xml.svg" - }, - { - "include": "text.xml" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.svg", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.svg.mdx", - "patterns": [ - { - "include": "text.xml.svg" - }, - { - "include": "text.xml" - } - ] - } - ] - }, - "commonmark-code-fenced-swift": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.swift", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.swift.mdx", - "patterns": [ - { - "include": "source.swift" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.swift", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.swift.mdx", - "patterns": [ - { - "include": "source.swift" - } - ] - } - ] - }, - "commonmark-code-fenced-toml": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.toml", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.toml.mdx", - "patterns": [ - { - "include": "source.toml" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.toml", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.toml.mdx", - "patterns": [ - { - "include": "source.toml" - } - ] - } - ] - }, - "commonmark-code-fenced-ts": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.ts", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.ts.mdx", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.ts", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.ts.mdx", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - "commonmark-code-fenced-tsx": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.tsx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.tsx.mdx", - "patterns": [ - { - "include": "source.tsx" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.tsx", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.tsx.mdx", - "patterns": [ - { - "include": "source.tsx" - } - ] - } - ] - }, - "commonmark-code-fenced-vbnet": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.vbnet", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.vbnet.mdx", - "patterns": [ - { - "include": "source.vbnet" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.vbnet", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.vbnet.mdx", - "patterns": [ - { - "include": "source.vbnet" - } - ] - } - ] - }, - "commonmark-code-fenced-xml": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.xml", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.xml.mdx", - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.xml", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.xml.mdx", - "patterns": [ - { - "include": "text.xml" - } - ] - } - ] - }, - "commonmark-code-fenced-yaml": { - "patterns": [ - { - "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.yaml", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.yaml.mdx", - "patterns": [ - { - "include": "source.yaml" - } - ] - }, - { - "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", - "beginCaptures": { - "1": { - "name": "string.other.begin.code.fenced.mdx" - }, - "2": { - "name": "entity.name.function.mdx", - "patterns": [ - { - "include": "#markdown-string" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#markdown-string" - } - ] - } - }, - "contentName": "meta.embedded.yaml", - "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", - "endCaptures": { - "1": { - "name": "string.other.end.code.fenced.mdx" - } - }, - "name": "markup.code.yaml.mdx", - "patterns": [ - { - "include": "source.yaml" - } - ] - } - ] - } - }, - "scopeName": "source.mdx" -} diff --git a/lib/grammars/mermaid.tmLanguage.json b/lib/grammars/mermaid.tmLanguage.json deleted file mode 100644 index c05db71..0000000 --- a/lib/grammars/mermaid.tmLanguage.json +++ /dev/null @@ -1,1343 +0,0 @@ -{ - "fileTypes": ["mermaid"], - "patterns": [ - { - "include": "#mermaid" - } - ], - "repository": { - "mermaid": { - "patterns": [ - { - "comment": "Class Diagram", - "begin": "^\\s*(classDiagram)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "comment": "(class name) (\"multiplicity relationship\")? (relationship) (\"multiplicity relationship\")? (class name) :? (labelText)?", - "match": "([\\w-]+)\\s(\"(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)\")?\\s?(--o|--\\*|\\<--|--\\>|<\\.\\.|\\.\\.\\>|\\<\\|\\.\\.|\\.\\.\\|\\>|\\<\\|--|--\\|>|--\\*|--|\\.\\.|\\*--|o--)\\s(\"(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)\")?\\s?([\\w-]+)\\s?(:)?\\s(.*)$", - "captures": { - "1": { - "name": "entity.name.type.class.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "entity.name.type.class.mermaid" - }, - "6": { - "name": "keyword.control.mermaid" - }, - "7": { - "name": "string" - } - } - }, - { - "comment": "(class name) : (visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$", - "match": "([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(\\()([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?(\\))([*\\$])?\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$", - "captures": { - "1": { - "name": "entity.name.type.class.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "entity.name.function.mermaid" - }, - "5": { - "name": "punctuation.parenthesis.open.mermaid" - }, - "6": { - "name": "storage.type.mermaid" - }, - "7": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "8": { - "name": "storage.type.mermaid" - }, - "9": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "10": { - "name": "entity.name.variable.parameter.mermaid" - }, - "11": { - "name": "punctuation.parenthesis.closed.mermaid" - }, - "12": { - "name": "keyword.control.mermaid" - }, - "13": { - "name": "storage.type.mermaid" - }, - "14": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "15": { - "name": "storage.type.mermaid" - }, - "16": { - "name": "punctuation.definition.typeparameters.end.mermaid" - } - } - }, - { - "comment": "(class name) : (visibility)?(datatype/generic data type) (attribute name)$", - "match": "([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$", - "captures": { - "1": { - "name": "entity.name.type.class.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "storage.type.mermaid" - }, - "5": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "6": { - "name": "storage.type.mermaid" - }, - "7": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "8": { - "name": "entity.name.variable.field.mermaid" - } - } - }, - { - "comment": "<<(Annotation)>> (class name)", - "match": "(<<)([\\w-]+)(>>)\\s?([\\w-]+)?", - "captures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "2": { - "name": "storage.type.mermaid" - }, - "3": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "4": { - "name": "entity.name.type.class.mermaid" - } - } - }, - { - "comment": "class (class name) ~?(generic type)?~? ({)", - "begin": "(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?\\s?({)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.type.class.mermaid" - }, - "3": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "4": { - "name": "storage.type.mermaid" - }, - "5": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "6": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "comment": "(visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$", - "begin": "\\s([\\+~#-])?([\\w-]+)(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.function.mermaid" - }, - "3": { - "name": "punctuation.parenthesis.open.mermaid" - } - }, - "patterns": [ - { - "comment": "(TBD)", - "match": "\\s*,?\\s*([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?", - "captures": { - "1": { - "name": "storage.type.mermaid" - }, - "2": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "3": { - "name": "storage.type.mermaid" - }, - "4": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "5": { - "name": "entity.name.variable.parameter.mermaid" - } - } - } - ], - "end": "(\\))([*\\$])?\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$", - "endCaptures": { - "1": { - "name": "punctuation.parenthesis.closed.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "storage.type.mermaid" - }, - "4": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "5": { - "name": "storage.type.mermaid" - }, - "6": { - "name": "punctuation.definition.typeparameters.end.mermaid" - } - } - }, - { - "comment": "(visibility)?(datatype/generic data type) (attribute name)$", - "match": "\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "storage.type.mermaid" - }, - "3": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "4": { - "name": "storage.type.mermaid" - }, - "5": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "6": { - "name": "entity.name.variable.field.mermaid" - } - } - }, - { - "comment": "<<(Annotation)>> (class name)", - "match": "(<<)([\\w-]+)(>>)\\s?([\\w-]+)?", - "captures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "2": { - "name": "storage.type.mermaid" - }, - "3": { - "name": "punctuation.definition.typeparameters.end.mermaid" - }, - "4": { - "name": "entity.name.type.class.mermaid" - } - } - } - ], - "end": "(})", - "endCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "class (class name) ~?(generic type)?~?", - "match": "(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.type.class.mermaid" - }, - "3": { - "name": "punctuation.definition.typeparameters.begin.mermaid" - }, - "4": { - "name": "storage.type.mermaid" - }, - "5": { - "name": "punctuation.definition.typeparameters.end.mermaid" - } - } - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "Entity Relationship Diagram", - "begin": "^\\s*(erDiagram)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "comment": "(entity)", - "match": "^\\s*([\\w-]+)$", - "name": "variable" - }, - { - "comment": "(entity) {", - "begin": "\\s+([\\w-]+)\\s+({)", - "beginCaptures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "comment": "(type) (name) (PK|FK)? (\"comment\")?", - "match": "\\s*([\\w-]+)\\s+([\\w-]+)\\s+(PK|FK)?\\s*(\"[\"\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*\")?\\s*", - "captures": { - "1": { - "name": "storage.type.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "string" - } - } - } - ], - "end": "(})", - "endCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(entity) (relationship) (entity) : (label)", - "match": "\\s*([\\w-]+)\\s+((?:\\|o|\\|\\||}o|}\\|)(?:..|--)(?:o\\||\\|\\||o{|\\|{))\\s+([\\w-]+)\\s+(:)\\s+((?:\"[\\w\\s]*\")|(?:[\\w-]+))", - "captures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "variable" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "string" - } - } - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "Gantt Diagram", - "begin": "^\\s*(gantt)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "match": "(dateFormat)\\s+([\\w\\-\\.]+)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.function.mermaid" - } - } - }, - { - "match": "(axisFormat)\\s+([\\w\\%\\/\\\\\\-\\.]+)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.function.mermaid" - } - } - }, - { - "match": "(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "match": "(excludes)\\s+((?:[\\d\\-,\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "match": "^\\s+(todayMarker)\\s+(.*)$", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "match": "(section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "begin": "^\\s(.*)(:)", - "beginCaptures": { - "1": { - "name": "string" - }, - "2": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "(crit|done|active|after)", - "name": "entity.name.function.mermaid" - }, - { - "match": "\\%%.*", - "name": "comment" - } - ], - "end": "$" - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "Git Graph", - "begin": "^\\s*(gitGraph)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "comment": "commit", - "begin": "\\s*(commit)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "comment": "(id)(:) (\"id\")", - "match": "\\s*(id)(:)\\s?(\"[^\"\\n]*\")", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - } - }, - { - "comment": "(type)(:) (COMMIT_TYPE)", - "match": "\\s*(type)(:)\\s?(NORMAL|REVERSE|HIGHLIGHT)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "entity.name.function.mermaid" - } - } - }, - { - "comment": "(tag)(:) (\"tag\")", - "match": "\\s*(tag)(:)\\s?(\"[\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*\")", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - } - } - ], - "end": "$" - }, - { - "comment": "(checkout) (branch-name)", - "match": "\\s*(checkout)\\s*([^\\s\"]*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - } - } - }, - { - "comment": "(branch) (branch-name) (order)?(:) (number)", - "match": "\\s*(branch)\\s*([^\\s\"]*)\\s*(?:(order)(:)\\s?(\\d+))?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "constant.numeric.decimal.mermaid" - } - } - }, - { - "comment": "(merge) (branch-name) (tag: \"tag-name\")?", - "match": "\\s*(merge)\\s*([^\\s\"]*)\\s*(?:(tag)(:)\\s?(\"[^\"\\n]*\"))?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "string" - } - } - }, - { - "comment": "(cherry-pick) (id)(:)(\"commit-id\")", - "match": "\\s*(cherry-pick)\\s+(id)(:)\\s*(\"[^\"\\n]*\")", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "string" - } - } - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "Graph", - "begin": "^\\s*(graph|flowchart)\\s+([\\p{Letter}\\ 0-9]+)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.function.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "match": "\\b(subgraph)\\s+([\\p{Letter}\\ 0-9]+)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.function.mermaid" - } - }, - "name": "meta.function.mermaid" - }, - { - "match": "\\b(end|RB|BT|RL|TD|LR)\\b", - "name": "keyword.control.mermaid" - }, - { - "comment": "(Entity)(Edge/Shape)(Text)(Edge/Shape)", - "begin": "(\\b(?:(?!--|==)[-\\w])+\\b\\s*)(\\(\\[|\\[\\[|\\[\\(|\\[|\\(+|\\>|\\{|\\(\\()", - "beginCaptures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - }, - "patterns": [ - { - "comment": "(\"multi-line text\")", - "begin": "\\s*(\")", - "beginCaptures": { - "1": { - "name": "string" - } - }, - "patterns": [ - { - "comment": "capture inner text between quotes", - "begin": "([^\"]*)", - "beginCaptures": { - "1": { - "name": "string" - } - }, - "patterns": [ - { - "match": "([^\"]*)", - "captures": { - "1": { - "name": "comment" - } - } - } - ], - "end": "(?=\")" - } - ], - "end": "(\")", - "endCaptures": { - "1": { - "name": "string" - } - } - }, - { - "comment": "(single line text)", - "match": "\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)", - "captures": { - "1": { - "name": "string" - } - } - } - ], - "end": "(\\]\\)|\\]\\]|\\)\\]|\\]|\\)+|\\}|\\)\\))", - "endCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(Graph Link)(\"Multiline text\")(Graph Link)", - "begin": "\\s*((?:-{2,5}|={2,5})[xo>]?\\|)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "comment": "(\"multi-line text\")", - "begin": "\\s*(\")", - "beginCaptures": { - "1": { - "name": "string" - } - }, - "patterns": [ - { - "comment": "capture inner text between quotes", - "begin": "([^\"]*)", - "beginCaptures": { - "1": { - "name": "string" - } - }, - "patterns": [ - { - "match": "([^\"]*)", - "captures": { - "1": { - "name": "comment" - } - } - } - ], - "end": "(?=\")" - } - ], - "end": "(\")", - "endCaptures": { - "1": { - "name": "string" - } - } - }, - { - "comment": "(single line text)", - "match": "\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)", - "captures": { - "1": { - "name": "string" - } - } - } - ], - "end": "(\\|)", - "endCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(Graph Link Start Arrow)(Text)(Graph Link End Arrow)", - "match": "\\s*([xo<]?(?:-{2,5}|={2,5}|-\\.{1,3}|-\\.))((?:(?!--|==)[\\w\\s*+%=\\\\/:\\.\\-'`,\"&^#$!?])*)((?:-{2,5}|={2,5}|\\.{1,3}-|\\.-)[xo>]?)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - }, - "3": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(Graph Link)", - "match": "\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "Entity", - "match": "(\\b(?:(?!--|==)[-\\w])+\\b\\s*)", - "name": "variable" - }, - { - "comment": "(Class)(Node(s))(ClassName)", - "match": "\\s*(class)\\s+(\\b[-,\\w]+)\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "string" - } - } - }, - { - "comment": "(ClassDef)(ClassName)(Styles)", - "match": "\\s*(classDef)\\s+(\\b\\w+\\b)\\s+(\\b[-,:;#\\w]+)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "string" - } - } - }, - { - "comment": "(Click)(Entity)(Link)?(Tooltip)", - "match": "\\s*(click)\\s+(\\b[-\\w]+\\b\\s*)(\\b\\w+\\b)?\\s(\"*.*\")", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "variable" - }, - "4": { - "name": "string" - } - } - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "Pie Chart", - "begin": "^\\s*(pie)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "match": "(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "begin": "\\s(.*)(:)", - "beginCaptures": { - "1": { - "name": "string" - }, - "2": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - } - ], - "end": "$" - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "Sequence Diagram", - "begin": "^\\s*(sequenceDiagram)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "(\\%%|#).*", - "name": "comment" - }, - { - "comment": "(title)(title text)", - "match": "(title)\\s*(:)?\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!:*+=<>\\'\\\\\\-\\w\\s]*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - } - }, - { - "comment": "(participant)(Actor)(as)?(Label)?", - "match": "\\s*(participant|actor)\\s+((?:(?! as )[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s])+)\\s*(as)?\\s([\"\\(\\)$&%\\^/#.,?!*=<>\\'\\\\\\w\\s]+)?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "string" - } - } - }, - { - "comment": "(activate/deactivate)(Actor)", - "match": "\\s*((?:de)?activate)\\s+(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - } - } - }, - { - "comment": "(Note)(direction)(Actor)(,)?(Actor)?(:)(Message)", - "match": "\\s*(Note)\\s+((?:left|right)\\sof|over)\\s+(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)(,)?(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)?(:)(?:\\s+([^;#]*))?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "entity.name.function.mermaid" - }, - "3": { - "name": "variable" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "variable" - }, - "6": { - "name": "keyword.control.mermaid" - }, - "7": { - "name": "string" - } - } - }, - { - "comment": "(loop)(loop text)", - "match": "\\s*(loop)(?:\\s+([^;#]*))?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "comment": "(end)", - "match": "\\s*(end)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(alt/else/opt/par/and/autonumber)(text)", - "match": "\\s*(alt|else|opt|par|and|rect|autonumber)(?:\\s+([^#;]*))?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "comment": "(Actor)(Arrow)(Actor)(:)(Message)", - "match": "\\s*(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b)\\s*(-?-(?:\\>|x|\\))\\>?[+-]?)\\s*([\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b)\\s*(:)\\s*([^;#]*)", - "captures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "variable" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "string" - } - } - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "State Diagram", - "begin": "^\\s*(stateDiagram(?:-v2)?)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "comment": "}", - "match": "\\s+(})\\s+", - "captures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "--", - "match": "\\s+(--)\\s+", - "captures": { - "1": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(state)", - "match": "^\\s*([\\w-]+)$", - "name": "variable" - }, - { - "comment": "(state) : (description)", - "match": "([\\w-]+)\\s+(:)\\s+(\\s*[-\\w\\s]+\\b)", - "captures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - } - }, - { - "comment": "state", - "begin": "(state)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "comment": "\"(description)\" as (state)", - "match": "\\s+(\"[-\\w\\s]+\\b\")\\s+(as)\\s+([\\w-]+)", - "captures": { - "1": { - "name": "string" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "variable" - } - } - }, - { - "comment": "(state name) {", - "match": "\\s+([\\w-]+)\\s+({)", - "captures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - } - } - }, - { - "comment": "(state name) <<fork|join>>", - "match": "\\s+([\\w-]+)\\s+(<<(?:fork|join)>>)", - "captures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - } - } - } - ], - "end": "$" - }, - { - "comment": "(state) -->", - "begin": "([\\w-]+)\\s+(-->)", - "beginCaptures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "comment": "(state) (:)? (transition text)?", - "match": "\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?", - "captures": { - "1": { - "name": "variable" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - } - }, - { - "comment": "[*] (:)? (transition text)?", - "match": "(\\[\\*\\])\\s*(:)?\\s*([^\\n:]+)?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "string" - } - } - } - ], - "end": "$" - }, - { - "comment": "[*] --> (state) (:)? (transition text)?", - "match": "(\\[\\*\\])\\s+(-->)\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "variable" - }, - "4": { - "name": "keyword.control.mermaid" - }, - "5": { - "name": "string" - } - } - }, - { - "comment": "note left|right of (state name)", - "match": "(note (?:left|right) of)\\s+([\\w-]+)\\s+(:)\\s*([^\\n:]+)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "keyword.control.mermaid" - }, - "4": { - "name": "string" - } - } - }, - { - "comment": "note left|right of (state name) (note text) end note", - "begin": "(note (?:left|right) of)\\s+([\\w-]+)(.|\\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "variable" - } - }, - "contentName": "string", - "end": "(end note)", - "endCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - } - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - }, - { - "comment": "User Journey", - "begin": "^\\s*(journey)", - "beginCaptures": { - "1": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "match": "\\%%.*", - "name": "comment" - }, - { - "match": "(title|section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", - "captures": { - "1": { - "name": "keyword.control.mermaid" - }, - "2": { - "name": "string" - } - } - }, - { - "begin": "\\s*([\"\\(\\)$&%\\^/.,?!*+=<>\\'\\\\\\-\\w\\s]*)\\s*(:)\\s*(\\d+)\\s*(:)", - "beginCaptures": { - "1": { - "name": "string" - }, - "2": { - "name": "keyword.control.mermaid" - }, - "3": { - "name": "constant.numeric.decimal.mermaid" - }, - "4": { - "name": "keyword.control.mermaid" - } - }, - "patterns": [ - { - "comment": "(taskName)", - "match": "\\s*,?\\s*([^,#\\n]+)", - "captures": { - "1": { - "name": "variable" - } - } - } - ], - "end": "$" - } - ], - "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" - } - ] - } - }, - "scopeName": "source.mermaid", - "name": "mermaid" -} diff --git a/lib/grammars/narrat.tmLanguage.json b/lib/grammars/narrat.tmLanguage.json deleted file mode 100644 index 1b88942..0000000 --- a/lib/grammars/narrat.tmLanguage.json +++ /dev/null @@ -1,227 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "narrat", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#expression" - } - ], - "repository": { - "expression": { - "patterns": [ - { - "include": "#keywords" - }, - { - "include": "#commands" - }, - { - "include": "#operators" - }, - { - "include": "#primitives" - }, - { - "include": "#strings" - }, - { - "include": "#paren-expression" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.narrat", - "match": "\\b(if|else|choice)\\b" - }, - { - "name": "variable.value.narrat", - "match": "\\$[\\w|\\.]+\\b" - }, - { - "name": "entity.name.function.narrat", - "match": "(?x) # Ignore comments\n ^\\w+ # Find label name\n (?=(\\s|\\w)*:) # Positive lookahead for ':'\n" - }, - { - "name": "invalid.label.narrat", - "match": "(?x) # Ignore comments\n ^\\w+ # Find label name\n (?!(\\s|\\w)*:) # Negative lookahead for ':'\n" - }, - { - "name": "entity.other.attribute-name", - "match": "(?<=\\w)[^^](\\b\\w+\\b)(?=(\\s|\\w)*:)" - } - ] - }, - "commands": { - "patterns": [ - { - "name": "keyword.commands.variables.narrat", - "match": "\\b(set|var)\\b" - }, - { - "name": "keyword.commands.text.narrat", - "match": "\\b(talk|think)\\b" - }, - { - "name": "keyword.commands.flow.narrat", - "match": "\\b(jump|run|wait|return|save|save_prompt)" - }, - { - "name": "keyword.commands.helpers.narrat", - "match": "\\b(log|clear_dialog)\\b" - }, - { - "name": "keyword.commands.screens.narrat", - "match": "\\b(set_screen|empty_layer|set_button)" - }, - { - "name": "keyword.commands.audio.narrat", - "match": "\\b(play|pause|stop)\\b" - }, - { - "name": "keyword.commands.notifications.narrat", - "match": "\\b(notify|enable_notifications|disable_notifications)\\b" - }, - { - "name": "keyword.commands.stats.narrat", - "match": "\\b(set_stat|get_stat_value|add_stat)" - }, - { - "name": "keyword.commands.math.narrat", - "match": "\\b(neg|abs|random|random_float|random_from_args|min|max|clamp|floor|round|ceil|sqrt|^)\\b" - }, - { - "name": "keyword.commands.string.narrat", - "match": "\\b(concat|join)\\b" - }, - { - "name": "keyword.commands.text_field.narrat", - "match": "\\b(text_field)\\b" - }, - { - "name": "keyword.commands.skills.narrat", - "match": "\\b(add_level|set_level|add_xp|roll|get_level|get_xp)\\b" - }, - { - "name": "keyword.commands.inventory.narrat", - "match": "\\b(add_item|remove_item|enable_interaction|disable_interaction|has_item?|item_amount?)" - }, - { - "name": "keyword.commands.quests.narrat", - "match": "\\b(start_quest|start_objective|complete_objective|complete_quest|quest_started?|objective_started?|quest_completed?|objective_completed?)" - } - ] - }, - "operators": { - "patterns": [ - { - "name": "keyword.operator.logic.narrat", - "match": "(&&|\\|\\||!=|==|>=|<=|<|>|!|\\?)\\s" - }, - { - "name": "keyword.operator.arithmetic.narrat", - "match": "(\\+|-|\\*|\\/)\\s" - } - ] - }, - "interpolation": { - "patterns": [ - { - "name": "variable.interpolation.narrat", - "match": "(\\w|\\.)+" - } - ] - }, - "strings": { - "name": "string.quoted.double.narrat", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.narrat", - "match": "\\\\." - }, - { - "name": "expression.template", - "begin": "%{", - "end": "}", - "beginCaptures": { - "0": { - "name": "punctuation.template.open" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.template.close.narrat" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#interpolation" - } - ] - } - ] - }, - "paren-expression": { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.paren.open" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.paren.close" - } - }, - "name": "expression.group", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "primitives": { - "patterns": [ - { - "name": "constant.numeric.narrat", - "match": "\\b\\d+\\b" - }, - { - "name": "constant.language.true.narrat", - "match": "\\btrue\\b" - }, - { - "name": "constant.language.false.narrat", - "match": "\\bfalse\\b" - }, - { - "name": "constant.language.null.narrat", - "match": "\\bnull\\b" - }, - { - "name": "constant.language.undefined.narrat", - "match": "\\bundefined\\b" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.line.narrat", - "match": "\\/\\/.*$" - } - ] - } - }, - "scopeName": "source.narrat" -} diff --git a/lib/grammars/nextflow.tmLanguage.json b/lib/grammars/nextflow.tmLanguage.json deleted file mode 100644 index dee964a..0000000 --- a/lib/grammars/nextflow.tmLanguage.json +++ /dev/null @@ -1,299 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "nextflow", - "scopeName": "source.nextflow", - "keyEquivalent": "^~N", - "patterns": [ - { - "include": "#nfl-rules" - } - ], - "repository": { - "nfl-rules": { - "patterns": [ - { - "include": "#process-def" - }, - { - "include": "#workflow-def" - }, - { - "include": "#code-block" - }, - { - "include": "#include-statement" - }, - { - "include": "#implicit-variables" - }, - { - "comment": "method call and parens", - "begin": "(\\w*\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.nextflow-groovy" - } - ] - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#nfl-rules" - } - ] - }, - { - "comment": "braces", - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#nfl-rules" - } - ] - }, - { - "include": "source.nextflow-groovy" - } - ] - }, - "process-def": { - "name": "process.nextflow", - "begin": "^\\s*(process)\\s+(\\w+|\"[^\"]+\"|'[^']+')\\s*{", - "beginCaptures": { - "1": { - "name": "keyword.nextflow" - }, - "2": { - "name": "function.nextflow" - } - }, - "end": "}", - "patterns": [ - { - "include": "#process-body" - } - ] - }, - "process-body": { - "patterns": [ - { - "name": "entity.name.function.nextflow", - "match": "(?:accelerator|afterScript|beforeScript|cache|cpus|conda|container|containerOptions|clusterOptions|debug|disk|echo|errorStrategy|executor|ext|label|machineType|maxErrors|maxForks|maxRetries|memory|module|penv|pod|publishDir|queue|resourceLabels|scratch|stageInMode|stageOutMode|storeDir|tag|time)\\b" - }, - { - "name": "constant.block.nextflow", - "match": "(?:input|output|when|script|shell|exec):" - }, - { - "name": "entity.name.function.nextflow", - "match": "\\b(tuple|set|path|file|val|stdout)(\\(|\\s)" - }, - { - "include": "#implicit-variables" - }, - { - "comment": "method call and parens", - "begin": "(\\w*\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.nextflow-groovy" - } - ] - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#process-body" - } - ] - }, - { - "comment": "braces", - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#process-body" - } - ] - }, - { - "include": "source.nextflow-groovy#comments" - }, - { - "include": "source.nextflow-groovy#support-functions" - }, - { - "include": "source.nextflow-groovy#keyword" - }, - { - "include": "source.nextflow-groovy#values" - }, - { - "include": "source.nextflow-groovy#anonymous-classes-and-new" - }, - { - "include": "source.nextflow-groovy#types" - }, - { - "include": "source.nextflow-groovy#parens" - }, - { - "include": "source.nextflow-groovy#closures" - }, - { - "include": "source.nextflow-groovy#braces" - } - ] - }, - "workflow-def": { - "name": "workflow.nextflow", - "begin": "^\\s*(workflow)(?:\\s+(\\w+|\"[^\"]+\"|'[^']+'))?\\s*{", - "beginCaptures": { - "1": { - "name": "keyword.nextflow" - }, - "2": { - "name": "constant.nextflow" - } - }, - "end": "}", - "patterns": [ - { - "include": "#workflow-body" - } - ] - }, - "workflow-body": { - "patterns": [ - { - "include": "#implicit-variables" - }, - { - "name": "constant.block.nextflow", - "match": "(?:take|main|emit):" - }, - { - "name": "entity.name.function.nextflow", - "match": "(?<=[\\s\\.])(branch|buffer|close|collate|collect|collectFile|combine|concat|count|countBy|cross|distinct|dump|filter|first|flatMap|flatten|groupTuple|ifEmpty|join|last|map|max|merge|min|mix|multiMap|randomSample|reduce|set|splitCsv|splitFasta|splitFastq|splitText|sum|take|tap|toInteger|toList|toSortedList|transpose|unique|until|view)(?=[{\\(\\s])" - }, - { - "comment": "Channel factory single line", - "match": "\\b((?:C|c)hannel\\.)((fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?", - "captures": { - "1": { - "name": "keyword.nextflow" - }, - "2": { - "name": "entity.name.function.nextflow" - } - } - }, - { - "comment": "Channel factory multi-line", - "begin": "\\b((?:C|c)hannel)\\s*$", - "beginCaptures": { - "1": { - "name": "keyword.nextflow" - } - }, - "end": "(^\\s*)(?:(\\.)(fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?", - "endCaptures": { - "1": { - "name": "keyword.nextflow" - }, - "2": { - "name": "keyword.nextflow" - }, - "3": { - "name": "entity.name.function.nextflow" - } - } - }, - { - "comment": "method call and parens", - "begin": "(\\w*\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "source.nextflow-groovy" - } - ] - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#workflow-body" - } - ] - }, - { - "comment": "braces", - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#workflow-body" - } - ] - }, - { - "include": "source.nextflow-groovy#comments" - }, - { - "include": "source.nextflow-groovy#support-functions" - }, - { - "include": "source.nextflow-groovy#keyword" - }, - { - "include": "source.nextflow-groovy#values" - }, - { - "include": "source.nextflow-groovy#anonymous-classes-and-new" - }, - { - "include": "source.nextflow-groovy#types" - }, - { - "include": "source.nextflow-groovy#parens" - }, - { - "include": "source.nextflow-groovy#closures" - }, - { - "include": "source.nextflow-groovy#braces" - } - ] - }, - "include-statement": { - "patterns": [ - { - "match": "^\\b(include)\\b", - "name": "keyword.nextflow" - }, - { - "match": "\\b(from)\\b", - "name": "keyword.nextflow" - } - ] - }, - "implicit-variables": { - "patterns": [ - { - "match": "(?<=[^\\.\\w]|^)(params|nextflow|workflow|launchDir|moduleDir|projectDir|workDir)\\b", - "name": "variable.language.nextflow" - } - ] - } - } -} diff --git a/lib/grammars/nginx.tmLanguage.json b/lib/grammars/nginx.tmLanguage.json deleted file mode 100644 index 8ad689e..0000000 --- a/lib/grammars/nginx.tmLanguage.json +++ /dev/null @@ -1,2122 +0,0 @@ -{ - "fileTypes": [ - "conf.erb", - "conf", - "ngx", - "nginx.conf", - "mime.types", - "fastcgi_params", - "scgi_params", - "uwsgi_params" - ], - "foldingStartMarker": "\\{\\s*$", - "foldingStopMarker": "^\\s*\\}", - "keyEquivalent": "^~N", - "name": "nginx", - "patterns": [ - { - "name": "comment.line.number-sign", - "match": "\\#.*" - }, - { - "name": "meta.context.lua.nginx", - "begin": "\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\s*\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "contentName": "meta.embedded.block.lua", - "patterns": [ - { - "include": "source.lua" - } - ] - }, - { - "name": "meta.context.lua.nginx", - "begin": "\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\s*'", - "end": "'", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "contentName": "meta.embedded.block.lua", - "patterns": [ - { - "include": "source.lua" - } - ] - }, - { - "name": "meta.context.events.nginx", - "begin": "\\b(events) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.http.nginx", - "begin": "\\b(http) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.mail.nginx", - "begin": "\\b(mail) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.stream.nginx", - "begin": "\\b(stream) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.server.nginx", - "begin": "\\b(server) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.location.nginx", - "begin": "\\b(location) +([\\^]?~[\\*]?|=) +(.*?)\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - }, - "2": { - "name": "keyword.operator.nginx" - }, - "3": { - "name": "string.regexp.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.location.nginx", - "begin": "\\b(location) +(.*?)\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - }, - "2": { - "name": "entity.name.context.location.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.limit_except.nginx", - "begin": "\\b(limit_except) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.if.nginx", - "begin": "\\b(if) +\\(", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.control.nginx" - } - }, - "patterns": [ - { - "include": "#if_condition" - } - ] - }, - { - "name": "meta.context.upstream.nginx", - "begin": "\\b(upstream) +(.*?)\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - }, - "2": { - "name": "entity.name.context.location.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.types.nginx", - "begin": "\\b(types) +\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "name": "meta.context.map.nginx", - "begin": "\\b(map) +(\\$)([A-Za-z0-9\\_]+) +(\\$)([A-Za-z0-9\\_]+) *\\{", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "storage.type.directive.context.nginx" - }, - "2": { - "name": "punctuation.definition.variable.nginx" - }, - "3": { - "name": "variable.parameter.nginx" - }, - "4": { - "name": "punctuation.definition.variable.nginx" - }, - "5": { - "name": "variable.other.nginx" - } - }, - "patterns": [ - { - "include": "#values" - }, - { - "name": "punctuation.terminator.nginx", - "match": ";" - }, - { - "name": "comment.line.number-sign", - "match": "\\#.*" - } - ] - }, - { - "name": "meta.block.nginx", - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\b(return)\\b", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.control.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "\\b(rewrite)\\s+", - "end": "(last|break|redirect|permanent)?(;)", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "1": { - "name": "keyword.other.nginx" - }, - "2": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "\\b(server)\\s+", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#server_parameters" - } - ] - }, - { - "begin": "\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\b", - "end": "(;|$)", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.nginx" - } - } - }, - { - "begin": "([\"'\\s]|^)(accept_)(mutex|mutex_delay)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(debug_)(connection|points)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(error_)(log|page)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(keepalive_)(disable|requests|time|timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(lingering_)(close|time|timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(log_)(not_found|subrequest|format)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(max_)(ranges|errors)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(msie_)(padding|refresh)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(send_)(lowat|timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(tcp_)(nodelay|nopush)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(types_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(variables_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(add_)(before_body|after_body|header|trailer)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(status_)(zone|format)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(autoindex_)(exact_size|format|localtime)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(ancient_)(browser|browser_value)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(modern_)(browser|browser_value)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(charset_)(map|types)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(dav_)(access|methods)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(map_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|force_ranges|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(perl_)(modules|require|set)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(real_)(ip_header|ip_recursive)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(referer_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(secure_)(link|link_md5|link_secret)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(session_)(log|log_format|log_zone)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(spdy_)(chunk_size|headers_comp)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(health_)(check|check_timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(imap_)(auth|capabilities|client_buffer)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(pop3_)(auth|capabilities)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(preread_)(buffer_size|timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(js_)(body_filter|content|fetch_ciphers|fetch_protocols|fetch_trusted_certificate|fetch_verify_depth|header_filter|import|include|path|set|var|access|filter|preread)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - }, - "4": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "([\"'\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|protocol|timeout|xclient|starttls|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)([\"'\\s]|$)", - "end": ";", - "beginCaptures": { - "1": { - "name": "keyword.directive.nginx" - }, - "2": { - "name": "keyword.directive.nginx" - }, - "3": { - "name": "keyword.directive.nginx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "\\b([a-zA-Z0-9\\_]+)\\s+", - "end": "(;|$)", - "beginCaptures": { - "1": { - "name": "keyword.directive.unknown.nginx" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - }, - { - "begin": "\\b([a-z]+\\/[A-Za-z0-9\\-\\.\\+]+)\\b", - "end": "(;)", - "beginCaptures": { - "1": { - "name": "constant.other.mediatype.nginx" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.nginx" - } - }, - "patterns": [ - { - "include": "#values" - } - ] - } - ], - "repository": { - "if_condition": { - "patterns": [ - { - "include": "#variables" - }, - { - "name": "keyword.operator.nginx", - "match": "\\!?\\~\\*?\\s" - }, - { - "name": "keyword.operator.nginx", - "match": "\\!?\\-[fdex]\\s" - }, - { - "name": "keyword.operator.nginx", - "match": "\\!?=[^=]" - }, - { - "include": "#regexp_and_string" - } - ] - }, - "server_parameters": { - "patterns": [ - { - "match": "(?:^|\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)([0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?:\\s|;|$)", - "captures": { - "1": { - "name": "variable.parameter.nginx" - }, - "2": { - "name": "keyword.operator.nginx" - }, - "3": { - "name": "constant.numeric.nginx" - } - } - }, - { - "include": "#values" - } - ] - }, - "variables": { - "patterns": [ - { - "match": "(\\$)([A-Za-z0-9\\_]+)\\b", - "captures": { - "1": { - "name": "punctuation.definition.variable.nginx" - }, - "2": { - "name": "variable.other.nginx" - } - } - }, - { - "match": "(\\$\\{)([A-Za-z0-9\\_]+)(\\})", - "captures": { - "1": { - "name": "punctuation.definition.variable.nginx" - }, - "2": { - "name": "variable.other.nginx" - }, - "3": { - "name": "punctuation.definition.variable.nginx" - } - } - } - ] - }, - "regexp_and_string": { - "patterns": [ - { - "name": "string.regexp.nginx", - "match": "\\^.*?\\$" - }, - { - "name": "string.quoted.double.nginx", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.nginx", - "match": "\\\\[\"'nt\\\\]" - }, - { - "include": "#variables" - } - ] - }, - { - "name": "string.quoted.single.nginx", - "begin": "'", - "end": "'", - "patterns": [ - { - "name": "constant.character.escape.nginx", - "match": "\\\\[\"'nt\\\\]" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "values": { - "patterns": [ - { - "include": "#variables" - }, - { - "name": "comment.line.number-sign", - "match": "\\#.*" - }, - { - "match": "[\\t ](=?[0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\t ;])", - "captures": { - "1": { - "name": "constant.numeric.nginx" - } - } - }, - { - "name": "constant.language.nginx", - "match": "[\\t ](on|off|true|false)(?=[\\t ;])" - }, - { - "name": "constant.language.nginx", - "match": "[\\t ](kqueue|rtsig|epoll|\\/dev\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\t ;])" - }, - { - "name": "keyword.operator.nginx", - "match": "\\\\.*\\ |\\~\\*|\\~|\\!\\~\\*|\\!\\~" - }, - { - "include": "#regexp_and_string" - } - ] - } - }, - "scopeName": "source.nginx", - "uuid": "0C04066A-12D2-43CA-8238-00A12CE4C12D" -} diff --git a/lib/grammars/nim.tmLanguage.json b/lib/grammars/nim.tmLanguage.json deleted file mode 100644 index 02d291d..0000000 --- a/lib/grammars/nim.tmLanguage.json +++ /dev/null @@ -1,1521 +0,0 @@ -{ - "fileTypes": ["nim"], - "keyEquivalent": "^~N", - "name": "nim", - "patterns": [ - { - "begin": "[ \\t]*##\\[", - "contentName": "comment.block.doc-comment.content.nim", - "end": "\\]##", - "name": "comment.block.doc-comment.nim", - "patterns": [ - { - "include": "#multilinedoccomment", - "name": "comment.block.doc-comment.nested.nim" - } - ] - }, - { - "begin": "[ \\t]*#\\[", - "contentName": "comment.block.content.nim", - "end": "\\]#", - "name": "comment.block.nim", - "patterns": [ - { - "include": "#multilinecomment", - "name": "comment.block.nested.nim" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=##)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.nim" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "##", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.nim" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.doc-comment.nim" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=#[^\\[])", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.nim" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.nim" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.nim" - } - ] - }, - { - "comment": "A nim procedure or method", - "name": "meta.proc.nim", - "patterns": [ - { - "begin": "\\b(proc|method|template|macro|iterator|converter|func)\\s+\\`?([^\\:\\{\\s\\`\\*\\(]*)\\`?(\\s*\\*)?\\s*(?=\\(|\\=|:|\\[|\\n|\\{)", - "captures": { - "1": { - "name": "keyword.other" - }, - "2": { - "name": "entity.name.function.nim" - }, - "3": { - "name": "keyword.control.export" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - } - ] - }, - { - "begin": "discard \"\"\"", - "comment": "A discarded triple string literal comment", - "end": "\"\"\"(?!\")", - "name": "comment.line.discarded.nim" - }, - { - "include": "#float_literal" - }, - { - "include": "#integer_literal" - }, - { - "comment": "Operator as function name", - "match": "(?<=\\`)[^\\` ]+(?=\\`)", - "name": "entity.name.function.nim" - }, - { - "captures": { - "1": { - "name": "keyword.control.export" - } - }, - "comment": "Export qualifier.", - "match": "\\b\\s*(\\*)(?:\\s*(?=[,:])|\\s+(?=[=]))" - }, - { - "comment": "Export qualifier following a type def.", - "match": "\\b([A-Z]\\w+)(\\*)", - "captures": { - "1": { - "name": "support.type.nim" - }, - "2": { - "name": "keyword.control.export" - } - } - }, - { - "include": "#string_literal" - }, - { - "comment": "Language Constants.", - "match": "\\b(true|false|Inf|NegInf|NaN|nil)\\b", - "name": "constant.language.nim" - }, - { - "comment": "Keywords that affect program control flow or scope.", - "match": "\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b", - "name": "keyword.control.nim" - }, - { - "comment": "Keyword boolean operators for expressions.", - "match": "(\\b(and|in|is|isnot|not|notin|or|xor)\\b)", - "name": "keyword.boolean.nim" - }, - { - "comment": "Generic operators for expressions.", - "match": "(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+", - "name": "keyword.operator.nim" - }, - { - "comment": "Other keywords.", - "match": "(\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\b)", - "name": "keyword.other.nim" - }, - { - "comment": "Invalid and unused keywords.", - "match": "(\\b(generic|interface|lambda|out|shared)\\b)", - "name": "invalid.illegal.invalid-keyword.nim" - }, - { - "comment": "Common functions", - "match": "\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\b", - "name": "keyword.other.common.function.nim" - }, - { - "comment": "Built-in, concrete types.", - "match": "\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\b", - "name": "storage.type.concrete.nim" - }, - { - "comment": "Built-in, generic types.", - "match": "\\b(range|array|seq|set|pointer)\\b", - "name": "storage.type.generic.nim" - }, - { - "comment": "Special types.", - "match": "\\b(openarray|varargs|void)\\b", - "name": "storage.type.generic.nim" - }, - { - "comment": "Other constants.", - "match": "\\b[A-Z][A-Z0-9_]+\\b", - "name": "support.constant.nim" - }, - { - "comment": "Other types.", - "match": "\\b[A-Z]\\w+\\b", - "name": "support.type.nim" - }, - { - "comment": "Function call.", - "match": "\\b\\w+\\b(?=(\\[([a-zA-Z0-9_,]|\\s)+\\])?\\()", - "name": "support.function.any-method.nim" - }, - { - "comment": "Function call (no parenthesis).", - "match": "(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b)\\w+\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\"'`(-+]+)\\b)(?=[a-zA-Z0-9_\"'`(-+])", - "name": "support.function.any-method.nim" - }, - { - "begin": "(^\\s*)?(?=\\{\\.emit: ?\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "\\{\\.(emit:) ?(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "source.c", - "end": "(\")\"\"(?!\")(\\.{0,1}\\})?", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "source.c" - } - }, - "name": "meta.embedded.block.c", - "patterns": [ - { - "begin": "\\`", - "end": "\\`", - "name": "keyword.operator.nim" - }, - { - "include": "source.c" - } - ] - } - ] - }, - { - "begin": "\\{\\.", - "beginCaptures": { - "0": { - "name": "punctuation.pragma.start.nim" - } - }, - "end": "\\.?\\}", - "endCaptures": { - "0": { - "name": "punctuation.pragma.end.nim" - } - }, - "patterns": [ - { - "begin": "\\b([[:alpha:]]\\w*)(?:\\s|\\s*:)", - "beginCaptures": { - "1": { - "name": "meta.preprocessor.pragma.nim" - } - }, - "end": "(?=\\.?\\}|,)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "\\b([[:alpha:]]\\w*)\\(", - "beginCaptures": { - "1": { - "name": "meta.preprocessor.pragma.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "\\b([[:alpha:]]\\w*)(?=\\.?\\}|,)", - "captures": { - "1": { - "name": "meta.preprocessor.pragma.nim" - } - } - }, - { - "begin": "\\b([[:alpha:]]\\w*)(\"\"\")", - "beginCaptures": { - "1": { - "name": "meta.preprocessor.pragma.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.triple.raw.nim" - }, - { - "begin": "\\b([[:alpha:]]\\w*)(\")", - "beginCaptures": { - "1": { - "name": "meta.preprocessor.pragma.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.raw.nim" - }, - { - "begin": "\\b(hint\\[\\w+\\]):", - "beginCaptures": { - "1": { - "name": "meta.preprocessor.pragma.nim" - } - }, - "end": "(?=\\.?\\}|,)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.comma.nim" - } - ] - }, - { - "begin": "(^\\s*)?(?=asm \"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(asm) (\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "source.asm", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "source.asm" - } - }, - "name": "meta.embedded.block.asm", - "patterns": [ - { - "begin": "\\`", - "end": "\\`", - "name": "keyword.operator.nim" - }, - { - "include": "source.asm" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.function.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "comment": "tmpl specifier", - "match": "(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?\"\"\")" - }, - { - "begin": "(^\\s*)?(?=html\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(html)(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "text.html", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "text.html" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "(?<!\\$)(\\$)\\(", - "captures": { - "1": { - "name": "keyword.operator.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)\\{", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "(\\{|\\n)", - "endCaptures": { - "1": { - "name": "plain" - } - }, - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "(?<!\\$)(\\$\\w+)", - "name": "keyword.operator.nim" - }, - { - "include": "text.html.basic" - } - ] - } - ] - }, - { - "begin": "(^\\s*)?(?=xml\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(xml)(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "text.xml", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "text.xml" - } - }, - "name": "meta.embedded.block.xml", - "patterns": [ - { - "begin": "(?<!\\$)(\\$)\\(", - "captures": { - "1": { - "name": "keyword.operator.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)\\{", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "(\\{|\\n)", - "endCaptures": { - "1": { - "name": "plain" - } - }, - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "(?<!\\$)(\\$\\w+)", - "name": "keyword.operator.nim" - }, - { - "include": "text.xml" - } - ] - } - ] - }, - { - "begin": "(^\\s*)?(?=js\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(js)(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "source.js", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "source.js" - } - }, - "name": "meta.embedded.block.js", - "patterns": [ - { - "begin": "(?<!\\$)(\\$)\\(", - "captures": { - "1": { - "name": "keyword.operator.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)\\{", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "(\\{|\\n)", - "endCaptures": { - "1": { - "name": "plain" - } - }, - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "(?<!\\$)(\\$\\w+)", - "name": "keyword.operator.nim" - }, - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "(^\\s*)?(?=css\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(css)(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "source.css", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "source.css" - } - }, - "name": "meta.embedded.block.css", - "patterns": [ - { - "begin": "(?<!\\$)(\\$)\\(", - "captures": { - "1": { - "name": "keyword.operator.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)\\{", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "(\\{|\\n)", - "endCaptures": { - "1": { - "name": "plain" - } - }, - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "(?<!\\$)(\\$\\w+)", - "name": "keyword.operator.nim" - }, - { - "include": "source.css" - } - ] - } - ] - }, - { - "begin": "(^\\s*)?(?=glsl\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(glsl)(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "source.glsl", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "source.glsl" - } - }, - "name": "meta.embedded.block.glsl", - "patterns": [ - { - "begin": "(?<!\\$)(\\$)\\(", - "captures": { - "1": { - "name": "keyword.operator.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)\\{", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "(\\{|\\n)", - "endCaptures": { - "1": { - "name": "plain" - } - }, - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "(?<!\\$)(\\$\\w+)", - "name": "keyword.operator.nim" - }, - { - "include": "source.glsl" - } - ] - } - ] - }, - { - "begin": "(^\\s*)?(?=md\"\"\")", - "beginCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.leading.nim" - } - }, - "end": "(?!\\G)(\\s*$\\n?)?", - "endCaptures": { - "0": { - "name": "punctuation.whitespace.embedded.trailing.nim" - } - }, - "patterns": [ - { - "begin": "(md)(\"\"\")", - "captures": { - "1": { - "name": "keyword.other.nim" - }, - "2": { - "name": "punctuation.section.embedded.begin.nim" - } - }, - "contentName": "text.html.markdown", - "end": "(\")\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nim" - }, - "1": { - "name": "text.html.markdown" - } - }, - "name": "meta.embedded.block.html.markdown", - "patterns": [ - { - "begin": "(?<!\\$)(\\$)\\(", - "captures": { - "1": { - "name": "keyword.operator.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)\\{", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", - "captures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "keyword.operator.nim" - } - }, - "end": "(\\{|\\n)", - "endCaptures": { - "1": { - "name": "plain" - } - }, - "patterns": [ - { - "include": "source.nim" - } - ] - }, - { - "match": "(?<!\\$)(\\$\\w+)", - "name": "keyword.operator.nim" - }, - { - "include": "text.html.markdown" - } - ] - } - ] - } - ], - "repository": { - "multilinecomment": { - "begin": "#\\[", - "end": "\\]#", - "patterns": [ - { - "include": "#multilinecomment" - } - ] - }, - "multilinedoccomment": { - "begin": "##\\[", - "end": "\\]##", - "patterns": [ - { - "include": "#multilinedoccomment" - } - ] - }, - "char_escapes": { - "patterns": [ - { - "match": "\\\\[cC]|\\\\[rR]", - "name": "constant.character.escape.carriagereturn.nim" - }, - { - "match": "\\\\[lL]|\\\\[nN]", - "name": "constant.character.escape.linefeed.nim" - }, - { - "match": "\\\\[fF]", - "name": "constant.character.escape.formfeed.nim" - }, - { - "match": "\\\\[tT]", - "name": "constant.character.escape.tabulator.nim" - }, - { - "match": "\\\\[vV]", - "name": "constant.character.escape.verticaltabulator.nim" - }, - { - "match": "\\\\\\\"", - "name": "constant.character.escape.double-quote.nim" - }, - { - "match": "\\\\'", - "name": "constant.character.escape.single-quote.nim" - }, - { - "match": "\\\\[0-9]+", - "name": "constant.character.escape.chardecimalvalue.nim" - }, - { - "match": "\\\\[aA]", - "name": "constant.character.escape.alert.nim" - }, - { - "match": "\\\\[bB]", - "name": "constant.character.escape.backspace.nim" - }, - { - "match": "\\\\[eE]", - "name": "constant.character.escape.escape.nim" - }, - { - "match": "\\\\[xX]\\h\\h", - "name": "constant.character.escape.hex.nim" - }, - { - "match": "\\\\\\\\", - "name": "constant.character.escape.backslash.nim" - } - ] - }, - "string_escapes": { - "patterns": [ - { - "match": "\\\\[pP]", - "name": "constant.character.escape.newline.nim" - }, - { - "match": "\\\\[uU]\\h\\h\\h\\h", - "name": "constant.character.escape.hex.nim" - }, - { - "match": "\\\\[uU]\\{\\h+\\}", - "name": "constant.character.escape.hex.nim" - }, - { - "include": "#char_escapes" - } - ] - }, - "raw_string_escapes": { - "match": "[^\"](\"\")", - "captures": { - "1": { - "name": "constant.character.escape.double-quote.nim" - } - } - }, - "fmt_interpolation": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.nim" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.nim" - } - }, - "patterns": [ - { - "begin": ":", - "end": "(?=\\})", - "name": "meta.template.format-specifier.nim" - }, - { - "include": "source.nim" - } - ], - "name": "meta.template.expression.nim" - }, - "string_literal": { - "patterns": [ - { - "include": "#fmt_string_triple" - }, - { - "include": "#fmt_string_triple_operator" - }, - { - "include": "#extended_string_quoted_triple_raw" - }, - { - "include": "#string_quoted_triple_raw" - }, - { - "include": "#fmt_string_operator" - }, - { - "include": "#fmt_string" - }, - { - "include": "#fmt_string_call" - }, - { - "include": "#string_quoted_double_raw" - }, - { - "include": "#extended_string_quoted_double_raw" - }, - { - "include": "#string_quoted_single" - }, - { - "include": "#string_quoted_triple" - }, - { - "include": "#string_quoted_double" - } - ] - }, - "fmt_string": { - "begin": "\\b(fmt)(\")", - "beginCaptures": { - "1": { - "name": "support.function.any-method.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.raw.nim", - "patterns": [ - { - "match": "(?<!\")\"(?!\")", - "name": "invalid.illegal.nim" - }, - { - "include": "#raw_string_escapes" - }, - { - "include": "#fmt_interpolation" - } - ] - }, - "fmt_string_triple": { - "begin": "\\b(fmt)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.any-method.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.triple.raw.nim", - "patterns": [ - { - "include": "#fmt_interpolation" - } - ] - }, - "fmt_string_operator": { - "begin": "(&)(\")", - "beginCaptures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.nim", - "patterns": [ - { - "match": "\"", - "name": "invalid.illegal.nim" - }, - { - "include": "#string_escapes" - }, - { - "include": "#fmt_interpolation" - } - ] - }, - "fmt_string_triple_operator": { - "begin": "(&)(\"\"\")", - "beginCaptures": { - "1": { - "name": "keyword.operator.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.triple.raw.nim", - "patterns": [ - { - "include": "#fmt_interpolation" - } - ] - }, - "fmt_string_call": { - "begin": "(fmt)\\((?=\")", - "beginCaptures": { - "1": { - "name": "support.function.any-method.nim" - } - }, - "end": "\\)", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"(?=\\))", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.nim", - "patterns": [ - { - "match": "\"", - "name": "invalid.illegal.nim" - }, - { - "include": "#string_escapes" - }, - { - "include": "#fmt_interpolation" - } - ] - } - ] - }, - "string_quoted_double": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "comment": "Double Quoted String", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.nim", - "patterns": [ - { - "include": "#string_escapes" - } - ] - }, - "string_quoted_double_raw": { - "begin": "\\br\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.raw.nim", - "patterns": [ - { - "include": "#raw_string_escapes" - } - ] - }, - "extended_string_quoted_double_raw": { - "begin": "\\b(\\w+)(\")", - "beginCaptures": { - "1": { - "name": "support.function.any-method.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.double.raw.nim", - "patterns": [ - { - "include": "#raw_string_escapes" - } - ] - }, - "string_quoted_single": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "comment": "Single quoted character literal", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.single.nim", - "patterns": [ - { - "include": "#char_escapes" - }, - { - "match": "([^']{2,}?)", - "name": "invalid.illegal.character.nim" - } - ] - }, - "string_quoted_triple": { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "comment": "Triple Quoted String", - "end": "\"\"\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.triple.nim" - }, - "string_quoted_triple_raw": { - "begin": "r\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "comment": "Raw Triple Quoted String", - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.triple.raw.nim" - }, - "extended_string_quoted_triple_raw": { - "begin": "\\b(\\w+)(\"\"\")", - "beginCaptures": { - "1": { - "name": "support.function.any-method.nim" - }, - "2": { - "name": "punctuation.definition.string.begin.nim" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.nim" - } - }, - "name": "string.quoted.triple.raw.nim" - }, - "float_literal": { - "patterns": [ - { - "match": "\\b\\d[_\\d]*((\\.\\d[_\\d]*([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('([fF](32|64|128)|[fFdD]))?", - "name": "constant.numeric.float.decimal.nim" - }, - { - "match": "\\b0[xX]\\h[_\\h]*'([fF](32|64|128)|[fFdD])", - "name": "constant.numeric.float.hexadecimal.nim" - }, - { - "match": "\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])", - "name": "constant.numeric.float.octal.nim" - }, - { - "match": "\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])", - "name": "constant.numeric.float.binary.nim" - }, - { - "match": "\\b(\\d[_\\d]*)'([fF](32|64|128)|[fFdD])", - "name": "constant.numeric.float.decimal.nim" - } - ] - }, - "integer_literal": { - "patterns": [ - { - "match": "\\b(0[xX]\\h[_\\h]*)('(([iIuU](8|16|32|64))|[uU]))?", - "name": "constant.numeric.integer.hexadecimal.nim" - }, - { - "match": "\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?", - "name": "constant.numeric.integer.octal.nim" - }, - { - "match": "\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?", - "name": "constant.numeric.integer.binary.nim" - }, - { - "match": "\\b(\\d[_\\d]*)('(([iIuU](8|16|32|64))|[uU]))?", - "name": "constant.numeric.integer.decimal.nim" - } - ] - } - }, - "scopeName": "source.nim", - "uuid": "6DD62CE8-B129-4554-BD8E-CE5DB490E5A4" -} diff --git a/lib/grammars/nix.tmLanguage.json b/lib/grammars/nix.tmLanguage.json deleted file mode 100644 index 103e996..0000000 --- a/lib/grammars/nix.tmLanguage.json +++ /dev/null @@ -1,1198 +0,0 @@ -{ - "fileTypes": ["nix"], - "name": "nix", - "patterns": [ - { - "include": "#expression" - } - ], - "repository": { - "attribute-bind": { - "patterns": [ - { - "include": "#attribute-name" - }, - { - "include": "#attribute-bind-from-equals" - } - ] - }, - "attribute-bind-from-equals": { - "begin": "\\=", - "beginCaptures": { - "0": { - "name": "keyword.operator.bind.nix" - } - }, - "end": "\\;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.bind.nix" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "attribute-inherit": { - "begin": "\\binherit\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.inherit.nix" - } - }, - "end": "\\;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.inherit.nix" - } - }, - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.arguments.nix" - } - }, - "end": "(?=\\;)", - "patterns": [ - { - "begin": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.arguments.nix" - } - }, - "end": "(?=\\;)", - "patterns": [ - { - "include": "#bad-reserved" - }, - { - "include": "#attribute-name-single" - }, - { - "include": "#others" - } - ] - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?=[a-zA-Z\\_])", - "end": "(?=\\;)", - "patterns": [ - { - "include": "#bad-reserved" - }, - { - "include": "#attribute-name-single" - }, - { - "include": "#others" - } - ] - }, - { - "include": "#others" - } - ] - }, - "attribute-name": { - "patterns": [ - { - "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", - "name": "entity.other.attribute-name.multipart.nix" - }, - { - "match": "\\." - }, - { - "include": "#string-quoted" - }, - { - "include": "#interpolation" - } - ] - }, - "attribute-name-single": { - "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", - "name": "entity.other.attribute-name.single.nix" - }, - "attrset-contents": { - "patterns": [ - { - "include": "#attribute-inherit" - }, - { - "include": "#bad-reserved" - }, - { - "include": "#attribute-bind" - }, - { - "include": "#others" - } - ] - }, - "attrset-definition": { - "begin": "(?=\\{)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "(\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.attrset.nix" - } - }, - "end": "(\\})", - "endCaptures": { - "0": { - "name": "punctuation.definition.attrset.nix" - } - }, - "patterns": [ - { - "include": "#attrset-contents" - } - ] - }, - { - "begin": "(?<=\\})", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - } - ] - }, - "attrset-definition-brace-opened": { - "patterns": [ - { - "begin": "(?<=\\})", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "(?=.?)", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.attrset.nix" - } - }, - "patterns": [ - { - "include": "#attrset-contents" - } - ] - } - ] - }, - "attrset-for-sure": { - "patterns": [ - { - "begin": "(?=\\brec\\b)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "\\brec\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#others" - } - ] - }, - { - "include": "#attrset-definition" - }, - { - "include": "#others" - } - ] - }, - { - "begin": "(?=\\{\\s*(\\}|[^,?]*(=|;)))", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#attrset-definition" - }, - { - "include": "#others" - } - ] - } - ] - }, - "attrset-or-function": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.attrset-or-function.nix" - } - }, - "end": "(?=([\\])};]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "(?=(\\s*\\}|\\\"|\\binherit\\b|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])))", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#attrset-definition-brace-opened" - } - ] - }, - { - "begin": "(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-definition-brace-opened" - } - ] - }, - { - "include": "#bad-reserved" - }, - { - "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", - "beginCaptures": { - "0": { - "name": "variable.parameter.function.maybe.nix" - } - }, - "end": "(?=([\\])};]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "(?=\\.)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#attrset-definition-brace-opened" - } - ] - }, - { - "begin": "\\s*(\\,)", - "beginCaptures": { - "1": { - "name": "keyword.operator.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-definition-brace-opened" - } - ] - }, - { - "begin": "(?=\\=)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#attribute-bind-from-equals" - }, - { - "include": "#attrset-definition-brace-opened" - } - ] - }, - { - "begin": "(?=\\?)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-parameter-default" - }, - { - "begin": "\\,", - "beginCaptures": { - "0": { - "name": "keyword.operator.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-definition-brace-opened" - } - ] - } - ] - }, - { - "include": "#others" - } - ] - }, - { - "include": "#others" - } - ] - }, - "bad-reserved": { - "match": "\\b(if|then|else|assert|with|let|in|rec|inherit)\\b", - "name": "invalid.illegal.reserved.nix" - }, - "comment": { - "patterns": [ - { - "begin": "/\\*([^*]|\\*[^\\/])*", - "end": "\\*\\/", - "name": "comment.block.nix", - "patterns": [ - { - "include": "#comment-remark" - } - ] - }, - { - "begin": "\\#", - "end": "$", - "name": "comment.line.number-sign.nix", - "patterns": [ - { - "include": "#comment-remark" - } - ] - } - ] - }, - "comment-remark": { - "captures": { - "1": { - "name": "markup.bold.comment.nix" - } - }, - "match": "(TODO|FIXME|BUG|\\!\\!\\!):?" - }, - "constants": { - "patterns": [ - { - "begin": "\\b(builtins|true|false|null)\\b", - "beginCaptures": { - "0": { - "name": "constant.language.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b", - "beginCaptures": { - "0": { - "name": "support.function.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "\\b[0-9]+\\b", - "beginCaptures": { - "0": { - "name": "constant.numeric.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#parens-and-cont" - }, - { - "include": "#list-and-cont" - }, - { - "include": "#string" - }, - { - "include": "#interpolation" - }, - { - "include": "#with-assert" - }, - { - "include": "#function-for-sure" - }, - { - "include": "#attrset-for-sure" - }, - { - "include": "#attrset-or-function" - }, - { - "include": "#let" - }, - { - "include": "#if" - }, - { - "include": "#operator-unary" - }, - { - "include": "#constants" - }, - { - "include": "#bad-reserved" - }, - { - "include": "#parameter-name-and-cont" - }, - { - "include": "#others" - } - ] - }, - "expression-cont": { - "begin": "(?=.?)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#list" - }, - { - "include": "#string" - }, - { - "include": "#interpolation" - }, - { - "include": "#function-for-sure" - }, - { - "include": "#attrset-for-sure" - }, - { - "include": "#attrset-or-function" - }, - { - "match": "(\\bor\\b|\\.|==|!=|!|\\<\\=|\\<|\\>\\=|\\>|&&|\\|\\||-\\>|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)", - "name": "keyword.operator.nix" - }, - { - "include": "#constants" - }, - { - "include": "#bad-reserved" - }, - { - "include": "#parameter-name" - }, - { - "include": "#others" - } - ] - }, - "function-body": { - "begin": "(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-body-from-colon": { - "begin": "(\\:)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.function.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-contents": { - "patterns": [ - { - "include": "#bad-reserved" - }, - { - "include": "#function-parameter" - }, - { - "include": "#others" - } - ] - }, - "function-definition": { - "begin": "(?=.?)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-body-from-colon" - }, - { - "begin": "(?=.?)", - "end": "(?=\\:)", - "patterns": [ - { - "begin": "(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)", - "beginCaptures": { - "0": { - "name": "variable.parameter.function.4.nix" - } - }, - "end": "(?=\\:)", - "patterns": [ - { - "begin": "\\@", - "end": "(?=\\:)", - "patterns": [ - { - "include": "#function-header-until-colon-no-arg" - }, - { - "include": "#others" - } - ] - }, - { - "include": "#others" - } - ] - }, - { - "begin": "(?=\\{)", - "end": "(?=\\:)", - "patterns": [ - { - "include": "#function-header-until-colon-with-arg" - } - ] - } - ] - }, - { - "include": "#others" - } - ] - }, - "function-definition-brace-opened": { - "begin": "(?=.?)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-body-from-colon" - }, - { - "begin": "(?=.?)", - "end": "(?=\\:)", - "patterns": [ - { - "include": "#function-header-close-brace-with-arg" - }, - { - "begin": "(?=.?)", - "end": "(?=\\})", - "patterns": [ - { - "include": "#function-contents" - } - ] - } - ] - }, - { - "include": "#others" - } - ] - }, - "function-for-sure": { - "patterns": [ - { - "begin": "(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}\"'/=]*[,\\?]))", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#function-definition" - } - ] - } - ] - }, - "function-header-close-brace-no-arg": { - "begin": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.entity.function.nix" - } - }, - "end": "(?=\\:)", - "patterns": [ - { - "include": "#others" - } - ] - }, - "function-header-close-brace-with-arg": { - "begin": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.entity.function.nix" - } - }, - "end": "(?=\\:)", - "patterns": [ - { - "include": "#function-header-terminal-arg" - }, - { - "include": "#others" - } - ] - }, - "function-header-open-brace": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.entity.function.2.nix" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "include": "#function-contents" - } - ] - }, - "function-header-terminal-arg": { - "begin": "(?=@)", - "end": "(?=\\:)", - "patterns": [ - { - "begin": "\\@", - "end": "(?=\\:)", - "patterns": [ - { - "begin": "(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)", - "end": "(?=\\:)", - "name": "variable.parameter.function.3.nix" - }, - { - "include": "#others" - } - ] - }, - { - "include": "#others" - } - ] - }, - "function-header-until-colon-no-arg": { - "begin": "(?=\\{)", - "end": "(?=\\:)", - "patterns": [ - { - "include": "#function-header-open-brace" - }, - { - "include": "#function-header-close-brace-no-arg" - } - ] - }, - "function-header-until-colon-with-arg": { - "begin": "(?=\\{)", - "end": "(?=\\:)", - "patterns": [ - { - "include": "#function-header-open-brace" - }, - { - "include": "#function-header-close-brace-with-arg" - } - ] - }, - "function-parameter": { - "patterns": [ - { - "begin": "(\\.\\.\\.)", - "end": "(,|(?=\\}))", - "name": "keyword.operator.nix", - "patterns": [ - { - "include": "#others" - } - ] - }, - { - "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", - "beginCaptures": { - "0": { - "name": "variable.parameter.function.1.nix" - } - }, - "end": "(,|(?=\\}))", - "endCaptures": { - "0": { - "name": "keyword.operator.nix" - } - }, - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#function-parameter-default" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#others" - } - ] - }, - "function-parameter-default": { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.nix" - } - }, - "end": "(?=[,}])", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "if": { - "begin": "(?=\\bif\\b)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "\\bif\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "\\bth(?=en\\b)", - "endCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<=th)en\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "\\bel(?=se\\b)", - "endCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<=el)se\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "endCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "illegal": { - "match": ".", - "name": "invalid.illegal" - }, - "interpolation": { - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.nix" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.nix" - } - }, - "name": "markup.italic", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "let": { - "begin": "(?=\\blet\\b)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "\\blet\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "(?=([\\])};,]|\\b(in|else|then)\\b))", - "patterns": [ - { - "begin": "(?=\\{)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#attrset-contents" - } - ] - }, - { - "begin": "(^|(?<=\\}))", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - { - "include": "#others" - } - ] - }, - { - "include": "#attrset-contents" - }, - { - "include": "#others" - } - ] - }, - { - "begin": "\\bin\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "list": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.list.nix" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.list.nix" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "list-and-cont": { - "begin": "(?=\\[)", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#list" - }, - { - "include": "#expression-cont" - } - ] - }, - "operator-unary": { - "match": "(!|-)", - "name": "keyword.operator.unary.nix" - }, - "others": { - "patterns": [ - { - "include": "#whitespace" - }, - { - "include": "#comment" - }, - { - "include": "#illegal" - } - ] - }, - "parameter-name": { - "captures": { - "0": { - "name": "variable.parameter.name.nix" - } - }, - "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*" - }, - "parameter-name-and-cont": { - "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", - "beginCaptures": { - "0": { - "name": "variable.parameter.name.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - "parens": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.expression.nix" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.expression.nix" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "parens-and-cont": { - "begin": "(?=\\()", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#expression-cont" - } - ] - }, - "string": { - "patterns": [ - { - "begin": "(?=\\'\\')", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "begin": "\\'\\'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.other.start.nix" - } - }, - "end": "\\'\\'(?!\\$|\\'|\\\\.)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.other.end.nix" - } - }, - "name": "string.quoted.other.nix", - "patterns": [ - { - "match": "\\'\\'(\\$|\\'|\\\\.)", - "name": "constant.character.escape.nix" - }, - { - "include": "#interpolation" - } - ] - }, - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "(?=\\\")", - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#string-quoted" - }, - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "([a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)", - "beginCaptures": { - "0": { - "name": "string.unquoted.path.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "(\\<[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\>)", - "beginCaptures": { - "0": { - "name": "string.unquoted.spath.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - }, - { - "begin": "([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\&\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)", - "beginCaptures": { - "0": { - "name": "string.unquoted.url.nix" - } - }, - "end": "(?=([\\])};,]|\\b(else|then)\\b))", - "patterns": [ - { - "include": "#expression-cont" - } - ] - } - ] - }, - "string-quoted": { - "begin": "\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.double.start.nix" - } - }, - "end": "\\\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.double.end.nix" - } - }, - "name": "string.quoted.double.nix", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.nix" - }, - { - "include": "#interpolation" - } - ] - }, - "whitespace": { - "match": "\\s+" - }, - "with-assert": { - "begin": "\\b(with|assert)\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.nix" - } - }, - "end": "\\;", - "patterns": [ - { - "include": "#expression" - } - ] - } - }, - "scopeName": "source.nix", - "uuid": "0514fd5f-acb6-436d-b42c-7643e6d36c8f" -} diff --git a/lib/grammars/objective-c.tmLanguage.json b/lib/grammars/objective-c.tmLanguage.json deleted file mode 100644 index aa53580..0000000 --- a/lib/grammars/objective-c.tmLanguage.json +++ /dev/null @@ -1,3755 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-objc-syntax/blob/master/autogenerated/objc.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-objc-syntax/commit/119b75fb1f4d3e8726fa62588e3b935e0b719294", - "name": "objective-c", - "scopeName": "source.objc", - "patterns": [ - { - "include": "#anonymous_pattern_1" - }, - { - "include": "#anonymous_pattern_2" - }, - { - "include": "#anonymous_pattern_3" - }, - { - "include": "#anonymous_pattern_4" - }, - { - "include": "#anonymous_pattern_5" - }, - { - "include": "#apple_foundation_functional_macros" - }, - { - "include": "#anonymous_pattern_7" - }, - { - "include": "#anonymous_pattern_8" - }, - { - "include": "#anonymous_pattern_9" - }, - { - "include": "#anonymous_pattern_10" - }, - { - "include": "#anonymous_pattern_11" - }, - { - "include": "#anonymous_pattern_12" - }, - { - "include": "#anonymous_pattern_13" - }, - { - "include": "#anonymous_pattern_14" - }, - { - "include": "#anonymous_pattern_15" - }, - { - "include": "#anonymous_pattern_16" - }, - { - "include": "#anonymous_pattern_17" - }, - { - "include": "#anonymous_pattern_18" - }, - { - "include": "#anonymous_pattern_19" - }, - { - "include": "#anonymous_pattern_20" - }, - { - "include": "#anonymous_pattern_21" - }, - { - "include": "#anonymous_pattern_22" - }, - { - "include": "#anonymous_pattern_23" - }, - { - "include": "#anonymous_pattern_24" - }, - { - "include": "#anonymous_pattern_25" - }, - { - "include": "#anonymous_pattern_26" - }, - { - "include": "#anonymous_pattern_27" - }, - { - "include": "#anonymous_pattern_28" - }, - { - "include": "#anonymous_pattern_29" - }, - { - "include": "#anonymous_pattern_30" - }, - { - "include": "#bracketed_content" - }, - { - "include": "#c_lang" - } - ], - "repository": { - "anonymous_pattern_1": { - "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?", - "captures": { - "1": { - "name": "storage.type.objc" - }, - "2": { - "name": "punctuation.definition.storage.type.objc" - }, - "4": { - "name": "entity.name.type.objc" - }, - "6": { - "name": "punctuation.definition.entity.other.inherited-class.objc" - }, - "7": { - "name": "entity.other.inherited-class.objc" - }, - "8": { - "name": "meta.divider.objc" - }, - "9": { - "name": "meta.inherited-class.objc" - } - }, - "contentName": "meta.scope.interface.objc", - "end": "((@)end)\\b", - "name": "meta.interface-or-protocol.objc", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - "anonymous_pattern_10": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(defs|encode)\\b", - "name": "keyword.other.objc" - }, - "anonymous_pattern_11": { - "match": "\\bid\\b", - "name": "storage.type.id.objc" - }, - "anonymous_pattern_12": { - "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b", - "name": "storage.type.objc" - }, - "anonymous_pattern_13": { - "captures": { - "1": { - "name": "punctuation.definition.storage.type.objc" - } - }, - "match": "(@)(class|protocol)\\b", - "name": "storage.type.objc" - }, - "anonymous_pattern_14": { - "begin": "((@)selector)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "storage.type.objc" - }, - "2": { - "name": "punctuation.definition.storage.type.objc" - }, - "3": { - "name": "punctuation.definition.storage.type.objc" - } - }, - "contentName": "meta.selector.method-name.objc", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.storage.type.objc" - } - }, - "name": "meta.selector.objc", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\b(?:[a-zA-Z_:][\\w]*)+", - "name": "support.function.any-method.name-of-parameter.objc" - } - ] - }, - "anonymous_pattern_15": { - "captures": { - "1": { - "name": "punctuation.definition.storage.modifier.objc" - } - }, - "match": "(@)(synchronized|public|package|private|protected)\\b", - "name": "storage.modifier.objc" - }, - "anonymous_pattern_16": { - "match": "\\b(YES|NO|Nil|nil)\\b", - "name": "constant.language.objc" - }, - "anonymous_pattern_17": { - "match": "\\bNSApp\\b", - "name": "support.variable.foundation.objc" - }, - "anonymous_pattern_18": { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.cocoa.leopard.objc" - }, - "2": { - "name": "support.function.cocoa.leopard.objc" - } - }, - "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b" - }, - "anonymous_pattern_19": { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.cocoa.objc" - }, - "2": { - "name": "support.function.cocoa.objc" - } - }, - "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b" - }, - "anonymous_pattern_2": { - "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?", - "captures": { - "1": { - "name": "storage.type.objc" - }, - "2": { - "name": "punctuation.definition.storage.type.objc" - }, - "4": { - "name": "entity.name.type.objc" - }, - "5": { - "name": "entity.other.inherited-class.objc" - } - }, - "contentName": "meta.scope.implementation.objc", - "end": "((@)end)\\b", - "name": "meta.implementation.objc", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - "anonymous_pattern_20": { - "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b", - "name": "support.class.cocoa.leopard.objc" - }, - "anonymous_pattern_21": { - "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b", - "name": "support.class.cocoa.objc" - }, - "anonymous_pattern_22": { - "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b", - "name": "support.type.cocoa.leopard.objc" - }, - "anonymous_pattern_23": { - "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b", - "name": "support.class.quartz.objc" - }, - "anonymous_pattern_24": { - "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b", - "name": "support.type.quartz.objc" - }, - "anonymous_pattern_25": { - "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b", - "name": "support.type.cocoa.objc" - }, - "anonymous_pattern_26": { - "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b", - "name": "support.constant.cocoa.objc" - }, - "anonymous_pattern_27": { - "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b", - "name": "support.constant.notification.cocoa.leopard.objc" - }, - "anonymous_pattern_28": { - "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b", - "name": "support.constant.notification.cocoa.objc" - }, - "anonymous_pattern_29": { - "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b", - "name": "support.constant.cocoa.leopard.objc" - }, - "anonymous_pattern_3": { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t", - "name": "constant.other.placeholder.objc" - }, - { - "include": "#string_placeholder" - } - ] - }, - "anonymous_pattern_30": { - "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b", - "name": "support.constant.cocoa.objc" - }, - "anonymous_pattern_4": { - "begin": "\\b(id)\\s*(?=<)", - "beginCaptures": { - "1": { - "name": "storage.type.objc" - } - }, - "end": "(?<=>)", - "name": "meta.id-with-protocol.objc", - "patterns": [ - { - "include": "#protocol_list" - } - ] - }, - "anonymous_pattern_5": { - "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b", - "name": "keyword.control.macro.objc" - }, - "anonymous_pattern_7": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(try|catch|finally|throw)\\b", - "name": "keyword.control.exception.objc" - }, - "anonymous_pattern_8": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(synchronized)\\b", - "name": "keyword.control.synchronize.objc" - }, - "anonymous_pattern_9": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(required|optional)\\b", - "name": "keyword.control.protocol-specification.objc" - }, - "apple_foundation_functional_macros": { - "begin": "(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "entity.name.function.preprocessor.apple-foundation.objc" - }, - "2": { - "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc" - } - }, - "name": "meta.preprocessor.macro.callable.apple-foundation.objc", - "patterns": [ - { - "include": "#c_lang" - } - ] - }, - "bracketed_content": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.objc" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.objc" - } - }, - "name": "meta.bracketed.objc", - "patterns": [ - { - "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objc" - }, - "2": { - "name": "punctuation.separator.arguments.objc" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.predicate.objc", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\bargument(Array|s)(:)", - "name": "support.function.any-method.name-of-parameter.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\b\\w+(:)", - "name": "invalid.illegal.unknown-method.objc" - }, - { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "match": "\\b(AND|OR|NOT|IN)\\b", - "name": "keyword.operator.logical.predicate.cocoa.objc" - }, - { - "match": "\\b(ALL|ANY|SOME|NONE)\\b", - "name": "constant.language.predicate.cocoa.objc" - }, - { - "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", - "name": "constant.language.predicate.cocoa.objc" - }, - { - "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", - "name": "keyword.operator.comparison.predicate.cocoa.objc" - }, - { - "match": "\\bC(ASEINSENSITIVE|I)\\b", - "name": "keyword.other.modifier.predicate.cocoa.objc" - }, - { - "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", - "name": "keyword.other.predicate.cocoa.objc" - }, - { - "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", - "name": "constant.character.escape.objc" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objc" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objc" - }, - "2": { - "name": "punctuation.separator.arguments.objc" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.objc", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\b\\w+(:)", - "name": "support.function.any-method.name-of-parameter.objc" - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$self" - } - ] - }, - "c_functions": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.objc" - }, - "2": { - "name": "support.function.C99.objc" - } - }, - "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.function-call.leading.objc" - }, - "2": { - "name": "support.function.any-method.objc" - }, - "3": { - "name": "punctuation.definition.parameters.objc" - } - }, - "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()", - "name": "meta.function-call.objc" - } - ] - }, - "c_lang": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#comments" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", - "name": "keyword.control.objc" - }, - { - "include": "#storage_types" - }, - { - "match": "typedef", - "name": "keyword.other.typedef.objc" - }, - { - "match": "\\bin\\b", - "name": "keyword.other.in.objc" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b", - "name": "storage.modifier.objc" - }, - { - "match": "\\bk[A-Z]\\w*\\b", - "name": "constant.other.variable.mac-classic.objc" - }, - { - "match": "\\bg[A-Z]\\w*\\b", - "name": "variable.other.readwrite.global.mac-classic.objc" - }, - { - "match": "\\bs[A-Z]\\w*\\b", - "name": "variable.other.readwrite.static.mac-classic.objc" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objc" - }, - { - "include": "#operators" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "include": "#special_variables" - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - }, - "3": { - "name": "entity.name.function.preprocessor.objc" - }, - "5": { - "name": "punctuation.definition.parameters.begin.objc" - }, - "6": { - "name": "variable.parameter.preprocessor.objc" - }, - "8": { - "name": "punctuation.separator.parameters.objc" - }, - "9": { - "name": "punctuation.definition.parameters.end.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.objc", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.objc", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.single.objc", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.objc", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.objc", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.include.objc" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.other.lt-gt.include.objc" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objc" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.objc", - "patterns": [ - { - "include": "#strings" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.objc" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.objc" - }, - { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.objc" - }, - { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.objc" - }, - { - "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", - "name": "support.constant.mac-classic.objc" - }, - { - "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", - "name": "support.type.mac-classic.objc" - }, - { - "match": "\\b([A-Za-z0-9_]+_t)\\b", - "name": "support.type.posix-reserved.objc" - }, - { - "include": "#block" - }, - { - "include": "#parens" - }, - { - "name": "meta.function.objc", - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "#line_continuation_character" - }, - { - "name": "meta.bracket.square.access.objc", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.object.objc" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.objc" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "name": "storage.modifier.array.bracket.square.objc", - "match": "\\[\\s*\\]" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.objc" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.objc" - } - ], - "repository": { - "probably_a_parameter": { - "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", - "captures": { - "1": { - "name": "variable.parameter.probably.objc" - } - } - }, - "access-method": { - "name": "meta.function-call.member.objc", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.object.objc" - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objc" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objc" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.objc" - }, - { - "name": "everything.else.objc", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.objc" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "block": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "name": "meta.block.objc", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.objc", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.objc" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "include": "#parens-block" - }, - { - "include": "$base" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.objc", - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.objc" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.objc" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.objc" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.objc" - } - }, - "name": "comment.block.objc" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.objc" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.objc" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objc" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objc" - } - }, - "end": "(?=\\n)", - "name": "comment.line.double-slash.objc", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.objc" - } - } - } - ] - }, - "parens": { - "name": "meta.parens.objc", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block": { - "name": "meta.parens.block.objc", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#block_innards" - }, - { - "match": "(?-mix:(?<!:):(?!:))", - "name": "punctuation.range-based.objc" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.objc" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.objc" - }, - "3": { - "name": "punctuation.definition.directive.objc" - }, - "4": { - "name": "entity.name.tag.pragma-mark.objc" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objc" - }, - "operators": { - "patterns": [ - { - "match": "(?<![\\w$])(sizeof)(?![\\w$])", - "name": "keyword.operator.sizeof.objc" - }, - { - "match": "--", - "name": "keyword.operator.decrement.objc" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.objc" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.objc" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.objc" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.objc" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.objc" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.objc" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.objc" - }, - { - "match": "=", - "name": "keyword.operator.assignment.objc" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.objc" - }, - { - "begin": "(\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.objc" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.single.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objc" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objc" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objc" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objc" - } - } - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))", - "name": "storage.type.built-in.primitive.objc" - }, - { - "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))", - "name": "storage.type.built-in.objc" - }, - { - "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)", - "name": "storage.type.$1.objc" - } - ] - }, - "vararg_ellipses": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.objc" - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objc" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objc" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.objc" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.objc" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objc" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objc" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objc" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objc", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objc", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.objc", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objc", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.in-block.objc", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objc", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.in-block.objc", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "name": "meta.block.objc", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.objc" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.objc" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.objc", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.single.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "$base" - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#vararg_ellipses" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objc" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objc" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "function-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses" - }, - { - "name": "meta.function.definition.parameters.objc", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objc" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "$base" - } - ] - }, - "function-call-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objc" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - "default_statement": { - "name": "meta.conditional.case.objc", - "begin": "((?<!\\w)default(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.default.objc" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.default.objc" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "case_statement": { - "name": "meta.conditional.case.objc", - "begin": "((?<!\\w)case(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.case.objc" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.objc" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "switch_statement": { - "name": "meta.block.switch.objc", - "begin": "(((?<!\\w)switch(?!\\w)))", - "beginCaptures": { - "1": { - "name": "meta.head.switch.objc" - }, - "2": { - "name": "keyword.control.switch.objc" - } - }, - "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.switch.objc", - "begin": "\\G ?", - "end": "((?:\\{|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.switch.objc" - } - }, - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$base" - } - ] - }, - { - "name": "meta.body.switch.objc", - "begin": "(?<=\\{)", - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.objc" - } - }, - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.objc", - "begin": "(?<=})[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "name": "meta.conditional.switch.objc", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objc" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "static_assert": { - "begin": "(static_assert|_Static_assert)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.static_assert.objc" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objc" - } - }, - "patterns": [ - { - "name": "meta.static_assert.message.objc", - "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.objc" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#string_context" - }, - { - "include": "#string_context_c" - } - ] - }, - { - "include": "#function_call_context" - } - ] - }, - "conditional_context": { - "patterns": [ - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - "member_access": { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objc", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objc", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - } - } - } - ] - }, - "5": { - "name": "variable.other.member.objc" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.objc", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objc", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objc", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - } - } - } - ] - }, - "5": { - "name": "entity.name.function.member.objc" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "numbers": { - "begin": "(?<!\\w)(?=\\d|\\.\\d)", - "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "patterns": [ - { - "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objc" - }, - "2": { - "name": "constant.numeric.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "constant.numeric.hexadecimal.objc" - }, - "5": { - "name": "constant.numeric.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.objc" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.objc" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.objc" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objc" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "constant.numeric.decimal.point.objc" - }, - "5": { - "name": "constant.numeric.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "8": { - "name": "keyword.other.unit.exponent.decimal.objc" - }, - "9": { - "name": "keyword.operator.plus.exponent.decimal.objc" - }, - "10": { - "name": "keyword.operator.minus.exponent.decimal.objc" - }, - "11": { - "name": "constant.numeric.exponent.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objc" - } - } - }, - { - "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.binary.objc" - }, - "2": { - "name": "constant.numeric.binary.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.octal.objc" - }, - "2": { - "name": "constant.numeric.octal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objc" - }, - "2": { - "name": "constant.numeric.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "5": { - "name": "keyword.other.unit.exponent.hexadecimal.objc" - }, - "6": { - "name": "keyword.operator.plus.exponent.hexadecimal.objc" - }, - "7": { - "name": "keyword.operator.minus.exponent.hexadecimal.objc" - }, - "8": { - "name": "constant.numeric.exponent.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "5": { - "name": "keyword.other.unit.exponent.decimal.objc" - }, - "6": { - "name": "keyword.operator.plus.exponent.decimal.objc" - }, - "7": { - "name": "keyword.operator.minus.exponent.decimal.objc" - }, - "8": { - "name": "constant.numeric.exponent.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+", - "name": "invalid.illegal.constant.numeric.objc" - } - ] - } - } - }, - "comment": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.objc" - } - }, - "end": "\\*/", - "name": "comment.block.objc" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objc" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objc" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.objc", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.objc" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "comment": "eat nested preprocessor if(def)s", - "end": "^\\s*#\\s*endif\\b.*$", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "implementation_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-implementation" - }, - { - "include": "#preprocessor-rule-disabled-implementation" - }, - { - "include": "#preprocessor-rule-other-implementation" - }, - { - "include": "#property_directive" - }, - { - "include": "#method_super" - }, - { - "include": "$base" - } - ] - }, - "interface_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-interface" - }, - { - "include": "#preprocessor-rule-disabled-interface" - }, - { - "include": "#preprocessor-rule-other-interface" - }, - { - "include": "#properties" - }, - { - "include": "#protocol_list" - }, - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "method": { - "begin": "^(-|\\+)\\s*", - "end": "(?=\\{|#)|;", - "name": "meta.function.objc", - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.type.begin.objc" - } - }, - "end": "(\\))\\s*(\\w+\\b)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objc" - }, - "2": { - "name": "entity.name.function.objc" - } - }, - "name": "meta.return-type.objc", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "match": "\\b\\w+(?=:)", - "name": "entity.name.function.name-of-parameter.objc" - }, - { - "begin": "((:))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.name-of-parameter.objc" - }, - "2": { - "name": "punctuation.separator.arguments.objc" - }, - "3": { - "name": "punctuation.definition.type.begin.objc" - } - }, - "end": "(\\))\\s*(\\w+\\b)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objc" - }, - "2": { - "name": "variable.parameter.function.objc" - } - }, - "name": "meta.argument-type.objc", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "method_super": { - "begin": "^(?=-|\\+)", - "end": "(?<=\\})|(?=#)", - "name": "meta.function-with-body.objc", - "patterns": [ - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.pragma.objc" - }, - "3": { - "name": "meta.toc-list.pragma-mark.objc" - } - }, - "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objc" - }, - "preprocessor-rule-disabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objc", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-disabled-interface": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objc", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objc", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-interface": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objc", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - } - ] - }, - "preprocessor-rule-other-implementation": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - "preprocessor-rule-other-interface": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - "properties": { - "patterns": [ - { - "begin": "((@)property)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.property.objc" - }, - "2": { - "name": "punctuation.definition.keyword.objc" - }, - "3": { - "name": "punctuation.section.scope.begin.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objc" - } - }, - "name": "meta.property-with-attributes.objc", - "patterns": [ - { - "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b", - "name": "keyword.other.property.attribute.objc" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.property.objc" - }, - "2": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "((@)property)\\b", - "name": "meta.property.objc" - } - ] - }, - "property_directive": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(dynamic|synthesize)\\b", - "name": "keyword.other.property.directive.objc" - }, - "protocol_list": { - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.objc" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objc" - } - }, - "name": "meta.protocol-list.objc", - "patterns": [ - { - "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b", - "name": "support.other.protocol.objc" - } - ] - }, - "protocol_type_qualifier": { - "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b", - "name": "storage.modifier.protocol.objc" - }, - "special_variables": { - "patterns": [ - { - "match": "\\b_cmd\\b", - "name": "variable.other.selector.objc" - }, - { - "match": "\\b(self|super)\\b", - "name": "variable.language.objc" - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objc" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objc" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objc" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objc" - } - } - } - ] - } - } -} diff --git a/lib/grammars/objective-cpp.tmLanguage.json b/lib/grammars/objective-cpp.tmLanguage.json deleted file mode 100644 index 4471b8d..0000000 --- a/lib/grammars/objective-cpp.tmLanguage.json +++ /dev/null @@ -1,7247 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-objcpp-syntax/blob/master/autogenerated/objcpp.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-objcpp-syntax/commit/5a7eb15eee382dd5aa388bc04fdb60a0d2128e14", - "name": "objective-cpp", - "scopeName": "source.objcpp", - "patterns": [ - { - "include": "#cpp_lang" - }, - { - "include": "#anonymous_pattern_1" - }, - { - "include": "#anonymous_pattern_2" - }, - { - "include": "#anonymous_pattern_3" - }, - { - "include": "#anonymous_pattern_4" - }, - { - "include": "#anonymous_pattern_5" - }, - { - "include": "#apple_foundation_functional_macros" - }, - { - "include": "#anonymous_pattern_7" - }, - { - "include": "#anonymous_pattern_8" - }, - { - "include": "#anonymous_pattern_9" - }, - { - "include": "#anonymous_pattern_10" - }, - { - "include": "#anonymous_pattern_11" - }, - { - "include": "#anonymous_pattern_12" - }, - { - "include": "#anonymous_pattern_13" - }, - { - "include": "#anonymous_pattern_14" - }, - { - "include": "#anonymous_pattern_15" - }, - { - "include": "#anonymous_pattern_16" - }, - { - "include": "#anonymous_pattern_17" - }, - { - "include": "#anonymous_pattern_18" - }, - { - "include": "#anonymous_pattern_19" - }, - { - "include": "#anonymous_pattern_20" - }, - { - "include": "#anonymous_pattern_21" - }, - { - "include": "#anonymous_pattern_22" - }, - { - "include": "#anonymous_pattern_23" - }, - { - "include": "#anonymous_pattern_24" - }, - { - "include": "#anonymous_pattern_25" - }, - { - "include": "#anonymous_pattern_26" - }, - { - "include": "#anonymous_pattern_27" - }, - { - "include": "#anonymous_pattern_28" - }, - { - "include": "#anonymous_pattern_29" - }, - { - "include": "#anonymous_pattern_30" - }, - { - "include": "#bracketed_content" - }, - { - "include": "#c_lang" - } - ], - "repository": { - "anonymous_pattern_1": { - "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?", - "captures": { - "1": { - "name": "storage.type.objcpp" - }, - "2": { - "name": "punctuation.definition.storage.type.objcpp" - }, - "4": { - "name": "entity.name.type.objcpp" - }, - "6": { - "name": "punctuation.definition.entity.other.inherited-class.objcpp" - }, - "7": { - "name": "entity.other.inherited-class.objcpp" - }, - "8": { - "name": "meta.divider.objcpp" - }, - "9": { - "name": "meta.inherited-class.objcpp" - } - }, - "contentName": "meta.scope.interface.objcpp", - "end": "((@)end)\\b", - "name": "meta.interface-or-protocol.objcpp", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - "anonymous_pattern_10": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(defs|encode)\\b", - "name": "keyword.other.objcpp" - }, - "anonymous_pattern_11": { - "match": "\\bid\\b", - "name": "storage.type.id.objcpp" - }, - "anonymous_pattern_12": { - "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b", - "name": "storage.type.objcpp" - }, - "anonymous_pattern_13": { - "captures": { - "1": { - "name": "punctuation.definition.storage.type.objcpp" - } - }, - "match": "(@)(class|protocol)\\b", - "name": "storage.type.objcpp" - }, - "anonymous_pattern_14": { - "begin": "((@)selector)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "storage.type.objcpp" - }, - "2": { - "name": "punctuation.definition.storage.type.objcpp" - }, - "3": { - "name": "punctuation.definition.storage.type.objcpp" - } - }, - "contentName": "meta.selector.method-name.objcpp", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.storage.type.objcpp" - } - }, - "name": "meta.selector.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\b(?:[a-zA-Z_:][\\w]*)+", - "name": "support.function.any-method.name-of-parameter.objcpp" - } - ] - }, - "anonymous_pattern_15": { - "captures": { - "1": { - "name": "punctuation.definition.storage.modifier.objcpp" - } - }, - "match": "(@)(synchronized|public|package|private|protected)\\b", - "name": "storage.modifier.objcpp" - }, - "anonymous_pattern_16": { - "match": "\\b(YES|NO|Nil|nil)\\b", - "name": "constant.language.objcpp" - }, - "anonymous_pattern_17": { - "match": "\\bNSApp\\b", - "name": "support.variable.foundation.objcpp" - }, - "anonymous_pattern_18": { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.cocoa.leopard.objcpp" - }, - "2": { - "name": "support.function.cocoa.leopard.objcpp" - } - }, - "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b" - }, - "anonymous_pattern_19": { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.cocoa.objcpp" - }, - "2": { - "name": "support.function.cocoa.objcpp" - } - }, - "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b" - }, - "anonymous_pattern_2": { - "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?", - "captures": { - "1": { - "name": "storage.type.objcpp" - }, - "2": { - "name": "punctuation.definition.storage.type.objcpp" - }, - "4": { - "name": "entity.name.type.objcpp" - }, - "5": { - "name": "entity.other.inherited-class.objcpp" - } - }, - "contentName": "meta.scope.implementation.objcpp", - "end": "((@)end)\\b", - "name": "meta.implementation.objcpp", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - "anonymous_pattern_20": { - "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b", - "name": "support.class.cocoa.leopard.objcpp" - }, - "anonymous_pattern_21": { - "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b", - "name": "support.class.cocoa.objcpp" - }, - "anonymous_pattern_22": { - "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b", - "name": "support.type.cocoa.leopard.objcpp" - }, - "anonymous_pattern_23": { - "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b", - "name": "support.class.quartz.objcpp" - }, - "anonymous_pattern_24": { - "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b", - "name": "support.type.quartz.objcpp" - }, - "anonymous_pattern_25": { - "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b", - "name": "support.type.cocoa.objcpp" - }, - "anonymous_pattern_26": { - "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b", - "name": "support.constant.cocoa.objcpp" - }, - "anonymous_pattern_27": { - "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b", - "name": "support.constant.notification.cocoa.leopard.objcpp" - }, - "anonymous_pattern_28": { - "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b", - "name": "support.constant.notification.cocoa.objcpp" - }, - "anonymous_pattern_29": { - "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b", - "name": "support.constant.cocoa.leopard.objcpp" - }, - "anonymous_pattern_3": { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t", - "name": "constant.other.placeholder.objcpp" - }, - { - "include": "#string_placeholder" - } - ] - }, - "anonymous_pattern_30": { - "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b", - "name": "support.constant.cocoa.objcpp" - }, - "anonymous_pattern_4": { - "begin": "\\b(id)\\s*(?=<)", - "beginCaptures": { - "1": { - "name": "storage.type.objcpp" - } - }, - "end": "(?<=>)", - "name": "meta.id-with-protocol.objcpp", - "patterns": [ - { - "include": "#protocol_list" - } - ] - }, - "anonymous_pattern_5": { - "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b", - "name": "keyword.control.macro.objcpp" - }, - "anonymous_pattern_7": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(try|catch|finally|throw)\\b", - "name": "keyword.control.exception.objcpp" - }, - "anonymous_pattern_8": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(synchronized)\\b", - "name": "keyword.control.synchronize.objcpp" - }, - "anonymous_pattern_9": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(required|optional)\\b", - "name": "keyword.control.protocol-specification.objcpp" - }, - "apple_foundation_functional_macros": { - "begin": "(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "entity.name.function.preprocessor.apple-foundation.objcpp" - }, - "2": { - "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp" - } - }, - "name": "meta.preprocessor.macro.callable.apple-foundation.objcpp", - "patterns": [ - { - "include": "#c_lang" - } - ] - }, - "bracketed_content": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.objcpp" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.objcpp" - } - }, - "name": "meta.bracketed.objcpp", - "patterns": [ - { - "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.predicate.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\bargument(Array|s)(:)", - "name": "support.function.any-method.name-of-parameter.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\b\\w+(:)", - "name": "invalid.illegal.unknown-method.objcpp" - }, - { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "match": "\\b(AND|OR|NOT|IN)\\b", - "name": "keyword.operator.logical.predicate.cocoa.objcpp" - }, - { - "match": "\\b(ALL|ANY|SOME|NONE)\\b", - "name": "constant.language.predicate.cocoa.objcpp" - }, - { - "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", - "name": "constant.language.predicate.cocoa.objcpp" - }, - { - "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", - "name": "keyword.operator.comparison.predicate.cocoa.objcpp" - }, - { - "match": "\\bC(ASEINSENSITIVE|I)\\b", - "name": "keyword.other.modifier.predicate.cocoa.objcpp" - }, - { - "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", - "name": "keyword.other.predicate.cocoa.objcpp" - }, - { - "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\b\\w+(:)", - "name": "support.function.any-method.name-of-parameter.objcpp" - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$self" - } - ] - }, - "c_functions": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.objcpp" - }, - "2": { - "name": "support.function.C99.objcpp" - } - }, - "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.function-call.leading.objcpp" - }, - "2": { - "name": "support.function.any-method.objcpp" - }, - "3": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()", - "name": "meta.function-call.objcpp" - } - ] - }, - "c_lang": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#comments" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", - "name": "keyword.control.objcpp" - }, - { - "include": "#storage_types" - }, - { - "match": "typedef", - "name": "keyword.other.typedef.objcpp" - }, - { - "match": "\\bin\\b", - "name": "keyword.other.in.objcpp" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b", - "name": "storage.modifier.objcpp" - }, - { - "match": "\\bk[A-Z]\\w*\\b", - "name": "constant.other.variable.mac-classic.objcpp" - }, - { - "match": "\\bg[A-Z]\\w*\\b", - "name": "variable.other.readwrite.global.mac-classic.objcpp" - }, - { - "match": "\\bs[A-Z]\\w*\\b", - "name": "variable.other.readwrite.static.mac-classic.objcpp" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objcpp" - }, - { - "include": "#operators" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "include": "#special_variables" - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "entity.name.function.preprocessor.objcpp" - }, - "5": { - "name": "punctuation.definition.parameters.begin.objcpp" - }, - "6": { - "name": "variable.parameter.preprocessor.objcpp" - }, - "8": { - "name": "punctuation.separator.parameters.objcpp" - }, - "9": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.objcpp", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.include.objcpp" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.other.lt-gt.include.objcpp" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.objcpp", - "patterns": [ - { - "include": "#strings" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.objcpp" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.objcpp" - }, - { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.objcpp" - }, - { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.objcpp" - }, - { - "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", - "name": "support.constant.mac-classic.objcpp" - }, - { - "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", - "name": "support.type.mac-classic.objcpp" - }, - { - "match": "\\b([A-Za-z0-9_]+_t)\\b", - "name": "support.type.posix-reserved.objcpp" - }, - { - "include": "#block" - }, - { - "include": "#parens" - }, - { - "name": "meta.function.objcpp", - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "#line_continuation_character" - }, - { - "name": "meta.bracket.square.access.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.object.objcpp" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.objcpp" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "name": "storage.modifier.array.bracket.square.objcpp", - "match": "\\[\\s*\\]" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.objcpp" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.objcpp" - } - ], - "repository": { - "probably_a_parameter": { - "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", - "captures": { - "1": { - "name": "variable.parameter.probably.objcpp" - } - } - }, - "access-method": { - "name": "meta.function-call.member.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.object.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objcpp" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objcpp" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.objcpp" - }, - { - "name": "everything.else.objcpp", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.objcpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "block": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.objcpp", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.objcpp" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "include": "#parens-block" - }, - { - "include": "$base" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.objcpp", - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.objcpp" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.objcpp" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.objcpp" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.objcpp" - } - }, - "name": "comment.block.objcpp" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.objcpp" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.objcpp" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objcpp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "(?=\\n)", - "name": "comment.line.double-slash.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.objcpp" - } - } - } - ] - }, - "parens": { - "name": "meta.parens.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block": { - "name": "meta.parens.block.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards" - }, - { - "match": "(?-mix:(?<!:):(?!:))", - "name": "punctuation.range-based.objcpp" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.objcpp" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.objcpp" - }, - "3": { - "name": "punctuation.definition.directive.objcpp" - }, - "4": { - "name": "entity.name.tag.pragma-mark.objcpp" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objcpp" - }, - "operators": { - "patterns": [ - { - "match": "(?<![\\w$])(sizeof)(?![\\w$])", - "name": "keyword.operator.sizeof.objcpp" - }, - { - "match": "--", - "name": "keyword.operator.decrement.objcpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.objcpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.objcpp" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.objcpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.objcpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.objcpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.objcpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.objcpp" - }, - { - "match": "=", - "name": "keyword.operator.assignment.objcpp" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.objcpp" - }, - { - "begin": "(\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objcpp" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objcpp" - } - } - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))", - "name": "storage.type.built-in.primitive.objcpp" - }, - { - "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))", - "name": "storage.type.built-in.objcpp" - }, - { - "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)", - "name": "storage.type.$1.objcpp" - } - ] - }, - "vararg_ellipses": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.objcpp" - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.objcpp" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.objcpp" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objcpp" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.objcpp" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "$base" - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#vararg_ellipses" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "function-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses" - }, - { - "name": "meta.function.definition.parameters.objcpp", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "$base" - } - ] - }, - "function-call-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - "default_statement": { - "name": "meta.conditional.case.objcpp", - "begin": "((?<!\\w)default(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.default.objcpp" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.default.objcpp" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "case_statement": { - "name": "meta.conditional.case.objcpp", - "begin": "((?<!\\w)case(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.case.objcpp" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.objcpp" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "switch_statement": { - "name": "meta.block.switch.objcpp", - "begin": "(((?<!\\w)switch(?!\\w)))", - "beginCaptures": { - "1": { - "name": "meta.head.switch.objcpp" - }, - "2": { - "name": "keyword.control.switch.objcpp" - } - }, - "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.switch.objcpp", - "begin": "\\G ?", - "end": "((?:\\{|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.switch.objcpp" - } - }, - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$base" - } - ] - }, - { - "name": "meta.body.switch.objcpp", - "begin": "(?<=\\{)", - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.objcpp" - } - }, - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.objcpp", - "begin": "(?<=})[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "name": "meta.conditional.switch.objcpp", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objcpp" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "static_assert": { - "begin": "(static_assert|_Static_assert)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.static_assert.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "name": "meta.static_assert.message.objcpp", - "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.objcpp" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#string_context" - }, - { - "include": "#string_context_c" - } - ] - }, - { - "include": "#function_call_context" - } - ] - }, - "conditional_context": { - "patterns": [ - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - "member_access": { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objcpp", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objcpp", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - } - } - } - ] - }, - "5": { - "name": "variable.other.member.objcpp" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.objcpp", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objcpp", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#special_variables" - }, - { - "name": "variable.other.object.access.objcpp", - "match": "(.+)" - } - ] - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - } - } - } - ] - }, - "5": { - "name": "entity.name.function.member.objcpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "numbers": { - "begin": "(?<!\\w)(?=\\d|\\.\\d)", - "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "patterns": [ - { - "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "constant.numeric.hexadecimal.objcpp" - }, - "5": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objcpp" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "constant.numeric.decimal.point.objcpp" - }, - "5": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "8": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "9": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "10": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "11": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objcpp" - } - } - }, - { - "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.binary.objcpp" - }, - "2": { - "name": "constant.numeric.binary.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.octal.objcpp" - }, - "2": { - "name": "constant.numeric.octal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "5": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "6": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "7": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "8": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "5": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "6": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "7": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "8": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+", - "name": "invalid.illegal.constant.numeric.objcpp" - } - ] - } - } - }, - "comment": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "\\*/", - "name": "comment.block.objcpp" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objcpp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.objcpp", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.objcpp" - } - ] - } - ] - } - ] - }, - "cpp_lang": { - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#strings" - }, - { - "match": "\\b(friend|explicit|virtual|override|final|noexcept)\\b", - "name": "storage.modifier.objcpp" - }, - { - "match": "\\b(private:|protected:|public:)", - "name": "storage.type.modifier.access.objcpp" - }, - { - "match": "\\b(catch|try|throw|using)\\b", - "name": "keyword.control.objcpp" - }, - { - "match": "\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])", - "name": "keyword.control.objcpp" - }, - { - "match": "\\b(f|m)[A-Z]\\w*\\b", - "name": "variable.other.readwrite.member.objcpp" - }, - { - "match": "\\bthis\\b", - "name": "variable.language.this.objcpp" - }, - { - "match": "\\bnullptr\\b", - "name": "constant.language.objcpp" - }, - { - "include": "#template_definition" - }, - { - "match": "\\btemplate\\b\\s*", - "name": "storage.type.template.objcpp" - }, - { - "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*", - "name": "keyword.operator.cast.objcpp" - }, - { - "name": "punctuation.separator.namespace.access.objcpp", - "match": "((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)", - "captures": { - "1": { - "name": "entity.scope.objcpp" - }, - "2": { - "name": "entity.scope.name.objcpp" - }, - "3": { - "name": "punctuation.separator.namespace.access.objcpp" - } - } - }, - { - "match": "\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b", - "name": "keyword.operator.objcpp" - }, - { - "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b", - "name": "storage.type.objcpp" - }, - { - "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b", - "name": "storage.modifier.objcpp" - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.destructor.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.destructor.prototype.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "include": "#c_lang" - } - ], - "repository": { - "template_definition": { - "begin": "\\b(template)\\s*(<)\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.template.objcpp" - }, - "2": { - "name": "meta.template.angle-brackets.start.objcpp" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "meta.template.angle-brackets.end.objcpp" - } - }, - "name": "template.definition.objcpp", - "patterns": [ - { - "include": "#template_definition_argument" - } - ] - }, - "template_definition_argument": { - "match": "\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))", - "captures": { - "1": { - "name": "storage.type.template.objcpp" - }, - "2": { - "name": "storage.type.template.objcpp" - }, - "3": { - "name": "entity.name.type.template.objcpp" - }, - "4": { - "name": "storage.type.template.objcpp" - }, - "5": { - "name": "meta.template.operator.ellipsis.objcpp" - }, - "6": { - "name": "entity.name.type.template.objcpp" - }, - "7": { - "name": "storage.type.template.objcpp" - }, - "8": { - "name": "entity.name.type.template.objcpp" - }, - "9": { - "name": "keyword.operator.assignment.objcpp" - }, - "10": { - "name": "constant.language.objcpp" - }, - "11": { - "name": "meta.template.operator.comma.objcpp" - } - } - }, - "angle_brackets": { - "begin": "<", - "end": ">", - "name": "meta.angle-brackets.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "include": "$base" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket", - "name": "meta.function-call.objcpp" - }, - { - "include": "$base" - } - ] - }, - "constructor": { - "patterns": [ - { - "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.constructor.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.constructor.objcpp", - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "end": "(?=\\{)", - "name": "meta.function.constructor.initializer-list.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "special_block": { - "patterns": [ - { - "begin": "\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)", - "beginCaptures": { - "1": { - "name": "keyword.control.objcpp" - }, - "2": { - "name": "storage.type.namespace.objcpp" - }, - "3": { - "name": "entity.name.type.objcpp" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.objcpp" - } - }, - "name": "meta.using-namespace-declaration.objcpp" - }, - { - "begin": "\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+", - "beginCaptures": { - "1": { - "name": "storage.type.namespace.objcpp" - }, - "2": { - "name": "entity.name.type.objcpp" - } - }, - "captures": { - "1": { - "name": "keyword.control.namespace.$2.objcpp" - } - }, - "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))", - "name": "meta.namespace-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?", - "beginCaptures": { - "1": { - "name": "storage.type.class.objcpp" - }, - "2": { - "name": "storage.type.struct.objcpp" - }, - "3": { - "name": "entity.name.type.objcpp" - }, - "5": { - "name": "storage.type.modifier.access.objcpp" - }, - "6": { - "name": "entity.name.type.inherited.objcpp" - }, - "7": { - "patterns": [ - { - "match": "(public|protected|private)", - "name": "storage.type.modifier.access.objcpp" - }, - { - "match": "[_A-Za-z][_A-Za-z0-9]*", - "name": "entity.name.type.inherited.objcpp" - } - ] - } - }, - "end": "(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))", - "name": "meta.class-struct-block.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "(\\})(\\s*\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - }, - "2": { - "name": "invalid.illegal.you-forgot-semicolon.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(extern)(?=\\s*\")", - "beginCaptures": { - "1": { - "name": "storage.modifier.objcpp" - } - }, - "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", - "name": "meta.extern-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}|(?=\\s*#\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "(u|u8|U|L)?\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "match": "\\\\u\\h{4}|\\\\U\\h{8}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\x\\h+", - "name": "constant.character.escape.objcpp" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - }, - "3": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "end": "\\)\\2(\\3)\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - }, - "1": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "name": "string.quoted.double.raw.objcpp" - } - ] - } - } - }, - "cpp_lang_newish": { - "patterns": [ - { - "include": "#special_block" - }, - { - "match": "(?-mix:##[a-zA-Z_]\\w*(?!\\w))", - "name": "variable.other.macro.argument.objcpp" - }, - { - "include": "#strings" - }, - { - "match": "(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)", - "name": "storage.modifier.specificer.functional.pre-parameters.$1.objcpp" - }, - { - "match": "(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))", - "name": "storage.modifier.specifier.functional.post-parameters.$1.objcpp" - }, - { - "match": "(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)", - "name": "storage.modifier.specifier.$1.objcpp" - }, - { - "match": "(?<!\\w)((?:private|protected|public)) *:", - "name": "storage.type.modifier.access.control.$1.objcpp" - }, - { - "match": "(?<!\\w)(?:throw|try|catch)(?!\\w)", - "name": "keyword.control.exception.$1.objcpp" - }, - { - "match": "(?<!\\w)(using|typedef)(?!\\w)", - "name": "keyword.other.$1.objcpp" - }, - { - "include": "#memory_operators" - }, - { - "match": "\\bthis\\b", - "name": "variable.language.this.objcpp" - }, - { - "include": "#constants" - }, - { - "include": "#template_definition" - }, - { - "match": "\\btemplate\\b\\s*", - "name": "storage.type.template.objcpp" - }, - { - "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*", - "name": "keyword.operator.cast.$1.objcpp" - }, - { - "include": "#scope_resolution" - }, - { - "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b", - "name": "storage.type.objcpp" - }, - { - "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b", - "name": "storage.modifier.objcpp" - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.destructor.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.destructor.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.destructor.objcpp" - } - }, - "name": "meta.function.destructor.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.destructor.prototype.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#comments-c" - }, - { - "match": "\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b", - "name": "keyword.control.$1.objcpp" - }, - { - "include": "#storage_types_c" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", - "name": "storage.modifier.objcpp" - }, - { - "include": "#operators" - }, - { - "include": "#operator_overload" - }, - { - "include": "#number_literal" - }, - { - "include": "#strings-c" - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "entity.name.function.preprocessor.objcpp" - }, - "5": { - "name": "punctuation.definition.parameters.begin.objcpp" - }, - "6": { - "name": "variable.parameter.preprocessor.objcpp" - }, - "8": { - "name": "punctuation.separator.parameters.objcpp" - }, - "9": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.objcpp", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments-c" - } - ] - } - ] - }, - { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.include.objcpp" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.other.lt-gt.include.objcpp" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#strings-c" - }, - { - "include": "#number_literal" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.objcpp", - "patterns": [ - { - "include": "#strings-c" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.objcpp" - }, - { - "include": "#number_literal" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.objcpp" - }, - { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.objcpp" - }, - { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.objcpp" - }, - { - "match": "(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)", - "name": "support.type.posix-reserved.objcpp" - }, - { - "include": "#block-c" - }, - { - "include": "#parens-c" - }, - { - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?<=\\))", - "name": "meta.function.definition.objcpp", - "patterns": [ - { - "include": "#function-innards-c" - } - ] - }, - { - "include": "#line_continuation_character" - }, - { - "name": "meta.bracket.square.access.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.other.object.objcpp" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.objcpp" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "name": "storage.modifier.array.bracket.square.objcpp", - "match": "(?-mix:(?<!delete))\\\\[\\\\s*\\\\]" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.objcpp" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.objcpp" - } - ], - "repository": { - "literal_numeric_seperator": { - "match": "(?<!')'(?!')", - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "number_literal": { - "match": "((?<!\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))", - "captures": { - "2": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "3": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "4": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "5": { - "name": "constant.numeric.hexadecimal.objcpp" - }, - "6": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "7": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "12": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "13": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "14": { - "name": "constant.numeric.decimal.point.objcpp" - }, - "15": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "16": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "17": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "18": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "19": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "20": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "21": { - "name": "keyword.other.unit.suffix.floating-point.objcpp" - }, - "22": { - "name": "keyword.other.unit.binary.objcpp" - }, - "23": { - "name": "constant.numeric.binary.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "24": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "25": { - "name": "keyword.other.unit.octal.objcpp" - }, - "26": { - "name": "constant.numeric.octal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "27": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "28": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "29": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "30": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "31": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "32": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "33": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "34": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "35": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "36": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "37": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "38": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "39": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "40": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "41": { - "name": "keyword.other.unit.suffix.integer.objcpp" - }, - "42": { - "name": "keyword.other.unit.user-defined.objcpp" - } - } - }, - "constants": { - "match": "(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)", - "name": "constant.language.objcpp" - }, - "storage_types_c": { - "patterns": [ - { - "match": "(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)", - "name": "storage.type.primitive.objcpp" - }, - { - "match": "(?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)", - "name": "storage.type.objcpp" - }, - { - "match": "(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)", - "name": "storage.type.$1.objcpp" - } - ] - }, - "memory_operators": { - "match": "(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)", - "captures": { - "1": { - "name": "keyword.operator.memory.delete.array.objcpp" - }, - "2": { - "name": "keyword.operator.memory.delete.array.bracket.objcpp" - }, - "3": { - "name": "keyword.operator.memory.delete.objcpp" - }, - "4": { - "name": "keyword.operator.memory.new.objcpp" - } - }, - "name": "keyword.operator.memory.objcpp" - }, - "template_call_innards": { - "match": "<(?:[\\s<>,\\w])*>\\s*", - "captures": { - "0": { - "name": "meta.template.call.objcpp", - "patterns": [ - { - "include": "#storage_types_c" - }, - { - "include": "#constants" - }, - { - "include": "#scope_resolution" - }, - { - "match": "(?<!\\w)[a-zA-Z_]\\w*(?!\\w)", - "name": "storage.type.user-defined.objcpp" - }, - { - "include": "#operators" - }, - { - "include": "#number_literal" - }, - { - "include": "#strings" - }, - { - "match": ",", - "name": "punctuation.separator.comma.template.argument.objcpp" - } - ] - } - } - }, - "template_definition": { - "name": "meta.template.definition.objcpp", - "begin": "(?-mix:(?<!\\w)(template)\\s*(<))", - "beginCaptures": { - "1": { - "name": "storage.type.template.objcpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.start.template.definition.objcpp" - } - }, - "end": "(?-mix:(>))", - "endCaptures": { - "1": { - "name": "punctuation.section.angle-brackets.end.template.definition.objcpp" - } - }, - "patterns": [ - { - "include": "#scope_resolution" - }, - { - "include": "#template_definition_argument" - }, - { - "include": "#template_call_innards" - } - ] - }, - "template_definition_argument": { - "match": "((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))", - "captures": { - "2": { - "name": "storage.type.template.argument.$1.objcpp" - }, - "3": { - "name": "storage.type.template.argument.$2.objcpp" - }, - "4": { - "name": "entity.name.type.template.objcpp" - }, - "5": { - "name": "storage.type.template.objcpp" - }, - "6": { - "name": "keyword.operator.ellipsis.template.definition.objcpp" - }, - "7": { - "name": "entity.name.type.template.objcpp" - }, - "8": { - "name": "storage.type.template.objcpp" - }, - "9": { - "name": "entity.name.type.template.objcpp" - }, - "10": { - "name": "keyword.operator.assignment.objcpp" - }, - "11": { - "name": "constant.other.objcpp" - }, - "12": { - "name": "punctuation.separator.comma.template.argument.objcpp" - } - } - }, - "scope_resolution": { - "match": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution" - } - ] - }, - "2": { - "name": "entity.name.namespace.scope-resolution.objcpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_innards" - } - ] - }, - "4": { - "name": "punctuation.separator.namespace.access.objcpp" - } - }, - "name": "meta.scope-resolution.objcpp" - }, - "angle_brackets": { - "begin": "<", - "end": ">", - "name": "meta.angle-brackets.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "include": "$base" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket", - "name": "meta.function-call.objcpp" - }, - { - "include": "$base" - } - ] - }, - "constructor": { - "patterns": [ - { - "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.constructor.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.constructor.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.constructor.objcpp" - } - }, - "name": "meta.function.constructor.objcpp", - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards-c" - } - ] - }, - { - "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.initializer-list.parameters.objcpp" - } - }, - "end": "(?=\\{)", - "name": "meta.function.constructor.initializer-list.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "special_block": { - "patterns": [ - { - "comment": "https://en.cppreference.com/w/cpp/language/namespace", - "begin": "\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.using.directive.objcpp" - }, - "2": { - "name": "keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp" - }, - "3": { - "patterns": [ - { - "include": "#scope_resolution" - } - ] - }, - "4": { - "name": "entity.name.namespace.objcpp" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.objcpp" - } - }, - "name": "meta.using-namespace-declaration.objcpp" - }, - { - "begin": "(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp" - }, - "2": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))", - "name": "entity.name.type.objcpp" - }, - { - "match": "::", - "name": "punctuation.separator.namespace.access.objcpp" - } - ] - } - }, - "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))", - "name": "meta.namespace-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?", - "beginCaptures": { - "1": { - "name": "storage.type.class.objcpp" - }, - "2": { - "name": "storage.type.struct.objcpp" - }, - "3": { - "name": "entity.name.type.objcpp" - }, - "5": { - "name": "storage.type.modifier.access.objcpp" - }, - "6": { - "name": "entity.name.type.inherited.objcpp" - }, - "7": { - "patterns": [ - { - "match": "(public|protected|private)", - "name": "storage.type.modifier.access.objcpp" - }, - { - "match": "[_A-Za-z][_A-Za-z0-9]*", - "name": "entity.name.type.inherited.objcpp" - } - ] - } - }, - "end": "(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.objcpp" - } - }, - "name": "meta.class-struct-block.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "(\\})(\\s*\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - }, - "2": { - "name": "invalid.illegal.you-forgot-semicolon.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(extern)(?=\\s*\")", - "beginCaptures": { - "1": { - "name": "storage.modifier.objcpp" - } - }, - "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", - "name": "meta.extern-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}|(?=\\s*#\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "(u|u8|U|L)?\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "match": "\\\\u\\h{4}|\\\\U\\h{8}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\x\\h+", - "name": "constant.character.escape.objcpp" - }, - { - "include": "#string_placeholder-c" - } - ] - }, - { - "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - }, - "3": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "end": "\\)\\2(\\3)\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - }, - "1": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "name": "string.quoted.double.raw.objcpp" - } - ] - }, - "probably_a_parameter": { - "match": "(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))", - "captures": { - "1": { - "name": "variable.parameter.probably.defaulted.objcpp" - }, - "2": { - "name": "variable.parameter.probably.objcpp" - } - } - }, - "operator_overload": { - "begin": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.scope.objcpp" - }, - "2": { - "name": "keyword.other.operator.overload.objcpp" - }, - "3": { - "name": "entity.name.operator.overloadee.objcpp" - }, - "4": { - "name": "punctuation.section.parameters.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objcpp" - } - }, - "name": "meta.function.definition.parameters.operator-overload.objcpp", - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards-c" - } - ] - }, - "access-method": { - "name": "meta.function-call.member.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other.object.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objcpp" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objcpp" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.other.object.objcpp" - }, - { - "name": "everything.else.objcpp", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.objcpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - "access-member": { - "name": "variable.other.object.access.objcpp", - "match": "(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()", - "captures": { - "1": { - "name": "variable.other.object.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objcpp" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objcpp" - }, - { - "match": "[a-zA-Z_]\\w*", - "name": "variable.other.object.objcpp" - }, - { - "match": ".+", - "name": "everything.else.objcpp" - } - ] - }, - "5": { - "name": "variable.other.member.objcpp" - } - } - }, - "block-c": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#block_innards-c" - } - ] - } - ] - }, - "block_innards-c": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.objcpp", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.objcpp" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards-c" - } - ] - }, - { - "include": "#parens-block-c" - }, - { - "include": "$base" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.objcpp", - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - "comments-c": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.objcpp" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.objcpp" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.objcpp" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.objcpp" - } - }, - "name": "comment.block.objcpp" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.objcpp" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.objcpp" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objcpp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "(?=\\n)", - "name": "comment.line.double-slash.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.objcpp" - } - } - } - ] - }, - "parens-c": { - "name": "punctuation.section.parens-c\b.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block-c": { - "name": "meta.block.parens.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards-c" - }, - { - "match": "(?<!:):(?!:)", - "name": "punctuation.range-based.objcpp" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.objcpp" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.objcpp" - }, - "3": { - "name": "punctuation.definition.directive.objcpp" - }, - "4": { - "name": "entity.name.tag.pragma-mark.objcpp" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objcpp" - }, - "operators": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))", - "name": "keyword.operator.$1.objcpp" - }, - { - "match": "--", - "name": "keyword.operator.decrement.objcpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.objcpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.objcpp" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.objcpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.objcpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.objcpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.objcpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.objcpp" - }, - { - "match": "=", - "name": "keyword.operator.assignment.objcpp" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.objcpp" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": ":", - "applyEndPatternLast": true, - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#c_function_call" - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings-c": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#string_placeholder-c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "(?-mix:(?<![\\da-fA-F])')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "string_escaped_char-c": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - "string_placeholder-c": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objcpp" - } - ] - }, - "vararg_ellipses-c": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.objcpp" - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.objcpp" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.objcpp" - }, - { - "include": "#comments-c" - }, - { - "include": "#strings-c" - }, - { - "include": "#number_literal" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "include": "#constants" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards-c" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards-c" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses-c" - }, - { - "match": "(?-mix:##?[a-zA-Z_]\\w*(?!\\w))", - "name": "variable.other.macro.argument.objcpp" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.objcpp" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#string_placeholder-c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "$base" - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments-c" - }, - { - "include": "#storage_types_c" - }, - { - "include": "#vararg_ellipses-c" - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "function-innards-c": { - "patterns": [ - { - "include": "#comments-c" - }, - { - "include": "#storage_types_c" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses-c" - }, - { - "name": "meta.function.definition.parameters.objcpp", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.objcpp" - } - }, - "end": "\\)|:", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards-c" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-innards-c" - } - ] - }, - { - "include": "$base" - } - ] - }, - "function-call-innards-c": { - "patterns": [ - { - "include": "#comments-c" - }, - { - "include": "#storage_types_c" - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.memory.new.objcpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_innards" - } - ] - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution" - } - ] - }, - "2": { - "name": "entity.name.function.call.objcpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_innards" - } - ] - }, - "4": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - } - } - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "comment": "eat nested preprocessor if(def)s", - "end": "^\\s*#\\s*endif\\b.*$", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "implementation_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-implementation" - }, - { - "include": "#preprocessor-rule-disabled-implementation" - }, - { - "include": "#preprocessor-rule-other-implementation" - }, - { - "include": "#property_directive" - }, - { - "include": "#method_super" - }, - { - "include": "$base" - } - ] - }, - "interface_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-interface" - }, - { - "include": "#preprocessor-rule-disabled-interface" - }, - { - "include": "#preprocessor-rule-other-interface" - }, - { - "include": "#properties" - }, - { - "include": "#protocol_list" - }, - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "method": { - "begin": "^(-|\\+)\\s*", - "end": "(?=\\{|#)|;", - "name": "meta.function.objcpp", - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.type.begin.objcpp" - } - }, - "end": "(\\))\\s*(\\w+\\b)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objcpp" - }, - "2": { - "name": "entity.name.function.objcpp" - } - }, - "name": "meta.return-type.objcpp", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "match": "\\b\\w+(?=:)", - "name": "entity.name.function.name-of-parameter.objcpp" - }, - { - "begin": "((:))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.name-of-parameter.objcpp" - }, - "2": { - "name": "punctuation.separator.arguments.objcpp" - }, - "3": { - "name": "punctuation.definition.type.begin.objcpp" - } - }, - "end": "(\\))\\s*(\\w+\\b)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objcpp" - }, - "2": { - "name": "variable.parameter.function.objcpp" - } - }, - "name": "meta.argument-type.objcpp", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "method_super": { - "begin": "^(?=-|\\+)", - "end": "(?<=\\})|(?=#)", - "name": "meta.function-with-body.objcpp", - "patterns": [ - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.pragma.objcpp" - }, - "3": { - "name": "meta.toc-list.pragma-mark.objcpp" - } - }, - "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objcpp" - }, - "preprocessor-rule-disabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-disabled-interface": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-interface": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - } - ] - }, - "preprocessor-rule-other-implementation": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - "preprocessor-rule-other-interface": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - "properties": { - "patterns": [ - { - "begin": "((@)property)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.property.objcpp" - }, - "2": { - "name": "punctuation.definition.keyword.objcpp" - }, - "3": { - "name": "punctuation.section.scope.begin.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objcpp" - } - }, - "name": "meta.property-with-attributes.objcpp", - "patterns": [ - { - "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b", - "name": "keyword.other.property.attribute.objcpp" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.property.objcpp" - }, - "2": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "((@)property)\\b", - "name": "meta.property.objcpp" - } - ] - }, - "property_directive": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(dynamic|synthesize)\\b", - "name": "keyword.other.property.directive.objcpp" - }, - "protocol_list": { - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.objcpp" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objcpp" - } - }, - "name": "meta.protocol-list.objcpp", - "patterns": [ - { - "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b", - "name": "support.other.protocol.objcpp" - } - ] - }, - "protocol_type_qualifier": { - "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b", - "name": "storage.modifier.protocol.objcpp" - }, - "special_variables": { - "patterns": [ - { - "match": "\\b_cmd\\b", - "name": "variable.other.selector.objcpp" - }, - { - "match": "\\b(self|super)\\b", - "name": "variable.language.objcpp" - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objcpp" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objcpp" - } - } - } - ] - } - } -} diff --git a/lib/grammars/ocaml.tmLanguage.json b/lib/grammars/ocaml.tmLanguage.json deleted file mode 100644 index f32d70e..0000000 --- a/lib/grammars/ocaml.tmLanguage.json +++ /dev/null @@ -1,2961 +0,0 @@ -{ - "name": "ocaml", - "scopeName": "source.ocaml", - "fileTypes": [".ml", ".mli"], - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#decl" - } - ], - "repository": { - "attribute": { - "begin": "(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - "2": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - }, - "patterns": [ - { - "include": "#attributePayload" - } - ] - }, - "attributeIdentifier": { - "match": "((?<![#\\-:!?.@*/&%^+<=>|~$])%(?![#\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))", - "captures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "punctuation.definition.tag" - } - } - }, - "attributePayload": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#pathModuleExtended" - }, - { - "include": "#pathRecord" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=\\])", - "patterns": [ - { - "include": "#signature" - }, - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=\\])", - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=\\])|\\bwhen\\b", - "endCaptures": { - "1": {} - }, - "patterns": [ - { - "include": "#pattern" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))", - "end": "(?=\\])", - "patterns": [ - { - "include": "#term" - } - ] - } - ] - }, - { - "include": "#term" - } - ] - }, - "bindClassTerm": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)", - "endCaptures": { - "0": { - "name": "entity.name.function strong emphasis" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - } - ] - }, - { - "begin": "\\[", - "end": "\\]", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#bindTermArgs" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#literalClassType" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - } - ] - }, - "bindClassType": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)", - "endCaptures": { - "0": { - "name": "entity.name.function strong emphasis" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - } - ] - }, - { - "begin": "\\[", - "end": "\\]", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#bindTermArgs" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#literalClassType" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "include": "#literalClassType" - } - ] - } - ] - }, - "bindConstructor": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "punctuation.definition.tag" - }, - "3": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "match": "\\.\\.", - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - { - "match": "\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))", - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "bindSignature": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModuleExtended" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "include": "#signature" - } - ] - } - ] - }, - "bindStructure": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "match": "\\bmodule\\b", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - }, - { - "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", - "name": "entity.name.function strong emphasis" - }, - { - "begin": "\\((?!\\))", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - } - }, - "patterns": [ - { - "include": "#signature" - } - ] - }, - { - "include": "#variableModule" - } - ] - }, - { - "include": "#literalUnit" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#signature" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - }, - "2": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "include": "#structure" - } - ] - } - ] - }, - "bindTerm": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))", - "end": "(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "1": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - }, - "2": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "4": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))", - "end": "(?=\\b(?:module|open)\\b)|(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\brec\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "2": { - "name": "entity.name.function strong emphasis" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#comment" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))", - "end": "((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])", - "endCaptures": { - "0": { - "name": "entity.name.function strong emphasis" - } - }, - "patterns": [ - { - "include": "#bindTermArgs" - } - ] - }, - { - "include": "#bindTermArgs" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#declModule" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))", - "end": "(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#pathModuleSimple" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\btype\\b|(?=[^[:space:]])", - "endCaptures": { - "0": { - "name": "keyword.control" - } - } - }, - { - "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#pattern" - } - ] - }, - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - } - ] - }, - "bindTermArgs": { - "patterns": [ - { - "begin": "~|\\?", - "end": ":|(?=[^[:space:]])", - "applyEndPatternLast": true, - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))", - "endCaptures": { - "0": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\((?!\\*)", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "begin": "(?<=\\()", - "end": ":|=", - "endCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - ] - }, - { - "begin": "(?<=:)", - "end": "=|(?=\\))", - "endCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#term" - } - ] - } - ] - } - ] - } - ] - }, - { - "include": "#pattern" - } - ] - }, - "bindType": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#pathType" - }, - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "entity.name.function strong" - }, - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "include": "#bindConstructor" - } - ] - } - ] - }, - "comment": { - "patterns": [ - { - "include": "#attribute" - }, - { - "include": "#extension" - }, - { - "include": "#commentBlock" - }, - { - "include": "#commentDoc" - } - ] - }, - "commentBlock": { - "begin": "\\(\\*(?!\\*[^\\)])", - "end": "\\*\\)", - "name": "comment constant.regexp meta.separator.markdown", - "contentName": "emphasis", - "patterns": [ - { - "include": "#commentBlock" - }, - { - "include": "#commentDoc" - } - ] - }, - "commentDoc": { - "begin": "\\(\\*\\*", - "end": "\\*\\)", - "name": "comment constant.regexp meta.separator.markdown", - "patterns": [ - { - "match": "\\*" - }, - { - "include": "#comment" - } - ] - }, - "decl": { - "patterns": [ - { - "include": "#declClass" - }, - { - "include": "#declException" - }, - { - "include": "#declInclude" - }, - { - "include": "#declModule" - }, - { - "include": "#declOpen" - }, - { - "include": "#declTerm" - }, - { - "include": "#declType" - } - ] - }, - "declClass": { - "begin": "\\bclass\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "entity.name.class constant.numeric markup.underline" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "begin": "(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))", - "end": "\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", - "beginCaptures": { - "0": { - "name": "entity.name.class constant.numeric markup.underline" - } - }, - "endCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "include": "#bindClassTerm" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#bindClassType" - } - ] - } - ] - }, - "declException": { - "begin": "\\bexception\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "keyword markup.underline" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#bindConstructor" - } - ] - }, - "declInclude": { - "begin": "\\binclude\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#signature" - } - ] - }, - "declModule": { - "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", - "end": "(\\btype\\b)|(?=[[:upper:]])", - "endCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#comment" - }, - { - "match": "\\brec\\b", - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#bindSignature" - } - ] - }, - { - "begin": "(?=[[:upper:]])", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#bindStructure" - } - ] - } - ] - }, - "declOpen": { - "begin": "\\bopen\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#pathModuleExtended" - } - ] - }, - "declTerm": { - "begin": "\\b(?:(external|val)|(method)|(let))\\b(!?)", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "1": { - "name": "support.type markup.underline" - }, - "2": { - "name": "storage.type markup.underline" - }, - "3": { - "name": "keyword.control markup.underline" - }, - "4": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#bindTerm" - } - ] - }, - "declType": { - "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "keyword markup.underline" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#bindType" - } - ] - }, - "extension": { - "begin": "(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - "2": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - }, - "patterns": [ - { - "include": "#attributePayload" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#termConstructor" - }, - { - "include": "#literalArray" - }, - { - "include": "#literalBoolean" - }, - { - "include": "#literalCharacter" - }, - { - "include": "#literalList" - }, - { - "include": "#literalNumber" - }, - { - "include": "#literalObjectTerm" - }, - { - "include": "#literalString" - }, - { - "include": "#literalRecord" - }, - { - "include": "#literalUnit" - } - ] - }, - "literalArray": { - "begin": "\\[\\|", - "end": "\\|\\]", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - "literalBoolean": { - "match": "\\bfalse|true\\b", - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - "literalCharacter": { - "begin": "(?<![[:word:]])'", - "end": "'", - "name": "markup.punctuation.quote.beginning", - "patterns": [ - { - "include": "#literalCharacterEscape" - } - ] - }, - "literalCharacterEscape": { - "match": "\\\\(?:[\\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])" - }, - "literalClassType": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\bobject\\b", - "end": "\\bend\\b", - "captures": { - "0": { - "name": "punctuation.definition.tag emphasis" - } - }, - "patterns": [ - { - "begin": "\\binherit\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "begin": "\\bas\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#variablePattern" - } - ] - }, - { - "include": "#type" - } - ] - }, - { - "include": "#pattern" - }, - { - "include": "#declTerm" - } - ] - }, - { - "begin": "\\[", - "end": "\\]" - } - ] - }, - "literalList": { - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - } - ] - }, - "literalNumber": { - "match": "(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?", - "name": "constant.numeric" - }, - "literalObjectTerm": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\bobject\\b", - "end": "\\bend\\b", - "captures": { - "0": { - "name": "punctuation.definition.tag emphasis" - } - }, - "patterns": [ - { - "begin": "\\binherit\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "begin": "\\bas\\b", - "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#variablePattern" - } - ] - }, - { - "include": "#term" - } - ] - }, - { - "include": "#pattern" - }, - { - "include": "#declTerm" - } - ] - }, - { - "begin": "\\[", - "end": "\\]" - } - ] - }, - "literalRecord": { - "begin": "\\{", - "end": "\\}", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" - } - }, - "patterns": [ - { - "begin": "(?<=\\{|;)", - "end": "(:)|(=)|(;)|(with)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "4": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModulePrefixSimple" - }, - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", - "end": "(:)|(=)|(;)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(;)|(=)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": ";|(?=\\})", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - } - ] - }, - "literalString": { - "patterns": [ - { - "begin": "\"", - "end": "\"", - "name": "string beginning.punctuation.definition.quote.markdown", - "patterns": [ - { - "include": "#literalStringEscape" - } - ] - }, - { - "begin": "(\\{)([_[:lower:]]*?)(\\|)", - "end": "(\\|)(\\2)(\\})", - "name": "string beginning.punctuation.definition.quote.markdown", - "patterns": [ - { - "include": "#literalStringEscape" - } - ] - } - ] - }, - "literalStringEscape": { - "match": "\\\\(?:[\\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])" - }, - "literalUnit": { - "match": "\\(\\)", - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - "pathModuleExtended": { - "patterns": [ - { - "include": "#pathModulePrefixExtended" - }, - { - "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", - "name": "entity.name.class constant.numeric" - } - ] - }, - "pathModulePrefixExtended": { - "begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()", - "end": "(?![[:space:]\\.]|$|\\()", - "beginCaptures": { - "0": { - "name": "entity.name.class constant.numeric" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))", - "name": "string.other.link variable.language variable.parameter emphasis" - }, - { - "include": "#structure" - } - ] - }, - { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()", - "beginCaptures": { - "0": { - "name": "keyword strong" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.class constant.numeric" - }, - "2": { - "name": "entity.name.function strong" - }, - "3": { - "name": "string.other.link variable.language variable.parameter emphasis" - } - } - } - ] - }, - "pathModulePrefixExtendedParens": { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))", - "name": "string.other.link variable.language variable.parameter emphasis" - }, - { - "include": "#structure" - } - ] - }, - "pathModulePrefixSimple": { - "begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)", - "end": "(?![[:space:]\\.])", - "beginCaptures": { - "0": { - "name": "entity.name.class constant.numeric" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])", - "beginCaptures": { - "0": { - "name": "keyword strong" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.class constant.numeric" - }, - "2": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - } - } - ] - }, - "pathModuleSimple": { - "patterns": [ - { - "include": "#pathModulePrefixSimple" - }, - { - "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", - "name": "entity.name.class constant.numeric" - } - ] - }, - "pathRecord": { - "patterns": [ - { - "begin": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "end": "(?=[^[:space:]\\.])(?!\\(\\*)", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "((?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])", - "beginCaptures": { - "0": { - "name": "keyword strong" - } - }, - "endCaptures": { - "1": { - "name": "keyword strong" - }, - "2": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModulePrefixSimple" - }, - { - "begin": "\\((?!\\*)", - "end": "\\)", - "captures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - { - "begin": "\\[", - "end": "\\]", - "captures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#pattern" - } - ] - } - ] - } - ] - } - ] - }, - "pattern": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#patternArray" - }, - { - "include": "#patternLazy" - }, - { - "include": "#patternList" - }, - { - "include": "#patternMisc" - }, - { - "include": "#patternModule" - }, - { - "include": "#patternRecord" - }, - { - "include": "#literal" - }, - { - "include": "#patternParens" - }, - { - "include": "#patternType" - }, - { - "include": "#variablePattern" - }, - { - "include": "#termOperator" - } - ] - }, - "patternArray": { - "begin": "\\[\\|", - "end": "\\|\\]", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - }, - "patterns": [ - { - "include": "#pattern" - } - ] - }, - "patternLazy": { - "match": "lazy", - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "patternList": { - "begin": "\\[", - "end": "\\]", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - }, - "patterns": [ - { - "include": "#pattern" - } - ] - }, - "patternMisc": { - "match": "((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b", - "captures": { - "1": { - "name": "string.regexp strong" - }, - "2": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - } - }, - "patternModule": { - "begin": "\\bmodule\\b", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - }, - "patterns": [ - { - "include": "#declModule" - } - ] - }, - "patternParens": { - "begin": "\\((?!\\))", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#pattern" - } - ] - }, - "patternRecord": { - "begin": "\\{", - "end": "\\}", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" - } - }, - "patterns": [ - { - "begin": "(?<=\\{|;)", - "end": "(:)|(=)|(;)|(with)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "4": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModulePrefixSimple" - }, - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", - "end": "(:)|(=)|(;)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(;)|(=)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": ";|(?=\\})", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#pattern" - } - ] - } - ] - }, - "patternType": { - "begin": "\\btype\\b", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "include": "#declType" - } - ] - }, - "pragma": { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#literalNumber" - }, - { - "include": "#literalString" - } - ] - }, - "signature": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#signatureLiteral" - }, - { - "include": "#signatureFunctor" - }, - { - "include": "#pathModuleExtended" - }, - { - "include": "#signatureParens" - }, - { - "include": "#signatureRecovered" - }, - { - "include": "#signatureConstraints" - } - ] - }, - "signatureConstraints": { - "begin": "\\bwith\\b", - "end": "(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", - "end": "\\b(?:(module)|(type))\\b", - "endCaptures": { - "1": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - }, - "2": { - "name": "keyword" - } - } - }, - { - "include": "#declModule" - }, - { - "include": "#declType" - } - ] - }, - "signatureFunctor": { - "patterns": [ - { - "begin": "\\bfunctor\\b", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))", - "end": "(\\(\\))|(\\((?!\\)))", - "endCaptures": { - "1": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - "2": { - "name": "punctuation.definition.tag" - } - } - }, - { - "begin": "(?<=\\()", - "end": "(:)|(\\))", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#variableModule" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#signature" - } - ] - }, - { - "begin": "(?<=\\))", - "end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag" - }, - "2": { - "name": "support.type strong" - } - } - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#signature" - } - ] - } - ] - }, - { - "match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])", - "name": "support.type strong" - } - ] - }, - "signatureLiteral": { - "begin": "\\bsig\\b", - "end": "\\bend\\b", - "captures": { - "0": { - "name": "punctuation.definition.tag emphasis" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#decl" - } - ] - }, - "signatureParens": { - "begin": "\\((?!\\))", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - } - }, - "patterns": [ - { - "include": "#signature" - } - ] - }, - { - "include": "#signature" - } - ] - }, - "signatureRecovered": { - "patterns": [ - { - "begin": "\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))", - "end": "\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)", - "endCaptures": { - "0": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - } - }, - { - "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", - "end": "\\btype\\b", - "endCaptures": { - "0": { - "name": "keyword" - } - } - }, - { - "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", - "end": "\\bof\\b", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - } - }, - { - "begin": "(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#signature" - } - ] - } - ] - } - ] - }, - "structure": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#structureLiteral" - }, - { - "include": "#structureFunctor" - }, - { - "include": "#pathModuleExtended" - }, - { - "include": "#structureParens" - } - ] - }, - "structureFunctor": { - "patterns": [ - { - "begin": "\\bfunctor\\b", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))", - "end": "(\\(\\))|(\\((?!\\)))", - "endCaptures": { - "1": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - }, - "2": { - "name": "punctuation.definition.tag" - } - } - }, - { - "begin": "(?<=\\()", - "end": "(:)|(\\))", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#variableModule" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#signature" - } - ] - }, - { - "begin": "(?<=\\))", - "end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag" - }, - "2": { - "name": "support.type strong" - } - } - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "patterns": [ - { - "include": "#structure" - } - ] - } - ] - }, - { - "match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])", - "name": "support.type strong" - } - ] - }, - "structureLiteral": { - "begin": "\\bstruct\\b", - "end": "\\bend\\b", - "captures": { - "0": { - "name": "punctuation.definition.tag emphasis" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pragma" - }, - { - "include": "#decl" - } - ] - }, - "structureParens": { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#structureUnpack" - }, - { - "include": "#structure" - } - ] - }, - "structureUnpack": { - "begin": "\\bval\\b", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - } - }, - "term": { - "patterns": [ - { - "include": "#termLet" - }, - { - "include": "#termAtomic" - } - ] - }, - "termAtomic": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#termConditional" - }, - { - "include": "#termConstructor" - }, - { - "include": "#termDelim" - }, - { - "include": "#termFor" - }, - { - "include": "#termFunction" - }, - { - "include": "#literal" - }, - { - "include": "#termMatch" - }, - { - "include": "#termMatchRule" - }, - { - "include": "#termPun" - }, - { - "include": "#termOperator" - }, - { - "include": "#termTry" - }, - { - "include": "#termWhile" - }, - { - "include": "#pathRecord" - } - ] - }, - "termConditional": { - "match": "\\b(?:if|then|else)\\b", - "name": "keyword.control" - }, - "termConstructor": { - "patterns": [ - { - "include": "#pathModulePrefixSimple" - }, - { - "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" - } - ] - }, - "termDelim": { - "patterns": [ - { - "begin": "\\((?!\\))", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - { - "begin": "\\bbegin\\b", - "end": "\\bend\\b", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "include": "#attributeIdentifier" - }, - { - "include": "#term" - } - ] - } - ] - }, - "termFor": { - "patterns": [ - { - "begin": "\\bfor\\b", - "end": "\\bdone\\b", - "beginCaptures": { - "0": { - "name": "keyword.control" - } - }, - "endCaptures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])", - "endCaptures": { - "0": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#pattern" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "\\b(?:downto|to)\\b", - "endCaptures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))", - "end": "\\bdo\\b", - "endCaptures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))", - "end": "(?=\\bdone\\b)", - "patterns": [ - { - "include": "#term" - } - ] - } - ] - } - ] - }, - "termFunction": { - "match": "\\b(?:(fun)|(function))\\b", - "captures": { - "1": { - "name": "storage.type" - }, - "2": { - "name": "storage.type" - } - } - }, - "termLet": { - "patterns": [ - { - "begin": "(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+", - "end": "\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - }, - "2": { - "name": "storage.type markup.underline" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)", - "end": "\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "1": { - "name": "storage.type markup.underline" - } - }, - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" - }, - "2": { - "name": "storage.type markup.underline" - } - }, - "patterns": [ - { - "include": "#bindTerm" - } - ] - } - ] - }, - "termMatch": { - "begin": "\\bmatch\\b", - "end": "\\bwith\\b", - "captures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - "termMatchRule": { - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])", - "endCaptures": { - "1": { - "name": "support.type strong" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attributeIdentifier" - }, - { - "include": "#pattern" - } - ] - }, - { - "begin": "(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])", - "beginCaptures": { - "0": { - "name": "support.type strong" - } - }, - "endCaptures": { - "1": { - "name": "support.type strong" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#pattern" - }, - { - "begin": "\\bwhen\\b", - "end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - } - ] - } - ] - }, - "termOperator": { - "patterns": [ - { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "beginCaptures": { - "0": { - "name": "keyword" - } - }, - "endCaptures": { - "0": { - "name": "entity.name.function" - } - } - }, - { - "match": "<-", - "captures": { - "0": { - "name": "keyword.control strong" - } - } - }, - { - "match": "(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)", - "captures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "2": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - } - }, - { - "match": "\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b", - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - ] - }, - "termPun": { - "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])", - "end": ":|(?=[^[:space:]:])", - "applyEndPatternLast": true, - "beginCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "endCaptures": { - "0": { - "name": "keyword" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "endCaptures": { - "0": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - } - } - ] - }, - "termTry": { - "begin": "\\btry\\b", - "end": "\\bwith\\b", - "captures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - "termWhile": { - "patterns": [ - { - "begin": "\\bwhile\\b", - "end": "\\bdone\\b", - "beginCaptures": { - "0": { - "name": "keyword.control" - } - }, - "endCaptures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "begin": "(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))", - "end": "\\bdo\\b", - "endCaptures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))", - "end": "(?=\\bdone\\b)", - "patterns": [ - { - "include": "#term" - } - ] - } - ] - } - ] - }, - "type": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "\\bnonrec\\b", - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - { - "include": "#pathModulePrefixExtended" - }, - { - "include": "#typeLabel" - }, - { - "include": "#typeObject" - }, - { - "include": "#typeOperator" - }, - { - "include": "#typeParens" - }, - { - "include": "#typePolymorphicVariant" - }, - { - "include": "#typeRecord" - }, - { - "include": "#typeConstructor" - } - ] - }, - "typeConstructor": { - "patterns": [ - { - "begin": "(_)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])", - "end": "(?=\\((?!\\*)|\\*|:|,|=|\\.|>|-|\\{|\\[|\\+|\\}|\\)|\\]|;|\\|)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", - "beginCaptures": { - "1": { - "name": "comment constant.regexp meta.separator.markdown" - }, - "3": { - "name": "string.other.link variable.language variable.parameter emphasis strong emphasis" - }, - "4": { - "name": "keyword.control emphasis" - } - }, - "endCaptures": { - "1": { - "name": "entity.name.function strong" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModulePrefixExtended" - } - ] - } - ] - }, - "typeLabel": { - "patterns": [ - { - "begin": "(\\??)((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", - "captures": { - "1": { - "name": "keyword strong emphasis" - }, - "2": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - }, - "3": { - "name": "keyword" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "typeModule": { - "begin": "\\bmodule\\b", - "end": "(?=\\))", - "beginCaptures": { - "0": { - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" - } - }, - "patterns": [ - { - "include": "#pathModuleExtended" - }, - { - "include": "#signatureConstraints" - } - ] - }, - "typeObject": { - "begin": "<", - "end": ">", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" - } - }, - "patterns": [ - { - "begin": "(?<=<|;)", - "end": "(:)|(?=>)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "4": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModulePrefixSimple" - }, - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(;)|(?=>)", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "typeOperator": { - "patterns": [ - { - "match": ",|;|[#\\-:!?.@*/&%^+<=>|~$]+", - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - } - ] - }, - "typeParens": { - "begin": "\\(", - "end": "\\)", - "captures": { - "0": { - "name": "punctuation.definition.tag" - } - }, - "patterns": [ - { - "match": ",", - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - { - "include": "#typeModule" - }, - { - "include": "#type" - } - ] - }, - "typePolymorphicVariant": { - "begin": "\\[", - "end": "\\]", - "patterns": [] - }, - "typeRecord": { - "begin": "\\{", - "end": "\\}", - "captures": { - "0": { - "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" - } - }, - "patterns": [ - { - "begin": "(?<=\\{|;)", - "end": "(:)|(=)|(;)|(with)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "4": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pathModulePrefixSimple" - }, - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", - "end": "(:)|(=)|(;)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" - }, - "2": { - "name": "support.type strong" - }, - "3": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", - "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": "(;)|(=)|(?=\\})", - "endCaptures": { - "1": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - }, - "2": { - "name": "support.type strong" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", - "end": ";|(?=\\})", - "endCaptures": { - "0": { - "name": "variable.other.class.js message.error variable.interpolation string.regexp" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "variableModule": { - "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", - "captures": { - "0": { - "name": "string.other.link variable.language variable.parameter emphasis" - } - } - }, - "variablePattern": { - "match": "(\\b_\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))", - "captures": { - "1": { - "name": "comment constant.regexp meta.separator.markdown" - }, - "2": { - "name": "string.other.link variable.language variable.parameter emphasis" - } - } - } - } -} diff --git a/lib/grammars/pascal.tmLanguage.json b/lib/grammars/pascal.tmLanguage.json deleted file mode 100644 index c3915cf..0000000 --- a/lib/grammars/pascal.tmLanguage.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "fileTypes": ["pas", "p", "pp", "dfm", "fmx", "dpr", "dpk", "lfm", "lpr"], - "keyEquivalent": "^~P", - "name": "pascal", - "patterns": [ - { - "match": "\\b(?i:(absolute|abstract|all|and_then|array|as|asm|attribute|begin|bindable|case|class|const|contains|default|div|else|end|except|export|exports|external|far|file|finalization|finally|forward|generic|goto|if|implements|import|in|index|inherited|initialization|interrupt|is|label|library|mod|module|name|near|not|object|of|on|only|operator|or_else|otherwise|out|override|package|packed|pow|private|program|protected|public|published|interface|implementation|qualified|read|record|resident|requires|resourcestring|restricted|segment|set|shl|shr|specialize|stored|strict|then|threadvar|to|try|type|unit|uses|var|view|virtual|dynamic|overload|reintroduce|with|write|xor))\\b", - "name": "keyword.pascal" - }, - { - "captures": { - "1": { - "name": "storage.type.prototype.pascal" - }, - "2": { - "name": "entity.name.function.prototype.pascal" - } - }, - "match": "\\b(?i:(function|procedure|constructor|destructor))\\b\\s+(\\w+(\\.\\w+)?)(\\(.*?\\))?;\\s*(?=(?i:attribute|forward|external))", - "name": "meta.function.prototype.pascal" - }, - { - "captures": { - "1": { - "name": "storage.type.function.pascal" - }, - "2": { - "name": "entity.name.function.pascal" - } - }, - "match": "\\b(?i:(function|procedure|constructor|destructor|property|read|write))\\b\\s+(\\w+(\\.\\w+)?)", - "name": "meta.function.pascal" - }, - { - "match": "\\b(?i:(self|result))\\b", - "name": "token.variable" - }, - { - "match": "\\b(?i:(and|or))\\b", - "name": "keyword.operator.pascal" - }, - { - "match": "\\b(?i:(break|continue|exit|abort|while|do|downto|for|raise|repeat|until))\\b", - "name": "keyword.control.pascal" - }, - { - "begin": "\\{\\$", - "captures": { - "0": { - "name": "string.regexp" - } - }, - "end": "\\}", - "name": "string.regexp" - }, - { - "match": "\\b(?i:(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint64|variant|widechar|widestring|word|wordbool))\\b", - "name": "storage.support.type.pascal" - }, - { - "match": "\\b(\\d+)|(\\d*\\.\\d+([eE][\\-+]?\\d+)?)\\b", - "name": "constant.numeric.pascal" - }, - { - "match": "\\$[0-9a-fA-F]{1,16}\\b", - "name": "constant.numeric.hex.pascal" - }, - { - "match": "\\b(?i:(true|false|nil))\\b", - "name": "constant.language.pascal" - }, - { - "match": "\\b(?i:(Assert))\\b", - "name": "keyword.control" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.pascal" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.pascal" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.pascal.two" - } - ] - }, - { - "begin": "\\(\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.pascal" - } - }, - "end": "\\*\\)", - "name": "comment.block.pascal.one" - }, - { - "begin": "\\{(?!\\$)", - "captures": { - "0": { - "name": "punctuation.definition.comment.pascal" - } - }, - "end": "\\}", - "name": "comment.block.pascal.two" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.pascal" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.pascal" - } - }, - "name": "string.quoted.single.pascal", - "patterns": [ - { - "match": "''", - "name": "constant.character.escape.apostrophe.pascal" - } - ] - }, - { - "match": "\\#\\d+", - "name": "string.other.pascal" - } - ], - "scopeName": "source.pascal", - "uuid": "F42FA544-6B1C-11D9-9517-000D93589AF6" -} diff --git a/lib/grammars/perl.tmLanguage.json b/lib/grammars/perl.tmLanguage.json deleted file mode 100644 index 8639b4e..0000000 --- a/lib/grammars/perl.tmLanguage.json +++ /dev/null @@ -1,2977 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/perl.tmbundle/commit/a85927a902d6e5d7805f56a653f324d34dfad53a", - "name": "perl", - "scopeName": "source.perl", - "comment": "\n\tTODO:\tInclude RegExp syntax\n", - "patterns": [ - { - "include": "#line_comment" - }, - { - "begin": "^(?==[a-zA-Z]+)", - "end": "^(=cut\\b.*$)", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#pod" - } - ] - } - }, - "name": "comment.block.documentation.perl", - "patterns": [ - { - "include": "#pod" - } - ] - }, - { - "include": "#variable" - }, - { - "applyEndPatternLast": 1, - "begin": "\\b(?=qr\\s*[^\\s\\w])", - "comment": "string.regexp.compile.perl", - "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.compile.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(qr)\\s*\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\}", - "name": "string.regexp.compile.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\]", - "name": "string.regexp.compile.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": ">", - "name": "string.regexp.compile.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\)", - "name": "string.regexp.compile.nested_parens.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w\\\\'\\{\\[\\(\\<])" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "'", - "name": "string.regexp.compile.single-quote.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(qr)\\s*([^\\s\\w'\\{\\[\\(\\<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\2", - "name": "string.regexp.compile.simple-delimiter.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])", - "comment": "string.regexp.find-m.perl", - "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.find-m.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(m)\\s*\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\}", - "name": "string.regexp.find-m.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - { - "begin": "(m)\\s*\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\]", - "name": "string.regexp.find-m.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - { - "begin": "(m)\\s*<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": ">", - "name": "string.regexp.find-m.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - { - "begin": "(m)\\s*\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\)", - "name": "string.regexp.find-m.nested_parens.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - { - "begin": "(m)\\s*'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "'", - "name": "string.regexp.find-m.single-quote.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\G(?<!\\{|\\+|\\-)(m)(?!_)\\s*([^\\sa-zA-Z0-9'\\{\\[\\(\\<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\2", - "name": "string.regexp.find-m.simple-delimiter.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\sa-zA-Z0-9'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "begin": "\\[", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.end.perl" - } - }, - "name": "constant.other.character-class.set.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "include": "#nested_parens_interpolated" - } - ] - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))", - "comment": "string.regexp.replace.perl", - "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.replace.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(s)\\s*\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\}", - "name": "string.regexp.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces" - } - ] - }, - { - "begin": "(s)\\s*\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\]", - "name": "string.regexp.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets" - } - ] - }, - { - "begin": "(s)\\s*<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": ">", - "name": "string.regexp.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_ltgt" - } - ] - }, - { - "begin": "(s)\\s*\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\)", - "name": "string.regexp.nested_parens.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens" - } - ] - }, - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\}", - "name": "string.regexp.format.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - { - "begin": "\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\]", - "name": "string.regexp.format.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - { - "begin": "<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": ">", - "name": "string.regexp.format.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\)", - "name": "string.regexp.format.nested_parens.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - { - "begin": "'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "'", - "name": "string.regexp.format.single_quote.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "([^\\s\\w\\[({<;])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\1", - "name": "string.regexp.format.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "match": "\\s+" - } - ] - }, - { - "begin": "\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))", - "comment": "string.regexp.replaceXXX", - "end": "((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.replace.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(s\\s*)([^\\sa-zA-Z0-9\\[({<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "(?=\\2)", - "name": "string.regexp.replaceXXX.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "'", - "name": "string.regexp.replaceXXX.format.single_quote.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl.perl" - } - ] - }, - { - "begin": "([^\\sa-zA-Z0-9\\[({<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\1", - "name": "string.regexp.replaceXXX.format.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - } - ] - }, - { - "begin": "\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))", - "comment": "string.regexp.replace.extended", - "end": "((([egimosradlupc]*x[egimosradlupc]*)))\\b", - "endCaptures": { - "1": { - "name": "string.regexp.replace.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(s)\\s*(.)", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "(?=\\2)", - "name": "string.regexp.replace.extended.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "'(?=[egimosradlupc]*x[egimosradlupc]*)\\b", - "name": "string.regexp.replace.extended.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(.)", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\b", - "name": "string.regexp.replace.extended.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - } - ] - }, - { - "begin": "(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))", - "beginCaptures": { - "1": { - "name": "string.regexp.find.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - } - }, - "contentName": "string.regexp.find.perl", - "end": "((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.find.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "comment": "This is to prevent thinks like /foo$/ to treat $/ as a variable", - "match": "\\$(?=\\/)", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "captures": { - "1": { - "name": "constant.other.key.perl" - } - }, - "match": "\\b(\\w+)\\s*(?==>)" - }, - { - "match": "(?<={)\\s*\\w+\\s*(?=})", - "name": "constant.other.bareword.perl" - }, - { - "captures": { - "1": { - "name": "keyword.control.perl" - }, - "2": { - "name": "entity.name.type.class.perl" - } - }, - "match": "^\\s*(package)\\s+([^\\s;]+)", - "name": "meta.class.perl" - }, - { - "captures": { - "1": { - "name": "storage.type.sub.perl" - }, - "2": { - "name": "entity.name.function.perl" - }, - "3": { - "name": "storage.type.method.perl" - } - }, - "match": "\\b(sub)(?:\\s+([-a-zA-Z0-9_]+))?\\s*(?:\\([\\$\\@\\*;]*\\))?[^\\w\\{]", - "name": "meta.function.perl" - }, - { - "captures": { - "1": { - "name": "entity.name.function.perl" - }, - "2": { - "name": "punctuation.definition.parameters.perl" - }, - "3": { - "name": "variable.parameter.function.perl" - } - }, - "match": "^\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\b", - "name": "meta.function.perl" - }, - { - "begin": "^(?=(\\t| {4}))", - "end": "(?=[^\\t\\s])", - "name": "meta.leading-tabs", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.odd-tab" - }, - "2": { - "name": "meta.even-tab" - } - }, - "match": "(\\t| {4})(\\t| {4})?" - } - ] - }, - { - "captures": { - "1": { - "name": "support.function.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "5": { - "name": "punctuation.definition.string.perl" - }, - "8": { - "name": "punctuation.definition.string.perl" - } - }, - "match": "\\b(tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)", - "name": "string.regexp.replace.perl" - }, - { - "match": "\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\b", - "name": "constant.language.perl" - }, - { - "begin": "\\b(__DATA__|__END__)\\n?", - "beginCaptures": { - "1": { - "name": "constant.language.perl" - } - }, - "contentName": "comment.block.documentation.perl", - "end": "\\z", - "patterns": [ - { - "include": "#pod" - } - ] - }, - { - "match": "(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b", - "name": "keyword.control.perl" - }, - { - "match": "\\b(my|our|local)\\b", - "name": "storage.modifier.perl" - }, - { - "match": "(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b", - "name": "keyword.operator.filetest.perl" - }, - { - "match": "\\b(and|or|xor|as|not)\\b", - "name": "keyword.operator.logical.perl" - }, - { - "match": "(<=>|=>|->)", - "name": "keyword.operator.comparison.perl" - }, - { - "include": "#heredoc" - }, - { - "begin": "\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx.single-quote.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.double.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q.perl" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.single.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqq\\s*\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-paren.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-brace.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-bracket.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_ltgt_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqx\\s*\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-paren.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-brace.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-bracket.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_ltgt_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqw?\\s*\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-paren.perl", - "patterns": [ - { - "include": "#nested_parens" - } - ] - }, - { - "begin": "\\bqw?\\s*\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-brace.perl", - "patterns": [ - { - "include": "#nested_braces" - } - ] - }, - { - "begin": "\\bqw?\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-bracket.perl", - "patterns": [ - { - "include": "#nested_brackets" - } - ] - }, - { - "begin": "\\bqw?\\s*\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-ltgt.perl", - "patterns": [ - { - "include": "#nested_ltgt" - } - ] - }, - { - "begin": "^__\\w+__", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.unquoted.program-block.perl" - }, - { - "begin": "\\b(format)\\s+(\\w+)\\s*=", - "beginCaptures": { - "1": { - "name": "support.function.perl" - }, - "2": { - "name": "entity.name.function.format.perl" - } - }, - "end": "^\\.\\s*$", - "name": "meta.format.perl", - "patterns": [ - { - "include": "#line_comment" - }, - { - "include": "#variable" - } - ] - }, - { - "captures": { - "1": { - "name": "support.function.perl" - }, - "2": { - "name": "entity.name.function.perl" - } - }, - "match": "\\b(x)\\s*(\\d+)\\b" - }, - { - "match": "\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b", - "name": "support.function.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.section.scope.begin.perl" - }, - "2": { - "name": "punctuation.section.scope.end.perl" - } - }, - "comment": "Match empty brackets for ↩ snippet", - "match": "(\\{)(\\})" - }, - { - "captures": { - "1": { - "name": "punctuation.section.scope.begin.perl" - }, - "2": { - "name": "punctuation.section.scope.end.perl" - } - }, - "comment": "Match empty parenthesis for ↩ snippet", - "match": "(\\()(\\))" - } - ], - "repository": { - "escaped_char": { - "patterns": [ - { - "match": "\\\\\\d+", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\c[^\\s\\\\]", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\g(?:\\{(?:\\w*|-\\d+)\\}|\\d+)", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\k(?:\\{\\w*\\}|<\\w*>|'\\w*')", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\N\\{[^\\}]*\\}", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\o\\{\\d*\\}", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\(?:p|P)(?:\\{\\w*\\}|P)", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\.", - "name": "constant.character.escape.perl" - } - ] - }, - "heredoc": { - "patterns": [ - { - "begin": "((((<<(~)?) *')(HTML)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "text.html.basic", - "patterns": [ - { - "include": "text.html.basic" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *')(XML)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.xml", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "text.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *')(CSS)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.css", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *')(JAVASCRIPT)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.js", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *')(SQL)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.sql", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.sql", - "patterns": [ - { - "include": "source.sql" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *')(POSTSCRIPT)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.postscript", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.postscript", - "patterns": [ - { - "include": "source.postscript" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *')([^']*)(')))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - } - }, - { - "begin": "((((<<(~)?) *\\\\)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.raw.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.raw.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - } - }, - { - "begin": "((((<<(~)?) *\")(HTML)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "text.html.basic", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.html.basic" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *\")(XML)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.xml", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "text.xml", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.xml" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *\")(CSS)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.css", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.css", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.css" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *\")(JAVASCRIPT)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.js", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.js", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *\")(SQL)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.sql", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.sql", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.sql" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *\")(POSTSCRIPT)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.postscript", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.postscript", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.postscript" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *\")([^\"]*)(\")))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "((((<<(~)?) *)(HTML)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "text.html.basic", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.html.basic" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *)(XML)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.xml", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "text.xml", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.xml" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *)(CSS)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.css", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.css", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.css" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *)(JAVASCRIPT)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.js", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.js", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *)(SQL)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.sql", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.sql", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.sql" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *)(POSTSCRIPT)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "meta.embedded.block.postscript", - "patterns": [ - { - "begin": "^", - "end": "\\n", - "name": "source.postscript", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.postscript" - } - ] - } - ] - }, - { - "begin": "((((<<(~)?) *)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.interpolated.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "((((<<(~)?) *`)([^`]*)(`)))(.*)\\n?", - "beginCaptures": { - "1": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "2": { - "name": "punctuation.definition.string.begin.perl" - }, - "3": { - "name": "punctuation.definition.delimiter.begin.perl" - }, - "7": { - "name": "punctuation.definition.delimiter.end.perl" - }, - "8": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.shell.perl", - "end": "^((?!\\5)\\s+)?((\\6))$", - "endCaptures": { - "2": { - "name": "string.unquoted.heredoc.interpolated.perl" - }, - "3": { - "name": "punctuation.definition.string.end.perl" - } - }, - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - } - ] - }, - "line_comment": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.perl" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.perl" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.perl" - } - ] - } - ] - }, - "nested_braces": { - "begin": "\\{", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces" - } - ] - }, - "nested_braces_interpolated": { - "begin": "\\{", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - "nested_brackets": { - "begin": "\\[", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets" - } - ] - }, - "nested_brackets_interpolated": { - "begin": "\\[", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - "nested_ltgt": { - "begin": "<", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": ">", - "patterns": [ - { - "include": "#nested_ltgt" - } - ] - }, - "nested_ltgt_interpolated": { - "begin": "<", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": ">", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - "nested_parens": { - "begin": "\\(", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens" - } - ] - }, - "nested_parens_interpolated": { - "begin": "\\(", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\)", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - "pod": { - "patterns": [ - { - "match": "^=(pod|back|cut)\\b", - "name": "storage.type.class.pod.perl" - }, - { - "begin": "^(=begin)\\s+(html)\\s*$", - "beginCaptures": { - "1": { - "name": "storage.type.class.pod.perl" - }, - "2": { - "name": "variable.other.pod.perl" - } - }, - "contentName": "text.embedded.html.basic", - "end": "^(=end)\\s+(html)|^(?==cut)", - "endCaptures": { - "1": { - "name": "storage.type.class.pod.perl" - }, - "2": { - "name": "variable.other.pod.perl" - } - }, - "name": "meta.embedded.pod.perl", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.class.pod.perl" - }, - "2": { - "name": "variable.other.pod.perl", - "patterns": [ - { - "include": "#pod-formatting" - } - ] - } - }, - "match": "^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)" - }, - { - "include": "#pod-formatting" - } - ] - }, - "pod-formatting": { - "patterns": [ - { - "captures": { - "1": { - "name": "markup.italic.pod.perl" - }, - "2": { - "name": "markup.italic.pod.perl" - } - }, - "match": "I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)", - "name": "entity.name.type.instance.pod.perl" - }, - { - "captures": { - "1": { - "name": "markup.bold.pod.perl" - }, - "2": { - "name": "markup.bold.pod.perl" - } - }, - "match": "B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)", - "name": "entity.name.type.instance.pod.perl" - }, - { - "captures": { - "1": { - "name": "markup.raw.pod.perl" - }, - "2": { - "name": "markup.raw.pod.perl" - } - }, - "match": "C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)", - "name": "entity.name.type.instance.pod.perl" - }, - { - "captures": { - "1": { - "name": "markup.underline.link.hyperlink.pod.perl" - } - }, - "match": "L<([^>]+)>", - "name": "entity.name.type.instance.pod.perl" - }, - { - "match": "[EFSXZ]<[^>]*>", - "name": "entity.name.type.instance.pod.perl" - } - ] - }, - "variable": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)&(?![A-Za-z0-9_])", - "name": "variable.other.regexp.match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)`(?![A-Za-z0-9_])", - "name": "variable.other.regexp.pre-match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)'(?![A-Za-z0-9_])", - "name": "variable.other.regexp.post-match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)\\+(?![A-Za-z0-9_])", - "name": "variable.other.regexp.last-paren-match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)\"(?![A-Za-z0-9_])", - "name": "variable.other.readwrite.list-separator.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)0(?![A-Za-z0-9_])", - "name": "variable.other.predefined.program-name.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])", - "name": "variable.other.predefined.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)[0-9]+(?![A-Za-z0-9_])", - "name": "variable.other.subpattern.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b", - "name": "variable.other.readwrite.global.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - }, - "2": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})", - "name": "variable.other.readwrite.global.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "([\\$\\@\\%](#)?)[0-9_]\\b", - "name": "variable.other.readwrite.global.special.perl" - } - ] - } - } -} diff --git a/lib/grammars/php-html.tmLanguage.json b/lib/grammars/php-html.tmLanguage.json deleted file mode 100644 index 0cea77f..0000000 --- a/lib/grammars/php-html.tmLanguage.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/KapitanOczywisty/language-php/blob/master/grammars/html.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/KapitanOczywisty/language-php/commit/ff64523c94c014d68f5dec189b05557649c5872a", - "name": "php-html", - "scopeName": "text.html.php", - "injections": { - "L:meta.embedded.php.blade": { - "patterns": [ - { - "include": "text.html.basic" - }, - { - "include": "text.html.php.blade#blade" - } - ] - }, - "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))": { - "patterns": [ - { - "include": "#php-tag" - } - ] - } - }, - "patterns": [ - { - "begin": "\\A#!", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "name": "comment.line.shebang.php" - }, - { - "include": "text.html.derivative" - } - ], - "repository": { - "php-tag": { - "patterns": [ - { - "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.block.php", - "contentName": "source.php", - "patterns": [ - { - "include": "source.php" - } - ] - }, - { - "begin": "<\\?(?i:php|=)?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.line.php", - "contentName": "source.php", - "patterns": [ - { - "include": "source.php" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/php.tmLanguage.json b/lib/grammars/php.tmLanguage.json deleted file mode 100644 index 7dc24a3..0000000 --- a/lib/grammars/php.tmLanguage.json +++ /dev/null @@ -1,4030 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/KapitanOczywisty/language-php/blob/master/grammars/php.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/KapitanOczywisty/language-php/commit/5e8f000cb5a20f44f7a7a89d07ad0774031c53f3", - "scopeName": "source.php", - "patterns": [ - { - "include": "#attribute" - }, - { - "include": "#comments" - }, - { - "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)(?=\\s*;)", - "name": "meta.namespace.php", - "captures": { - "1": { - "name": "keyword.other.namespace.php" - }, - "2": { - "name": "entity.name.type.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - } - }, - { - "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.php" - } - }, - "end": "(?<=})|(?=\\?>)", - "name": "meta.namespace.php", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?i)[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+", - "name": "entity.name.type.namespace.php", - "captures": { - "0": { - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - } - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.namespace.begin.bracket.curly.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.namespace.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "[^\\s]+", - "name": "invalid.illegal.identifier.php" - } - ] - }, - { - "match": "\\s+(?=use\\b)" - }, - { - "begin": "(?i)\\buse\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.use.php" - } - }, - "end": "(?<=})|(?=;)|(?=\\?>)", - "name": "meta.use.php", - "patterns": [ - { - "match": "\\b(const|function)\\b", - "name": "storage.type.${1:/downcase}.php" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.use.begin.bracket.curly.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.use.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "#scope-resolution" - }, - { - "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "name": "storage.modifier.php" - }, - "3": { - "name": "entity.other.alias.php" - } - } - }, - { - "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "patterns": [ - { - "match": "^(?:final|abstract|public|private|protected|static)$", - "name": "storage.modifier.php" - }, - { - "match": ".+", - "name": "entity.other.alias.php" - } - ] - } - } - }, - { - "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-insteadof.php" - }, - "2": { - "name": "support.class.php" - } - } - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "include": "#use-inner" - } - ] - }, - { - "include": "#use-inner" - } - ] - }, - { - "begin": "(?ix)\n\\b(trait)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "beginCaptures": { - "1": { - "name": "storage.type.trait.php" - }, - "2": { - "name": "entity.name.type.trait.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.trait.end.bracket.curly.php" - } - }, - "name": "meta.trait.php", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.trait.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "contentName": "meta.trait.body.php", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?ix)\n\\b(interface)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "beginCaptures": { - "1": { - "name": "storage.type.interface.php" - }, - "2": { - "name": "entity.name.type.interface.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.interface.end.bracket.curly.php" - } - }, - "name": "meta.interface.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#interface-extends" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.interface.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "contentName": "meta.interface.body.php", - "patterns": [ - { - "include": "#class-constant" - }, - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?ix)\n\\b(enum)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?: \\s* (:) \\s* (int | string) \\b )?", - "beginCaptures": { - "1": { - "name": "storage.type.enum.php" - }, - "2": { - "name": "entity.name.type.enum.php" - }, - "3": { - "name": "keyword.operator.return-value.php" - }, - "4": { - "name": "keyword.other.type.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.enum.end.bracket.curly.php" - } - }, - "name": "meta.enum.php", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#class-implements" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.enum.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "contentName": "meta.enum.body.php", - "patterns": [ - { - "match": "(?i)\\b(case)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "captures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "constant.enum.php" - } - } - }, - { - "include": "#class-constant" - }, - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?ix)\n(?:\n \\b((?:(?:final|abstract|readonly)\\s+)*)(class)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n |\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*(?:(readonly)\\s+)?\\b(class)\\b # anonymous class\n)", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract", - "name": "storage.modifier.${0:/downcase}.php" - }, - { - "match": "readonly", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.class.php" - }, - "3": { - "name": "entity.name.type.class.php" - }, - "4": { - "name": "keyword.other.new.php" - }, - "5": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "storage.modifier.php" - }, - "7": { - "name": "storage.type.class.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.class.end.bracket.curly.php" - } - }, - "name": "meta.class.php", - "patterns": [ - { - "begin": "(?<=class)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#class-extends" - }, - { - "include": "#class-implements" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.class.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "contentName": "meta.class.body.php", - "patterns": [ - { - "include": "#class-constant" - }, - { - "include": "$self" - } - ] - } - ] - }, - { - "include": "#match_statement" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\s*\\b(yield\\s+from)\\b", - "captures": { - "1": { - "name": "keyword.control.yield-from.php" - } - } - }, - { - "match": "(?x)\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b", - "captures": { - "1": { - "name": "keyword.control.${1:/downcase}.php" - } - } - }, - { - "begin": "(?i)\\b((?:require|include)(?:_once)?)(\\s+|(?=\\())", - "beginCaptures": { - "1": { - "name": "keyword.control.import.include.php" - } - }, - "end": "(?=\\s|;|$|\\?>)", - "name": "meta.include.php", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\b(catch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.exception.catch.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "name": "meta.catch.php", - "patterns": [ - { - "match": "(?xi)\n([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)*) # union or single exception class\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)? # Variable", - "captures": { - "1": { - "patterns": [ - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.class.exception.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - } - } - ] - }, - { - "match": "\\b(catch|try|throw|exception|finally)\\b", - "name": "keyword.control.exception.php" - }, - { - "begin": "(?i)\\b(function)\\s*(?=&?\\s*\\()", - "beginCaptures": { - "1": { - "name": "storage.type.function.php" - } - }, - "end": "(?=\\s*{)", - "name": "meta.function.closure.php", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(&)?\\s*(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.reference.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "begin": "(?i)(use)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.function.use.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "name": "meta.function.closure.use.php", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=,|\\))" - } - ] - }, - { - "match": "(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:{|/[/*]|\\#|$))", - "captures": { - "1": { - "name": "keyword.operator.return-value.php" - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - } - } - } - ] - }, - { - "begin": "(?i)\\b(fn)\\s*(?=&?\\s*\\()", - "beginCaptures": { - "1": { - "name": "storage.type.function.php" - } - }, - "end": "=>", - "endCaptures": { - "0": { - "name": "punctuation.definition.arrow.php" - } - }, - "name": "meta.function.closure.php", - "patterns": [ - { - "begin": "(?:(&)\\s*)?(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.reference.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "match": "(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:=>|/[/*]|\\#|$))", - "captures": { - "1": { - "name": "keyword.operator.return-value.php" - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - } - } - } - ] - }, - { - "begin": "(?x)\n((?:(?:final|abstract|public|private|protected)\\s+)*)\n(function)\\s+(__construct)\n\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|private|protected", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.function.php" - }, - "3": { - "name": "support.function.constructor.php" - }, - "4": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "(?xi)\n(\\)) \\s* ( : \\s*\n (?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{10ffff}\\\\\\s\\|&()]+ (?<!\\s)\n)?\n(?=\\s*(?:{|/[/*]|\\#|$|;))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - }, - "2": { - "name": "invalid.illegal.return-type.php" - } - }, - "name": "meta.function.php", - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "(?xi)\n((?:(?:public|private|protected|readonly)(?:\\s+|(?=\\?)))++)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "public|private|protected|readonly", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "storage.modifier.reference.php" - }, - "5": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "name": "meta.function.parameter.promoted-property.php", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - { - "include": "#function-parameters" - } - ] - }, - { - "begin": "(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))\n |(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|private|protected|static", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.function.php" - }, - "3": { - "name": "support.function.magic.php" - }, - "4": { - "name": "storage.modifier.reference.php" - }, - "5": { - "name": "entity.name.function.php" - }, - "6": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "(?xi)\n(\\)) (?: \\s* (:) \\s* (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) )?\n(?=\\s*(?:{|/[/*]|\\#|$|;))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - }, - "2": { - "name": "keyword.operator.return-value.php" - }, - "3": { - "patterns": [ - { - "match": "\\b(static)\\b", - "name": "storage.type.php" - }, - { - "match": "\\b(never)\\b", - "name": "keyword.other.type.never.php" - }, - { - "include": "#php-types" - } - ] - } - }, - "name": "meta.function.php", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "match": "(?xi)\n((?:(?:public|private|protected|static|readonly)(?:\\s+|(?=\\?)))++) # At least one modifier\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)?\n\\s+ ((\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name", - "captures": { - "1": { - "patterns": [ - { - "match": "public|private|protected|static|readonly", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - } - }, - { - "include": "#invoke-call" - }, - { - "include": "#scope-resolution" - }, - { - "include": "#variables" - }, - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - }, - "3": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "match": "(array)(\\()(\\))", - "name": "meta.array.empty.php" - }, - { - "begin": "(array)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))", - "captures": { - "1": { - "name": "punctuation.definition.storage-type.begin.bracket.round.php" - }, - "2": { - "name": "storage.type.php" - }, - "3": { - "name": "punctuation.definition.storage-type.end.bracket.round.php" - } - } - }, - { - "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b", - "name": "storage.type.php" - }, - { - "match": "(?i)\\b(global|abstract|const|final|private|protected|public|static)\\b", - "name": "storage.modifier.php" - }, - { - "include": "#object" - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "match": ":", - "name": "punctuation.terminator.statement.php" - }, - { - "include": "#heredoc" - }, - { - "include": "#numbers" - }, - { - "match": "(?i)\\bclone\\b", - "name": "keyword.other.clone.php" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.spread.php" - }, - { - "match": "\\.=?", - "name": "keyword.operator.string.php" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "captures": { - "1": { - "name": "keyword.operator.assignment.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "storage.modifier.reference.php" - } - }, - "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])" - }, - { - "match": "@", - "name": "keyword.operator.error-control.php" - }, - { - "match": "===|==|!==|!=|<>", - "name": "keyword.operator.comparison.php" - }, - { - "match": "=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "<=>|<=|>=|<|>", - "name": "keyword.operator.comparison.php" - }, - { - "match": "\\-\\-|\\+\\+", - "name": "keyword.operator.increment-decrement.php" - }, - { - "match": "\\-|\\+|\\*\\*?|/|%", - "name": "keyword.operator.arithmetic.php" - }, - { - "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", - "name": "keyword.operator.logical.php" - }, - { - "include": "#function-call" - }, - { - "match": "<<|>>|~|\\^|&|\\|", - "name": "keyword.operator.bitwise.php" - }, - { - "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.php" - } - }, - "end": "(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{10ffff}])", - "patterns": [ - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - { - "include": "#instantiation" - }, - { - "captures": { - "1": { - "name": "keyword.control.goto.php" - }, - "2": { - "name": "support.other.php" - } - }, - "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)" - }, - { - "captures": { - "1": { - "name": "entity.name.goto-label.php" - } - }, - "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*(?<!default))\\s*:(?!:)" - }, - { - "include": "#string-backtick" - }, - { - "include": "#ternary_shorthand" - }, - { - "include": "#null_coalescing" - }, - { - "include": "#ternary_expression" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.curly.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.php" - } - }, - "end": "\\]|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#constants" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - } - ], - "repository": { - "attribute-name": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.attribute.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "match": "(?xi)\n(\\\\)?\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\b", - "name": "support.attribute.builtin.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.attribute.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "attribute": { - "begin": "\\#\\[", - "end": "\\]", - "name": "meta.attribute.php", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "([a-zA-Z0-9_\\x{7f}-\\x{10ffff}\\\\]+)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#attribute-name" - } - ] - }, - "2": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#attribute-name" - } - ] - }, - "class-builtin": { - "patterns": [ - { - "match": "(?xi)\n(\\\\)?\\b\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b", - "name": "support.class.builtin.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - } - ] - }, - "class-name": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "inheritance-single": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", - "end": "(?i)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "name": "entity.other.inherited-class.php" - } - ] - }, - "class-extends": { - "patterns": [ - { - "begin": "(?i)(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.extends.php" - } - }, - "end": "(?i)(?=[^A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inheritance-single" - } - ] - } - ] - }, - "interface-extends": { - "patterns": [ - { - "begin": "(?i)(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.extends.php" - } - }, - "end": "(?i)(?={)", - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.classes.php" - }, - { - "include": "#inheritance-single" - } - ] - } - ] - }, - "class-implements": { - "patterns": [ - { - "begin": "(?i)(implements)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.php" - } - }, - "end": "(?i)(?={)", - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.classes.php" - }, - { - "include": "#inheritance-single" - } - ] - } - ] - }, - "class-constant": { - "patterns": [ - { - "match": "(?i)\\b(const)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", - "captures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "name": "constant.other.php" - } - } - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?=\\s)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.block.documentation.phpdoc.php", - "patterns": [ - { - "include": "#php_doc" - } - ] - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "name": "comment.block.php" - }, - { - "begin": "(^\\s+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.double-slash.php" - } - ] - }, - { - "begin": "(^\\s+)?(?=#)(?!#\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.number-sign.php" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", - "name": "constant.language.php" - }, - { - "match": "(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b", - "name": "support.constant.core.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b", - "name": "support.constant.std.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b", - "name": "support.constant.ext.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b", - "name": "support.constant.parser-token.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "name": "constant.other.php" - } - ] - }, - "function-parameters": { - "patterns": [ - { - "include": "#attribute" - }, - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "match": "(?xi)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment", - "captures": { - "1": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "storage.modifier.reference.php" - }, - "4": { - "name": "keyword.operator.variadic.php" - }, - "5": { - "name": "punctuation.definition.variable.php" - } - }, - "name": "meta.function.parameter.variadic.php" - }, - { - "begin": "(?xi)\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "storage.modifier.reference.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "name": "meta.function.parameter.typehinted.php", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - { - "match": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment", - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "name": "meta.function.parameter.no-default.php" - }, - { - "begin": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n\\s*(=)\\s*", - "beginCaptures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "name": "meta.function.parameter.default.php", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - "named-arguments": { - "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)", - "captures": { - "1": { - "name": "entity.name.variable.parameter.php" - }, - "2": { - "name": "punctuation.separator.colon.php" - } - } - }, - "function-call": { - "patterns": [ - { - "begin": "(?x)\n(\n \\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}]) # Optional root namespace\n [a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]* # First namespace\n (?:\\\\[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)+ # Additional namespaces\n)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "name": "entity.name.function.php" - } - ] - }, - "2": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#namespace" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#support" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "name": "entity.name.function.php" - } - ] - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.output.php" - } - ] - }, - "heredoc": { - "patterns": [ - { - "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\1)\\s*$)", - "end": "(?!\\G)", - "name": "string.unquoted.heredoc.php", - "patterns": [ - { - "include": "#heredoc_interior" - } - ] - }, - { - "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)", - "end": "(?!\\G)", - "name": "string.unquoted.nowdoc.php", - "patterns": [ - { - "include": "#nowdoc_interior" - } - ] - } - ] - }, - "heredoc_interior": { - "patterns": [ - { - "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.html", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.xml", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.xml", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "text.xml" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)([DS]QL)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.sql", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.sql", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.sql" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.js", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.js" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.json", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.json", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.json" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.css", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.css" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "string.regexp.heredoc.php", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repitition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repitition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repitition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - }, - { - "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.line.number-sign.php" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(BLADE)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html.php.blade", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.php.blade", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\2)(\\s*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "patterns": [ - { - "include": "#interpolation" - } - ] - } - ] - }, - "nowdoc_interior": { - "patterns": [ - { - "begin": "(<<<)\\s*'(HTML)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.html", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(<<<)\\s*'(XML)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.xml", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "(<<<)\\s*'([DS]QL)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.sql", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.sql", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.js", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(<<<)\\s*'(JSON)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.json", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.json", - "patterns": [ - { - "include": "source.json" - } - ] - }, - { - "begin": "(<<<)\\s*'(CSS)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.css", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "string.regexp.nowdoc.php", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "patterns": [ - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repitition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repitition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repitition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - }, - { - "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.line.number-sign.php" - } - ] - }, - { - "begin": "(<<<)\\s*'(BLADE)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html.php.blade", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.php.blade" - }, - { - "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)'(\\s*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", - "endCaptures": { - "1": { - "name": "keyword.operator.nowdoc.php" - } - } - } - ] - }, - "instantiation": { - "begin": "(?i)(new)\\s+(?!class\\b)", - "beginCaptures": { - "1": { - "name": "keyword.other.new.php" - } - }, - "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", - "patterns": [ - { - "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{10ffff}])", - "name": "storage.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - "interpolation": { - "patterns": [ - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.octal.php" - }, - { - "match": "\\\\x[0-9A-Fa-f]{1,2}", - "name": "constant.character.escape.hex.php" - }, - { - "match": "\\\\u{[0-9A-Fa-f]+}", - "name": "constant.character.escape.unicode.php" - }, - { - "match": "\\\\[nrtvef$\\\\]", - "name": "constant.character.escape.php" - }, - { - "begin": "{(?=\\$.*?})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#variable-name" - } - ] - }, - "interpolation_double_quoted": { - "patterns": [ - { - "match": "\\\\\"", - "name": "constant.character.escape.php" - }, - { - "include": "#interpolation" - } - ] - }, - "invoke-call": { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(?=\\s*\\()", - "name": "meta.function-call.invoke.php" - }, - "namespace": { - "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(\\\\)", - "beginCaptures": { - "1": { - "name": "variable.language.namespace.php" - }, - "2": { - "name": "punctuation.separator.inheritance.php" - } - }, - "end": "(?i)(?![a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", - "name": "support.other.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*", - "name": "constant.numeric.hex.php" - }, - { - "match": "0[bB][01]+(?:_[01]+)*", - "name": "constant.numeric.binary.php" - }, - { - "match": "0[oO][0-7]+(?:_[0-7]+)*", - "name": "constant.numeric.octal.php" - }, - { - "match": "0(?:_?[0-7]+)+", - "name": "constant.numeric.octal.php" - }, - { - "match": "(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)", - "name": "constant.numeric.decimal.php", - "captures": { - "1": { - "name": "punctuation.separator.decimal.period.php" - }, - "2": { - "name": "punctuation.separator.decimal.period.php" - } - } - }, - { - "match": "0|[1-9](?:_?[0-9]+)*", - "name": "constant.numeric.decimal.php" - } - ] - }, - "object": { - "patterns": [ - { - "begin": "(\\??->)\\s*(\\$?{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "entity.name.function.php" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.method-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "variable.other.property.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?" - } - ] - }, - "php-types": { - "patterns": [ - { - "match": "\\?", - "name": "keyword.operator.nullable-type.php" - }, - { - "match": "[|&]", - "name": "punctuation.separator.delimiter.php" - }, - { - "match": "(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\b", - "name": "keyword.other.type.php" - }, - { - "match": "(?i)\\b(parent|self)\\b", - "name": "storage.type.php" - }, - { - "match": "\\(", - "name": "punctuation.definition.type.begin.bracket.round.php" - }, - { - "match": "\\)", - "name": "punctuation.definition.type.end.bracket.round.php" - }, - { - "include": "#class-name" - } - ] - }, - "parameter-default-types": { - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#string-backtick" - }, - { - "include": "#variables" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "match": "=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "&(?=\\s*\\$)", - "name": "storage.modifier.reference.php" - }, - { - "begin": "(array)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.php" - } - }, - "end": "\\]|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#instantiation" - }, - { - "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+\n (::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?\n)", - "end": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?", - "endCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "constant.other.class.php" - } - }, - "patterns": [ - { - "include": "#class-name" - } - ] - }, - { - "include": "#constants" - } - ] - }, - "php_doc": { - "patterns": [ - { - "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)", - "name": "invalid.illegal.missing-asterisk.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "3": { - "name": "storage.modifier.php" - }, - "4": { - "name": "invalid.illegal.wrong-access-type.phpdoc.php" - } - }, - "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "2": { - "name": "markup.underline.link.php" - } - }, - "match": "(@xlink)\\s+(.+)\\s*$" - }, - { - "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[?A-Za-z_\\x{7f}-\\x{10ffff}\\\\]|\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "end": "(?=\\s|\\*/)", - "contentName": "meta.other.type.phpdoc.php", - "patterns": [ - { - "include": "#php_doc_types_array_multiple" - }, - { - "include": "#php_doc_types_array_single" - }, - { - "include": "#php_doc_types" - } - ] - }, - { - "match": "(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b", - "name": "keyword.other.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "match": "{(@(link|inherit[Dd]oc)).+?}", - "name": "meta.tag.inline.phpdoc.php" - } - ] - }, - "php_doc_types": { - "match": "(?i)\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*([|&]\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)*", - "captures": { - "0": { - "patterns": [ - { - "match": "\\?", - "name": "keyword.operator.nullable-type.php" - }, - { - "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self|static)\\b", - "name": "keyword.other.type.php" - }, - { - "include": "#class-name" - }, - { - "match": "[|&]", - "name": "punctuation.separator.delimiter.php" - }, - { - "match": "\\(", - "name": "punctuation.definition.type.begin.bracket.round.php" - }, - { - "match": "\\)", - "name": "punctuation.definition.type.end.bracket.round.php" - } - ] - } - } - }, - "php_doc_types_array_multiple": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php" - } - }, - "end": "(\\))(\\[\\])|(?=\\*/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.bracket.round.phpdoc.php" - }, - "2": { - "name": "keyword.other.array.phpdoc.php" - } - }, - "patterns": [ - { - "include": "#php_doc_types_array_multiple" - }, - { - "include": "#php_doc_types_array_single" - }, - { - "include": "#php_doc_types" - }, - { - "match": "[|&]", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "php_doc_types_array_single": { - "match": "(?i)([a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(\\[\\])", - "captures": { - "1": { - "patterns": [ - { - "include": "#php_doc_types" - } - ] - }, - "2": { - "name": "keyword.other.array.phpdoc.php" - } - } - }, - "regex-double-quoted": { - "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.double-quoted.php", - "patterns": [ - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "include": "#interpolation_double_quoted" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "include": "#interpolation_double_quoted" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "regex-single-quoted": { - "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.single-quoted.php", - "patterns": [ - { - "include": "#single_quote_regex_escape" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php" - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "scope-resolution": { - "patterns": [ - { - "match": "([A-Za-z_\\x{7f}-\\x{10ffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(?=\\s*::)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\b(self|static|parent)\\b", - "name": "storage.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - } - } - }, - { - "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "entity.name.function.php" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.method-call.static.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "match": "(?i)(::)\\s*(class)\\b", - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "keyword.other.class.php" - } - } - }, - { - "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Constant\n)?", - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "variable.other.class.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "constant.other.class.php" - } - } - } - ] - }, - "single_quote_regex_escape": { - "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)", - "name": "constant.character.escape.php" - }, - "sql-string-double-quoted": { - "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.sql.php", - "patterns": [ - { - "match": "(#)(\\\\\"|[^\"])*(?=\"|$)", - "name": "comment.line.number-sign.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "(--)(\\\\\"|[^\"])*(?=\"|$)", - "name": "comment.line.double-dash.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "\\\\[\\\\\"`']", - "name": "constant.character.escape.php" - }, - { - "match": "'(?=((\\\\')|[^'\"])*(\"|$))", - "name": "string.quoted.single.unclosed.sql" - }, - { - "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", - "name": "string.quoted.other.backtick.unclosed.sql" - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.sql", - "patterns": [ - { - "include": "#interpolation_double_quoted" - } - ] - }, - { - "begin": "`", - "end": "`", - "name": "string.quoted.other.backtick.sql", - "patterns": [ - { - "include": "#interpolation_double_quoted" - } - ] - }, - { - "include": "#interpolation_double_quoted" - }, - { - "include": "source.sql" - } - ] - }, - "sql-string-single-quoted": { - "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.sql.php", - "patterns": [ - { - "match": "(#)(\\\\'|[^'])*(?='|$)", - "name": "comment.line.number-sign.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "(--)(\\\\'|[^'])*(?='|$)", - "name": "comment.line.double-dash.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "\\\\[\\\\'`\"]", - "name": "constant.character.escape.php" - }, - { - "match": "`(?=((\\\\`)|[^`'])*('|$))", - "name": "string.quoted.other.backtick.unclosed.sql" - }, - { - "match": "\"(?=((\\\\\")|[^\"'])*('|$))", - "name": "string.quoted.double.unclosed.sql" - }, - { - "include": "source.sql" - } - ] - }, - "string-backtick": { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.interpolated.php", - "patterns": [ - { - "match": "\\\\`", - "name": "constant.character.escape.php" - }, - { - "include": "#interpolation" - } - ] - }, - "string-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.php", - "patterns": [ - { - "include": "#interpolation_double_quoted" - } - ] - }, - "string-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.php", - "patterns": [ - { - "match": "\\\\[\\\\']", - "name": "constant.character.escape.php" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#regex-double-quoted" - }, - { - "include": "#sql-string-double-quoted" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#regex-single-quoted" - }, - { - "include": "#sql-string-single-quoted" - }, - { - "include": "#string-single-quoted" - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b", - "name": "support.function.apc.php" - }, - { - "match": "(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b", - "name": "support.function.array.php" - }, - { - "match": "(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b", - "name": "support.function.basic_functions.php" - }, - { - "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b", - "name": "support.function.bcmath.php" - }, - { - "match": "(?i)\\bblenc_encrypt\\b", - "name": "support.function.blenc.php" - }, - { - "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b", - "name": "support.function.bz2.php" - }, - { - "match": "(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b", - "name": "support.function.calendar.php" - }, - { - "match": "(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b", - "name": "support.function.classobj.php" - }, - { - "match": "(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b", - "name": "support.function.com.php" - }, - { - "match": "(?i)\\b(isset|unset|eval|empty|list)\\b", - "name": "support.function.construct.php" - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.output.php" - }, - { - "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b", - "name": "support.function.ctype.php" - }, - { - "match": "(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b", - "name": "support.function.curl.php" - }, - { - "match": "(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b", - "name": "support.function.datetime.php" - }, - { - "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b", - "name": "support.function.dba.php" - }, - { - "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b", - "name": "support.function.dbx.php" - }, - { - "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b", - "name": "support.function.dir.php" - }, - { - "match": "(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b", - "name": "support.function.eio.php" - }, - { - "match": "(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b", - "name": "support.function.enchant.php" - }, - { - "match": "(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b", - "name": "support.function.ereg.php" - }, - { - "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b", - "name": "support.function.errorfunc.php" - }, - { - "match": "(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b", - "name": "support.function.exec.php" - }, - { - "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b", - "name": "support.function.exif.php" - }, - { - "match": "(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b", - "name": "support.function.fann.php" - }, - { - "match": "(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b", - "name": "support.function.file.php" - }, - { - "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", - "name": "support.function.fileinfo.php" - }, - { - "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b", - "name": "support.function.filter.php" - }, - { - "match": "(?i)\\bfastcgi_finish_request\\b", - "name": "support.function.fpm.php" - }, - { - "match": "(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b", - "name": "support.function.funchand.php" - }, - { - "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b", - "name": "support.function.gettext.php" - }, - { - "match": "(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b", - "name": "support.function.gmp.php" - }, - { - "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b", - "name": "support.function.hash.php" - }, - { - "match": "(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b", - "name": "support.function.http.php" - }, - { - "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", - "name": "support.function.iconv.php" - }, - { - "match": "(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b", - "name": "support.function.iisfunc.php" - }, - { - "match": "(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b", - "name": "support.function.image.php" - }, - { - "match": "(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b", - "name": "support.function.info.php" - }, - { - "match": "(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b", - "name": "support.function.interbase.php" - }, - { - "match": "(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b", - "name": "support.function.intl.php" - }, - { - "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", - "name": "support.function.json.php" - }, - { - "match": "(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b", - "name": "support.function.ldap.php" - }, - { - "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", - "name": "support.function.libxml.php" - }, - { - "match": "(?i)\\b(ezmlm_hash|mail)\\b", - "name": "support.function.mail.php" - }, - { - "match": "(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b", - "name": "support.function.math.php" - }, - { - "match": "(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b", - "name": "support.function.mbstring.php" - }, - { - "match": "(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b", - "name": "support.function.mcrypt.php" - }, - { - "match": "(?i)\\bmemcache_debug\\b", - "name": "support.function.memcache.php" - }, - { - "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", - "name": "support.function.mhash.php" - }, - { - "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", - "name": "support.function.mongo.php" - }, - { - "match": "(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b", - "name": "support.function.mysql.php" - }, - { - "match": "(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b", - "name": "support.function.mysqli.php" - }, - { - "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", - "name": "support.function.mysqlnd-memcache.php" - }, - { - "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", - "name": "support.function.mysqlnd-ms.php" - }, - { - "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b", - "name": "support.function.mysqlnd-qc.php" - }, - { - "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b", - "name": "support.function.mysqlnd-uh.php" - }, - { - "match": "(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b", - "name": "support.function.network.php" - }, - { - "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b", - "name": "support.function.nsapi.php" - }, - { - "match": "(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b", - "name": "support.function.oci8.php" - }, - { - "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", - "name": "support.function.opcache.php" - }, - { - "match": "(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b", - "name": "support.function.openssl.php" - }, - { - "match": "(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b", - "name": "support.function.output.php" - }, - { - "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", - "name": "support.function.password.php" - }, - { - "match": "(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b", - "name": "support.function.pcntl.php" - }, - { - "match": "(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b", - "name": "support.function.pgsql.php" - }, - { - "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b", - "name": "support.function.php_apache.php" - }, - { - "match": "(?i)\\bdom_import_simplexml\\b", - "name": "support.function.php_dom.php" - }, - { - "match": "(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b", - "name": "support.function.php_ftp.php" - }, - { - "match": "(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b", - "name": "support.function.php_imap.php" - }, - { - "match": "(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b", - "name": "support.function.php_mssql.php" - }, - { - "match": "(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b", - "name": "support.function.php_odbc.php" - }, - { - "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", - "name": "support.function.php_pcre.php" - }, - { - "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", - "name": "support.function.php_spl.php" - }, - { - "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b", - "name": "support.function.php_zip.php" - }, - { - "match": "(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b", - "name": "support.function.posix.php" - }, - { - "match": "(?i)\\bset(thread|proc)title\\b", - "name": "support.function.proctitle.php" - }, - { - "match": "(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b", - "name": "support.function.pspell.php" - }, - { - "match": "(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b", - "name": "support.function.readline.php" - }, - { - "match": "(?i)\\brecode(_(string|file))?\\b", - "name": "support.function.recode.php" - }, - { - "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b", - "name": "support.function.rrd.php" - }, - { - "match": "(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b", - "name": "support.function.sem.php" - }, - { - "match": "(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b", - "name": "support.function.session.php" - }, - { - "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", - "name": "support.function.shmop.php" - }, - { - "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", - "name": "support.function.simplexml.php" - }, - { - "match": "(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b", - "name": "support.function.snmp.php" - }, - { - "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", - "name": "support.function.soap.php" - }, - { - "match": "(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b", - "name": "support.function.sockets.php" - }, - { - "match": "(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b", - "name": "support.function.sqlite.php" - }, - { - "match": "(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b", - "name": "support.function.sqlsrv.php" - }, - { - "match": "(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b", - "name": "support.function.stats.php" - }, - { - "match": "(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b", - "name": "support.function.streamsfuncs.php" - }, - { - "match": "(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b", - "name": "support.function.string.php" - }, - { - "match": "(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b", - "name": "support.function.sybase.php" - }, - { - "match": "(?i)\\b(taint|is_tainted|untaint)\\b", - "name": "support.function.taint.php" - }, - { - "match": "(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b", - "name": "support.function.tidy.php" - }, - { - "match": "(?i)\\btoken_(name|get_all)\\b", - "name": "support.function.tokenizer.php" - }, - { - "match": "(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b", - "name": "support.function.trader.php" - }, - { - "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b", - "name": "support.function.uopz.php" - }, - { - "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b", - "name": "support.function.url.php" - }, - { - "match": "(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b", - "name": "support.function.var.php" - }, - { - "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b", - "name": "support.function.wddx.php" - }, - { - "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b", - "name": "support.function.xhprof.php" - }, - { - "match": "(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b", - "name": "support.function.xml.php" - }, - { - "match": "(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b", - "name": "support.function.xmlrpc.php" - }, - { - "match": "(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b", - "name": "support.function.xmlwriter.php" - }, - { - "match": "(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b", - "name": "support.function.zlib.php" - }, - { - "match": "(?i)\\bis_int(eger)?\\b", - "name": "support.function.alias.php" - } - ] - }, - "switch_statement": { - "patterns": [ - { - "match": "\\s+(?=switch\\b)" - }, - { - "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)", - "beginCaptures": { - "0": { - "name": "keyword.control.switch.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.section.switch-block.end.bracket.curly.php" - } - }, - "name": "meta.switch-statement.php", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.switch-expression.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.switch-expression.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "match_statement": { - "patterns": [ - { - "match": "\\s+(?=match\\b)" - }, - { - "begin": "\\bmatch\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.match.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.section.match-block.end.bracket.curly.php" - } - }, - "name": "meta.match-statement.php", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.match-expression.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.match-expression.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.section.match-block.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "patterns": [ - { - "match": "=>", - "name": "keyword.definition.arrow.php" - }, - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "use-inner": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)\\b(as)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.use-as.php" - } - }, - "end": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "endCaptures": { - "0": { - "name": "entity.other.alias.php" - } - } - }, - { - "include": "#class-name" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "var_basic": { - "patterns": [ - { - "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", - "name": "variable.other.php", - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - } - } - ] - }, - "var_global": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", - "name": "variable.other.global.php" - }, - "var_global_safer": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", - "name": "variable.other.global.safer.php" - }, - "var_language": { - "match": "(\\$)this\\b", - "name": "variable.language.this.php", - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - } - }, - "variable-name": { - "patterns": [ - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "keyword.operator.class.php" - }, - "5": { - "name": "variable.other.property.php" - }, - "6": { - "name": "punctuation.section.array.begin.php" - }, - "7": { - "name": "constant.numeric.index.php" - }, - "8": { - "name": "variable.other.index.php" - }, - "9": { - "name": "punctuation.definition.variable.php" - }, - "10": { - "name": "string.unquoted.index.php" - }, - "11": { - "name": "punctuation.section.array.end.php" - } - }, - "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))\\s*\n(?:\n (\\??->)\\s*(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))(\\])\n)?" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(}))" - } - ] - }, - "variables": { - "patterns": [ - { - "include": "#var_language" - }, - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "include": "#var_basic" - }, - { - "begin": "\\${(?=.*?})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "ternary_shorthand": { - "match": "\\?:", - "name": "keyword.operator.ternary.php" - }, - "ternary_expression": { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.php" - } - }, - "end": "(?<!:):(?!:)", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.php" - } - }, - "patterns": [ - { - "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=:(?!:))", - "captures": { - "1": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "include": "$self" - } - ] - }, - "null_coalescing": { - "match": "\\?\\?", - "name": "keyword.operator.null-coalescing.php" - } - }, - "name": "php" -} diff --git a/lib/grammars/plsql.tmLanguage.json b/lib/grammars/plsql.tmLanguage.json deleted file mode 100644 index 1a1f38b..0000000 --- a/lib/grammars/plsql.tmLanguage.json +++ /dev/null @@ -1,232 +0,0 @@ -{ - "fileTypes": ["sql", "ddl", "dml", "pkh", "pks", "pkb", "pck", "pls", "plb"], - "foldingStartMarker": "(?i)^\\s*(begin|if|loop)\\b", - "foldingStopMarker": "(?i)^\\s*(end)\\b", - "keyEquivalent": "^~S", - "name": "plsql", - "patterns": [ - { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block.oracle" - }, - { - "match": "--.*$", - "name": "comment.line.double-dash.oracle" - }, - { - "match": "(?i)(?:^\\s*)rem(?:\\s+.*$)", - "name": "comment.line.sqlplus.oracle" - }, - { - "match": "(?i)(?:^\\s*)prompt(?:\\s+.*$)", - "name": "comment.line.sqlplus-prompt.oracle" - }, - { - "captures": { - "1": { - "name": "keyword.other.oracle" - }, - "2": { - "name": "keyword.other.oracle" - } - }, - "match": "(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+", - "name": "meta.create.oracle" - }, - { - "captures": { - "1": { - "name": "keyword.other.oracle" - }, - "2": { - "name": "keyword.other.oracle" - }, - "3": { - "name": "entity.name.type.oracle" - } - }, - "match": "(?i)\\b(package)(\\s+body)?\\s+(\\S+)", - "name": "meta.package.oracle" - }, - { - "captures": { - "1": { - "name": "keyword.other.oracle" - }, - "2": { - "name": "entity.name.type.oracle" - } - }, - "match": "(?i)\\b(type)\\s+\"([^\"]+)\"", - "name": "meta.type.oracle" - }, - { - "captures": { - "1": { - "name": "keyword.other.oracle" - }, - "2": { - "name": "entity.name.function.oracle" - } - }, - "match": "(?i)^\\s*(function|procedure)\\s+\"?([-a-z0-9_]+)\"?", - "name": "meta.procedure.oracle" - }, - { - "match": "[!<>:]?=|<>|<|>|\\+|(?<!\\.)\\*|-|(?<!^)/|\\|\\|", - "name": "keyword.operator.oracle" - }, - { - "match": "(?i)\\b(true|false|null|is\\s+(not\\s+)?null)\\b", - "name": "constant.language.oracle" - }, - { - "match": "\\b\\d+(\\.\\d+)?\\b", - "name": "constant.numeric.oracle" - }, - { - "match": "(?i)\\b(if|elsif|else|end\\s+if|loop|end\\s+loop|for|while|case|end\\s+case|continue|return|goto)\\b", - "name": "keyword.control.oracle" - }, - { - "match": "(?i)\\b(or|and|not|like)\\b", - "name": "keyword.other.oracle" - }, - { - "match": "(?i)\\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\\b", - "name": "support.function.oracle" - }, - { - "match": "(?i)\\b(sql|sqlcode)\\b", - "name": "variable.language.oracle" - }, - { - "match": "(?i)\\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\\b", - "name": "support.function.builtin.char.oracle" - }, - { - "match": "(?i)\\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\\b", - "name": "support.function.builtin.date.oracle" - }, - { - "match": "(?i)\\b(avg|count|sum|max|min|median|corr|corr_\\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\\b", - "name": "support.function.builtin.aggregate.oracle" - }, - { - "match": "(?i)\\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\\s+)?user|userenv|cardinality|(bulk\\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\\s+immediate|alter\\s+session)\\b", - "name": "support.function.builtin.advanced.oracle" - }, - { - "match": "(?i)\\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\\b", - "name": "support.function.builtin.convert.oracle" - }, - { - "match": "(?i)\\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b", - "name": "support.function.builtin.math.oracle" - }, - { - "match": "(?i)\\b(\\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\\b", - "name": "support.function.builtin.collection.oracle" - }, - { - "match": "(?i)\\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\\b", - "name": "support.function.builtin.data_mining.oracle" - }, - { - "match": "(?i)\\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\\b", - "name": "support.function.builtin.xml.oracle" - }, - { - "match": "(?i)\\b(pragma\\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\\b", - "name": "keyword.other.pragma.oracle" - }, - { - "match": "(?i)\\b(p(i|o|io)_[-a-z0-9_]+)\\b", - "name": "variable.parameter.oracle" - }, - { - "match": "(?i)\\b(l_[-a-z0-9_]+)\\b", - "name": "variable.other.oracle" - }, - { - "match": "(?i):\\b(new|old)\\b", - "name": "variable.trigger.oracle" - }, - { - "match": "(?i)\\b(connect\\s+by\\s+(nocycle\\s+)?(prior|level)|connect_by_(root|icycle)|level|start\\s+with)\\b", - "name": "keyword.hierarchical.sql.oracle" - }, - { - "match": "(?i)\\b(language|name|java|c)\\b", - "name": "keyword.wrapper.oracle" - }, - { - "match": "(?i)\\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\\s+by|result_cache|constant|comment|\\.(nextval|currval))\\b", - "name": "keyword.other.oracle" - }, - { - "match": "(?i)\\b(grant|revoke|alter|drop|force|add|check|constraint|primary\\s+key|foreign\\s+key|references|unique(\\s+index)?|column|sequence|increment\\s+by|cache|(materialized\\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\\b", - "name": "keyword.other.ddl.oracle" - }, - { - "match": "(?i)\\b(with|select|from|where|order\\s+(siblings\\s+)?by|group\\s+by|rollup|cube|((left|right|cross|natural)\\s+(outer\\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\\s+between|nulls\\s+first|nulls\\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\\s+by|merge|using|matched|pivot|unpivot)\\b", - "name": "keyword.other.sql.oracle" - }, - { - "match": "(?i)\\b(define|whenever\\s+sqlerror|exec|timing\\s+start|timing\\s+stop)\\b", - "name": "keyword.other.sqlplus.oracle" - }, - { - "match": "(?i)\\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\\b", - "name": "support.type.exception.oracle" - }, - { - "captures": { - "3": { - "name": "support.class.oracle" - } - }, - "match": "(?i)\\b((dbms|utl|owa|apex)_\\w+\\.(\\w+))\\b", - "name": "support.function.oracle" - }, - { - "captures": { - "3": { - "name": "support.class.oracle" - } - }, - "match": "(?i)\\b((htf|htp)\\.(\\w+))\\b", - "name": "support.function.oracle" - }, - { - "captures": { - "3": { - "name": "support.class.user-defined.oracle" - } - }, - "match": "(?i)\\b((\\w+_pkg|pkg_\\w+)\\.(\\w+))\\b", - "name": "support.function.user-defined.oracle" - }, - { - "match": "(?i)\\b(raise|raise_application_error)\\b", - "name": "support.function.oracle" - }, - { - "begin": "'", - "end": "'", - "name": "string.quoted.single.oracle" - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.oracle" - }, - { - "match": "(?i)\\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\\s+with(\\s+local)?\\s+time\\s+zone)?|interval\\s*day(\\(\\d*\\))?\\s*to\\s*month|interval\\s*year(\\(\\d*\\))?\\s*to\\s*second(\\(\\d*\\))?|xmltype|blob|clob|nclob|bfile|long|long\\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\\b", - "name": "storage.type.oracle" - } - ], - "scopeName": "source.plsql.oracle", - "uuid": "28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163" -} diff --git a/lib/grammars/polar.tmLanguage.json b/lib/grammars/polar.tmLanguage.json deleted file mode 100644 index 2e52bc1..0000000 --- a/lib/grammars/polar.tmLanguage.json +++ /dev/null @@ -1,331 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "polar", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#rule" - }, - { - "include": "#rule-type" - }, - { - "include": "#inline-query" - }, - { - "include": "#resource-block" - }, - { - "include": "#test-block" - } - ], - "repository": { - "comment": { - "name": "comment.line.number-sign", - "match": "#.*" - }, - "rule": { - "name": "meta.rule", - "patterns": [ - { - "include": "#rule-functor" - }, - { - "begin": "\\bif\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.if" - } - }, - "end": ";", - "patterns": [ - { - "include": "#term" - } - ] - }, - { - "match": ";" - } - ] - }, - "rule-type": { - "name": "meta.rule-type", - "begin": "\\btype\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.type-decl" - } - }, - "end": ";", - "patterns": [ - { - "include": "#rule-functor" - } - ] - }, - "inline-query": { - "name": "meta.inline-query", - "begin": "\\?=", - "end": ";", - "beginCaptures": { - "0": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#term" - } - ] - }, - "resource-block": { - "name": "meta.resource-block", - "begin": "((resource|actor)\\s+([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)|(global))\\s*\\{", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "3": { - "name": "entity.name.type" - }, - "4": { - "name": "keyword.control" - } - }, - "end": "\\}", - "patterns": [ - { - "name": "punctuation.separator.sequence.declarations", - "match": ";" - }, - { - "name": "meta.relation-declaration", - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#specializer" - }, - { - "include": "#comment" - }, - { - "name": "punctuation.separator.sequence.dict", - "match": "," - } - ] - }, - { - "include": "#term" - } - ] - }, - "test-block": { - "name": "meta.test-block", - "begin": "(test)\\s+(\"[^\"]*\")\\s*\\{", - "beginCaptures": { - "1": { - "name": "keyword.control" - }, - "2": { - "name": "string.quoted.double" - } - }, - "end": "\\}", - "patterns": [ - { - "name": "meta.test-setup", - "begin": "(setup)\\s*\\{", - "beginCaptures": { - "1": { - "name": "keyword.control" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#rule" - }, - { - "include": "#comment" - } - ] - }, - { - "include": "#rule" - }, - { - "name": "keyword.other", - "match": "\\b(assert|assert_not)\\b" - }, - { - "include": "#comment" - } - ] - }, - "term": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#number" - }, - { - "include": "#keyword" - }, - { - "include": "#operator" - }, - { - "include": "#boolean" - }, - { - "include": "#object-literal" - }, - { - "name": "meta.bracket.list", - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#term" - }, - { - "name": "punctuation.separator.sequence.list", - "match": "," - } - ] - }, - { - "name": "meta.bracket.dict", - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#term" - }, - { - "name": "punctuation.separator.sequence.dict", - "match": "," - } - ] - }, - { - "name": "meta.parens", - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#term" - } - ] - } - ] - }, - "string": { - "name": "string.quoted.double", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape", - "match": "\\\\." - } - ] - }, - "number": { - "patterns": [ - { - "name": "constant.numeric.float", - "match": "\\b[+-]?\\d+(?:(\\.)\\d+(?:e[+-]?\\d+)?|(?:e[+-]?\\d+))\\b" - }, - { - "name": "constant.numeric.integer", - "match": "\\b(\\+|\\-)[\\d]+\\b" - }, - { - "name": "constant.numeric.natural", - "match": "\\b[\\d]+\\b" - } - ] - }, - "boolean": { - "name": "constant.language.boolean", - "match": "\\b(true|false)\\b" - }, - "keyword": { - "patterns": [ - { - "match": "\\b(cut|or|debug|print|in|forall|if|and|of|not|matches|type|on|global)\\b", - "name": "constant.character" - } - ] - }, - "operator": { - "match": "(\\+|-|\\*|\\/|<|>|=|!)", - "captures": { - "1": { - "name": "keyword.control" - } - } - }, - "rule-functor": { - "begin": "([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\\s*\\(", - "beginCaptures": { - "1": { - "name": "support.function.rule" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#specializer" - }, - { - "name": "punctuation.separator.sequence.list", - "match": "," - }, - { - "include": "#term" - } - ] - }, - "specializer": { - "match": "[a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*\\s*:\\s*([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)", - "captures": { - "1": { - "name": "entity.name.type.resource" - } - } - }, - "object-literal": { - "name": "constant.other.object-literal", - "begin": "([a-zA-Z_][a-zA-Z0-9_]*(?:::[a-zA-Z0-9_]+)*)\\s*\\{", - "beginCaptures": { - "1": { - "name": "entity.name.type.resource" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#number" - }, - { - "include": "#boolean" - } - ] - } - }, - "scopeName": "source.polar" -} diff --git a/lib/grammars/postcss.tmLanguage.json b/lib/grammars/postcss.tmLanguage.json deleted file mode 100644 index 8569316..0000000 --- a/lib/grammars/postcss.tmLanguage.json +++ /dev/null @@ -1,374 +0,0 @@ -{ - "patterns": [ - { - "patterns": [ - { - "include": "#comment-tag" - } - ], - "begin": "/\\*", - "name": "comment.block.postcss", - "end": "\\*/" - }, - { - "include": "#double-slash" - }, - { - "include": "#double-quoted" - }, - { - "include": "#single-quoted" - }, - { - "include": "#interpolation" - }, - { - "include": "#placeholder-selector" - }, - { - "include": "#variable" - }, - { - "include": "#variable-root-css" - }, - { - "include": "#numeric" - }, - { - "include": "#unit" - }, - { - "include": "#flag" - }, - { - "include": "#dotdotdot" - }, - { - "captures": { - "0": { - "name": "keyword.control.at-rule.css.postcss" - } - }, - "begin": "@include", - "name": "support.function.name.postcss.library", - "end": "(?=\\n|\\(|{|;)" - }, - { - "captures": { - "0": { - "name": "keyword.control.at-rule.css.postcss" - } - }, - "patterns": [ - { - "name": "entity.name.function", - "match": "[\\w-]+" - } - ], - "begin": "@mixin|@function", - "name": "support.function.name.postcss.no-completions", - "end": "$\\n?|(?=\\(|{)" - }, - { - "name": "string.quoted.double.css.postcss", - "match": "(?<=@import)\\s[\\w/.*-]+" - }, - { - "begin": "@", - "name": "keyword.control.at-rule.css.postcss", - "end": "$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))|(?=;)" - }, - { - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "#pseudo-class" - } - ], - "begin": "#", - "name": "entity.other.attribute-name.id.css.postcss", - "end": "$\\n?|(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>)" - }, - { - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "#pseudo-class" - } - ], - "begin": "\\.|(?<=&)(-|_)", - "name": "entity.other.attribute-name.class.css.postcss", - "end": "$\\n?|(?=\\s|,|;|\\(|\\)|\\[|{|>)" - }, - { - "patterns": [ - { - "include": "#double-quoted" - }, - { - "include": "#single-quoted" - }, - { - "name": "keyword.other.regex.postcss", - "match": "\\^|\\$|\\*|~" - } - ], - "begin": "\\[", - "name": "entity.other.attribute-selector.postcss", - "end": "\\]" - }, - { - "name": "entity.other.attribute-name.pseudo-class.css.postcss", - "match": "(?<=\\]|\\)|not\\(|\\*|>|>\\s):[a-z:-]+|(::|:-)[a-z:-]+" - }, - { - "patterns": [ - { - "include": "#double-slash" - }, - { - "include": "#double-quoted" - }, - { - "include": "#single-quoted" - }, - { - "include": "#interpolation" - }, - { - "include": "#variable" - }, - { - "include": "#rgb-value" - }, - { - "include": "#numeric" - }, - { - "include": "#unit" - }, - { - "include": "#flag" - }, - { - "include": "#function" - }, - { - "include": "#function-content" - }, - { - "include": "#function-content-var" - }, - { - "include": "#operator" - }, - { - "include": "#parent-selector" - }, - { - "include": "#property-value" - } - ], - "begin": ":", - "name": "meta.property-list.css.postcss", - "end": "$\\n?|(?=;|\\s\\(|and\\(|{|}|\\),)" - }, - { - "include": "#rgb-value" - }, - { - "include": "#function" - }, - { - "include": "#function-content" - }, - { - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "#pseudo-class" - } - ], - "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|x)\\b(?!-|\\)|:\\s)|&", - "name": "entity.name.tag.css.postcss.symbol", - "end": "(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>|-|_)" - }, - { - "include": "#operator" - }, - { - "name": "support.type.property-name.css.postcss", - "match": "[a-z-]+((?=:|#{))" - }, - { - "include": "#reserved-words" - }, - { - "include": "#property-value" - } - ], - "name": "postcss", - "repository": { - "reserved-words": { - "name": "support.type.property-name.css.postcss", - "match": "\\b(false|from|in|not|null|through|to|true)\\b" - }, - "double-quoted": { - "patterns": [ - { - "include": "#quoted-interpolation" - } - ], - "begin": "\"", - "name": "string.quoted.double.css.postcss", - "end": "\"" - }, - "operator": { - "name": "keyword.operator.postcss", - "match": "\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~" - }, - "function-content": { - "name": "string.quoted.double.css.postcss", - "match": "(?<=url\\(|format\\(|attr\\().+?(?=\\))" - }, - "double-slash": { - "patterns": [ - { - "include": "#comment-tag" - } - ], - "begin": "//", - "name": "comment.line.postcss", - "end": "$" - }, - "numeric": { - "name": "constant.numeric.css.postcss", - "match": "(-|\\.)?[0-9]+(\\.[0-9]+)?" - }, - "variable-root-css": { - "name": "variable.parameter.postcss", - "match": "(?<!&)--[\\w-]+" - }, - "function": { - "name": "support.function.name.postcss", - "match": "(?<=[\\s|\\(|,|:])(?!url|format|attr)[\\w-][\\w-]*(?=\\()" - }, - "rgb-value": { - "name": "constant.other.color.rgb-value.css.postcss", - "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b" - }, - "comment-tag": { - "patterns": [ - { - "name": "comment.tag.postcss", - "match": "[\\w-]+" - } - ], - "begin": "{{", - "name": "comment.tags.postcss", - "end": "}}" - }, - "interpolation": { - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#numeric" - }, - { - "include": "#operator" - }, - { - "include": "#unit" - }, - { - "include": "#double-quoted" - }, - { - "include": "#single-quoted" - } - ], - "begin": "#{", - "name": "support.function.interpolation.postcss", - "end": "}" - }, - "unit": { - "name": "keyword.other.unit.css.postcss", - "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|%)" - }, - "function-content-var": { - "name": "variable.parameter.postcss", - "match": "(?<=var\\()[\\w-]+(?=\\))" - }, - "dotdotdot": { - "name": "variable.other", - "match": "\\.{3}" - }, - "variable": { - "name": "variable.parameter.postcss", - "match": "\\$[\\w-]+" - }, - "single-quoted": { - "patterns": [ - { - "include": "#quoted-interpolation" - } - ], - "begin": "'", - "name": "string.quoted.single.css.postcss", - "end": "'" - }, - "quoted-interpolation": { - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#numeric" - }, - { - "include": "#operator" - }, - { - "include": "#unit" - } - ], - "begin": "#{", - "name": "support.function.interpolation.postcss", - "end": "}" - }, - "pseudo-class": { - "name": "entity.other.attribute-name.pseudo-class.css.postcss", - "match": ":[a-z:-]+" - }, - "property-value": { - "name": "meta.property-value.css.postcss, support.constant.property-value.css.postcss", - "match": "[\\w-]+" - }, - "placeholder-selector": { - "begin": "(?<!\\d)%(?!\\d)", - "name": "entity.other.attribute-name.placeholder-selector.postcss", - "end": "$\\n?|\\s|(?=;|{)" - }, - "flag": { - "name": "keyword.other.important.css.postcss", - "match": "!(important|default|optional|global)" - }, - "parent-selector": { - "name": "entity.name.tag.css.postcss", - "match": "&" - } - }, - "foldingStartMarker": "/\\*|^#|^\\*|^\\b|^\\.", - "foldingStopMarker": "\\*/|^\\s*$", - "fileTypes": ["pcss", "postcss"], - "uuid": "90DAEA60-88AA-11E2-9E96-0800200C9A66", - "scopeName": "source.css.postcss" -} diff --git a/lib/grammars/powerquery.tmLanguage.json b/lib/grammars/powerquery.tmLanguage.json deleted file mode 100644 index 5ffcfab..0000000 --- a/lib/grammars/powerquery.tmLanguage.json +++ /dev/null @@ -1,346 +0,0 @@ -{ - "name": "powerquery", - "scopeName": "source.powerquery", - "fileTypes": ["pq", "pqm"], - "uuid": "41968B57-12E6-4AC5-92A4-A837010E8B0A", - "patterns": [ - { - "include": "#Noise" - }, - { - "include": "#LiteralExpression" - }, - { - "include": "#Keywords" - }, - { - "include": "#ImplicitVariable" - }, - { - "include": "#IntrinsicVariable" - }, - { - "include": "#Operators" - }, - { - "include": "#DotOperators" - }, - { - "include": "#TypeName" - }, - { - "include": "#RecordExpression" - }, - { - "include": "#Punctuation" - }, - { - "include": "#QuotedIdentifier" - }, - { - "include": "#Identifier" - } - ], - "repository": { - "Keywords": { - "match": "\\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\\b", - "captures": { - "1": { - "name": "keyword.operator.word.logical.powerquery" - }, - "2": { - "name": "keyword.control.conditional.powerquery" - }, - "3": { - "name": "keyword.control.exception.powerquery" - }, - "4": { - "name": "keyword.other.powerquery" - }, - "5": { - "name": "keyword.powerquery" - } - } - }, - "TypeName": { - "match": "\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\b", - "captures": { - "1": { - "name": "storage.modifier.powerquery" - }, - "2": { - "name": "storage.type.powerquery" - } - } - }, - "LiteralExpression": { - "patterns": [ - { - "include": "#String" - }, - { - "include": "#NumericConstant" - }, - { - "include": "#LogicalConstant" - }, - { - "include": "#NullConstant" - }, - { - "include": "#FloatNumber" - }, - { - "include": "#DecimalNumber" - }, - { - "include": "#HexNumber" - }, - { - "include": "#IntNumber" - } - ] - }, - "Noise": { - "patterns": [ - { - "include": "#BlockComment" - }, - { - "include": "#LineComment" - }, - { - "include": "#Whitespace" - } - ] - }, - "Whitespace": { - "match": "\\s+" - }, - "BlockComment": { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block.powerquery" - }, - "LineComment": { - "match": "//.*", - "name": "comment.line.double-slash.powerquery" - }, - "String": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.powerquery" - } - }, - "end": "\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.powerquery" - } - }, - "patterns": [ - { - "match": "\"\"", - "name": "constant.character.escape.quote.powerquery" - }, - { - "include": "#EscapeSequence" - } - ], - "name": "string.quoted.double.powerquery" - }, - "QuotedIdentifier": { - "begin": "#\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.quotedidentifier.begin.powerquery" - } - }, - "end": "\"(?!\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.quotedidentifier.end.powerquery" - } - }, - "patterns": [ - { - "match": "\"\"", - "name": "constant.character.escape.quote.powerquery" - }, - { - "include": "#EscapeSequence" - } - ], - "name": "entity.name.powerquery" - }, - "EscapeSequence": { - "begin": "#\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.escapesequence.begin.powerquery" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.escapesequence.end.powerquery" - } - }, - "patterns": [ - { - "match": "(#|\\h{4}|\\h{8}|cr|lf|tab)(?:,(#|\\h{4}|\\h{8}|cr|lf|tab))*" - }, - { - "match": "[^\\)]", - "name": "invalid.illegal.escapesequence.powerquery" - } - ], - "name": "constant.character.escapesequence.powerquery" - }, - "LogicalConstant": { - "match": "\\b(true|false)\\b", - "name": "constant.language.logical.powerquery" - }, - "NullConstant": { - "match": "\\b(null)\\b", - "name": "constant.language.null.powerquery" - }, - "NumericConstant": { - "match": "(?<![\\d\\w])(#infinity|#nan)\\b", - "captures": { - "1": { - "name": "constant.language.numeric.float.powerquery" - } - } - }, - "HexNumber": { - "match": "0(x|X)\\h+", - "name": "constant.numeric.integer.hexadecimal.powerquery" - }, - "IntNumber": { - "match": "\\b(\\d+)\\b", - "captures": { - "1": { - "name": "constant.numeric.integer.powerquery" - } - } - }, - "DecimalNumber": { - "match": "(?<![\\d\\w])(\\d*\\.\\d+)\\b", - "name": "constant.numeric.decimal.powerquery" - }, - "FloatNumber": { - "match": "(\\d*\\.)?\\d+(e|E)(\\+|-)?\\d+", - "name": "constant.numeric.float.powerquery" - }, - "InclusiveIdentifier": { - "match": "@", - "captures": { - "0": { - "name": "inclusiveidentifier.powerquery" - } - } - }, - "Identifier": { - "match": "(?x:(?<![\\._\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])(@?)([_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}]*(?:\\.[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])*)\\b)", - "captures": { - "1": { - "name": "keyword.operator.inclusiveidentifier.powerquery" - }, - "2": { - "name": "entity.name.powerquery" - } - } - }, - "Operators": { - "match": "(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\\+|-|\\*|\\/)|(!)|(\\?)", - "captures": { - "1": { - "name": "keyword.operator.function.powerquery" - }, - "2": { - "name": "keyword.operator.assignment-or-comparison.powerquery" - }, - "3": { - "name": "keyword.operator.comparison.powerquery" - }, - "4": { - "name": "keyword.operator.combination.powerquery" - }, - "5": { - "name": "keyword.operator.arithmetic.powerquery" - }, - "6": { - "name": "keyword.operator.sectionaccess.powerquery" - }, - "7": { - "name": "keyword.operator.optional.powerquery" - } - } - }, - "DotOperators": { - "match": "(?<!\\.)(?:(\\.\\.\\.)|(\\.\\.))(?!\\.)", - "captures": { - "1": { - "name": "keyword.operator.ellipsis.powerquery" - }, - "2": { - "name": "keyword.operator.list.powerquery" - } - } - }, - "RecordExpression": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.begin.powerquery" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.end.powerquery" - } - }, - "patterns": [ - { - "include": "$self" - } - ], - "contentName": "meta.recordexpression.powerquery" - }, - "Punctuation": { - "match": "(,)|(\\()|(\\))|({)|(})", - "captures": { - "1": { - "name": "punctuation.separator.powerquery" - }, - "2": { - "name": "punctuation.section.parens.begin.powerquery" - }, - "3": { - "name": "punctuation.section.parens.end.powerquery" - }, - "4": { - "name": "punctuation.section.braces.begin.powerquery" - }, - "5": { - "name": "punctuation.section.braces.end.powerquery" - } - } - }, - "ImplicitVariable": { - "match": "\\b_\\b", - "name": "keyword.operator.implicitvariable.powerquery" - }, - "IntrinsicVariable": { - "match": "(?<![\\d\\w])(#sections|#shared)\\b", - "captures": { - "1": { - "name": "constant.language.intrinsicvariable.powerquery" - } - } - } - } -} diff --git a/lib/grammars/powershell.tmLanguage.json b/lib/grammars/powershell.tmLanguage.json deleted file mode 100644 index 61d40c6..0000000 --- a/lib/grammars/powershell.tmLanguage.json +++ /dev/null @@ -1,1029 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/PowerShell/EditorSyntax/blob/master/PowerShellSyntax.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/PowerShell/EditorSyntax/commit/742f0b5d4b60f5930c0b47fcc1f646860521296e", - "name": "powershell", - "scopeName": "source.powershell", - "patterns": [ - { - "begin": "<#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.block.begin.powershell" - } - }, - "end": "#>", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.block.end.powershell" - } - }, - "name": "comment.block.powershell", - "patterns": [ - { - "include": "#commentEmbeddedDocs" - } - ] - }, - { - "match": "[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>", - "name": "keyword.operator.redirection.powershell" - }, - { - "include": "#commands" - }, - { - "include": "#commentLine" - }, - { - "include": "#variable" - }, - { - "include": "#subexpression" - }, - { - "include": "#function" - }, - { - "include": "#attribute" - }, - { - "include": "#UsingDirective" - }, - { - "include": "#type" - }, - { - "include": "#hashtable" - }, - { - "include": "#doubleQuotedString" - }, - { - "include": "#scriptblock" - }, - { - "comment": "Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)", - "include": "#doubleQuotedStringEscapes" - }, - { - "begin": "['\\x{2018}-\\x{201B}]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.powershell" - } - }, - "end": "['\\x{2018}-\\x{201B}]", - "applyEndPatternLast": true, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.powershell" - } - }, - "name": "string.quoted.single.powershell", - "patterns": [ - { - "match": "['\\x{2018}-\\x{201B}]{2}", - "name": "constant.character.escape.powershell" - } - ] - }, - { - "begin": "(@[\"\\x{201C}-\\x{201E}])\\s*$", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.powershell" - } - }, - "end": "^[\"\\x{201C}-\\x{201E}]@", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.powershell" - } - }, - "name": "string.quoted.double.heredoc.powershell", - "patterns": [ - { - "include": "#variableNoProperty" - }, - { - "include": "#doubleQuotedStringEscapes" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "(@['\\x{2018}-\\x{201B}])\\s*$", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.powershell" - } - }, - "end": "^['\\x{2018}-\\x{201B}]@", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.powershell" - } - }, - "name": "string.quoted.single.heredoc.powershell" - }, - { - "include": "#numericConstant" - }, - { - "begin": "(@)(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.array.begin.powershell" - }, - "2": { - "name": "punctuation.section.group.begin.powershell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - } - }, - "name": "meta.group.array-expression.powershell", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "((\\$))(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.substatement.powershell" - }, - "2": { - "name": "punctuation.definition.subexpression.powershell" - }, - "3": { - "name": "punctuation.section.group.begin.powershell" - } - }, - "comment": "TODO: move to repo; make recursive.", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - } - }, - "name": "meta.group.complex.subexpression.powershell", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)", - "name": "support.function.powershell" - }, - { - "match": "(?<!\\w|-|\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)", - "name": "keyword.control.powershell" - }, - { - "match": "(?<!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)", - "name": "keyword.control.powershell" - }, - { - "begin": "(?<!\\w)(--%)(?!\\w)", - "beginCaptures": { - "1": { - "name": "keyword.control.powershell" - } - }, - "end": "$", - "patterns": [ - { - "match": ".+", - "name": "string.unquoted.powershell" - } - ], - "comment": "This should be moved to the repository at some point." - }, - { - "comment": "This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.", - "match": "(?<!\\w)((?i:hidden|static))(?!\\w)", - "name": "storage.modifier.powershell" - }, - { - "captures": { - "1": { - "name": "storage.type.powershell" - }, - "2": { - "name": "entity.name.function" - } - }, - "comment": "capture should be entity.name.type, but it doesn't provide a good color in the default schema.", - "match": "(?<!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b" - }, - { - "match": "(?<!\\w)-(?i:is(?:not)?|as)\\b", - "name": "keyword.operator.comparison.powershell" - }, - { - "match": "(?<!\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\p{L})", - "name": "keyword.operator.comparison.powershell" - }, - { - "match": "(?<!\\w)-(?i:join|split)(?!\\p{L})|!", - "name": "keyword.operator.unary.powershell" - }, - { - "match": "(?<!\\w)-(?i:and|or|not|xor)(?!\\p{L})|!", - "name": "keyword.operator.logical.powershell" - }, - { - "match": "(?<!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})", - "name": "keyword.operator.bitwise.powershell" - }, - { - "match": "(?<!\\w)-(?i:f)(?!\\p{L})", - "name": "keyword.operator.string-format.powershell" - }, - { - "match": "[+%*/-]?=|[+/*%-]", - "name": "keyword.operator.assignment.powershell" - }, - { - "match": "\\|{2}|&{2}|;", - "name": "punctuation.terminator.statement.powershell" - }, - { - "match": "&|(?<!\\w)\\.(?= )|`|,|\\|", - "name": "keyword.operator.other.powershell" - }, - { - "comment": "This is very imprecise, is there a syntax for 'must come after...' ", - "match": "(?<!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)", - "name": "keyword.operator.range.powershell" - } - ], - "repository": { - "commentLine": { - "begin": "(?<![`\\\\-])(#)#*", - "captures": { - "1": { - "name": "punctuation.definition.comment.powershell" - } - }, - "end": "$\\n?", - "name": "comment.line.powershell", - "patterns": [ - { - "include": "#commentEmbeddedDocs" - }, - { - "include": "#RequiresDirective" - } - ] - }, - "attribute": { - "begin": "(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b", - "beginCaptures": { - "1": { - "name": "punctuation.section.bracket.begin.powershell" - }, - "2": { - "name": "support.function.attribute.powershell" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.section.bracket.end.powershell" - } - }, - "name": "meta.attribute.powershell", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.powershell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "match": "(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)?", - "captures": { - "1": { - "name": "variable.parameter.attribute.powershell" - }, - "2": { - "name": "keyword.operator.assignment.powershell" - } - } - } - ] - } - ] - }, - "commands": { - "patterns": [ - { - "comment": "Verb-Noun pattern:", - "match": "(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b", - "name": "support.function.powershell" - }, - { - "comment": "Builtin cmdlets with reserved verbs", - "match": "(?<!\\w)(?i:foreach-object)(?!\\w)", - "name": "support.function.powershell" - }, - { - "comment": "Builtin cmdlets with reserved verbs", - "match": "(?<!\\w)(?i:where-object)(?!\\w)", - "name": "support.function.powershell" - }, - { - "comment": "Builtin cmdlets with reserved verbs", - "match": "(?<!\\w)(?i:sort-object)(?!\\w)", - "name": "support.function.powershell" - }, - { - "comment": "Builtin cmdlets with reserved verbs", - "match": "(?<!\\w)(?i:tee-object)(?!\\w)", - "name": "support.function.powershell" - } - ] - }, - "commentEmbeddedDocs": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.string.documentation.powershell" - }, - "2": { - "name": "keyword.operator.documentation.powershell" - } - }, - "comment": "these embedded doc keywords do not support arguments, must be the only thing on the line", - "match": "(?:^|\\G)(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\s*$", - "name": "comment.documentation.embedded.powershell" - }, - { - "captures": { - "1": { - "name": "constant.string.documentation.powershell" - }, - "2": { - "name": "keyword.operator.documentation.powershell" - }, - "3": { - "name": "keyword.operator.documentation.powershell" - } - }, - "comment": "these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match", - "match": "(?:^|\\G)(?i:\\s*(\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\s+(.+?)\\s*$", - "name": "comment.documentation.embedded.powershell" - } - ] - }, - "doubleQuotedStringEscapes": { - "patterns": [ - { - "match": "`[`0abefnrtv'\"\\x{2018}-\\x{201E}$]", - "name": "constant.character.escape.powershell" - }, - { - "include": "#unicodeEscape" - } - ] - }, - "unicodeEscape": { - "comment": "`u{xxxx} added in PowerShell 6.0", - "patterns": [ - { - "match": "`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g<1>{1,5})}", - "name": "constant.character.escape.powershell" - }, - { - "match": "`u(?:\\{[0-9a-fA-F]{,6}.)?", - "name": "invalid.character.escape.powershell" - } - ] - }, - "function": { - "begin": "^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)", - "beginCaptures": { - "0": { - "name": "meta.function.powershell" - }, - "1": { - "name": "storage.type.powershell" - }, - "2": { - "name": "storage.modifier.scope.powershell" - }, - "3": { - "name": "entity.name.function.powershell" - } - }, - "end": "(?=\\{|\\()", - "patterns": [ - { - "include": "#commentLine" - } - ] - }, - "subexpression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.powershell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - } - }, - "name": "meta.group.simple.subexpression.powershell", - "patterns": [ - { - "include": "$self" - } - ] - }, - "interpolation": { - "begin": "(((\\$)))((\\())", - "beginCaptures": { - "1": { - "name": "keyword.other.substatement.powershell" - }, - "2": { - "name": "punctuation.definition.substatement.powershell" - }, - "3": { - "name": "punctuation.section.embedded.substatement.begin.powershell" - }, - "4": { - "name": "punctuation.section.group.begin.powershell" - }, - "5": { - "name": "punctuation.section.embedded.substatement.begin.powershell" - } - }, - "contentName": "interpolated.complex.source.powershell", - "end": "(\\))", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - }, - "1": { - "name": "punctuation.section.embedded.substatement.end.powershell" - } - }, - "name": "meta.embedded.substatement.powershell", - "patterns": [ - { - "include": "$self" - } - ] - }, - "numericConstant": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.numeric.hex.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.octal.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(?<!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b" - } - ] - }, - "scriptblock": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.braces.begin.powershell" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.braces.end.powershell" - } - }, - "name": "meta.scriptblock.powershell", - "patterns": [ - { - "include": "$self" - } - ] - }, - "type": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.bracket.begin.powershell" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.bracket.end.powershell" - } - }, - "patterns": [ - { - "match": "(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+", - "name": "storage.type.powershell" - }, - { - "include": "$self" - } - ] - }, - "variable": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.language.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - } - }, - "comment": "These are special constants.", - "match": "(\\$)(?i:(False|Null|True))\\b" - }, - { - "captures": { - "0": { - "name": "support.constant.variable.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "3": { - "name": "variable.other.member.powershell" - } - }, - "comment": "These are the other built-in constants.", - "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b" - }, - { - "captures": { - "0": { - "name": "support.variable.automatic.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "3": { - "name": "variable.other.member.powershell" - } - }, - "comment": "Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.", - "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" - }, - { - "captures": { - "0": { - "name": "variable.language.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "3": { - "name": "variable.other.member.powershell" - } - }, - "comment": "Style preference variables as language variables so that they stand out.", - "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "storage.modifier.scope.powershell" - }, - "4": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "punctuation.section.braces.begin.powershell" - }, - "3": { - "name": "storage.modifier.scope.powershell" - }, - "5": { - "name": "punctuation.section.braces.end.powershell" - }, - "6": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "support.variable.drive.powershell" - }, - "4": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "punctuation.section.braces.begin.powershell" - }, - "3": { - "name": "support.variable.drive.powershell" - }, - "5": { - "name": "punctuation.section.braces.end.powershell" - }, - "6": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" - } - ] - }, - "UsingDirective": { - "match": "(?<!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))", - "captures": { - "1": { - "name": "keyword.control.using.powershell" - }, - "2": { - "name": "keyword.other.powershell" - }, - "3": { - "name": "variable.parameter.powershell" - } - } - }, - "RequiresDirective": { - "begin": "(?<=#)(?i:(requires))\\s", - "beginCaptures": { - "0": { - "name": "keyword.control.requires.powershell" - } - }, - "end": "$", - "name": "meta.requires.powershell", - "patterns": [ - { - "match": "\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)", - "name": "keyword.other.powershell" - }, - { - "match": "(?<!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*", - "name": "variable.parameter.powershell" - }, - { - "include": "#hashtable" - } - ] - }, - "variableNoProperty": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.language.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - } - }, - "comment": "These are special constants.", - "match": "(\\$)(?i:(False|Null|True))\\b" - }, - { - "captures": { - "0": { - "name": "support.constant.variable.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "3": { - "name": "variable.other.member.powershell" - } - }, - "comment": "These are the other built-in constants.", - "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b" - }, - { - "captures": { - "0": { - "name": "support.variable.automatic.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "3": { - "name": "variable.other.member.powershell" - } - }, - "comment": "Automatic variables are not constants, but they are read-only...", - "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)" - }, - { - "captures": { - "0": { - "name": "variable.language.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "3": { - "name": "variable.other.member.powershell" - } - }, - "comment": "Style preference variables as language variables so that they stand out.", - "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\b" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "storage.modifier.scope.powershell" - }, - "4": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "storage.modifier.scope.powershell" - }, - "4": { - "name": "keyword.other.powershell" - }, - "5": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "support.variable.drive.powershell" - }, - "4": { - "name": "variable.other.member.powershell" - } - }, - "match": "(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))" - }, - { - "captures": { - "0": { - "name": "variable.other.readwrite.powershell" - }, - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "punctuation.section.braces.begin" - }, - "3": { - "name": "support.variable.drive.powershell" - }, - "5": { - "name": "punctuation.section.braces.end" - } - }, - "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))" - } - ] - }, - "hashtable": { - "begin": "(@)(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.other.hashtable.begin.powershell" - }, - "2": { - "name": "punctuation.section.braces.begin.powershell" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.braces.end.powershell" - } - }, - "name": "meta.hashtable.powershell", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.powershell" - }, - "2": { - "name": "variable.other.readwrite.powershell" - }, - "3": { - "name": "punctuation.definition.string.end.powershell" - }, - "4": { - "name": "keyword.operator.assignment.powershell" - } - }, - "match": "\\b((?:\\'|\\\")?)(\\w+)((?:\\'|\\\")?)(?:\\s+)?(=)(?:\\s+)?", - "name": "meta.hashtable.assignment.powershell" - }, - { - "include": "#scriptblock" - }, - { - "include": "$self" - } - ] - }, - "doubleQuotedString": { - "begin": "[\"\\x{201C}-\\x{201E}]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.powershell" - } - }, - "end": "[\"\\x{201C}-\\x{201E}]", - "applyEndPatternLast": true, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.powershell" - } - }, - "name": "string.quoted.double.powershell", - "patterns": [ - { - "match": "(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b" - }, - { - "include": "#variableNoProperty" - }, - { - "include": "#doubleQuotedStringEscapes" - }, - { - "match": "[\"\\x{201C}-\\x{201E}]{2}", - "name": "constant.character.escape.powershell" - }, - { - "include": "#interpolation" - }, - { - "match": "`\\s*$", - "name": "keyword.other.powershell" - } - ] - } - } -} diff --git a/lib/grammars/prisma.tmLanguage.json b/lib/grammars/prisma.tmLanguage.json deleted file mode 100644 index b60095a..0000000 --- a/lib/grammars/prisma.tmLanguage.json +++ /dev/null @@ -1,441 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "prisma", - "scopeName": "source.prisma", - "fileTypes": ["prisma"], - "patterns": [ - { - "include": "#triple_comment" - }, - { - "include": "#double_comment" - }, - { - "include": "#model_block_definition" - }, - { - "include": "#config_block_definition" - }, - { - "include": "#enum_block_definition" - }, - { - "include": "#type_definition" - } - ], - "repository": { - "model_block_definition": { - "begin": "^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)", - "name": "source.prisma.embedded.source", - "beginCaptures": { - "1": { - "name": "storage.type.model.prisma" - }, - "2": { - "name": "entity.name.type.model.prisma" - }, - "3": { - "name": "punctuation.definition.tag.prisma" - } - }, - "patterns": [ - { - "include": "#triple_comment" - }, - { - "include": "#double_comment" - }, - { - "include": "#field_definition" - } - ], - "end": "\\s*\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.prisma" - } - } - }, - "enum_block_definition": { - "begin": "^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)", - "name": "source.prisma.embedded.source", - "beginCaptures": { - "1": { - "name": "storage.type.enum.prisma" - }, - "2": { - "name": "entity.name.type.enum.prisma" - }, - "3": { - "name": "punctuation.definition.tag.prisma" - } - }, - "patterns": [ - { - "include": "#triple_comment" - }, - { - "include": "#double_comment" - }, - { - "include": "#enum_value_definition" - } - ], - "end": "\\s*\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.prisma" - } - } - }, - "config_block_definition": { - "begin": "^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)", - "name": "source.prisma.embedded.source", - "beginCaptures": { - "1": { - "name": "storage.type.config.prisma" - }, - "2": { - "name": "entity.name.type.config.prisma" - }, - "3": { - "name": "punctuation.definition.tag.prisma" - } - }, - "patterns": [ - { - "include": "#triple_comment" - }, - { - "include": "#double_comment" - }, - { - "include": "#assignment" - } - ], - "end": "\\s*\\}", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.prisma" - } - } - }, - "assignment": { - "patterns": [ - { - "begin": "^\\s*(\\w+)\\s*(=)\\s*", - "beginCaptures": { - "1": { - "name": "variable.other.assignment.prisma" - }, - "2": { - "name": "keyword.operator.terraform" - } - }, - "patterns": [ - { - "include": "#value" - }, - { - "include": "#double_comment_inline" - } - ], - "end": "\\n" - } - ] - }, - "field_definition": { - "name": "scalar.field", - "patterns": [ - { - "match": "^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?", - "captures": { - "1": { - "name": "variable.other.assignment.prisma" - }, - "2": { - "name": "invalid.illegal.colon.prisma" - }, - "3": { - "name": "variable.language.relations.prisma" - }, - "4": { - "name": "support.type.primitive.prisma" - }, - "5": { - "name": "keyword.operator.list_type.prisma" - }, - "6": { - "name": "keyword.operator.optional_type.prisma" - }, - "7": { - "name": "invalid.illegal.required_type.prisma" - } - } - }, - { - "include": "#attribute_with_arguments" - }, - { - "include": "#attribute" - } - ] - }, - "type_definition": { - "patterns": [ - { - "match": "^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)", - "captures": { - "1": { - "name": "storage.type.type.prisma" - }, - "2": { - "name": "entity.name.type.type.prisma" - }, - "3": { - "name": "support.type.primitive.prisma" - } - } - }, - { - "include": "#attribute_with_arguments" - }, - { - "include": "#attribute" - } - ] - }, - "enum_value_definition": { - "patterns": [ - { - "match": "^\\s*(\\w+)\\s*", - "captures": { - "1": { - "name": "variable.other.assignment.prisma" - } - } - }, - { - "include": "#attribute_with_arguments" - }, - { - "include": "#attribute" - } - ] - }, - "attribute_with_arguments": { - "name": "source.prisma.attribute.with_arguments", - "begin": "(@@?[\\w\\.]+)(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.attribute.prisma" - }, - "2": { - "name": "punctuation.definition.tag.prisma" - } - }, - "patterns": [ - { - "include": "#named_argument" - }, - { - "include": "#value" - } - ], - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.prisma" - } - } - }, - "attribute": { - "name": "source.prisma.attribute", - "match": "(@@?[\\w\\.]+)", - "captures": { - "1": { - "name": "entity.name.function.attribute.prisma" - } - } - }, - "array": { - "name": "source.prisma.array", - "begin": "\\[", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.prisma" - } - }, - "patterns": [ - { - "include": "#value" - } - ], - "end": "\\]", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.prisma" - } - } - }, - "value": { - "name": "source.prisma.value", - "patterns": [ - { - "include": "#array" - }, - { - "include": "#functional" - }, - { - "include": "#literal" - } - ] - }, - "functional": { - "name": "source.prisma.functional", - "begin": "(\\w+)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.functional.prisma" - }, - "2": { - "name": "punctuation.definition.tag.prisma" - } - }, - "patterns": [ - { - "include": "#value" - } - ], - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.prisma" - } - } - }, - "literal": { - "name": "source.prisma.literal", - "patterns": [ - { - "include": "#boolean" - }, - { - "include": "#number" - }, - { - "include": "#double_quoted_string" - }, - { - "include": "#identifier" - } - ] - }, - "identifier": { - "patterns": [ - { - "match": "\\b(\\w)+\\b", - "name": "support.constant.constant.prisma" - } - ] - }, - "map_key": { - "name": "source.prisma.key", - "patterns": [ - { - "match": "(\\w+)\\s*(:)\\s*", - "captures": { - "1": { - "name": "variable.parameter.key.prisma" - }, - "2": { - "name": "punctuation.definition.separator.key-value.prisma" - } - } - } - ] - }, - "named_argument": { - "name": "source.prisma.named_argument", - "patterns": [ - { - "include": "#map_key" - }, - { - "include": "#value" - } - ] - }, - "triple_comment": { - "begin": "///", - "end": "$\\n?", - "name": "comment.prisma" - }, - "double_comment": { - "begin": "//", - "end": "$\\n?", - "name": "comment.prisma" - }, - "double_comment_inline": { - "match": "//[^\\n]*", - "name": "comment.prisma" - }, - "boolean": { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.prisma" - }, - "number": { - "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b", - "name": "constant.numeric.prisma" - }, - "double_quoted_string": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "string.quoted.double.start.prisma" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "string.quoted.double.end.prisma" - } - }, - "patterns": [ - { - "include": "#string_interpolation" - }, - { - "match": "([\\w\\-\\/\\._\\\\%@:\\?=]+)", - "name": "string.quoted.double.prisma" - } - ], - "name": "unnamed" - }, - "string_interpolation": { - "patterns": [ - { - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "keyword.control.interpolation.start.prisma" - } - }, - "end": "\\s*\\}", - "endCaptures": { - "0": { - "name": "keyword.control.interpolation.end.prisma" - } - }, - "name": "source.tag.embedded.source.prisma", - "patterns": [ - { - "include": "#value" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/prolog.tmLanguage.json b/lib/grammars/prolog.tmLanguage.json deleted file mode 100644 index b871d35..0000000 --- a/lib/grammars/prolog.tmLanguage.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "comment": "This Source Code Form is subject to the terms of the Mozilla Public License,\nv. 2.0. If a copy of the MPL was not distributed with this file, You can obtain\none at http://mozilla.org/MPL/2.0/.", - "name": "prolog", - "scopeName": "source.prolog", - "fileTypes": ["pl", "pro"], - "uuid": "df89928b-6612-475a-b414-f319d9b98664", - "patterns": [ - { - "include": "#comments" - }, - { - "name": "meta.clause.body.prolog", - "begin": "(?<=:-)\\s*", - "end": "(\\.)", - "endCaptures": { - "1": { - "name": "keyword.control.clause.bodyend.prolog" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#builtin" - }, - { - "include": "#controlandkeywords" - }, - { - "include": "#atom" - }, - { - "include": "#variable" - }, - { - "include": "#constants" - }, - { - "name": "meta.clause.body.prolog", - "match": "." - } - ] - }, - { - "name": "meta.clause.head.prolog", - "begin": "^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*:-.*)", - "beginCaptures": { - "1": { - "name": "entity.name.function.clause.prolog" - }, - "2": { - "name": "punctuation.definition.parameters.begin" - } - }, - "end": "((\\)?))\\s*(:-)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end" - }, - "3": { - "name": "keyword.control.clause.bodybegin.prolog" - } - }, - "patterns": [ - { - "include": "#atom" - }, - { - "include": "#variable" - }, - { - "include": "#constants" - } - ] - }, - { - "name": "meta.dcg.head.prolog", - "begin": "^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*-->.*)", - "beginCaptures": { - "1": { - "name": "entity.name.function.dcg.prolog" - }, - "2": { - "name": "punctuation.definition.parameters.begin" - } - }, - "end": "((\\)?))\\s*(-->)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end" - }, - "3": { - "name": "keyword.control.dcg.bodybegin.prolog" - } - }, - "patterns": [ - { - "include": "#atom" - }, - { - "include": "#variable" - }, - { - "include": "#constants" - } - ] - }, - { - "name": "meta.dcg.body.prolog", - "begin": "(?<=-->)\\s*", - "end": "(\\.)", - "endCaptures": { - "1": { - "name": "keyword.control.dcg.bodyend.prolog" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#controlandkeywords" - }, - { - "include": "#atom" - }, - { - "include": "#variable" - }, - { - "include": "#constants" - }, - { - "name": "meta.dcg.body.prolog", - "match": "." - } - ] - }, - { - "name": "meta.fact.prolog", - "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\(?)(?!.*(:-|-->).*)", - "beginCaptures": { - "1": { - "name": "entity.name.function.fact.prolog" - }, - "2": { - "name": "punctuation.definition.parameters.begin" - } - }, - "end": "((\\)?))\\s*(\\.)(?!\\d+)", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end" - }, - "3": { - "name": "keyword.control.fact.end.prolog" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#atom" - }, - { - "include": "#variable" - }, - { - "include": "#constants" - } - ] - } - ], - "repository": { - "atom": { - "patterns": [ - { - "name": "constant.other.atom.simple.prolog", - "match": "(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\\s*\\(|[a-zA-Z0-9_])" - }, - { - "name": "constant.other.atom.quoted.prolog", - "match": "'.*?'" - }, - { - "name": "constant.other.atom.emptylist.prolog", - "match": "\\[\\]" - } - ] - }, - "builtin": { - "patterns": [ - { - "name": "keyword.other", - "match": "\\b(op|nl|fail|dynamic|discontiguous|initialization|meta_predicate|module_transparent|multifile|public|thread_local|thread_initialization|volatile)\\b" - }, - { - "name": "support.function.builtin.prolog", - "match": "\\b(abolish|abort|abs|absolute_file_name|access_file|acos|acosh|acyclic_term|add_import_module|append|apropos|arg|asin|asinh|assert|asserta|assertz|at_end_of_stream|at_halt|atan|atanh|atom|atom_chars|atom_codes|atom_concat|atom_length|atom_number|atom_prefix|atom_string|atom_to_stem_list|atom_to_term|atomic|atomic_concat|atomic_list_concat|atomics_to_string|attach_packs|attr_portray_hook|attr_unify_hook|attribute_goals|attvar|autoload|autoload_path|b_getval|b_set_dict|b_setval|bagof|begin_tests|between|blob|break|byte_count|call_dcg|call_residue_vars|callable|cancel_halt|catch|ceil|ceiling|char_code|char_conversion|char_type|character_count|chdir|chr_leash|chr_notrace|chr_show_store|chr_trace|clause|clause_property|close|close_dde_conversation|close_table|code_type|collation_key|compare|compare_strings|compile_aux_clauses|compile_predicates|compiling|compound|compound_name_arguments|compound_name_arity|consult|context_module|copy_predicate_clauses|copy_stream_data|copy_term|copy_term_nat|copysign|cos|cosh|cputime|create_prolog_flag|current_arithmetic_function|current_atom|current_blob|current_char_conversion|current_engine|current_flag|current_format_predicate|current_functor|current_input|current_key|current_locale|current_module|current_op|current_output|current_predicate|current_prolog_flag|current_signal|current_stream|current_trie|cyclic_term|date_time_stamp|date_time_value|day_of_the_week|dcg_translate_rule|dde_current_connection|dde_current_service|dde_execute|dde_poke|dde_register_service|dde_request|dde_unregister_service|debug|debugging|default_module|del_attr|del_attrs|del_dict|delete_directory|delete_file|delete_import_module|deterministic|dict_create|dict_pairs|dif|directory_files|divmod|doc_browser|doc_collect|doc_load_library|doc_server|double_metaphone|downcase_atom|dtd|dtd_property|duplicate_term|dwim_match|dwim_predicate|e|edit|encoding|engine_create|engine_fetch|engine_next|engine_next_reified|engine_post|engine_self|engine_yield|ensure_loaded|epsilon|erase|erf|erfc|eval|exception|exists_directory|exists_file|exists_source|exp|expand_answer|expand_file_name|expand_file_search_path|expand_goal|expand_query|expand_term|explain|fast_read|fast_term_serialized|fast_write|file_base_name|file_directory_name|file_name_extension|file_search_path|fill_buffer|find_chr_constraint|findall|findnsols|flag|float|float_fractional_part|float_integer_part|floor|flush_output|forall|format|format_predicate|format_time|free_dtd|free_sgml_parser|free_table|freeze|frozen|functor|garbage_collect|garbage_collect_atoms|garbage_collect_clauses|gdebug|get|get_attr|get_attrs|get_byte|get_char|get_code|get_dict|get_flag|get_sgml_parser|get_single_char|get_string_code|get_table_attribute|get_time|getbit|getenv|goal_expansion|ground|gspy|gtrace|guitracer|gxref|gzopen|halt|help|import_module|in_pce_thread|in_pce_thread_sync|in_table|include|inf|instance|integer|iri_xml_namespace|is_absolute_file_name|is_dict|is_engine|is_list|is_stream|is_thread|keysort|known_licenses|leash|length|lgamma|library_directory|license|line_count|line_position|list_strings|listing|load_dtd|load_files|load_html|load_rdf|load_sgml|load_structure|load_test_files|load_xml|locale_create|locale_destroy|locale_property|locale_sort|log|lsb|make|make_directory|make_library_index|max|memberchk|message_hook|message_property|message_queue_create|message_queue_destroy|message_queue_property|message_to_string|min|module|module_property|msb|msort|mutex_create|mutex_destroy|mutex_lock|mutex_property|mutex_statistics|mutex_trylock|mutex_unlock|name|nan|nb_current|nb_delete|nb_getval|nb_link_dict|nb_linkarg|nb_linkval|nb_set_dict|nb_setarg|nb_setval|new_dtd|new_order_table|new_sgml_parser|new_table|nl|nodebug|noguitracer|nonvar|noprotocol|normalize_space|nospy|nospyall|notrace|nth_clause|nth_integer_root_and_remainder|number|number_chars|number_codes|number_string|numbervars|odbc_close_statement|odbc_connect|odbc_current_connection|odbc_current_table|odbc_data_source|odbc_debug|odbc_disconnect|odbc_driver_connect|odbc_end_transaction|odbc_execute|odbc_fetch|odbc_free_statement|odbc_get_connection|odbc_prepare|odbc_query|odbc_set_connection|odbc_statistics|odbc_table_column|odbc_table_foreign_key|odbc_table_primary_key|odbc_type|on_signal|op|open|open_dde_conversation|open_dtd|open_null_stream|open_resource|open_string|open_table|order_table_mapping|parse_time|passed|pce_dispatch|pdt_install_console|peek_byte|peek_char|peek_code|peek_string|phrase|plus|popcount|porter_stem|portray|portray_clause|powm|predicate_property|predsort|prefix_string|print|print_message|print_message_lines|process_rdf|profile|profiler|project_attributes|prolog|prolog_choice_attribute|prolog_current_choice|prolog_current_frame|prolog_cut_to|prolog_debug|prolog_exception_hook|prolog_file_type|prolog_frame_attribute|prolog_ide|prolog_list_goal|prolog_load_context|prolog_load_file|prolog_nodebug|prolog_skip_frame|prolog_skip_level|prolog_stack_property|prolog_to_os_filename|prolog_trace_interception|prompt|protocol|protocola|protocolling|put|put_attr|put_attrs|put_byte|put_char|put_code|put_dict|qcompile|qsave_program|random|random_float|random_property|rational|rationalize|rdf_write_xml|read|read_clause|read_history|read_link|read_pending_chars|read_pending_codes|read_string|read_table_fields|read_table_record|read_table_record_data|read_term|read_term_from_atom|recorda|recorded|recordz|redefine_system_predicate|reexport|reload_library_index|rename_file|require|reset|reset_profiler|resource|retract|retractall|round|run_tests|running_tests|same_file|same_term|see|seeing|seek|seen|select_dict|set_end_of_stream|set_flag|set_input|set_locale|set_module|set_output|set_prolog_IO|set_prolog_flag|set_prolog_stack|set_random|set_sgml_parser|set_stream|set_stream_position|set_test_options|setarg|setenv|setlocale|setof|sgml_parse|shell|shift|show_coverage|show_profile|sign|sin|sinh|size_file|skip|sleep|sort|source_exports|source_file|source_file_property|source_location|split_string|spy|sqrt|stamp_date_time|statistics|stream_pair|stream_position_data|stream_property|string|string_chars|string_code|string_codes|string_concat|string_length|string_lower|string_upper|strip_module|style_check|sub_atom|sub_atom_icasechk|sub_string|subsumes_term|succ|suite|swritef|tab|table_previous_record|table_start_of_record|table_version|table_window|tan|tanh|tell|telling|term_attvars|term_expansion|term_hash|term_string|term_subsumer|term_to_atom|term_variables|test|test_report|text_to_string|thread_at_exit|thread_create|thread_detach|thread_exit|thread_get_message|thread_join|thread_message_hook|thread_peek_message|thread_property|thread_self|thread_send_message|thread_setconcurrency|thread_signal|thread_statistics|throw|time|time_file|tmp_file|tmp_file_stream|tokenize_atom|told|trace|tracing|trie_destroy|trie_gen|trie_insert|trie_insert_new|trie_lookup|trie_new|trie_property|trie_term|trim_stacks|truncate|tty_get_capability|tty_goto|tty_put|tty_size|ttyflush|unaccent_atom|unifiable|unify_with_occurs_check|unix|unknown|unload_file|unsetenv|upcase_atom|use_module|var|var_number|var_property|variant_hash|version|visible|wait_for_input|when|wildcard_match|win_add_dll_directory|win_exec|win_folder|win_has_menu|win_insert_menu|win_insert_menu_item|win_registry_get_value|win_remove_dll_directory|win_shell|win_window_pos|window_title|with_mutex|with_output_to|working_directory|write|write_canonical|write_length|write_term|writef|writeln|writeq|xml_is_dom|xml_to_rdf|zopen)\\b" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.line.percent-sign.prolog", - "match": "%.*" - }, - { - "name": "comment.block.prolog", - "begin": "/\\*", - "end": "\\*/", - "captures": { - "0": { - "name": "punctuation.definition.comment.prolog" - } - } - } - ] - }, - "constants": { - "patterns": [ - { - "name": "constant.numeric.integer.prolog", - "match": "(?<![a-zA-Z]|/)(\\d+|(\\d+\\.\\d+))" - }, - { - "name": "string.quoted.double.prolog", - "match": "\".*?\"" - } - ] - }, - "controlandkeywords": { - "patterns": [ - { - "name": "meta.if.prolog", - "begin": "(->)", - "beginCaptures": { - "1": { - "name": "keyword.control.if.prolog" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "keyword.control.else.prolog" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "include": "#builtin" - }, - { - "include": "#comments" - }, - { - "include": "#atom" - }, - { - "include": "#variable" - }, - { - "name": "meta.if.body.prolog", - "match": "." - } - ] - }, - { - "name": "keyword.control.cut.prolog", - "match": "!" - }, - { - "name": "keyword.operator.prolog", - "match": "(\\s(is)\\s)|=:=|=\\.\\.|=?\\\\?=|\\\\\\+|@?>|@?=?<|\\+|\\*|\\-" - } - ] - }, - "variable": { - "patterns": [ - { - "name": "variable.parameter.uppercase.prolog", - "match": "(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*" - }, - { - "name": "variable.language.anonymous.prolog", - "match": "(?<!\\w)_" - } - ] - } - } -} diff --git a/lib/grammars/proto.tmLanguage.json b/lib/grammars/proto.tmLanguage.json deleted file mode 100644 index 3d55f7a..0000000 --- a/lib/grammars/proto.tmLanguage.json +++ /dev/null @@ -1,504 +0,0 @@ -{ - "name": "proto", - "scopeName": "source.proto", - "fileTypes": ["proto"], - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#syntax" - }, - { - "include": "#package" - }, - { - "include": "#import" - }, - { - "include": "#optionStmt" - }, - { - "include": "#message" - }, - { - "include": "#enum" - }, - { - "include": "#service" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "name": "comment.block.proto", - "begin": "/\\*", - "end": "\\*/" - }, - { - "name": "comment.line.double-slash.proto", - "begin": "//", - "end": "$\\n?" - } - ] - }, - "syntax": { - "match": "\\s*(syntax)\\s*(=)\\s*(\"proto[23]\")\\s*(;)", - "captures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "keyword.operator.assignment.proto" - }, - "3": { - "name": "string.quoted.double.proto.syntax" - }, - "4": { - "name": "punctuation.terminator.proto" - } - } - }, - "package": { - "match": "\\s*(package)\\s+([\\w.]+)\\s*(;)", - "captures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "string.unquoted.proto.package" - }, - "3": { - "name": "punctuation.terminator.proto" - } - } - }, - "import": { - "match": "\\s*(import)\\s+(weak|public)?\\s*(\"[^\"]+\")\\s*(;)", - "captures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "keyword.other.proto" - }, - "3": { - "name": "string.quoted.double.proto.import" - }, - "4": { - "name": "punctuation.terminator.proto" - } - } - }, - "optionStmt": { - "begin": "(option)\\s+(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*\\s*(=)", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "support.other.proto" - }, - "3": { - "name": "support.other.proto" - }, - "4": { - "name": "support.other.proto" - }, - "5": { - "name": "keyword.operator.assignment.proto" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "include": "#constants" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#subMsgOption" - } - ] - }, - "subMsgOption": { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#kv" - }, - { - "include": "#comments" - } - ] - }, - "kv": { - "begin": "(\\w+)\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "punctuation.separator.key-value.proto" - } - }, - "end": "(;)|,|(?=[}/_a-zA-Z])", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "include": "#constants" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#subMsgOption" - } - ] - }, - "fieldOptions": { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#constants" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#subMsgOption" - }, - { - "include": "#optionName" - } - ] - }, - "optionName": { - "match": "(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*", - "captures": { - "1": { - "name": "support.other.proto" - }, - "2": { - "name": "support.other.proto" - }, - "3": { - "name": "support.other.proto" - } - } - }, - "message": { - "begin": "(message|extend)(\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\s*)(\\{)?", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "3": { - "name": "entity.name.class.message.proto" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#reserved" - }, - { - "include": "$self" - }, - { - "include": "#enum" - }, - { - "include": "#optionStmt" - }, - { - "include": "#comments" - }, - { - "include": "#oneof" - }, - { - "include": "#field" - }, - { - "include": "#mapfield" - } - ] - }, - "reserved": { - "begin": "(reserved)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "match": "(\\d+)(\\s+(to)\\s+(\\d+))?", - "captures": { - "1": { - "name": "constant.numeric.proto" - }, - "3": { - "name": "keyword.other.proto" - }, - "4": { - "name": "constant.numeric.proto" - } - } - }, - { - "include": "#string" - } - ] - }, - "field": { - "begin": "\\s*(optional|repeated|required)?\\s*\\b([\\w.]+)\\s+(\\w+)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)", - "beginCaptures": { - "1": { - "name": "storage.modifier.proto" - }, - "2": { - "name": "storage.type.proto" - }, - "3": { - "name": "variable.other.proto" - }, - "4": { - "name": "keyword.operator.assignment.proto" - }, - "5": { - "name": "constant.numeric.proto" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "include": "#fieldOptions" - } - ] - }, - "mapfield": { - "begin": "\\s*(map)\\s*(<)\\s*([\\w.]+)\\s*,\\s*([\\w.]+)\\s*(>)\\s+(\\w+)\\s*(=)\\s*(\\d+)", - "beginCaptures": { - "1": { - "name": "storage.type.proto" - }, - "2": { - "name": "punctuation.definition.typeparameters.begin.proto" - }, - "3": { - "name": "storage.type.proto" - }, - "4": { - "name": "storage.type.proto" - }, - "5": { - "name": "punctuation.definition.typeparameters.end.proto" - }, - "6": { - "name": "variable.other.proto" - }, - "7": { - "name": "keyword.operator.assignment.proto" - }, - "8": { - "name": "constant.numeric.proto" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "include": "#fieldOptions" - } - ] - }, - "oneof": { - "begin": "(oneof)\\s+([A-Za-z][A-Za-z0-9_]*)\\s*\\{?", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "variable.other.proto" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#optionStmt" - }, - { - "include": "#comments" - }, - { - "include": "#field" - } - ] - }, - "enum": { - "begin": "(enum)(\\s+)([A-Za-z][A-Za-z0-9_]*)(\\s*)(\\{)?", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "3": { - "name": "entity.name.class.proto" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#reserved" - }, - { - "include": "#optionStmt" - }, - { - "include": "#comments" - }, - { - "begin": "([A-Za-z][A-Za-z0-9_]*)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)", - "beginCaptures": { - "1": { - "name": "variable.other.proto" - }, - "2": { - "name": "keyword.operator.assignment.proto" - }, - "3": { - "name": "constant.numeric.proto" - } - }, - "end": "(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "include": "#fieldOptions" - } - ] - } - ] - }, - "service": { - "begin": "(service)\\s+([A-Za-z][A-Za-z0-9_.]*)\\s*\\{?", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "entity.name.class.message.proto" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#optionStmt" - }, - { - "include": "#method" - } - ] - }, - "method": { - "begin": "(rpc)\\s+([A-Za-z][A-Za-z0-9_]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.proto" - }, - "2": { - "name": "entity.name.function" - } - }, - "end": "\\}|(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.proto" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#optionStmt" - }, - { - "include": "#rpcKeywords" - }, - { - "include": "#ident" - } - ] - }, - "rpcKeywords": { - "match": "\\b(stream|returns)\\b", - "name": "keyword.other.proto" - }, - "ident": { - "match": "[A-Za-z][A-Za-z0-9_]*", - "name": "entity.name.class.proto" - }, - "constants": { - "match": "\\b(true|false|max|[A-Z_]+)\\b", - "name": "constant.language.proto" - }, - "storagetypes": { - "match": "\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b", - "name": "storage.type.proto" - }, - "string": { - "match": "('([^']|\\')*')|(\"([^\"]|\\\")*\")", - "name": "string.quoted.double.proto" - }, - "number": { - "name": "constant.numeric.proto", - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b" - } - } -} diff --git a/lib/grammars/pug.tmLanguage.json b/lib/grammars/pug.tmLanguage.json deleted file mode 100644 index 44700bc..0000000 --- a/lib/grammars/pug.tmLanguage.json +++ /dev/null @@ -1,1038 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/davidrios/pug-tmbundle/blob/master/Syntaxes/Pug.JSON-tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/davidrios/pug-tmbundle/commit/ae1dd60ca4aa4b45617f236d584216cd8d19eecf", - "name": "pug", - "scopeName": "text.pug", - "patterns": [ - { - "match": "^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?", - "name": "meta.tag.sgml.doctype.html", - "comment": "Doctype declaration." - }, - { - "begin": "^(\\s*)//-", - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "comment.unbuffered.block.pug", - "comment": "Unbuffered (pug-only) comments." - }, - { - "begin": "^(\\s*)//", - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "string.comment.buffered.block.pug", - "comment": "Buffered (html) comments.", - "patterns": [ - { - "captures": { - "1": { - "name": "invalid.illegal.comment.comment.block.pug" - } - }, - "match": "^\\s*(//)(?!-)", - "name": "string.comment.buffered.block.pug", - "comment": "Buffered comments inside buffered comments will generate invalid html." - } - ] - }, - { - "begin": "<!--", - "end": "--\\s*>", - "name": "comment.unbuffered.block.pug", - "patterns": [ - { - "match": "--", - "name": "invalid.illegal.comment.comment.block.pug" - } - ] - }, - { - "begin": "^(\\s*)-$", - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "source.js", - "comment": "Unbuffered code block.", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))", - "beginCaptures": { - "2": { - "name": "entity.name.tag.pug" - } - }, - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "meta.tag.other", - "comment": "Script tag with JavaScript code.", - "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" - } - }, - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "meta.tag.other", - "comment": "Style tag with CSS code.", - "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" - } - }, - "end": "^(?!(\\1\\s)|\\s*$)", - "comment": "Generic Pug filter.", - "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" - } - }, - "end": "^(?!(\\1\\s)|\\s*$)", - "comment": "Generated from dot_block_tag.py", - "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*", - "end": "$", - "comment": "All constructs that generally span a single line starting with any number of white-spaces.", - "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": "\\|", - "end": "$", - "name": "text.block.pipe.pug", - "comment": "Tag pipe text line.", - "patterns": [ - { - "include": "#inline_pug" - }, - { - "include": "#embedded_html" - }, - { - "include": "#html_entity" - }, - { - "include": "#interpolated_value" - }, - { - "include": "#interpolated_error" - } - ] - }, - { - "include": "#printed_expression" - }, - { - "begin": "\\G(?=(#[^\\{\\w-])|[^\\w.#])", - "end": "$", - "comment": "Line starting with characters incompatible with tag name/id/class is standalone text.", - "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": { - "blocks_and_includes": { - "captures": { - "1": { - "name": "storage.type.import.include.pug" - }, - "4": { - "name": "variable.control.import.include.pug" - } - }, - "match": "(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$", - "name": "meta.first-class.pug", - "comment": "Template blocks and includes." - }, - "unbuffered_code": { - "begin": "(-|(([a-zA-Z0-9_]+)\\s+=))", - "beginCaptures": { - "3": { - "name": "variable.parameter.javascript.embedded.pug" - } - }, - "end": "(?=\\])|(({\\s*)?$)", - "name": "source.js", - "comment": "name = function() {}", - "patterns": [ - { - "include": "#js_brackets" - }, - { - "include": "#babel_parens" - }, - { - "include": "source.js" - } - ] - }, - "mixin_definition": { - "match": "(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$", - "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" - } - } - }, - "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" - }, - { - "match": "([^\\s(),=/]+)\\s*=\\s*", - "captures": { - "1": { - "name": "meta.tag.other entity.other.attribute-name.tag.pug" - } - } - }, - { - "include": "source.js" - } - ] - }, - { - "include": "#tag_attributes" - } - ] - }, - "flow_control": { - "begin": "(for|if|else if|else|until|while|unless|case)(\\s+|$)", - "captures": { - "1": { - "name": "storage.type.function.pug" - } - }, - "end": "$", - "name": "meta.control.flow.pug", - "comment": "Pug control flow.", - "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" - } - ] - } - ] - }, - "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" - } - ] - }, - "case_conds": { - "begin": "(default|when)((\\s+|(?=:))|$)", - "captures": { - "1": { - "name": "storage.type.function.pug" - } - }, - "end": "$", - "name": "meta.control.flow.pug", - "comment": "Pug case conditionals.", - "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" - } - ] - } - ] - }, - "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" - }, - { - "match": "((\\.)\\s+$)|((:)\\s*$)", - "captures": { - "2": { - "name": "invalid.illegal.end.tag.pug" - }, - "4": { - "name": "invalid.illegal.end.tag.pug" - } - } - }, - { - "include": "#printed_expression" - }, - { - "include": "#tag_text" - } - ] - }, - "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_id": { - "match": "#[\\w-]+", - "name": "meta.selector.css entity.other.attribute-name.id.css.pug" - }, - "tag_classes": { - "match": "\\.([^\\w-])?[\\w-]*", - "captures": { - "1": { - "name": "invalid.illegal.tag.pug" - } - }, - "name": "meta.selector.css entity.other.attribute-name.class.css.pug" - }, - "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_attribute_name": { - "match": "([^\\s(),=/!]+)\\s*", - "captures": { - "1": { - "name": "entity.other.attribute-name.tag.pug" - } - } - }, - "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_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_text": { - "begin": "(?=.)", - "end": "$", - "patterns": [ - { - "include": "#inline_pug" - }, - { - "include": "#embedded_html" - }, - { - "include": "#html_entity" - }, - { - "include": "#interpolated_value" - }, - { - "include": "#interpolated_error" - } - ] - }, - "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" - } - ] - }, - "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" - } - ] - }, - "html_entity": { - "patterns": [ - { - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "name": "constant.character.entity.html.text.pug" - }, - { - "match": "[<>&]", - "name": "invalid.illegal.html_entity.text.pug" - } - ] - }, - "interpolated_value": { - "begin": "(?<!\\\\)[#!]\\{(?=.*?\\})", - "end": "\\}", - "name": "string.interpolated.pug", - "patterns": [ - { - "match": "{", - "name": "invalid.illegal.tag.pug" - }, - { - "include": "source.js" - } - ] - }, - "interpolated_error": { - "match": "(?<!\\\\)[#!]\\{(?=[^}]*$)", - "name": "invalid.illegal.tag.pug" - }, - "printed_expression": { - "begin": "(!?\\=)\\s*", - "captures": { - "1": { - "name": "constant" - } - }, - "end": "(?=\\])|$", - "name": "source.js", - "patterns": [ - { - "include": "#js_brackets" - }, - { - "include": "source.js" - } - ] - }, - "embedded_html": { - "begin": "(?=<[^>]*>)", - "end": "$|(?=>)", - "name": "html", - "patterns": [ - { - "include": "text.html.basic" - }, - { - "include": "#interpolated_value" - }, - { - "include": "#interpolated_error" - } - ] - }, - "js_parens": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#js_parens" - }, - { - "include": "source.js" - } - ] - }, - "js_brackets": { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#js_brackets" - }, - { - "include": "source.js" - } - ] - }, - "js_braces": { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#js_braces" - }, - { - "include": "source.js" - } - ] - }, - "babel_parens": { - "begin": "\\(", - "end": "\\)|(({\\s*)?$)", - "patterns": [ - { - "include": "#babel_parens" - }, - { - "include": "source.js" - } - ] - } - } -} diff --git a/lib/grammars/puppet.tmLanguage.json b/lib/grammars/puppet.tmLanguage.json deleted file mode 100644 index ad50dd4..0000000 --- a/lib/grammars/puppet.tmLanguage.json +++ /dev/null @@ -1,774 +0,0 @@ -{ - "scopeName": "source.puppet", - "fileTypes": ["pp"], - "foldingStartMarker": "(^\\s*/\\*|(\\{|\\[|\\()\\s*$)", - "foldingStopMarker": "(\\*/|^\\s*(\\}|\\]|\\)))", - "name": "puppet", - "patterns": [ - { - "include": "#line_comment" - }, - { - "include": "#constants" - }, - { - "begin": "^\\s*/\\*", - "end": "\\*/", - "name": "comment.block.puppet" - }, - { - "begin": "\\b(node)\\b", - "captures": { - "1": { - "name": "storage.type.puppet" - }, - "2": { - "name": "entity.name.type.class.puppet" - } - }, - "end": "(?={)", - "name": "meta.definition.class.puppet", - "patterns": [ - { - "match": "\\bdefault\\b", - "name": "keyword.puppet" - }, - { - "include": "#strings" - }, - { - "include": "#regex-literal" - } - ] - }, - { - "begin": "\\b(class)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*", - "captures": { - "1": { - "name": "storage.type.puppet" - }, - "2": { - "name": "entity.name.type.class.puppet" - } - }, - "end": "(?={)", - "name": "meta.definition.class.puppet", - "patterns": [ - { - "begin": "\\b(inherits)\\b\\s+", - "captures": { - "1": { - "name": "storage.modifier.puppet" - } - }, - "end": "(?=\\(|{)", - "name": "meta.definition.class.inherits.puppet", - "patterns": [ - { - "match": "\\b((?:[-_A-Za-z0-9\".]+::)*[-_A-Za-z0-9\".]+)\\b", - "name": "support.type.puppet" - } - ] - }, - { - "include": "#line_comment" - }, - { - "include": "#resource-parameters" - }, - { - "include": "#parameter-default-types" - } - ] - }, - { - "begin": "^\\s*(plan)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*", - "captures": { - "1": { - "name": "storage.type.puppet" - }, - "2": { - "name": "entity.name.type.plan.puppet" - } - }, - "end": "(?={)", - "name": "meta.definition.plan.puppet", - "patterns": [ - { - "include": "#line_comment" - }, - { - "include": "#resource-parameters" - }, - { - "include": "#parameter-default-types" - } - ] - }, - { - "begin": "^\\s*(define|function)\\s+((?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*(\\()", - "captures": { - "1": { - "name": "storage.type.function.puppet" - }, - "2": { - "name": "entity.name.function.puppet" - } - }, - "end": "(?={)", - "name": "meta.function.puppet", - "patterns": [ - { - "include": "#line_comment" - }, - { - "include": "#resource-parameters" - }, - { - "include": "#parameter-default-types" - } - ] - }, - { - "match": "\\b(case|else|elsif|if|unless)(?!::)\\b", - "captures": { - "1": { - "name": "keyword.control.puppet" - } - } - }, - { - "include": "#keywords" - }, - { - "include": "#resource-definition" - }, - { - "include": "#heredoc" - }, - { - "include": "#strings" - }, - { - "include": "#puppet-datatypes" - }, - { - "include": "#array" - }, - { - "match": "((\\$?)\"?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\"?):(?=\\s+|$)", - "name": "entity.name.section.puppet" - }, - { - "include": "#numbers" - }, - { - "include": "#variable" - }, - { - "begin": "\\b(import|include|contain|require)\\s+(?!.*=>)", - "beginCaptures": { - "1": { - "name": "keyword.control.import.include.puppet" - } - }, - "end": "(?=\\s|$)", - "contentName": "variable.parameter.include.puppet", - "name": "meta.include.puppet" - }, - { - "match": "\\b\\w+\\s*(?==>)\\s*", - "name": "constant.other.key.puppet" - }, - { - "match": "(?<={)\\s*\\w+\\s*(?=})", - "name": "constant.other.bareword.puppet" - }, - { - "match": "\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\b(?!.*{)", - "name": "support.function.puppet" - }, - { - "match": "=>", - "name": "punctuation.separator.key-value.puppet" - }, - { - "match": "->", - "name": "keyword.control.orderarrow.puppet" - }, - { - "match": "~>", - "name": "keyword.control.notifyarrow.puppet" - }, - { - "include": "#regex-literal" - } - ], - "repository": { - "constants": { - "patterns": [ - { - "match": "\\b(absent|directory|false|file|present|running|stopped|true)\\b(?!.*{)", - "name": "constant.language.puppet" - } - ] - }, - "double-quoted-string": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.puppet" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.puppet" - } - }, - "name": "string.quoted.double.interpolated.puppet", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_puppet" - } - ] - }, - "interpolated_puppet": { - "patterns": [ - { - "begin": "(\\${)(\\d+)", - "beginCaptures": { - "1": { - "name": "punctuation.section.embedded.begin.puppet" - }, - "2": { - "name": "source.puppet variable.other.readwrite.global.pre-defined.puppet" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.puppet" - } - }, - "contentName": "source.puppet", - "name": "meta.embedded.line.puppet", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(\\${)(_[a-zA-Z0-9_]*)", - "beginCaptures": { - "1": { - "name": "punctuation.section.embedded.begin.puppet" - }, - "2": { - "name": "source.puppet variable.other.readwrite.global.puppet" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.puppet" - } - }, - "contentName": "source.puppet", - "name": "meta.embedded.line.puppet", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)", - "beginCaptures": { - "1": { - "name": "punctuation.section.embedded.begin.puppet" - }, - "2": { - "name": "source.puppet variable.other.readwrite.global.puppet" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.puppet" - } - }, - "contentName": "source.puppet", - "name": "meta.embedded.line.puppet", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\${", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.puppet" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.puppet" - } - }, - "contentName": "source.puppet", - "name": "meta.embedded.line.puppet", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "escaped_char": { - "match": "\\\\.", - "name": "constant.character.escape.puppet" - }, - "line_comment": { - "patterns": [ - { - "captures": { - "1": { - "name": "comment.line.number-sign.puppet" - }, - "2": { - "name": "punctuation.definition.comment.puppet" - } - }, - "match": "^((#).*$\\n?)", - "name": "meta.comment.full-line.puppet" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.puppet" - } - }, - "match": "(#).*$\\n?", - "name": "comment.line.number-sign.puppet" - } - ] - }, - "nested_braces": { - "begin": "\\{", - "captures": { - "1": { - "name": "punctuation.section.scope.puppet" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces" - } - ] - }, - "nested_braces_interpolated": { - "begin": "\\{", - "captures": { - "1": { - "name": "punctuation.section.scope.puppet" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - "nested_brackets": { - "begin": "\\[", - "captures": { - "1": { - "name": "punctuation.section.scope.puppet" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets" - } - ] - }, - "nested_brackets_interpolated": { - "begin": "\\[", - "captures": { - "1": { - "name": "punctuation.section.scope.puppet" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - "nested_parens": { - "begin": "\\(", - "captures": { - "1": { - "name": "punctuation.section.scope.puppet" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens" - } - ] - }, - "nested_parens_interpolated": { - "begin": "\\(", - "captures": { - "1": { - "name": "punctuation.section.scope.puppet" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - "parameter-default-types": { - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#variable" - }, - { - "include": "#hash" - }, - { - "include": "#array" - }, - { - "include": "#function_call" - }, - { - "include": "#constants" - }, - { - "include": "#puppet-datatypes" - } - ] - }, - "resource-parameters": { - "patterns": [ - { - "captures": { - "1": { - "name": "variable.other.puppet" - }, - "2": { - "name": "punctuation.definition.variable.puppet" - } - }, - "match": "((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=,|\\))", - "name": "meta.function.argument.puppet" - }, - { - "begin": "((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*(=)\\s*)\\s*", - "captures": { - "1": { - "name": "variable.other.puppet" - }, - "2": { - "name": "punctuation.definition.variable.puppet" - }, - "3": { - "name": "keyword.operator.assignment.puppet" - } - }, - "end": "(?=,|\\))", - "name": "meta.function.argument.puppet", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - "array": { - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.array.begin.puppet" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.puppet" - } - }, - "name": "meta.array.puppet", - "patterns": [ - { - "match": "\\s*,\\s*" - }, - { - "include": "#parameter-default-types" - }, - { - "include": "#line_comment" - } - ] - }, - "hash": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.hash.begin.puppet" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.hash.end.puppet" - } - }, - "name": "meta.hash.puppet", - "patterns": [ - { - "match": "\\b\\w+\\s*(?==>)\\s*", - "name": "constant.other.key.puppet" - }, - { - "include": "#parameter-default-types" - }, - { - "include": "#line_comment" - } - ] - }, - "single-quoted-string": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.puppet" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.puppet" - } - }, - "name": "string.quoted.single.puppet", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#double-quoted-string" - }, - { - "include": "#single-quoted-string" - } - ] - }, - "keywords": { - "match": "\\b(undef)\\b", - "captures": { - "1": { - "name": "keyword.puppet" - } - } - }, - "numbers": { - "patterns": [ - { - "comment": "HEX 0x 0-f", - "match": "(?<!\\w|\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\w|\\d)", - "name": "constant.numeric.hexadecimal.puppet" - }, - { - "comment": "INTEGERS [(+|-)] digits [e [(+|-)] digits]", - "match": "(?<!\\w|\\.)([-+]?)(?<!\\d)\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d|\\.)", - "name": "constant.numeric.integer.puppet" - }, - { - "comment": "FLOAT [(+|-)] digits . digits [e [(+|-)] digits]", - "match": "(?<!\\w)([-+]?)\\d+\\.\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d)", - "name": "constant.numeric.integer.puppet" - } - ] - }, - "resource-definition": { - "begin": "(?:^|\\b)((?#Toplevel Bareword)::[a-z][a-z0-9_]*|(?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*({)\\s*", - "beginCaptures": { - "1": { - "name": "meta.definition.resource.puppet storage.type.puppet" - } - }, - "end": ":", - "contentName": "entity.name.section.puppet", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#variable" - }, - { - "include": "#array" - } - ] - }, - "variable": { - "patterns": [ - { - "match": "(\\$)(\\d+)", - "name": "variable.other.readwrite.global.pre-defined.puppet", - "captures": { - "1": { - "name": "punctuation.definition.variable.puppet" - } - } - }, - { - "match": "(\\$)_[a-zA-Z0-9_]*", - "name": "variable.other.readwrite.global.puppet", - "captures": { - "1": { - "name": "punctuation.definition.variable.puppet" - } - } - }, - { - "match": "(\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)", - "name": "variable.other.readwrite.global.puppet", - "captures": { - "1": { - "name": "punctuation.definition.variable.puppet" - } - } - } - ] - }, - "function_call": { - "begin": "([a-zA-Z_][a-zA-Z0-9_]*)(\\()", - "end": "\\)", - "name": "meta.function-call.puppet", - "patterns": [ - { - "include": "#parameter-default-types" - }, - { - "match": ",", - "name": "punctuation.separator.parameters.puppet" - } - ] - }, - "puppet-datatypes": { - "patterns": [ - { - "comment": "Puppet Data type", - "match": "(?<![a-zA-Z\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])", - "name": "storage.type.puppet" - } - ] - }, - "regex-literal": { - "match": "(\\/)(.+?)(?:[^\\\\]\\/)", - "name": "string.regexp.literal.puppet", - "comment": "Puppet Regular expression literal without interpolation" - }, - "heredoc": { - "patterns": [ - { - "begin": "@\\([[:blank:]]*\"([^:\\/) \\t]+)\"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.puppet" - } - }, - "end": "^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.puppet" - } - }, - "name": "string.interpolated.heredoc.puppet", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_puppet" - } - ] - }, - { - "begin": "@\\([[:blank:]]*([^:\\/) \\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.puppet" - } - }, - "end": "^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.puppet" - } - }, - "name": "string.unquoted.heredoc.puppet" - } - ] - } - } -} diff --git a/lib/grammars/purescript.tmLanguage.json b/lib/grammars/purescript.tmLanguage.json deleted file mode 100644 index 333c6a0..0000000 --- a/lib/grammars/purescript.tmLanguage.json +++ /dev/null @@ -1,886 +0,0 @@ -{ - "fileTypes": ["purs"], - "name": "purescript", - "scopeName": "source.purescript", - "macros": { - "functionNameOne": "[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", - "classNameOne": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", - "functionName": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", - "className": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*", - "operatorChar": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]", - "operator": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+", - "operatorFun": "(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))", - "character": "(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))", - "classConstraint": "(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))", - "functionTypeDeclaration": "([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)", - "ctorArgs": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)", - "ctor": "(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))", - "typeDecl": ".+?", - "indentChar": "[ \\t]", - "indentBlockEnd": "^(?!\\1[ \\t]|[ \\t]*$)", - "maybeBirdTrack": "^" - }, - "patterns": [ - { - "name": "keyword.operator.function.infix.purescript", - "match": "(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)", - "captures": { - "1": { - "name": "punctuation.definition.entity.purescript" - }, - "2": { - "name": "punctuation.definition.entity.purescript" - } - } - }, - { - "name": "meta.declaration.module.purescript", - "begin": "^\\s*\\b(module)(?!')\\b", - "end": "(where)", - "beginCaptures": { - "1": { - "name": "keyword.other.purescript" - } - }, - "endCaptures": { - "1": { - "name": "keyword.other.purescript" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#module_name" - }, - { - "include": "#module_exports" - }, - { - "name": "invalid.purescript", - "match": "[a-z]+" - } - ] - }, - { - "name": "meta.declaration.typeclass.purescript", - "begin": "^\\s*\\b(class)(?!')\\b", - "end": "\\b(where)\\b|$", - "beginCaptures": { - "1": { - "name": "storage.type.class.purescript" - } - }, - "endCaptures": { - "1": { - "name": "keyword.other.purescript" - } - }, - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "name": "meta.declaration.instance.purescript", - "begin": "^\\s*\\b(else\\s+)?(derive\\s+)?(newtype\\s+)?(instance)(?!')\\b", - "end": "\\b(where)\\b|$", - "contentName": "meta.type-signature.purescript", - "beginCaptures": { - "1": { - "name": "keyword.other.purescript" - }, - "2": { - "name": "keyword.other.purescript" - }, - "3": { - "name": "keyword.other.purescript" - }, - "4": { - "name": "keyword.other.purescript" - } - }, - "endCaptures": { - "1": { - "name": "keyword.other.purescript" - } - }, - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "name": "meta.foreign.data.purescript", - "begin": "^(\\s*)(foreign)\\s+(import)\\s+(data)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)", - "end": "^(?!\\1[ \\t]|[ \\t]*$)", - "contentName": "meta.kind-signature.purescript", - "beginCaptures": { - "2": { - "name": "keyword.other.purescript" - }, - "3": { - "name": "keyword.other.purescript" - }, - "4": { - "name": "keyword.other.purescript" - }, - "5": { - "name": "entity.name.type.purescript" - }, - "6": { - "name": "keyword.other.double-colon.purescript" - } - }, - "patterns": [ - { - "include": "#double_colon" - }, - { - "include": "#kind_signature" - } - ] - }, - { - "name": "meta.foreign.purescript", - "begin": "^(\\s*)(foreign)\\s+(import)\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)", - "end": "^(?!\\1[ \\t]|[ \\t]*$)", - "contentName": "meta.type-signature.purescript", - "beginCaptures": { - "2": { - "name": "keyword.other.purescript" - }, - "3": { - "name": "keyword.other.purescript" - }, - "4": { - "name": "entity.name.function.purescript" - } - }, - "patterns": [ - { - "include": "#double_colon" - }, - { - "include": "#type_signature" - } - ] - }, - { - "name": "meta.import.purescript", - "begin": "^\\s*\\b(import)(?!')\\b", - "end": "($|(?=--))", - "beginCaptures": { - "1": { - "name": "keyword.other.purescript" - } - }, - "patterns": [ - { - "include": "#module_name" - }, - { - "include": "#module_exports" - }, - { - "match": "\\b(as|hiding)\\b", - "captures": { - "1": { - "name": "keyword.other.purescript" - } - } - } - ] - }, - { - "name": "meta.declaration.type.data.purescript", - "begin": "^(\\s)*(data|newtype)\\s+(.+?)\\s*(?=\\=|$)", - "end": "^(?!\\1[ \\t]|[ \\t]*$)", - "beginCaptures": { - "2": { - "name": "storage.type.data.purescript" - }, - "3": { - "name": "meta.type-signature.purescript", - "patterns": [ - { - "include": "#type_signature" - } - ] - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "=", - "captures": { - "0": { - "name": "keyword.operator.assignment.purescript" - } - } - }, - { - "match": "(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))", - "captures": { - "1": { - "patterns": [ - { - "include": "#data_ctor" - } - ] - }, - "2": { - "name": "meta.type-signature.purescript", - "patterns": [ - { - "include": "#type_signature" - } - ] - } - } - }, - { - "match": "\\|", - "captures": { - "0": { - "name": "punctuation.separator.pipe.purescript" - } - } - }, - { - "include": "#record_types" - } - ] - }, - { - "name": "meta.declaration.type.type.purescript", - "begin": "^(\\s)*(type)\\s+(.+?)\\s*(?=\\=|$)", - "end": "^(?!\\1[ \\t]|[ \\t]*$)", - "contentName": "meta.type-signature.purescript", - "beginCaptures": { - "2": { - "name": "storage.type.data.purescript" - }, - "3": { - "name": "meta.type-signature.purescript", - "patterns": [ - { - "include": "#type_signature" - } - ] - } - }, - "patterns": [ - { - "match": "=", - "captures": { - "0": { - "name": "keyword.operator.assignment.purescript" - } - } - }, - { - "include": "#type_signature" - }, - { - "include": "#record_types" - }, - { - "include": "#comments" - } - ] - }, - { - "name": "keyword.other.purescript", - "match": "^\\s*\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\s+import)?(\\s+data)?)(?!')\\b" - }, - { - "name": "entity.name.function.typed-hole.purescript", - "match": "\\?(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)" - }, - { - "name": "storage.type.purescript", - "match": "^\\s*\\b(data|type|newtype)(?!')\\b" - }, - { - "name": "keyword.control.purescript", - "match": "\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\s*(:|=)))\\b" - }, - { - "name": "constant.numeric.hex.purescript", - "match": "\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)" - }, - { - "name": "constant.numeric.decimal.purescript", - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)", - "captures": { - "0": { - "name": "constant.numeric.decimal.purescript" - }, - "1": { - "name": "meta.delimiter.decimal.period.purescript" - }, - "2": { - "name": "meta.delimiter.decimal.period.purescript" - }, - "3": { - "name": "meta.delimiter.decimal.period.purescript" - }, - "4": { - "name": "meta.delimiter.decimal.period.purescript" - }, - "5": { - "name": "meta.delimiter.decimal.period.purescript" - }, - "6": { - "name": "meta.delimiter.decimal.period.purescript" - } - } - }, - { - "name": "constant.language.boolean.purescript", - "match": "\\b(true|false)\\b" - }, - { - "name": "constant.numeric.purescript", - "match": "\\b(([0-9]+_?)*[0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b" - }, - { - "name": "string.quoted.triple.purescript", - "begin": "\"\"\"", - "end": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.purescript" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.purescript" - } - } - }, - { - "name": "string.quoted.double.purescript", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.purescript" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.purescript" - } - }, - "patterns": [ - { - "include": "#characters" - }, - { - "begin": "\\\\\\s", - "end": "\\\\", - "beginCaptures": { - "0": { - "name": "markup.other.escape.newline.begin.purescript" - } - }, - "endCaptures": { - "0": { - "name": "markup.other.escape.newline.end.purescript" - } - }, - "patterns": [ - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.purescript" - } - ] - } - ] - }, - { - "name": "markup.other.escape.newline.purescript", - "match": "\\\\$" - }, - { - "name": "string.quoted.single.purescript", - "match": "(')((?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_])))(')", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.purescript" - }, - "2": { - "patterns": [ - { - "include": "#characters" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.purescript" - } - } - }, - { - "include": "#function_type_declaration" - }, - { - "match": "\\((?<paren>(?:[^()]|\\(\\g<paren>\\))*)(::|∷)(?<paren2>(?:[^()]|\\(\\g<paren2>\\))*)\\)", - "captures": { - "1": { - "patterns": [ - { - "include": "$self" - } - ] - }, - "2": { - "name": "keyword.other.double-colon.purescript" - }, - "3": { - "name": "meta.type-signature.purescript", - "patterns": [ - { - "include": "#type_signature" - } - ] - } - } - }, - { - "begin": "^(\\s*)(?:(::|∷))", - "beginCaptures": { - "2": { - "name": "keyword.other.double-colon.purescript" - } - }, - "end": "^(?!\\1[ \\t]*|[ \\t]*$)", - "patterns": [ - { - "include": "#type_signature" - } - ] - }, - { - "include": "#data_ctor" - }, - { - "include": "#comments" - }, - { - "include": "#infix_op" - }, - { - "name": "keyword.other.arrow.purescript", - "match": "\\<-|-\\>" - }, - { - "name": "keyword.operator.purescript", - "match": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+" - }, - { - "name": "punctuation.separator.comma.purescript", - "match": "," - } - ], - "repository": { - "block_comment": { - "patterns": [ - { - "name": "comment.block.documentation.purescript", - "begin": "\\{-\\s*\\|", - "end": "-\\}", - "applyEndPatternLast": 1, - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.documentation.purescript" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.documentation.purescript" - } - }, - "patterns": [ - { - "include": "#block_comment" - } - ] - }, - { - "name": "comment.block.purescript", - "begin": "\\{-", - "end": "-\\}", - "applyEndPatternLast": 1, - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.purescript" - } - }, - "patterns": [ - { - "include": "#block_comment" - } - ] - } - ] - }, - "record_types": { - "patterns": [ - { - "name": "meta.type.record.purescript", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.record.begin.purescript" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "keyword.operator.type.record.end.purescript" - } - }, - "patterns": [ - { - "name": "punctuation.separator.comma.purescript", - "match": "," - }, - { - "include": "#record_field_declaration" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=--+\\s+\\|)", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.purescript" - } - }, - "patterns": [ - { - "name": "comment.line.double-dash.documentation.purescript", - "begin": "(--+)\\s+(\\|)", - "end": "\\n", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.purescript" - }, - "2": { - "name": "punctuation.definition.comment.documentation.purescript" - } - } - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.purescript" - } - }, - "patterns": [ - { - "name": "comment.line.double-dash.purescript", - "begin": "--", - "end": "\\n", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.purescript" - } - } - } - ] - }, - { - "include": "#block_comment" - } - ] - }, - "characters": { - "patterns": [ - { - "match": "(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))", - "captures": { - "1": { - "name": "constant.character.escape.purescript" - }, - "2": { - "name": "constant.character.escape.octal.purescript" - }, - "3": { - "name": "constant.character.escape.hexadecimal.purescript" - }, - "4": { - "name": "constant.character.escape.control.purescript" - } - } - } - ] - }, - "infix_op": { - "patterns": [ - { - "name": "entity.name.function.infix.purescript", - "match": "(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))" - } - ] - }, - "module_exports": { - "patterns": [ - { - "name": "meta.declaration.exports.purescript", - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#comments" - }, - { - "name": "entity.name.function.purescript", - "match": "\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*" - }, - { - "include": "#type_name" - }, - { - "name": "punctuation.separator.comma.purescript", - "match": "," - }, - { - "include": "#infix_op" - }, - { - "name": "meta.other.constructor-list.purescript", - "match": "\\(.*?\\)" - } - ] - } - ] - }, - "module_name": { - "patterns": [ - { - "name": "support.other.module.purescript", - "match": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)*[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.?" - } - ] - }, - "function_type_declaration": { - "patterns": [ - { - "name": "meta.function.type-declaration.purescript", - "begin": "^(\\s*)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(?:(::|∷)(?!.*<-))", - "end": "^(?!\\1[ \\t]|[ \\t]*$)", - "contentName": "meta.type-signature.purescript", - "beginCaptures": { - "2": { - "name": "entity.name.function.purescript" - }, - "3": { - "name": "keyword.other.double-colon.purescript" - } - }, - "patterns": [ - { - "include": "#double_colon" - }, - { - "include": "#type_signature" - } - ] - } - ] - }, - "record_field_declaration": { - "patterns": [ - { - "name": "meta.record-field.type-declaration.purescript", - "begin": "([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)", - "end": "(?=([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)|})", - "contentName": "meta.type-signature.purescript", - "beginCaptures": { - "1": { - "patterns": [ - { - "name": "entity.other.attribute-name.purescript", - "match": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*" - } - ] - }, - "2": { - "name": "keyword.other.double-colon.purescript" - } - }, - "patterns": [ - { - "include": "#type_signature" - }, - { - "include": "#record_types" - } - ] - } - ] - }, - "kind_signature": { - "patterns": [ - { - "name": "keyword.other.star.purescript", - "match": "\\*" - }, - { - "name": "keyword.other.exclaimation-point.purescript", - "match": "!" - }, - { - "name": "keyword.other.pound-sign.purescript", - "match": "#" - }, - { - "name": "keyword.other.arrow.purescript", - "match": "->|→" - } - ] - }, - "type_signature": { - "patterns": [ - { - "name": "meta.class-constraints.purescript", - "match": "(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇐|⇒)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#class_constraint" - } - ] - }, - "4": { - "name": "keyword.other.big-arrow.purescript" - } - } - }, - { - "name": "meta.class-constraints.purescript", - "match": "((?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇐|⇒)", - "captures": { - "1": { - "patterns": [ - { - "include": "#class_constraint" - } - ] - }, - "4": { - "name": "keyword.other.big-arrow.purescript" - } - } - }, - { - "name": "keyword.other.arrow.purescript", - "match": "->|→" - }, - { - "name": "keyword.other.big-arrow.purescript", - "match": "=>|⇒" - }, - { - "name": "keyword.other.big-arrow-left.purescript", - "match": "<=|⇐" - }, - { - "name": "keyword.other.forall.purescript", - "match": "forall|∀" - }, - { - "include": "#generic_type" - }, - { - "include": "#type_name" - }, - { - "include": "#comments" - } - ] - }, - "type_name": { - "patterns": [ - { - "name": "entity.name.type.purescript", - "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*" - } - ] - }, - "data_ctor": { - "patterns": [ - { - "name": "entity.name.tag.purescript", - "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*" - } - ] - }, - "generic_type": { - "patterns": [ - { - "name": "variable.other.generic-type.purescript", - "match": "\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*" - } - ] - }, - "double_colon": { - "patterns": [ - { - "name": "keyword.other.double-colon.purescript", - "match": "(?:::|∷)" - } - ] - }, - "class_constraint": { - "patterns": [ - { - "name": "meta.class-constraint.purescript", - "match": "(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))", - "captures": { - "1": { - "patterns": [ - { - "name": "entity.name.type.purescript", - "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#type_name" - }, - { - "include": "#generic_type" - } - ] - } - } - } - ] - } - } -} diff --git a/lib/grammars/python.tmLanguage.json b/lib/grammars/python.tmLanguage.json deleted file mode 100644 index 22715db..0000000 --- a/lib/grammars/python.tmLanguage.json +++ /dev/null @@ -1,4213 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/MagicStack/MagicPython/commit/7d0f2b22a5ad8fccbd7341bc7b7a715169283044", - "name": "python", - "scopeName": "source.python", - "patterns": [ - { - "include": "#statement" - }, - { - "include": "#expression" - } - ], - "repository": { - "impossible": { - "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", - "match": "$.^" - }, - "statement": { - "patterns": [ - { - "include": "#import" - }, - { - "include": "#class-declaration" - }, - { - "include": "#function-declaration" - }, - { - "include": "#generator" - }, - { - "include": "#statement-keyword" - }, - { - "include": "#assignment-operator" - }, - { - "include": "#decorator" - }, - { - "include": "#docstring-statement" - }, - { - "include": "#semicolon" - } - ] - }, - "semicolon": { - "patterns": [ - { - "name": "invalid.deprecated.semicolon.python", - "match": "\\;$" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.line.number-sign.python", - "contentName": "meta.typehint.comment.python", - "begin": "(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n", - "end": "(?:$|(?=\\#))", - "beginCaptures": { - "0": { - "name": "meta.typehint.comment.python" - }, - "1": { - "name": "comment.typehint.directive.notation.python" - } - }, - "patterns": [ - { - "name": "comment.typehint.ignore.notation.python", - "match": "(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n" - }, - { - "name": "comment.typehint.type.notation.python", - "match": "(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n" - }, - { - "name": "comment.typehint.punctuation.notation.python", - "match": "([\\[\\]\\(\\),\\.\\=\\*]|(->))" - }, - { - "name": "comment.typehint.variable.notation.python", - "match": "([[:alpha:]_]\\w*)" - } - ] - }, - { - "include": "#comments-base" - } - ] - }, - "docstring-statement": { - "begin": "^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", - "comment": "the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring", - "end": "((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", - "patterns": [ - { - "include": "#docstring" - } - ] - }, - "docstring": { - "patterns": [ - { - "name": "string.quoted.docstring.multi.python", - "begin": "(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\1)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - } - }, - "patterns": [ - { - "include": "#docstring-prompt" - }, - { - "include": "#codetags" - }, - { - "include": "#docstring-guts-unicode" - } - ] - }, - { - "name": "string.quoted.docstring.raw.multi.python", - "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - } - }, - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#docstring-prompt" - }, - { - "include": "#codetags" - } - ] - }, - { - "name": "string.quoted.docstring.single.python", - "begin": "(\\'|\\\")", - "end": "(\\1)|(\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - }, - { - "include": "#docstring-guts-unicode" - } - ] - }, - { - "name": "string.quoted.docstring.raw.single.python", - "begin": "([rR])(\\'|\\\")", - "end": "(\\2)|(\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#codetags" - } - ] - } - ] - }, - "docstring-guts-unicode": { - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - } - ] - }, - "docstring-prompt": { - "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n", - "captures": { - "1": { - "name": "keyword.control.flow.python" - } - } - }, - "statement-keyword": { - "patterns": [ - { - "name": "storage.type.function.python", - "match": "\\b((async\\s+)?\\s*def)\\b" - }, - { - "name": "keyword.control.flow.python", - "comment": "if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n", - "match": "\\b(?<!\\.)as\\b(?=.*[:\\\\])" - }, - { - "name": "keyword.control.import.python", - "comment": "other legal use of `as` is in an import", - "match": "\\b(?<!\\.)as\\b" - }, - { - "name": "keyword.control.flow.python", - "match": "(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n" - }, - { - "name": "storage.modifier.declaration.python", - "match": "(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n" - }, - { - "name": "storage.type.class.python", - "match": "\\b(?<!\\.)(class)\\b" - }, - { - "match": "(?x)\n ^\\s*(\n case | match\n )(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n", - "captures": { - "1": { - "name": "keyword.control.flow.python" - } - } - } - ] - }, - "expression-bare": { - "comment": "valid Python expressions w/o comments and line continuation", - "patterns": [ - { - "include": "#backticks" - }, - { - "include": "#illegal-anno" - }, - { - "include": "#literal" - }, - { - "include": "#regexp" - }, - { - "include": "#string" - }, - { - "include": "#lambda" - }, - { - "include": "#generator" - }, - { - "include": "#illegal-operator" - }, - { - "include": "#operator" - }, - { - "include": "#curly-braces" - }, - { - "include": "#item-access" - }, - { - "include": "#list" - }, - { - "include": "#odd-function-call" - }, - { - "include": "#round-braces" - }, - { - "include": "#function-call" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-types" - }, - { - "include": "#builtin-exceptions" - }, - { - "include": "#magic-names" - }, - { - "include": "#special-names" - }, - { - "include": "#illegal-names" - }, - { - "include": "#special-variables" - }, - { - "include": "#ellipsis" - }, - { - "include": "#punctuation" - }, - { - "include": "#line-continuation" - } - ] - }, - "expression-base": { - "comment": "valid Python expressions with comments and line continuation", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#expression-bare" - }, - { - "include": "#line-continuation" - } - ] - }, - "expression": { - "comment": "All valid Python expressions", - "patterns": [ - { - "include": "#expression-base" - }, - { - "include": "#member-access" - }, - { - "comment": "Tokenize identifiers to help linters", - "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" - } - ] - }, - "member-access": { - "name": "meta.member.access.python", - "begin": "(\\.)\\s*(?!\\.)", - "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n", - "beginCaptures": { - "1": { - "name": "punctuation.separator.period.python" - } - }, - "patterns": [ - { - "include": "#function-call" - }, - { - "include": "#member-access-base" - }, - { - "include": "#member-access-attribute" - } - ] - }, - "member-access-base": { - "patterns": [ - { - "include": "#magic-names" - }, - { - "include": "#illegal-names" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#special-names" - }, - { - "include": "#line-continuation" - }, - { - "include": "#item-access" - } - ] - }, - "member-access-attribute": { - "comment": "Highlight attribute access in otherwise non-specialized cases.", - "name": "meta.attribute.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - }, - "special-names": { - "name": "constant.other.caps.python", - "match": "(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n" - }, - "curly-braces": { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dict.begin.python" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.dict.end.python" - } - }, - "patterns": [ - { - "name": "punctuation.separator.dict.python", - "match": ":" - }, - { - "include": "#expression" - } - ] - }, - "list": { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.list.begin.python" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.list.end.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "odd-function-call": { - "comment": "A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n", - "begin": "(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#function-arguments" - } - ] - }, - "round-braces": { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.begin.python" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.end.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "line-continuation": { - "patterns": [ - { - "match": "(\\\\)\\s*(\\S.*$\\n?)", - "captures": { - "1": { - "name": "punctuation.separator.continuation.line.python" - }, - "2": { - "name": "invalid.illegal.line.continuation.python" - } - } - }, - { - "begin": "(\\\\)\\s*$\\n?", - "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", - "beginCaptures": { - "1": { - "name": "punctuation.separator.continuation.line.python" - } - }, - "patterns": [ - { - "include": "#regexp" - }, - { - "include": "#string" - } - ] - } - ] - }, - "assignment-operator": { - "name": "keyword.operator.assignment.python", - "match": "(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n" - }, - "operator": { - "match": "(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n\n | (:=) (?# 6)\n", - "captures": { - "1": { - "name": "keyword.operator.logical.python" - }, - "2": { - "name": "keyword.control.flow.python" - }, - "3": { - "name": "keyword.operator.bitwise.python" - }, - "4": { - "name": "keyword.operator.arithmetic.python" - }, - "5": { - "name": "keyword.operator.comparison.python" - }, - "6": { - "name": "keyword.operator.assignment.python" - } - } - }, - "punctuation": { - "patterns": [ - { - "name": "punctuation.separator.colon.python", - "match": ":" - }, - { - "name": "punctuation.separator.element.python", - "match": "," - } - ] - }, - "literal": { - "patterns": [ - { - "name": "constant.language.python", - "match": "\\b(True|False|None|NotImplemented|Ellipsis)\\b" - }, - { - "include": "#number" - } - ] - }, - "number": { - "name": "constant.numeric.python", - "patterns": [ - { - "include": "#number-float" - }, - { - "include": "#number-dec" - }, - { - "include": "#number-hex" - }, - { - "include": "#number-oct" - }, - { - "include": "#number-bin" - }, - { - "include": "#number-long" - }, - { - "name": "invalid.illegal.name.python", - "match": "\\b[0-9]+\\w+" - } - ] - }, - "number-float": { - "name": "constant.numeric.float.python", - "match": "(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n", - "captures": { - "1": { - "name": "storage.type.imaginary.number.python" - } - } - }, - "number-dec": { - "name": "constant.numeric.dec.python", - "match": "(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n", - "captures": { - "1": { - "name": "storage.type.imaginary.number.python" - }, - "2": { - "name": "invalid.illegal.dec.python" - } - } - }, - "number-hex": { - "name": "constant.numeric.hex.python", - "match": "(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n", - "captures": { - "1": { - "name": "storage.type.number.python" - } - } - }, - "number-oct": { - "name": "constant.numeric.oct.python", - "match": "(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n", - "captures": { - "1": { - "name": "storage.type.number.python" - } - } - }, - "number-bin": { - "name": "constant.numeric.bin.python", - "match": "(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n", - "captures": { - "1": { - "name": "storage.type.number.python" - } - } - }, - "number-long": { - "name": "constant.numeric.bin.python", - "comment": "this is to support python2 syntax for long ints", - "match": "(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n", - "captures": { - "2": { - "name": "storage.type.number.python" - } - } - }, - "regexp": { - "patterns": [ - { - "include": "#regexp-single-three-line" - }, - { - "include": "#regexp-double-three-line" - }, - { - "include": "#regexp-single-one-line" - }, - { - "include": "#regexp-double-one-line" - } - ] - }, - "string": { - "patterns": [ - { - "include": "#string-quoted-multi-line" - }, - { - "include": "#string-quoted-single-line" - }, - { - "include": "#string-bin-quoted-multi-line" - }, - { - "include": "#string-bin-quoted-single-line" - }, - { - "include": "#string-raw-quoted-multi-line" - }, - { - "include": "#string-raw-quoted-single-line" - }, - { - "include": "#string-raw-bin-quoted-multi-line" - }, - { - "include": "#string-raw-bin-quoted-single-line" - }, - { - "include": "#fstring-fnorm-quoted-multi-line" - }, - { - "include": "#fstring-fnorm-quoted-single-line" - }, - { - "include": "#fstring-normf-quoted-multi-line" - }, - { - "include": "#fstring-normf-quoted-single-line" - }, - { - "include": "#fstring-raw-quoted-multi-line" - }, - { - "include": "#fstring-raw-quoted-single-line" - } - ] - }, - "string-unicode-guts": { - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#string-entity" - }, - { - "include": "#string-brace-formatting" - } - ] - }, - "string-consume-escape": { - "match": "\\\\['\"\\n\\\\]" - }, - "string-raw-guts": { - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - }, - { - "include": "#string-brace-formatting" - } - ] - }, - "string-raw-bin-guts": { - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - } - ] - }, - "string-entity": { - "patterns": [ - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - }, - { - "include": "#string-formatting" - } - ] - }, - "fstring-guts": { - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - }, - { - "include": "#fstring-formatting" - } - ] - }, - "fstring-raw-guts": { - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#fstring-formatting" - } - ] - }, - "fstring-illegal-single-brace": { - "comment": "it is illegal to have a multiline brace inside a single-line string", - "begin": "(\\{)(?=[^\\n}]*$\\n?)", - "end": "(\\})|(?=\\n)", - "beginCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "patterns": [ - { - "include": "#fstring-terminator-single" - }, - { - "include": "#f-expression" - } - ] - }, - "fstring-illegal-multi-brace": { - "patterns": [ - { - "include": "#impossible" - } - ] - }, - "f-expression": { - "comment": "All valid Python expressions, except comments and line continuation", - "patterns": [ - { - "include": "#expression-bare" - }, - { - "include": "#member-access" - }, - { - "comment": "Tokenize identifiers to help linters", - "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" - } - ] - }, - "escape-sequence-unicode": { - "patterns": [ - { - "name": "constant.character.escape.python", - "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n" - } - ] - }, - "escape-sequence": { - "name": "constant.character.escape.python", - "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n" - }, - "string-line-continuation": { - "name": "constant.language.python", - "match": "\\\\$" - }, - "string-formatting": { - "name": "meta.format.percent.python", - "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - } - }, - "string-brace-formatting": { - "patterns": [ - { - "name": "meta.format.brace.python", - "match": "(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - }, - "3": { - "name": "storage.type.format.python" - }, - "4": { - "name": "storage.type.format.python" - } - } - }, - { - "name": "meta.format.brace.python", - "match": "(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - }, - "3": { - "name": "storage.type.format.python" - }, - "4": { - "name": "storage.type.format.python" - } - } - } - ] - }, - "fstring-formatting": { - "patterns": [ - { - "include": "#fstring-formatting-braces" - }, - { - "include": "#fstring-formatting-singe-brace" - } - ] - }, - "fstring-formatting-singe-brace": { - "name": "invalid.illegal.brace.python", - "match": "(}(?!}))" - }, - "import": { - "comment": "Import statements used to correctly mark `from`, `import`, and `as`\n", - "patterns": [ - { - "begin": "\\b(?<!\\.)(from)\\b(?=.+import)", - "end": "$|(?=import)", - "beginCaptures": { - "1": { - "name": "keyword.control.import.python" - } - }, - "patterns": [ - { - "name": "punctuation.separator.period.python", - "match": "\\.+" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "\\b(?<!\\.)(import)\\b", - "end": "$", - "beginCaptures": { - "1": { - "name": "keyword.control.import.python" - } - }, - "patterns": [ - { - "name": "keyword.control.import.python", - "match": "\\b(?<!\\.)as\\b" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "class-declaration": { - "patterns": [ - { - "name": "meta.class.python", - "begin": "(?x)\n \\s*(class)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n", - "end": "(:)", - "beginCaptures": { - "1": { - "name": "storage.type.class.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.class.begin.python" - } - }, - "patterns": [ - { - "include": "#class-name" - }, - { - "include": "#class-inheritance" - } - ] - } - ] - }, - "class-name": { - "patterns": [ - { - "include": "#illegal-object-name" - }, - { - "include": "#builtin-possible-callables" - }, - { - "name": "entity.name.type.class.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "class-inheritance": { - "name": "meta.class.inheritance.python", - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.inheritance.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.inheritance.end.python" - } - }, - "patterns": [ - { - "name": "keyword.operator.unpacking.arguments.python", - "match": "(\\*\\*|\\*)" - }, - { - "name": "punctuation.separator.inheritance.python", - "match": "," - }, - { - "name": "keyword.operator.assignment.python", - "match": "=(?!=)" - }, - { - "name": "support.type.metaclass.python", - "match": "\\bmetaclass\\b" - }, - { - "include": "#illegal-names" - }, - { - "include": "#class-kwarg" - }, - { - "include": "#call-wrapper-inheritance" - }, - { - "include": "#expression-base" - }, - { - "include": "#member-access-class" - }, - { - "include": "#inheritance-identifier" - } - ] - }, - "class-kwarg": { - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n", - "captures": { - "1": { - "name": "entity.other.inherited-class.python variable.parameter.class.python" - }, - "2": { - "name": "keyword.operator.assignment.python" - } - } - }, - "inheritance-identifier": { - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n", - "captures": { - "1": { - "name": "entity.other.inherited-class.python" - } - } - }, - "member-access-class": { - "name": "meta.member.access.python", - "begin": "(\\.)\\s*(?!\\.)", - "end": "(?<=\\S)(?=\\W)|$", - "beginCaptures": { - "1": { - "name": "punctuation.separator.period.python" - } - }, - "patterns": [ - { - "include": "#call-wrapper-inheritance" - }, - { - "include": "#member-access-base" - }, - { - "include": "#inheritance-identifier" - } - ] - }, - "lambda": { - "patterns": [ - { - "match": "((?<=\\.)lambda|lambda(?=\\s*[\\.=]))", - "captures": { - "1": { - "name": "keyword.control.flow.python" - } - } - }, - { - "match": "\\b(lambda)\\s*?(?=[,\\n]|$)", - "captures": { - "1": { - "name": "storage.type.function.lambda.python" - } - } - }, - { - "name": "meta.lambda-function.python", - "begin": "(?x)\n \\b (lambda) \\b\n", - "end": "(:)|(\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.function.lambda.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.function.lambda.begin.python" - } - }, - "contentName": "meta.function.lambda.parameters.python", - "patterns": [ - { - "name": "keyword.operator.positional.parameter.python", - "match": "/" - }, - { - "name": "keyword.operator.unpacking.parameter.python", - "match": "(\\*\\*|\\*)" - }, - { - "include": "#lambda-nested-incomplete" - }, - { - "include": "#illegal-names" - }, - { - "match": "([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))", - "captures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "punctuation.separator.parameters.python" - } - } - }, - { - "include": "#comments" - }, - { - "include": "#backticks" - }, - { - "include": "#illegal-anno" - }, - { - "include": "#lambda-parameter-with-default" - }, - { - "include": "#line-continuation" - }, - { - "include": "#illegal-operator" - } - ] - } - ] - }, - "lambda-incomplete": { - "name": "storage.type.function.lambda.python", - "match": "\\blambda(?=\\s*[,)])" - }, - "lambda-nested-incomplete": { - "name": "storage.type.function.lambda.python", - "match": "\\blambda(?=\\s*[:,)])" - }, - "lambda-parameter-with-default": { - "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n", - "end": "(,)|(?=:|$)", - "beginCaptures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "keyword.operator.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "generator": { - "comment": "Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n", - "begin": "\\bfor\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.python" - } - }, - "end": "\\bin\\b", - "endCaptures": { - "0": { - "name": "keyword.control.flow.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-declaration": { - "name": "meta.function.python", - "begin": "(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n", - "end": "(:|(?=[#'\"\\n]))", - "beginCaptures": { - "1": { - "name": "storage.type.function.async.python" - }, - "2": { - "name": "storage.type.function.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.function.begin.python" - } - }, - "patterns": [ - { - "include": "#function-def-name" - }, - { - "include": "#parameters" - }, - { - "include": "#line-continuation" - }, - { - "include": "#return-annotation" - } - ] - }, - "function-def-name": { - "patterns": [ - { - "include": "#illegal-object-name" - }, - { - "include": "#builtin-possible-callables" - }, - { - "name": "entity.name.function.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "parameters": { - "name": "meta.function.parameters.python", - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.python" - } - }, - "patterns": [ - { - "name": "keyword.operator.positional.parameter.python", - "match": "/" - }, - { - "name": "keyword.operator.unpacking.parameter.python", - "match": "(\\*\\*|\\*)" - }, - { - "include": "#lambda-incomplete" - }, - { - "include": "#illegal-names" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#parameter-special" - }, - { - "match": "(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", - "captures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "punctuation.separator.parameters.python" - } - } - }, - { - "include": "#comments" - }, - { - "include": "#loose-default" - }, - { - "include": "#annotated-parameter" - } - ] - }, - "parameter-special": { - "match": "(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n", - "captures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "variable.parameter.function.language.special.self.python" - }, - "3": { - "name": "variable.parameter.function.language.special.cls.python" - }, - "4": { - "name": "punctuation.separator.parameters.python" - } - } - }, - "loose-default": { - "begin": "(=)", - "end": "(,)|(?=\\))", - "beginCaptures": { - "1": { - "name": "keyword.operator.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "annotated-parameter": { - "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n", - "end": "(,)|(?=\\))", - "beginCaptures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "punctuation.separator.annotation.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.python" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "name": "keyword.operator.assignment.python", - "match": "=(?!=)" - } - ] - }, - "return-annotation": { - "begin": "(->)", - "end": "(?=:)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.annotation.result.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "item-access": { - "patterns": [ - { - "name": "meta.item-access.python", - "begin": "(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n", - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#item-name" - }, - { - "include": "#item-index" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "item-name": { - "patterns": [ - { - "include": "#special-variables" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#special-names" - }, - { - "name": "meta.indexed-name.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "item-index": { - "begin": "(\\[)", - "end": "(?=\\])", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.python" - } - }, - "contentName": "meta.item-access.arguments.python", - "patterns": [ - { - "name": "punctuation.separator.slice.python", - "match": ":" - }, - { - "include": "#expression" - } - ] - }, - "decorator": { - "name": "meta.function.decorator.python", - "begin": "(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n", - "end": "(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n", - "beginCaptures": { - "1": { - "name": "entity.name.function.decorator.python" - }, - "2": { - "name": "punctuation.definition.decorator.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - }, - "2": { - "name": "invalid.illegal.decorator.python" - } - }, - "patterns": [ - { - "include": "#decorator-name" - }, - { - "include": "#function-arguments" - } - ] - }, - "decorator-name": { - "patterns": [ - { - "include": "#builtin-callables" - }, - { - "include": "#illegal-object-name" - }, - { - "name": "entity.name.function.decorator.python", - "match": "(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n", - "captures": { - "2": { - "name": "punctuation.separator.period.python" - } - } - }, - { - "include": "#line-continuation" - }, - { - "name": "invalid.illegal.decorator.python", - "match": "(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n", - "captures": { - "1": { - "name": "invalid.illegal.decorator.python" - } - } - } - ] - }, - "call-wrapper-inheritance": { - "comment": "same as a function call, but in inheritance context", - "name": "meta.function-call.python", - "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#inheritance-name" - }, - { - "include": "#function-arguments" - } - ] - }, - "inheritance-name": { - "patterns": [ - { - "include": "#lambda-incomplete" - }, - { - "include": "#builtin-possible-callables" - }, - { - "include": "#inheritance-identifier" - } - ] - }, - "function-call": { - "name": "meta.function-call.python", - "comment": "Regular function call of the type \"name(args)\"", - "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#special-variables" - }, - { - "include": "#function-name" - }, - { - "include": "#function-arguments" - } - ] - }, - "function-name": { - "patterns": [ - { - "include": "#builtin-possible-callables" - }, - { - "comment": "Some color schemas support meta.function-call.generic scope", - "name": "meta.function-call.generic.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "function-arguments": { - "begin": "(\\()", - "end": "(?=\\))(?!\\)\\s*\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.python" - } - }, - "contentName": "meta.function-call.arguments.python", - "patterns": [ - { - "name": "punctuation.separator.arguments.python", - "match": "(,)" - }, - { - "match": "(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n", - "captures": { - "1": { - "name": "keyword.operator.unpacking.arguments.python" - } - } - }, - { - "include": "#lambda-incomplete" - }, - { - "include": "#illegal-names" - }, - { - "match": "\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)", - "captures": { - "1": { - "name": "variable.parameter.function-call.python" - }, - "2": { - "name": "keyword.operator.assignment.python" - } - } - }, - { - "name": "keyword.operator.assignment.python", - "match": "=(?!=)" - }, - { - "include": "#expression" - }, - { - "match": "\\s*(\\))\\s*(\\()", - "captures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - }, - "2": { - "name": "punctuation.definition.arguments.begin.python" - } - } - } - ] - }, - "builtin-callables": { - "patterns": [ - { - "include": "#illegal-names" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#builtin-exceptions" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-types" - } - ] - }, - "builtin-possible-callables": { - "patterns": [ - { - "include": "#builtin-callables" - }, - { - "include": "#magic-names" - } - ] - }, - "builtin-exceptions": { - "name": "support.type.exception.python", - "match": "(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n" - }, - "builtin-functions": { - "patterns": [ - { - "name": "support.function.builtin.python", - "match": "(?x)\n (?<!\\.) \\b(\n __import__ | abs | aiter | all | any | anext | ascii | bin\n | breakpoint | callable | chr | compile | copyright | credits\n | delattr | dir | divmod | enumerate | eval | exec | exit\n | filter | format | getattr | globals | hasattr | hash | help\n | hex | id | input | isinstance | issubclass | iter | len\n | license | locals | map | max | memoryview | min | next\n | oct | open | ord | pow | print | quit | range | reload | repr\n | reversed | round | setattr | sorted | sum | vars | zip\n )\\b\n" - }, - { - "name": "variable.legacy.builtin.python", - "match": "(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n" - } - ] - }, - "builtin-types": { - "name": "support.type.python", - "match": "(?x)\n (?<!\\.) \\b(\n bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" - }, - "magic-function-names": { - "comment": "these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n", - "match": "(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext\n | await | bool | call | ceil | class_getitem\n | cmp | coerce | complex | contains | copy\n | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq\n | exit | float | floor | floordiv | format | ge\n | get | getattr | getattribute | getinitargs\n | getitem | getnewargs | getslice | getstate | gt\n | hash | hex | iadd | iand | idiv | ifloordiv |\n | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow\n | irshift | isub | iter | itruediv | ixor | le\n | len | long | lshift | lt | missing | mod | mul\n | ne | neg | new | next | nonzero | oct | or | pos\n | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv |\n | rlshift | rmod | rmul | ror | round | rpow\n | rrshift | rshift | rsub | rtruediv | rxor | set\n | setattr | setitem | set_name | setslice\n | setstate | sizeof | str | sub | subclasscheck\n | truediv | trunc | unicode | xor | matmul\n | rmatmul | imatmul | init_subclass | set_name\n | fspath | bytes | prepare | length_hint\n )__\n )\\b\n", - "captures": { - "1": { - "name": "support.function.magic.python" - } - } - }, - "magic-variable-names": { - "comment": "magic variables which a class/module may have.", - "match": "(?x)\n \\b(\n __(?:\n all | annotations | bases | builtins | class\n | closure | code | debug | defaults | dict | doc | file | func\n | globals | kwdefaults | match_args | members | metaclass | methods\n | module | mro | mro_entries | name | qualname | post_init | self\n | signature | slots | subclasses | version | weakref | wrapped\n | classcell | spec | path | package | future | traceback\n )__\n )\\b\n", - "captures": { - "1": { - "name": "support.variable.magic.python" - } - } - }, - "magic-names": { - "patterns": [ - { - "include": "#magic-function-names" - }, - { - "include": "#magic-variable-names" - } - ] - }, - "illegal-names": { - "match": "(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n", - "captures": { - "1": { - "name": "keyword.control.flow.python" - }, - "2": { - "name": "keyword.control.import.python" - } - } - }, - "special-variables": { - "match": "(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n", - "captures": { - "1": { - "name": "variable.language.special.self.python" - }, - "2": { - "name": "variable.language.special.cls.python" - } - } - }, - "ellipsis": { - "name": "constant.other.ellipsis.python", - "match": "\\.\\.\\." - }, - "backticks": { - "name": "invalid.deprecated.backtick.python", - "begin": "\\`", - "end": "(?:\\`|(?<!\\\\)(\\n))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "illegal-operator": { - "patterns": [ - { - "name": "invalid.illegal.operator.python", - "match": "&&|\\|\\||--|\\+\\+" - }, - { - "name": "invalid.illegal.operator.python", - "match": "[?$]" - }, - { - "name": "invalid.illegal.operator.python", - "comment": "We don't want `!` to flash when we're typing `!=`", - "match": "!\\b" - } - ] - }, - "illegal-object-name": { - "comment": "It's illegal to name class or function \"True\"", - "name": "keyword.illegal.name.python", - "match": "\\b(True|False|None)\\b" - }, - "illegal-anno": { - "name": "invalid.illegal.annotation.python", - "match": "->" - }, - "regexp-base-expression": { - "patterns": [ - { - "include": "#regexp-quantifier" - }, - { - "include": "#regexp-base-common" - } - ] - }, - "fregexp-base-expression": { - "patterns": [ - { - "include": "#fregexp-quantifier" - }, - { - "include": "#fstring-formatting-braces" - }, - { - "match": "\\{.*?\\}" - }, - { - "include": "#regexp-base-common" - } - ] - }, - "fstring-formatting-braces": { - "patterns": [ - { - "comment": "empty braces are illegal", - "match": "({)(\\s*?)(})", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - }, - "2": { - "name": "invalid.illegal.brace.python" - }, - "3": { - "name": "constant.character.format.placeholder.other.python" - } - } - }, - { - "name": "constant.character.escape.python", - "match": "({{|}})" - } - ] - }, - "regexp-base-common": { - "patterns": [ - { - "name": "support.other.match.any.regexp", - "match": "\\." - }, - { - "name": "support.other.match.begin.regexp", - "match": "\\^" - }, - { - "name": "support.other.match.end.regexp", - "match": "\\$" - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[+*?]\\??" - }, - { - "name": "keyword.operator.disjunction.regexp", - "match": "\\|" - }, - { - "include": "#regexp-escape-sequence" - } - ] - }, - "regexp-quantifier": { - "name": "keyword.operator.quantifier.regexp", - "match": "(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n" - }, - "fregexp-quantifier": { - "name": "keyword.operator.quantifier.regexp", - "match": "(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n" - }, - "regexp-backreference-number": { - "name": "meta.backreference.regexp", - "match": "(\\\\[1-9]\\d?)", - "captures": { - "1": { - "name": "entity.name.tag.backreference.regexp" - } - } - }, - "regexp-backreference": { - "name": "meta.backreference.named.regexp", - "match": "(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n", - "captures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.backreference.regexp" - }, - "3": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp" - } - } - }, - "regexp-flags": { - "name": "storage.modifier.flag.regexp", - "match": "\\(\\?[aiLmsux]+\\)" - }, - "regexp-escape-special": { - "name": "support.other.escape.special.regexp", - "match": "\\\\([AbBdDsSwWZ])" - }, - "regexp-escape-character": { - "name": "constant.character.escape.regexp", - "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n" - }, - "regexp-escape-unicode": { - "name": "constant.character.unicode.regexp", - "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n" - }, - "regexp-escape-catchall": { - "name": "constant.character.escape.regexp", - "match": "\\\\(.|\\n)" - }, - "regexp-escape-sequence": { - "patterns": [ - { - "include": "#regexp-escape-special" - }, - { - "include": "#regexp-escape-character" - }, - { - "include": "#regexp-escape-unicode" - }, - { - "include": "#regexp-backreference-number" - }, - { - "include": "#regexp-escape-catchall" - } - ] - }, - "regexp-charecter-set-escapes": { - "patterns": [ - { - "name": "constant.character.escape.regexp", - "match": "\\\\[abfnrtv\\\\]" - }, - { - "include": "#regexp-escape-special" - }, - { - "name": "constant.character.escape.regexp", - "match": "\\\\([0-7]{1,3})" - }, - { - "include": "#regexp-escape-character" - }, - { - "include": "#regexp-escape-unicode" - }, - { - "include": "#regexp-escape-catchall" - } - ] - }, - "codetags": { - "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)", - "captures": { - "1": { - "name": "keyword.codetag.notation.python" - } - } - }, - "comments-base": { - "name": "comment.line.number-sign.python", - "begin": "(\\#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.python" - } - }, - "end": "($)", - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "comments-string-single-three": { - "name": "comment.line.number-sign.python", - "begin": "(\\#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.python" - } - }, - "end": "($|(?='''))", - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "comments-string-double-three": { - "name": "comment.line.number-sign.python", - "begin": "(\\#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.python" - } - }, - "end": "($|(?=\"\"\"))", - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "single-one-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#single-one-regexp-character-set" - }, - { - "include": "#single-one-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#single-one-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#single-one-regexp-lookahead" - }, - { - "include": "#single-one-regexp-lookahead-negative" - }, - { - "include": "#single-one-regexp-lookbehind" - }, - { - "include": "#single-one-regexp-lookbehind-negative" - }, - { - "include": "#single-one-regexp-conditional" - }, - { - "include": "#single-one-regexp-parentheses-non-capturing" - }, - { - "include": "#single-one-regexp-parentheses" - } - ] - }, - "single-one-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "single-one-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "single-one-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-three-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#single-three-regexp-character-set" - }, - { - "include": "#single-three-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#single-three-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#single-three-regexp-lookahead" - }, - { - "include": "#single-three-regexp-lookahead-negative" - }, - { - "include": "#single-three-regexp-lookbehind" - }, - { - "include": "#single-three-regexp-lookbehind-negative" - }, - { - "include": "#single-three-regexp-conditional" - }, - { - "include": "#single-three-regexp-parentheses-non-capturing" - }, - { - "include": "#single-three-regexp-parentheses" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\\'\\'\\'))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "single-three-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "single-three-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "double-one-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#double-one-regexp-character-set" - }, - { - "include": "#double-one-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#double-one-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#double-one-regexp-lookahead" - }, - { - "include": "#double-one-regexp-lookahead-negative" - }, - { - "include": "#double-one-regexp-lookbehind" - }, - { - "include": "#double-one-regexp-lookbehind-negative" - }, - { - "include": "#double-one-regexp-conditional" - }, - { - "include": "#double-one-regexp-parentheses-non-capturing" - }, - { - "include": "#double-one-regexp-parentheses" - } - ] - }, - "double-one-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "double-one-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "double-one-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-three-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#double-three-regexp-character-set" - }, - { - "include": "#double-three-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#double-three-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#double-three-regexp-lookahead" - }, - { - "include": "#double-three-regexp-lookahead-negative" - }, - { - "include": "#double-three-regexp-lookbehind" - }, - { - "include": "#double-three-regexp-lookbehind-negative" - }, - { - "include": "#double-three-regexp-conditional" - }, - { - "include": "#double-three-regexp-parentheses-non-capturing" - }, - { - "include": "#double-three-regexp-parentheses" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\"\"\"))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "double-three-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "double-three-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "regexp-single-one-line": { - "name": "string.regexp.quoted.single.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')", - "end": "(\\')|(?<!\\\\)(\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "regexp-single-three-line": { - "name": "string.regexp.quoted.multi.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')", - "end": "(\\'\\'\\')", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - } - ] - }, - "regexp-double-one-line": { - "name": "string.regexp.quoted.single.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\")", - "end": "(\")|(?<!\\\\)(\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "regexp-double-three-line": { - "name": "string.regexp.quoted.multi.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")", - "end": "(\"\"\")", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - } - ] - }, - "string-raw-quoted-single-line": { - "name": "string.quoted.raw.single.python", - "begin": "\\b(([uU]R)|(R))((['\"]))", - "end": "(\\4)|((?<!\\\\)\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-single-bad-brace1-formatting-raw" - }, - { - "include": "#string-single-bad-brace2-formatting-raw" - }, - { - "include": "#string-raw-guts" - } - ] - }, - "string-bin-quoted-single-line": { - "name": "string.quoted.binary.single.python", - "begin": "(\\b[bB])((['\"]))", - "end": "(\\2)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-entity" - } - ] - }, - "string-raw-bin-quoted-single-line": { - "name": "string.quoted.raw.binary.single.python", - "begin": "(\\b(?:R[bB]|[bB]R))((['\"]))", - "end": "(\\2)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-raw-bin-guts" - } - ] - }, - "string-quoted-single-line": { - "name": "string.quoted.single.python", - "begin": "(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))", - "end": "(\\3)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-single-bad-brace1-formatting-unicode" - }, - { - "include": "#string-single-bad-brace2-formatting-unicode" - }, - { - "include": "#string-unicode-guts" - } - ] - }, - "string-single-bad-brace1-formatting-unicode": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - } - ] - }, - "string-single-bad-brace1-formatting-raw": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#string-consume-escape" - } - ] - }, - "string-single-bad-brace2-formatting-unicode": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#string-entity" - } - ] - }, - "string-single-bad-brace2-formatting-raw": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - } - ] - }, - "string-raw-quoted-multi-line": { - "name": "string.quoted.raw.multi.python", - "begin": "\\b(([uU]R)|(R))('''|\"\"\")", - "end": "(\\4)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-multi-bad-brace1-formatting-raw" - }, - { - "include": "#string-multi-bad-brace2-formatting-raw" - }, - { - "include": "#string-raw-guts" - } - ] - }, - "string-bin-quoted-multi-line": { - "name": "string.quoted.binary.multi.python", - "begin": "(\\b[bB])('''|\"\"\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-entity" - } - ] - }, - "string-raw-bin-quoted-multi-line": { - "name": "string.quoted.raw.binary.multi.python", - "begin": "(\\b(?:R[bB]|[bB]R))('''|\"\"\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-raw-bin-guts" - } - ] - }, - "string-quoted-multi-line": { - "name": "string.quoted.multi.python", - "begin": "(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")", - "end": "(\\3)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-multi-bad-brace1-formatting-unicode" - }, - { - "include": "#string-multi-bad-brace2-formatting-unicode" - }, - { - "include": "#string-unicode-guts" - } - ] - }, - "string-multi-bad-brace1-formatting-unicode": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - } - ] - }, - "string-multi-bad-brace1-formatting-raw": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#string-consume-escape" - } - ] - }, - "string-multi-bad-brace2-formatting-unicode": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#string-entity" - } - ] - }, - "string-multi-bad-brace2-formatting-raw": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - } - ] - }, - "fstring-fnorm-quoted-single-line": { - "name": "meta.fstring.python", - "begin": "(\\b[fF])([bBuU])?((['\"]))", - "end": "(\\3)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" - }, - "2": { - "name": "invalid.illegal.prefix.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "include": "#fstring-single-core" - } - ] - }, - "fstring-normf-quoted-single-line": { - "name": "meta.fstring.python", - "begin": "(\\b[bBuU])([fF])((['\"]))", - "end": "(\\3)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.quoted.single.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "include": "#fstring-single-core" - } - ] - }, - "fstring-raw-quoted-single-line": { - "name": "meta.fstring.python", - "begin": "(\\b(?:[rR][fF]|[fF][rR]))((['\"]))", - "end": "(\\2)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.raw.single.python storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python string.quoted.raw.single.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-raw-guts" - }, - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "include": "#fstring-raw-single-core" - } - ] - }, - "fstring-single-core": { - "name": "string.interpolated.python string.quoted.single.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-raw-single-core": { - "name": "string.interpolated.python string.quoted.raw.single.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-single-brace": { - "comment": "value interpolation using { ... }", - "begin": "(\\{)", - "end": "(?x)\n (\\})|(?=\\n)\n", - "beginCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "patterns": [ - { - "include": "#fstring-terminator-single" - }, - { - "include": "#f-expression" - } - ] - }, - "fstring-terminator-single": { - "patterns": [ - { - "name": "storage.type.format.python", - "match": "(=(![rsa])?)(?=})" - }, - { - "name": "storage.type.format.python", - "match": "(=?![rsa])(?=})" - }, - { - "match": "(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", - "captures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - } - }, - { - "include": "#fstring-terminator-single-tail" - } - ] - }, - "fstring-terminator-single-tail": { - "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)", - "end": "(?=})|(?=\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - }, - "patterns": [ - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "name": "storage.type.format.python", - "match": "([bcdeEfFgGnosxX%])(?=})" - }, - { - "name": "storage.type.format.python", - "match": "(\\.\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(,)" - }, - { - "name": "storage.type.format.python", - "match": "(\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(\\#)" - }, - { - "name": "storage.type.format.python", - "match": "([-+ ])" - }, - { - "name": "storage.type.format.python", - "match": "([<>=^])" - }, - { - "name": "storage.type.format.python", - "match": "(\\w)" - } - ] - }, - "fstring-fnorm-quoted-multi-line": { - "name": "meta.fstring.python", - "begin": "(\\b[fF])([bBuU])?('''|\"\"\")", - "end": "(\\3)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" - }, - "2": { - "name": "invalid.illegal.prefix.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "include": "#fstring-multi-core" - } - ] - }, - "fstring-normf-quoted-multi-line": { - "name": "meta.fstring.python", - "begin": "(\\b[bBuU])([fF])('''|\"\"\")", - "end": "(\\3)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.quoted.multi.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "include": "#fstring-multi-core" - } - ] - }, - "fstring-raw-quoted-multi-line": { - "name": "meta.fstring.python", - "begin": "(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.raw.multi.python storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python string.quoted.raw.multi.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-raw-guts" - }, - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "include": "#fstring-raw-multi-core" - } - ] - }, - "fstring-multi-core": { - "name": "string.interpolated.python string.quoted.multi.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-raw-multi-core": { - "name": "string.interpolated.python string.quoted.raw.multi.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-multi-brace": { - "comment": "value interpolation using { ... }", - "begin": "(\\{)", - "end": "(?x)\n (\\})\n", - "beginCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "patterns": [ - { - "include": "#fstring-terminator-multi" - }, - { - "include": "#f-expression" - } - ] - }, - "fstring-terminator-multi": { - "patterns": [ - { - "name": "storage.type.format.python", - "match": "(=(![rsa])?)(?=})" - }, - { - "name": "storage.type.format.python", - "match": "(=?![rsa])(?=})" - }, - { - "match": "(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", - "captures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - } - }, - { - "include": "#fstring-terminator-multi-tail" - } - ] - }, - "fstring-terminator-multi-tail": { - "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)", - "end": "(?=})", - "beginCaptures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - }, - "patterns": [ - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "name": "storage.type.format.python", - "match": "([bcdeEfFgGnosxX%])(?=})" - }, - { - "name": "storage.type.format.python", - "match": "(\\.\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(,)" - }, - { - "name": "storage.type.format.python", - "match": "(\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(\\#)" - }, - { - "name": "storage.type.format.python", - "match": "([-+ ])" - }, - { - "name": "storage.type.format.python", - "match": "([<>=^])" - }, - { - "name": "storage.type.format.python", - "match": "(\\w)" - } - ] - } - } -} diff --git a/lib/grammars/r.tmLanguage.json b/lib/grammars/r.tmLanguage.json deleted file mode 100644 index 19b3d47..0000000 --- a/lib/grammars/r.tmLanguage.json +++ /dev/null @@ -1,642 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/Ikuyadeu/vscode-R/blob/master/syntax/r.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/Ikuyadeu/vscode-R/commit/ff60e426f66503f3c9533c7a62a8fd3f9f6c53df", - "name": "r", - "scopeName": "source.r", - "patterns": [ - { - "include": "#roxygen" - }, - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#keywords" - }, - { - "include": "#storage-type" - }, - { - "include": "#strings" - }, - { - "include": "#brackets" - }, - { - "include": "#function-declarations" - }, - { - "include": "#lambda-functions" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#function-calls" - }, - { - "include": "#general-variables" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "comment.line.pragma.r" - }, - "2": { - "name": "entity.name.pragma.name.r" - } - }, - "match": "^(#pragma[ \\t]+mark)[ \\t](.*)", - "name": "comment.line.pragma-mark.r" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.r" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.r" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.r" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "match": "\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b", - "name": "support.constant.misc.r" - }, - { - "match": "\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\b", - "name": "constant.language.r" - }, - { - "match": "\\b0(x|X)[0-9a-fA-F]+i\\b", - "name": "constant.numeric.imaginary.hexadecimal.r" - }, - { - "match": "\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?i\\b", - "name": "constant.numeric.imaginary.decimal.r" - }, - { - "match": "\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?i\\b", - "name": "constant.numeric.imaginary.decimal.r" - }, - { - "match": "\\b0(x|X)[0-9a-fA-F]+L\\b", - "name": "constant.numeric.integer.hexadecimal.r" - }, - { - "match": "\\b(?:[0-9]+\\.?[0-9]*)(?:(e|E)(\\+|-)?[0-9]+)?L\\b", - "name": "constant.numeric.integer.decimal.r" - }, - { - "match": "\\b0(x|X)[0-9a-fA-F]+\\b", - "name": "constant.numeric.float.hexadecimal.r" - }, - { - "match": "\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?\\b", - "name": "constant.numeric.float.decimal.r" - }, - { - "match": "\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?\\b", - "name": "constant.numeric.float.decimal.r" - } - ] - }, - "general-variables": { - "patterns": [ - { - "captures": { - "1": { - "name": "variable.parameter.r" - }, - "2": { - "name": "keyword.operator.assignment.r" - } - }, - "match": "([[:alpha:].][[:alnum:]._]*)\\s*(=)(?=[^=])" - }, - { - "captures": { - "1": { - "name": "variable.parameter.r" - }, - "2": { - "name": "keyword.operator.assignment.r" - } - }, - "match": "(`[^`]+`)\\s*(=)(?=[^=])" - }, - { - "match": "\\b([\\d_][[:alnum:]._]+)\\b", - "name": "invalid.illegal.variable.other.r" - }, - { - "match": "\\b([[:alnum:]_]+)(?=::)", - "name": "entity.namespace.r" - }, - { - "match": "\\b([[:alnum:]._]+)\\b", - "name": "variable.other.r" - }, - { - "match": "(`[^`]+`)", - "name": "variable.other.r" - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "\\b(break|next|repeat|else|in)\\b", - "name": "keyword.control.r" - }, - { - "match": "\\b(ifelse|if|for|return|switch|while|invisible)\\b(?=\\s*\\()", - "name": "keyword.control.r" - }, - { - "match": "(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%o%|%x%|\\^)", - "name": "keyword.operator.arithmetic.r" - }, - { - "match": "(:=|<-|<<-|->|->>)", - "name": "keyword.operator.assignment.r" - }, - { - "match": "(==|<=|>=|!=|<>|<|>|%in%)", - "name": "keyword.operator.comparison.r" - }, - { - "match": "(!|&{1,2}|[|]{1,2})", - "name": "keyword.operator.logical.r" - }, - { - "match": "(\\|>)", - "name": "keyword.operator.pipe.r" - }, - { - "match": "(%between%|%chin%|%like%|%\\+%|%\\+replace%|%:%|%do%|%dopar%|%>%|%<>%|%T>%|%\\$%)", - "name": "keyword.operator.other.r" - }, - { - "match": "(\\.\\.\\.|\\$|:|\\~|@)", - "name": "keyword.other.r" - } - ] - }, - "storage-type": { - "patterns": [ - { - "match": "\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw)\\b(?=\\s*\\()", - "name": "storage.type.r" - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "[rR]\"(-*)\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.raw.begin.r" - } - }, - "end": "\\]\\1\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.raw.end.r" - } - }, - "name": "string.quoted.double.raw.r" - }, - { - "begin": "[rR]'(-*)\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.raw.begin.r" - } - }, - "end": "\\]\\1'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.raw.end.r" - } - }, - "name": "string.quoted.single.raw.r" - }, - { - "begin": "[rR]\"(-*)\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.raw.begin.r" - } - }, - "end": "\\}\\1\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.raw.end.r" - } - }, - "name": "string.quoted.double.raw.r" - }, - { - "begin": "[rR]'(-*)\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.raw.begin.r" - } - }, - "end": "\\}\\1'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.raw.end.r" - } - }, - "name": "string.quoted.single.raw.r" - }, - { - "begin": "[rR]\"(-*)\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.raw.begin.r" - } - }, - "end": "\\)\\1\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.raw.end.r" - } - }, - "name": "string.quoted.double.raw.r" - }, - { - "begin": "[rR]'(-*)\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.raw.begin.r" - } - }, - "end": "\\)\\1'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.raw.end.r" - } - }, - "name": "string.quoted.single.raw.r" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.r" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.r" - } - }, - "name": "string.quoted.double.r", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.r" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.r" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.r" - } - }, - "name": "string.quoted.single.r", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.r" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.r" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.r" - } - }, - "patterns": [ - { - "include": "source.r" - } - ] - }, - { - "begin": "\\[(?!\\[)", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.single.begin.r" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.single.end.r" - } - }, - "patterns": [ - { - "include": "source.r" - } - ] - }, - { - "begin": "\\[\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.double.begin.r" - } - }, - "end": "\\]\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.double.end.r" - } - }, - "contentName": "meta.item-access.arguments.r", - "patterns": [ - { - "include": "source.r" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.braces.begin.r" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.braces.end.r" - } - }, - "patterns": [ - { - "include": "source.r" - } - ] - } - ] - }, - "function-declarations": { - "patterns": [ - { - "match": "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function|\\\\)(?!\\w)", - "captures": { - "1": { - "name": "entity.name.function.r" - }, - "2": { - "name": "keyword.operator.assignment.r" - }, - "3": { - "name": "keyword.control.r" - } - }, - "name": "meta.function.r", - "patterns": [ - { - "include": "#lambda-functions" - } - ] - } - ] - }, - "lambda-functions": { - "patterns": [ - { - "begin": "\\b(function)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.r" - }, - "2": { - "name": "punctuation.section.parens.begin.r" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.r" - } - }, - "name": "meta.function.r", - "contentName": "meta.function.parameters.r", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)", - "name": "variable.other.r" - }, - { - "begin": "(?==)", - "end": "(?=[,)])", - "patterns": [ - { - "include": "source.r" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.parameters.r" - } - ] - } - ] - }, - "function-calls": { - "begin": "(?:\\b|(?=\\.))((?:[a-zA-Z._][\\w.]*|`[^`]+`))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "variable.function.r" - }, - "2": { - "name": "punctuation.section.parens.begin.r" - } - }, - "contentName": "meta.function-call.arguments.r", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.r" - } - }, - "name": "meta.function-call.r", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - "function-parameters": { - "patterns": [ - { - "name": "meta.function-call.r", - "contentName": "meta.function-call.parameters.r" - }, - { - "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)(?=\\s[^=])", - "name": "variable.other.r" - }, - { - "begin": "(?==)", - "end": "(?=[,)])", - "patterns": [ - { - "include": "source.r" - } - ] - }, - { - "match": ",", - "name": "punctuation.separator.parameters.r" - }, - { - "include": "source.r" - } - ] - }, - "roxygen": { - "patterns": [ - { - "begin": "^\\s*(#')\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.r" - } - }, - "end": "$\\n?", - "name": "comment.line.roxygen.r", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.r" - }, - "2": { - "name": "variable.parameter.r" - } - }, - "match": "(@param)\\s*((?:[a-zA-Z._][\\w.]*|`[^`]+`))" - }, - { - "match": "@[a-zA-Z0-9]+", - "name": "keyword.other.r" - } - ] - } - ] - }, - "builtin-functions": { - "patterns": [ - { - "match": "\\b(abbreviate|abs|acos|acosh|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\.equal|all\\.equal.character|all\\.equal.default|all\\.equal.environment|all\\.equal.envRefClass|all\\.equal.factor|all\\.equal.formula|all\\.equal.language|all\\.equal.list|all\\.equal.numeric|all\\.equal.POSIXt|all\\.equal.raw|all\\.names|all\\.vars|any|anyDuplicated|anyDuplicated\\.array|anyDuplicated\\.data.frame|anyDuplicated\\.default|anyDuplicated\\.matrix|anyNA|anyNA\\.numeric_version|anyNA\\.POSIXlt|aperm|aperm\\.default|aperm\\.table|append|apply|Arg|args|array|arrayInd|as\\.array|as\\.array.default|as\\.call|as\\.character|as\\.character.condition|as\\.character.Date|as\\.character.default|as\\.character.error|as\\.character.factor|as\\.character.hexmode|as\\.character.numeric_version|as\\.character.octmode|as\\.character.POSIXt|as\\.character.srcref|as\\.complex|as\\.data.frame|as\\.data.frame.array|as\\.data.frame.AsIs|as\\.data.frame.character|as\\.data.frame.complex|as\\.data.frame.data.frame|as\\.data.frame.Date|as\\.data.frame.default|as\\.data.frame.difftime|as\\.data.frame.factor|as\\.data.frame.integer|as\\.data.frame.list|as\\.data.frame.logical|as\\.data.frame.matrix|as\\.data.frame.model.matrix|as\\.data.frame.noquote|as\\.data.frame.numeric|as\\.data.frame.numeric_version|as\\.data.frame.ordered|as\\.data.frame.POSIXct|as\\.data.frame.POSIXlt|as\\.data.frame.raw|as\\.data.frame.table|as\\.data.frame.ts|as\\.data.frame.vector|as\\.Date|as\\.Date.character|as\\.Date.date|as\\.Date.dates|as\\.Date.default|as\\.Date.factor|as\\.Date.numeric|as\\.Date.POSIXct|as\\.Date.POSIXlt|as\\.difftime|as\\.double|as\\.double.difftime|as\\.double.POSIXlt|as\\.environment|as\\.expression|as\\.expression.default|as\\.factor|as\\.function|as\\.function.default|as\\.hexmode|as\\.integer|as\\.list|as\\.list.data.frame|as\\.list.Date|as\\.list.default|as\\.list.environment|as\\.list.factor|as\\.list.function|as\\.list.numeric_version|as\\.list.POSIXct|as\\.logical|as\\.logical.factor|as\\.matrix|as\\.matrix.data.frame|as\\.matrix.default|as\\.matrix.noquote|as\\.matrix.POSIXlt|as\\.name|as\\.null|as\\.null.default|as\\.numeric|as\\.numeric_version|as\\.octmode|as\\.ordered|as\\.package_version|as\\.pairlist|as\\.POSIXct|as\\.POSIXct.date|as\\.POSIXct.Date|as\\.POSIXct.dates|as\\.POSIXct.default|as\\.POSIXct.numeric|as\\.POSIXct.POSIXlt|as\\.POSIXlt|as\\.POSIXlt.character|as\\.POSIXlt.date|as\\.POSIXlt.Date|as\\.POSIXlt.dates|as\\.POSIXlt.default|as\\.POSIXlt.factor|as\\.POSIXlt.numeric|as\\.POSIXlt.POSIXct|as\\.qr|as\\.raw|as\\.single|as\\.single.default|as\\.symbol|as\\.table|as\\.table.default|as\\.vector|as\\.vector.factor|asin|asinh|asNamespace|asS3|asS4|assign|atan|atan2|atanh|attach|attachNamespace|attr|attr\\.all.equal|attributes|autoload|autoloader|backsolve|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\.data.frame|by\\.default|bzfile|c|c\\.Date|c\\.difftime|c\\.noquote|c\\.numeric_version|c\\.POSIXct|c\\.POSIXlt|c\\.warnings|call|callCC|capabilities|casefold|cat|cbind|cbind\\.data.frame|ceiling|char\\.expand|character|charmatch|charToRaw|chartr|check_tzones|chkDots|chol|chol\\.default|chol2inv|choose|class|clearPushBack|close|close\\.connection|close\\.srcfile|close\\.srcfilealias|closeAllConnections|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\.condition|conditionMessage|conditionMessage\\.condition|conflicts|Conj|contributors|cos|cosh|cospi|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\.Date|cut\\.default|cut\\.POSIXt|data\\.class|data\\.frame|data\\.matrix|date|debug|debuggingState|debugonce|default\\.stringsAsFactors|delayedAssign|deparse|det|detach|determinant|determinant\\.matrix|dget|diag|diff|diff\\.Date|diff\\.default|diff\\.difftime|diff\\.POSIXt|difftime|digamma|dim|dim\\.data.frame|dimnames|dimnames\\.data.frame|dir|dir\\.create|dir\\.exists|dirname|do\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\.data.frame|droplevels\\.factor|dump|duplicated|duplicated\\.array|duplicated\\.data.frame|duplicated\\.default|duplicated\\.matrix|duplicated\\.numeric_version|duplicated\\.POSIXlt|duplicated\\.warnings|dyn\\.load|dyn\\.unload|dynGet|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|env\\.profile|environment|environmentIsLocked|environmentName|eval|eval\\.parent|evalq|exists|exp|expand\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\.access|file\\.append|file\\.choose|file\\.copy|file\\.create|file\\.exists|file\\.info|file\\.link|file\\.mode|file\\.mtime|file\\.path|file\\.remove|file\\.rename|file\\.show|file\\.size|file\\.symlink|Filter|Find|find\\.package|findInterval|findPackageEnv|findRestart|floor|flush|flush\\.connection|for|force|forceAndCall|formals|format|format\\.AsIs|format\\.data.frame|format\\.Date|format\\.default|format\\.difftime|format\\.factor|format\\.hexmode|format\\.info|format\\.libraryIQR|format\\.numeric_version|format\\.octmode|format\\.packageInfo|format\\.POSIXct|format\\.POSIXlt|format\\.pval|format\\.summaryDefault|formatC|formatDL|forwardsolve|function|gamma|gc|gc\\.time|gcinfo|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\.character|getDLLRegisteredRoutines\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalenv|gregexpr|grep|grepl|grepRaw|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\.rle|invisible|invokeRestart|invokeRestartInteractively|is\\.array|is\\.atomic|is\\.call|is\\.character|is\\.complex|is\\.data.frame|is\\.double|is\\.element|is\\.environment|is\\.expression|is\\.factor|is\\.finite|is\\.function|is\\.infinite|is\\.integer|is\\.language|is\\.list|is\\.loaded|is\\.logical|is\\.matrix|is\\.na|is\\.na.data.frame|is\\.na.numeric_version|is\\.na.POSIXlt|is\\.name|is\\.nan|is\\.null|is\\.numeric|is\\.numeric_version|is\\.numeric.Date|is\\.numeric.difftime|is\\.numeric.POSIXt|is\\.object|is\\.ordered|is\\.package_version|is\\.pairlist|is\\.primitive|is\\.qr|is\\.R|is\\.raw|is\\.recursive|is\\.single|is\\.symbol|is\\.table|is\\.unsorted|is\\.vector|isatty|isBaseNamespace|isdebugged|isIncomplete|isNamespace|isNamespaceLoaded|ISOdate|ISOdatetime|isOpen|isRestart|isS4|isSeekable|isSymmetric|isSymmetric\\.matrix|isTRUE|jitter|julian|julian\\.Date|julian\\.POSIXt|kappa|kappa\\.default|kappa\\.lm|kappa\\.qr|kronecker|l10n_info|La_library|La_version|La\\.svd|labels|labels\\.default|lapply|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\.POSIXlt|lengths|levels|levels\\.default|lfactorial|lgamma|libcurlVersion|library|library\\.dynam|library\\.dynam.unload|licence|license|list|list\\.dirs|list\\.files|list2env|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\.tri|ls|make\\.names|make\\.unique|makeActiveBinding|Map|mapply|margin\\.table|mat\\.or.vec|match|match\\.arg|match\\.call|match\\.fun|Math\\.data.frame|Math\\.Date|Math\\.difftime|Math\\.factor|Math\\.POSIXt|matrix|max|max\\.col|mean|mean\\.Date|mean\\.default|mean\\.difftime|mean\\.POSIXct|mean\\.POSIXlt|mem\\.limits|memCompress|memDecompress|memory\\.profile|merge|merge\\.data.frame|merge\\.default|message|mget|min|missing|Mod|mode|months|months\\.Date|months\\.POSIXt|names|names\\.POSIXlt|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|nargs|nchar|ncol|NCOL|Negate|new\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|numeric|numeric_version|nzchar|objects|oldClass|OlsonNames|on\\.exit|open|open\\.connection|open\\.srcfile|open\\.srcfilealias|open\\.srcfilecopy|Ops\\.data.frame|Ops\\.Date|Ops\\.difftime|Ops\\.factor|Ops\\.numeric_version|Ops\\.ordered|Ops\\.POSIXt|options|order|ordered|outer|package_version|packageEvent|packageHasNamespace|packageStartupMessage|packBits|pairlist|parent\\.env|parent\\.frame|parse|parseNamespaceFile|paste|paste0|path\\.expand|path\\.package|pcre_config|pipe|pmatch|pmax|pmax\\.int|pmin|pmin\\.int|polyroot|pos\\.to.env|Position|pretty|pretty\\.default|prettyNum|print|print\\.AsIs|print\\.by|print\\.condition|print\\.connection|print\\.data.frame|print\\.Date|print\\.default|print\\.difftime|print\\.Dlist|print\\.DLLInfo|print\\.DLLInfoList|print\\.DLLRegisteredRoutines|print\\.eigen|print\\.factor|print\\.function|print\\.hexmode|print\\.libraryIQR|print\\.listof|print\\.NativeRoutineList|print\\.noquote|print\\.numeric_version|print\\.octmode|print\\.packageInfo|print\\.POSIXct|print\\.POSIXlt|print\\.proc_time|print\\.restart|print\\.rle|print\\.simple.list|print\\.srcfile|print\\.srcref|print\\.summary.table|print\\.summaryDefault|print\\.table|print\\.warnings|prmatrix|proc\\.time|prod|prop\\.table|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\.coef|qr\\.default|qr\\.fitted|qr\\.Q|qr\\.qty|qr\\.qy|qr\\.R|qr\\.resid|qr\\.solve|qr\\.X|quarters|quarters\\.Date|quarters\\.POSIXt|quit|quote|R_system_version|R\\.home|R\\.Version|range|range\\.default|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\.data.frame|rcond|Re|read\\.dcf|readBin|readChar|readline|readLines|readRDS|readRenviron|Recall|Reduce|reg\\.finalizer|regexec|regexpr|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep_len|rep\\.Date|rep\\.factor|rep\\.int|rep\\.numeric_version|rep\\.POSIXct|rep\\.POSIXlt|repeat|replace|replicate|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\.default|rle|rm|RNGkind|RNGversion|round|round\\.Date|round\\.POSIXt|row|row\\.names|row\\.names.data.frame|row\\.names.default|rowMeans|rownames|rowsum|rowsum\\.data.frame|rowsum\\.default|rowSums|sample|sample\\.int|sapply|save|save\\.image|saveRDS|scale|scale\\.default|scan|search|searchpaths|seek|seek\\.connection|seq|seq_along|seq_len|seq\\.Date|seq\\.default|seq\\.int|seq\\.POSIXt|sequence|serialize|set\\.seed|setdiff|setequal|setHook|setNamespaceInfo|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\.number|sinpi|slice\\.index|socketConnection|socketSelect|solve|solve\\.default|solve\\.qr|sort|sort\\.default|sort\\.int|sort\\.list|sort\\.POSIXlt|source|split|split\\.data.frame|split\\.Date|split\\.default|split\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\.mode|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\.data.frame|subset\\.default|subset\\.matrix|substitute|substr|substring|sum|summary|summary\\.connection|summary\\.data.frame|Summary\\.data.frame|summary\\.Date|Summary\\.Date|summary\\.default|Summary\\.difftime|summary\\.factor|Summary\\.factor|summary\\.matrix|Summary\\.numeric_version|Summary\\.ordered|summary\\.POSIXct|Summary\\.POSIXct|summary\\.POSIXlt|Summary\\.POSIXlt|summary\\.proc_time|summary\\.srcfile|summary\\.srcref|summary\\.table|suppressMessages|suppressPackageStartupMessages|suppressWarnings|svd|sweep|switch|sys\\.call|sys\\.calls|Sys\\.chmod|Sys\\.Date|sys\\.frame|sys\\.frames|sys\\.function|Sys\\.getenv|Sys\\.getlocale|Sys\\.getpid|Sys\\.glob|Sys\\.info|sys\\.load.image|Sys\\.localeconv|sys\\.nframe|sys\\.on.exit|sys\\.parent|sys\\.parents|Sys\\.readlink|sys\\.save.image|Sys\\.setenv|Sys\\.setFileTime|Sys\\.setlocale|Sys\\.sleep|sys\\.source|sys\\.status|Sys\\.time|Sys\\.timezone|Sys\\.umask|Sys\\.unsetenv|Sys\\.which|system|system\\.file|system\\.time|system2|t|t\\.data.frame|t\\.default|table|tabulate|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|tempdir|tempfile|testPlatformEquivalence|textConnection|textConnectionValue|tolower|topenv|toString|toString\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\.data.frame|transform\\.default|trigamma|trimws|trunc|trunc\\.Date|trunc\\.POSIXt|truncate|truncate\\.connection|try|tryCatch|typeof|unclass|undebug|union|unique|unique\\.array|unique\\.data.frame|unique\\.default|unique\\.matrix|unique\\.numeric_version|unique\\.POSIXlt|unique\\.warnings|units|units\\.difftime|unix\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\.tri|url|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|warning|warnings|weekdays|weekdays\\.Date|weekdays\\.POSIXt|which|which\\.max|which\\.min|while|with|with\\.default|withAutoprint|withCallingHandlers|within|within\\.data.frame|within\\.list|withRestarts|withVisible|write|write\\.dcf|writeBin|writeChar|writeLines|xor|xor\\.hexmode|xor\\.octmode|xpdrows\\.data.frame|xtfrm|xtfrm\\.AsIs|xtfrm\\.Date|xtfrm\\.default|xtfrm\\.difftime|xtfrm\\.factor|xtfrm\\.numeric_version|xtfrm\\.POSIXct|xtfrm\\.POSIXlt|xtfrm\\.Surv|xzfile|zapsmall)\\s*(\\()", - "captures": { - "1": { - "name": "support.function.r" - } - } - }, - { - "match": "\\b(abline|arrows|assocplot|axis|Axis|axis\\.Date|Axis\\.Date|Axis\\.default|axis\\.POSIXct|Axis\\.POSIXt|Axis\\.table|axTicks|barplot|barplot\\.default|box|boxplot|boxplot\\.default|boxplot\\.formula|boxplot\\.matrix|bxp|cdplot|cdplot\\.default|cdplot\\.formula|clip|close\\.screen|co\\.intervals|contour|contour\\.default|coplot|curve|dotchart|erase\\.screen|filled\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\.Date|hist\\.default|hist\\.POSIXt|identify|identify\\.default|image|image\\.default|layout|layout\\.show|lcm|legend|lines|lines\\.default|lines\\.formula|lines\\.histogram|lines\\.table|locator|matlines|matplot|matpoints|mosaicplot|mosaicplot\\.default|mosaicplot\\.formula|mtext|pairs|pairs\\.default|pairs\\.formula|panel\\.smooth|par|persp|persp\\.default|pie|piechart|plot|plot\\.data.frame|plot\\.default|plot\\.design|plot\\.factor|plot\\.formula|plot\\.function|plot\\.histogram|plot\\.new|plot\\.raster|plot\\.table|plot\\.window|plot\\.xy|plotHclust|points|points\\.default|points\\.formula|points\\.table|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|spineplot\\.default|spineplot\\.formula|split\\.screen|stars|stem|strheight|stripchart|stripchart\\.default|stripchart\\.formula|strwidth|sunflowerplot|sunflowerplot\\.default|sunflowerplot\\.formula|symbols|text|text\\.default|text\\.formula|title|xinch|xspline|xyinch|yinch)\\s*(\\()", - "captures": { - "1": { - "name": "support.function.r" - } - } - }, - { - "match": "\\b(adjustcolor|anyNA\\.raster|as\\.graphicsAnnot|as\\.matrix.raster|as\\.raster|as\\.raster.array|as\\.raster.character|as\\.raster.logical|as\\.raster.matrix|as\\.raster.numeric|as\\.raster.raster|as\\.raster.raw|axisTicks|bitmap|bmp|boxplot\\.stats|c2to3|cairo_pdf|cairo_ps|cairoVersion|check_for_XQuartz|check_gs_type|check\\.options|checkFont|checkFont\\.CIDFont|checkFont\\.default|checkFont\\.Type1Font|checkFontInUse|checkIntFormat|checkQuartzFont|checkX11Font|chromaticAdaptation|chull|CIDFont|cm|cm\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colours|contourLines|convertColor|densCols|dev\\.capabilities|dev\\.capture|dev\\.control|dev\\.copy|dev\\.copy2eps|dev\\.copy2pdf|dev\\.cur|dev\\.displaylist|dev\\.flush|dev\\.hold|dev\\.interactive|dev\\.list|dev\\.new|dev\\.next|dev\\.off|dev\\.prev|dev\\.print|dev\\.set|dev\\.size|dev2bitmap|devAskNewPage|deviceIsInteractive|embedFonts|extendrange|getGraphicsEvent|getGraphicsEventEnv|graphics\\.off|gray|gray\\.colors|grey|grey\\.colors|grSoftVersion|guessEncoding|hcl|heat\\.colors|hsv|initPSandPDFfonts|is\\.na.raster|is\\.raster|isPDF|jpeg|make\\.rgb|matchEncoding|matchEncoding\\.CIDFont|matchEncoding\\.Type1Font|matchFont|n2mfrow|nclass\\.FD|nclass\\.scott|nclass\\.Sturges|Ops\\.raster|palette|pdf|pdf\\.options|pdfFonts|pictex|png|postscript|postscriptFonts|prettyDate|print\\.colorConverter|print\\.raster|print\\.recordedplot|print\\.RGBcolorConverter|printFont|printFont\\.CIDFont|printFont\\.Type1Font|printFonts|ps\\.options|quartz|quartz\\.options|quartz\\.save|quartzFont|quartzFonts|rainbow|recordGraphics|recordPalette|recordPlot|replayPlot|restoreRecordedPlot|rgb|rgb2hsv|savePlot|seqDtime|setEPS|setFonts|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|setQuartzFonts|setX11Fonts|svg|terrain\\.colors|tiff|topo\\.colors|trans3d|trunc_POSIXt|Type1Font|x11|X11|X11\\.options|X11Font|X11FontError|X11Fonts|xfig|xy\\.coords|xyTable|xyz\\.coords)\\s*(\\()", - "captures": { - "1": { - "name": "support.function.r" - } - } - }, - { - "match": "\\b(addNextMethod|allGenerics|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|bind_activation|cacheGenericsMetaData|cacheMetaData|cacheMethod|cacheOnAssign|callGeneric|callNextMethod|canCoerce|cbind|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classGeneratorFunction|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|dispatchIsInternal|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\.dump|emptyMethodsList|envRefInferField|envRefSetField|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\.8|formalArgs|fromNextMethod|functionBody|generic\\.skeleton|genericForBasic|getAccess|getAllMethods|getAllSuperClasses|getClass|getClassDef|getClasses|getClassName|getClassPackage|getDataPart|getExtends|getFunction|getGeneric|getGenericFromCall|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsAndAccessors|getMethodsForDispatch|getMethodsMetaData|getPackageName|getProperties|getPrototype|getRefClass|getRefSuperClasses|getSlots|getSubclasses|getValidity|getVirtual|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inBasicFuns|inferProperties|inheritedSlotNames|inheritedSubMethodLists|initFieldArgs|initialize|initMethodDispatch|initRefFields|insertClassMethods|insertMethod|insertMethodInEmptyList|insertSource|installClassMethod|is|isBaseFun|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isMixin|isRematched|isS3Generic|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|linearizeMlist|listFromMethods|listFromMlist|loadMethod|Logic|makeClassMethod|makeClassRepresentation|makeEnvRefMethods|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchDefaults|matchSignature|Math|Math2|mergeMethods|metaNameUndo|method\\.skeleton|MethodAddCoerce|methodSignatureMatrix|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|mlistMetaName|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|outerLabels|packageSlot|possibleExtends|print\\.MethodsList|printClassRepresentation|printPropertiesList|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind|rbind2|reconcilePropertiesAndPrototype|refClassFields|refClassInformation|refClassMethods|refClassPrompt|refObjectClass|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|removeMethodsObject|representation|requireMethods|resetClass|resetGeneric|S3Class|S3forS4Methods|S3Part|sealClass|seemsS4Object|selectMethod|selectSuperClasses|setAs|setCacheOnAssign|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setNames|setOldClass|setPackageName|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showClassMethod|showDefault|showExtends|showExtraSlots|showMethods|showMlist|showRefClassDef|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|superClassMethodName|tableNames|testInheritedMethods|testVirtual|traceOff|traceOn|tryNew|unRematchDefinition|useMTable|validObject|validSlotNames)\\s*(\\()", - "captures": { - "1": { - "name": "support.function.r" - } - } - }, - { - "match": "\\b(acf|acf2AR|add\\.name|add1|add1\\.default|add1\\.glm|add1\\.lm|add1\\.mlm|addmargins|aggregate|aggregate\\.data.frame|aggregate\\.default|aggregate\\.formula|aggregate\\.ts|AIC|AIC\\.default|AIC\\.logLik|alias|alias\\.formula|alias\\.lm|anova|anova\\.glm|anova\\.glmlist|anova\\.lm|anova\\.lmlist|anova\\.loess|anova\\.mlm|anova\\.mlmlist|anova\\.nls|anovalist\\.nls|ansari\\.test|ansari\\.test.default|ansari\\.test.formula|aov|approx|approxfun|ar|ar\\.burg|ar\\.burg.default|ar\\.burg.mts|ar\\.mle|ar\\.ols|ar\\.yw|ar\\.yw.default|ar\\.yw.mts|arima|arima\\.sim|arima0|arima0\\.diag|ARMAacf|ARMAtoMA|as\\.data.frame.aovproj|as\\.data.frame.ftable|as\\.data.frame.logLik|as\\.dendrogram|as\\.dendrogram.dendrogram|as\\.dendrogram.hclust|as\\.dist|as\\.dist.default|as\\.formula|as\\.hclust|as\\.hclust.default|as\\.hclust.dendrogram|as\\.hclust.twins|as\\.matrix.dist|as\\.matrix.ftable|as\\.stepfun|as\\.stepfun.default|as\\.stepfun.isoreg|as\\.table.ftable|as\\.ts|as\\.ts.default|asOneSidedFormula|ave|bandwidth\\.kernel|bartlett\\.test|bartlett\\.test.default|bartlett\\.test.formula|BIC|BIC\\.default|BIC\\.logLik|binom\\.test|binomial|biplot|biplot\\.default|biplot\\.prcomp|biplot\\.princomp|Box\\.test|bw_pair_cnts|bw\\.bcv|bw\\.nrd|bw\\.nrd0|bw\\.SJ|bw\\.ucv|C|cancor|case\\.names|case\\.names.default|case\\.names.lm|cbind\\.ts|ccf|check_exact|chisq\\.test|cmdscale|coef|coef\\.aov|coef\\.Arima|coef\\.default|coef\\.listof|coef\\.maov|coef\\.nls|coefficients|complete\\.cases|confint|confint\\.default|confint\\.glm|confint\\.lm|confint\\.nls|constrOptim|contr\\.helmert|contr\\.poly|contr\\.SAS|contr\\.sum|contr\\.treatment|contrasts|convolve|cooks\\.distance|cooks\\.distance.glm|cooks\\.distance.lm|cophenetic|cophenetic\\.default|cophenetic\\.dendrogram|cor|cor\\.test|cor\\.test.default|cor\\.test.formula|cov|cov\\.wt|cov2cor|covratio|cpgram|cut\\.dendrogram|cutree|cycle|cycle\\.default|cycle\\.ts|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\.response|deltat|deltat\\.default|dendrapply|density|density\\.default|deriv|deriv\\.default|deriv\\.formula|deriv3|deriv3\\.default|deriv3\\.formula|deviance|deviance\\.default|deviance\\.glm|deviance\\.lm|deviance\\.mlm|deviance\\.nls|dexp|df|df\\.kernel|df\\.residual|df\\.residual.default|df\\.residual.nls|dfbeta|dfbeta\\.lm|dfbetas|dfbetas\\.lm|dffits|dgamma|dgeom|dhyper|diff\\.ts|diffinv|diffinv\\.default|diffinv\\.ts|diffinv\\.vector|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop\\.name|drop\\.terms|drop1|drop1\\.default|drop1\\.glm|drop1\\.lm|drop1\\.mlm|dsignrank|dt|dummy\\.coef|dummy\\.coef.aovlist|dummy\\.coef.lm|dunif|dweibull|dwilcox|ecdf|eff\\.aovlist|effects|effects\\.glm|effects\\.lm|embed|end|end\\.default|estVar|estVar\\.mlm|estVar\\.SSD|expand\\.model.frame|extractAIC|extractAIC\\.aov|extractAIC\\.coxph|extractAIC\\.glm|extractAIC\\.lm|extractAIC\\.negbin|extractAIC\\.survreg|factanal|factanal\\.fit.mle|factor\\.name|family|family\\.glm|family\\.lm|fft|filter|fisher\\.test|fitted|fitted\\.default|fitted\\.isoreg|fitted\\.kmeans|fitted\\.nls|fitted\\.smooth.spline|fitted\\.values|fivenum|fligner\\.test|fligner\\.test.default|fligner\\.test.formula|format_perc|format\\.dist|format\\.ftable|format\\.perc|formula|formula\\.character|formula\\.data.frame|formula\\.default|formula\\.formula|formula\\.glm|formula\\.lm|formula\\.nls|formula\\.terms|frequency|frequency\\.default|friedman\\.test|friedman\\.test.default|friedman\\.test.formula|ftable|ftable\\.default|ftable\\.formula|Gamma|gaussian|get_all_vars|getCall|getCall\\.default|getInitial|getInitial\\.default|getInitial\\.formula|getInitial\\.selfStart|glm|glm\\.control|glm\\.fit|hasTsp|hat|hatvalues|hatvalues\\.lm|hatvalues\\.smooth.spline|hclust|heatmap|HL|HoltWinters|hyman_filter|identify\\.hclust|influence|influence\\.glm|influence\\.lm|influence\\.measures|integrate|interaction\\.plot|inverse\\.gaussian|IQR|is\\.empty.model|is\\.leaf|is\\.mts|is\\.stepfun|is\\.ts|is\\.tskernel|isoreg|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernapply\\.default|kernapply\\.ts|kernapply\\.tskernel|kernapply\\.vector|kernel|kmeans|knots|knots\\.stepfun|kruskal\\.test|kruskal\\.test.default|kruskal\\.test.formula|ks\\.test|ksmooth|labels\\.dendrogram|labels\\.dist|labels\\.lm|labels\\.terms|lag|lag\\.default|lag\\.plot|line|lines\\.isoreg|lines\\.stepfun|lines\\.ts|lm|lm\\.fit|lm\\.influence|lm\\.wfit|loadings|loess|loess\\.control|loess\\.smooth|logLik|logLik\\.Arima|logLik\\.glm|logLik\\.lm|logLik\\.logLik|logLik\\.nls|loglin|lowess|ls\\.diag|ls\\.print|lsfit|mad|mahalanobis|make\\.link|make\\.tables.aovproj|make\\.tables.aovprojlist|makeARIMA|makepredictcall|makepredictcall\\.default|makepredictcall\\.poly|manova|mantelhaen\\.test|mauchly\\.test|mauchly\\.test.mlm|mauchly\\.test.SSD|mcnemar\\.test|median|median\\.default|medpolish|merge\\.dendrogram|midcache\\.dendrogram|model\\.extract|model\\.frame|model\\.frame.aovlist|model\\.frame.default|model\\.frame.glm|model\\.frame.lm|model\\.matrix|model\\.matrix.default|model\\.matrix.lm|model\\.offset|model\\.response|model\\.tables|model\\.tables.aov|model\\.tables.aovlist|model\\.weights|monthplot|monthplot\\.default|monthplot\\.stl|monthplot\\.StructTS|monthplot\\.ts|mood\\.test|mood\\.test.default|mood\\.test.formula|mvfft|n\\.knots|na\\.action|na\\.action.default|na\\.contiguous|na\\.contiguous.default|na\\.exclude|na\\.exclude.data.frame|na\\.exclude.default|na\\.fail|na\\.fail.default|na\\.omit|na\\.omit.data.frame|na\\.omit.default|na\\.omit.ts|na\\.pass|napredict|napredict\\.default|napredict\\.exclude|naprint|naprint\\.default|naprint\\.exclude|naprint\\.omit|naresid|naresid\\.default|naresid\\.exclude|nextn|nleaves|nlm|nlminb|nls|nls_port_fit|nls\\.control|nlsModel|nlsModel\\.plinear|NLSstAsymptotic|NLSstAsymptotic\\.sortedXyData|NLSstClosestX|NLSstClosestX\\.sortedXyData|NLSstLfAsymptote|NLSstLfAsymptote\\.sortedXyData|NLSstRtAsymptote|NLSstRtAsymptote\\.sortedXyData|nobs|nobs\\.default|nobs\\.dendrogram|nobs\\.glm|nobs\\.lm|nobs\\.logLik|nobs\\.nls|numericDeriv|offset|oneway\\.test|Ops\\.ts|optim|optimHess|optimise|optimize|order\\.dendrogram|p\\.adjust|pacf|pacf\\.default|pairwise\\.prop.test|pairwise\\.t.test|pairwise\\.table|pairwise\\.wilcox.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|Pillai|plclust|plnorm|plogis|plot\\.acf|plot\\.decomposed.ts|plot\\.dendrogram|plot\\.density|plot\\.ecdf|plot\\.hclust|plot\\.HoltWinters|plot\\.isoreg|plot\\.lm|plot\\.medpolish|plot\\.mlm|plot\\.ppr|plot\\.prcomp|plot\\.princomp|plot\\.profile.nls|plot\\.spec|plot\\.spec.coherency|plot\\.spec.phase|plot\\.stepfun|plot\\.stl|plot\\.ts|plot\\.tskernel|plot\\.TukeyHSD|plotNode|plotNodeLimit|pnbinom|pnorm|pointwise|poisson|poisson\\.test|poly|polym|port_get_named_v|port_msg|power|power\\.anova.test|power\\.prop.test|power\\.t.test|PP\\.test|ppoints|ppois|ppr|ppr\\.default|ppr\\.formula|prcomp|prcomp\\.default|prcomp\\.formula|predict|predict\\.ar|predict\\.Arima|predict\\.arima0|predict\\.glm|predict\\.HoltWinters|predict\\.lm|predict\\.loess|predict\\.mlm|predict\\.nls|predict\\.poly|predict\\.ppr|predict\\.prcomp|predict\\.princomp|predict\\.smooth.spline|predict\\.smooth.spline.fit|predict\\.StructTS|predLoess|preplot|princomp|princomp\\.default|princomp\\.formula|print\\.acf|print\\.anova|print\\.aov|print\\.aovlist|print\\.ar|print\\.Arima|print\\.arima0|print\\.dendrogram|print\\.density|print\\.dist|print\\.dummy_coef|print\\.dummy_coef_list|print\\.ecdf|print\\.factanal|print\\.family|print\\.formula|print\\.ftable|print\\.glm|print\\.hclust|print\\.HoltWinters|print\\.htest|print\\.infl|print\\.integrate|print\\.isoreg|print\\.kmeans|print\\.lm|print\\.loadings|print\\.loess|print\\.logLik|print\\.medpolish|print\\.mtable|print\\.nls|print\\.pairwise.htest|print\\.power.htest|print\\.ppr|print\\.prcomp|print\\.princomp|print\\.smooth.spline|print\\.stepfun|print\\.stl|print\\.StructTS|print\\.summary.aov|print\\.summary.aovlist|print\\.summary.ecdf|print\\.summary.glm|print\\.summary.lm|print\\.summary.loess|print\\.summary.manova|print\\.summary.nls|print\\.summary.ppr|print\\.summary.prcomp|print\\.summary.princomp|print\\.tables_aov|print\\.terms|print\\.ts|print\\.tskernel|print\\.TukeyHSD|print\\.tukeyline|print\\.tukeysmooth|print\\.xtabs|printCoefmat|profile|profile\\.nls|profiler|profiler\\.nls|proj|proj\\.aov|proj\\.aovlist|proj\\.default|proj\\.lm|proj\\.matrix|promax|prop\\.test|prop\\.trend.test|psignrank|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqnorm\\.default|qqplot|qr\\.lm|qsignrank|qt|qtukey|quade\\.test|quade\\.test.default|quade\\.test.formula|quantile|quantile\\.default|quantile\\.ecdf|quantile\\.POSIXt|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|Rank|rbeta|rbinom|rcauchy|rchisq|read\\.ftable|rect\\.hclust|reformulate|regularize\\.values|relevel|relevel\\.default|relevel\\.factor|relevel\\.ordered|reorder|reorder\\.default|reorder\\.dendrogram|replications|reshape|resid|residuals|residuals\\.default|residuals\\.glm|residuals\\.HoltWinters|residuals\\.isoreg|residuals\\.lm|residuals\\.nls|residuals\\.smooth.spline|residuals\\.tukeyline|rev\\.dendrogram|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|Roy|rpois|rsignrank|rstandard|rstandard\\.glm|rstandard\\.lm|rstudent|rstudent\\.glm|rstudent\\.lm|rt|runif|runmed|rweibull|rwilcox|rWishart|safe_pchisq|safe_pf|scatter\\.smooth|screeplot|screeplot\\.default|sd|se\\.aov|se\\.aovlist|se\\.contrast|se\\.contrast.aov|se\\.contrast.aovlist|selfStart|selfStart\\.default|selfStart\\.formula|setNames|shapiro\\.test|sigma|sigma\\.default|sigma\\.mlm|simpleLoess|simulate|simulate\\.lm|smooth|smooth\\.spline|smoothEnds|sortedXyData|sortedXyData\\.default|spec\\.ar|spec\\.pgram|spec\\.taper|spectrum|sphericity|spl_coef_conv|spline|splinefun|splinefunH|splinefunH0|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSD\\.mlm|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|start\\.default|stat\\.anova|step|stepfun|stl|str\\.dendrogram|str\\.logLik|StructTS|summary\\.aov|summary\\.aovlist|summary\\.ecdf|summary\\.glm|summary\\.infl|summary\\.lm|summary\\.loess|summary\\.manova|summary\\.mlm|summary\\.nls|summary\\.ppr|summary\\.prcomp|summary\\.princomp|summary\\.stepfun|summary\\.stl|summary\\.tukeysmooth|supsmu|symnum|t\\.test|t\\.test.default|t\\.test.formula|t\\.ts|termplot|terms|terms\\.aovlist|terms\\.default|terms\\.formula|terms\\.terms|Thin\\.col|Thin\\.row|time|time\\.default|time\\.ts|toeplitz|Tr|ts|ts\\.intersect|ts\\.plot|ts\\.union|tsdiag|tsdiag\\.Arima|tsdiag\\.arima0|tsdiag\\.StructTS|tsp|tsSmooth|tsSmooth\\.StructTS|TukeyHSD|TukeyHSD\\.aov|uniroot|update|update\\.default|update\\.formula|var|var\\.test|var\\.test.default|var\\.test.formula|variable\\.names|variable\\.names.default|variable\\.names.lm|varimax|vcov|vcov\\.Arima|vcov\\.glm|vcov\\.lm|vcov\\.mlm|vcov\\.nls|vcov\\.summary.glm|vcov\\.summary.lm|weighted\\.mean|weighted\\.mean.Date|weighted\\.mean.default|weighted\\.mean.difftime|weighted\\.mean.POSIXct|weighted\\.mean.POSIXlt|weighted\\.residuals|weights|weights\\.default|weights\\.glm|weights\\.nls|wilcox\\.test|wilcox\\.test.default|wilcox\\.test.formula|Wilks|window|window\\.default|window\\.ts|write\\.ftable|xtabs)\\s*(\\()", - "captures": { - "1": { - "name": "support.function.r" - } - } - }, - { - "match": "\\b(adist|alarm|apropos|aregexec|argNames|argsAnywhere|as\\.bibentry|as\\.bibentry.bibentry|as\\.bibentry.citation|as\\.character.person|as\\.character.roman|as\\.person|as\\.person.default|as\\.personList|as\\.personList.default|as\\.personList.person|as\\.relistable|as\\.roman|aspell|aspell_find_dictionaries|aspell_find_program|aspell_inspect_context|aspell_package|aspell_package_C_files|aspell_package_description|aspell_package_pot_files|aspell_package_R_files|aspell_package_Rd_files|aspell_package_vignettes|aspell_R_C_files|aspell_R_manuals|aspell_R_R_files|aspell_R_Rd_files|aspell_R_vignettes|aspell_write_personal_dictionary_file|assignInMyNamespace|assignInNamespace|attachedPackageCompletions|available\\.packages|bibentry|blank_out_ignores_in_lines|blank_out_regexp_matches|browseEnv|browseURL|browseVignettes|bug\\.report|bug\\.report.info|c\\.bibentry|c\\.person|capture\\.output|changedFiles|check_for_XQuartz|checkCRAN|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\.socket|close\\.txtProgressBar|combn|compareVersion|contrib\\.url|correctFilenameToken|count\\.fields|CRAN\\.packages|create\\.post|data|data\\.entry|dataentry|de|de\\.ncols|de\\.restore|de\\.setup|debugcall|debugger|defaultUserAgent|demo|download\\.file|download\\.packages|dump\\.frames|edit|edit\\.data.frame|edit\\.default|edit\\.matrix|edit\\.vignette|emacs|example|expr2token|file_test|file\\.edit|fileCompletionPreferred|fileCompletions|fileSnapshot|filter_packages_by_depends_predicates|find|find_files_in_directories|findExactMatches|findFuzzyMatches|findGeneric|findLineNum|findMatches|fix|fixInNamespace|flush\\.console|fnLineNum|format\\.aspell|format\\.bibentry|format\\.citation|format\\.news_db|format\\.object_size|format\\.person|format\\.roman|formatOL|formatUL|functionArgs|fuzzyApropos|get_parse_data_for_message_strings|getAnywhere|getCRANmirrors|getDependencies|getFromNamespace|getIsFirstArg|getKnownS3generics|getParseData|getParseText|getRcode|getRcode\\.vignette|getS3method|getSrcDirectory|getSrcfile|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hasName|head|head\\.data.frame|head\\.default|head\\.ftable|head\\.function|head\\.matrix|head\\.table|help|help\\.request|help\\.search|help\\.start|helpCompletions|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|index\\.search|inFunction|install\\.packages|installed\\.packages|is\\.relistable|isBasePkg|isInsideQuotes|isS3method|isS3stdGeneric|keywordCompletions|limitedLabels|loadedPackageCompletions|loadhistory|localeToCharset|ls\\.str|lsf\\.str|maintainer|make_sysdata_rda|make\\.packages.html|make\\.socket|makeRegexpSafe|makeRweaveLatexCodeRunner|makeUserAgent|matchAvailableTopics|memory\\.limit|memory\\.size|menu|merge_demo_index|merge_vignette_index|methods|mirror2html|modifyList|new\\.packages|news|normalCompletions|nsl|object\\.size|offline_help_helper|old\\.packages|Ops\\.roman|package\\.skeleton|packageDescription|packageName|packageStatus|packageVersion|page|person|personList|pico|print\\.aspell|print\\.aspell_inspect_context|print\\.bibentry|print\\.Bibtex|print\\.browseVignettes|print\\.changedFiles|print\\.citation|print\\.fileSnapshot|print\\.findLineNumResult|print\\.getAnywhere|print\\.help_files_with_topic|print\\.hsearch|print\\.hsearch_db|print\\.Latex|print\\.ls_str|print\\.MethodsFunction|print\\.news_db|print\\.object_size|print\\.packageDescription|print\\.packageIQR|print\\.packageStatus|print\\.person|print\\.roman|print\\.sessionInfo|print\\.socket|print\\.summary.packageStatus|print\\.vignette|printhsearchInternal|process\\.events|prompt|prompt\\.data.frame|prompt\\.default|promptData|promptImport|promptPackage|rc\\.getOption|rc\\.options|rc\\.settings|rc\\.status|read\\.csv|read\\.csv2|read\\.delim|read\\.delim2|read\\.DIF|read\\.fortran|read\\.fwf|read\\.socket|read\\.table|readCitationFile|recover|registerNames|regquote|relist|relist\\.default|relist\\.factor|relist\\.list|relist\\.matrix|remove\\.packages|removeSource|rep\\.bibentry|rep\\.roman|resolvePkgType|Rprof|Rprof_memory_summary|Rprofmem|RShowDoc|RSiteSearch|rtags|rtags\\.file|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexRuncode|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\.list|sessionInfo|setBreakpoint|setIsFirstArg|setRepositories|setTxtProgressBar|shorten\\.to.string|simplifyRepos|sort\\.bibentry|specialCompletions|specialFunctionArgs|specialOpCompletionsHelper|specialOpLocs|stack|stack\\.data.frame|stack\\.default|Stangle|str|str\\.data.frame|str\\.Date|str\\.default|str\\.POSIXt|strcapture|strextract|strOptions|substr_with_tabs|summary\\.aspell|summary\\.packageStatus|summaryRprof|suppressForeignCheck|Sweave|SweaveGetSyntax|SweaveHooks|SweaveParseOptions|SweaveReadFile|SweaveSyntConv|tail|tail\\.data.frame|tail\\.default|tail\\.ftable|tail\\.function|tail\\.matrix|tail\\.table|tar|timestamp|toBibtex|toBibtex\\.bibentry|toBibtex\\.person|toLatex|toLatex\\.sessionInfo|topicName|txtProgressBar|type\\.convert|undebugcall|unique\\.bibentry|unlist\\.relistable|unstack|unstack\\.data.frame|unstack\\.default|untar|untar2|unzip|update\\.packages|update\\.packageStatus|upgrade|upgrade\\.packageStatus|url\\.show|URLdecode|URLencode|vi|View|vignette|write\\.csv|write\\.csv2|write\\.etags|write\\.socket|write\\.table|wsbrowser|xedit|xemacs|zip)\\s*(\\()", - "captures": { - "1": { - "name": "support.function.r" - } - } - } - ] - } - } -} diff --git a/lib/grammars/raku.tmLanguage.json b/lib/grammars/raku.tmLanguage.json deleted file mode 100644 index 4bf7a15..0000000 --- a/lib/grammars/raku.tmLanguage.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl%206.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/perl.tmbundle/commit/d9841a0878239fa43f88c640f8d458590f97e8f5", - "name": "raku", - "scopeName": "source.perl.6", - "patterns": [ - { - "begin": "^=begin", - "end": "^=end", - "name": "comment.block.perl" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.perl" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.perl" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.perl" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.class.perl.6" - }, - "3": { - "name": "entity.name.type.class.perl.6" - } - }, - "match": "(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)", - "name": "meta.class.perl.6" - }, - { - "begin": "(?<=\\s)'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.single.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.double.perl", - "patterns": [ - { - "match": "\\\\[abtnfre\"\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/", - "end": "\\3", - "name": "string.quoted.single.heredoc.perl" - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{", - "end": "}}", - "name": "string.quoted.double.heredoc.brace.perl", - "patterns": [ - { - "include": "#qq_brace_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(", - "end": "\\)\\)", - "name": "string.quoted.double.heredoc.paren.perl", - "patterns": [ - { - "include": "#qq_paren_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[", - "end": "\\]\\]", - "name": "string.quoted.double.heredoc.bracket.perl", - "patterns": [ - { - "include": "#qq_bracket_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{", - "end": "}", - "name": "string.quoted.single.heredoc.brace.perl", - "patterns": [ - { - "include": "#qq_brace_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/", - "end": "/", - "name": "string.quoted.single.heredoc.slash.perl", - "patterns": [ - { - "include": "#qq_slash_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(", - "end": "\\)", - "name": "string.quoted.single.heredoc.paren.perl", - "patterns": [ - { - "include": "#qq_paren_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[", - "end": "\\]", - "name": "string.quoted.single.heredoc.bracket.perl", - "patterns": [ - { - "include": "#qq_bracket_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'", - "end": "'", - "name": "string.quoted.single.heredoc.single.perl", - "patterns": [ - { - "include": "#qq_single_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\"", - "end": "\"", - "name": "string.quoted.single.heredoc.double.perl", - "patterns": [ - { - "include": "#qq_double_string_content" - } - ] - }, - { - "match": "\\b\\$\\w+\\b", - "name": "variable.other.perl" - }, - { - "match": "\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b", - "name": "storage.type.declare.routine.perl" - }, - { - "match": "\\b(self)\\b", - "name": "variable.language.perl" - }, - { - "match": "\\b(use|require)\\b", - "name": "keyword.other.include.perl" - }, - { - "match": "\\b(if|else|elsif|unless)\\b", - "name": "keyword.control.conditional.perl" - }, - { - "match": "\\b(let|my|our|state|temp|has|constant)\\b", - "name": "storage.type.variable.perl" - }, - { - "match": "\\b(for|loop|repeat|while|until|gather|given)\\b", - "name": "keyword.control.repeat.perl" - }, - { - "match": "\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b", - "name": "keyword.control.flowcontrol.perl" - }, - { - "match": "\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b", - "name": "storage.modifier.type.constraints.perl" - }, - { - "match": "\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b", - "name": "meta.function.perl" - }, - { - "match": "\\b(die|fail|try|warn)\\b", - "name": "keyword.control.control-handlers.perl" - }, - { - "match": "\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b", - "name": "storage.modifier.perl" - }, - { - "match": "\\b(NaN|Inf)\\b", - "name": "constant.numeric.perl" - }, - { - "match": "\\b(oo|fatal)\\b", - "name": "keyword.other.pragma.perl" - }, - { - "match": "\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b", - "name": "support.type.perl6" - }, - { - "match": "\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b", - "name": "keyword.operator.perl" - }, - { - "match": "(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*", - "name": "variable.other.identifier.perl.6" - }, - { - "match": "\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b", - "name": "support.function.perl" - } - ], - "repository": { - "qq_brace_string_content": { - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#qq_brace_string_content" - } - ] - }, - "qq_bracket_string_content": { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#qq_bracket_string_content" - } - ] - }, - "qq_double_string_content": { - "begin": "\"", - "end": "\"", - "patterns": [ - { - "include": "#qq_double_string_content" - } - ] - }, - "qq_paren_string_content": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#qq_paren_string_content" - } - ] - }, - "qq_single_string_content": { - "begin": "'", - "end": "'", - "patterns": [ - { - "include": "#qq_single_string_content" - } - ] - }, - "qq_slash_string_content": { - "begin": "\\\\/", - "end": "\\\\/", - "patterns": [ - { - "include": "#qq_slash_string_content" - } - ] - } - } -} diff --git a/lib/grammars/razor.tmLanguage.json b/lib/grammars/razor.tmLanguage.json deleted file mode 100644 index 01f0350..0000000 --- a/lib/grammars/razor.tmLanguage.json +++ /dev/null @@ -1,1809 +0,0 @@ -{ - "name": "razor", - "scopeName": "text.aspnetcorerazor", - "fileTypes": ["razor", "cshtml"], - "patterns": [ - { - "include": "#razor-control-structures" - }, - { - "include": "text.html.basic" - } - ], - "repository": { - "razor-control-structures": { - "patterns": [ - { - "include": "#razor-comment" - }, - { - "include": "#razor-codeblock" - }, - { - "include": "#explicit-razor-expression" - }, - { - "include": "#escaped-transition" - }, - { - "include": "#directives" - }, - { - "include": "#transitioned-csharp-control-structures" - }, - { - "include": "#implicit-expression" - } - ] - }, - "optionally-transitioned-razor-control-structures": { - "patterns": [ - { - "include": "#razor-comment" - }, - { - "include": "#razor-codeblock" - }, - { - "include": "#explicit-razor-expression" - }, - { - "include": "#escaped-transition" - }, - { - "include": "#directives" - }, - { - "include": "#optionally-transitioned-csharp-control-structures" - }, - { - "include": "#implicit-expression" - } - ] - }, - "escaped-transition": { - "name": "constant.character.escape.razor.transition", - "match": "@@" - }, - "transition": { - "match": "@", - "name": "keyword.control.cshtml.transition" - }, - "razor-codeblock": { - "name": "meta.structure.razor.codeblock", - "begin": "(@)(\\{)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.codeblock.open" - } - }, - "contentName": "source.cs", - "patterns": [ - { - "include": "#razor-codeblock-body" - } - ], - "end": "(\\})", - "endCaptures": { - "1": { - "name": "keyword.control.razor.directive.codeblock.close" - } - } - }, - "razor-codeblock-body": { - "patterns": [ - { - "include": "#text-tag" - }, - { - "include": "#wellformed-html" - }, - { - "include": "#razor-single-line-markup" - }, - { - "include": "#optionally-transitioned-razor-control-structures" - }, - { - "include": "source.cs" - } - ] - }, - "razor-single-line-markup": { - "match": "(\\@\\:)([^$]*)$", - "captures": { - "1": { - "name": "keyword.control.razor.singleLineMarkup" - }, - "2": { - "patterns": [ - { - "include": "#razor-control-structures" - }, - { - "include": "text.html.basic" - } - ] - } - } - }, - "text-tag": { - "begin": "(<text\\s*>)", - "beginCaptures": { - "1": { - "name": "keyword.control.cshtml.transition.textTag.open" - } - }, - "patterns": [ - { - "include": "#wellformed-html" - }, - { - "include": "$self" - } - ], - "end": "(</text>)", - "endCaptures": { - "1": { - "name": "keyword.control.cshtml.transition.textTag.close" - } - } - }, - "razor-comment": { - "name": "meta.comment.razor", - "begin": "(@)(\\*)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.comment.star" - } - }, - "contentName": "comment.block.razor", - "end": "(\\*)(@)", - "endCaptures": { - "1": { - "name": "keyword.control.razor.comment.star" - }, - "2": { - "patterns": [ - { - "include": "#transition" - } - ] - } - } - }, - "wellformed-html": { - "patterns": [ - { - "include": "#void-tag" - }, - { - "include": "#non-void-tag" - } - ] - }, - "void-tag": { - "name": "meta.tag.structure.$3.void.html", - "begin": "(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "constant.character.escape.razor.tagHelperOptOut" - }, - "3": { - "name": "entity.name.tag.html" - } - }, - "patterns": [ - { - "include": "text.html.basic#attribute" - } - ], - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - } - }, - "non-void-tag": { - "begin": "(?=<(!)?([^/\\s>]+)(\\s|/?>))", - "end": "(</)(\\2)\\s*(>)|(/>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "begin": "(<)(!)?([^/\\s>]+)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "constant.character.escape.razor.tagHelperOptOut" - }, - "3": { - "name": "entity.name.tag.html" - } - }, - "end": "(?=/?>)", - "patterns": [ - { - "include": "#razor-control-structures" - }, - { - "include": "text.html.basic#attribute" - } - ] - }, - { - "begin": ">", - "beginCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?=</)", - "patterns": [ - { - "include": "#wellformed-html" - }, - { - "include": "$self" - } - ] - } - ] - }, - "explicit-razor-expression": { - "name": "meta.expression.explicit.cshtml", - "begin": "(@)\\(", - "beginCaptures": { - "0": { - "name": "keyword.control.cshtml" - }, - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - } - }, - "patterns": [ - { - "include": "source.cs#expression" - } - ], - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.control.cshtml" - } - } - }, - "implicit-expression": { - "name": "meta.expression.implicit.cshtml", - "contentName": "source.cs", - "begin": "(?<![[:alpha:][:alnum:]])(@)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - } - }, - "patterns": [ - { - "include": "#await-prefix" - }, - { - "include": "#implicit-expression-body" - } - ], - "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" - }, - "implicit-expression-body": { - "patterns": [ - { - "include": "#implicit-expression-invocation-start" - }, - { - "include": "#implicit-expression-accessor-start" - } - ], - "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" - }, - "implicit-expression-invocation-start": { - "begin": "([_[:alpha:]][_[:alnum:]]*)(?=\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.cs" - } - }, - "patterns": [ - { - "include": "#implicit-expression-continuation" - } - ], - "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" - }, - "implicit-expression-accessor-start": { - "begin": "([_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "variable.other.object.cs" - } - }, - "patterns": [ - { - "include": "#implicit-expression-continuation" - } - ], - "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" - }, - "implicit-expression-continuation": { - "patterns": [ - { - "include": "#balanced-parenthesis-csharp" - }, - { - "include": "#balanced-brackets-csharp" - }, - { - "include": "#implicit-expression-invocation" - }, - { - "include": "#implicit-expression-accessor" - }, - { - "include": "#implicit-expression-extension" - } - ], - "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" - }, - "implicit-expression-accessor": { - "match": "(?<=\\.)[_[:alpha:]][_[:alnum:]]*", - "name": "variable.other.object.property.cs" - }, - "implicit-expression-invocation": { - "match": "(?<=\\.)[_[:alpha:]][_[:alnum:]]*(?=\\()", - "name": "entity.name.function.cs" - }, - "implicit-expression-operator": { - "patterns": [ - { - "include": "#implicit-expression-dot-operator" - }, - { - "include": "#implicit-expression-null-conditional-operator" - }, - { - "include": "#implicit-expression-null-forgiveness-operator" - } - ] - }, - "implicit-expression-dot-operator": { - "match": "(\\.)(?=[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.cs" - } - } - }, - "implicit-expression-null-conditional-operator": { - "match": "(\\?)(?=[.\\[])", - "captures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - } - } - }, - "implicit-expression-null-forgiveness-operator": { - "match": "(\\!)(?=(?:\\.[_[:alpha:]][_[:alnum:]]*)|\\?|[\\[\\(])", - "captures": { - "1": { - "name": "keyword.operator.logical.cs" - } - } - }, - "balanced-parenthesis-csharp": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "name": "razor.test.balanced.parenthesis", - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.parenthesis.close.cs" - } - } - }, - "balanced-brackets-csharp": { - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "name": "razor.test.balanced.brackets", - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.squarebracket.close.cs" - } - } - }, - "directives": { - "patterns": [ - { - "include": "#code-directive" - }, - { - "include": "#functions-directive" - }, - { - "include": "#page-directive" - }, - { - "include": "#addTagHelper-directive" - }, - { - "include": "#removeTagHelper-directive" - }, - { - "include": "#tagHelperPrefix-directive" - }, - { - "include": "#model-directive" - }, - { - "include": "#inherits-directive" - }, - { - "include": "#implements-directive" - }, - { - "include": "#namespace-directive" - }, - { - "include": "#inject-directive" - }, - { - "include": "#attribute-directive" - }, - { - "include": "#section-directive" - }, - { - "include": "#layout-directive" - }, - { - "include": "#using-directive" - } - ] - }, - "code-directive": { - "begin": "(@)(code)((?=\\{)|\\s+)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.code" - } - }, - "patterns": [ - { - "include": "#directive-codeblock" - } - ], - "end": "(?<=})|\\s" - }, - "functions-directive": { - "begin": "(@)(functions)((?=\\{)|\\s+)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.functions" - } - }, - "patterns": [ - { - "include": "#directive-codeblock" - } - ], - "end": "(?<=})|\\s" - }, - "directive-codeblock": { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.razor.directive.codeblock.open" - } - }, - "name": "meta.structure.razor.directive.codeblock", - "contentName": "source.cs", - "patterns": [ - { - "include": "source.cs#class-or-struct-members" - } - ], - "end": "(\\})", - "endCaptures": { - "1": { - "name": "keyword.control.razor.directive.codeblock.close" - } - } - }, - "page-directive": { - "name": "meta.directive", - "match": "(@)(page)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.page" - }, - "3": { - "patterns": [ - { - "include": "source.cs#string-literal" - } - ] - } - } - }, - "addTagHelper-directive": { - "name": "meta.directive", - "match": "(@)(addTagHelper)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.addTagHelper" - }, - "3": { - "patterns": [ - { - "include": "#tagHelper-directive-argument" - } - ] - } - } - }, - "removeTagHelper-directive": { - "name": "meta.directive", - "match": "(@)(removeTagHelper)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.removeTagHelper" - }, - "3": { - "patterns": [ - { - "include": "#tagHelper-directive-argument" - } - ] - } - } - }, - "tagHelperPrefix-directive": { - "name": "meta.directive", - "match": "(@)(tagHelperPrefix)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.tagHelperPrefix" - }, - "3": { - "patterns": [ - { - "include": "#tagHelper-directive-argument" - } - ] - } - } - }, - "tagHelper-directive-argument": { - "patterns": [ - { - "include": "source.cs#string-literal" - }, - { - "include": "#unquoted-string-argument" - } - ] - }, - "unquoted-string-argument": { - "name": "string.quoted.double.cs", - "match": "[^$]+" - }, - "model-directive": { - "name": "meta.directive", - "match": "(@)(model)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.model" - }, - "3": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - } - } - }, - "inherits-directive": { - "name": "meta.directive", - "match": "(@)(inherits)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.inherits" - }, - "3": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - } - } - }, - "implements-directive": { - "name": "meta.directive", - "match": "(@)(implements)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.implements" - }, - "3": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - } - } - }, - "layout-directive": { - "name": "meta.directive", - "match": "(@)(layout)\\s+([^$]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.layout" - }, - "3": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - } - } - }, - "namespace-directive": { - "name": "meta.directive", - "match": "(@)(namespace)\\s+([^\\s]+)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.namespace" - }, - "3": { - "patterns": [ - { - "include": "#namespace-directive-argument" - } - ] - } - } - }, - "namespace-directive-argument": { - "match": "([_[:alpha:]][_[:alnum:]]*)(\\.)?", - "captures": { - "1": { - "name": "entity.name.type.namespace.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - } - } - }, - "inject-directive": { - "name": "meta.directive", - "match": "(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.inject" - }, - "3": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - }, - "4": { - "name": "entity.name.variable.property.cs" - } - } - }, - "attribute-directive": { - "name": "meta.directive", - "begin": "(@)(attribute)\\b\\s+", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.attribute" - } - }, - "patterns": [ - { - "include": "source.cs#attribute-section" - } - ], - "end": "(?<=\\])|$" - }, - "section-directive": { - "name": "meta.directive.block", - "begin": "(@)(section)\\b\\s+([_[:alpha:]][_[:alnum:]]*)?", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.razor.directive.section" - }, - "3": { - "name": "variable.other.razor.directive.sectionName" - } - }, - "patterns": [ - { - "include": "#directive-markupblock" - } - ], - "end": "(?<=})" - }, - "directive-markupblock": { - "name": "meta.structure.razor.directive.markblock", - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.razor.directive.codeblock.open" - } - }, - "patterns": [ - { - "include": "$self" - } - ], - "end": "(\\})", - "endCaptures": { - "1": { - "name": "keyword.control.razor.directive.codeblock.close" - } - } - }, - "using-directive": { - "name": "meta.directive", - "match": "(@)(using)\\b\\s+(?!\\(|\\s)(.+?)?(;)?$", - "captures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.other.using.cs" - }, - "3": { - "patterns": [ - { - "include": "#using-static-directive" - }, - { - "include": "#using-alias-directive" - }, - { - "include": "#using-standard-directive" - } - ] - }, - "4": { - "name": "keyword.control.razor.optionalSemicolon" - } - } - }, - "using-static-directive": { - "match": "(static)\\b\\s+(.+)", - "captures": { - "1": { - "name": "keyword.other.static.cs" - }, - "2": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - } - } - }, - "using-alias-directive": { - "match": "([_[:alpha:]][_[:alnum:]]*)\\b\\s*(=)\\s*(.+)\\s*", - "captures": { - "1": { - "name": "entity.name.type.alias.cs" - }, - "2": { - "name": "keyword.operator.assignment.cs" - }, - "3": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - } - } - }, - "using-standard-directive": { - "match": "([_[:alpha:]][_[:alnum:]]*)\\s*", - "captures": { - "1": { - "name": "entity.name.type.namespace.cs" - } - } - }, - "optionally-transitioned-csharp-control-structures": { - "patterns": [ - { - "include": "#using-statement-with-optional-transition" - }, - { - "include": "#if-statement-with-optional-transition" - }, - { - "include": "#else-part" - }, - { - "include": "#foreach-statement-with-optional-transition" - }, - { - "include": "#for-statement-with-optional-transition" - }, - { - "include": "#while-statement" - }, - { - "include": "#switch-statement-with-optional-transition" - }, - { - "include": "#lock-statement-with-optional-transition" - }, - { - "include": "#do-statement-with-optional-transition" - }, - { - "include": "#try-statement-with-optional-transition" - } - ] - }, - "transitioned-csharp-control-structures": { - "patterns": [ - { - "include": "#using-statement" - }, - { - "include": "#if-statement" - }, - { - "include": "#else-part" - }, - { - "include": "#foreach-statement" - }, - { - "include": "#for-statement" - }, - { - "include": "#while-statement" - }, - { - "include": "#switch-statement" - }, - { - "include": "#lock-statement" - }, - { - "include": "#do-statement" - }, - { - "include": "#try-statement" - } - ] - }, - "using-statement": { - "name": "meta.statement.using.razor", - "begin": "(?:(@))(using)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.other.using.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "using-statement-with-optional-transition": { - "name": "meta.statement.using.razor", - "begin": "(?:^\\s*|(@))(using)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.other.using.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "if-statement": { - "name": "meta.statement.if.razor", - "begin": "(?:(@))(if)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.conditional.if.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "if-statement-with-optional-transition": { - "name": "meta.statement.if.razor", - "begin": "(?:^\\s*|(@))(if)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.conditional.if.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "else-part": { - "name": "meta.statement.else.razor", - "begin": "(?:^|(?<=}))\\s*(else)\\b\\s*?(?: (if))?\\s*?(?=[\\n\\(\\{])", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.else.cs" - }, - "2": { - "name": "keyword.control.conditional.if.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "for-statement": { - "name": "meta.statement.for.razor", - "begin": "(?:(@))(for)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.loop.for.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "for-statement-with-optional-transition": { - "name": "meta.statement.for.razor", - "begin": "(?:^\\s*|(@))(for)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.loop.for.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "foreach-statement": { - "name": "meta.statement.foreach.razor", - "begin": "(?:(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#await-prefix" - } - ] - }, - "3": { - "name": "keyword.control.loop.foreach.cs" - } - }, - "patterns": [ - { - "include": "#foreach-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "foreach-statement-with-optional-transition": { - "name": "meta.statement.foreach.razor", - "begin": "(?:^\\s*|(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#await-prefix" - } - ] - }, - "3": { - "name": "keyword.control.loop.foreach.cs" - } - }, - "patterns": [ - { - "include": "#foreach-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "foreach-condition": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "match": "(?x)\n(?:\n (\\bvar\\b)|\n (?<type-name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name-and-type-args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name-and-type-args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - }, - "8": { - "name": "keyword.control.loop.in.cs" - } - } - }, - { - "match": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "source.cs#tuple-declaration-deconstruction-element-list" - } - ] - }, - "3": { - "name": "keyword.control.loop.in.cs" - } - } - }, - { - "include": "source.cs#expression" - } - ] - }, - "do-statement": { - "name": "meta.statement.do.razor", - "begin": "(?:(@))(do)\\b\\s", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.loop.do.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "do-statement-with-optional-transition": { - "name": "meta.statement.do.razor", - "begin": "(?:^\\s*|(@))(do)\\b\\s", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.loop.do.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "while-statement": { - "name": "meta.statement.while.razor", - "begin": "(?:(@)|^\\s*|(?<=})\\s*)(while)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.loop.while.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})|(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cs" - } - } - }, - "switch-statement": { - "name": "meta.statement.switch.razor", - "begin": "(?:(@))(switch)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.switch.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#switch-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "switch-statement-with-optional-transition": { - "name": "meta.statement.switch.razor", - "begin": "(?:^\\s*|(@))(switch)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.switch.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#switch-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "switch-code-block": { - "name": "meta.structure.razor.csharp.codeblock.switch", - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "patterns": [ - { - "include": "source.cs#switch-label" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.curlybrace.close.cs" - } - } - }, - "lock-statement": { - "name": "meta.statement.lock.razor", - "begin": "(?:(@))(lock)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.other.lock.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "lock-statement-with-optional-transition": { - "name": "meta.statement.lock.razor", - "begin": "(?:^\\s*|(@))(lock)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.other.lock.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "try-statement": { - "patterns": [ - { - "include": "#try-block" - }, - { - "include": "#catch-clause" - }, - { - "include": "#finally-clause" - } - ] - }, - "try-statement-with-optional-transition": { - "patterns": [ - { - "include": "#try-block-with-optional-transition" - }, - { - "include": "#catch-clause" - }, - { - "include": "#finally-clause" - } - ] - }, - "try-block": { - "name": "meta.statement.try.razor", - "begin": "(?:(@))(try)\\b\\s*", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.try.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "try-block-with-optional-transition": { - "name": "meta.statement.try.razor", - "begin": "(?:^\\s*|(@))(try)\\b\\s*", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#transition" - } - ] - }, - "2": { - "name": "keyword.control.try.cs" - } - }, - "patterns": [ - { - "include": "#csharp-condition" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "catch-clause": { - "name": "meta.statement.catch.razor", - "begin": "(?:^|(?<=}))\\s*(catch)\\b\\s*?(?=[\\n\\(\\{])", - "beginCaptures": { - "1": { - "name": "keyword.control.try.catch.cs" - } - }, - "patterns": [ - { - "include": "#catch-condition" - }, - { - "include": "source.cs#when-clause" - }, - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "catch-condition": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "match": "(?x)\n(?<type-name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name-and-type-args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name-and-type-args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cs#type" - } - ] - }, - "6": { - "name": "entity.name.variable.local.cs" - } - } - } - ] - }, - "finally-clause": { - "name": "meta.statement.finally.razor", - "begin": "(?:^|(?<=}))\\s*(finally)\\b\\s*?(?=[\\n\\{])", - "beginCaptures": { - "1": { - "name": "keyword.control.try.finally.cs" - } - }, - "patterns": [ - { - "include": "#csharp-code-block" - }, - { - "include": "#razor-codeblock-body" - } - ], - "end": "(?<=})" - }, - "await-prefix": { - "name": "keyword.other.await.cs", - "match": "(await)\\s+" - }, - "csharp-code-block": { - "name": "meta.structure.razor.csharp.codeblock", - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "patterns": [ - { - "include": "#razor-codeblock-body" - } - ], - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.curlybrace.close.cs" - } - } - }, - "csharp-condition": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "patterns": [ - { - "include": "source.cs#local-variable-declaration" - }, - { - "include": "source.cs#expression" - }, - { - "include": "source.cs#punctuation-comma" - }, - { - "include": "source.cs#punctuation-semicolon" - } - ], - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.parenthesis.close.cs" - } - } - } - } -} diff --git a/lib/grammars/reg.tmLanguage.json b/lib/grammars/reg.tmLanguage.json deleted file mode 100644 index a04132f..0000000 --- a/lib/grammars/reg.tmLanguage.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "fileTypes": ["reg", "REG"], - "name": "reg", - "patterns": [ - { - "match": "Windows Registry Editor Version 5\\.00|REGEDIT4", - "name": "keyword.control.import.reg" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.reg" - } - }, - "match": "(;).*$", - "name": "comment.line.semicolon.reg" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.section.reg" - }, - "2": { - "name": "entity.section.reg" - }, - "3": { - "name": "punctuation.definition.section.reg" - } - }, - "match": "^\\s*(\\[(?!-))(.*?)(\\])", - "name": "entity.name.function.section.add.reg" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.section.reg" - }, - "2": { - "name": "entity.section.reg" - }, - "3": { - "name": "punctuation.definition.section.reg" - } - }, - "match": "^\\s*(\\[-)(.*?)(\\])", - "name": "entity.name.function.section.delete.reg" - }, - { - "captures": { - "2": { - "name": "punctuation.definition.quote.reg" - }, - "3": { - "name": "support.function.regname.ini" - }, - "4": { - "name": "punctuation.definition.quote.reg" - }, - "5": { - "name": "punctuation.definition.equals.reg" - }, - "7": { - "name": "keyword.operator.arithmetic.minus.reg" - }, - "9": { - "name": "punctuation.definition.quote.reg" - }, - "10": { - "name": "string.name.regdata.reg" - }, - "11": { - "name": "punctuation.definition.quote.reg" - }, - "13": { - "name": "support.type.dword.reg" - }, - "14": { - "name": "keyword.operator.arithmetic.colon.reg" - }, - "15": { - "name": "constant.numeric.dword.reg" - }, - "17": { - "name": "support.type.dword.reg" - }, - "18": { - "name": "keyword.operator.arithmetic.parenthesis.reg" - }, - "19": { - "name": "keyword.operator.arithmetic.parenthesis.reg" - }, - "20": { - "name": "constant.numeric.hex.size.reg" - }, - "21": { - "name": "keyword.operator.arithmetic.parenthesis.reg" - }, - "22": { - "name": "keyword.operator.arithmetic.colon.reg" - }, - "23": { - "name": "constant.numeric.hex.reg" - }, - "24": { - "name": "keyword.operator.arithmetic.linecontinuation.reg" - }, - "25": { - "name": "comment.declarationline.semicolon.reg" - } - }, - "match": "^(\\s*([\"']?)(.+?)([\"']?)\\s*(=))?\\s*((-)|(([\"'])(.*?)([\"']))|(((?i:dword))(\\:)\\s*([\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\()([\\d]*)(\\)))?(\\:)(.*?)(\\\\?)))\\s*(;.*)?$", - "name": "meta.declaration.reg" - }, - { - "match": "[0-9]+", - "name": "constant.numeric.reg" - }, - { - "match": "[a-fA-F]+", - "name": "constant.numeric.hex.reg" - }, - { - "match": ",+", - "name": "constant.numeric.hex.comma.reg" - }, - { - "match": "\\\\", - "name": "keyword.operator.arithmetic.linecontinuation.reg" - } - ], - "scopeName": "source.reg", - "uuid": "B7773F5B-C43A-4BB9-843A-4AC119250EBD" -} diff --git a/lib/grammars/rel.tmLanguage.json b/lib/grammars/rel.tmLanguage.json deleted file mode 100644 index c8e72f5..0000000 --- a/lib/grammars/rel.tmLanguage.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "rel", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#comment" - }, - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#deprecated-temporary" - }, - { - "include": "#operators" - }, - { - "include": "#symbols" - }, - { - "include": "#keywords" - }, - { - "include": "#otherkeywords" - }, - { - "include": "#types" - }, - { - "include": "#constants" - } - ], - "repository": { - "strings": { - "name": "string.quoted.double.rel", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.rel", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.rel", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.rel" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.rel" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.rel", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.rel" - }, - "2": { - "name": "storage.type.internaldeclaration.rel" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.rel" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.rel" - } - } - }, - { - "name": "comment.block.documentation.rel", - "begin": "doc\"\"\"", - "end": "\"\"\"" - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.rel" - }, - "2": { - "name": "comment.line.double-slash.rel" - }, - "3": { - "name": "punctuation.definition.comment.rel" - }, - "4": { - "name": "storage.type.internaldeclaration.rel" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.rel" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.rel" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.rel" - }, - "2": { - "name": "comment.line.double-slash.rel" - }, - "3": { - "name": "punctuation.definition.comment.rel" - }, - "4": { - "name": "storage.type.internaldeclaration.rel" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.rel" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.rel" - }, - "deprecated-temporary": { - "patterns": [ - { - "name": "keyword.other.rel", - "match": "@inspect" - } - ] - }, - "operators": { - "patterns": [ - { - "name": "keyword.other.rel", - "match": "(\\b(if|then|else|and|or|not|eq|neq|lt|lt_eq|gt|gt_eq)\\b)|(\\+|\\-|\\*|\\/|÷|\\^|\\%|\\=|\\!\\=|≠|\\<|\\<\\=|≤|\\>|\\>\\=|≥|\\&)|\\s+(end)" - } - ] - }, - "symbols": { - "patterns": [ - { - "name": "variable.parameter.rel", - "match": "(:[\\[_$[:alpha:]](\\]|[_$[:alnum:]]*))" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.rel", - "match": "(\\b(def|entity|bound|include|ic|forall|exists|∀|∃|return|module|^end)\\b)|(((\\<)?\\|(\\>)?)|∀|∃)" - } - ] - }, - "otherkeywords": { - "patterns": [ - { - "name": "keyword.other.rel", - "match": "\\s*(@inline)\\s*|\\s*(@auto_number)\\s*|\\s*(function)\\s|(\\b(implies|select|from|∈|where|for|in)\\b)|(((\\<)?\\|(\\>)?)|∈)" - } - ] - }, - "types": { - "patterns": [ - { - "name": "entity.name.type.rel", - "match": "(\\b(Symbol|Char|Bool|Rational|FixedDecimal|Float16|Float32|Float64|Int8|Int16|Int32|Int64|Int128|UInt8|UInt16|UInt32|UInt64|UInt128|Date|DateTime|Day|Week|Month|Year|Nanosecond|Microsecond|Millisecond|Second|Minute|Hour|FilePos|HashValue|AutoNumberValue)\\b)" - } - ] - }, - "constants": { - "patterns": [ - { - "name": "constant.language.rel", - "match": "(\\b(true|false)\\b)" - } - ] - } - }, - "scopeName": "source.rel" -} diff --git a/lib/grammars/riscv.tmLanguage.json b/lib/grammars/riscv.tmLanguage.json deleted file mode 100644 index ba928b5..0000000 --- a/lib/grammars/riscv.tmLanguage.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "fileTypes": ["S", "s", "riscv", "asm"], - "keyEquivalent": "^~M", - "name": "riscv", - "patterns": [ - { - "comment": "ok actually this are instructions, but one also could call them funtions…", - "match": "\\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r|w|s|c]|csr[w|s|c]i)\\b", - "name": "support.function.pseudo.riscv" - }, - { - "match": "\\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\\b", - "name": "support.function.riscv" - }, - { - "comment": "priviledged instructions", - "match": "\\b(ecall|ebreak|sfence\\.vma|mret|sret|uret|wfi)\\b", - "name": "support.function.riscv.privileged" - }, - { - "comment": "M extension (multiplication and division)", - "match": "\\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\\b", - "name": "support.function.riscv.m" - }, - { - "comment": "C extension (compressed instructions)", - "match": "\\b(c\\.addi4spn|c\\.fld|c\\.lq|c\\.lw|c\\.flw|c\\.ld|c\\.fsd|c\\.sq|c\\.sw|c\\.fsw|c\\.sd|c\\.nop|c\\.addi|c\\.jal|c\\.addiw|c\\.li|c\\.addi16sp|c\\.lui|c\\.srli|c\\.srli64|c\\.srai|c\\.srai64|c\\.andi|c\\.sub|c\\.xor|c\\.or|c\\.and|c\\.subw|c\\.addw|c\\.j|c\\.beqz|c\\.bnez)\\b", - "name": "support.function.riscv.c" - }, - { - "comment": "A extension (atomic instructions)", - "match": "\\b(lr\\.[w|d]|sc\\.[w|d]|amoswap\\.[w|d]|amoadd\\.[w|d]|amoxor\\.[w|d]|amoand\\.[w|d]|amoor\\.[w|d]|amomin\\.[w|d]|amomax\\.[w|d]|amominu\\.[w|d]|amomaxu\\.[w|d])\\b", - "name": "support.function.riscv.a" - }, - { - "comment": "F extension (single precision floating point)", - "match": "\\b(flw|fsw|fmadd\\.s|fmsub\\.s|fnmsub\\.s|fnmadd\\.s|fadd\\.s|fsub\\.s|fmul\\.s|fdiv\\.s|fsqrt\\.s|fsgnj\\.s|fsgnjn\\.s|fsgnjx\\.s|fmin\\.s|fmax\\.s|fcvt\\.w\\.s|fcvt\\.wu\\.s|fmv\\.x\\.w|feq\\.s|flt\\.s|fle\\.s|fclass\\.s|fcvt\\.s\\.w|fcvt\\.s\\.wu|fmv\\.w\\.x|fcvt\\.l\\.s|fcvt\\.lu\\.s|fcvt\\.s\\.l|fcvt\\.s\\.lu)\\b", - "name": "support.function.riscv.f" - }, - { - "comment": "D extension (double precision floating point)", - "match": "\\b(fld|fsd|fmadd\\.d|fmsub\\.d|fnmsub\\.d|fnmadd\\.d|fadd\\.d|fsub\\.d|fmul\\.d|fdiv\\.d|fsqrt\\.d|fsgnj\\.d|fsgnjn\\.d|fsgnjx\\.d|fmin\\.d|fmax\\.d|fcvt\\.s\\.d|fcvt\\.d\\.s|feq\\.d|flt\\.d|fle\\.d|fclass\\.d|fcvt\\.w\\.d|fcvt\\.wu\\.d|fcvt\\.d\\.w|fcvt\\.d\\.wu|fcvt\\.l\\.d|fcvt\\.lu\\.d|fmv\\.x\\.d|fcvt\\.d\\.l|fcvt\\.d\\.lu|fmv\\.d\\.x)\\b", - "name": "support.function.riscv.d" - }, - { - "match": "\\.(skip|ascii|asciiz|byte|[2|4|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\\s*(noat|at)|[s|u]leb128|string|incbin|zero|rodata|comm|common)\\b", - "name": "storage.type.riscv" - }, - { - "match": "\\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\\b", - "name": "storage.modifier.riscv" - }, - { - "captures": { - "1": { - "name": "entity.name.function.label.riscv" - } - }, - "match": "\\b([A-Za-z0-9_]+):", - "name": "meta.function.label.riscv" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.riscv" - } - }, - "match": "\\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\\b", - "name": "variable.other.register.usable.by-number.riscv" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.riscv" - } - }, - "match": "\\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\\b", - "name": "variable.other.register.usable.by-name.riscv" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.riscv" - } - }, - "match": "\\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\\b", - "name": "variable.other.csr.names.riscv" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.riscv" - } - }, - "match": "\\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\\b", - "name": "variable.other.register.usable.floating-point.riscv" - }, - { - "match": "\\b\\d+\\.\\d+\\b", - "name": "constant.numeric.float.riscv" - }, - { - "match": "\\b(\\d+|0(x|X)[a-fA-F0-9]+)\\b", - "name": "constant.numeric.integer.riscv" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.riscv" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.riscv" - } - }, - "name": "string.quoted.double.riscv", - "patterns": [ - { - "match": "\\\\[rnt\\\\\"]", - "name": "constant.character.escape.riscv" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.riscv" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.riscv" - } - }, - "name": "string.quoted.single.riscv", - "patterns": [ - { - "match": "\\\\[rnt\\\\\"]", - "name": "constant.character.escape.riscv" - } - ] - }, - { - "begin": "\\/\\*", - "end": "\\*\\/", - "name": "comment.block" - }, - { - "begin": "\\/\\/", - "end": "\\n", - "name": "comment.line.double-slash" - }, - { - "begin": "(?x)\n ^\\s*\\#\\s*(define)\\s+ # define\n ((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n (?: # and optionally:\n (\\() # an open parenthesis\n (\n \\s* \\g<id> \\s* # first argument\n ((,) \\s* \\g<id> \\s*)* # additional arguments\n (?:\\.\\.\\.)? # varargs ellipsis?\n )\n (\\)) # a close parenthesis\n )?\n ", - "beginCaptures": { - "1": { - "name": "keyword.control.import.define.c" - }, - "2": { - "name": "entity.name.function.preprocessor.c" - }, - "4": { - "name": "punctuation.definition.parameters.c" - }, - "5": { - "name": "variable.parameter.preprocessor.c" - }, - "7": { - "name": "punctuation.separator.parameters.c" - }, - "8": { - "name": "punctuation.definition.parameters.c" - } - }, - "end": "(?=(?://|/\\*))|$", - "name": "meta.preprocessor.macro.c", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "^\\s*#\\s*(error|warning)\\b", - "captures": { - "1": { - "name": "keyword.control.import.error.c" - } - }, - "end": "$", - "name": "meta.preprocessor.diagnostic.c", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - } - ] - }, - { - "begin": "^\\s*#\\s*(include|import)\\b\\s+", - "captures": { - "1": { - "name": "keyword.control.import.include.c" - } - }, - "end": "(?=(?://|/\\*))|$", - "name": "meta.preprocessor.c.include", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.include.c" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.other.lt-gt.include.c" - } - ] - }, - { - "begin": "^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\\b", - "captures": { - "1": { - "name": "keyword.control.import.c" - } - }, - "end": "(?=(?://|/\\*))|$", - "name": "meta.preprocessor.c", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.c" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.riscv" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#|(\\/\\/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.riscv" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.riscv" - } - ] - } - ], - "scopeName": "source.riscv", - "uuid": "003223C7-B8D1-4B7F-BF91-5E0062B19B53" -} diff --git a/lib/grammars/rst.tmLanguage.json b/lib/grammars/rst.tmLanguage.json deleted file mode 100644 index 8b2e9cb..0000000 --- a/lib/grammars/rst.tmLanguage.json +++ /dev/null @@ -1,740 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/trond-snekvik/vscode-rst/blob/master/syntaxes/rst.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/trond-snekvik/vscode-rst/commit/4f6f1a8f94e0d16e30dddc9c4e359d062b715408", - "scopeName": "source.rst", - "patterns": [ - { - "include": "#body" - } - ], - "repository": { - "body": { - "patterns": [ - { - "include": "#title" - }, - { - "include": "#inline-markup" - }, - { - "include": "#anchor" - }, - { - "include": "#line-block" - }, - { - "include": "#replace-include" - }, - { - "include": "#footnote" - }, - { - "include": "#substitution" - }, - { - "include": "#blocks" - }, - { - "include": "#table" - }, - { - "include": "#simple-table" - }, - { - "include": "#options-list" - } - ] - }, - "title": { - "match": "^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$", - "name": "markup.heading" - }, - "inline-markup": { - "patterns": [ - { - "include": "#escaped" - }, - { - "include": "#ignore" - }, - { - "include": "#ref" - }, - { - "include": "#literal" - }, - { - "include": "#monospaced" - }, - { - "include": "#citation" - }, - { - "include": "#bold" - }, - { - "include": "#italic" - }, - { - "include": "#list" - }, - { - "include": "#macro" - }, - { - "include": "#reference" - }, - { - "include": "#footnote-ref" - } - ] - }, - "ignore": { - "patterns": [ - { - "match": "'[`*]+'" - }, - { - "match": "<[`*]+>" - }, - { - "match": "{[`*]+}" - }, - { - "match": "\\([`*]+\\)" - }, - { - "match": "\\[[`*]+\\]" - }, - { - "match": "\"[`*]+\"" - } - ] - }, - "table": { - "begin": "^\\s*\\+[=+-]+\\+\\s*$", - "end": "^(?![+|])", - "beginCaptures": { - "0": { - "name": "keyword.control.table" - } - }, - "patterns": [ - { - "match": "[=+|-]", - "name": "keyword.control.table" - } - ] - }, - "simple-table": { - "match": "^[=\\s]+$", - "name": "keyword.control.table" - }, - "ref": { - "begin": "(:ref:)`", - "end": "`|^\\s*$", - "name": "entity.name.tag", - "beginCaptures": { - "1": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "match": "<.*?>", - "name": "markup.underline.link" - } - ] - }, - "reference": { - "match": "[\\w-]*[a-zA-Z\\d-]__?\\b", - "name": "entity.name.tag" - }, - "macro": { - "match": "\\|[^\\|]+\\|", - "name": "entity.name.tag" - }, - "literal": { - "match": "(:\\S+:)(`.*?`\\\\?)", - "captures": { - "1": { - "name": "keyword.control" - }, - "2": { - "name": "entity.name.tag" - } - } - }, - "monospaced": { - "begin": "(?<=[\\s\"'(\\[{<]|^)``[^\\s`]", - "end": "``|^\\s*$", - "name": "string.interpolated" - }, - "citation": { - "begin": "(?<=[\\s\"'(\\[{<]|^)`[^\\s`]", - "end": "`_{,2}|^\\s*$", - "name": "entity.name.tag", - "applyEndPatternLast": 0 - }, - "bold": { - "begin": "(?<=[\\s\"'(\\[{<]|^)\\*{2}[^\\s*]", - "end": "\\*{2}|^\\s*$", - "name": "markup.bold" - }, - "italic": { - "begin": "(?<=[\\s\"'(\\[{<]|^)\\*[^\\s*]", - "end": "\\*|^\\s*$", - "name": "markup.italic" - }, - "escaped": { - "match": "\\\\.", - "name": "constant.character.escape" - }, - "list": { - "match": "^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+", - "name": "keyword.control" - }, - "line-block": { - "match": "^\\|\\s+", - "name": "keyword.control" - }, - "raw-html": { - "begin": "^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "3": { - "name": "variable.parameter.html" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "text.html.derivative" - } - ] - }, - "anchor": { - "match": "^\\.{2}\\s+(_[^:]+:)\\s*", - "name": "entity.name.tag.anchor" - }, - "replace-include": { - "match": "^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)", - "captures": { - "1": { - "name": "keyword.control" - }, - "2": { - "name": "entity.name.tag" - }, - "3": { - "name": "keyword.control" - } - } - }, - "footnote": { - "match": "^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+", - "name": "entity.name.tag" - }, - "footnote-ref": { - "match": "\\[(?:[\\w\\.-]+|[#*])\\]_", - "name": "entity.name.tag" - }, - "substitution": { - "match": "^\\.{2}\\s*\\|([^|]+)\\|", - "name": "entity.name.tag" - }, - "options-list": { - "match": "^((?:-\\w|--[\\w-]+|/\\w+)(?:,? ?[\\w-]+)*)(?: |\\t|$)", - "name": "variable.parameter" - }, - "blocks": { - "patterns": [ - { - "include": "#domains" - }, - { - "include": "#doctest" - }, - { - "include": "#code-block-cpp" - }, - { - "include": "#code-block-py" - }, - { - "include": "#code-block-console" - }, - { - "include": "#code-block-javascript" - }, - { - "include": "#code-block-yaml" - }, - { - "include": "#code-block-cmake" - }, - { - "include": "#code-block-kconfig" - }, - { - "include": "#code-block-ruby" - }, - { - "include": "#code-block-dts" - }, - { - "include": "#code-block" - }, - { - "include": "#doctest-block" - }, - { - "include": "#raw-html" - }, - { - "include": "#block" - }, - { - "include": "#literal-block" - }, - { - "include": "#block-comment" - } - ] - }, - "block-comment": { - "begin": "^(\\s*)\\.{2}(\\s+|$)", - "end": "^(?=\\S)|^\\s*$", - "name": "comment.block", - "patterns": [ - { - "begin": "^\\s{3,}(?=\\S)", - "while": "^\\s{3}.*|^\\s*$", - "name": "comment.block" - } - ] - }, - "literal-block": { - "begin": "^(\\s*)(.*)(::)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "patterns": [ - { - "include": "#inline-markup" - } - ] - }, - "3": { - "name": "keyword.control" - } - } - }, - "block": { - "begin": "^(\\s*)(\\.{2}\\s+\\S+::)(.*)", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "3": { - "name": "variable" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "#body" - } - ] - }, - "block-param": { - "patterns": [ - { - "match": "(:param\\s+(.+?):)(?:\\s|$)", - "captures": { - "1": { - "name": "keyword.control" - }, - "2": { - "name": "variable.parameter" - } - } - }, - { - "match": "(:.+?:)(?:$|\\s+(.*))", - "captures": { - "1": { - "name": "keyword.control" - }, - "2": { - "patterns": [ - { - "match": "\\b(0x[a-fA-F\\d]+|\\d+)\\b", - "name": "constant.numeric" - }, - { - "include": "#inline-markup" - } - ] - } - } - } - ] - }, - "domains": { - "patterns": [ - { - "include": "#domain-cpp" - }, - { - "include": "#domain-py" - }, - { - "include": "#domain-auto" - }, - { - "include": "#domain-js" - } - ] - }, - "domain-cpp": { - "begin": "^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "3": { - "name": "entity.name.tag" - }, - "4": { - "patterns": [ - { - "include": "source.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "#body" - } - ] - }, - "domain-py": { - "begin": "^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "3": { - "patterns": [ - { - "include": "source.python" - } - ] - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "#body" - } - ] - }, - "domain-auto": { - "begin": "^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control.py" - }, - "3": { - "patterns": [ - { - "include": "source.python" - } - ] - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "#body" - } - ] - }, - "domain-js": { - "begin": "^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)", - "end": "^(?!\\1[ \\t]|$)", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "3": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "#body" - } - ] - }, - "doctest": { - "begin": "^(>>>)\\s*(.*)", - "end": "^\\s*$", - "beginCaptures": { - "1": { - "name": "keyword.control" - }, - "2": { - "patterns": [ - { - "include": "source.python" - } - ] - } - } - }, - "code-block-cpp": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.cpp" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.cpp" - } - ] - }, - "code-block-console": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.console" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.shell" - } - ] - }, - "code-block-py": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.py" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.python" - } - ] - }, - "code-block-javascript": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.js" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.js" - } - ] - }, - "code-block-yaml": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.yaml" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.yaml" - } - ] - }, - "code-block-cmake": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.cmake" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.cmake" - } - ] - }, - "code-block-kconfig": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.kconfig" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.kconfig" - } - ] - }, - "code-block-ruby": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.ruby" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.ruby" - } - ] - }, - "code-block-dts": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - }, - "4": { - "name": "variable.parameter.codeblock.dts" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.dts" - } - ] - }, - "code-block": { - "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#block-param" - } - ] - }, - "doctest-block": { - "begin": "^(\\s*)(\\.{2}\\s+doctest::)\\s*$", - "while": "^\\1(?=\\s)|^\\s*$", - "beginCaptures": { - "2": { - "name": "keyword.control" - } - }, - "patterns": [ - { - "include": "#block-param" - }, - { - "include": "source.python" - } - ] - } - }, - "name": "rst" -} diff --git a/lib/grammars/ruby.tmLanguage.json b/lib/grammars/ruby.tmLanguage.json deleted file mode 100644 index 0b04405..0000000 --- a/lib/grammars/ruby.tmLanguage.json +++ /dev/null @@ -1,2775 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/ruby.tmbundle/blob/master/Syntaxes/Ruby.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/ruby.tmbundle/commit/efcb8941c701343f1b2e9fb105c678152fea6892", - "name": "ruby", - "scopeName": "source.ruby", - "comment": "\n\tTODO: unresolved issues\n\n\ttext:\n\t\"p <<end\n\tprint me!\n\tend\"\n\tsymptoms:\n\tnot recognized as a heredoc\n\tsolution:\n\tthere is no way to distinguish perfectly between the << operator and the start\n\tof a heredoc. Currently, we require assignment to recognize a heredoc. More\n\trefinement is possible.\n\t• Heredocs with indented terminators (<<-) are always distinguishable, however.\n\t• Nested heredocs are not really supportable at present\n\n\ttext:\n\tprint <<-'THERE' \n\tThis is single quoted. \n\tThe above used #{Time.now} \n\tTHERE \n\tsymtoms:\n\tFrom Programming Ruby p306; should be a non-interpolated heredoc.\n\t\n text:\n val?(a):p(b)\n val?'a':'b'\n symptoms:\n ':p' is recognized as a symbol.. its 2 things ':' and 'p'.\n :'b' has same problem.\n solution:\n ternary operator rule, precedence stuff, symbol rule.\n but also consider 'a.b?(:c)' ??\n", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.control.class.ruby" - }, - "2": { - "name": "entity.name.type.class.ruby" - }, - "3": { - "name": "keyword.operator.other.ruby" - }, - "4": { - "name": "entity.other.inherited-class.ruby" - }, - "5": { - "name": "keyword.operator.other.ruby" - }, - "6": { - "name": "variable.other.object.ruby" - } - }, - "match": "^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))", - "name": "meta.class.ruby" - }, - { - "captures": { - "1": { - "name": "keyword.control.module.ruby" - }, - "2": { - "name": "entity.name.type.module.ruby" - }, - "3": { - "name": "entity.other.inherited-class.module.first.ruby" - }, - "4": { - "name": "punctuation.separator.inheritance.ruby" - }, - "5": { - "name": "entity.other.inherited-class.module.second.ruby" - }, - "6": { - "name": "punctuation.separator.inheritance.ruby" - }, - "7": { - "name": "entity.other.inherited-class.module.third.ruby" - }, - "8": { - "name": "punctuation.separator.inheritance.ruby" - } - }, - "match": "^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)", - "name": "meta.module.ruby" - }, - { - "comment": "else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.", - "match": "(?<!\\.)\\belse(\\s)+if\\b", - "name": "invalid.deprecated.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.ruby" - } - }, - "comment": "symbols as hash key (1.9 syntax)", - "match": "(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)", - "name": "constant.other.symbol.hashkey.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.ruby" - } - }, - "comment": "symbols as hash key (1.8 syntax)", - "match": "(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)", - "name": "constant.other.symbol.hashkey.ruby" - }, - { - "comment": "everything being a reserved word, not a value and needing a 'end' is a..", - "match": "(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])", - "name": "keyword.control.ruby" - }, - { - "comment": "contextual smart pair support for block parameters", - "match": "(?<!\\.)\\bdo\\b", - "name": "keyword.control.start-block.ruby" - }, - { - "comment": "contextual smart pair support", - "match": "(?<=\\{)(\\s+)", - "name": "meta.syntax.ruby.start-block" - }, - { - "match": "(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])", - "name": "keyword.control.pseudo-method.ruby" - }, - { - "match": "\\b(nil|true|false)\\b(?![?!])", - "name": "constant.language.ruby" - }, - { - "match": "\\b(__(dir|FILE|LINE)__)\\b(?![?!])", - "name": "variable.language.ruby" - }, - { - "begin": "^__END__\\n", - "captures": { - "0": { - "name": "string.unquoted.program-block.ruby" - } - }, - "comment": "__END__ marker", - "contentName": "text.plain", - "end": "(?=not)impossible", - "patterns": [ - { - "begin": "(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))", - "end": "(?=not)impossible", - "name": "text.html.embedded.ruby", - "patterns": [ - { - "include": "text.html.basic" - } - ] - } - ] - }, - { - "match": "\\b(self)\\b(?![?!])", - "name": "variable.language.self.ruby" - }, - { - "comment": " everything being a method but having a special function is a..", - "match": "\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])", - "name": "keyword.other.special-method.ruby" - }, - { - "begin": "\\b(?<!\\.|::)(require|require_relative)\\b", - "captures": { - "1": { - "name": "keyword.other.special-method.ruby" - } - }, - "end": "$|(?=#|\\})", - "name": "meta.require.ruby", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.instance.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(@@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.class.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(\\$)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.global.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])", - "name": "variable.other.readwrite.global.pre-defined.ruby" - }, - { - "begin": "\\b(ENV)\\[", - "beginCaptures": { - "1": { - "name": "variable.other.constant.ruby" - } - }, - "end": "\\]", - "name": "meta.environment-variable.ruby", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))", - "name": "support.class.ruby" - }, - { - "match": "\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)(\\b|(?<=[?!]))(?![?!])", - "name": "support.function.kernel.ruby" - }, - { - "match": "\\b[A-Z]\\w*\\b", - "name": "variable.other.constant.ruby" - }, - { - "begin": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t \\s*(\\() # the openning parenthesis for arguments\n\t\t\t ", - "beginCaptures": { - "1": { - "name": "keyword.control.def.ruby" - }, - "2": { - "name": "entity.name.function.ruby" - }, - "3": { - "name": "punctuation.definition.parameters.ruby" - } - }, - "comment": "the method pattern comes from the symbol pattern, see there for a explaination", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.ruby" - } - }, - "name": "meta.function.method.with-arguments.ruby", - "patterns": [ - { - "begin": "(?=[&*_a-zA-Z])", - "end": "(?=[,)])", - "patterns": [ - { - "captures": { - "1": { - "name": "storage.type.variable.ruby" - }, - "2": { - "name": "constant.other.symbol.hashkey.parameter.function.ruby" - }, - "3": { - "name": "punctuation.definition.constant.ruby" - }, - "4": { - "name": "variable.parameter.function.ruby" - } - }, - "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))" - }, - { - "include": "#parens" - }, - { - "include": "#braces" - }, - { - "include": "$self" - } - ] - } - ], - "repository": { - "braces": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.ruby" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.ruby" - } - }, - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#braces" - }, - { - "include": "$self" - } - ] - }, - "parens": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.ruby" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.ruby" - } - }, - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#braces" - }, - { - "include": "$self" - } - ] - } - } - }, - { - "begin": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t [ \\t] # the space separating the arguments\n\t\t\t (?=[ \\t]*[^\\s#;]) # make sure arguments and not a comment follow\n\t\t\t ", - "beginCaptures": { - "1": { - "name": "keyword.control.def.ruby" - }, - "2": { - "name": "entity.name.function.ruby" - } - }, - "comment": "same as the previous rule, but without parentheses around the arguments", - "end": "$", - "name": "meta.function.method.with-arguments.ruby", - "patterns": [ - { - "begin": "(?![\\s,])", - "end": "(?=,|$)", - "patterns": [ - { - "captures": { - "1": { - "name": "storage.type.variable.ruby" - }, - "2": { - "name": "constant.other.symbol.hashkey.parameter.function.ruby" - }, - "3": { - "name": "punctuation.definition.constant.ruby" - }, - "4": { - "name": "variable.parameter.function.ruby" - } - }, - "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))", - "name": "variable.parameter.function.ruby" - }, - { - "include": "$self" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.def.ruby" - }, - "3": { - "name": "entity.name.function.ruby" - } - }, - "comment": " the optional name is just to catch the def also without a method-name", - "match": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\b # the def keyword\n\t\t\t ( \\s+ # an optional group of whitespace followed by…\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )? # …or an operator method\n\t\t\t ", - "name": "meta.function.method.without-arguments.ruby" - }, - { - "match": "\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b", - "name": "constant.numeric.float.ruby" - }, - { - "match": "\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b", - "name": "constant.numeric.integer.ruby" - }, - { - "match": "\\b0[xX]\\h(?>_?\\h)*r?i?\\b", - "name": "constant.numeric.hex.ruby" - }, - { - "match": "\\b0[bB][01](?>_?[01])*r?i?\\b", - "name": "constant.numeric.binary.ruby" - }, - { - "match": "\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b", - "name": "constant.numeric.octal.ruby" - }, - { - "begin": ":'", - "captures": { - "0": { - "name": "punctuation.definition.constant.ruby" - } - }, - "end": "'", - "name": "constant.other.symbol.single-quoted.ruby", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.ruby" - } - ] - }, - { - "begin": ":\"", - "captures": { - "0": { - "name": "punctuation.definition.constant.ruby" - } - }, - "end": "\"", - "name": "constant.other.symbol.double-quoted.ruby", - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "comment": "Needs higher precedence than regular expressions.", - "match": "(?<!\\()/=", - "name": "keyword.operator.assignment.augmented.ruby" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "comment": "single quoted string (does not allow interpolation)", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.quoted.single.ruby", - "patterns": [ - { - "match": "\\\\'|\\\\\\\\", - "name": "constant.character.escape.ruby" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "comment": "double quoted string (allows for interpolation)", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.quoted.double.ruby", - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "comment": "execute string (allows for interpolation)", - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.interpolated.ruby", - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "include": "#percent_literals" - }, - { - "begin": "(?x)\n\t\t\t (?:\n\t\t\t ^ # beginning of line\n\t\t\t | (?<= # or look-behind on:\n\t\t\t [=>~(?:\\[,|&;]\n\t\t\t | [\\s;]if\\s\t\t\t# keywords\n\t\t\t | [\\s;]elsif\\s\n\t\t\t | [\\s;]while\\s\n\t\t\t | [\\s;]unless\\s\n\t\t\t | [\\s;]when\\s\n\t\t\t | [\\s;]assert_match\\s\n\t\t\t | [\\s;]or\\s\t\t\t# boolean opperators\n\t\t\t | [\\s;]and\\s\n\t\t\t | [\\s;]not\\s\n\t\t\t | [\\s.]index\\s\t\t\t# methods\n\t\t\t | [\\s.]scan\\s\n\t\t\t | [\\s.]sub\\s\n\t\t\t | [\\s.]sub!\\s\n\t\t\t | [\\s.]gsub\\s\n\t\t\t | [\\s.]gsub!\\s\n\t\t\t | [\\s.]match\\s\n\t\t\t )\n\t\t\t | (?<= # or a look-behind with line anchor:\n\t\t\t ^when\\s # duplication necessary due to limits of regex\n\t\t\t | ^if\\s\n\t\t\t | ^elsif\\s\n\t\t\t | ^while\\s\n\t\t\t | ^unless\\s\n\t\t\t )\n\t\t\t )\n\t\t\t \\s*((/))(?![*+{}?])\n\t\t\t", - "captures": { - "1": { - "name": "string.regexp.classic.ruby" - }, - "2": { - "name": "punctuation.definition.string.ruby" - } - }, - "comment": "regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t", - "contentName": "string.regexp.classic.ruby", - "end": "((/[eimnosux]*))", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.ruby" - } - }, - "comment": "symbols", - "match": "(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "^=begin", - "captures": { - "0": { - "name": "punctuation.definition.comment.ruby" - } - }, - "comment": "multiline comments", - "end": "^=end", - "name": "comment.block.documentation.ruby" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ruby" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ruby" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.ruby" - } - ] - }, - { - "comment": "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t", - "match": "(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])", - "name": "constant.numeric.ruby" - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1))", - "comment": "Heredoc with embedded html", - "end": "(?!\\G)", - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "text.html", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "text.html.basic" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1))", - "comment": "Heredoc with embedded xml", - "end": "(?!\\G)", - "name": "meta.embedded.block.xml", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "text.xml", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "text.xml" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1))", - "comment": "Heredoc with embedded sql", - "end": "(?!\\G)", - "name": "meta.embedded.block.sql", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.sql", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.sql" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1))", - "comment": "Heredoc with embedded css", - "end": "(?!\\G)", - "name": "meta.embedded.block.css", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.css", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.css" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1))", - "comment": "Heredoc with embedded c++", - "end": "(?!\\G)", - "name": "meta.embedded.block.c++", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.c++", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.c++" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1))", - "comment": "Heredoc with embedded c", - "end": "(?!\\G)", - "name": "meta.embedded.block.c", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.c", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.c" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))", - "comment": "Heredoc with embedded javascript", - "end": "(?!\\G)", - "name": "meta.embedded.block.js", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.js", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.js" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))", - "comment": "Heredoc with embedded jQuery javascript", - "end": "(?!\\G)", - "name": "meta.embedded.block.js.jquery", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.js.jquery", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.js.jquery" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))", - "comment": "Heredoc with embedded shell", - "end": "(?!\\G)", - "name": "meta.embedded.block.shell", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.shell", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.shell" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1))", - "comment": "Heredoc with embedded lua", - "end": "(?!\\G)", - "name": "meta.embedded.block.lua", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.lua", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.lua" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1))", - "comment": "Heredoc with embedded ruby", - "end": "(?!\\G)", - "name": "meta.embedded.block.ruby", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.ruby", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.ruby" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?>=\\s*<<(\\w+))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "^\\1$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<[-~](\\w+))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "comment": "heredoc with indented terminator", - "end": "\\s*\\1$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?<=\\{|do|\\{\\s|do\\s)(\\|)", - "captures": { - "1": { - "name": "punctuation.separator.arguments.ruby" - } - }, - "end": "(?<!\\|)(\\|)(?!\\|)", - "patterns": [ - { - "include": "$self" - }, - { - "match": "[_a-zA-Z][_a-zA-Z0-9]*", - "name": "variable.other.block.ruby" - }, - { - "match": ",", - "name": "punctuation.separator.variable.ruby" - } - ] - }, - { - "match": "=>", - "name": "punctuation.separator.key-value" - }, - { - "match": "->", - "name": "support.function.kernel.lambda.ruby" - }, - { - "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<", - "name": "keyword.operator.assignment.augmented.ruby" - }, - { - "match": "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?", - "name": "keyword.operator.comparison.ruby" - }, - { - "match": "(?<!\\.)\\b(and|not|or)\\b(?![?!])", - "name": "keyword.operator.logical.ruby" - }, - { - "comment": "Make sure this goes after assignment and comparison", - "match": "(?<=^|[ \\t])!|&&|\\|\\||\\^", - "name": "keyword.operator.logical.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.method.ruby" - } - }, - "comment": "Safe navigation operator - Added in 2.3", - "match": "(&\\.)\\s*(?![A-Z])" - }, - { - "match": "(%|&|\\*\\*|\\*|\\+|-|/)", - "name": "keyword.operator.arithmetic.ruby" - }, - { - "match": "=", - "name": "keyword.operator.assignment.ruby" - }, - { - "match": "\\||~|>>", - "name": "keyword.operator.other.ruby" - }, - { - "match": ";", - "name": "punctuation.separator.statement.ruby" - }, - { - "match": ",", - "name": "punctuation.separator.object.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.namespace.ruby" - } - }, - "comment": "Mark as namespace separator if double colons followed by capital letter", - "match": "(::)\\s*(?=[A-Z])" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.method.ruby" - } - }, - "comment": "Mark as method separator if double colons not followed by capital letter", - "match": "(\\.|::)\\s*(?![A-Z])" - }, - { - "comment": "Must come after method and constant separators to prefer double colons", - "match": ":", - "name": "punctuation.separator.other.ruby" - }, - { - "match": "\\{", - "name": "punctuation.section.scope.begin.ruby" - }, - { - "match": "\\}", - "name": "punctuation.section.scope.end.ruby" - }, - { - "match": "\\[", - "name": "punctuation.section.array.begin.ruby" - }, - { - "match": "\\]", - "name": "punctuation.section.array.end.ruby" - }, - { - "match": "\\(|\\)", - "name": "punctuation.section.function.ruby" - } - ], - "repository": { - "escaped_char": { - "match": "\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)", - "name": "constant.character.escape.ruby" - }, - "heredoc": { - "begin": "^<<[-~]?\\w+", - "end": "$", - "patterns": [ - { - "include": "$self" - } - ] - }, - "interpolated_ruby": { - "patterns": [ - { - "begin": "#\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.ruby" - } - }, - "contentName": "source.ruby", - "end": "(\\})", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.ruby" - }, - "1": { - "name": "source.ruby" - } - }, - "name": "meta.embedded.line.ruby", - "patterns": [ - { - "include": "#nest_curly_and_self" - }, - { - "include": "$self" - } - ], - "repository": { - "nest_curly_and_self": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly_and_self" - } - ] - }, - { - "include": "$self" - } - ] - } - } - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.instance.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#@@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.class.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#\\$)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.global.ruby" - } - ] - }, - "percent_literals": { - "patterns": [ - { - "begin": "%i(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.symbol.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - }, - { - "include": "#symbol" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\<|\\\\>", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "<", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\{|\\\\\\}", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "\\{", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\[|\\\\\\]", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "\\[", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\(|\\\\\\)", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "symbol": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\\\|\\\\[ ]", - "name": "constant.other.symbol.ruby" - }, - { - "match": "\\S\\w*", - "name": "constant.other.symbol.ruby" - } - ] - } - } - }, - { - "begin": "%I(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.symbol.interpolated.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - }, - { - "include": "#symbol" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "begin": "<", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "\\[", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "symbol": { - "patterns": [ - { - "begin": "(?=\\\\|#\\{)", - "end": "(?!\\G)", - "name": "constant.other.symbol.ruby", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ] - }, - { - "match": "\\S\\w*", - "name": "constant.other.symbol.ruby" - } - ] - } - } - }, - { - "begin": "%q(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.quoted.other.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - } - ], - "repository": { - "angles": { - "patterns": [ - { - "match": "\\\\<|\\\\>|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "match": "\\\\\\{|\\\\\\}|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "match": "\\\\\\[|\\\\\\]|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "match": "\\\\\\(|\\\\\\)|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%Q?(?:([(\\[{<])|([^\\w\\s=]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.quoted.other.interpolated.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - }, - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%r(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "([)\\]}>]\\2|\\1\\2)[eimnosux]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.regexp.percent.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - }, - { - "include": "#regex_sub" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%s(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.constant.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.constant.end.ruby" - } - }, - "name": "constant.other.symbol.percent.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - } - ], - "repository": { - "angles": { - "patterns": [ - { - "match": "\\\\<|\\\\>|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "match": "\\\\\\{|\\\\\\}|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "match": "\\\\\\[|\\\\\\]|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "match": "\\\\\\(|\\\\\\)|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%w(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.string.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - }, - { - "include": "#string" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\<|\\\\>", - "name": "string.other.ruby" - }, - { - "begin": "<", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\{|\\\\\\}", - "name": "string.other.ruby" - }, - { - "begin": "\\{", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\[|\\\\\\]", - "name": "string.other.ruby" - }, - { - "begin": "\\[", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\(|\\\\\\)", - "name": "string.other.ruby" - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - } - ] - }, - "string": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\\\|\\\\[ ]", - "name": "string.other.ruby" - }, - { - "match": "\\S\\w*", - "name": "string.other.ruby" - } - ] - } - } - }, - { - "begin": "%W(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.string.interpolated.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - }, - { - "include": "#string" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "begin": "<", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "\\[", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - } - ] - }, - "string": { - "patterns": [ - { - "begin": "(?=\\\\|#\\{)", - "end": "(?!\\G)", - "name": "string.other.ruby", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ] - }, - { - "match": "\\S\\w*", - "name": "string.other.ruby" - } - ] - } - } - }, - { - "begin": "%x(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.interpolated.percent.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - }, - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - } - ] - }, - "regex_sub": { - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.quantifier.begin.ruby" - }, - "3": { - "name": "punctuation.definition.quantifier.end.ruby" - } - }, - "match": "(\\{)\\d+(,\\d+)?(\\})", - "name": "keyword.operator.quantifier.ruby" - }, - { - "begin": "\\[\\^?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.character-class.begin.ruby" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.character-class.end.ruby" - } - }, - "name": "constant.other.character-class.set.ruby", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\(\\?#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.ruby" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.ruby" - } - }, - "name": "comment.line.number-sign.ruby", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.definition.group.ruby" - } - }, - "end": "\\)", - "name": "meta.group.regexp.ruby", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.ruby" - } - }, - "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", - "end": "$\\n?", - "name": "comment.line.number-sign.ruby" - } - ] - } - } -} diff --git a/lib/grammars/rust.tmLanguage.json b/lib/grammars/rust.tmLanguage.json deleted file mode 100644 index 0731f01..0000000 --- a/lib/grammars/rust.tmLanguage.json +++ /dev/null @@ -1,1170 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/dustypomerleau/rust-syntax/blob/master/syntaxes/rust.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/dustypomerleau/rust-syntax/commit/20462d50ff97338f42c6b64c3f421c634fd60734", - "name": "rust", - "scopeName": "source.rust", - "patterns": [ - { - "comment": "boxed slice literal", - "begin": "(<)(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.brackets.angle.rust" - }, - "2": { - "name": "punctuation.brackets.square.rust" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.brackets.angle.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#gtypes" - }, - { - "include": "#lvariables" - }, - { - "include": "#lifetimes" - }, - { - "include": "#punctuation" - }, - { - "include": "#types" - } - ] - }, - { - "comment": "macro type metavariables", - "name": "meta.macro.metavariable.type.rust", - "match": "(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?", - "captures": { - "1": { - "name": "keyword.operator.macro.dollar.rust" - }, - "3": { - "name": "keyword.other.crate.rust" - }, - "4": { - "name": "entity.name.type.metavariable.rust" - }, - "6": { - "name": "keyword.operator.key-value.rust" - }, - "7": { - "name": "variable.other.metavariable.specifier.rust" - } - }, - "patterns": [ - { - "include": "#keywords" - } - ] - }, - { - "comment": "macro metavariables", - "name": "meta.macro.metavariable.rust", - "match": "(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?", - "captures": { - "1": { - "name": "keyword.operator.macro.dollar.rust" - }, - "2": { - "name": "variable.other.metavariable.name.rust" - }, - "4": { - "name": "keyword.operator.key-value.rust" - }, - "5": { - "name": "variable.other.metavariable.specifier.rust" - } - }, - "patterns": [ - { - "include": "#keywords" - } - ] - }, - { - "comment": "macro rules", - "name": "meta.macro.rules.rust", - "match": "\\b(macro_rules!)\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\s+(\\{)", - "captures": { - "1": { - "name": "entity.name.function.macro.rules.rust" - }, - "3": { - "name": "entity.name.function.macro.rust" - }, - "4": { - "name": "entity.name.type.macro.rust" - }, - "5": { - "name": "punctuation.brackets.curly.rust" - } - } - }, - { - "comment": "attributes", - "name": "meta.attribute.rust", - "begin": "(#)(\\!?)(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.attribute.rust" - }, - "2": { - "name": "keyword.operator.attribute.inner.rust" - }, - "3": { - "name": "punctuation.brackets.attribute.rust" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.brackets.attribute.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lifetimes" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#gtypes" - }, - { - "include": "#types" - } - ] - }, - { - "comment": "modules", - "match": "(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "entity.name.module.rust" - } - } - }, - { - "comment": "external crate imports", - "name": "meta.import.rust", - "begin": "\\b(extern)\\s+(crate)", - "beginCaptures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "keyword.other.crate.rust" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.semi.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#punctuation" - } - ] - }, - { - "comment": "use statements", - "name": "meta.use.rust", - "begin": "\\b(use)\\s", - "beginCaptures": { - "1": { - "name": "keyword.other.rust" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.semi.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#types" - }, - { - "include": "#lvariables" - } - ] - }, - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#types" - }, - { - "include": "#keywords" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#variables" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "comment": "documentation comments", - "name": "comment.line.documentation.rust", - "match": "^\\s*///.*" - }, - { - "comment": "line comments", - "name": "comment.line.double-slash.rust", - "match": "\\s*//.*" - } - ] - }, - "block-comments": { - "patterns": [ - { - "comment": "empty block comments", - "name": "comment.block.rust", - "match": "/\\*\\*/" - }, - { - "comment": "block documentation comments", - "name": "comment.block.documentation.rust", - "begin": "/\\*\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#block-comments" - } - ] - }, - { - "comment": "block comments", - "name": "comment.block.rust", - "begin": "/\\*(?!\\*)", - "end": "\\*/", - "patterns": [ - { - "include": "#block-comments" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "comment": "ALL CAPS constants", - "name": "constant.other.caps.rust", - "match": "\\b[A-Z]{2}[A-Z0-9_]*\\b" - }, - { - "comment": "constant declarations", - "match": "\\b(const)\\s+([A-Z][A-Za-z0-9_]*)\\b", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "constant.other.caps.rust" - } - } - }, - { - "comment": "decimal integers and floats", - "name": "constant.numeric.decimal.rust", - "match": "\\b\\d[\\d_]*(\\.?)[\\d_]*(?:(E)([+-])([\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "punctuation.separator.dot.decimal.rust" - }, - "2": { - "name": "keyword.operator.exponent.rust" - }, - "3": { - "name": "keyword.operator.exponent.sign.rust" - }, - "4": { - "name": "constant.numeric.decimal.exponent.mantissa.rust" - }, - "5": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "hexadecimal integers", - "name": "constant.numeric.hex.rust", - "match": "\\b0x[\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "octal integers", - "name": "constant.numeric.oct.rust", - "match": "\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "binary integers", - "name": "constant.numeric.bin.rust", - "match": "\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "booleans", - "name": "constant.language.bool.rust", - "match": "\\b(true|false)\\b" - } - ] - }, - "escapes": { - "comment": "escapes: ASCII, byte, Unicode, quote, regex", - "name": "constant.character.escape.rust", - "match": "(\\\\)(?:(?:(x[0-7][0-7a-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))", - "captures": { - "1": { - "name": "constant.character.escape.backslash.rust" - }, - "2": { - "name": "constant.character.escape.bit.rust" - }, - "3": { - "name": "constant.character.escape.unicode.rust" - }, - "4": { - "name": "constant.character.escape.unicode.punctuation.rust" - }, - "5": { - "name": "constant.character.escape.unicode.punctuation.rust" - } - } - }, - "functions": { - "patterns": [ - { - "comment": "pub as a function", - "match": "\\b(pub)(\\()", - "captures": { - "1": { - "name": "keyword.other.rust" - }, - "2": { - "name": "punctuation.brackets.round.rust" - } - } - }, - { - "comment": "function definition", - "name": "meta.function.definition.rust", - "begin": "\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\()|(<))", - "beginCaptures": { - "1": { - "name": "keyword.other.fn.rust" - }, - "2": { - "name": "entity.name.function.rust" - }, - "4": { - "name": "punctuation.brackets.round.rust" - }, - "5": { - "name": "punctuation.brackets.angle.rust" - } - }, - "end": "\\{|;", - "endCaptures": { - "0": { - "name": "punctuation.brackets.curly.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - }, - { - "comment": "function/method calls, chaining", - "name": "meta.function.call.rust", - "begin": "((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.rust" - }, - "2": { - "name": "punctuation.brackets.round.rust" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.brackets.round.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - }, - { - "comment": "function/method calls with turbofish", - "name": "meta.function.call.rust", - "begin": "((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.rust" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.brackets.round.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "comment": "control flow keywords", - "name": "keyword.control.rust", - "match": "\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b" - }, - { - "comment": "storage keywords", - "name": "keyword.other.rust storage.type.rust", - "match": "\\b(extern|let|macro|mod)\\b" - }, - { - "comment": "const keyword", - "name": "storage.modifier.rust", - "match": "\\b(const)\\b" - }, - { - "comment": "type keyword", - "name": "keyword.declaration.type.rust storage.type.rust", - "match": "\\b(type)\\b" - }, - { - "comment": "enum keyword", - "name": "keyword.declaration.enum.rust storage.type.rust", - "match": "\\b(enum)\\b" - }, - { - "comment": "trait keyword", - "name": "keyword.declaration.trait.rust storage.type.rust", - "match": "\\b(trait)\\b" - }, - { - "comment": "struct keyword", - "name": "keyword.declaration.struct.rust storage.type.rust", - "match": "\\b(struct)\\b" - }, - { - "comment": "storage modifiers", - "name": "storage.modifier.rust", - "match": "\\b(abstract|static)\\b" - }, - { - "comment": "other keywords", - "name": "keyword.other.rust", - "match": "\\b(as|async|become|box|dyn|move|final|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b" - }, - { - "comment": "fn", - "name": "keyword.other.fn.rust", - "match": "\\bfn\\b" - }, - { - "comment": "crate", - "name": "keyword.other.crate.rust", - "match": "\\bcrate\\b" - }, - { - "comment": "mut", - "name": "storage.modifier.mut.rust", - "match": "\\bmut\\b" - }, - { - "comment": "logical operators", - "name": "keyword.operator.logical.rust", - "match": "(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)" - }, - { - "comment": "logical AND, borrow references", - "name": "keyword.operator.borrow.and.rust", - "match": "&(?![&=])" - }, - { - "comment": "assignment operators", - "name": "keyword.operator.assignment.rust", - "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)" - }, - { - "comment": "single equal", - "name": "keyword.operator.assignment.equal.rust", - "match": "(?<![<>])=(?!=|>)" - }, - { - "comment": "comparison operators", - "name": "keyword.operator.comparison.rust", - "match": "(=(=)?(?!>)|!=|<=|(?<!=)>=)" - }, - { - "comment": "math operators", - "name": "keyword.operator.math.rust", - "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" - }, - { - "comment": "less than, greater than (special case)", - "match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))", - "captures": { - "1": { - "name": "punctuation.brackets.round.rust" - }, - "2": { - "name": "punctuation.brackets.square.rust" - }, - "3": { - "name": "punctuation.brackets.curly.rust" - }, - "4": { - "name": "keyword.operator.comparison.rust" - }, - "5": { - "name": "punctuation.brackets.round.rust" - }, - "6": { - "name": "punctuation.brackets.square.rust" - }, - "7": { - "name": "punctuation.brackets.curly.rust" - } - } - }, - { - "comment": "namespace operator", - "name": "keyword.operator.namespace.rust", - "match": "::" - }, - { - "comment": "dereference asterisk", - "match": "(\\*)(?=\\w+)", - "captures": { - "1": { - "name": "keyword.operator.dereference.rust" - } - } - }, - { - "comment": "subpattern binding", - "name": "keyword.operator.subpattern.rust", - "match": "@" - }, - { - "comment": "dot access", - "name": "keyword.operator.access.dot.rust", - "match": "\\.(?!\\.)" - }, - { - "comment": "ranges, range patterns", - "name": "keyword.operator.range.rust", - "match": "\\.{2}(=|\\.)?" - }, - { - "comment": "colon", - "name": "keyword.operator.key-value.rust", - "match": ":(?!:)" - }, - { - "comment": "dashrocket, skinny arrow", - "name": "keyword.operator.arrow.skinny.rust", - "match": "->" - }, - { - "comment": "hashrocket, fat arrow", - "name": "keyword.operator.arrow.fat.rust", - "match": "=>" - }, - { - "comment": "dollar macros", - "name": "keyword.operator.macro.dollar.rust", - "match": "\\$" - }, - { - "comment": "question mark operator, questionably sized, macro kleene matcher", - "name": "keyword.operator.question.rust", - "match": "\\?" - } - ] - }, - "interpolations": { - "comment": "curly brace interpolations", - "name": "meta.interpolation.rust", - "match": "({)[^\"{}]*(})", - "captures": { - "1": { - "name": "punctuation.definition.interpolation.rust" - }, - "2": { - "name": "punctuation.definition.interpolation.rust" - } - } - }, - "lifetimes": { - "patterns": [ - { - "comment": "named lifetime parameters", - "match": "(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b", - "captures": { - "1": { - "name": "punctuation.definition.lifetime.rust" - }, - "2": { - "name": "entity.name.type.lifetime.rust" - } - } - }, - { - "comment": "borrowing references to named lifetimes", - "match": "(\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b", - "captures": { - "1": { - "name": "keyword.operator.borrow.rust" - }, - "2": { - "name": "punctuation.definition.lifetime.rust" - }, - "3": { - "name": "entity.name.type.lifetime.rust" - } - } - } - ] - }, - "macros": { - "patterns": [ - { - "comment": "macros", - "name": "meta.macro.rust", - "match": "(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))", - "captures": { - "2": { - "name": "entity.name.function.macro.rust" - }, - "3": { - "name": "entity.name.type.macro.rust" - } - } - } - ] - }, - "namespaces": { - "patterns": [ - { - "comment": "namespace (non-type, non-function path segment)", - "match": "(?<![A-Za-z0-9_])([a-z0-9_]+)((?<!super|self)::)", - "captures": { - "1": { - "name": "entity.name.namespace.rust" - }, - "2": { - "name": "keyword.operator.namespace.rust" - } - } - } - ] - }, - "types": { - "patterns": [ - { - "comment": "numeric types", - "match": "(?<![A-Za-z])(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "parameterized types", - "begin": "\\b([A-Z][A-Za-z0-9]*)(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.rust" - }, - "2": { - "name": "punctuation.brackets.angle.rust" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.brackets.angle.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#lifetimes" - }, - { - "include": "#punctuation" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - }, - { - "comment": "primitive types", - "name": "entity.name.type.primitive.rust", - "match": "\\b(bool|char|str)\\b" - }, - { - "comment": "trait declarations", - "match": "\\b(trait)\\s+([A-Z][A-Za-z0-9]*)\\b", - "captures": { - "1": { - "name": "keyword.declaration.trait.rust storage.type.rust" - }, - "2": { - "name": "entity.name.type.trait.rust" - } - } - }, - { - "comment": "struct declarations", - "match": "\\b(struct)\\s+([A-Z][A-Za-z0-9]*)\\b", - "captures": { - "1": { - "name": "keyword.declaration.struct.rust storage.type.rust" - }, - "2": { - "name": "entity.name.type.struct.rust" - } - } - }, - { - "comment": "enum declarations", - "match": "\\b(enum)\\s+([A-Z][A-Za-z0-9_]*)\\b", - "captures": { - "1": { - "name": "keyword.declaration.enum.rust storage.type.rust" - }, - "2": { - "name": "entity.name.type.enum.rust" - } - } - }, - { - "comment": "type declarations", - "match": "\\b(type)\\s+([A-Z][A-Za-z0-9_]*)\\b", - "captures": { - "1": { - "name": "keyword.declaration.type.rust storage.type.rust" - }, - "2": { - "name": "entity.name.type.declaration.rust" - } - } - }, - { - "comment": "types", - "name": "entity.name.type.rust", - "match": "\\b[A-Z][A-Za-z0-9]*\\b(?!!)" - } - ] - }, - "gtypes": { - "patterns": [ - { - "comment": "option types", - "name": "entity.name.type.option.rust", - "match": "\\b(Some|None)\\b" - }, - { - "comment": "result types", - "name": "entity.name.type.result.rust", - "match": "\\b(Ok|Err)\\b" - } - ] - }, - "punctuation": { - "patterns": [ - { - "comment": "comma", - "name": "punctuation.comma.rust", - "match": "," - }, - { - "comment": "curly braces", - "name": "punctuation.brackets.curly.rust", - "match": "[{}]" - }, - { - "comment": "parentheses, round brackets", - "name": "punctuation.brackets.round.rust", - "match": "[()]" - }, - { - "comment": "semicolon", - "name": "punctuation.semi.rust", - "match": ";" - }, - { - "comment": "square brackets", - "name": "punctuation.brackets.square.rust", - "match": "[\\[\\]]" - }, - { - "comment": "angle brackets", - "name": "punctuation.brackets.angle.rust", - "match": "(?<!=)[<>]" - } - ] - }, - "strings": { - "patterns": [ - { - "comment": "double-quoted strings and byte strings", - "name": "string.quoted.double.rust", - "begin": "(b?)(\")", - "beginCaptures": { - "1": { - "name": "string.quoted.byte.raw.rust" - }, - "2": { - "name": "punctuation.definition.string.rust" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.rust" - } - }, - "patterns": [ - { - "include": "#escapes" - }, - { - "include": "#interpolations" - } - ] - }, - { - "comment": "double-quoted raw strings and raw byte strings", - "name": "string.quoted.double.rust", - "begin": "(b?r)(#*)(\")", - "beginCaptures": { - "1": { - "name": "string.quoted.byte.raw.rust" - }, - "2": { - "name": "punctuation.definition.string.raw.rust" - }, - "3": { - "name": "punctuation.definition.string.rust" - } - }, - "end": "(\")(\\2)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.rust" - }, - "2": { - "name": "punctuation.definition.string.raw.rust" - } - } - }, - { - "comment": "characters and bytes", - "name": "string.quoted.single.char.rust", - "begin": "(b)?(')", - "beginCaptures": { - "1": { - "name": "string.quoted.byte.raw.rust" - }, - "2": { - "name": "punctuation.definition.char.rust" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.char.rust" - } - }, - "patterns": [ - { - "include": "#escapes" - } - ] - } - ] - }, - "lvariables": { - "patterns": [ - { - "comment": "self", - "name": "variable.language.self.rust", - "match": "\\b[Ss]elf\\b" - }, - { - "comment": "super", - "name": "variable.language.super.rust", - "match": "\\bsuper\\b" - } - ] - }, - "variables": { - "patterns": [ - { - "comment": "variables", - "name": "variable.other.rust", - "match": "\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b" - } - ] - } - } -} diff --git a/lib/grammars/sas.tmLanguage.json b/lib/grammars/sas.tmLanguage.json deleted file mode 100644 index b8a9b32..0000000 --- a/lib/grammars/sas.tmLanguage.json +++ /dev/null @@ -1,301 +0,0 @@ -{ - "comment": "A work in progress--improves over the existing in that it populates symbols, and handles comments more gracefully.", - "fileTypes": ["sas"], - "foldingStartMarker": "(?i:(proc|data|%macro).*;$)", - "foldingStopMarker": "(?i:(run|quit|%mend)\\s?);", - "name": "sas", - "patterns": [ - { - "include": "#starComment" - }, - { - "include": "#blockComment" - }, - { - "include": "#macro" - }, - { - "include": "#constant" - }, - { - "include": "#quote" - }, - { - "include": "#operator" - }, - { - "begin": "\\b(?i:(data))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.sas" - } - }, - "comment": "Begins a DATA step and provides names for any output SAS data sets, views, or programs.", - "end": "(;)", - "patterns": [ - { - "include": "#blockComment" - }, - { - "include": "#dataSet" - }, - { - "captures": { - "1": { - "name": "keyword.other.sas" - }, - "2": { - "name": "keyword.other.sas" - } - }, - "match": "(?i:(?:(stack|pgm|view|source)\\s?=\\s?)|(debug|nesting|nolist))" - } - ] - }, - { - "begin": "\\b(?i:(set|update|modify|merge))\\s+", - "beginCaptures": { - "1": { - "name": "support.function.sas" - }, - "2": { - "name": "entity.name.class.sas" - }, - "3": { - "name": "entity.name.class.sas" - } - }, - "comment": "DATA set File-Handling Statements for DATA step", - "end": "(;)", - "patterns": [ - { - "include": "#blockComment" - }, - { - "include": "#dataSet" - } - ] - }, - { - "match": "(?i:\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\b)", - "name": "keyword.control.sas" - }, - { - "captures": { - "1": { - "name": "support.class.sas" - }, - "3": { - "name": "entity.name.function.sas" - } - }, - "match": "(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\b))\\s*(\\w*)", - "name": "keyword.other.sas" - }, - { - "begin": "(?i:\\b(proc\\s*(sql))\\b)", - "beginCaptures": { - "1": { - "name": "support.function.sas" - }, - "2": { - "name": "support.class.sas" - } - }, - "comment": "Looks like for this to work there must be a *name* as well as the patterns/include bit.", - "end": "(?i:\\b(quit)\\s*;)", - "endCaptures": { - "1": { - "name": "keyword.control.sas" - } - }, - "name": "meta.sql.sas", - "patterns": [ - { - "include": "#starComment" - }, - { - "include": "#blockComment" - }, - { - "include": "source.sql" - } - ] - }, - { - "match": "(?i:\\b(by|label|format)\\b)", - "name": "keyword.datastep.sas" - }, - { - "captures": { - "1": { - "name": "support.function.sas" - }, - "2": { - "name": "support.class.sas" - } - }, - "match": "(?i:\\b(proc (\\w+))\\b)", - "name": "meta.function-call.sas" - }, - { - "match": "(?i:\\b(_n_|_error_)\\b)", - "name": "variable.language.sas" - }, - { - "captures": { - "1": { - "name": "support.class.sas" - } - }, - "match": "\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\b", - "name": "support.function.sas" - } - ], - "repository": { - "blockComment": { - "patterns": [ - { - "begin": "\\/\\*", - "end": "\\*\\/", - "name": "comment.block.slashstar.sas" - } - ] - }, - "constant": { - "patterns": [ - { - "comment": "numeric constant", - "match": "(?<![&\\}])\\b[0-9]*\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\b", - "name": "constant.numeric.sas" - }, - { - "comment": "single quote numeric-type constant", - "match": "(')([^']+)(')(dt|[dt])", - "name": "constant.numeric.quote.single.sas" - }, - { - "comment": "double quote numeric-type constant", - "match": "(\")([^\"]+)(\")(dt|[dt])", - "name": "constant.numeric.quote.double.sas" - } - ] - }, - "dataSet": { - "patterns": [ - { - "begin": "((\\w+)\\.)?(\\w+)\\s?\\(", - "beginCaptures": { - "2": { - "name": "entity.name.class.libref.sas" - }, - "3": { - "name": "entity.name.class.dsname.sas" - } - }, - "comment": "data set with options", - "end": "\\)", - "patterns": [ - { - "include": "#dataSetOptions" - }, - { - "include": "#blockComment" - }, - { - "include": "#macro" - }, - { - "include": "#constant" - }, - { - "include": "#quote" - }, - { - "include": "#operator" - } - ] - }, - { - "captures": { - "2": { - "name": "entity.name.class.libref.sas" - }, - "3": { - "name": "entity.name.class.dsname.sas" - } - }, - "comment": "data set without options", - "match": "\\b((\\w+)\\.)?(\\w+)\\b" - } - ] - }, - "dataSetOptions": { - "patterns": [ - { - "match": "(?<=\\s|\\(|\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\s?=", - "name": "keyword.other.sas" - } - ] - }, - "macro": { - "patterns": [ - { - "match": "(&+(?i:[a-z_]([a-z0-9_]+)?)(\\.+)?)\\b", - "name": "variable.other.macro.sas" - } - ] - }, - "operator": { - "patterns": [ - { - "match": "([\\+\\-\\*\\^\\/])", - "name": "keyword.operator.arithmetic.sas" - }, - { - "match": "\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\b", - "name": "keyword.operator.comparison.sas" - }, - { - "match": "([¬<>^~]?=(:)?|>|<|\\||!|¦|¬|^|~|<>|><|\\|\\|)", - "name": "keyword.operator.sas" - } - ] - }, - "quote": { - "patterns": [ - { - "begin": "(?<!%)(')", - "comment": "single quoted string block", - "end": "(')([bx])?", - "name": "string.quoted.single.sas" - }, - { - "begin": "(\")", - "comment": "double quoted string block", - "end": "(\")([bx])?", - "name": "string.quoted.double.sas" - } - ] - }, - "starComment": { - "patterns": [ - { - "include": "#blockcomment" - }, - { - "begin": "(?<=;)[\\s%]*\\*", - "end": ";", - "name": "comment.line.inline.star.sas" - }, - { - "begin": "^[\\s%]*\\*", - "end": ";", - "name": "comment.line.start.sas" - } - ] - } - }, - "scopeName": "source.sas", - "uuid": "7e721b1e-6265-4865-bc4b-308d49affba1" -} diff --git a/lib/grammars/sass.tmLanguage.json b/lib/grammars/sass.tmLanguage.json deleted file mode 100644 index 25eb7b8..0000000 --- a/lib/grammars/sass.tmLanguage.json +++ /dev/null @@ -1,615 +0,0 @@ -{ - "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)", - "end": "$\\n?", - "name": "comment.import.css.variables", - "captures": { - "1": { - "name": "keyword.control" - }, - "2": { - "name": "variable" - }, - "3": { - "name": "keyword.control" - } - }, - "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_-]+(?=:)", - "end": "$\\n?|(?=\\)\\s\\)|\\)\\n)", - "name": "sass.script.maps", - "captures": { - "0": { - "name": "variable.other.name" - } - }, - "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)", - "end": "(?=\\n|\\()", - "name": "support.function.name.sass.library", - "captures": { - "0": { - "name": "keyword.control.at-rule.css.sass" - } - } - }, - { - "begin": "^(@use)", - "end": "(?=\\n)", - "name": "sass.use", - "captures": { - "0": { - "name": "keyword.control.at-rule.css.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.*)?$", - "end": "(?=\\n)", - "name": "keyword.control.at-rule.use", - "captures": { - "1": { - "name": "constant.character.css.sass" - }, - "2": { - "name": "invalid" - } - } - }, - { - "begin": "@mixin|^[\\t ]*=|@function", - "end": "$\\n?|(?=\\()", - "name": "support.function.name.sass", - "captures": { - "0": { - "name": "keyword.control.at-rule.css.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)|\n*):[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": { - "module": { - "match": "([\\w-]+?)(\\.)", - "name": "constant.character.module", - "captures": { - "1": { - "name": "constant.character.module.name" - }, - "2": { - "name": "constant.numeric.module.dot" - } - } - }, - "comma": { - "match": "\\band\\b|\\bor\\b|,", - "name": "comment.punctuation.comma.sass" - }, - "comment-tag": { - "begin": "(?<={{)", - "end": "(?=}})", - "name": "comment.tag.sass" - }, - "comment-param": { - "match": "\\@(\\w+)", - "name": "storage.type.class.jsdoc" - }, - "curly-brackets": { - "match": "{|}", - "name": "invalid" - }, - "dotdotdot": { - "match": "\\.\\.\\.", - "name": "variable.other" - }, - "double-slash": { - "begin": "//", - "end": "$\\n?", - "name": "comment.line.sass", - "patterns": [ - { - "include": "#comment-tag" - } - ] - }, - "double-quoted": { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.css.sass", - "patterns": [ - { - "include": "#quoted-interpolation" - } - ] - }, - "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" - }, - "parenthesis-open": { - "match": "\\(", - "name": "entity.name.function.parenthesis.open" - }, - "parenthesis-close": { - "match": "\\)", - "name": "entity.name.function.parenthesis.close" - }, - "colon": { - "match": ":", - "name": "meta.property-list.css.sass.colon" - }, - "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" - } - ] - }, - "numeric": { - "match": "(-|\\.)?[0-9]+(\\.[0-9]+)?", - "name": "constant.numeric.css.sass" - }, - "operator": { - "match": "\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~", - "name": "keyword.operator.sass" - }, - "parent-selector": { - "match": "&", - "name": "entity.name.tag.css.sass" - }, - "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-root": { - "match": "\\$[a-zA-Z0-9_-]+", - "name": "variable.other.root" - }, - "variable": { - "match": "\\$[a-zA-Z0-9_-]+", - "name": "variable.other.value" - }, - "import-quotes": { - "match": "[\"']?\\.{0,2}[\\w/]+[\"']?", - "name": "constant.character.css.sass" - } - }, - "scopeName": "source.sass" -} diff --git a/lib/grammars/scala.tmLanguage.json b/lib/grammars/scala.tmLanguage.json deleted file mode 100644 index 930ba2d..0000000 --- a/lib/grammars/scala.tmLanguage.json +++ /dev/null @@ -1,1304 +0,0 @@ -{ - "fileTypes": ["scala"], - "firstLineMatch": "^#!/.*\\b\\w*scala\\b", - "foldingStartMarker": "/\\*\\*|\\{\\s*$", - "foldingStopMarker": "\\*\\*/|^\\s*\\}", - "keyEquivalent": "^~S", - "repository": { - "empty-parentheses": { - "match": "(\\(\\))", - "captures": { - "1": { - "name": "meta.bracket.scala" - } - }, - "name": "meta.parentheses.scala" - }, - "imports": { - "end": "(?<=[\\n;])", - "begin": "\\b(import)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.import.scala" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\b(given)\\b", - "name": "keyword.other.import.given.scala" - }, - { - "match": "[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?", - "name": "entity.name.class.import.scala" - }, - { - "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))", - "name": "entity.name.import.scala" - }, - { - "match": "\\.", - "name": "punctuation.definition.import" - }, - { - "end": "}", - "begin": "{", - "beginCaptures": { - "0": { - "name": "meta.bracket.scala" - } - }, - "patterns": [ - { - "match": "(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*", - "captures": { - "1": { - "name": "keyword.other.import.given.scala" - }, - "2": { - "name": "entity.name.class.import.renamed-from.scala" - }, - "3": { - "name": "entity.name.import.renamed-from.scala" - }, - "4": { - "name": "keyword.other.arrow.scala" - }, - "5": { - "name": "entity.name.class.import.renamed-to.scala" - }, - "6": { - "name": "entity.name.import.renamed-to.scala" - } - } - }, - { - "match": "\\b(given)\\b", - "name": "keyword.other.import.given.scala" - }, - { - "match": "(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))", - "captures": { - "1": { - "name": "keyword.other.import.given.scala" - }, - "2": { - "name": "entity.name.class.import.scala" - }, - "3": { - "name": "entity.name.import.scala" - } - } - } - ], - "endCaptures": { - "0": { - "name": "meta.bracket.scala" - } - }, - "name": "meta.import.selector.scala" - } - ], - "name": "meta.import.scala" - }, - "exports": { - "end": "(?<=[\\n;])", - "begin": "\\b(export)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.export.scala" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\b(given)\\b", - "name": "keyword.other.export.given.scala" - }, - { - "match": "[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?", - "name": "entity.name.class.export.scala" - }, - { - "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))", - "name": "entity.name.export.scala" - }, - { - "match": "\\.", - "name": "punctuation.definition.export" - }, - { - "end": "}", - "begin": "{", - "beginCaptures": { - "0": { - "name": "meta.bracket.scala" - } - }, - "patterns": [ - { - "match": "(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*", - "captures": { - "1": { - "name": "keyword.other.export.given.scala" - }, - "2": { - "name": "entity.name.class.export.renamed-from.scala" - }, - "3": { - "name": "entity.name.export.renamed-from.scala" - }, - "4": { - "name": "keyword.other.arrow.scala" - }, - "5": { - "name": "entity.name.class.export.renamed-to.scala" - }, - "6": { - "name": "entity.name.export.renamed-to.scala" - } - } - }, - { - "match": "\\b(given)\\b", - "name": "keyword.other.export.given.scala" - }, - { - "match": "(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))", - "captures": { - "1": { - "name": "keyword.other.export.given.scala" - }, - "2": { - "name": "entity.name.class.export.scala" - }, - "3": { - "name": "entity.name.export.scala" - } - } - } - ], - "endCaptures": { - "0": { - "name": "meta.bracket.scala" - } - }, - "name": "meta.export.selector.scala" - } - ], - "name": "meta.export.scala" - }, - "constants": { - "patterns": [ - { - "match": "\\b(false|null|true)\\b", - "name": "constant.language.scala" - }, - { - "match": "\\b(0[xX][0-9a-fA-F_]*)\\b", - "name": "constant.numeric.scala" - }, - { - "match": "\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b", - "name": "constant.numeric.scala" - }, - { - "match": "(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b", - "name": "constant.numeric.scala" - }, - { - "match": "\\b(this|super)\\b", - "name": "variable.language.scala" - } - ] - }, - "script-header": { - "match": "^#!(.*)$", - "captures": { - "1": { - "name": "string.unquoted.shebang.scala" - } - }, - "name": "comment.block.shebang.scala" - }, - "code": { - "patterns": [ - { - "include": "#using-directive" - }, - { - "include": "#script-header" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#declarations" - }, - { - "include": "#inheritance" - }, - { - "include": "#extension" - }, - { - "include": "#imports" - }, - { - "include": "#exports" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#initialization" - }, - { - "include": "#xml-literal" - }, - { - "include": "#keywords" - }, - { - "include": "#using" - }, - { - "include": "#constants" - }, - { - "include": "#singleton-type" - }, - { - "include": "#inline" - }, - { - "include": "#scala-quoted-or-symbol" - }, - { - "include": "#char-literal" - }, - { - "include": "#empty-parentheses" - }, - { - "include": "#parameter-list" - }, - { - "include": "#qualifiedClassName" - }, - { - "include": "#backQuotedVariable" - }, - { - "include": "#curly-braces" - }, - { - "include": "#meta-brackets" - }, - { - "include": "#meta-bounds" - }, - { - "include": "#meta-colons" - } - ] - }, - "strings": { - "patterns": [ - { - "end": "\"\"\"(?!\")", - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.scala" - } - }, - "patterns": [ - { - "match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}", - "name": "constant.character.escape.scala" - } - ], - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scala" - } - }, - "name": "string.quoted.triple.scala" - }, - { - "begin": "\\b(raw)(\"\"\")", - "end": "(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", - "beginCaptures": { - "1": { - "name": "keyword.interpolation.scala" - }, - "2": { - "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala" - } - }, - "patterns": [ - { - "match": "\\$[\\$\"]", - "name": "constant.character.escape.scala" - }, - { - "include": "#string-interpolation" - }, - { - "match": ".", - "name": "string.quoted.triple.interpolated.scala" - } - ], - "endCaptures": { - "1": { - "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala" - }, - "2": { - "name": "invalid.illegal.unrecognized-string-escape.scala" - } - } - }, - { - "begin": "\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\"\"\")", - "end": "(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", - "beginCaptures": { - "1": { - "name": "keyword.interpolation.scala" - }, - "2": { - "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala" - } - }, - "patterns": [ - { - "include": "#string-interpolation" - }, - { - "match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}", - "name": "constant.character.escape.scala" - }, - { - "match": ".", - "name": "string.quoted.triple.interpolated.scala" - } - ], - "endCaptures": { - "1": { - "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala" - }, - "2": { - "name": "invalid.illegal.unrecognized-string-escape.scala" - } - } - }, - { - "end": "\"", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.scala" - } - }, - "patterns": [ - { - "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})", - "name": "constant.character.escape.scala" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.scala" - } - ], - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scala" - } - }, - "name": "string.quoted.double.scala" - }, - { - "begin": "\\b(raw)(\")", - "end": "(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", - "beginCaptures": { - "1": { - "name": "keyword.interpolation.scala" - }, - "2": { - "name": "string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala" - } - }, - "patterns": [ - { - "match": "\\$[\\$\"]", - "name": "constant.character.escape.scala" - }, - { - "include": "#string-interpolation" - }, - { - "match": ".", - "name": "string.quoted.double.interpolated.scala" - } - ], - "endCaptures": { - "1": { - "name": "string.quoted.double.interpolated.scala punctuation.definition.string.end.scala" - }, - "2": { - "name": "invalid.illegal.unrecognized-string-escape.scala" - } - } - }, - { - "begin": "\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\")", - "end": "(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", - "beginCaptures": { - "1": { - "name": "keyword.interpolation.scala" - }, - "2": { - "name": "string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala" - } - }, - "patterns": [ - { - "match": "\\$[\\$\"]", - "name": "constant.character.escape.scala" - }, - { - "include": "#string-interpolation" - }, - { - "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})", - "name": "constant.character.escape.scala" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.scala" - }, - { - "match": ".", - "name": "string.quoted.double.interpolated.scala" - } - ], - "endCaptures": { - "1": { - "name": "string.quoted.double.interpolated.scala punctuation.definition.string.end.scala" - }, - "2": { - "name": "invalid.illegal.unrecognized-string-escape.scala" - } - } - } - ] - }, - "using": { - "patterns": [ - { - "match": "(?<=\\()\\s*(using)\\s", - "captures": { - "1": { - "name": "keyword.declaration.scala" - } - } - } - ] - }, - "string-interpolation": { - "patterns": [ - { - "name": "constant.character.escape.interpolation.scala", - "match": "\\$\\$" - }, - { - "name": "meta.template.expression.scala", - "match": "(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)", - "captures": { - "1": { - "name": "punctuation.definition.template-expression.begin.scala" - } - } - }, - { - "name": "meta.template.expression.scala", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.scala" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.scala" - } - }, - "patterns": [ - { - "include": "#code" - } - ], - "contentName": "meta.embedded.line.scala" - } - ] - }, - "xml-entity": { - "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - }, - "3": { - "name": "punctuation.definition.constant.xml" - } - }, - "name": "constant.character.entity.xml" - }, - "xml-singlequotedString": { - "end": "'", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "patterns": [ - { - "include": "#xml-entity" - } - ], - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.single.xml" - }, - "meta-colons": { - "patterns": [ - { - "match": "(?<!:):(?!:)", - "name": "meta.colon.scala" - } - ], - "comment": "For themes: Matching type colons" - }, - "keywords": { - "patterns": [ - { - "match": "\\b(return|throw)\\b", - "name": "keyword.control.flow.jump.scala" - }, - { - "match": "\\b(classOf|isInstanceOf|asInstanceOf)\\b", - "name": "support.function.type-of.scala" - }, - { - "match": "\\b(else|if|then|do|while|for|yield|match|case)\\b", - "name": "keyword.control.flow.scala" - }, - { - "match": "^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", - "name": "keyword.control.flow.end.scala" - }, - { - "match": "^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", - "name": "keyword.declaration.stable.end.scala" - }, - { - "match": "^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", - "name": "keyword.declaration.volatile.end.scala" - }, - { - "match": "^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", - "captures": { - "1": { - "name": "keyword.declaration.end.scala" - }, - "2": { - "name": "keyword.declaration.end.scala" - }, - "3": { - "name": "entity.name.type.declaration" - } - } - }, - { - "match": "\\b(catch|finally|try)\\b", - "name": "keyword.control.exception.scala" - }, - { - "match": "^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", - "name": "keyword.control.exception.end.scala" - }, - { - "match": "^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", - "captures": { - "1": { - "name": "keyword.declaration.end.scala" - }, - "2": { - "name": "entity.name.declaration" - } - } - }, - { - "match": "(==?|!=|<=|>=|<>|<|>)", - "name": "keyword.operator.comparison.scala" - }, - { - "match": "(\\-|\\+|\\*|/(?![/*])|%|~)", - "name": "keyword.operator.arithmetic.scala" - }, - { - "match": "(?<![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]|_)(!|&&|\\|\\|)(?![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}])", - "name": "keyword.operator.logical.scala" - }, - { - "match": "(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+", - "name": "keyword.operator.scala" - } - ] - }, - "singleton-type": { - "match": "\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])", - "captures": { - "1": { - "name": "keyword.type.scala" - } - } - }, - "inline": { - "patterns": [ - { - "match": "\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)", - "name": "storage.modifier.other" - }, - { - "match": "\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)", - "name": "keyword.control.flow.scala" - } - ] - }, - "scala-quoted-or-symbol": { - "patterns": [ - { - "match": "(')((?>(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))(?!')", - "captures": { - "1": { - "name": "keyword.control.flow.staging.scala constant.other.symbol.scala" - }, - "2": { - "name": "constant.other.symbol.scala" - } - } - }, - { - "match": "'(?=\\s*\\{(?!'))", - "name": "keyword.control.flow.staging.scala" - }, - { - "match": "'(?=\\s*\\[(?!'))", - "name": "keyword.control.flow.staging.scala" - }, - { - "match": "\\$(?=\\s*\\{)", - "name": "keyword.control.flow.staging.scala" - } - ] - }, - "xml-doublequotedString": { - "end": "\"", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "patterns": [ - { - "include": "#xml-entity" - } - ], - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.double.xml" - }, - "declarations": { - "patterns": [ - { - "match": "\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", - "captures": { - "1": { - "name": "keyword.declaration.scala" - }, - "2": { - "name": "entity.name.function.declaration" - } - } - }, - { - "match": "\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", - "captures": { - "1": { - "name": "keyword.declaration.scala" - }, - "2": { - "name": "entity.name.class.declaration" - } - } - }, - { - "match": "\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", - "captures": { - "1": { - "name": "keyword.declaration.scala" - }, - "2": { - "name": "keyword.declaration.scala" - }, - "3": { - "name": "entity.name.class.declaration" - } - } - }, - { - "match": "(?<!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", - "captures": { - "1": { - "name": "keyword.declaration.scala" - }, - "2": { - "name": "entity.name.type.declaration" - } - } - }, - { - "match": "\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()", - "captures": { - "1": { - "name": "keyword.declaration.stable.scala" - }, - "2": { - "name": "keyword.declaration.volatile.scala" - } - } - }, - { - "match": "\\b(val)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?", - "captures": { - "1": { - "name": "keyword.declaration.stable.scala" - }, - "2": { - "name": "variable.stable.declaration.scala" - } - } - }, - { - "match": "\\b(var)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?", - "captures": { - "1": { - "name": "keyword.declaration.volatile.scala" - }, - "2": { - "name": "variable.volatile.declaration.scala" - } - } - }, - { - "match": "\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", - "captures": { - "1": { - "name": "keyword.other.scoping.scala" - }, - "2": { - "name": "keyword.declaration.scala" - }, - "3": { - "name": "entity.name.class.declaration" - } - } - }, - { - "end": "(?<=[\\n;])", - "begin": "\\b(package)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.import.scala" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))", - "name": "entity.name.package.scala" - }, - { - "match": "\\.", - "name": "punctuation.definition.package" - } - ], - "name": "meta.package.scala" - }, - { - "match": "\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?", - "captures": { - "1": { - "name": "keyword.declaration.scala" - }, - "2": { - "name": "entity.name.given.declaration" - } - } - } - ] - }, - "char-literal": { - "end": "'|$", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.character.begin.scala" - } - }, - "patterns": [ - { - "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})", - "name": "constant.character.escape.scala" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-character-escape.scala" - }, - { - "match": "[^']{2,}", - "name": "invalid.illegal.character-literal-too-long" - }, - { - "match": "(?<!')[^']", - "name": "invalid.illegal.character-literal-too-long" - } - ], - "endCaptures": { - "0": { - "name": "punctuation.definition.character.end.scala" - } - }, - "name": "string.quoted.other constant.character.literal.scala" - }, - "initialization": { - "match": "\\b(new)\\b", - "captures": { - "1": { - "name": "keyword.declaration.scala" - } - } - }, - "curly-braces": { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.scala" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.scala" - } - }, - "patterns": [ - { - "include": "#code" - } - ] - }, - "meta-brackets": { - "patterns": [ - { - "match": "\\{", - "comment": "The punctuation.section.*.begin is needed for return snippet in source bundle", - "name": "punctuation.section.block.begin.scala" - }, - { - "match": "\\}", - "comment": "The punctuation.section.*.end is needed for return snippet in source bundle", - "name": "punctuation.section.block.end.scala" - }, - { - "match": "{|}|\\(|\\)|\\[|\\]", - "name": "meta.bracket.scala" - } - ], - "comment": "For themes: Brackets look nice when colored." - }, - "qualifiedClassName": { - "match": "(\\b([A-Z][\\w]*)(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)", - "captures": { - "1": { - "name": "entity.name.class" - } - } - }, - "backQuotedVariable": { - "match": "`[^`]+`" - }, - "storage-modifiers": { - "patterns": [ - { - "match": "\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b", - "name": "storage.modifier.access" - }, - { - "match": "\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b", - "name": "storage.modifier.other" - }, - { - "match": "(?<=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)", - "name": "storage.modifier.other" - } - ] - }, - "meta-bounds": { - "match": "<%|=:=|<:<|<%<|>:|<:", - "comment": "For themes: Matching view bounds", - "name": "meta.bounds.scala" - }, - "using-directive": { - "end": "\\n", - "begin": "^\\s*(//>)\\s*(using)[^\\S\\n]+", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.scala" - }, - "2": { - "name": "keyword.other.import.scala" - } - }, - "patterns": [ - { - "match": "[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)", - "name": "entity.name.import.scala" - }, - { - "match": "\\.", - "name": "punctuation.definition.import" - }, - { - "include": "#strings" - }, - { - "include": "#constants" - } - ], - "name": "comment.line.shebang.scala" - }, - "comments": { - "patterns": [ - { - "include": "#block-comments" - }, - { - "end": "(?!\\G)", - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.scala" - } - }, - "patterns": [ - { - "end": "\\n", - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.scala" - } - }, - "name": "comment.line.double-slash.scala" - } - ] - } - ] - }, - "block-comments": { - "patterns": [ - { - "match": "/\\*\\*/", - "captures": { - "0": { - "name": "punctuation.definition.comment.scala" - } - }, - "name": "comment.block.empty.scala" - }, - { - "end": "\\*/", - "begin": "^\\s*(/\\*\\*)(?!/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.scala" - } - }, - "patterns": [ - { - "match": "(@param)\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.scaladoc.scala" - }, - "2": { - "name": "variable.parameter.scala" - } - } - }, - { - "match": "(@(?:tparam|throws))\\s+(\\S+)", - "captures": { - "1": { - "name": "keyword.other.documentation.scaladoc.scala" - }, - "2": { - "name": "entity.name.class" - } - } - }, - { - "match": "@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b", - "name": "keyword.other.documentation.scaladoc.scala" - }, - { - "match": "(\\[\\[)([^\\]]+)(\\]\\])", - "captures": { - "1": { - "name": "punctuation.definition.documentation.link.scala" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "3": { - "name": "punctuation.definition.documentation.link.scala" - } - } - }, - { - "include": "#block-comments" - } - ], - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.scala" - } - }, - "name": "comment.block.documentation.scala" - }, - { - "end": "\\*/", - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.scala" - } - }, - "patterns": [ - { - "include": "#block-comments" - } - ], - "name": "comment.block.scala" - } - ] - }, - "xml-embedded-content": { - "patterns": [ - { - "end": "}", - "begin": "{", - "patterns": [ - { - "include": "#code" - } - ], - "captures": { - "0": { - "name": "meta.bracket.scala" - } - }, - "name": "meta.source.embedded.scala" - }, - { - "match": " (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=", - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.xml" - }, - "2": { - "name": "entity.other.attribute-name.xml" - }, - "3": { - "name": "punctuation.separator.namespace.xml" - }, - "4": { - "name": "entity.other.attribute-name.localname.xml" - } - } - }, - { - "include": "#xml-doublequotedString" - }, - { - "include": "#xml-singlequotedString" - } - ] - }, - "inheritance": { - "patterns": [ - { - "match": "\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=>)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))|(?=\"))?", - "captures": { - "1": { - "name": "keyword.declaration.scala" - }, - "2": { - "name": "entity.name.class" - } - } - } - ] - }, - "extension": { - "patterns": [ - { - "match": "^\\s*(extension)\\s+(?=[\\[\\(])", - "captures": { - "1": { - "name": "keyword.declaration.scala" - } - } - } - ] - }, - "parameter-list": { - "patterns": [ - { - "match": "(?<=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+", - "captures": { - "1": { - "name": "variable.parameter.scala" - }, - "2": { - "name": "meta.colon.scala" - } - } - } - ] - }, - "xml-literal": { - "patterns": [ - { - "end": "(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)", - "begin": "(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "3": { - "name": "entity.name.tag.namespace.xml" - }, - "4": { - "name": "entity.name.tag.xml" - }, - "5": { - "name": "punctuation.separator.namespace.xml" - }, - "6": { - "name": "entity.name.tag.localname.xml" - } - }, - "patterns": [ - { - "include": "#xml-embedded-content" - } - ], - "comment": "We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "meta.scope.between-tag-pair.xml" - }, - "3": { - "name": "entity.name.tag.namespace.xml" - }, - "4": { - "name": "entity.name.tag.xml" - }, - "5": { - "name": "punctuation.separator.namespace.xml" - }, - "6": { - "name": "entity.name.tag.localname.xml" - }, - "7": { - "name": "punctuation.definition.tag.xml" - } - }, - "name": "meta.tag.no-content.xml" - }, - { - "end": "(/?>)", - "begin": "(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)", - "patterns": [ - { - "include": "#xml-embedded-content" - } - ], - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.namespace.xml" - }, - "3": { - "name": "entity.name.tag.xml" - }, - "4": { - "name": "punctuation.separator.namespace.xml" - }, - "5": { - "name": "entity.name.tag.localname.xml" - } - }, - "name": "meta.tag.xml" - }, - { - "include": "#xml-entity" - } - ] - } - }, - "uuid": "158C0929-299A-40C8-8D89-316BE0C446E8", - "patterns": [ - { - "include": "#code" - } - ], - "name": "scala", - "scopeName": "source.scala" -} diff --git a/lib/grammars/scheme.tmLanguage.json b/lib/grammars/scheme.tmLanguage.json deleted file mode 100644 index a56273e..0000000 --- a/lib/grammars/scheme.tmLanguage.json +++ /dev/null @@ -1,381 +0,0 @@ -{ - "comment": "\n\t\tThe foldings do not currently work the way I want them to. This\n\t\tmay be a limitation of the way they are applied rather than the\n\t\tregexps in use. Nonetheless, the foldings will end on the last\n\t\tidentically indented blank line following an s-expression. Not\n\t\tideal perhaps, but it works. Also, the #illegal pattern never\n\t\tmatches an unpaired ( as being illegal. Why?! -- Rob Rix\n\t\t\n\t\tOk, hopefully this grammar works better on quoted stuff now. It\n\t\tmay break for fancy macros, but should generally work pretty\n\t\tsmoothly. -- Jacob Rus\n\t\t\n\t\tI have attempted to get this under control but because of the way folding\n\t\tand indentation interact in Textmate, I am not sure if it is possible. In the\n\t\tmeantime, I have implemented Python-style folding anchored at newlines.\n\t\tAdditionally, I have made some minor improvements to the numeric constant\n\t\thighlighting. Next up is square bracket expressions, I guess, but that\n\t\tshould be trivial. -- ozy`\n\t", - "fileTypes": ["scm", "ss", "sch", "rkt"], - "keyEquivalent": "^~S", - "name": "scheme", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#block-comment" - }, - { - "include": "#sexp" - }, - { - "include": "#string" - }, - { - "include": "#language-functions" - }, - { - "include": "#quote" - }, - { - "include": "#illegal" - } - ], - "repository": { - "comment": { - "begin": "(^[ \\t]+)?(?=;)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.scheme" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": ";", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.scheme" - } - }, - "end": "\\n", - "name": "comment.line.semicolon.scheme" - } - ] - }, - "block-comment": { - "begin": "\\#\\|", - "contentName": "comment", - "end": "\\|\\#", - "name": "comment", - "patterns": [ - { - "include": "#block-comment", - "name": "comment" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "#[t|f]", - "name": "constant.language.boolean.scheme" - }, - { - "match": "(?<=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'\",\\[\\]])", - "name": "constant.numeric.scheme" - } - ] - }, - "illegal": { - "match": "[()\\[\\]]", - "name": "invalid.illegal.parenthesis.scheme" - }, - "language-functions": { - "patterns": [ - { - "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\(|\\[)) # preceded by space or ( \n\t\t\t\t\t\t( do|or|and|else|quasiquote|begin|if|case|set!|\n\t\t\t\t\t\t cond|let|unquote|define|let\\*|unquote-splicing|delay|\n\t\t\t\t\t\t letrec)\n\t\t\t\t\t\t(?=(\\s|\\())", - "name": "keyword.control.scheme" - }, - { - "comment": "\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t", - "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char-alphabetic|char-lower-case|char-numeric|\n\t\t\t\t\t\t char-ready|char-upper-case|char-whitespace|\n\t\t\t\t\t\t (?:char|string)(?:-ci)?(?:=|<=?|>=?)|\n\t\t\t\t\t\t atom|boolean|bound-identifier=|char|complex|\n\t\t\t\t\t\t identifier|integer|symbol|free-identifier=|inexact|\n\t\t\t\t\t\t eof-object|exact|list|(?:input|output)-port|pair|\n\t\t\t\t\t\t real|rational|zero|vector|negative|odd|null|string|\n\t\t\t\t\t\t eq|equal|eqv|even|number|positive|procedure\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(\\?)\t\t# name ends with ? sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t", - "name": "support.function.boolean-test.scheme" - }, - { - "comment": "\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t", - "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char->integer|exact->inexact|inexact->exact|\n\t\t\t\t\t\t integer->char|symbol->string|list->vector|\n\t\t\t\t\t\t list->string|identifier->symbol|vector->list|\n\t\t\t\t\t\t string->list|string->number|string->symbol|\n\t\t\t\t\t\t number->string\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\t\t\t\t\t\n\t\t\t\t\t", - "name": "support.function.convert-type.scheme" - }, - { - "comment": "\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t", - "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( set-(?:car|cdr)|\t\t\t\t # set car/cdr\n\t\t\t\t\t\t (?:vector|string)-(?:fill|set) # fill/set string/vector\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(!)\t\t\t# name ends with ! sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t", - "name": "support.function.with-side-effects.scheme" - }, - { - "comment": "\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t", - "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( >=?|<=?|=|[*/+-])\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t\t", - "name": "keyword.operator.arithmetic.scheme" - }, - { - "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( append|apply|approximate|\n\t\t\t\t\t\t call-with-current-continuation|call/cc|catch|\n\t\t\t\t\t\t construct-identifier|define-syntax|display|foo|\n\t\t\t\t\t\t for-each|force|format|cd|gen-counter|gen-loser|\n\t\t\t\t\t\t generate-identifier|last-pair|length|let-syntax|\n\t\t\t\t\t\t letrec-syntax|list|list-ref|list-tail|load|log|\n\t\t\t\t\t\t macro|magnitude|map|map-streams|max|member|memq|\n\t\t\t\t\t\t memv|min|newline|nil|not|peek-char|rationalize|\n\t\t\t\t\t\t read|read-char|return|reverse|sequence|substring|\n\t\t\t\t\t\t syntax|syntax-rules|transcript-off|transcript-on|\n\t\t\t\t\t\t truncate|unwrap-syntax|values-list|write|write-char|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # cons, car, cdr, etc\n\t\t\t\t\t\t cons|c(a|d){1,4}r| \n \n\t\t\t\t\t\t # unary math operators\n\t\t\t\t\t\t abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|\n\t\t\t\t\t\t cos|floor|round|sin|sqrt|tan|\n\t\t\t\t\t\t (?:real|imag)-part|numerator|denominator\n \n\t\t\t\t\t\t # other math operators\n\t\t\t\t\t\t modulo|exp|expt|remainder|quotient|lcm|\n \n\t\t\t\t\t\t # ports / files\n\t\t\t\t\t\t call-with-(?:input|output)-file|\n\t\t\t\t\t\t (?:close|current)-(?:input|output)-port|\n\t\t\t\t\t\t with-(?:input|output)-from-file|\n\t\t\t\t\t\t open-(?:input|output)-file|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # char-«foo»\n\t\t\t\t\t\t char-(?:downcase|upcase|ready)|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # make-«foo»\n\t\t\t\t\t\t make-(?:polar|promise|rectangular|string|vector)\n\t\t\t\t\t\t \n\t\t\t\t\t\t # string-«foo», vector-«foo»\n\t\t\t\t\t\t string(?:-(?:append|copy|length|ref))?|\n\t\t\t\t\t\t vector(?:-length|-ref)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t", - "name": "support.function.general.scheme" - } - ] - }, - "quote": { - "comment": "\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.section.quoted.symbol.scheme" - } - }, - "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t", - "name": "constant.other.symbol.scheme" - }, - { - "captures": { - "1": { - "name": "punctuation.section.quoted.empty-list.scheme" - }, - "2": { - "name": "meta.expression.scheme" - }, - "3": { - "name": "punctuation.section.expression.begin.scheme" - }, - "4": { - "name": "punctuation.section.expression.end.scheme" - } - }, - "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t((\\()\\s*(\\)))\n\t\t\t\t\t", - "name": "constant.other.empty-list.schem" - }, - { - "begin": "(')\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.section.quoted.scheme" - } - }, - "comment": "quoted double-quoted string or s-expression", - "end": "(?=[\\s()])|(?<=\\n)", - "name": "string.other.quoted-object.scheme", - "patterns": [ - { - "include": "#quoted" - } - ] - } - ] - }, - "quote-sexp": { - "begin": "(?<=\\()\\s*(quote)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.quote.scheme" - } - }, - "comment": "\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t", - "contentName": "string.other.quote.scheme", - "end": "(?=[\\s)])|(?<=\\n)", - "patterns": [ - { - "include": "#quoted" - } - ] - }, - "quoted": { - "patterns": [ - { - "include": "#string" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.scheme" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.scheme" - } - }, - "name": "meta.expression.scheme", - "patterns": [ - { - "include": "#quoted" - } - ] - }, - { - "include": "#quote" - }, - { - "include": "#illegal" - } - ] - }, - "sexp": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.scheme" - } - }, - "end": "(\\))(\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.scheme" - }, - "2": { - "name": "meta.after-expression.scheme" - } - }, - "name": "meta.expression.scheme", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(define)\\s+ # define\n\t\t\t\t\t\t(\\() # list of parameters\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t\t ((\\s+\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t )*\n\t\t\t\t\t\t )\\s*\n\t\t\t\t\t\t(\\))\n\t\t\t\t\t", - "captures": { - "1": { - "name": "keyword.control.scheme" - }, - "2": { - "name": "punctuation.definition.function.scheme" - }, - "3": { - "name": "entity.name.function.scheme" - }, - "4": { - "name": "variable.parameter.function.scheme" - }, - "7": { - "name": "punctuation.definition.function.scheme" - } - }, - "end": "(?=\\))", - "name": "meta.declaration.procedure.scheme", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#sexp" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(lambda)\\s+\n\t\t\t\t\t\t(\\() # opening paren\n\t\t\t\t\t\t((?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t \\s+\n\t\t\t\t\t\t)*(?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t)?)\n\t\t\t\t\t\t(\\)) # closing paren\n\t\t\t\t\t", - "captures": { - "1": { - "name": "keyword.control.scheme" - }, - "2": { - "name": "punctuation.definition.variable.scheme" - }, - "3": { - "name": "variable.parameter.scheme" - }, - "6": { - "name": "punctuation.definition.variable.scheme" - } - }, - "comment": "\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t", - "end": "(?=\\))", - "name": "meta.declaration.procedure.scheme", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#sexp" - }, - { - "include": "#illegal" - } - ] - }, - { - "begin": "(?<=\\()(define)\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\s*.*?", - "captures": { - "1": { - "name": "keyword.control.scheme" - }, - "2": { - "name": "variable.other.scheme" - } - }, - "end": "(?=\\))", - "name": "meta.declaration.variable.scheme", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#sexp" - }, - { - "include": "#illegal" - } - ] - }, - { - "include": "#quote-sexp" - }, - { - "include": "#quote" - }, - { - "include": "#language-functions" - }, - { - "include": "#string" - }, - { - "include": "#constants" - }, - { - "match": "(?<=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])", - "name": "constant.character.named.scheme" - }, - { - "match": "(?<=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])", - "name": "constant.character.hex-literal.scheme" - }, - { - "match": "(?<=[\\(\\s])(#\\\\).(?=[\\s\\)])", - "name": "constant.character.escape.scheme" - }, - { - "comment": "\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t", - "match": "(?<=[ ()])\\.(?=[ ()])", - "name": "punctuation.separator.cons.scheme" - }, - { - "include": "#sexp" - }, - { - "include": "#illegal" - } - ] - }, - "string": { - "begin": "(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.scheme" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.scheme" - } - }, - "name": "string.quoted.double.scheme", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.scheme" - } - ] - } - }, - "scopeName": "source.scheme", - "uuid": "3EC2CFD0-909C-4692-AC29-1A60ADBC161E" -} diff --git a/lib/grammars/scss.tmLanguage.json b/lib/grammars/scss.tmLanguage.json deleted file mode 100644 index 23e26ce..0000000 --- a/lib/grammars/scss.tmLanguage.json +++ /dev/null @@ -1,1879 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-sass/blob/master/grammars/scss.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-sass/commit/f52ab12f7f9346cc2568129d8c4419bd3d506b47", - "name": "scss", - "scopeName": "source.css.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_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" - }, - { - "match": "\\b([\\w-]+)(\\*)", - "captures": { - "1": { - "name": "entity.other.attribute-name.module.scss" - }, - "2": { - "name": "punctuation.definition.wildcard.scss" - } - } - }, - { - "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" - } - ] - }, - { - "match": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)", - "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)\\b", - "captures": { - "0": { - "name": "meta.at-rule.include.scss" - }, - "1": { - "name": "keyword.control.at-rule.include.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - } - } - ] - }, - "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": [ - { - "match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)", - "captures": { - "1": { - "name": "entity.name.function.scss" - } - } - }, - { - "begin": "(?<=@keyframes)\\s+(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.scss" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scss" - } - }, - "name": "string.quoted.double.scss", - "contentName": "entity.name.function.scss", - "patterns": [ - { - "match": "\\\\(\\h{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "(?<=@keyframes)\\s+(')", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.scss" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scss" - } - }, - "name": "string.quoted.single.scss", - "contentName": "entity.name.function.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" - } - }, - "end": "\\s*(;|(?=}|\\)))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.rule.scss" - } - }, - "contentName": "meta.property-value.media-query.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" - } - ] - }, - { - "match": "(?<=@mixin)\\s+([\\w-]+)", - "captures": { - "1": { - "name": "entity.name.function.scss" - } - }, - "name": "meta.at-rule.mixin.scss" - }, - { - "match": "((@)mixin)\\b", - "captures": { - "1": { - "name": "keyword.control.at-rule.mixin.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "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" - } - ] - }, - { - "match": "((@)namespace)\\b", - "captures": { - "1": { - "name": "keyword.control.at-rule.namespace.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "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_at_root": { - "begin": "\\s*((@)(at-root))(\\s+|$)", - "end": "\\s*(?={)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.at-root.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "name": "meta.at-rule.at-root.scss", - "patterns": [ - { - "include": "#function_attributes" - }, - { - "include": "#functions" - }, - { - "include": "#selectors" - } - ] - }, - "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_docblock": { - "name": "comment.block.documentation.scss", - "begin": "///", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.scss" - } - }, - "end": "(?=$)", - "patterns": [ - { - "include": "source.sassdoc" - } - ] - }, - "comment_block": { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.scss" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.scss" - } - }, - "name": "comment.block.scss" - }, - "comment_line": { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.scss" - } - }, - "end": "\\n", - "name": "comment.line.scss" - }, - "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" - } - ] - }, - "conditional_operators": { - "patterns": [ - { - "include": "#comparison_operators" - }, - { - "include": "#logical_operators" - } - ] - }, - "comparison_operators": { - "match": "==|!=|<=|>=|<|>", - "name": "keyword.operator.comparison.scss" - }, - "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" - }, - { - "match": "\\b([\\w-]+)\\s*(:)", - "captures": { - "1": { - "name": "support.type.map.key.scss" - }, - "2": { - "name": "punctuation.separator.key-value.scss" - } - } - }, - { - "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" - } - ] - }, - "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" - } - }, - "end": "\\s*(;|(?=}|\\)))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.rule.scss" - } - }, - "contentName": "meta.property-value.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": { - "match": "(?xi)\n(\\[)\n\\s*\n(\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+?\n)\n(?:\n \\s*([~|^$*]?=)\\s*\n (?:\n (\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n )\n |\n ((\")(.*?)(\"))\n |\n ((')(.*?)('))\n )\n)?\n\\s*\n(\\])", - "name": "meta.attribute-selector.scss", - "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" - } - } - }, - "selector_class": { - "match": "(?x)\n(\\.) # Valid class-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n | ; # - A semicolon\n)", - "name": "entity.other.attribute-name.class.css", - "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" - } - ] - } - } - }, - "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": { - "match": "(?x)\n(\\#) # Valid id-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.id.css", - "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" - } - ] - } - } - }, - "selector_placeholder": { - "match": "(?x)\n(%) # Valid placeholder-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.\\$ # Possible start of interpolation module scope variable\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= ; # - End of statement\n | $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.placeholder.css", - "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" - } - ] - } - } - }, - "parent_selector_suffix": { - "match": "(?x)\n(?<=&)\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.parent-selector-suffix.css", - "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" - } - ] - } - } - }, - "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*:)", - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.scss" - } - }, - "contentName": "meta.definition.variable.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": [ - { - "match": "\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b", - "captures": { - "1": { - "name": "variable.scss" - }, - "2": { - "name": "punctuation.access.module.scss" - }, - "3": { - "name": "variable.scss" - } - } - }, - { - "match": "(\\$|\\-\\-)[A-Za-z0-9_-]+\\b", - "name": "variable.scss" - } - ] - } - } -} diff --git a/lib/grammars/shaderlab.tmLanguage.json b/lib/grammars/shaderlab.tmLanguage.json deleted file mode 100644 index 5913b10..0000000 --- a/lib/grammars/shaderlab.tmLanguage.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/shaderlab.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/tgjones/shaders-tmLanguage/commit/c72c8b39380ba5a86c58ceed053b5d965ebf38b3", - "name": "shaderlab", - "scopeName": "source.shaderlab", - "patterns": [ - { - "name": "comment.line.double-slash.shaderlab", - "begin": "//", - "end": "$" - }, - { - "name": "support.type.basic.shaderlab", - "match": "\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b" - }, - { - "include": "#numbers" - }, - { - "name": "storage.type.structure.shaderlab", - "match": "\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b" - }, - { - "name": "support.type.propertyname.shaderlab", - "match": "\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b" - }, - { - "name": "support.constant.property-value.shaderlab", - "match": "\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b" - }, - { - "name": "support.constant.property-value.comparisonfunction.shaderlab", - "match": "\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b" - }, - { - "name": "support.constant.property-value.stenciloperation.shaderlab", - "match": "\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b" - }, - { - "name": "support.constant.property-value.texturecombiners.shaderlab", - "match": "\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b" - }, - { - "name": "support.constant.property-value.fog.shaderlab", - "match": "\\b(?i:Global|Linear|Exp2|Exp)\\b" - }, - { - "name": "support.constant.property-value.bindchannels.shaderlab", - "match": "\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b" - }, - { - "name": "support.constant.property-value.blendoperations.shaderlab", - "match": "\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b" - }, - { - "name": "support.constant.property-value.blendfactors.shaderlab", - "match": "\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b" - }, - { - "name": "support.variable.reference.shaderlab", - "match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")" - }, - { - "name": "meta.attribute.shaderlab", - "begin": "(\\[)", - "end": "(\\])", - "patterns": [ - { - "name": "support.type.attributename.shaderlab", - "match": "\\G([a-zA-Z]+)\\b" - }, - { - "include": "#numbers" - } - ] - }, - { - "name": "support.variable.declaration.shaderlab", - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(" - }, - { - "name": "meta.cgblock", - "begin": "\\b(CGPROGRAM|CGINCLUDE)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other" - } - }, - "end": "\\b(ENDCG)\\b", - "endCaptures": { - "1": { - "name": "keyword.other" - } - }, - "patterns": [ - { - "include": "#hlsl-embedded" - } - ] - }, - { - "name": "meta.hlslblock", - "begin": "\\b(HLSLPROGRAM|HLSLINCLUDE)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other" - } - }, - "end": "\\b(ENDHLSL)\\b", - "endCaptures": { - "1": { - "name": "keyword.other" - } - }, - "patterns": [ - { - "include": "#hlsl-embedded" - } - ] - }, - { - "name": "string.quoted.double.shaderlab", - "begin": "\"", - "end": "\"" - } - ], - "repository": { - "numbers": { - "patterns": [ - { - "name": "constant.numeric.shaderlab", - "match": "\\b([0-9]+\\.?[0-9]*)\\b" - } - ] - }, - "hlsl-embedded": { - "patterns": [ - { - "include": "source.hlsl" - }, - { - "name": "storage.type.basic.shaderlab", - "match": "\\b(fixed([1-4](x[1-4])?)?)\\b" - }, - { - "name": "support.variable.transformations.shaderlab", - "match": "\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b" - }, - { - "name": "support.variable.camera.shaderlab", - "match": "\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b" - }, - { - "name": "support.variable.time.shaderlab", - "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b" - }, - { - "name": "support.variable.lighting.shaderlab", - "match": "\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b" - }, - { - "name": "support.variable.fog.shaderlab", - "match": "\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b" - }, - { - "name": "support.variable.various.shaderlab", - "match": "\\b(unity_LODFade)\\b" - }, - { - "name": "support.variable.preprocessor.targetplatform.shaderlab", - "match": "\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b" - }, - { - "name": "support.variable.preprocessor.targetmodel.shaderlab", - "match": "\\b(SHADER_TARGET)\\b" - }, - { - "name": "support.variable.preprocessor.unityversion.shaderlab", - "match": "\\b(UNITY_VERSION)\\b" - }, - { - "name": "support.variable.preprocessor.platformdifference.shaderlab", - "match": "\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b" - }, - { - "name": "support.variable.preprocessor.texture2D.shaderlab", - "match": "\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b" - }, - { - "name": "support.class.structures.shaderlab", - "match": "\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b" - }, - { - "name": "support.class.surface.shaderlab", - "match": "\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b" - } - ] - } - } -} diff --git a/lib/grammars/shellscript.tmLanguage.json b/lib/grammars/shellscript.tmLanguage.json deleted file mode 100644 index 86eec28..0000000 --- a/lib/grammars/shellscript.tmLanguage.json +++ /dev/null @@ -1,2009 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-shell-syntax/blob/master/autogenerated/shell.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-shell-syntax/commit/1bad17d8badf6283125aaa7c31be06ba64146a0f", - "name": "shellscript", - "scopeName": "source.shell", - "patterns": [ - { - "include": "#initial_context" - } - ], - "repository": { - "alias_statement": { - "begin": "(alias)[ \\t]*+[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:export|declare|typeset|local|readonly)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))", - "end": "(?:(?= |\\t|$)|(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n))", - "beginCaptures": { - "1": { - "name": "storage.type.alias.shell" - }, - "2": { - "name": "storage.modifier.$2.shell" - }, - "3": { - "name": "variable.other.assignment.shell" - }, - "4": { - "name": "punctuation.definition.array.access.shell" - }, - "5": { - "name": "variable.other.assignment.shell" - }, - "6": { - "name": "punctuation.definition.array.access.shell" - }, - "7": { - "name": "keyword.operator.assignment.shell" - }, - "8": { - "name": "keyword.operator.assignment.compound.shell" - }, - "9": { - "name": "keyword.operator.assignment.compound.shell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.semicolon.shell" - }, - "2": { - "name": "punctuation.separator.statement.and.shell" - }, - "3": { - "name": "punctuation.separator.statement.or.shell" - }, - "4": { - "name": "punctuation.separator.statement.background.shell" - } - }, - "name": "meta.expression.assignment.shell", - "patterns": [ - { - "include": "#normal_statement_context" - } - ] - }, - "argument": { - "begin": "[ \\t]++(?!(?:&|\\||\\(|\\[|#|\\n|$|;))", - "end": "(?= |\\t|;|\\||&|$|\\n|\\)|\\`)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.argument.shell", - "patterns": [ - { - "include": "#argument_context" - }, - { - "include": "#line_continuation" - } - ] - }, - "argument_context": { - "patterns": [ - { - "match": "[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>))", - "captures": { - "1": { - "name": "string.unquoted.argument.shell", - "patterns": [ - { - "match": "\\*", - "name": "variable.language.special.wildcard.shell" - }, - { - "include": "#variable" - }, - { - "include": "#numeric_literal" - }, - { - "match": "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)", - "captures": { - "1": { - "name": "constant.language.$1.shell" - } - } - } - ] - } - } - }, - { - "include": "#normal_statement_context" - } - ] - }, - "assignment": { - "patterns": [ - { - "begin": "[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:export|declare|typeset|local|readonly)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))[ \\t]*+(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "storage.modifier.$1.shell" - }, - "2": { - "name": "variable.other.assignment.shell" - }, - "3": { - "name": "punctuation.definition.array.access.shell" - }, - "4": { - "name": "variable.other.assignment.shell" - }, - "5": { - "name": "punctuation.definition.array.access.shell" - }, - "6": { - "name": "keyword.operator.assignment.shell" - }, - "7": { - "name": "keyword.operator.assignment.compound.shell" - }, - "8": { - "name": "keyword.operator.assignment.compound.shell" - }, - "9": { - "name": "punctuation.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.shell" - } - }, - "name": "meta.expression.assignment.shell", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#argument_context" - } - ] - }, - { - "begin": "[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:export|declare|typeset|local|readonly)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))", - "end": "(?:(?= |\\t|$)|(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n))", - "beginCaptures": { - "1": { - "name": "storage.modifier.$1.shell" - }, - "2": { - "name": "variable.other.assignment.shell" - }, - "3": { - "name": "punctuation.definition.array.access.shell" - }, - "4": { - "name": "variable.other.assignment.shell" - }, - "5": { - "name": "punctuation.definition.array.access.shell" - }, - "6": { - "name": "keyword.operator.assignment.shell" - }, - "7": { - "name": "keyword.operator.assignment.compound.shell" - }, - "8": { - "name": "keyword.operator.assignment.compound.shell" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.semicolon.shell" - }, - "2": { - "name": "punctuation.separator.statement.and.shell" - }, - "3": { - "name": "punctuation.separator.statement.or.shell" - }, - "4": { - "name": "punctuation.separator.statement.background.shell" - } - }, - "name": "meta.expression.assignment.shell", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#argument_context" - } - ] - } - ] - }, - "basic_command_name": { - "match": "(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?:((?<=^|;|&|[ \\t])(?:export|declare|typeset|local|readonly)(?=[ \\t]|;|&|$))|((?!\"|'|\\\\\\n?$)[^!'\" \\t\\n\\r]+?))(?:(?= |\\t)|(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))", - "captures": { - "1": { - "name": "storage.modifier.$1.shell" - }, - "2": { - "name": "entity.name.function.call.shell entity.name.command.shell", - "patterns": [ - { - "match": "(?<!\\w)(?:return|break)(?!\\w)", - "name": "keyword.control.$0.shell" - }, - { - "match": "(?<!\\w)(?:unfunction|unsetopt|autoload|suspend|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/)(?!\\w)", - "name": "support.function.builtin.shell" - }, - { - "include": "#variable" - } - ] - } - }, - "name": "meta.statement.command.name.basic.shell" - }, - "block_comment": { - "begin": "\\s*+(\\/\\*)", - "end": "\\*\\/", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.shell" - } - }, - "name": "comment.block.shell" - }, - "boolean": { - "match": "\\b(?:true|false)\\b", - "name": "constant.language.$0.shell" - }, - "case-clause": { - "patterns": [ - { - "begin": "(?=\\S)", - "end": ";;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.case-clause.shell" - } - }, - "name": "meta.scope.case-clause.shell", - "patterns": [ - { - "begin": "\\(|(?=\\S)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.case-pattern.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.case-pattern.shell" - } - }, - "name": "meta.scope.case-pattern.shell", - "patterns": [ - { - "match": "\\|", - "name": "punctuation.separator.pipe-sign.shell" - }, - { - "include": "#string" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#pathname" - } - ] - }, - { - "begin": "(?<=\\))", - "end": "(?=;;)", - "name": "meta.scope.case-clause-body.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ] - } - ] - }, - "comment": { - "match": "(?:^|[ \\t]++)(?:((#!).*)|((#).*))", - "captures": { - "1": { - "name": "comment.line.number-sign.shell meta.shebang.shell" - }, - "2": { - "name": "punctuation.definition.comment.shebang.shell" - }, - "3": { - "name": "comment.line.number-sign.shell" - }, - "4": { - "name": "punctuation.definition.comment.shell" - } - } - }, - "comments": { - "patterns": [ - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - } - ] - }, - "compound-command": { - "patterns": [ - { - "begin": "\\[{1,2}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.logical-expression.shell" - } - }, - "end": "\\]{1,2}", - "endCaptures": { - "0": { - "name": "punctuation.definition.logical-expression.shell" - } - }, - "name": "meta.scope.logical-expression.shell", - "patterns": [ - { - "include": "#logical-expression" - }, - { - "include": "#initial_context" - } - ] - }, - { - "begin": "\\({2}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "\\){2}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.other.math.shell", - "patterns": [ - { - "include": "#math" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.subshell.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.subshell.shell" - } - }, - "name": "meta.scope.subshell.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<=\\s|^){(?=\\s|$)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.shell" - } - }, - "end": "(?<=^|;)\\s*(})", - "endCaptures": { - "1": { - "name": "punctuation.definition.group.shell" - } - }, - "name": "meta.scope.group.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ] - }, - "continuation_of_double_quoted_command_name": { - "begin": "\\G(?<=\")", - "end": "\"", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" - } - }, - "contentName": "meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command", - "patterns": [ - { - "match": "\\\\[\\$\\n`\"\\\\]", - "name": "constant.character.escape.shell" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - } - ] - }, - "continuation_of_single_quoted_command_name": { - "begin": "\\G(?<=')", - "end": "'", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" - } - }, - "contentName": "meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command" - }, - "custom_command_names": { - "patterns": [] - }, - "custom_commands": { - "patterns": [] - }, - "double_quote_context": { - "patterns": [ - { - "match": "\\\\[\\$`\"\\\\\\n]", - "name": "constant.character.escape.shell" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - } - ] - }, - "double_quote_escape_char": { - "match": "\\\\[\\$`\"\\\\\\n]", - "name": "constant.character.escape.shell" - }, - "function_definition": { - "begin": "[ \\t]*+(?:(\\bfunction\\b)[ \\t]*+([^ \\t\\n\\r\\(\\)=]+)(?:(\\()[ \\t]*+(\\)))?|([^ \\t\\n\\r\\(\\)=]+)[ \\t]*+(\\()[ \\t]*+(\\)))", - "end": "(?<=\\}|\\))", - "beginCaptures": { - "1": { - "name": "storage.type.function.shell" - }, - "2": { - "name": "entity.name.function.shell" - }, - "3": { - "name": "punctuation.definition.arguments.shell" - }, - "4": { - "name": "punctuation.definition.arguments.shell" - }, - "5": { - "name": "entity.name.function.shell" - }, - "6": { - "name": "punctuation.definition.arguments.shell" - }, - "7": { - "name": "punctuation.definition.arguments.shell" - } - }, - "endCaptures": {}, - "name": "meta.function.shell", - "patterns": [ - { - "match": "\\G(?:\\t| |\\n)" - }, - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" - } - }, - "name": "meta.function.body.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" - } - }, - "name": "meta.function.body.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ], - "applyEndPatternLast": 1 - }, - "heredoc": { - "patterns": [ - { - "begin": "((?<!<)<<-)[ \\t]*+(\"|')[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(?:\\2)(.*)", - "end": "^\\t*(?:\\3)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.heredoc.shell" - }, - "2": {}, - "3": { - "name": "punctuation.definition.string.heredoc.shell" - }, - "4": { - "patterns": [ - { - "include": "#normal_statement_context" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.heredoc.shell" - } - }, - "contentName": "string.quoted.heredoc.indent", - "patterns": [] - }, - { - "begin": "((?<!<)<<(?!<))[ \\t]*+(\"|')[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(?:\\2)(.*)", - "end": "^(?:\\3)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.heredoc.shell" - }, - "2": {}, - "3": { - "name": "punctuation.definition.string.heredoc.shell" - }, - "4": { - "patterns": [ - { - "include": "#normal_statement_context" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.heredoc.shell" - } - }, - "contentName": "string.quoted.heredoc.no-indent", - "patterns": [] - }, - { - "begin": "((?<!<)<<-)[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(.*)", - "end": "^\\t*(?:\\2)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.heredoc.shell" - }, - "2": { - "name": "punctuation.definition.string.heredoc.shell" - }, - "3": { - "patterns": [ - { - "include": "#normal_statement_context" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.heredoc.shell" - } - }, - "contentName": "string.unquoted.heredoc.indent", - "patterns": [ - { - "include": "#double_quote_escape_char" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "((?<!<)<<(?!<))[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(.*)", - "end": "^(?:\\2)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.heredoc.shell" - }, - "2": { - "name": "punctuation.definition.string.heredoc.shell" - }, - "3": { - "patterns": [ - { - "include": "#normal_statement_context" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.heredoc.shell" - } - }, - "contentName": "string.unquoted.heredoc.no-indent", - "patterns": [ - { - "include": "#double_quote_escape_char" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - } - ] - } - ] - }, - "herestring": { - "patterns": [ - { - "begin": "(<<<)\\s*(('))", - "beginCaptures": { - "1": { - "name": "keyword.operator.herestring.shell" - }, - "2": { - "name": "string.quoted.single.shell" - }, - "3": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "(')", - "endCaptures": { - "0": { - "name": "string.quoted.single.shell" - }, - "1": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "meta.herestring.shell", - "contentName": "string.quoted.single.shell" - }, - { - "begin": "(<<<)\\s*((\"))", - "beginCaptures": { - "1": { - "name": "keyword.operator.herestring.shell" - }, - "2": { - "name": "string.quoted.double.shell" - }, - "3": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "(\")", - "endCaptures": { - "0": { - "name": "string.quoted.double.shell" - }, - "1": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "meta.herestring.shell", - "contentName": "string.quoted.double.shell", - "patterns": [ - { - "include": "#double_quote_context" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.herestring.shell" - }, - "2": { - "name": "string.unquoted.herestring.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - }, - "match": "(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)", - "name": "meta.herestring.shell" - } - ] - }, - "initial_context": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pipeline" - }, - { - "include": "#normal_statement_seperator" - }, - { - "include": "#logical_expression_double" - }, - { - "include": "#logical_expression_single" - }, - { - "include": "#misc_ranges" - }, - { - "include": "#loop" - }, - { - "include": "#function_definition" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#heredoc" - }, - { - "include": "#herestring" - }, - { - "include": "#redirection" - }, - { - "include": "#pathname" - }, - { - "include": "#keyword" - }, - { - "include": "#alias_statement" - }, - { - "include": "#normal_statement" - }, - { - "include": "#string" - }, - { - "include": "#support" - } - ] - }, - "inline_comment": { - "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))", - "captures": { - "1": { - "name": "comment.block.shell punctuation.definition.comment.begin.shell" - }, - "2": { - "name": "comment.block.shell" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.shell punctuation.definition.comment.end.shell" - }, - { - "match": "\\*", - "name": "comment.block.shell" - } - ] - } - } - }, - "interpolation": { - "patterns": [ - { - "begin": "\\$\\({2}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.evaluation.arithmetic.begin.shell" - } - }, - "end": "\\)\\s*\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.evaluation.arithmetic.end.shell" - } - }, - "name": "string.other.math.shell", - "patterns": [ - { - "include": "#math" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.evaluation.backticks.shell" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.evaluation.backticks.shell" - } - }, - "name": "string.interpolated.backtick.shell", - "patterns": [ - { - "match": "\\\\[`\\\\$]", - "name": "constant.character.escape.shell" - }, - { - "begin": "(?<=\\W)(?=#)(?!#{)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.shell" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.shell" - } - }, - "end": "(?=`)", - "name": "comment.line.number-sign.shell" - } - ] - }, - { - "include": "#initial_context" - } - ] - }, - { - "begin": "\\$\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.evaluation.parens.begin.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.evaluation.parens.end.shell" - } - }, - "name": "string.interpolated.dollar.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ] - }, - "keyword": { - "patterns": [ - { - "match": "(?<=^|;|&| |\\t)(?:then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)(?= |\\t|;|&|$)", - "name": "keyword.control.$0.shell" - } - ] - }, - "line_comment": { - "begin": "\\s*+(\\/\\/)", - "end": "(?<=\\n)(?<!\\\\\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.shell" - } - }, - "endCaptures": {}, - "name": "comment.line.double-slash.shell", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - "line_continuation": { - "match": "\\\\(?=\\n)", - "name": "constant.character.escape.line-continuation.shell" - }, - "logical-expression": { - "patterns": [ - { - "comment": "do we want a special rule for ( expr )?", - "match": "=[=~]?|!=?|<|>|&&|\\|\\|", - "name": "keyword.operator.logical.shell" - }, - { - "match": "(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b", - "name": "keyword.operator.logical.shell" - } - ] - }, - "logical_expression_context": { - "patterns": [ - { - "include": "#regex_comparison" - }, - { - "include": "#logical-expression" - }, - { - "include": "#logical_expression_single" - }, - { - "include": "#logical_expression_double" - }, - { - "include": "#comment" - }, - { - "include": "#boolean" - }, - { - "include": "#redirect_number" - }, - { - "include": "#numeric_literal" - }, - { - "include": "#pipeline" - }, - { - "include": "#normal_statement_seperator" - }, - { - "include": "#string" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#heredoc" - }, - { - "include": "#herestring" - }, - { - "include": "#pathname" - }, - { - "include": "#keyword" - }, - { - "include": "#support" - } - ] - }, - "logical_expression_double": { - "begin": "\\[\\[", - "end": "\\]\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.logical-expression.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.logical-expression.shell" - } - }, - "name": "meta.scope.logical-expression.shell", - "patterns": [ - { - "include": "#logical_expression_context" - } - ] - }, - "logical_expression_single": { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.logical-expression.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.logical-expression.shell" - } - }, - "name": "meta.scope.logical-expression.shell", - "patterns": [ - { - "include": "#logical_expression_context" - } - ] - }, - "loop": { - "patterns": [ - { - "begin": "(?<=^|;|&|\\s)(for)\\s+(?=\\({2})", - "beginCaptures": { - "1": { - "name": "keyword.control.shell" - } - }, - "end": "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", - "endCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "name": "meta.scope.for-loop.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.shell" - }, - "2": { - "name": "variable.other.loop.shell", - "patterns": [ - { - "include": "#string" - } - ] - }, - "3": { - "name": "keyword.control.shell" - } - }, - "end": "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", - "endCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "name": "meta.scope.for-in-loop.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.shell" - } - }, - "end": "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", - "endCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "name": "meta.scope.while-loop.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.shell" - }, - "2": { - "name": "variable.other.loop.shell" - } - }, - "end": "(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))", - "endCaptures": { - "1": { - "name": "keyword.control.shell" - } - }, - "name": "meta.scope.select-block.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<=^|;|&|\\s)case(?=\\s|;|&|$)", - "beginCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "end": "(?<=^|;|&|\\s)esac(?=\\s|;|&|$)", - "endCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "name": "meta.scope.case-block.shell", - "patterns": [ - { - "begin": "(?<=^|;|&|\\s)in(?=\\s|;|&|$)", - "beginCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "end": "(?<=^|;|&|\\s)(?=esac(\\s|;|&|$))", - "name": "meta.scope.case-body.shell", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#case-clause" - } - ] - }, - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<=^|;|&|\\s)if(?=\\s|;|&|$)", - "beginCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "end": "(?<=^|;|&|\\s)fi(?=\\s|;|&|$)", - "endCaptures": { - "0": { - "name": "keyword.control.shell" - } - }, - "name": "meta.scope.if-block.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ] - }, - "math": { - "patterns": [ - { - "include": "#variable" - }, - { - "match": "\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", - "name": "keyword.operator.arithmetic.shell" - }, - { - "match": "0[xX][0-9A-Fa-f]+", - "name": "constant.numeric.hex.shell" - }, - { - "match": "0\\d+", - "name": "constant.numeric.octal.shell" - }, - { - "match": "\\d{1,2}#[0-9a-zA-Z@_]+", - "name": "constant.numeric.other.shell" - }, - { - "match": "\\d+", - "name": "constant.numeric.integer.shell" - } - ] - }, - "misc_ranges": { - "patterns": [ - { - "include": "#logical_expression_single" - }, - { - "include": "#logical_expression_double" - }, - { - "begin": "\\(\\(", - "end": "\\)\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.arithmetic.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arithmetic.shell" - } - }, - "name": "meta.arithmetic.shell", - "patterns": [ - { - "include": "#math" - } - ] - }, - { - "begin": "(?<!=)\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.subshell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.subshell" - } - }, - "name": "meta.scope.subshell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "begin": "(?<![^ \\t])({)", - "end": "}", - "beginCaptures": { - "1": { - "name": "punctuation.definition.group.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.group.shell" - } - }, - "name": "meta.scope.group.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ] - }, - "modifiers": { - "match": "(?<=^|;|&|[ \\t])(?:export|declare|typeset|local|readonly)(?=[ \\t]|;|&|$)", - "name": "storage.modifier.$0.shell" - }, - "normal_statement": { - "begin": "(?!^[ \\t]*+$)(?:(?<=^if | if |\\tif |^elif | elif |\\telif |^then | then |\\tthen |^else | else |\\telse |^while | while |\\twhile |^do | do |\\tdo )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))[ \\t]*+(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$)", - "end": "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.statement.shell", - "patterns": [ - { - "include": "#function_definition" - }, - { - "include": "#assignment" - }, - { - "begin": "[ \\t]*+(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?!\\\\\\n?$)", - "end": "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.statement.command.shell", - "patterns": [ - { - "begin": "\\G", - "end": "(?= |\\t|;|\\||&|$|\\n|\\)|\\`)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.statement.command.name.shell", - "patterns": [ - { - "include": "#modifiers" - }, - { - "match": "(?<!\\w)(?:return|break)(?!\\w)", - "name": "entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell" - }, - { - "match": "(?<!\\w)(?:unfunction|unsetopt|autoload|suspend|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/)(?!\\w)", - "name": "entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell" - }, - { - "include": "#variable" - }, - { - "match": "(?<=\\G|'|\"|\\}|\\))([^ \\n\\t\\r\"'=;&\\|`\\)\\{]+)", - "captures": { - "1": { - "name": "entity.name.function.call.shell entity.name.command.shell" - } - } - }, - { - "begin": "(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))((?:\\$)?)((?:(\")|(')))", - "end": "(?<!\\G)(?<=(?:\\2))", - "beginCaptures": { - "1": { - "name": "meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell" - }, - "2": {}, - "3": { - "name": "meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" - }, - "4": { - "name": "meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" - } - }, - "endCaptures": {}, - "patterns": [ - { - "include": "#continuation_of_single_quoted_command_name" - }, - { - "include": "#continuation_of_double_quoted_command_name" - } - ] - }, - { - "include": "#line_continuation" - } - ] - }, - { - "include": "#line_continuation" - }, - { - "include": "#option" - }, - { - "include": "#argument" - }, - { - "include": "#statement_context" - }, - { - "include": "#string" - } - ] - }, - { - "include": "#line_continuation" - }, - { - "include": "#normal_statement_context" - } - ] - }, - "normal_statement_context": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pipeline" - }, - { - "include": "#normal_statement_seperator" - }, - { - "include": "#misc_ranges" - }, - { - "include": "#boolean" - }, - { - "include": "#redirect_number" - }, - { - "include": "#numeric_literal" - }, - { - "include": "#string" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#heredoc" - }, - { - "include": "#herestring" - }, - { - "include": "#redirection" - }, - { - "include": "#pathname" - }, - { - "include": "#keyword" - }, - { - "include": "#support" - } - ] - }, - "normal_statement_seperator": { - "match": "(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n)", - "captures": { - "1": { - "name": "punctuation.terminator.statement.semicolon.shell" - }, - "2": { - "name": "punctuation.separator.statement.and.shell" - }, - "3": { - "name": "punctuation.separator.statement.or.shell" - }, - "4": { - "name": "punctuation.separator.statement.background.shell" - } - } - }, - "numeric_literal": { - "match": "[ \\t]*+(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+\\.\\d+))|(-?\\d+))(?!>)", - "captures": { - "1": { - "name": "constant.numeric.shell constant.numeric.hex.shell" - }, - "2": { - "name": "constant.numeric.shell constant.numeric.octal.shell" - }, - "3": { - "name": "constant.numeric.shell constant.numeric.other.shell" - }, - "4": { - "name": "constant.numeric.shell constant.numeric.integer.shell" - }, - "5": { - "name": "constant.numeric.shell constant.numeric.integer.shell" - } - } - }, - "option": { - "begin": "[ \\t]++(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t])))", - "end": "(?:(?=[ \\t])|(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))", - "beginCaptures": { - "1": { - "name": "string.unquoted.argument.shell constant.other.option.dash.shell" - }, - "2": { - "name": "string.unquoted.argument.shell constant.other.option.shell" - } - }, - "endCaptures": {}, - "contentName": "string.unquoted.argument constant.other.option", - "patterns": [ - { - "include": "#option_context" - } - ] - }, - "option_context": { - "patterns": [ - { - "include": "#misc_ranges" - }, - { - "include": "#string" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#heredoc" - }, - { - "include": "#herestring" - }, - { - "include": "#redirection" - }, - { - "include": "#pathname" - }, - { - "include": "#keyword" - }, - { - "include": "#support" - } - ] - }, - "pathname": { - "patterns": [ - { - "match": "(?<=\\s|:|=|^)~", - "name": "keyword.operator.tilde.shell" - }, - { - "match": "\\*|\\?", - "name": "keyword.operator.glob.shell" - }, - { - "begin": "([?*+@!])(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.extglob.shell" - }, - "2": { - "name": "punctuation.definition.extglob.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.extglob.shell" - } - }, - "name": "meta.structure.extglob.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - } - ] - }, - "pipeline": { - "patterns": [ - { - "match": "(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)", - "name": "keyword.other.shell" - }, - { - "match": "[|!]", - "name": "keyword.operator.pipe.shell" - } - ] - }, - "redirect_number": { - "match": "(?<=[ \\t])(?:(1)|(2)|(\\d+))(?=>)", - "captures": { - "1": { - "name": "keyword.operator.redirect.stdout.shell" - }, - "2": { - "name": "keyword.operator.redirect.stderr.shell" - }, - "3": { - "name": "keyword.operator.redirect.$3.shell" - } - } - }, - "redirection": { - "patterns": [ - { - "begin": "[><]\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.interpolated.process-substitution.shell", - "patterns": [ - { - "include": "#initial_context" - } - ] - }, - { - "match": "(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])", - "name": "keyword.operator.redirect.shell" - } - ] - }, - "regex_comparison": { - "match": "\\=~", - "name": "keyword.operator.logical.regex.shell" - }, - "regexp": { - "patterns": [ - { - "match": ".+" - } - ] - }, - "simple_options": { - "match": "(?:[ \\t]++\\-\\w+)*", - "captures": { - "0": { - "patterns": [ - { - "match": "[ \\t]++(\\-)(\\w+)", - "captures": { - "1": { - "name": "string.unquoted.argument.shell constant.other.option.dash.shell" - }, - "2": { - "name": "string.unquoted.argument.shell constant.other.option.shell" - } - } - } - ] - } - } - }, - "start_of_command": { - "match": "[ \\t]*+(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?!\\\\\\n?$)" - }, - "start_of_double_quoted_command_name": { - "match": "(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?:[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>)))?(?:(?:\\$\")|\")", - "captures": { - "1": { - "name": "entity.name.function.call.shell entity.name.command.shell", - "patterns": [ - { - "match": "\\*", - "name": "variable.language.special.wildcard.shell" - }, - { - "include": "#variable" - }, - { - "include": "#numeric_literal" - }, - { - "match": "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)", - "captures": { - "1": { - "name": "constant.language.$1.shell" - } - } - } - ] - } - }, - "name": "meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" - }, - "start_of_single_quoted_command_name": { - "match": "(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?:[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>)))?(?:(?:\\$')|')", - "captures": { - "1": { - "name": "entity.name.function.call.shell entity.name.command.shell", - "patterns": [ - { - "match": "\\*", - "name": "variable.language.special.wildcard.shell" - }, - { - "include": "#variable" - }, - { - "include": "#numeric_literal" - }, - { - "match": "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)", - "captures": { - "1": { - "name": "constant.language.$1.shell" - } - } - } - ] - } - }, - "name": "meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" - }, - "string": { - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.shell" - }, - { - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.quoted.single.shell" - }, - { - "begin": "\\$?\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.quoted.double.shell", - "patterns": [ - { - "match": "\\\\[\\$\\n`\"\\\\]", - "name": "constant.character.escape.shell" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "\\$'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.quoted.single.dollar.shell", - "patterns": [ - { - "match": "\\\\(?:a|b|e|f|n|r|t|v|\\\\|')", - "name": "constant.character.escape.ansi-c.shell" - }, - { - "match": "\\\\[0-9]{3}\"", - "name": "constant.character.escape.octal.shell" - }, - { - "match": "\\\\x[0-9a-fA-F]{2}\"", - "name": "constant.character.escape.hex.shell" - }, - { - "match": "\\\\c.\"", - "name": "constant.character.escape.control-char.shell" - } - ] - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)", - "name": "support.function.builtin.shell" - } - ] - }, - "variable": { - "patterns": [ - { - "match": "(\\$)(\\@(?!\\w))", - "captures": { - "1": { - "name": "punctuation.definition.variable.shell variable.parameter.positional.all.shell" - }, - "2": { - "name": "variable.parameter.positional.all.shell" - } - } - }, - { - "match": "(\\$)([0-9](?!\\w))", - "captures": { - "1": { - "name": "punctuation.definition.variable.shell variable.parameter.positional.shell" - }, - "2": { - "name": "variable.parameter.positional.shell" - } - } - }, - { - "match": "(\\$)([-*#?$!0_](?!\\w))", - "captures": { - "1": { - "name": "punctuation.definition.variable.shell variable.language.special.shell" - }, - "2": { - "name": "variable.language.special.shell" - } - } - }, - { - "begin": "(\\$)(\\{)[ \\t]*+(?=\\d)", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "punctuation.definition.variable.shell variable.parameter.positional.shell" - }, - "2": { - "name": "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell" - } - }, - "contentName": "meta.parameter-expansion", - "patterns": [ - { - "match": "!|:[-=?]?|\\*|@|##|#|%%|%|\\/", - "name": "keyword.operator.expansion.shell" - }, - { - "match": "(\\[)[^\\]]+(\\])", - "captures": { - "1": { - "name": "punctuation.section.array.shell" - }, - "2": { - "name": "punctuation.section.array.shell" - } - } - }, - { - "match": "[0-9]+", - "name": "variable.parameter.positional.shell" - }, - { - "match": "(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)", - "name": "variable.other.normal.shell" - }, - { - "include": "#variable" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "(\\$)(\\{)", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "punctuation.definition.variable.shell" - }, - "2": { - "name": "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell" - } - }, - "contentName": "meta.parameter-expansion", - "patterns": [ - { - "match": "!|:[-=?]?|\\*|@|##|#|%%|%|\\/", - "name": "keyword.operator.expansion.shell" - }, - { - "match": "(\\[)[^\\]]+(\\])", - "captures": { - "1": { - "name": "punctuation.section.array.shell" - }, - "2": { - "name": "punctuation.section.array.shell" - } - } - }, - { - "match": "(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)", - "name": "variable.other.normal.shell" - }, - { - "include": "#variable" - }, - { - "include": "#string" - } - ] - }, - { - "match": "(\\$)(\\w+(?!\\w))", - "captures": { - "1": { - "name": "punctuation.definition.variable.shell variable.other.normal.shell" - }, - "2": { - "name": "variable.other.normal.shell" - } - } - } - ] - } - } -} diff --git a/lib/grammars/shellsession.tmLanguage.json b/lib/grammars/shellsession.tmLanguage.json deleted file mode 100644 index 66be461..0000000 --- a/lib/grammars/shellsession.tmLanguage.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "shellsession", - "scopeName": "text.shell-session", - "patterns": [ - { - "match": "(?x) ^ (?: ( (?:\\(\\S+\\)\\s*)? (?: sh\\S*? | \\w+\\S+[@:]\\S+(?:\\s+\\S+)? | \\[\\S+?[@:][^\\n]+?\\].*? ) ) \\s* )? ( [>$#%❯➜] | \\p{Greek} ) \\s+ (.*) $", - "captures": { - "1": { - "name": "entity.other.prompt-prefix.shell-session" - }, - "2": { - "name": "punctuation.separator.prompt.shell-session" - }, - "3": { - "name": "source.shell", - "patterns": [ - { - "include": "source.shell" - } - ] - } - } - }, - { - "name": "meta.output.shell-session", - "match": "^.+$" - } - ], - "fileTypes": ["sh-session"] -} diff --git a/lib/grammars/smalltalk.tmLanguage.json b/lib/grammars/smalltalk.tmLanguage.json deleted file mode 100644 index 6b6410a..0000000 --- a/lib/grammars/smalltalk.tmLanguage.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/smalltalk.tmbundle/blob/master/Syntaxes/SmallTalk.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "name": "smalltalk", - "foldingStartMarker": "\\[", - "foldingStopMarker": "^\\s*\\]|^\\s\\]", - "keyEquivalent": "^~S", - "fileTypes": ["st"], - "patterns": [ - { - "match": "\\$.", - "name": "constant.character.smalltalk" - }, - { - "match": "\\b(class)\\b", - "name": "storage.type.$1.smalltalk" - }, - { - "match": "\\b(extend|super|self)\\b", - "name": "storage.modifier.$1.smalltalk" - }, - { - "match": "\\b(yourself|new|Smalltalk)\\b", - "name": "keyword.control.$1.smalltalk" - }, - { - "match": ":=", - "name": "keyword.operator.assignment.smalltalk" - }, - { - "comment": "Parse the variable declaration like: |a b c|", - "match": "/^:\\w*\\s*\\|/", - "name": "constant.other.block.smalltalk" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.instance-variables.begin.smalltalk" - }, - "2": { - "patterns": [ - { - "match": "\\w+", - "name": "support.type.variable.declaration.smalltalk" - } - ] - }, - "3": { - "name": "punctuation.definition.instance-variables.end.smalltalk" - } - }, - "match": "(\\|)(\\s*\\w[\\w ]*)(\\|)" - }, - { - "captures": { - "1": { - "patterns": [ - { - "match": ":\\w+", - "name": "entity.name.function.block.smalltalk" - } - ] - } - }, - "comment": "Parse the blocks like: [ :a :b | ...... ]", - "match": "\\[((\\s+|:\\w+)*)\\|" - }, - { - "include": "#numeric" - }, - { - "match": "<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\^", - "name": "keyword.operator.comparison.smalltalk" - }, - { - "match": "(\\*|\\+|\\-|/|\\\\)", - "name": "keyword.operator.arithmetic.smalltalk" - }, - { - "match": "(?<=[ \\t])!+|\\bnot\\b|&|\\band\\b|\\||\\bor\\b", - "name": "keyword.operator.logical.smalltalk" - }, - { - "comment": "Fake reserved word -> main Smalltalk messages", - "match": "(?<!\\.)\\b(ensure|resume|retry|signal)\\b(?![?!])", - "name": "keyword.control.smalltalk" - }, - { - "comment": "Fake conditionals. Smalltalk Methods.", - "match": "ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:", - "name": "keyword.control.conditionals.smalltalk" - }, - { - "captures": { - "1": { - "name": "entity.other.inherited-class.smalltalk" - }, - "3": { - "name": "keyword.control.smalltalk" - }, - "4": { - "name": "entity.name.type.class.smalltalk" - } - }, - "match": "(\\w+)(\\s+(subclass:))\\s*(\\w*)", - "name": "meta.class.smalltalk" - }, - { - "begin": "\"", - "beginCaptures": [ - { - "name": "punctuation.definition.comment.begin.smalltalk" - } - ], - "end": "\"", - "endCaptures": [ - { - "name": "punctuation.definition.comment.end.smalltalk" - } - ], - "name": "comment.block.smalltalk" - }, - { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.smalltalk" - }, - { - "match": "\\b(nil)\\b", - "name": "constant.language.nil.smalltalk" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.smalltalk" - } - }, - "comment": "messages/methods", - "match": "(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)", - "name": "constant.other.messages.smalltalk" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.smalltalk" - } - }, - "comment": "symbols", - "match": "(#)[a-zA-Z_][a-zA-Z0-9_:]*", - "name": "constant.other.symbol.smalltalk" - }, - { - "begin": "#\\[", - "beginCaptures": [ - { - "name": "punctuation.definition.constant.begin.smalltalk" - } - ], - "end": "\\]", - "endCaptures": [ - { - "name": "punctuation.definition.constant.end.smalltalk" - } - ], - "name": "meta.array.byte.smalltalk", - "patterns": [ - { - "match": "[0-9]+(r[a-zA-Z0-9]+)?", - "name": "constant.numeric.integer.smalltalk" - }, - { - "match": "[^\\s\\]]+", - "name": "invalid.illegal.character-not-allowed-here.smalltalk" - } - ] - }, - { - "begin": "#\\(", - "beginCaptures": [ - { - "name": "punctuation.definition.constant.begin.smalltalk" - } - ], - "comment": "Array Constructor", - "end": "\\)", - "endCaptures": [ - { - "name": "punctuation.definition.constant.end.smalltalk" - } - ], - "name": "constant.other.array.smalltalk" - }, - { - "begin": "'", - "beginCaptures": [ - { - "name": "punctuation.definition.string.begin.smalltalk" - } - ], - "end": "'", - "endCaptures": [ - { - "name": "punctuation.definition.string.end.smalltalk" - } - ], - "name": "string.quoted.single.smalltalk" - }, - { - "match": "\\b[A-Z]\\w*\\b", - "name": "variable.other.constant.smalltalk" - } - ], - "repository": { - "numeric": { - "patterns": [ - { - "match": "(?<!\\w)[0-9]+\\.[0-9]+s[0-9]*", - "name": "constant.numeric.float.scaled.smalltalk" - }, - { - "match": "(?<!\\w)[0-9]+\\.[0-9]+([edq]-?[0-9]+)?", - "name": "constant.numeric.float.smalltalk" - }, - { - "match": "(?<!\\w)-?[0-9]+r[a-zA-Z0-9]+", - "name": "constant.numeric.integer.radix.smalltalk" - }, - { - "match": "(?<!\\w)-?[0-9]+([edq]-?[0-9]+)?", - "name": "constant.numeric.integer.smalltalk" - } - ] - } - }, - "scopeName": "source.smalltalk", - "uuid": "1ED64A34-BCB1-44E1-A0FE-84053003E232" -} diff --git a/lib/grammars/solidity.tmLanguage.json b/lib/grammars/solidity.tmLanguage.json deleted file mode 100644 index 30a4731..0000000 --- a/lib/grammars/solidity.tmLanguage.json +++ /dev/null @@ -1,1208 +0,0 @@ -{ - "fileTypes": ["sol"], - "name": "solidity", - "patterns": [ - { - "include": "#natspec" - }, - { - "include": "#declaration-userType" - }, - { - "include": "#comment" - }, - { - "include": "#operator" - }, - { - "include": "#global" - }, - { - "include": "#control" - }, - { - "include": "#constant" - }, - { - "include": "#primitive" - }, - { - "include": "#type-primitive" - }, - { - "include": "#type-modifier-extended-scope" - }, - { - "include": "#declaration" - }, - { - "include": "#function-call" - }, - { - "include": "#assembly" - }, - { - "include": "#punctuation" - } - ], - "repository": { - "natspec": { - "patterns": [ - { - "begin": "/\\*\\*", - "end": "\\*/", - "name": "comment.block.documentation", - "patterns": [ - { - "include": "#natspec-tags" - } - ] - }, - { - "begin": "///", - "end": "$", - "name": "comment.block.documentation", - "patterns": [ - { - "include": "#natspec-tags" - } - ] - } - ] - }, - "natspec-tags": { - "patterns": [ - { - "include": "#comment-todo" - }, - { - "include": "#natspec-tag-title" - }, - { - "include": "#natspec-tag-author" - }, - { - "include": "#natspec-tag-notice" - }, - { - "include": "#natspec-tag-dev" - }, - { - "include": "#natspec-tag-param" - }, - { - "include": "#natspec-tag-return" - }, - { - "include": "#natspec-tag-custom" - }, - { - "include": "#natspec-tag-inheritdoc" - } - ] - }, - "natspec-tag-title": { - "match": "(@title)\\b", - "name": "storage.type.title.natspec" - }, - "natspec-tag-author": { - "match": "(@author)\\b", - "name": "storage.type.author.natspec" - }, - "natspec-tag-notice": { - "match": "(@notice)\\b", - "name": "storage.type.dev.natspec" - }, - "natspec-tag-custom": { - "match": "(@custom:\\w*)\\b", - "name": "storage.type.dev.natspec" - }, - "natspec-tag-inheritdoc": { - "match": "(@inheritdoc)\\b", - "name": "storage.type.author.natspec" - }, - "natspec-tag-dev": { - "match": "(@dev)\\b", - "name": "storage.type.dev.natspec" - }, - "natspec-tag-param": { - "match": "(@param)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.param.natspec" - }, - "3": { - "name": "variable.other.natspec" - } - } - }, - "natspec-tag-return": { - "match": "(@return)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.return.natspec" - }, - "3": { - "name": "variable.other.natspec" - } - } - }, - "comment": { - "patterns": [ - { - "include": "#comment-line" - }, - { - "include": "#comment-block" - } - ] - }, - "comment-todo": { - "match": "(?i)\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\w+-disable|\\w+-suppress)\\b(?-i)", - "name": "keyword.comment.todo" - }, - "comment-line": { - "begin": "(?<!tp:)//", - "end": "$", - "name": "comment.line", - "patterns": [ - { - "include": "#comment-todo" - } - ] - }, - "comment-block": { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block", - "patterns": [ - { - "include": "#comment-todo" - } - ] - }, - "operator": { - "patterns": [ - { - "include": "#operator-logic" - }, - { - "include": "#operator-mapping" - }, - { - "include": "#operator-arithmetic" - }, - { - "include": "#operator-binary" - }, - { - "include": "#operator-assignment" - } - ] - }, - "operator-logic": { - "match": "(==|\\!=|<(?!<)|<=|>(?!>)|>=|\\&\\&|\\|\\||\\:(?!=)|\\?|\\!)", - "name": "keyword.operator.logic" - }, - "operator-mapping": { - "match": "(=>)", - "name": "keyword.operator.mapping" - }, - "operator-arithmetic": { - "match": "(\\+|\\-|\\/|\\*)", - "name": "keyword.operator.arithmetic" - }, - "operator-binary": { - "match": "(\\^|\\&|\\||<<|>>)", - "name": "keyword.operator.binary" - }, - "operator-assignment": { - "match": "(\\:?=)", - "name": "keyword.operator.assignment" - }, - "control": { - "patterns": [ - { - "include": "#control-flow" - }, - { - "include": "#control-using" - }, - { - "include": "#control-import" - }, - { - "include": "#control-pragma" - }, - { - "include": "#control-underscore" - }, - { - "include": "#control-unchecked" - }, - { - "include": "#control-other" - } - ] - }, - "control-flow": { - "patterns": [ - { - "match": "\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\b", - "name": "keyword.control.flow" - }, - { - "begin": "\\b(returns)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.return" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#declaration-function-parameters" - } - ] - } - ] - }, - "control-using": { - "patterns": [ - { - "match": "\\b(using)\\b\\s+\\b([A-Za-z\\d_]+)\\b\\s+\\b(for)\\b\\s+\\b([A-Za-z\\d_]+)", - "captures": { - "1": { - "name": "keyword.control.using" - }, - "2": { - "name": "entity.name.type.library" - }, - "3": { - "name": "keyword.control.for" - }, - "4": { - "name": "entity.name.type" - } - } - }, - { - "match": "\\b(using)\\b", - "name": "keyword.control.using" - } - ] - }, - "control-import": { - "patterns": [ - { - "begin": "\\b(import)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.import" - } - }, - "end": "(?=\\;)", - "patterns": [ - { - "begin": "((?=\\{))", - "end": "((?=\\}))", - "patterns": [ - { - "match": "\\b(\\w+)\\b", - "name": "entity.name.type.interface" - } - ] - }, - { - "match": "\\b(from)\\b", - "name": "keyword.control.import.from" - }, - { - "include": "#string" - }, - { - "include": "#punctuation" - } - ] - }, - { - "match": "\\b(import)\\b", - "name": "keyword.control.import" - } - ] - }, - "control-unchecked": { - "match": "\\b(unchecked)\\b", - "name": "keyword.control.unchecked" - }, - "control-pragma": { - "match": "\\b(pragma)(?:\\s+([A-Za-z_]\\w+)\\s+([^\\s]+))?\\b", - "captures": { - "1": { - "name": "keyword.control.pragma" - }, - "2": { - "name": "entity.name.tag.pragma" - }, - "3": { - "name": "constant.other.pragma" - } - } - }, - "control-underscore": { - "match": "\\b(_)\\b", - "name": "constant.other.underscore" - }, - "control-other": { - "match": "\\b(new|delete|emit)\\b", - "name": "keyword.control" - }, - "constant": { - "patterns": [ - { - "include": "#constant-boolean" - }, - { - "include": "#constant-time" - }, - { - "include": "#constant-currency" - } - ] - }, - "constant-boolean": { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean" - }, - "constant-time": { - "match": "\\b(seconds|minutes|hours|days|weeks|years)\\b", - "name": "constant.language.time" - }, - "constant-currency": { - "match": "\\b(ether|wei|gwei|finney|szabo)\\b", - "name": "constant.language.currency" - }, - "number": { - "patterns": [ - { - "include": "#number-decimal" - }, - { - "include": "#number-hex" - }, - { - "include": "#number-scientific" - } - ] - }, - "number-decimal": { - "match": "\\b([0-9_]+(\\.[0-9_]+)?)\\b", - "name": "constant.numeric.decimal" - }, - "number-hex": { - "match": "\\b(0[xX][a-fA-F0-9]+)\\b", - "name": "constant.numeric.hexadecimal" - }, - "number-scientific": { - "match": "\\b(?:0\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\.\\d{1,2})?)(?:e[+-]?[0-9_]+)?", - "name": "constant.numeric.scientific" - }, - "string": { - "patterns": [ - { - "match": "\\\"(?:\\\\\"|[^\\\"])*\\\"", - "name": "string.quoted.double" - }, - { - "match": "\\'(?:\\\\'|[^\\'])*\\'", - "name": "string.quoted.single" - } - ] - }, - "primitive": { - "patterns": [ - { - "include": "#number-decimal" - }, - { - "include": "#number-hex" - }, - { - "include": "#number-scientific" - }, - { - "include": "#string" - } - ] - }, - "type-primitive": { - "patterns": [ - { - "begin": "\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b(?:\\[\\])(\\()", - "beginCaptures": { - "1": { - "name": "support.type.primitive" - } - }, - "end": "(\\))", - "patterns": [ - { - "include": "#primitive" - }, - { - "include": "#punctuation" - }, - { - "include": "#global" - }, - { - "include": "#variable" - } - ] - }, - { - "match": "\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b", - "name": "support.type.primitive" - } - ] - }, - "global": { - "patterns": [ - { - "include": "#global-variables" - }, - { - "include": "#global-functions" - } - ] - }, - "global-variables": { - "patterns": [ - { - "match": "\\b(this)\\b", - "name": "variable.language.this" - }, - { - "match": "\\b(super)\\b", - "name": "variable.language.super" - }, - { - "match": "\\b(abi)\\b", - "name": "variable.language.builtin.abi" - }, - { - "match": "\\b(msg\\.sender|msg|block|tx|now)\\b", - "name": "variable.language.transaction" - }, - { - "match": "\\b(tx\\.origin|tx\\.gasprice|msg\\.data|msg\\.sig|msg\\.value)\\b", - "name": "variable.language.transaction" - } - ] - }, - "global-functions": { - "patterns": [ - { - "match": "\\b(require|assert|revert)\\b", - "name": "keyword.control.exceptions" - }, - { - "match": "\\b(selfdestruct|suicide)\\b", - "name": "keyword.control.contract" - }, - { - "match": "\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\b", - "name": "support.function.math" - }, - { - "match": "\\b(unicode)\\b", - "name": "support.function.string" - }, - { - "match": "\\b(blockhash|gasleft)\\b", - "name": "variable.language.transaction" - }, - { - "match": "\\b(type)\\b", - "name": "variable.language.type" - } - ] - }, - "type-modifier-access": { - "match": "\\b(internal|external|private|public)\\b", - "name": "storage.type.modifier.access" - }, - "type-modifier-payable": { - "match": "\\b(nonpayable|payable)\\b", - "name": "storage.type.modifier.payable" - }, - "type-modifier-constant": { - "match": "\\b(constant)\\b", - "name": "storage.type.modifier.readonly" - }, - "type-modifier-immutable": { - "match": "\\b(immutable)\\b", - "name": "storage.type.modifier.readonly" - }, - "type-modifier-extended-scope": { - "match": "\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\b", - "name": "storage.type.modifier.extendedscope" - }, - "variable": { - "patterns": [ - { - "match": "\\b(\\_\\w+)\\b", - "captures": { - "1": { - "name": "variable.parameter.function" - } - } - }, - { - "match": "(?:\\.)(\\w+)\\b", - "captures": { - "1": { - "name": "support.variable.property" - } - } - }, - { - "match": "\\b(\\w+)\\b", - "captures": { - "1": { - "name": "variable.parameter.other" - } - } - } - ] - }, - "modifier-call": { - "patterns": [ - { - "include": "#function-call" - }, - { - "match": "\\b(\\w+)\\b", - "name": "entity.name.function.modifier" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#declaration-contract" - }, - { - "include": "#declaration-userType" - }, - { - "include": "#declaration-interface" - }, - { - "include": "#declaration-library" - }, - { - "include": "#declaration-function" - }, - { - "include": "#declaration-modifier" - }, - { - "include": "#declaration-constructor" - }, - { - "include": "#declaration-event" - }, - { - "include": "#declaration-storage" - }, - { - "include": "#declaration-error" - } - ] - }, - "declaration-storage-field": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#control" - }, - { - "include": "#type-primitive" - }, - { - "include": "#type-modifier-access" - }, - { - "include": "#type-modifier-immutable" - }, - { - "include": "#type-modifier-extend-scope" - }, - { - "include": "#type-modifier-payable" - }, - { - "include": "#type-modifier-constant" - }, - { - "include": "#primitive" - }, - { - "include": "#constant" - }, - { - "include": "#operator" - }, - { - "include": "#punctuation" - } - ] - }, - "declaration-storage": { - "patterns": [ - { - "include": "#declaration-storage-mapping" - }, - { - "include": "#declaration-struct" - }, - { - "include": "#declaration-enum" - }, - { - "include": "#declaration-storage-field" - } - ] - }, - "declaration-userType": { - "match": "\\b(type)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b", - "captures": { - "1": { - "name": "storage.type.userType" - }, - "2": { - "name": "entity.name.type.userType" - }, - "3": { - "name": "storage.modifier.is" - } - } - }, - "declaration-contract": { - "patterns": [ - { - "begin": "\\b(contract)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+", - "end": "(?=\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.contract" - }, - "2": { - "name": "entity.name.type.contract" - }, - "3": { - "name": "storage.modifier.is" - } - }, - "patterns": [ - { - "match": "\\b(\\w+)\\b", - "name": "entity.name.type.contract.extend" - } - ] - }, - { - "match": "\\b(contract)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.contract" - }, - "2": { - "name": "entity.name.type.contract" - } - } - } - ] - }, - "declaration-interface": { - "patterns": [ - { - "begin": "\\b(interface)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+", - "end": "(?=\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.interface" - }, - "2": { - "name": "entity.name.type.interface" - }, - "3": { - "name": "storage.modifier.is" - } - }, - "patterns": [ - { - "match": "\\b(\\w+)\\b", - "name": "entity.name.type.interface.extend" - } - ] - }, - { - "match": "\\b(interface)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.interface" - }, - "2": { - "name": "entity.name.type.interface" - } - } - } - ] - }, - "declaration-library": { - "match": "\\b(library)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.library" - }, - "3": { - "name": "entity.name.type.library" - } - } - }, - "declaration-struct": { - "patterns": [ - { - "match": "\\b(struct)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.struct" - }, - "3": { - "name": "entity.name.type.struct" - } - } - }, - { - "begin": "\\b(struct)\\b\\s*(\\w+)?\\b\\s*(?=\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.struct" - }, - "2": { - "name": "entity.name.type.struct" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "include": "#type-primitive" - }, - { - "include": "#variable" - }, - { - "include": "#punctuation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "declaration-event": { - "patterns": [ - { - "begin": "\\b(event)\\b(?:\\s+(\\w+)\\b)?", - "end": "(?=\\))", - "beginCaptures": { - "1": { - "name": "storage.type.event" - }, - "2": { - "name": "entity.name.type.event" - } - }, - "patterns": [ - { - "include": "#type-primitive" - }, - { - "match": "\\b(?:(indexed)\\s)?(\\w+)(?:,\\s*|)", - "captures": { - "1": { - "name": "storage.type.modifier.indexed" - }, - "2": { - "name": "variable.parameter.event" - } - } - }, - { - "include": "#punctuation" - } - ] - }, - { - "match": "\\b(event)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.event" - }, - "3": { - "name": "entity.name.type.event" - } - } - } - ] - }, - "declaration-constructor": { - "patterns": [ - { - "begin": "\\b(constructor)\\b", - "beginCaptures": { - "1": { - "name": "storage.type.constructor" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "begin": "\\G\\s*(?=\\()", - "end": "(?=\\))", - "patterns": [ - { - "include": "#declaration-function-parameters" - } - ] - }, - { - "begin": "(?<=\\))", - "end": "(?=\\{)", - "patterns": [ - { - "include": "#type-modifier-access" - }, - { - "include": "#function-call" - } - ] - } - ] - }, - { - "match": "\\b(constructor)\\b", - "captures": { - "1": { - "name": "storage.type.constructor" - } - } - } - ] - }, - "declaration-enum": { - "patterns": [ - { - "begin": "\\b(enum)\\s+(\\w+)\\b", - "beginCaptures": { - "1": { - "name": "storage.type.enum" - }, - "2": { - "name": "entity.name.type.enum" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "match": "\\b(\\w+)\\b", - "name": "variable.other.enummember" - }, - { - "include": "#punctuation" - }, - { - "include": "#comment" - } - ] - }, - { - "match": "\\b(enum)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.enum" - }, - "3": { - "name": "entity.name.type.enum" - } - } - } - ] - }, - "declaration-function-parameters": { - "begin": "\\G\\s*(?=\\()", - "end": "(?=\\))", - "patterns": [ - { - "include": "#type-primitive" - }, - { - "include": "#type-modifier-extended-scope" - }, - { - "match": "\\b([A-Z]\\w*)\\b", - "captures": { - "1": { - "name": "storage.type.struct" - } - } - }, - { - "include": "#variable" - }, - { - "include": "#punctuation" - }, - { - "include": "#comment" - } - ] - }, - "declaration-function": { - "patterns": [ - { - "begin": "\\b(function)\\s+(\\w+)\\b", - "beginCaptures": { - "1": { - "name": "storage.type.function" - }, - "2": { - "name": "entity.name.function" - } - }, - "end": "(?=\\{|;)", - "patterns": [ - { - "include": "#natspec" - }, - { - "include": "#global" - }, - { - "include": "#declaration-function-parameters" - }, - { - "include": "#type-modifier-access" - }, - { - "include": "#type-modifier-payable" - }, - { - "include": "#type-modifier-immutable" - }, - { - "include": "#type-modifier-extended-scope" - }, - { - "include": "#control-flow" - }, - { - "include": "#function-call" - }, - { - "include": "#modifier-call" - }, - { - "include": "#punctuation" - } - ] - }, - { - "match": "\\b(function)\\s+([A-Za-z_]\\w*)\\b", - "captures": { - "1": { - "name": "storage.type.function" - }, - "2": { - "name": "entity.name.function" - } - } - } - ] - }, - "declaration-modifier": { - "patterns": [ - { - "begin": "\\b(modifier)\\b\\s*(\\w+)", - "beginCaptures": { - "1": { - "name": "storage.type.function.modifier" - }, - "2": { - "name": "entity.name.function.modifier" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#declaration-function-parameters" - }, - { - "begin": "(?<=\\))", - "end": "(?=\\{)", - "patterns": [ - { - "include": "#declaration-function-parameters" - }, - { - "include": "#type-modifier-access" - }, - { - "include": "#type-modifier-payable" - }, - { - "include": "#type-modifier-immutable" - }, - { - "include": "#type-modifier-extended-scope" - }, - { - "include": "#function-call" - }, - { - "include": "#modifier-call" - }, - { - "include": "#control-flow" - } - ] - } - ] - }, - { - "match": "\\b(modifier)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.modifier" - }, - "3": { - "name": "entity.name.function" - } - } - } - ] - }, - "declaration-storage-mapping": { - "patterns": [ - { - "begin": "\\b(mapping)\\b", - "beginCaptures": { - "1": { - "name": "storage.type.mapping" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#declaration-storage-mapping" - }, - { - "include": "#type-primitive" - }, - { - "include": "#punctuation" - }, - { - "include": "#operator" - } - ] - }, - { - "match": "\\b(mapping)\\b", - "name": "storage.type.mapping" - } - ] - }, - "declaration-error": { - "match": "\\b(error)(\\s+([A-Za-z_]\\w*))?\\b", - "captures": { - "1": { - "name": "storage.type.error" - }, - "3": { - "name": "entity.name.type.error" - } - } - }, - "function-call": { - "match": "\\b([A-Za-z_]\\w*)\\s*(\\()", - "captures": { - "1": { - "name": "entity.name.function" - }, - "2": { - "name": "punctuation.parameters.begin" - } - } - }, - "assembly": { - "patterns": [ - { - "match": "\\b(assembly)\\b", - "name": "keyword.control.assembly" - }, - { - "match": "\\b(let)\\b", - "name": "storage.type.assembly" - } - ] - }, - "punctuation": { - "patterns": [ - { - "match": ";", - "name": "punctuation.terminator.statement" - }, - { - "match": "\\.", - "name": "punctuation.accessor" - }, - { - "match": ",", - "name": "punctuation.separator" - }, - { - "match": "\\{", - "name": "punctuation.brace.curly.begin" - }, - { - "match": "\\}", - "name": "punctuation.brace.curly.end" - }, - { - "match": "\\[", - "name": "punctuation.brace.square.begin" - }, - { - "match": "\\]", - "name": "punctuation.brace.square.end" - }, - { - "match": "\\(", - "name": "punctuation.parameters.begin" - }, - { - "match": "\\)", - "name": "punctuation.parameters.end" - } - ] - } - }, - "scopeName": "source.solidity", - "uuid": "ad87d2cd-8575-4afe-984e-9421a3788933" -} diff --git a/lib/grammars/sparql.tmLanguage.json b/lib/grammars/sparql.tmLanguage.json deleted file mode 100644 index b40e554..0000000 --- a/lib/grammars/sparql.tmLanguage.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "sparql", - "scopeName": "source.sparql", - "fileTypes": ["rq", "sparql", "sq"], - "patterns": [ - { - "include": "source.turtle" - }, - { - "include": "#query-keyword-operators" - }, - { - "include": "#functions" - }, - { - "include": "#variables" - }, - { - "include": "#expression-operators" - } - ], - "repository": { - "query-keyword-operators": { - "name": "keyword.control.sparql", - "match": "\\b(?i:define|select|distinct|reduced|from|named|construct|ask|describe|where|graph|having|bind|as|filter|optional|union|order|by|group|limit|offset|values|insert data|delete data|with|delete|insert|clear|silent|default|all|create|drop|copy|move|add|to|using|service|not exists|exists|not in|in|minus|load)\\b" - }, - "functions": { - "name": "support.function.sparql", - "match": "\\b(?i:concat|regex|asc|desc|bound|isiri|isuri|isblank|isliteral|isnumeric|str|lang|datatype|sameterm|langmatches|avg|count|group_concat|separator|max|min|sample|sum|iri|uri|bnode|strdt|uuid|struuid|strlang|strlen|substr|ucase|lcase|strstarts|strends|contains|strbefore|strafter|encode_for_uri|replace|abs|round|ceil|floor|rand|now|year|month|day|hours|minutes|seconds|timezone|tz|md5|sha1|sha256|sha384|sha512|coalesce|if)\\b" - }, - "variables": { - "name": "constant.variable.sparql.turtle", - "match": "(?<!\\w)[?$]\\w+" - }, - "expression-operators": { - "name": "support.class.sparql", - "match": "(?:\\|\\||&&|=|!=|<|>|<=|>=|\\*|/|\\+|-|\\||\\^|\\?|\\!)" - } - } -} diff --git a/lib/grammars/sql.tmLanguage.json b/lib/grammars/sql.tmLanguage.json deleted file mode 100644 index bfdddb1..0000000 --- a/lib/grammars/sql.tmLanguage.json +++ /dev/null @@ -1,635 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-mssql/blob/master/syntaxes/SQL.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-mssql/commit/cb5940297a8cef76daaf4a6b63c4968c9a12d17a", - "name": "sql", - "scopeName": "source.sql", - "patterns": [ - { - "match": "((?<!@)@)\\b(\\w+)\\b", - "name": "text.variable" - }, - { - "match": "(\\[)[^\\]]*(\\])", - "name": "text.bracketed" - }, - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "keyword.other.create.sql" - }, - "2": { - "name": "keyword.other.sql" - }, - "5": { - "name": "entity.name.function.sql" - } - }, - "match": "(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4", - "name": "meta.create.sql" - }, - { - "captures": { - "1": { - "name": "keyword.other.create.sql" - }, - "2": { - "name": "keyword.other.sql" - } - }, - "match": "(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))", - "name": "meta.drop.sql" - }, - { - "captures": { - "1": { - "name": "keyword.other.create.sql" - }, - "2": { - "name": "keyword.other.table.sql" - }, - "3": { - "name": "entity.name.function.sql" - }, - "4": { - "name": "keyword.other.cascade.sql" - } - }, - "match": "(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)", - "name": "meta.drop.sql" - }, - { - "captures": { - "1": { - "name": "keyword.other.create.sql" - }, - "2": { - "name": "keyword.other.table.sql" - } - }, - "match": "(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)", - "name": "meta.alter.sql" - }, - { - "captures": { - "1": { - "name": "storage.type.sql" - }, - "2": { - "name": "storage.type.sql" - }, - "3": { - "name": "constant.numeric.sql" - }, - "4": { - "name": "storage.type.sql" - }, - "5": { - "name": "constant.numeric.sql" - }, - "6": { - "name": "storage.type.sql" - }, - "7": { - "name": "constant.numeric.sql" - }, - "8": { - "name": "constant.numeric.sql" - }, - "9": { - "name": "storage.type.sql" - }, - "10": { - "name": "constant.numeric.sql" - }, - "11": { - "name": "storage.type.sql" - }, - "12": { - "name": "storage.type.sql" - }, - "13": { - "name": "storage.type.sql" - }, - "14": { - "name": "constant.numeric.sql" - }, - "15": { - "name": "storage.type.sql" - } - }, - "match": "(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)?\n\n\t\t\t" - }, - { - "match": "(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)", - "name": "storage.modifier.sql" - }, - { - "match": "\\b\\d+\\b", - "name": "constant.numeric.sql" - }, - { - "match": "(?i:\\b(select(\\s+(all|distinct))?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\s+by|or|like|and|union(\\s+all)?|having|order\\s+by|limit|cross\\s+join|join|straight_join|(inner|(left|right|full)(\\s+outer)?)\\s+join|natural(\\s+(inner|(left|right|full)(\\s+outer)?))?\\s+join)\\b)", - "name": "keyword.other.DML.sql" - }, - { - "match": "(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)", - "name": "keyword.other.DDL.create.II.sql" - }, - { - "match": "(?i:\\bvalues\\b)", - "name": "keyword.other.DML.II.sql" - }, - { - "match": "(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)", - "name": "keyword.other.LUW.sql" - }, - { - "match": "(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)", - "name": "keyword.other.authorization.sql" - }, - { - "match": "(?i:\\bin\\b)", - "name": "keyword.other.data-integrity.sql" - }, - { - "match": "(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)", - "name": "keyword.other.object-comments.sql" - }, - { - "match": "(?i)\\bAS\\b", - "name": "keyword.other.alias.sql" - }, - { - "match": "(?i)\\b(DESC|ASC)\\b", - "name": "keyword.other.order.sql" - }, - { - "match": "\\*", - "name": "keyword.operator.star.sql" - }, - { - "match": "[!<>]?=|<>|<|>", - "name": "keyword.operator.comparison.sql" - }, - { - "match": "-|\\+|/", - "name": "keyword.operator.math.sql" - }, - { - "match": "\\|\\|", - "name": "keyword.operator.concatenator.sql" - }, - { - "match": "(?i)\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.aggregate.sql" - } - } - }, - { - "match": "(?i)\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.analytic.sql" - } - } - }, - { - "match": "(?i)\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.bitmanipulation.sql" - } - } - }, - { - "match": "(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.conversion.sql" - } - } - }, - { - "match": "(?i)\\b(collationproperty|tertiary_weights)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.collation.sql" - } - } - }, - { - "match": "(?i)\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.cryptographic.sql" - } - } - }, - { - "match": "(?i)\\b(cursor_status)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.cursor.sql" - } - } - }, - { - "match": "(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.datetime.sql" - } - } - }, - { - "match": "(?i)\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.datatype.sql" - } - } - }, - { - "match": "(?i)\\b(coalesce|nullif)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.expression.sql" - } - } - }, - { - "match": "(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.globalvar.sql" - } - } - }, - { - "match": "(?i)\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.json.sql" - } - } - }, - { - "match": "(?i)\\b(choose|iif|greatest|least)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.logical.sql" - } - } - }, - { - "match": "(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.mathematical.sql" - } - } - }, - { - "match": "(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.metadata.sql" - } - } - }, - { - "match": "(?i)\\b(rank|dense_rank|ntile|row_number)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.ranking.sql" - } - } - }, - { - "match": "(?i)\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.rowset.sql" - } - } - }, - { - "match": "(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.security.sql" - } - } - }, - { - "match": "(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.string.sql" - } - } - }, - { - "match": "(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.system.sql" - } - } - }, - { - "match": "(?i)\\b(patindex|textptr|textvalid)\\b\\s*\\(", - "captures": { - "1": { - "name": "support.function.textimage.sql" - } - } - }, - { - "captures": { - "1": { - "name": "constant.other.database-name.sql" - }, - "2": { - "name": "constant.other.table-name.sql" - } - }, - "match": "(\\w+?)\\.(\\w+)" - }, - { - "include": "#strings" - }, - { - "include": "#regexps" - }, - { - "match": "\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b", - "name": "keyword.other.sql" - }, - { - "captures": { - "1": { - "name": "punctuation.section.scope.begin.sql" - }, - "2": { - "name": "punctuation.section.scope.end.sql" - } - }, - "comment": "Allow for special ↩ behavior", - "match": "(\\()(\\))", - "name": "meta.block.sql" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=--)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.sql" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "--", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.sql" - } - }, - "end": "\\n", - "name": "comment.line.double-dash.sql" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.sql" - } - }, - "end": "(?!\\G)", - "patterns": [] - }, - { - "include": "#comment-block" - } - ] - }, - "comment-block": { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.sql" - } - }, - "end": "\\*/", - "name": "comment.block", - "patterns": [ - { - "include": "#comment-block" - } - ] - }, - "regexps": { - "patterns": [ - { - "begin": "/(?=\\S.*/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.sql" - } - }, - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.sql" - } - }, - "name": "string.regexp.sql", - "patterns": [ - { - "include": "#string_interpolation" - }, - { - "match": "\\\\/", - "name": "constant.character.escape.slash.sql" - } - ] - }, - { - "begin": "%r\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.sql" - } - }, - "comment": "We should probably handle nested bracket pairs!?! -- Allan", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.sql" - } - }, - "name": "string.regexp.modr.sql", - "patterns": [ - { - "include": "#string_interpolation" - } - ] - } - ] - }, - "string_escape": { - "match": "\\\\.", - "name": "constant.character.escape.sql" - }, - "string_interpolation": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.sql" - }, - "3": { - "name": "punctuation.definition.string.end.sql" - } - }, - "match": "(#\\{)([^\\}]*)(\\})", - "name": "string.interpolated.sql" - }, - "strings": { - "patterns": [ - { - "captures": { - "2": { - "name": "punctuation.definition.string.begin.sql" - }, - "3": { - "name": "punctuation.definition.string.end.sql" - } - }, - "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.", - "match": "(N)?(')[^']*(')", - "name": "string.quoted.single.sql" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.sql" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.sql" - } - }, - "name": "string.quoted.single.sql", - "patterns": [ - { - "include": "#string_escape" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.sql" - }, - "2": { - "name": "punctuation.definition.string.end.sql" - } - }, - "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.", - "match": "(`)[^`\\\\]*(`)", - "name": "string.quoted.other.backtick.sql" - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.sql" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.sql" - } - }, - "name": "string.quoted.other.backtick.sql", - "patterns": [ - { - "include": "#string_escape" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.sql" - }, - "2": { - "name": "punctuation.definition.string.end.sql" - } - }, - "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.", - "match": "(\")[^\"#]*(\")", - "name": "string.quoted.double.sql" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.sql" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.sql" - } - }, - "name": "string.quoted.double.sql", - "patterns": [ - { - "include": "#string_interpolation" - } - ] - }, - { - "begin": "%\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.sql" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.sql" - } - }, - "name": "string.other.quoted.brackets.sql", - "patterns": [ - { - "include": "#string_interpolation" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/ssh-config.tmLanguage.json b/lib/grammars/ssh-config.tmLanguage.json deleted file mode 100644 index 0d097e3..0000000 --- a/lib/grammars/ssh-config.tmLanguage.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "fileTypes": ["ssh_config", ".ssh/config", "sshd_config"], - "name": "ssh-config", - "patterns": [ - { - "match": "\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\b", - "name": "keyword.other.ssh-config" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ssh-config" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ssh-config" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.ssh-config" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ssh-config" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ssh-config" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.ssh-config" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.ssh-config" - }, - "2": { - "name": "entity.name.section.ssh-config" - }, - "3": { - "name": "meta.toc-list.ssh-config" - } - }, - "match": "(?:^| |\\t)(Host)\\s+((.*))$" - }, - { - "match": "\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b", - "name": "constant.numeric.ssh-config" - }, - { - "match": "\\b[0-9]+\\b", - "name": "constant.numeric.ssh-config" - }, - { - "match": "\\b(yes|no)\\b", - "name": "constant.language.ssh-config" - }, - { - "match": "\\b[A-Z_]+\\b", - "name": "constant.language.ssh-config" - } - ], - "scopeName": "source.ssh-config", - "uuid": "B273855C-59D3-4DF3-9B7C-E68E0057D315" -} diff --git a/lib/grammars/stata.tmLanguage.json b/lib/grammars/stata.tmLanguage.json deleted file mode 100644 index f0786ec..0000000 --- a/lib/grammars/stata.tmLanguage.json +++ /dev/null @@ -1,3045 +0,0 @@ -{ - "scopeName": "source.stata", - "name": "stata", - "fileTypes": ["do", "ado", "mata"], - "foldingStartMarker": "\\{\\s*$", - "foldingStopMarker": "^\\s*\\}", - "patterns": [ - { - "include": "#ascii-regex-functions" - }, - { - "include": "#unicode-regex-functions" - }, - { - "include": "#constants" - }, - { - "include": "#functions" - }, - { - "include": "#comments" - }, - { - "include": "#subscripts" - }, - { - "include": "#operators" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#builtin_variables" - }, - { - "include": "#macro-commands" - }, - { - "comment": "keywords that delimit flow conditionals", - "name": "keyword.control.conditional.stata", - "match": "\\b(if|else if|else)\\b" - }, - { - "captures": { - "1": { - "name": "storage.type.scalar.stata" - } - }, - "match": "^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)" - }, - { - "begin": "\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.stata" - }, - "3": { - "patterns": [ - { - "include": "#constants" - }, - { - "match": "m|n", - "name": "" - } - ] - }, - "4": { - "name": "punctuation.separator.key-value" - }, - "5": { - "patterns": [ - { - "include": "#constants" - }, - { - "match": "m|n", - "name": "" - } - ] - } - }, - "end": "using", - "patterns": [ - { - "include": "#builtin_variables" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#comments" - } - ] - }, - { - "match": "\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b", - "captures": { - "1": { - "name": "keyword.control.flow.stata" - }, - "2": { - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - "3": { - "name": "keyword.control.flow.stata" - } - } - }, - { - "begin": "\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.stata" - }, - "2": { - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - "3": { - "name": "keyword.control.flow.stata" - } - }, - "end": "(?=\\s*\\{)", - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - { - "begin": "\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*", - "end": "\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.stata" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.assignment.stata" - }, - "2": { - "patterns": [ - { - "include": "#constants" - }, - { - "include": "#operators" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - } - }, - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - { - "comment": "keywords that delimit loops", - "name": "keyword.control.flow.stata", - "match": "\\b(while|continue)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.other.stata" - } - }, - "comment": "keywords that haven't fit into other groups (yet).", - "match": "\\b(as|ass|asse|asser|assert)\\b" - }, - { - "match": "\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b", - "name": "storage.type.function.stata", - "comment": "prefixes that require a colon" - }, - { - "comment": "prefixes that don't need a colon", - "name": "keyword.control.flow.stata", - "match": "\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?" - }, - { - "match": "\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})", - "captures": { - "1": { - "name": "storage.type.function.stata" - }, - "3": { - "name": "storage.type.function.stata" - }, - "7": { - "name": "entity.name.function.stata" - } - } - }, - { - "begin": "^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?", - "beginCaptures": { - "1": { - "name": "storage.type.function.stata" - }, - "3": { - "name": "storage.type.function.stata" - } - }, - "end": "(?=,|\\n|/)", - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "entity.name.function.stata" - }, - { - "match": "[^A-za-z_0-9,\\n/ ]+", - "name": "invalid.illegal.name.stata" - } - ] - }, - { - "match": "\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?", - "captures": { - "1": "keyword.functions.data.stata.test" - } - }, - { - "include": "#braces-with-error" - }, - { - "begin": "(?=syntax)", - "end": "\\n", - "patterns": [ - { - "comment": "color before the comma", - "begin": "syntax", - "beginCaptures": { - "0": { - "name": "keyword.functions.program.stata" - } - }, - "end": "(?=,|\\n)", - "patterns": [ - { - "begin": "///", - "end": "\\n", - "name": "comment.block.stata" - }, - { - "match": "\\[", - "name": "punctuation.definition.parameters.begin.stata" - }, - { - "match": "\\]", - "name": "punctuation.definition.parameters.end.stata" - }, - { - "match": "\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b", - "name": "entity.name.type.class.stata" - }, - { - "match": "\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?", - "captures": { - "2": { - "name": "entity.name.type.class.stata" - }, - "3": { - "name": "keyword.operator.arithmetic.stata" - } - } - }, - { - "match": "(/)?(exp)", - "captures": { - "1": { - "name": "keyword.operator.arithmetic.stata" - }, - "2": { - "name": "entity.name.type.class.stata" - } - } - }, - { - "include": "#constants" - }, - { - "include": "#operators" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#builtin_variables" - } - ] - }, - { - "comment": "things to color after the comma", - "begin": ",", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.begin.stata" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "begin": "///", - "end": "\\n", - "name": "comment.block.stata" - }, - { - "comment": "color options with parentheses", - "begin": "([^\\s\\[\\]]+)(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ], - "comment": "these are the names that become macros" - }, - "2": { - "name": "keyword.operator.parentheses.stata" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.operator.parentheses.stata" - } - }, - "patterns": [ - { - "comment": "the first word is often a type", - "match": "\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b", - "captures": { - "0": { - "name": "support.type.stata" - } - } - }, - { - "include": "#constants" - }, - { - "include": "#operators" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#builtin_variables" - } - ] - }, - { - "include": "#macro-local-identifiers" - }, - { - "include": "#constants" - }, - { - "include": "#operators" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#builtin_variables" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.functions.data.stata" - } - }, - "comment": "one-word commands", - "match": "\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b" - }, - { - "match": "\\b(exit|end)\\b", - "name": "keyword.functions.data.stata", - "comment": "programming commands" - }, - { - "match": "\\b(replace)\\s+([^=]+)\\s*((==)|(=))", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "2": { - "patterns": [ - { - "include": "#macro-local" - } - ] - }, - "4": { - "name": "invalid.illegal.name.stata" - }, - "5": { - "name": "keyword.operator.assignment.stata" - } - } - }, - { - "match": "\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "3": { - "name": "support.type.stata" - }, - "5": { - "patterns": [ - { - "include": "#reserved-names" - }, - { - "include": "#macro-local" - } - ] - }, - "7": { - "name": "invalid.illegal.name.stata" - }, - "8": { - "name": "keyword.operator.assignment.stata" - } - } - }, - { - "match": "\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "3": { - "name": "support.type.stata" - } - } - }, - { - "match": "\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`\")(.+)(\"')", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "3": { - "name": "keyword.functions.data.stata" - }, - "6": { - "name": "punctuation.definition.string.begin.stata" - }, - "7": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#macro-local-escaped" - }, - { - "include": "#macro-global-escaped" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "[^`\\$]{81,}", - "name": "invalid.illegal.name.stata" - }, - { - "match": ".", - "name": "string.quoted.double.compound.stata" - } - ] - }, - "8": { - "name": "punctuation.definition.string.begin.stata" - } - } - }, - { - "match": "\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(\")(.+)(\")", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "3": { - "name": "keyword.functions.data.stata" - }, - "6": { - "name": "punctuation.definition.string.begin.stata" - }, - "7": { - "patterns": [ - { - "include": "#macro-local-escaped" - }, - { - "include": "#macro-global-escaped" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "[^`\\$]{81,}", - "name": "invalid.illegal.name.stata" - }, - { - "match": ".", - "name": "string.quoted.double.stata" - } - ] - }, - "8": { - "name": "punctuation.definition.string.begin.stata" - } - } - }, - { - "match": "\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "3": { - "name": "keyword.functions.data.stata" - } - } - }, - { - "begin": "\\b(drop|keep)\\b(?!\\s+(if|in)\\b)", - "beginCaptures": { - "1": { - "name": "keyword.functions.data.stata" - } - }, - "end": "\\n", - "patterns": [ - { - "match": "\\b(if|in)\\b", - "name": "invalid.illegal.name.stata" - }, - { - "include": "#comments" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#operators" - } - ] - }, - { - "match": "\\b(drop|keep)\\s+(if|in)\\b", - "captures": { - "1": { - "name": "keyword.functions.data.stata" - }, - "2": { - "name": "keyword.functions.data.stata" - } - } - }, - { - "begin": "^\\s*mata:?\\s*$", - "comment": "won't match single-line Mata statements", - "end": "^\\s*end\\s*$\\n?", - "name": "meta.embedded.block.mata", - "patterns": [ - { - "match": "(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)", - "name": "keyword.control.mata" - }, - { - "captures": { - "1": { - "name": "storage.type.eltype.mata" - }, - "4": { - "name": "storage.type.orgtype.mata" - } - }, - "match": "\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b", - "name": "storage.type.mata" - }, - { - "comment": "need to end with whitespace character here or last group doesn't match", - "match": "\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s", - "name": "storage.type.eltype.mata" - }, - { - "match": "\\b(matrix|vector|rowvector|colvector|scalar)\\b", - "name": "storage.type.orgtype.mata" - }, - { - "match": "\\!|\\+\\+|\\-\\-|\\&|\\'|\\?|\\\\|\\:\\:|\\,|\\.\\.|\\||\\=|\\=\\=|\\>\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/", - "name": "keyword.operator.mata" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "\\b(odbc)\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.stata" - } - }, - "end": "\\n", - "patterns": [ - { - "begin": "///", - "end": "\\n", - "name": "comment.block.stata" - }, - { - "begin": "(exec?)(\\(\")", - "beginCaptures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - } - }, - "end": "\"\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.stata" - } - }, - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "include": "$self" - } - ] - }, - { - "include": "#commands-other" - } - ], - "repository": { - "functions": { - "patterns": [ - { - "begin": "\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\w&&[^0-9]]\\w{0,31}))(\\()", - "beginCaptures": { - "2": { - "name": "support.function.builtin.stata" - }, - "3": { - "name": "support.function.custom.stata" - }, - "4": { - "name": "punctuation.definition.parameters.begin.stata" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.stata" - } - }, - "patterns": [ - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "keyword.operator.parentheses.stata" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.parentheses.stata" - } - }, - "patterns": [ - { - "include": "#ascii-regex-functions" - }, - { - "include": "#unicode-regex-functions" - }, - { - "include": "#functions" - }, - { - "include": "#subscripts" - }, - { - "include": "#constants" - }, - { - "include": "#comments" - }, - { - "include": "#operators" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#builtin_variables" - }, - { - "include": "#macro-commands" - }, - { - "include": "#braces-without-error" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - } - ] - }, - { - "include": "#ascii-regex-functions" - }, - { - "include": "#unicode-regex-functions" - }, - { - "include": "#functions" - }, - { - "include": "#subscripts" - }, - { - "include": "#constants" - }, - { - "include": "#comments" - }, - { - "include": "#operators" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#builtin_variables" - }, - { - "include": "#macro-commands" - }, - { - "include": "#braces-without-error" - } - ] - } - ] - }, - "builtin_types": { - "patterns": [ - { - "match": "\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b", - "name": "support.type.stata" - } - ] - }, - "builtin_variables": { - "patterns": [ - { - "match": "\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b", - "name": "variable.object.stata" - } - ] - }, - "braces-without-error": { - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "keyword.control.block.begin.stata" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "keyword.control.block.end.stata" - } - } - } - ] - }, - "braces-with-error": { - "patterns": [ - { - "comment": "correct with nothing else on the line but whitespace; before and after; before; after; correct", - "begin": "(\\{)\\s*([^\\n]*)(?=\\n)", - "beginCaptures": { - "1": { - "name": "keyword.control.block.begin.stata" - }, - "2": { - "patterns": [ - { - "include": "#comments" - }, - { - "match": "[^\\n]+", - "name": "illegal.invalid.name.stata" - } - ] - } - }, - "end": "^\\s*(\\})\\s*$|^\\s*([^\\*\"\\}]+)\\s+(\\})\\s*([^\\*\"\\}/\\n]+)|^\\s*([^\"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^\"\\*\\}/\\n]+)|(\\})$", - "endCaptures": { - "1": { - "name": "keyword.control.block.end.stata" - }, - "2": { - "name": "invalid.illegal.name.stata" - }, - "3": { - "name": "keyword.control.block.end.stata" - }, - "4": { - "name": "invalid.illegal.name.stata" - }, - "5": { - "name": "invalid.illegal.name.stata" - }, - "6": { - "name": "keyword.control.block.end.stata" - }, - "7": { - "name": "keyword.control.block.end.stata" - }, - "8": { - "name": "invalid.illegal.name.stata" - }, - "9": { - "name": "keyword.control.block.end.stata" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "commands-other": { - "patterns": [ - { - "comment": "Add on commands", - "match": "\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b", - "name": "keyword.control.flow.stata" - }, - { - "comment": "Built in commands", - "match": "\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b", - "name": "keyword.control.flow.stata" - } - ] - }, - "comments": { - "patterns": [ - { - "include": "#comments-double-slash" - }, - { - "include": "#comments-star" - }, - { - "include": "#comments-block" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "comments-block": { - "patterns": [ - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.stata" - } - }, - "end": "(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.stata" - } - }, - "name": "comment.block.stata", - "patterns": [ - { - "match": "\\*/\\*", - "comment": "this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks" - }, - { - "include": "#docblockr-comment" - }, - { - "include": "#comments-block" - }, - { - "include": "#docstring" - } - ] - } - ] - }, - "comments-star": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.definition.comment.stata" - } - }, - "begin": "^\\s*(\\*)", - "name": "comment.line.star.stata", - "end": "(?=\\n)", - "comment": "TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below", - "patterns": [ - { - "include": "#docblockr-comment" - }, - { - "begin": "///", - "end": "\\n", - "name": "comment.line-continuation.stata" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "comments-triple-slash": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.definition.comment.stata" - } - }, - "begin": "(^///|(?<=\\s)///)", - "end": "(?=\\n)", - "name": "comment.line.triple-slash.stata", - "patterns": [ - { - "include": "#docblockr-comment" - } - ] - } - ] - }, - "comments-double-slash": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.definition.comment.stata" - } - }, - "begin": "(^//|(?<=\\s)//)(?!/)", - "end": "(?=\\n)", - "name": "comment.line.double-slash.stata", - "patterns": [ - { - "include": "#docblockr-comment" - } - ] - } - ] - }, - "docblockr-comment": { - "patterns": [ - { - "match": "(?<!\\w)(@(error|ERROR|Error))\\b", - "captures": { - "1": { - "name": "invalid.illegal.name.stata" - } - } - }, - { - "match": "(?<!\\w)(@\\w+)\\b", - "captures": { - "1": { - "name": "keyword.docblockr.stata" - } - } - } - ] - }, - "docstring": { - "patterns": [ - { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "name": "string.quoted.docstring.stata" - }, - { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "name": "string.quoted.docstring.stata" - } - ] - }, - "macro-commands": { - "patterns": [ - { - "begin": "\\b(loc(al|a)?)\\s+([\\w'`\\$\\(\\)\\{\\}]+)\\s*(?=:|=)", - "beginCaptures": { - "1": { - "name": "keyword.macro.stata" - }, - "3": { - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - } - }, - "end": "\\n", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.arithmetic.stata" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "keyword.operator.arithmetic.stata" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "include": "#macro-extended-functions" - } - ] - } - ] - }, - { - "begin": "\\b(gl(obal|oba|ob|o)?)\\s+(?=[\\w`\\$])", - "beginCaptures": { - "1": { - "name": "keyword.macro.stata" - } - }, - "end": "(\\})|(?=\\\"|\\s|\\n|/|,|=)", - "patterns": [ - { - "include": "#reserved-names" - }, - { - "match": "[\\w&&[^0-9_]]\\w{0,31}", - "name": "entity.name.type.class.stata" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - { - "begin": "\\b(loc(al|a)?)\\s+(\\+\\+|\\-\\-)?(?=[\\w`\\$])", - "beginCaptures": { - "1": { - "name": "keyword.macro.stata" - }, - "3": { - "name": "keyword.operator.arithmetic.stata" - } - }, - "end": "(?=\\\"|\\s|\\n|/|,|=)", - "patterns": [ - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - { - "begin": "\\b(tempvar|tempname|tempfile)\\s*(?=\\s)", - "beginCaptures": { - "1": { - "name": "keyword.macro.stata" - } - }, - "end": "\\n", - "patterns": [ - { - "begin": "///", - "end": "\\n", - "name": "comment.block.stata" - }, - { - "include": "#macro-local-identifiers" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - }, - { - "begin": "\\b(ma(cro|cr|c)?)\\s+(drop|l(ist|is|i)?)\\s*(?=\\s)", - "beginCaptures": { - "0": { - "name": "keyword.macro.stata" - } - }, - "end": "\\n", - "patterns": [ - { - "begin": "///", - "end": "\\n", - "name": "comment.block.stata" - }, - { - "match": "\\*", - "name": "keyword.operator.arithmetic.stata" - }, - { - "include": "#constants" - }, - { - "include": "#macro-global" - }, - { - "include": "#macro-local" - }, - { - "include": "#comments" - }, - { - "match": "\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - } - ] - }, - "macro-extended-functions": { - "patterns": [ - { - "match": "\\b(properties)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\s+l(abel|abe|ab|a)?|data\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(permname)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(all\\s+(globals|scalars|matrices)|((numeric|string)\\s+scalars))\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(list)\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\s+(\\w{1,32})", - "captures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - }, - "2": { - "name": "keyword.macro.extendedfcn.stata" - }, - "3": { - "name": "entity.name.type.class.stata" - } - } - }, - { - "match": "\\b(list)\\s+(\\w{1,32})\\s+(\\||&|\\-|===|==|in)\\s+(\\w{1,32})", - "captures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - }, - "2": { - "name": "entity.name.type.class.stata" - }, - "3": { - "name": "keyword.operator.list.stata" - }, - "4": { - "name": "entity.name.type.class.stata" - } - } - }, - { - "match": "\\b(list\\s+posof)\\s+(\")(\\w+)(\")\\s+(in)\\s+(\\w{1,32})", - "captures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - }, - "2": { - "name": "punctuation.definition.string.begin.stata" - }, - "3": { - "name": "string.quoted.double.stata" - }, - "4": { - "name": "punctuation.definition.string.end.stata" - }, - "5": { - "name": "keyword.macro.extendedfcn.stata" - }, - "6": { - "name": "entity.name.type.class.stata" - } - } - }, - { - "match": "\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b(tsnorm)\\b", - "name": "keyword.macro.extendedfcn.stata" - }, - { - "match": "\\b((copy|(ud|u)?strlen)\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+([^']+)", - "captures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - }, - "7": { - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - } - } - }, - { - "match": "\\b(word\\s+count)", - "captures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - } - } - }, - { - "match": "(word|piece)\\s+([\\s`'\\w]+)\\s+(of)", - "captures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - }, - "2": { - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#constants" - } - ] - }, - "3": { - "name": "keyword.macro.extendedfcn.stata" - } - } - }, - { - "begin": "\\b(subinstr\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+(\\w{1,32})", - "end": "(?=//|\\n)", - "beginCaptures": { - "1": { - "name": "keyword.macro.extendedfcn.stata" - }, - "5": { - "name": "entity.name.type.class.stata" - } - }, - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "match": "(count|coun|cou|co|c)(\\()(local|loca|loc|global|globa|glob|glo|gl)\\s+(\\w{1,32})(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "name": "keyword.macro.extendedfcn.stata" - }, - "4": { - "name": "entity.name.type.class.stata" - }, - "5": { - "name": "punctuation.definition.parameters.end.stata" - } - } - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "$self" - } - ] - }, - "macro-local-escaped": { - "patterns": [ - { - "comment": "appropriately color macros that have embedded escaped `,', and $ characters for lazy evaluation", - "begin": "\\\\`(?!\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "\\\\'|'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.stata" - } - }, - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - } - ] - }, - "macro-local": { - "patterns": [ - { - "begin": "(`)(=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.stata" - }, - "2": { - "name": "keyword.operator.comparison.stata" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.stata" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(`)(:)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.stata" - }, - "2": { - "name": "keyword.operator.comparison.stata" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.stata" - } - }, - "contentName": "meta.macro-extended-function.stata", - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-extended-functions" - }, - { - "include": "#constants" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - } - ] - }, - { - "begin": "(`)(macval)(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.stata" - }, - "2": { - "name": "support.function.builtin.stata" - }, - "3": { - "name": "punctuation.definition.parameters.begin.stata" - } - }, - "end": "(\\))(')", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "2": { - "name": "punctuation.definition.string.end.stata" - } - }, - "contentName": "meta.macro-extended-function.stata", - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - }, - { - "begin": "`(?!\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.stata" - } - }, - "patterns": [ - { - "match": "\\+\\+|\\-\\-", - "name": "keyword.operator.arithmetic.stata" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#comments-block" - }, - { - "begin": "[^\\w]", - "end": "\\n|(?=')", - "name": "comment.line.stata" - }, - { - "match": "\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - } - ] - }, - "macro-global-escaped": { - "patterns": [ - { - "begin": "(\\\\\\$)(\\\\\\{)?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "(\\\\\\})|(?=\\\"|\\s|\\n|/|,)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.stata" - } - }, - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - } - ] - }, - "macro-global": { - "patterns": [ - { - "begin": "(\\$)(\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.stata" - } - }, - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#comments-block" - }, - { - "begin": "[^\\w]", - "end": "\\n|(?=})", - "name": "comment.line.stata" - }, - { - "match": "\\w{1,32}", - "name": "entity.name.type.class.stata" - } - ] - }, - { - "begin": "\\$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "(?!\\w)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.stata" - } - }, - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "match": "[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "include": "#factorvariables" - }, - { - "match": "\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])", - "name": "constant.numeric.float.stata" - }, - { - "match": "(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))", - "name": "constant.numeric.float.stata" - }, - { - "match": "\\b(?i:(\\d+e[\\-\\+]?\\d+))", - "name": "constant.numeric.float.stata" - }, - { - "match": "\\b(\\d+)\\b", - "name": "constant.numeric.integer.decimal.stata" - }, - { - "match": "(?<![\\w])(\\.(?![\\./]))(?![\\w])", - "name": "constant.language.missing.stata" - }, - { - "match": "\\b_all\\b", - "name": "constant.language.allvars.stata" - } - ] - }, - "factorvariables": { - "patterns": [ - { - "match": "\\b(i|c|o)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", - "name": "constant.language.factorvars.stata" - }, - { - "match": "\\b(i?b)((\\d+)|n)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", - "captures": { - "0": { - "name": "constant.language.factorvars.stata" - }, - "3": { - "patterns": [ - { - "include": "#constants" - } - ] - } - } - }, - { - "match": "\\b(i?b)(\\()(#\\d+|first|last|freq)(\\))\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", - "captures": { - "0": { - "name": "constant.language.factorvars.stata" - }, - "2": { - "name": "keyword.operator.parentheses.stata" - }, - "3": { - "patterns": [ - { - "include": "#constants" - }, - { - "include": "#operators" - } - ] - }, - "4": { - "name": "keyword.operator.parentheses.stata" - } - } - }, - { - "match": "\\b(i?o?)(\\d+)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", - "captures": { - "0": { - "name": "constant.language.factorvars.stata" - }, - "2": { - "patterns": [ - { - "include": "#constants" - } - ] - } - } - }, - { - "match": "\\b(i?o?)(\\()(.*?)(\\))(\\.)(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", - "captures": { - "1": { - "name": "constant.language.factorvars.stata" - }, - "2": { - "name": "keyword.operator.parentheses.stata" - }, - "3": { - "patterns": [ - { - "include": "$self" - } - ] - }, - "4": { - "name": "keyword.operator.parentheses.stata" - }, - "5": { - "name": "constant.language.factorvars.stata" - } - } - } - ] - }, - "operators": { - "patterns": [ - { - "match": "\\+\\+|\\-\\-|\\+|\\-|\\*|\\^", - "name": "keyword.operator.arithmetic.stata", - "comment": "++ and -- must come first to support ligatures" - }, - { - "comment": "match division operator but not path separator", - "match": "(?<![\\w.&&[^0-9]])/(?![\\w.&&[^0-9]]|$)", - "name": "keyword.operator.arithmetic.stata" - }, - { - "comment": "match division operator but not path separator", - "match": "(?<![\\w.&&[^0-9]])\\\\(?![\\w.&&[^0-9]]|$)", - "name": "keyword.operator.matrix.addrow.stata" - }, - { - "match": "\\|\\|", - "name": "keyword.operator.graphcombine.stata" - }, - { - "match": "\\&|\\|", - "name": "keyword.operator.logical.stata" - }, - { - "match": "(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)", - "name": "keyword.operator.comparison.stata" - }, - { - "match": "\\(|\\)", - "name": "keyword.operator.parentheses.stata" - }, - { - "match": "(##|#)", - "name": "keyword.operator.factor-variables.stata" - }, - { - "match": "%", - "name": "keyword.operator.format.stata" - }, - { - "match": ":", - "name": "punctuation.separator.key-value" - }, - { - "match": "\\[", - "name": "punctuation.definition.parameters.begin.stata" - }, - { - "match": "\\]", - "name": "punctuation.definition.parameters.end.stata" - }, - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - }, - { - "match": ";", - "name": "keyword.operator.delimiter.stata" - } - ] - }, - "string-compound": { - "patterns": [ - { - "begin": "`\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "\"'|(?=\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.stata" - } - }, - "name": "string.quoted.double.compound.stata", - "patterns": [ - { - "match": "\"", - "name": "string.quoted.double.compound.stata", - "comment": "This must come before #string-regular and #string-compound to accurately color `\"\"\"' in strings" - }, - { - "match": "```(?=[^']*\")", - "name": "meta.markdown.code.block.stata", - "comment": "see https://github.com/kylebarron/language-stata/issues/53" - }, - { - "include": "#string-regular" - }, - { - "include": "#string-compound" - }, - { - "include": "#macro-local-escaped" - }, - { - "include": "#macro-global-escaped" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - } - ] - }, - "string-regular": { - "patterns": [ - { - "begin": "(?<!`)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.stata" - } - }, - "end": "(\")(')?|(?=\n)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.stata" - }, - "2": { - "name": "invalid.illegal.punctuation.stata" - } - }, - "name": "string.quoted.double.stata", - "patterns": [ - { - "match": "```(?=[^']*\")", - "name": "meta.markdown.code.block.stata", - "comment": "see https://github.com/kylebarron/language-stata/issues/53" - }, - { - "include": "#macro-local-escaped" - }, - { - "include": "#macro-global-escaped" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - } - ] - } - ] - }, - "subscripts": { - "patterns": [ - { - "comment": "highlight expressions, like [_n], when using subscripts on a variable", - "begin": "(?<=[\\w'])(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.stata" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.stata" - } - }, - "name": "meta.subscripts.stata", - "patterns": [ - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#builtin_variables" - }, - { - "include": "#operators" - }, - { - "include": "#constants" - }, - { - "include": "#functions" - } - ] - } - ] - }, - "reserved-names": { - "patterns": [ - { - "match": "\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\b", - "name": "invalid.illegal.name.stata" - }, - { - "match": "[^\\w'`\\$\\(\\)\\s]", - "name": "invalid.illegal.name.stata" - }, - { - "match": "[0-9][\\w]{31,}", - "name": "invalid.illegal.name.stata" - }, - { - "match": "\\w{33,}", - "name": "invalid.illegal.name.stata" - } - ] - }, - "macro-local-identifiers": { - "patterns": [ - { - "match": "[^\\w'`\\$\\(\\)\\s]", - "name": "invalid.illegal.name.stata" - }, - { - "match": "\\w{32,}", - "name": "invalid.illegal.name.stata" - }, - { - "match": "\\w{1,31}", - "name": "entity.name.type.class.stata" - } - ] - }, - "ascii-regex-functions": { - "patterns": [ - { - "comment": "color regexm with regular quotes i.e. \" ", - "match": "\\b(regexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#ascii-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "name": "invalid.illegal.punctuation.stata" - }, - "9": { - "name": "punctuation.definition.parameters.end.stata" - } - } - }, - { - "comment": "color regexm with compound quotes", - "match": "\\b(regexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#ascii-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "name": "punctuation.definition.parameters.end.stata" - } - } - }, - { - "comment": "color regexr with regular quotes i.e. \" ", - "match": "\\b(regexr)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^\\)]*)(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#ascii-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "name": "invalid.illegal.punctuation.stata" - }, - "9": { - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "10": { - "name": "punctuation.definition.parameters.end.stata" - } - } - }, - { - "comment": "color regexr with compound quotes i.e. `\"text\"' ", - "match": "\\b(regexr)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^\\)]*)(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#ascii-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "9": { - "name": "punctuation.definition.parameters.end.stata" - } - } - } - ] - }, - "ascii-regex-internals": { - "patterns": [ - { - "match": "\\^", - "name": "keyword.control.anchor.stata" - }, - { - "match": "\\$(?![a-zA-Z_\\{])", - "name": "keyword.control.anchor.stata", - "comment": "matched when not a global, but must be ascii" - }, - { - "match": "[\\?\\+\\*]", - "name": "keyword.control.quantifier.stata" - }, - { - "match": "\\|", - "name": "keyword.control.or.stata" - }, - { - "begin": "(\\()(?=\\?|\\*|\\+)", - "beginCaptures": { - "1": { - "name": "keyword.operator.group.stata" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "keyword.operator.group.stata" - } - }, - "contentName": "invalid.illegal.regexm.stata" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.group.stata" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.operator.group.stata" - } - }, - "patterns": [ - { - "include": "#ascii-regex-internals" - } - ] - }, - { - "include": "#ascii-regex-character-class" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "comment": "NOTE: Error if I have .+ No idea why but it works fine it seems with just .", - "match": ".", - "name": "string.quoted.stata" - } - ] - }, - "ascii-regex-character-class": { - "patterns": [ - { - "match": "\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]", - "name": "constant.character.escape.backslash.stata" - }, - { - "match": "\\.", - "name": "constant.character.character-class.stata" - }, - { - "match": "\\\\.", - "name": "illegal.invalid.character-class.stata" - }, - { - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.stata" - }, - "2": { - "name": "keyword.operator.negation.stata" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.stata" - } - }, - "name": "constant.other.character-class.set.stata", - "patterns": [ - { - "include": "#ascii-regex-character-class" - }, - { - "captures": { - "2": { - "name": "constant.character.escape.backslash.stata" - }, - "4": { - "name": "constant.character.escape.backslash.stata" - } - }, - "match": "((\\\\.)|.)\\-((\\\\.)|[^\\]])", - "name": "constant.other.character-class.range.stata" - } - ] - } - ] - }, - "unicode-regex-functions": { - "patterns": [ - { - "comment": "color regexm with regular quotes i.e. \" ", - "match": "\\b(ustrregexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)([,0-9\\s]*)?\\s*(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "name": "invalid.illegal.punctuation.stata" - }, - "9": { - "patterns": [ - { - "include": "#constants" - }, - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - } - ] - }, - "10": { - "name": "punctuation.definition.parameters.end.stata" - } - } - }, - { - "comment": "color regexm with compound quotes", - "match": "\\b(ustrregexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')([,0-9\\s]*)?\\s*(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "patterns": [ - { - "include": "#constants" - }, - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - } - ] - }, - "9": { - "name": "punctuation.definition.parameters.end.stata" - } - } - }, - { - "comment": "color regexr with regular quotes i.e. \" ", - "match": "\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^\\)]*)(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "name": "invalid.illegal.punctuation.stata" - }, - "9": { - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - }, - { - "include": "#constants" - } - ] - }, - "10": { - "name": "punctuation.definition.parameters.end.stata" - } - } - }, - { - "comment": "color regexr with compound quotes i.e. `\"text\"' ", - "match": "\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^\\)]*)(\\))", - "captures": { - "1": { - "name": "support.function.builtin.stata" - }, - "2": { - "name": "punctuation.definition.parameters.begin.stata" - }, - "3": { - "patterns": [ - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.begin.stata" - }, - "5": { - "name": "punctuation.definition.string.begin.stata" - }, - "6": { - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - "7": { - "name": "punctuation.definition.string.end.stata" - }, - "8": { - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.variable.begin.stata" - }, - { - "include": "#string-compound" - }, - { - "include": "#string-regular" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "include": "#functions" - }, - { - "match": "[\\w&&[^0-9]]\\w{0,31}", - "name": "variable.parameter.function.stata" - }, - { - "include": "#comments-triple-slash" - }, - { - "include": "#constants" - } - ] - }, - "9": { - "name": "punctuation.definition.parameters.end.stata" - } - } - } - ] - }, - "unicode-regex-internals": { - "patterns": [ - { - "match": "\\\\[bBAZzG]|\\^", - "name": "keyword.control.anchor.stata" - }, - { - "match": "\\$(?![[\\w&&[^0-9_]][\\w]{0,31}|_[\\w]{1,31}\\{])", - "name": "keyword.control.anchor.stata", - "comment": "matched when not a global" - }, - { - "match": "\\\\[1-9][0-9]?", - "name": "keyword.other.back-reference.stata" - }, - { - "match": "[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", - "name": "keyword.operator.quantifier.stata" - }, - { - "match": "\\|", - "name": "keyword.operator.or.stata" - }, - { - "begin": "\\((?!\\?\\#|\\?=|\\?!|\\?<=|\\?<!)", - "end": "\\)", - "name": "keyword.operator.group.stata", - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - { - "begin": "\\(\\?\\#", - "end": "\\)", - "name": "comment.block.stata" - }, - { - "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", - "match": "(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$", - "name": "comment.line.number-sign.stata" - }, - { - "match": "\\(\\?[iLmsux]+\\)", - "name": "keyword.other.option-toggle.stata" - }, - { - "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", - "beginCaptures": { - "1": { - "name": "keyword.operator.group.stata" - }, - "2": { - "name": "punctuation.definition.group.assertion.stata" - }, - "3": { - "name": "keyword.assertion.look-ahead.stata" - }, - "4": { - "name": "keyword.assertion.negative-look-ahead.stata" - }, - "5": { - "name": "keyword.assertion.look-behind.stata" - }, - "6": { - "name": "keyword.assertion.negative-look-behind.stata" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.operator.group.stata" - } - }, - "name": "meta.group.assertion.stata", - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - { - "begin": "(\\()(\\?\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.group.stata" - }, - "2": { - "name": "punctuation.definition.group.assertion.conditional.stata" - }, - "3": { - "name": "entity.name.section.back-reference.stata" - } - }, - "comment": "we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.", - "end": "(\\))", - "name": "meta.group.assertion.conditional.stata", - "patterns": [ - { - "include": "#unicode-regex-internals" - } - ] - }, - { - "include": "#unicode-regex-character-class" - }, - { - "include": "#macro-local" - }, - { - "include": "#macro-global" - }, - { - "comment": "NOTE: Error if I have .+ No idea why but it works fine it seems with just .", - "match": ".", - "name": "string.quoted.stata" - } - ] - }, - "unicode-regex-character-class": { - "patterns": [ - { - "match": "\\\\[wWsSdD]|\\.", - "name": "constant.character.character-class.stata" - }, - { - "match": "\\\\.", - "name": "constant.character.escape.backslash.stata" - }, - { - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.stata" - }, - "2": { - "name": "keyword.operator.negation.stata" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.stata" - } - }, - "name": "constant.other.character-class.set.stata", - "patterns": [ - { - "include": "#unicode-regex-character-class" - }, - { - "captures": { - "2": { - "name": "constant.character.escape.backslash.stata" - }, - "4": { - "name": "constant.character.escape.backslash.stata" - } - }, - "match": "((\\\\.)|.)\\-((\\\\.)|[^\\]])", - "name": "constant.other.character-class.range.stata" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/stylus.tmLanguage.json b/lib/grammars/stylus.tmLanguage.json deleted file mode 100644 index 13a7d7b..0000000 --- a/lib/grammars/stylus.tmLanguage.json +++ /dev/null @@ -1,1202 +0,0 @@ -{ - "name": "stylus", - "scopeName": "source.stylus", - "fileTypes": ["styl", "stylus", "css.styl", "css.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": { - "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" - } - ] - }, - "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" - }, - { - "match": "\\s*(\\&)([a-zA-Z0-9_-]+)\\s*", - "captures": { - "2": { - "name": "entity.other.attribute-name.parent-selector-suffix.stylus" - } - }, - "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)(\\))" - }, - { - "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" - }, - "5": { - "name": "punctuation.section.function.css" - } - } - }, - { - "match": "((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?", - "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" - } - } - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - } - }, - "match": "(:)(active|hover|link|visited|focus)\\b", - "name": "entity.other.attribute-name.pseudo-class.css" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - } - }, - "match": "(::)(shadow)\\b", - "name": "entity.other.attribute-name.pseudo-class.css" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "name": "entity.other.attribute-name.attribute.css" - }, - "3": { - "name": "punctuation.separator.operator.css" - }, - "4": { - "name": "string.unquoted.attribute-value.css" - }, - "5": { - "name": "string.quoted.double.attribute-value.css" - }, - "6": { - "name": "punctuation.definition.string.begin.css" - }, - "7": { - "name": "punctuation.definition.string.end.css" - }, - "8": { - "name": "punctuation.definition.entity.css" - } - }, - "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", - "name": "meta.attribute-selector.css" - }, - { - "include": "#interpolation" - }, - { - "include": "#variable" - } - ] - }, - "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" - } - ] - }, - "declaration": { - "begin": "((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)", - "end": "(?=\\n)|(;)|(?=\\})|(\\n)", - "endCaptures": { - "2": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.property-list.css", - "patterns": [ - { - "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "name": "variable.css" - }, - { - "include": "#language_keywords" - }, - { - "include": "#language_constants" - }, - { - "match": "(?:(?<=^)[^\\S\\n]+(\\n))" - }, - { - "match": "\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)", - "captures": { - "1": { - "name": "support.type.property-name.css" - }, - "2": { - "name": "punctuation.separator.key-value.css" - }, - "3": { - "name": "variable.section.css" - } - }, - "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" - } - ] - }, - "property": { - "begin": "(?x:\\G\\s*(?:\n (-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)|\n (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)|\n ([a-zA-Z_-][a-zA-Z0-9_-]*)\n)(?!([^\\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" - } - ] - }, - "numeric": { - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.unit.css" - } - }, - "match": "(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?", - "name": "constant.numeric.css" - } - ] - }, - "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" - } - ] - }, - "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" - } - ] - } - ] - }, - "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" - } - ] - }, - { - "match": "^\\s*((@)font-face)\\b", - "captures": { - "1": { - "name": "keyword.control.at-rule.fontface.stylus" - }, - "2": { - "name": "punctuation.definition.keyword.stylus" - } - }, - "name": "meta.at-rule.fontface.stylus" - }, - { - "match": "^\\s*((@)css)\\b", - "captures": { - "1": { - "name": "keyword.control.at-rule.css.stylus" - }, - "2": { - "name": "punctuation.definition.keyword.stylus" - } - }, - "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" - } - ] - }, - { - "match": "^\\s*((@)media)\\b", - "captures": { - "1": { - "name": "keyword.control.at-rule.media.stylus" - }, - "2": { - "name": "punctuation.definition.keyword.stylus" - } - }, - "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" - } - ] - }, - "operator": { - "patterns": [ - { - "match": "((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)", - "name": "keyword.operator.stylus" - }, - { - "include": "#char_escape" - } - ] - }, - "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" - }, - "variable": { - "match": "(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)", - "name": "variable.stylus" - }, - "property_variable": { - "patterns": [ - { - "include": "#variable" - }, - { - "match": "(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)", - "name": "variable.property.stylus" - } - ] - }, - "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*" - } - ] - }, - { - "match": "(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))", - "captures": { - "1": { - "name": "support.function.misc.counter.css" - }, - "2": { - "name": "punctuation.section.function.css" - }, - "3": { - "name": "variable.section.css" - } - }, - "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": [ - { - "name": "variable.argument.stylus", - "match": "(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*" - }, - { - "match": "\\s*(,)\\s*", - "name": "punctuation.separator.parameter.css" - }, - { - "include": "#interpolation" - }, - { - "include": "#property_values" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.function.css" - } - ] - }, - "interpolation": { - "name": "meta.interpolation.stylus", - "begin": "(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})", - "beginCaptures": { - "1": { - "name": "meta.brace.curly" - } - }, - "end": "(?:[^\\S\\n]*(\\}))|\\n|$", - "endCaptures": { - "1": { - "name": "meta.brace.curly" - } - }, - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#numeric" - }, - { - "include": "#string" - }, - { - "include": "#operator" - } - ] - }, - "char_escape": { - "name": "constant.character.escape.stylus", - "match": "\\\\(.)" - }, - "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" - } - ] - } - } -} diff --git a/lib/grammars/svelte.tmLanguage.json b/lib/grammars/svelte.tmLanguage.json deleted file mode 100644 index 1b27523..0000000 --- a/lib/grammars/svelte.tmLanguage.json +++ /dev/null @@ -1,1161 +0,0 @@ -{ - "name": "svelte", - "scopeName": "source.svelte", - "fileTypes": ["svelte"], - "uuid": "7582b62f-51d9-4a84-8c8d-fc189530faf6", - "injections": { - "L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - "L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.coffee", - "patterns": [ - { - "include": "source.coffee" - } - ] - } - ] - }, - "L:meta.script.svelte - meta.lang - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "L:meta.style.svelte meta.lang.stylus - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.stylus", - "patterns": [ - { - "include": "source.stylus" - } - ] - } - ] - }, - "L:meta.style.svelte meta.lang.sass - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.sass", - "patterns": [ - { - "include": "source.sass" - } - ] - } - ] - }, - "L:meta.style.svelte meta.lang.css - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - "L:meta.style.svelte meta.lang.scss - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.css.scss", - "patterns": [ - { - "include": "source.css.scss" - } - ] - } - ] - }, - "L:meta.style.svelte meta.lang.less - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.css.less", - "patterns": [ - { - "include": "source.css.less" - } - ] - } - ] - }, - "L:meta.style.svelte meta.lang.postcss - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.css.postcss", - "patterns": [ - { - "include": "source.css.postcss" - } - ] - } - ] - }, - "L:meta.style.svelte - meta.lang - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "source.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - "L:meta.template.svelte meta.lang.pug - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)(?!</)", - "end": "(?=</)", - "name": "meta.embedded.block.svelte", - "contentName": "text.pug", - "patterns": [ - { - "include": "text.pug" - } - ] - } - ] - }, - "L:meta.template.svelte - meta.lang - (meta source)": { - "patterns": [ - { - "begin": "(?<=>)\\s", - "end": "(?=</template)", - "patterns": [ - { - "include": "#scope" - } - ] - } - ] - }, - "L:(source.ts, source.js, source.coffee)": { - "patterns": [ - { - "match": "(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)", - "name": "punctuation.definition.variable.svelte" - }, - { - "match": "(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)", - "name": "punctuation.definition.variable.svelte" - } - ] - } - }, - "patterns": [ - { - "include": "#scope" - } - ], - "repository": { - "scope": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#special-tags" - }, - { - "include": "#tags" - }, - { - "include": "#interpolation" - }, - { - "begin": "(?<=>|})", - "end": "(?=<|{)", - "name": "text.svelte" - } - ] - }, - "comments": { - "begin": "<!--", - "end": "-->", - "captures": { - "0": { - "name": "punctuation.definition.comment.svelte" - } - }, - "name": "comment.block.svelte", - "patterns": [ - { - "begin": "(@)(component)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.keyword.svelte" - }, - "2": { - "name": "storage.type.class.component.svelte keyword.declaration.class.component.svelte" - } - }, - "end": "(?=-->)", - "contentName": "comment.block.documentation.svelte", - "patterns": [ - { - "match": ".*?(?=-->)", - "captures": { - "0": { - "patterns": [ - { - "include": "text.html.markdown" - } - ] - } - } - }, - { - "include": "text.html.markdown" - } - ] - }, - { - "match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>", - "name": "invalid.illegal.characters-not-allowed-here.svelte" - } - ] - }, - "destructuring": { - "patterns": [ - { - "begin": "(?={)", - "end": "(?<=})", - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts#object-binding-pattern" - } - ] - }, - { - "begin": "(?=\\[)", - "end": "(?<=\\])", - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts#array-binding-pattern" - } - ] - } - ] - }, - "destructuring-const": { - "patterns": [ - { - "begin": "(?={)", - "end": "(?<=})", - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts#object-binding-pattern-const" - } - ] - }, - { - "begin": "(?=\\[)", - "end": "(?<=\\])", - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts#array-binding-pattern-const" - } - ] - } - ] - }, - "interpolation": { - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.svelte" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.svelte" - } - }, - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "begin": "\\G\\s*(?={)", - "end": "(?<=})", - "patterns": [ - { - "include": "source.ts#object-literal" - } - ] - }, - { - "include": "source.ts" - } - ] - } - ] - }, - "special-tags": { - "patterns": [ - { - "include": "#special-tags-void" - }, - { - "include": "#special-tags-block-begin" - }, - { - "include": "#special-tags-block-end" - } - ] - }, - "special-tags-keywords": { - "match": "([#@/:])(else\\s+if|[a-z]*)", - "captures": { - "1": { - "name": "punctuation.definition.keyword.svelte" - }, - "2": { - "patterns": [ - { - "match": "if|else\\s+if|else", - "name": "keyword.control.conditional.svelte" - }, - { - "match": "each|key", - "name": "keyword.control.svelte" - }, - { - "match": "await|then|catch", - "name": "keyword.control.flow.svelte" - }, - { - "match": "html", - "name": "keyword.other.svelte" - }, - { - "match": "debug", - "name": "keyword.other.debugger.svelte" - }, - { - "match": "const", - "name": "storage.type.svelte" - } - ] - } - } - }, - "special-tags-modes": { - "patterns": [ - { - "begin": "(?<=(if|key|then|catch|html).*?)\\G", - "end": "(?=})", - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - { - "begin": "(?<=const.*?)\\G", - "end": "(?=})", - "patterns": [ - { - "include": "#destructuring-const" - }, - { - "begin": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*", - "end": "(?=\\=)", - "beginCaptures": { - "1": { - "name": "variable.other.constant.svelte" - } - } - }, - { - "begin": "(?=\\=)", - "name": "meta.embedded.expression.svelte source.ts", - "end": "(?=})", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - { - "begin": "(?<=each.*?)\\G", - "end": "(?=})", - "patterns": [ - { - "begin": "\\G\\s*?(?=\\S)", - "end": "(?=(?:^\\s*|\\s+)(as))", - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - { - "begin": "(as)", - "beginCaptures": { - "1": { - "name": "keyword.control.as.svelte" - } - }, - "end": "(?=})", - "patterns": [ - { - "include": "#destructuring" - }, - { - "begin": "\\(", - "end": "\\)|(?=})", - "captures": { - "0": { - "name": "meta.brace.round.svelte" - } - }, - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - { - "match": "(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)", - "captures": { - "1": { - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - } - } - }, - { - "match": ",", - "name": "punctuation.separator.svelte" - } - ] - } - ] - }, - { - "begin": "(?<=await.*?)\\G", - "end": "(?=})", - "patterns": [ - { - "begin": "\\G\\s*?(?=\\S)", - "end": "\\s+(then)|(?=})", - "endCaptures": { - "1": { - "name": "keyword.control.flow.svelte" - } - }, - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - { - "begin": "(?<=then\\b)", - "end": "(?=})", - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - { - "begin": "(?<=debug.*?)\\G", - "end": "(?=})", - "patterns": [ - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - } - } - }, - { - "match": ",", - "name": "punctuation.separator.svelte" - } - ] - } - ] - }, - "special-tags-void": { - "begin": "({)\\s*((?:[@:])(else\\s+if|[a-z]*))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.begin.svelte" - }, - "2": { - "patterns": [ - { - "include": "#special-tags-keywords" - } - ] - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.end.svelte" - } - }, - "name": "meta.special.$3.svelte", - "patterns": [ - { - "include": "#special-tags-modes" - } - ] - }, - "special-tags-block-begin": { - "begin": "({)\\s*(#([a-z]*))", - "end": "(})", - "name": "meta.special.$3.svelte meta.special.start.svelte", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.begin.svelte" - }, - "2": { - "patterns": [ - { - "include": "#special-tags-keywords" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.block.end.svelte" - } - }, - "patterns": [ - { - "include": "#special-tags-modes" - } - ] - }, - "special-tags-block-end": { - "begin": "({)\\s*(/([a-z]*))", - "end": "(})", - "name": "meta.special.$3.svelte meta.special.end.svelte", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.begin.svelte" - }, - "2": { - "patterns": [ - { - "include": "#special-tags-keywords" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.block.end.svelte" - } - } - }, - "attributes": { - "patterns": [ - { - "include": "#attributes-directives" - }, - { - "include": "#attributes-keyvalue" - }, - { - "include": "#attributes-interpolated" - } - ] - }, - "attributes-interpolated": { - "begin": "(?<!:|=)\\s*({)", - "end": "(\\})", - "captures": { - "1": { - "name": "entity.other.attribute-name.svelte" - } - }, - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "source.ts" - } - ] - }, - "attributes-keyvalue": { - "begin": "((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)", - "beginCaptures": { - "0": { - "patterns": [ - { - "match": "--.*", - "name": "support.type.property-name.svelte" - }, - { - "match": ".*", - "name": "entity.other.attribute-name.svelte" - } - ] - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.svelte", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.svelte" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "include": "#attributes-value" - } - ] - } - ] - }, - "attributes-value": { - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.svelte" - }, - "2": { - "name": "constant.numeric.decimal.svelte" - }, - "3": { - "name": "punctuation.definition.string.end.svelte" - }, - "4": { - "name": "constant.numeric.decimal.svelte" - } - } - }, - { - "match": "([^\\s\"'=<>`/]|/(?!>))+", - "name": "string.unquoted.svelte", - "patterns": [ - { - "include": "#interpolation" - } - ] - }, - { - "begin": "(['\"])", - "end": "\\1", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.svelte" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.svelte" - } - }, - "name": "string.quoted.svelte", - "patterns": [ - { - "include": "#interpolation" - } - ] - } - ] - }, - "attributes-directives-keywords": { - "patterns": [ - { - "match": "on|use|bind", - "name": "keyword.control.svelte" - }, - { - "match": "transition|in|out|animate", - "name": "keyword.other.animation.svelte" - }, - { - "match": "let", - "name": "storage.type.svelte" - }, - { - "match": "class|style", - "name": "entity.other.attribute-name.svelte" - } - ] - }, - "attributes-directives-types": { - "patterns": [ - { - "match": "(?<=(on):).*$", - "name": "entity.name.type.svelte" - }, - { - "match": "(?<=(bind):).*$", - "name": "variable.parameter.svelte" - }, - { - "match": "(?<=(use|transition|in|out|animate):).*$", - "name": "variable.function.svelte" - }, - { - "match": "(?<=(let|class|style):).*$", - "name": "variable.parameter.svelte" - } - ] - }, - "attributes-directives-types-assigned": { - "patterns": [ - { - "match": "(?<=(bind):)this$", - "name": "variable.language.svelte" - }, - { - "match": "(?<=(bind):).*$", - "name": "entity.name.type.svelte" - }, - { - "match": "(?<=(class):).*$", - "name": "entity.other.attribute-name.class.svelte" - }, - { - "match": "(?<=(style):).*$", - "name": "support.type.property-name.svelte" - }, - { - "include": "#attributes-directives-types" - } - ] - }, - "attributes-directives": { - "begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#attributes-directives-keywords" - } - ] - }, - "2": { - "name": "punctuation.definition.keyword.svelte" - }, - "3": { - "patterns": [ - { - "include": "#attributes-directives-types-assigned" - } - ] - }, - "4": { - "patterns": [ - { - "include": "#attributes-directives-types" - } - ] - }, - "5": { - "patterns": [ - { - "match": "\\w+", - "name": "support.function.svelte" - }, - { - "match": "\\|", - "name": "punctuation.separator.svelte" - } - ] - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.directive.$1.svelte", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.svelte" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "include": "#attributes-value" - } - ] - } - ] - }, - "attributes-generics": { - "begin": "(generics)(=)([\"'])", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.svelte" - }, - "2": { - "name": "punctuation.separator.key-value.svelte" - }, - "3": { - "name": "punctuation.definition.string.begin.svelte" - } - }, - "end": "(\\3)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.svelte" - } - }, - "contentName": "meta.embedded.expression.svelte source.ts", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.ts", - "patterns": [ - { - "include": "source.ts#comment" - }, - { - "name": "storage.modifier.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "source.ts#type" - }, - { - "include": "source.ts#punctuation-comma" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "(=)(?!>)" - } - ] - }, - "tags": { - "patterns": [ - { - "include": "#tags-lang" - }, - { - "include": "#tags-void" - }, - { - "include": "#tags-general-end" - }, - { - "include": "#tags-general-start" - } - ] - }, - "tags-name": { - "patterns": [ - { - "match": "(svelte)(:)([a-z][\\w0-9:-]*)", - "captures": { - "1": { - "name": "keyword.control.svelte" - }, - "2": { - "name": "punctuation.definition.keyword.svelte" - }, - "3": { - "name": "entity.name.tag.svelte" - } - } - }, - { - "match": "slot", - "name": "keyword.control.svelte" - }, - { - "match": "[A-Z][a-zA-Z0-9_]*", - "name": "support.class.component.svelte" - }, - { - "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*", - "name": "meta.tag.custom.svelte entity.name.tag.svelte" - }, - { - "match": "[a-z][\\w0-9:-]*", - "name": "entity.name.tag.svelte" - } - ] - }, - "tags-start-attributes": { - "begin": "\\G", - "end": "(?=/?>)", - "name": "meta.tag.start.svelte", - "patterns": [ - { - "include": "#attributes" - } - ] - }, - "tags-lang-start-attributes": { - "begin": "\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.svelte" - } - }, - "name": "meta.tag.start.svelte", - "patterns": [ - { - "include": "#attributes-generics" - }, - { - "include": "#attributes" - } - ] - }, - "tags-start-node": { - "match": "(<)([^/\\s>/]*)", - "captures": { - "1": { - "name": "punctuation.definition.tag.begin.svelte" - }, - "2": { - "patterns": [ - { - "include": "#tags-name" - } - ] - } - }, - "name": "meta.tag.start.svelte" - }, - "tags-end-node": { - "match": "(</)(.*?)\\s*(>)|(/>)", - "captures": { - "1": { - "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte" - }, - "2": { - "name": "meta.tag.end.svelte", - "patterns": [ - { - "include": "#tags-name" - } - ] - }, - "3": { - "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte" - }, - "4": { - "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte" - } - } - }, - "tags-lang": { - "begin": "<(script|style|template)", - "end": "</\\1\\s*>|/>", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-start-node" - } - ] - } - }, - "endCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-end-node" - } - ] - } - }, - "name": "meta.$1.svelte", - "patterns": [ - { - "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)", - "end": "(?=</|/>)", - "name": "meta.lang.$3.svelte", - "patterns": [ - { - "include": "#tags-lang-start-attributes" - } - ] - }, - { - "include": "#tags-lang-start-attributes" - } - ] - }, - "tags-void": { - "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.svelte" - }, - "2": { - "name": "entity.name.tag.svelte" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.begin.svelte" - } - }, - "name": "meta.tag.void.svelte", - "patterns": [ - { - "include": "#attributes" - } - ] - }, - "tags-general-start": { - "begin": "(<)([^/\\s>/]*)", - "end": "(/?>)", - "beginCaptures": { - "0": { - "patterns": [ - { - "include": "#tags-start-node" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte" - } - }, - "name": "meta.scope.tag.$2.svelte", - "patterns": [ - { - "include": "#tags-start-attributes" - } - ] - }, - "tags-general-end": { - "begin": "(</)([^/\\s>]*)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte" - }, - "2": { - "name": "meta.tag.end.svelte", - "patterns": [ - { - "include": "#tags-name" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte" - } - }, - "name": "meta.scope.tag.$2.svelte" - } - } -} diff --git a/lib/grammars/swift.tmLanguage.json b/lib/grammars/swift.tmLanguage.json deleted file mode 100644 index 0081b14..0000000 --- a/lib/grammars/swift.tmLanguage.json +++ /dev/null @@ -1,3303 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/swift.tmbundle/blob/master/Syntaxes/Swift.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/swift.tmbundle/commit/7a35637eb70aef3114b091c4ff6fbf6a2faa881b", - "name": "swift", - "scopeName": "source.swift", - "comment": "See swift.tmbundle/grammar-test.swift for test cases.", - "patterns": [ - { - "include": "#root" - } - ], - "repository": { - "async-throws": { - "captures": { - "1": { - "name": "invalid.illegal.await-must-precede-throws.swift" - }, - "2": { - "name": "keyword.control.exception.swift" - }, - "3": { - "name": "keyword.control.async.swift" - } - }, - "match": "\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b" - }, - "attributes": { - "patterns": [ - { - "begin": "((@)available)(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.attribute.swift" - }, - "2": { - "name": "punctuation.definition.attribute.swift" - }, - "3": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.attribute.available.swift", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.platform.os.swift" - }, - "2": { - "name": "constant.numeric.swift" - } - }, - "match": "\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?" - }, - { - "begin": "\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b", - "name": "constant.numeric.swift" - } - ] - }, - { - "begin": "\\b(message|renamed)\\s*(:)\\s*(?=\")", - "beginCaptures": { - "1": { - "name": "keyword.other.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#literals" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.platform.all.swift" - }, - "2": { - "name": "keyword.other.swift" - }, - "3": { - "name": "invalid.illegal.character-not-allowed-here.swift" - } - }, - "match": "(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])" - } - ] - }, - { - "begin": "((@)objc)(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.attribute.swift" - }, - "2": { - "name": "punctuation.definition.attribute.swift" - }, - "3": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.attribute.objc.swift", - "patterns": [ - { - "captures": { - "1": { - "name": "invalid.illegal.missing-colon-after-selector-piece.swift" - } - }, - "match": "\\w*(?::(?:\\w*:)*(\\w*))?", - "name": "entity.name.function.swift" - } - ] - }, - { - "begin": "(@)(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)", - "beginCaptures": { - "0": { - "name": "storage.modifier.attribute.swift" - }, - "1": { - "name": "punctuation.definition.attribute.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "comment": "any other attribute", - "end": "(?!\\G\\()", - "name": "meta.attribute.swift", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.arguments.attribute.swift", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - } - ] - }, - "builtin-functions": { - "patterns": [ - { - "comment": "Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses", - "match": "(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b", - "name": "support.function.swift" - }, - { - "comment": "Member functions in the standard library in Swift 3", - "match": "(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()", - "name": "support.function.swift" - }, - { - "comment": "Member functions in the standard library in Swift 2 only", - "match": "(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()", - "name": "support.function.swift" - } - ] - }, - "builtin-global-functions": { - "patterns": [ - { - "begin": "\\b(type)(\\()\\s*(of)(:)", - "beginCaptures": { - "1": { - "name": "support.function.dynamic-type.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - }, - "3": { - "name": "support.variable.parameter.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "comment": "Global functions available in Swift 3 which may be used with trailing closures and no parentheses", - "match": "\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b", - "name": "support.function.swift" - }, - { - "comment": "Global functions available in Swift 3", - "match": "\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()", - "name": "support.function.swift" - }, - { - "comment": "Global functions available in Swift 2 only", - "match": "\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()", - "name": "support.function.swift" - } - ] - }, - "builtin-properties": { - "patterns": [ - { - "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29", - "match": "(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)", - "name": "support.variable.swift" - }, - { - "comment": "Properties in the standard library in Swift 3", - "match": "(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b", - "name": "support.variable.swift" - }, - { - "comment": "Properties in the standard library in Swift 2 only", - "match": "(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b", - "name": "support.variable.swift" - }, - { - "comment": "Enum cases in the standard library - note that there is some overlap between these and the properties", - "match": "(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b", - "name": "support.variable.swift" - } - ] - }, - "builtin-types": { - "comment": "Types provided in the standard library", - "patterns": [ - { - "include": "#builtin-class-type" - }, - { - "include": "#builtin-enum-type" - }, - { - "include": "#builtin-protocol-type" - }, - { - "include": "#builtin-struct-type" - }, - { - "include": "#builtin-typealias" - }, - { - "match": "\\bAny\\b", - "name": "support.type.any.swift" - } - ], - "repository": { - "builtin-class-type": { - "comment": "Builtin class types", - "match": "\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b", - "name": "support.class.swift" - }, - "builtin-enum-type": { - "patterns": [ - { - "comment": "CommandLine is an enum, but it acts like a constant", - "match": "\\b(?:CommandLine|Process(?=\\.))\\b", - "name": "support.constant.swift" - }, - { - "comment": "The return type of a function that never returns", - "match": "\\bNever\\b", - "name": "support.constant.never.swift" - }, - { - "comment": "Enum types in the standard library in Swift 3", - "match": "\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b", - "name": "support.type.swift" - }, - { - "comment": "Enum types in the standard library in Swift 2 only", - "match": "\\b(?:MirrorDisposition|QuickLookObject)\\b", - "name": "support.type.swift" - } - ] - }, - "builtin-protocol-type": { - "patterns": [ - { - "comment": "Protocols in the standard library in Swift 3", - "match": "\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b", - "name": "support.type.swift" - }, - { - "comment": "Protocols in the standard library in Swift 2 only", - "match": "\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b", - "name": "support.type.swift" - } - ] - }, - "builtin-struct-type": { - "patterns": [ - { - "comment": "Structs in the standard library in Swift 3", - "match": "\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b", - "name": "support.type.swift" - }, - { - "comment": "Structs in the standard library in Swift 2 only", - "match": "\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b", - "name": "support.type.swift" - } - ] - }, - "builtin-typealias": { - "patterns": [ - { - "comment": "Typealiases in the standard library in Swift 3", - "match": "\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b", - "name": "support.type.swift" - }, - { - "comment": "Typealiases in the standard library in Swift 2 only", - "match": "\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b", - "name": "support.type.swift" - } - ] - } - } - }, - "code-block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.swift" - } - }, - "match": "\\A^(#!).*$\\n?", - "name": "comment.line.number-sign.swift" - }, - { - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "name": "comment.block.documentation.swift", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "begin": "/\\*:", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "name": "comment.block.documentation.playground.swift", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "name": "comment.block.swift", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "match": "\\*/", - "name": "invalid.illegal.unexpected-end-of-block-comment.swift" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "///", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - }, - "end": "^", - "name": "comment.line.triple-slash.documentation.swift" - }, - { - "begin": "//:", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - }, - "end": "^", - "name": "comment.line.double-slash.documentation.swift" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - }, - "end": "^", - "name": "comment.line.double-slash.swift" - } - ] - } - ], - "repository": { - "nested": { - "begin": "/\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#nested" - } - ] - } - } - }, - "compiler-control": { - "patterns": [ - { - "begin": "^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.conditional.swift" - }, - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.conditional.swift" - }, - "3": { - "name": "constant.language.boolean.swift" - } - }, - "contentName": "comment.block.preprocessor.swift", - "end": "(?=^\\s*(#(elseif|else|endif)\\b))" - }, - { - "begin": "^\\s*(#)(if|elseif)\\s+", - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.conditional.swift" - } - }, - "end": "(?=\\s*(?://|/\\*))|$", - "name": "meta.preprocessor.conditional.swift", - "patterns": [ - { - "match": "(&&|\\|\\|)", - "name": "keyword.operator.logical.swift" - }, - { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.swift" - }, - { - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "support.constant.platform.architecture.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "match": "\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))" - }, - { - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "support.constant.platform.os.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "match": "\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))" - }, - { - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "entity.name.type.module.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "match": "\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))" - }, - { - "begin": "\\b(targetEnvironment)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "(\\))|$", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "match": "\\b(simulator|UIKitForMac)\\b", - "name": "support.constant.platform.environment.swift" - } - ] - }, - { - "begin": "\\b(swift|compiler)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "(\\))|$", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "match": ">=|<", - "name": "keyword.operator.comparison.swift" - }, - { - "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b", - "name": "constant.numeric.swift" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.conditional.swift" - }, - "3": { - "patterns": [ - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - }, - "match": "^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)", - "name": "meta.preprocessor.conditional.swift" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.sourcelocation.swift" - }, - "4": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "5": { - "patterns": [ - { - "begin": "(file)\\s*(:)\\s*(?=\")", - "beginCaptures": { - "1": { - "name": "support.variable.parameter.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#literals" - } - ] - }, - { - "captures": { - "1": { - "name": "support.variable.parameter.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - }, - "3": { - "name": "constant.numeric.integer.swift" - } - }, - "match": "(line)\\s*(:)\\s*([0-9]+)" - }, - { - "match": ",", - "name": "punctuation.separator.parameters.swift" - }, - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - }, - "6": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "7": { - "patterns": [ - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - }, - "match": "^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)", - "name": "meta.preprocessor.sourcelocation.swift" - } - ] - }, - "declarations": { - "patterns": [ - { - "include": "#function" - }, - { - "include": "#function-initializer" - }, - { - "include": "#typed-variable-declaration" - }, - { - "include": "#import" - }, - { - "include": "#operator" - }, - { - "include": "#precedencegroup" - }, - { - "include": "#protocol" - }, - { - "include": "#type" - }, - { - "include": "#extension" - }, - { - "include": "#typealias" - } - ], - "repository": { - "available-types": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#builtin-types" - }, - { - "include": "#attributes" - }, - { - "match": "\\basync\\b", - "name": "keyword.control.async.swift" - }, - { - "match": "\\b(?:throws|rethrows)\\b", - "name": "keyword.control.exception.swift" - }, - { - "match": "\\bsome\\b", - "name": "keyword.operator.type.opaque.swift" - }, - { - "match": "\\bany\\b", - "name": "keyword.operator.type.existential.swift" - }, - { - "match": "\\b(?:inout|isolated)\\b", - "name": "storage.modifier.swift" - }, - { - "match": "\\bSelf\\b", - "name": "variable.language.swift" - }, - { - "captures": { - "1": { - "name": "keyword.operator.type.function.swift" - } - }, - "match": "(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])" - }, - { - "captures": { - "1": { - "name": "keyword.operator.type.composition.swift" - } - }, - "comment": "Swift 3: A & B", - "match": "(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])" - }, - { - "match": "[?!]", - "name": "keyword.operator.type.optional.swift" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.function.variadic-parameter.swift" - }, - { - "comment": "Swift 2: protocol<A, B>", - "match": "\\bprotocol\\b", - "name": "keyword.operator.type.composition.swift" - }, - { - "match": "(?<=\\.)(?:Protocol|Type)\\b", - "name": "keyword.operator.type.metatype.swift" - }, - { - "include": "#tuple-type" - }, - { - "include": "#collection-type" - }, - { - "include": "#generic-argument-clause" - } - ], - "repository": { - "collection-type": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.collection-type.begin.swift" - } - }, - "comment": "array and dictionary types [Value] and [Key: Value]", - "end": "\\]|(?=[>){}])", - "endCaptures": { - "0": { - "name": "punctuation.section.collection-type.end.swift" - } - }, - "patterns": [ - { - "include": "#available-types" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?=\\]|[>){}])", - "patterns": [ - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-dictionary-type.swift" - }, - { - "include": "#available-types" - } - ] - } - ] - }, - "tuple-type": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.tuple-type.begin.swift" - } - }, - "end": "\\)|(?=[>\\]{}])", - "endCaptures": { - "0": { - "name": "punctuation.section.tuple-type.end.swift" - } - }, - "patterns": [ - { - "include": "#available-types" - } - ] - } - } - }, - "extension": { - "begin": "\\b(extension)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.$1.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "SE-0143: Conditional Conformances", - "include": "#generic-where-clause" - }, - { - "include": "#inheritance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function": { - "begin": "(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(?:(nonisolated)\\s+)?\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "storage.type.function.swift" - }, - "3": { - "name": "entity.name.function.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - }, - "5": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)", - "name": "meta.definition.function.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#function-result" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#generic-where-clause" - }, - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.swift" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.function.end.swift" - } - }, - "name": "meta.definition.function.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function-initializer": { - "begin": "(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift", - "patterns": [ - { - "match": "(?<=[?!])[?!]+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - }, - "end": "(?<=\\})|$", - "name": "meta.definition.function.initializer.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#generic-where-clause" - }, - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.swift" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.function.end.swift" - } - }, - "name": "meta.definition.function.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function-result": { - "begin": "(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.function-result.swift" - } - }, - "end": "(?!\\G)(?=\\{|\\bwhere\\b|;)|$", - "name": "meta.function-result.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "generic-argument-clause": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.separator.generic-argument-clause.begin.swift" - } - }, - "end": ">|(?=[)\\]{}])", - "endCaptures": { - "0": { - "name": "punctuation.separator.generic-argument-clause.end.swift" - } - }, - "name": "meta.generic-argument-clause.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "generic-parameter-clause": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.separator.generic-parameter-clause.begin.swift" - } - }, - "end": ">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)", - "endCaptures": { - "0": { - "name": "punctuation.separator.generic-parameter-clause.end.swift" - } - }, - "name": "meta.generic-parameter-clause.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "Swift 2: constraints inside the generic param list", - "include": "#generic-where-clause" - }, - { - "captures": { - "1": { - "name": "variable.language.generic-parameter.swift" - } - }, - "match": "\\b((?!\\d)\\w[\\w\\d]*)\\b" - }, - { - "match": ",", - "name": "punctuation.separator.generic-parameters.swift" - }, - { - "begin": "(:)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.separator.generic-parameter-constraint.swift" - } - }, - "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", - "name": "meta.generic-parameter-constraint.swift", - "patterns": [ - { - "begin": "\\G", - "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#type-identifier" - } - ] - } - ] - } - ] - }, - "generic-where-clause": { - "begin": "\\b(where)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.generic-constraint-introducer.swift" - } - }, - "end": "(?!\\G)$|(?=[>{};\\n]|//|/\\*)", - "name": "meta.generic-where-clause.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#requirement-list" - } - ], - "repository": { - "requirement-list": { - "begin": "\\G|,\\s*", - "end": "(?=[,>{};\\n]|//|/\\*)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constraint" - }, - { - "include": "#available-types" - }, - { - "begin": "(?<![/=\\-+!*%<>&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])", - "beginCaptures": { - "1": { - "name": "keyword.operator.generic-constraint.same-type.swift" - } - }, - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "name": "meta.generic-where-clause.same-type-requirement.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - { - "begin": "(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])", - "beginCaptures": { - "1": { - "name": "keyword.operator.generic-constraint.conforms-to.swift" - } - }, - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "name": "meta.generic-where-clause.conformance-requirement.swift", - "patterns": [ - { - "begin": "\\G\\s*", - "contentName": "entity.other.inherited-class.swift", - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "patterns": [ - { - "include": "#available-types" - } - ] - } - ] - } - ] - } - } - }, - "import": { - "begin": "(?<!\\.)\\b(import)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.import.swift" - } - }, - "end": "(;)|$\\n?|(?=//|/\\*)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.swift" - } - }, - "name": "meta.import.swift", - "patterns": [ - { - "begin": "\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?", - "beginCaptures": { - "1": { - "name": "storage.modifier.swift" - } - }, - "end": "(?=;|$|//|/\\*)", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.identifier.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t\t\t\t\t\t\t\t", - "name": "entity.name.type.swift" - }, - { - "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t", - "name": "entity.name.type.swift" - }, - { - "captures": { - "1": { - "patterns": [ - { - "match": "\\.", - "name": "invalid.illegal.dot-not-allowed-here.swift" - } - ] - } - }, - "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t", - "name": "entity.name.type.swift" - }, - { - "match": "\\.", - "name": "punctuation.separator.import.swift" - }, - { - "begin": "(?!\\s*(;|$|//|/\\*))", - "end": "(?=\\s*(;|$|//|/\\*))", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - ] - }, - "inheritance-clause": { - "begin": "(:)(?=\\s*\\{)|(:)\\s*", - "beginCaptures": { - "1": { - "name": "invalid.illegal.empty-inheritance-clause.swift" - }, - "2": { - "name": "punctuation.separator.inheritance-clause.swift" - } - }, - "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", - "name": "meta.inheritance-clause.swift", - "patterns": [ - { - "begin": "\\bclass\\b", - "beginCaptures": { - "0": { - "name": "storage.type.class.swift" - } - }, - "end": "(?=[={}]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#more-types" - } - ] - }, - { - "begin": "\\G", - "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inherited-type" - }, - { - "include": "#more-types" - } - ] - } - ], - "repository": { - "inherited-type": { - "begin": "(?=[`\\p{L}_])", - "end": "(?!\\G)", - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#type-identifier" - } - ] - }, - "more-types": { - "begin": ",\\s*", - "end": "(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)", - "name": "meta.inheritance-list.more-types", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inherited-type" - }, - { - "include": "#more-types" - } - ] - } - } - }, - "operator": { - "begin": "(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "storage.type.function.operator.swift" - }, - "3": { - "name": "entity.name.function.operator.swift" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "invalid.illegal.dot-not-allowed-here.swift" - } - ] - } - }, - "end": "(;)|$\\n?|(?=//|/\\*)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.swift" - } - }, - "name": "meta.definition.operator.swift", - "patterns": [ - { - "include": "#swift2" - }, - { - "include": "#swift3" - }, - { - "match": "((?!$|;|//|/\\*)\\S)+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ], - "repository": { - "swift2": { - "begin": "\\G(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.operator.begin.swift" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.operator.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "keyword.other.operator.associativity.swift" - } - }, - "match": "\\b(associativity)\\s+(left|right)\\b" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "constant.numeric.integer.swift" - } - }, - "match": "\\b(precedence)\\s+([0-9]+)\\b" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - } - }, - "match": "\\b(assignment)\\b" - } - ] - }, - "swift3": { - "captures": { - "2": { - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#types-precedencegroup" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "\\G(:)\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))" - } - } - }, - "parameter-clause": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "(\\))(?:\\s*(async)\\b)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - }, - "2": { - "name": "keyword.control.async.swift" - } - }, - "name": "meta.parameter-clause.swift", - "patterns": [ - { - "include": "#parameter-list" - } - ] - }, - "parameter-list": { - "patterns": [ - { - "captures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "variable.parameter.function.swift" - }, - "5": { - "name": "punctuation.definition.identifier.swift" - }, - "6": { - "name": "punctuation.definition.identifier.swift" - } - }, - "comment": "External parameter labels are considered part of the function name", - "match": "((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>))\\s+((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>))(?=\\s*:)" - }, - { - "captures": { - "1": { - "name": "variable.parameter.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "comment": "If no external label is given, the name is both the external label and the internal variable name", - "match": "(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)))(?=\\s*:)" - }, - { - "begin": ":\\s*(?!\\s)", - "end": "(?=[,)])", - "patterns": [ - { - "include": "#available-types" - }, - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-parameter-list.swift" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.swift" - } - }, - "comment": "a parameter's default value", - "end": "(?=[,)])", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - } - ] - }, - "precedencegroup": { - "begin": "\\b(precedencegroup)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(?=\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.precedencegroup.swift" - }, - "2": { - "name": "entity.name.type.precedencegroup.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!\\G)", - "name": "meta.definition.precedencegroup.swift", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.precedencegroup.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.precedencegroup.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#types-precedencegroup" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "\\b(higherThan|lowerThan)\\s*:\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "keyword.other.operator.associativity.swift" - } - }, - "match": "\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "constant.language.boolean.swift" - } - }, - "match": "\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?" - } - ] - } - ] - }, - "protocol": { - "begin": "\\b(protocol)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.protocol.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inheritance-clause" - }, - { - "comment": "SE-0142: Permit where clauses to constrain associated types", - "include": "#generic-where-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "#protocol-method" - }, - { - "include": "#protocol-initializer" - }, - { - "include": "#associated-type" - }, - { - "include": "$self" - } - ] - } - ], - "repository": { - "associated-type": { - "begin": "\\b(associatedtype)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - }, - "2": { - "name": "variable.language.associatedtype.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!\\G)$|(?=[;}]|$)", - "name": "meta.definition.associatedtype.swift", - "patterns": [ - { - "include": "#inheritance-clause" - }, - { - "comment": "SE-0142: Permit where clauses to constrain associated types", - "include": "#generic-where-clause" - }, - { - "include": "#typealias-assignment" - } - ] - }, - "protocol-initializer": { - "begin": "(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift", - "patterns": [ - { - "match": "(?<=[?!])[?!]+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - }, - "end": "$|(?=;|//|/\\*|\\})", - "name": "meta.definition.function.initializer.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#generic-where-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.swift" - } - }, - "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "protocol-method": { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\\b\n\t\t\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t \t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "$|(?=;|//|/\\*|\\})", - "name": "meta.definition.function.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#function-result" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#generic-where-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.swift" - } - }, - "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - } - }, - "type": { - "patterns": [ - { - "begin": "\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.$1.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "comment": "Swift 3: generic constraints after the generic param list", - "include": "#generic-where-clause" - }, - { - "include": "#inheritance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "include": "#type-enum" - } - ] - }, - "type-enum": { - "begin": "\\b(enum)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.$1.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "comment": "Swift 3: generic constraints after the generic param list", - "include": "#generic-where-clause" - }, - { - "include": "#inheritance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "#enum-case-clause" - }, - { - "include": "$self" - } - ] - } - ], - "repository": { - "associated-values": { - "begin": "\\G\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q1>))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q2>))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "invalid.illegal.distinct-labels-not-allowed.swift" - }, - "5": { - "name": "variable.parameter.function.swift" - }, - "7": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - { - "begin": "(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q>))\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "variable.parameter.function.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - { - "begin": "(?![,)\\]])(?=\\S)", - "comment": "an element without a label (i.e. anything else)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#available-types" - }, - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-parameter-list.swift" - } - ] - } - ] - }, - "enum-case": { - "begin": "(?x)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", - "beginCaptures": { - "1": { - "name": "constant.other.swift" - } - }, - "end": "(?<=\\))|(?![=(])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#associated-values" - }, - { - "include": "#raw-value-assignment" - } - ] - }, - "enum-case-clause": { - "begin": "\\b(case)\\b\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.enum.case.swift" - } - }, - "end": "(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#enum-case" - }, - { - "include": "#more-cases" - } - ] - }, - "more-cases": { - "begin": ",\\s*", - "end": "(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])", - "name": "meta.enum-case.more-cases", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#enum-case" - }, - { - "include": "#more-cases" - } - ] - }, - "raw-value-assignment": { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#literals" - } - ] - } - } - }, - "type-identifier": { - "begin": "((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", - "beginCaptures": { - "1": { - "name": "meta.type-name.swift", - "patterns": [ - { - "include": "#builtin-types" - } - ] - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!<)", - "patterns": [ - { - "begin": "(?=<)", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#generic-argument-clause" - } - ] - } - ] - }, - "typealias": { - "begin": "\\b(typealias)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - }, - "2": { - "name": "entity.name.type.typealias.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!\\G)$|(?=;|//|/\\*|$)", - "name": "meta.definition.typealias.swift", - "patterns": [ - { - "begin": "\\G(?=<)", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#generic-parameter-clause" - } - ] - }, - { - "include": "#typealias-assignment" - } - ] - }, - "typealias-assignment": { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.swift" - } - }, - "end": "(?!\\G)$|(?=;|//|/\\*|$)", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "typed-variable-declaration": { - "begin": "(?x)\n\t\t\t\t\t\t\\b(?:(async)\\s+)?(let|var)\\b\\s+\n\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.control.async.swift" - }, - "2": { - "name": "keyword.other.declaration-specifier.swift" - } - }, - "end": "(?=$|[={])", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "types-precedencegroup": { - "patterns": [ - { - "comment": "Precedence groups in the standard library", - "match": "\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b", - "name": "support.type.swift" - } - ] - } - } - }, - "expressions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#code-block" - }, - { - "include": "#attributes" - }, - { - "include": "#closure-parameter" - }, - { - "include": "#literals" - }, - { - "include": "#operators" - }, - { - "include": "#builtin-types" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-global-functions" - }, - { - "include": "#builtin-properties" - }, - { - "include": "#compound-name" - }, - { - "include": "#keywords" - }, - { - "include": "#function-call-expression" - }, - { - "include": "#subscript-expression" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#member-reference" - }, - { - "include": "#availability-condition" - }, - { - "match": "\\b_\\b", - "name": "support.variable.discard-value.swift" - } - ], - "repository": { - "availability-condition": { - "begin": "\\B(#(?:un)?available)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.availability-condition.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.platform.os.swift" - }, - "2": { - "name": "constant.numeric.swift" - } - }, - "match": "\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))" - }, - { - "captures": { - "1": { - "name": "keyword.other.platform.all.swift" - }, - "2": { - "name": "invalid.illegal.character-not-allowed-here.swift" - } - }, - "match": "(\\*)\\s*(.*?)(?=[,)])" - }, - { - "match": "[^\\s,)]+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - }, - "closure-parameter": { - "match": "\\$[0-9]+", - "name": "variable.language.closure-parameter.swift" - }, - "compound-name": { - "captures": { - "1": { - "name": "entity.name.function.compound-name.swift" - }, - "2": { - "name": "punctuation.definition.entity.swift" - }, - "3": { - "name": "punctuation.definition.entity.swift" - }, - "4": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.swift" - }, - "2": { - "name": "punctuation.definition.entity.swift" - } - }, - "match": "(?<q>`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>):", - "name": "entity.name.function.compound-name.swift" - } - ] - } - }, - "comment": "a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.", - "match": "(?x)\n\t\t\t\t\t\t((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t" - }, - "expression-element-list": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "comment": "an element with a label", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "begin": "(?![,)\\]])(?=\\S)", - "comment": "an element without a label (i.e. anything else)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - }, - "function-call-expression": { - "patterns": [ - { - "begin": "((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "comment": "foo(args) -- a call whose callee is a highlightable name", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.function-call.swift", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - }, - { - "begin": "(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "comment": "[Int](args) -- a call whose callee is a more complicated expression", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.function-call.swift", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - } - ] - }, - "member-reference": { - "patterns": [ - { - "captures": { - "1": { - "name": "variable.other.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "(?<=\\.)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))" - } - ] - }, - "parenthesized-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.tuple.begin.swift" - } - }, - "comment": "correctly matching closure expressions is too hard (depends on trailing \"in\") so we just tack on some basics to the end of parenthesized-expression", - "end": "(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)", - "endCaptures": { - "1": { - "name": "punctuation.section.tuple.end.swift" - }, - "2": { - "patterns": [ - { - "match": "\\brethrows\\b", - "name": "invalid.illegal.rethrows-only-allowed-on-function-declarations.swift" - }, - { - "include": "#async-throws" - } - ] - } - }, - "patterns": [ - { - "include": "#expression-element-list" - } - ] - }, - "subscript-expression": { - "begin": "(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.subscript-expression.swift", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - } - } - }, - "keywords": { - "patterns": [ - { - "match": "(?<!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b", - "name": "keyword.control.branch.swift" - }, - { - "match": "(?<!\\.)\\b(?:continue|break|fallthrough|return)\\b", - "name": "keyword.control.transfer.swift" - }, - { - "match": "(?<!\\.)\\b(?:while|for|in)\\b", - "name": "keyword.control.loop.swift" - }, - { - "captures": { - "1": { - "name": "keyword.control.loop.swift" - }, - "2": { - "name": "punctuation.whitespace.trailing.repeat.swift" - } - }, - "comment": "extra scopes for repeat-while snippet", - "match": "(?<!\\.)\\b(repeat)\\b(\\s*)" - }, - { - "match": "(?<!\\.)\\bdefer\\b", - "name": "keyword.control.defer.swift" - }, - { - "captures": { - "1": { - "name": "invalid.illegal.try-must-precede-await.swift" - }, - "2": { - "name": "keyword.control.await.swift" - } - }, - "match": "(?<!\\.)\\b(?:(await\\s+try)|(await)\\b)" - }, - { - "match": "(?<!\\.)\\b(?:catch|throws?|rethrows|try)\\b|\\btry[?!]\\B", - "name": "keyword.control.exception.swift" - }, - { - "captures": { - "1": { - "name": "keyword.control.exception.swift" - }, - "2": { - "name": "punctuation.whitespace.trailing.do.swift" - } - }, - "comment": "extra scopes for do-catch snippet", - "match": "(?<!\\.)\\b(do)\\b(\\s*)" - }, - { - "captures": { - "1": { - "name": "keyword.control.async.swift" - }, - "2": { - "name": "storage.modifier.swift" - }, - "3": { - "name": "keyword.other.declaration-specifier.swift" - } - }, - "match": "(?<!\\.)\\b(?:(?:(async)|(nonisolated))\\s+)?(let|var)\\b" - }, - { - "match": "(?<!\\.)\\b(?:associatedtype|operator|typealias)\\b", - "name": "keyword.other.declaration-specifier.swift" - }, - { - "match": "(?<!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b", - "name": "storage.type.$1.swift" - }, - { - "match": "(?<!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix)\\b", - "name": "storage.modifier.swift" - }, - { - "match": "\\binit[?!]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b", - "name": "storage.type.function.swift" - }, - { - "match": "(?<!\\.)\\b(?:fileprivate|private|internal|public|open)\\b", - "name": "keyword.other.declaration-specifier.accessibility.swift" - }, - { - "comment": "matches weak, unowned, unowned(safe), unowned(unsafe)", - "match": "(?<!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?<!\\.)\\b(?:weak|unowned)\\b", - "name": "keyword.other.capture-specifier.swift" - }, - { - "captures": { - "1": { - "name": "keyword.operator.type.swift" - }, - "2": { - "name": "keyword.operator.type.metatype.swift" - } - }, - "match": "(?<=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b" - }, - { - "match": "(?<!\\.)\\b(?:super|self|Self)\\b", - "name": "variable.language.swift" - }, - { - "match": "\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b", - "name": "support.variable.swift" - }, - { - "match": "(?<!\\.)\\bimport\\b", - "name": "keyword.control.import.swift" - } - ] - }, - "literals": { - "patterns": [ - { - "include": "#boolean" - }, - { - "include": "#numeric" - }, - { - "include": "#string" - }, - { - "match": "\\bnil\\b", - "name": "constant.language.nil.swift" - }, - { - "comment": "object \"literals\" used in playgrounds", - "match": "\\B#(colorLiteral|imageLiteral|fileLiteral)\\b", - "name": "support.function.object-literal.swift" - }, - { - "match": "\\B#keyPath\\b", - "name": "support.function.key-path.swift" - }, - { - "begin": "\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?", - "beginCaptures": { - "1": { - "name": "support.function.selector-reference.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - }, - "3": { - "name": "support.variable.parameter.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - } - ], - "repository": { - "boolean": { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.swift" - }, - "numeric": { - "patterns": [ - { - "comment": "0.1, -4_2.5, 6.022e23, 10E-5", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])", - "name": "constant.numeric.float.decimal.swift" - }, - { - "comment": "-0x1.ap2_3, 0x31p-4", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])", - "name": "constant.numeric.float.hexadecimal.swift" - }, - { - "comment": "0x1p, 0x1p_2, 0x1.5pa, 0x1.1p+1f, 0x1pz", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])", - "name": "invalid.illegal.numeric.float.invalid-exponent.swift" - }, - { - "comment": "0x1.5w (note that 0x1.f may be a valid expression)", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*", - "name": "invalid.illegal.numeric.float.missing-exponent.swift" - }, - { - "comment": "-.5, .2f (note that 1.-.5 may be a valid expression)", - "match": "(?<=\\s|^)\\-?\\.[0-9][\\w.]*", - "name": "invalid.illegal.numeric.float.missing-leading-zero.swift" - }, - { - "comment": "0b_0_1, 0x_1p+3q", - "match": "(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+", - "name": "invalid.illegal.numeric.leading-underscore.swift" - }, - { - "comment": "tuple positional member: not really a numeric literal, but not invalid", - "match": "(?<=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b" - }, - { - "comment": "0b010, 0b1_0", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])", - "name": "constant.numeric.integer.binary.swift" - }, - { - "comment": "0o1, 0o7_3", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])", - "name": "constant.numeric.integer.octal.swift" - }, - { - "comment": "02, 3_456", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])", - "name": "constant.numeric.integer.decimal.swift" - }, - { - "comment": "0x4, 0xF_7", - "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])", - "name": "constant.numeric.integer.hexadecimal.swift" - }, - { - "match": "(\\B\\-|\\b)[0-9][\\w.]*", - "name": "invalid.illegal.numeric.other.swift" - } - ] - }, - "string": { - "patterns": [ - { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "comment": "SE-0168: Multi-Line String Literals", - "end": "\"\"\"(#*)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "name": "string.quoted.double.block.swift", - "patterns": [ - { - "match": "\\G.+(?=\"\"\")|\\G.+", - "name": "invalid.illegal.content-after-opening-delimiter.swift" - }, - { - "match": "\\\\\\s*\\n", - "name": "constant.character.escape.newline.swift" - }, - { - "include": "#string-guts" - }, - { - "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", - "match": "\\S((?!\\\\\\().)*(?=\"\"\")", - "name": "invalid.illegal.content-before-closing-delimiter.swift" - } - ] - }, - { - "begin": "#\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "end": "\"\"\"#(#*)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "name": "string.quoted.double.block.raw.swift", - "patterns": [ - { - "match": "\\G.+(?=\"\"\")|\\G.+", - "name": "invalid.illegal.content-after-opening-delimiter.swift" - }, - { - "match": "\\\\#\\s*\\n", - "name": "constant.character.escape.newline.swift" - }, - { - "include": "#raw-string-guts" - }, - { - "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", - "match": "\\S((?!\\\\#\\().)*(?=\"\"\")", - "name": "invalid.illegal.content-before-closing-delimiter.swift" - } - ] - }, - { - "begin": "(##+)\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "end": "\"\"\"\\1(#*)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "name": "string.quoted.double.block.raw.swift", - "patterns": [ - { - "match": "\\G.+(?=\"\"\")|\\G.+", - "name": "invalid.illegal.content-after-opening-delimiter.swift" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "end": "\"(#*)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "name": "string.quoted.double.single-line.swift", - "patterns": [ - { - "match": "\\r|\\n", - "name": "invalid.illegal.returns-not-allowed.swift" - }, - { - "include": "#string-guts" - } - ] - }, - { - "begin": "(##+)\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.raw.swift" - } - }, - "comment": "SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)", - "end": "\"\\1(#*)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.raw.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "name": "string.quoted.double.single-line.raw.swift", - "patterns": [ - { - "match": "\\r|\\n", - "name": "invalid.illegal.returns-not-allowed.swift" - } - ] - }, - { - "begin": "#\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.raw.swift" - } - }, - "comment": "SE-0168: raw string literals (one #, escapes supported)", - "end": "\"#(#*)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.raw.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "name": "string.quoted.double.single-line.raw.swift", - "patterns": [ - { - "match": "\\r|\\n", - "name": "invalid.illegal.returns-not-allowed.swift" - }, - { - "include": "#raw-string-guts" - } - ] - } - ], - "repository": { - "raw-string-guts": { - "comment": "the same as #string-guts but with # in escapes", - "patterns": [ - { - "match": "\\\\#[0\\\\tnr\"']", - "name": "constant.character.escape.swift" - }, - { - "match": "\\\\#u\\{[0-9a-fA-F]{1,8}\\}", - "name": "constant.character.escape.unicode.swift" - }, - { - "begin": "\\\\#\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.swift" - } - }, - "contentName": "source.swift", - "end": "(\\))", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.swift" - }, - "1": { - "name": "source.swift" - } - }, - "name": "meta.embedded.line.swift", - "patterns": [ - { - "include": "$self" - }, - { - "begin": "\\(", - "comment": "Nested parens", - "end": "\\)" - } - ] - }, - { - "match": "\\\\#.", - "name": "invalid.illegal.escape-not-recognized" - } - ] - }, - "string-guts": { - "patterns": [ - { - "match": "\\\\[0\\\\tnr\"']", - "name": "constant.character.escape.swift" - }, - { - "match": "\\\\u\\{[0-9a-fA-F]{1,8}\\}", - "name": "constant.character.escape.unicode.swift" - }, - { - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.swift" - } - }, - "contentName": "source.swift", - "end": "(\\))", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.swift" - }, - "1": { - "name": "source.swift" - } - }, - "name": "meta.embedded.line.swift", - "patterns": [ - { - "include": "$self" - }, - { - "begin": "\\(", - "comment": "Nested parens", - "end": "\\)" - } - ] - }, - { - "match": "\\\\.", - "name": "invalid.illegal.escape-not-recognized" - } - ] - } - } - } - } - }, - "operators": { - "patterns": [ - { - "comment": "Type casting", - "match": "\\b(is\\b|as([!?]\\B|\\b))", - "name": "keyword.operator.type-casting.swift" - }, - { - "begin": "(?x)\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g<oph>\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", - "comment": "This rule helps us speed up the matching.", - "end": "(?!\\G)", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G(\\+\\+|\\-\\-)$", - "name": "keyword.operator.increment-or-decrement.swift" - }, - { - "match": "\\G(\\+|\\-)$", - "name": "keyword.operator.arithmetic.unary.swift" - }, - { - "match": "\\G!$", - "name": "keyword.operator.logical.not.swift" - }, - { - "match": "\\G~$", - "name": "keyword.operator.bitwise.not.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.prefix.swift" - } - ] - } - }, - "comment": "Prefix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G(\\+\\+|\\-\\-)$", - "name": "keyword.operator.increment-or-decrement.swift" - }, - { - "match": "\\G!$", - "name": "keyword.operator.increment-or-decrement.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.postfix.swift" - } - ] - } - }, - "comment": "Postfix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G=$", - "name": "keyword.operator.assignment.swift" - }, - { - "match": "\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$", - "name": "keyword.operator.assignment.compound.swift" - }, - { - "match": "\\G(\\+|\\-|\\*|/)$", - "name": "keyword.operator.arithmetic.swift" - }, - { - "match": "\\G&(\\+|\\-|\\*)$", - "name": "keyword.operator.arithmetic.overflow.swift" - }, - { - "match": "\\G%$", - "name": "keyword.operator.arithmetic.remainder.swift" - }, - { - "match": "\\G(==|!=|>|<|>=|<=|~=)$", - "name": "keyword.operator.comparison.swift" - }, - { - "match": "\\G\\?\\?$", - "name": "keyword.operator.coalescing.swift" - }, - { - "match": "\\G(&&|\\|\\|)$", - "name": "keyword.operator.logical.swift" - }, - { - "match": "\\G(&|\\||\\^|<<|>>)$", - "name": "keyword.operator.bitwise.swift" - }, - { - "match": "\\G(===|!==)$", - "name": "keyword.operator.bitwise.swift" - }, - { - "match": "\\G\\?$", - "name": "keyword.operator.ternary.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.infix.swift" - } - ] - } - }, - "comment": "Infix operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": ".+", - "name": "keyword.operator.custom.prefix.dot.swift" - } - ] - } - }, - "comment": "Dot prefix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": ".+", - "name": "keyword.operator.custom.postfix.dot.swift" - } - ] - } - }, - "comment": "Dot postfix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G\\.\\.[.<]$", - "name": "keyword.operator.range.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.infix.dot.swift" - } - ] - } - }, - "comment": "Dot infix operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t" - } - ] - }, - { - "match": ":", - "name": "keyword.operator.ternary.swift" - } - ] - }, - "root": { - "patterns": [ - { - "include": "#compiler-control" - }, - { - "include": "#declarations" - }, - { - "include": "#expressions" - } - ] - } - } -} diff --git a/lib/grammars/system-verilog.tmLanguage.json b/lib/grammars/system-verilog.tmLanguage.json deleted file mode 100644 index 7727808..0000000 --- a/lib/grammars/system-verilog.tmLanguage.json +++ /dev/null @@ -1,1055 +0,0 @@ -{ - "fileTypes": ["sv", "SV", "v", "V", "svh", "SVH", "vh", "VH"], - "hidden": true, - "name": "system-verilog", - "patterns": [ - { - "begin": "\\s*\\b(function|task)\\b(\\s+automatic)?", - "beginCaptures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "keyword.control.systemverilog" - } - }, - "end": ";", - "patterns": [ - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\s+)?([a-zA-Z_][a-zA-Z0-9_:]*)\\s*(?=\\(|;)", - "captures": { - "1": { - "name": "storage.type.systemverilog" - }, - "2": { - "name": "entity.name.function.systemverilog" - } - } - }, - { - "include": "#port-dir" - }, - { - "include": "#base-grammar" - } - ], - "name": "meta.function.systemverilog" - }, - { - "match": "\\s*\\b(task)\\s+(automatic)?\\s*(\\w+)\\s*;", - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "keyword.control.systemverilog" - }, - "3": { - "name": "entity.name.function.systemverilog" - } - }, - "name": "meta.task.simple.systemverilog" - }, - { - "begin": "\\s*\\b(typedef\\s+(struct|enum|union)\\b)\\s*(packed)?\\s*([a-zA-Z_][a-zA-Z0-9_]*)?", - "beginCaptures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "keyword.control.systemverilog" - }, - "3": { - "name": "keyword.control.systemverilog" - }, - "4": { - "name": "storage.type.systemverilog" - } - }, - "end": "(})\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*;", - "endCaptures": { - "1": { - "name": "keyword.operator.other.systemverilog" - }, - "2": { - "name": "entity.name.function.systemverilog" - } - }, - "patterns": [ - { - "include": "#struct-anonymous" - }, - { - "include": "#base-grammar" - } - ], - "name": "meta.typedef.struct.systemverilog" - }, - { - "match": "\\s*\\b(typedef\\s+class)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*;", - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "entity.name.declaration.systemverilog" - } - }, - "name": "meta.typedef.class.systemverilog" - }, - { - "begin": "\\s*\\b(typedef)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.systemverilog" - } - }, - "end": "([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=(\\[[a-zA-Z0-9_:\\$\\-\\+]*\\])?;)", - "endCaptures": { - "1": { - "name": "entity.name.function.systemverilog" - } - }, - "patterns": [ - { - "match": "\\b([a-zA-Z_]\\w*)\\s*(#)\\(", - "captures": { - "1": { - "name": "storage.type.userdefined.systemverilog" - }, - "2": { - "name": "keyword.operator.param.systemverilog" - } - }, - "name": "meta.typedef.class.systemverilog" - }, - { - "include": "#base-grammar" - }, - { - "include": "#module-binding" - } - ], - "name": "meta.typedef.simple.systemverilog" - }, - { - "begin": "\\s*(module)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "entity.name.type.module.systemverilog" - } - }, - "end": ";", - "endCaptures": { - "1": { - "name": "entity.name.function.systemverilog" - } - }, - "patterns": [ - { - "include": "#port-dir" - }, - { - "match": "\\s*(parameter)", - "name": "keyword.other.systemverilog" - }, - { - "include": "#base-grammar" - }, - { - "include": "#ifmodport" - }, - { - "match": "\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "support.function.systemverilog" - } - ], - "name": "meta.module.systemverilog" - }, - { - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "entity.name.function.systemverilog" - } - }, - "match": "\\b(sequence)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", - "name": "meta.sequence.systemverilog" - }, - { - "match": "\\b(bind)\\s+([a-zA-Z_][a-zA-Z0-9_\\.]*)\\b", - "captures": { - "1": { - "name": "keyword.control.systemverilog" - } - } - }, - { - "captures": { - "0": { - "name": "meta.section.begin.systemverilog" - }, - "1": { - "name": "keyword.other.block.systemverilog" - }, - "3": { - "name": "keyword.operator.systemverilog" - }, - "4": { - "name": "entity.name.section.systemverilog" - } - }, - "match": "\\s*(begin|fork)\\s*((:)\\s*([a-zA-Z_][a-zA-Z0-9_]*))\\b", - "name": "meta.definition.systemverilog" - }, - { - "match": "\\b(asset|cover)\\s(property)\\s+(\\w+)", - "captures": { - "1": { - "name": "keyword.sva.systemverilog" - }, - "2": { - "name": "entity.name.sva.systemverilog" - } - } - }, - { - "match": "\\b(\\w+)\\s*(:)\\s*(assert)\\b", - "captures": { - "1": { - "name": "entity.name.sva.systemverilog" - }, - "2": { - "name": "keyword.operator.systemverilog" - }, - "3": { - "name": "keyword.sva.systemverilog" - } - } - }, - { - "begin": "\\s*(//)\\s*(psl)\\s+((\\w+)\\s*(:))?\\s*(default|assert|assume)", - "beginCaptures": { - "0": { - "name": "meta.psl.systemverilog" - }, - "1": { - "name": "comment.line.double-slash.systemverilog" - }, - "2": { - "name": "keyword.psl.systemverilog" - }, - "4": { - "name": "entity.psl.name.systemverilog" - }, - "5": { - "name": "keyword.operator.systemverilog" - }, - "6": { - "name": "keyword.psl.systemverilog" - } - }, - "end": ";", - "patterns": [ - { - "match": "\\b(never|always|default|clock|within|rose|fell|stable|until|before|next|eventually|abort|posedge)\\b", - "name": "keyword.psl.systemverilog" - }, - { - "include": "#operators" - }, - { - "include": "#functions" - }, - { - "include": "#constants" - } - ], - "name": "meta.psl.systemverilog" - }, - { - "begin": "\\s*(/\\*)\\s*(psl)", - "beginCaptures": { - "0": { - "name": "meta.psl.systemverilog" - }, - "1": { - "name": "comment.block.systemverilog" - }, - "2": { - "name": "keyword.psl.systemverilog" - } - }, - "end": "(\\*/)", - "endCaptures": { - "1": { - "name": "comment.block.systemverilog" - } - }, - "patterns": [ - { - "match": "^\\s*((\\w+)\\s*(:))?\\s*(default|assert|assume)", - "captures": { - "0": { - "name": "meta.psl.systemverilog" - }, - "2": { - "name": "entity.psl.name.systemverilog" - }, - "3": { - "name": "keyword.operator.systemverilog" - }, - "4": { - "name": "keyword.psl.systemverilog" - } - } - }, - { - "match": "\\b(asset|cover)\\s+(property)\\s+(\\w+)", - "captures": { - "1": { - "name": "keyword.psl.systemverilog" - }, - "2": { - "name": "entity.psl.name.systemverilog" - } - } - }, - { - "match": "\\b(never|always|default|clock|within|rose|fell|stable|until|before|next|eventually|abort|posedge|negedge)\\b", - "name": "keyword.psl.systemverilog" - }, - { - "include": "#operators" - }, - { - "include": "#functions" - }, - { - "include": "#constants" - } - ], - "name": "meta.psl.systemverilog" - }, - { - "match": "\\s*\\b(automatic|cell|config|deassign|defparam|design|disable|edge|endconfig|endgenerate|endspecify|endtable|event|generate|genvar|ifnone|incdir|instance|liblist|library|macromodule|negedge|noshowcancelled|posedge|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|table|use|vectored)\\b", - "captures": { - "1": { - "name": "keyword.other.systemverilog" - } - } - }, - { - "match": "\\s*\\b(initial|always|wait|force|release|assign|always_comb|always_ff|always_latch|forever|repeat|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|with|inside|dist|clocking|cover|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|modport|matches|solve|static|assert|assume|before|expect|cross|ref|first_match|srandom|struct|packed|final|chandle|alias|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|uwire|wait_order|triggered|randsequence|import|export|context|pure|intersect|wildcard|within|new|typedef|enum|this|super|begin|fork|forkjoin|unique|unique0|priority)\\b", - "captures": { - "1": { - "name": "keyword.control.systemverilog" - } - } - }, - { - "match": "\\s*\\b(end|endtask|endmodule|endfunction|endprimitive|endclass|endpackage|endsequence|endprogram|endclocking|endproperty|endgroup|endinterface|join|join_any|join_none)\\b(\\s*(:)\\s*(\\w+))?", - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "3": { - "name": "keyword.operator.systemverilog" - }, - "4": { - "name": "entity.label.systemverilog" - } - }, - "name": "meta.object.end.systemverilog" - }, - { - "match": "\\b(std)\\b::", - "name": "support.class.systemverilog" - }, - { - "captures": { - "1": { - "name": "constant.other.define.systemverilog" - }, - "2": { - "name": "entity.name.type.define.systemverilog" - } - }, - "match": "^\\s*(`define)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", - "name": "meta.define.systemverilog" - }, - { - "captures": { - "1": { - "name": "constant.other.undef.systemverilog" - }, - "2": { - "name": "entity.name.type.undef.systemverilog" - } - }, - "match": "^\\s*(`undef)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", - "name": "meta.undef.systemverilog" - }, - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "entity.name.type.class.systemverilog" - } - }, - "match": "\\s*(primitive|package|constraint|interface|covergroup|program)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "meta.definition.systemverilog" - }, - { - "captures": { - "2": { - "name": "entity.name.type.class.systemverilog" - }, - "3": { - "name": "keyword.operator.other.systemverilog" - }, - "4": { - "name": "keyword.control.systemverilog" - } - }, - "match": "(([a-zA-Z_][a-zA-Z0-9_]*)\\s*(:))?\\s*(coverpoint|cross)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", - "name": "meta.definition.systemverilog" - }, - { - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "keyword.control.systemverilog" - }, - "3": { - "name": "entity.name.type.class.systemverilog" - } - }, - "match": "\\b(virtual\\s+)?(class)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "meta.definition.class.systemverilog" - }, - { - "captures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "entity.other.inherited-class.systemverilog" - } - }, - "match": "\\b(extends)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "meta.definition.systemverilog" - }, - { - "include": "#all-types" - }, - { - "include": "#operators" - }, - { - "include": "#port-dir" - }, - { - "match": "\\b(and|nand|nor|or|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|tran|r?tranif[01]|pullup|pulldown)\\b", - "name": "support.type.systemverilog" - }, - { - "include": "#strings" - }, - { - "match": "\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "support.function.systemverilog" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(')(?=\\()", - "name": "meta.cast.systemverilog", - "captures": { - "1": { - "name": "storage.type.systemverilog" - }, - "2": { - "name": "keyword.operator.cast.systemverilog" - } - } - }, - { - "match": "^\\s*(localparam|parameter)\\s+([A-Z_][A-Z0-9_]*)\\b\\s*(?=(=))", - "name": "meta.param.systemverilog", - "captures": { - "1": { - "name": "keyword.other.systemverilog" - }, - "2": { - "name": "constant.other.systemverilog" - } - } - }, - { - "match": "^\\s*(localparam|parameter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=(=))", - "name": "meta.param.systemverilog", - "captures": { - "1": { - "name": "keyword.other.systemverilog" - } - } - }, - { - "match": "^\\s*(local\\s+|protected\\s+|localparam\\s+|parameter\\s+)?(const\\s+|virtual\\s+)?(rand\\s+|randc\\s+)?(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=(#\\s*\\([\\w,]+\\)\\s*)?([a-zA-Z][a-zA-Z0-9_\\s\\[\\]']*)(;|,|=|'\\{))", - "name": "meta.userdefined.systemverilog", - "captures": { - "1": { - "name": "keyword.other.systemverilog" - }, - "2": { - "name": "keyword.other.systemverilog" - }, - "3": { - "name": "storage.type.rand.systemverilog" - }, - "5": { - "name": "support.type.scope.systemverilog" - }, - "6": { - "name": "keyword.operator.scope.systemverilog" - }, - "7": { - "name": "storage.type.userdefined.systemverilog" - } - } - }, - { - "match": "\\s*\\b(option)\\.", - "captures": { - "1": { - "name": "keyword.cover.systemverilog" - } - } - }, - { - "match": "\\s*\\b(local|const|protected|virtual|localparam|parameter)\\b", - "captures": { - "1": { - "name": "keyword.other.systemverilog" - } - } - }, - { - "match": "\\s*\\b(rand|randc)\\b", - "name": "storage.type.rand.systemverilog" - }, - { - "begin": "^(\\s*(bind)\\s+([a-zA-Z_][\\w\\.]*))?\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=#[^#])", - "beginCaptures": { - "2": { - "name": "keyword.control.systemverilog" - }, - "4": { - "name": "storage.module.systemverilog" - } - }, - "end": "(?=;|=|:)", - "patterns": [ - { - "include": "#module-binding" - }, - { - "include": "#module-param" - }, - { - "include": "#comments" - }, - { - "include": "#operators" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*(\\(|$))", - "name": "entity.name.type.module.systemverilog" - } - ], - "name": "meta.module.inst.param.systemverilog" - }, - { - "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s+(?!intersect|and|or|throughout|within)([a-zA-Z_][a-zA-Z0-9_]*)\\s*(\\[(\\d+)(\\:(\\d+))?\\])?\\s*(\\(|$)", - "beginCaptures": { - "1": { - "name": "storage.module.systemverilog" - }, - "2": { - "name": "entity.name.type.module.systemverilog" - }, - "4": { - "name": "constant.numeric.systemverilog" - }, - "6": { - "name": "constant.numeric.systemverilog" - } - }, - "end": ";", - "patterns": [ - { - "include": "#module-binding" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#operators" - }, - { - "include": "#constants" - } - ], - "name": "meta.module.inst.systemverilog" - }, - { - "name": "meta.struct.assign.systemverilog", - "begin": "\\b\\s+(<?=)\\s*(\\'{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.other.systemverilog" - }, - "2": { - "name": "keyword.operator.other.systemverilog" - }, - "3": { - "name": "keyword.operator.other.systemverilog" - } - }, - "end": ";", - "patterns": [ - { - "match": "\\b(\\w+)\\s*(:)(?!:)", - "captures": { - "1": { - "name": "support.function.field.systemverilog" - }, - "2": { - "name": "keyword.operator.other.systemverilog" - } - } - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#operators" - }, - { - "include": "#constants" - }, - { - "include": "#storage-scope-systemverilog" - } - ] - }, - { - "include": "#storage-scope-systemverilog" - }, - { - "include": "#functions" - }, - { - "include": "#constants" - } - ], - "repository": { - "functions": { - "match": "\\b(\\w+)(?=\\s*\\()", - "name": "support.function.generic.systemverilog" - }, - "all-types": { - "patterns": [ - { - "include": "#storage-type-systemverilog" - }, - { - "include": "#storage-modifier-systemverilog" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "(\\b\\d+)?'(s?[bB]\\s*[0-1xXzZ?][0-1_xXzZ?]*|s?[oO]\\s*[0-7xXzZ?][0-7_xXzZ?]*|s?[dD]\\s*[0-9xXzZ?][0-9_xXzZ?]*|s?[hH]\\s*[0-9a-fA-FxXzZ?][0-9a-fA-F_xXzZ?]*)((e|E)(\\+|-)?[0-9]+)?(?!'|\\w)", - "name": "constant.numeric.systemverilog" - }, - { - "match": "'[01xXzZ]", - "name": "constant.numeric.bit.systemverilog" - }, - { - "match": "\\b((\\d[\\d_]*)(e|E)(\\+|-)?[0-9]+)\\b", - "name": "constant.numeric.exp.systemverilog" - }, - { - "match": "\\b(\\d[\\d_]*)\\b", - "name": "constant.numeric.decimal.systemverilog" - }, - { - "match": "\\b(\\d+(fs|ps|ns|us|ms|s)?)\\b", - "name": "constant.numeric.time.systemverilog" - }, - { - "match": "\\b([A-Z][A-Z0-9_]*)\\b", - "name": "constant.other.net.systemverilog" - }, - { - "match": "(`ifdef|`ifndef|`default_nettype)\\s+(\\w+)", - "captures": { - "1": { - "name": "constant.other.preprocessor.systemverilog" - }, - "2": { - "name": "support.variable.systemverilog" - } - } - }, - { - "match": "`(celldefine|else|elsif|endcelldefine|endif|include|line|nounconnected_drive|resetall|timescale|unconnected_drive|undef|begin_\\w+|end_\\w+|remove_\\w+|restore_\\w+)\\b", - "name": "constant.other.preprocessor.systemverilog" - }, - { - "match": "`\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "constant.other.define.systemverilog" - }, - { - "match": "\\b(null)\\b", - "name": "support.constant.systemverilog" - } - ] - }, - "operators": { - "patterns": [ - { - "match": "(=|==|===|!=|!==|<=|>=|<|>)", - "name": "keyword.operator.comparison.systemverilog" - }, - { - "match": "(\\-|\\+|\\*|\\/|%)", - "name": "keyword.operator.arithmetic.systemverilog" - }, - { - "match": "(!|&&|\\|\\||\\bor\\b)", - "name": "keyword.operator.logical.systemverilog" - }, - { - "match": "(&|\\||\\^|~|{|'{|}|<<|>>|\\?|:)", - "name": "keyword.operator.bitwise.systemverilog" - }, - { - "match": "(#|@)", - "name": "keyword.operator.other.systemverilog" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.systemverilog" - } - }, - "end": "\\*/", - "name": "comment.block.systemverilog" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.systemverilog" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.systemverilog" - } - ] - }, - "port-dir": { - "patterns": [ - { - "match": "\\s*\\b(output|input|inout|ref)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)?\\s+(?=\\[[a-zA-Z0-9_\\-\\+]*:[a-zA-Z0-9_\\-\\+]*\\]\\s+[a-zA-Z_][a-zA-Z0-9_\\s]*)", - "captures": { - "1": { - "name": "support.type.systemverilog" - }, - "3": { - "name": "support.type.scope.systemverilog" - }, - "4": { - "name": "keyword.operator.scope.systemverilog" - }, - "5": { - "name": "storage.type.interface.systemverilog" - } - } - }, - { - "match": "\\s*\\b(output|input|inout|ref)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)?\\s+(?=[a-zA-Z_][a-zA-Z0-9_\\s]*)", - "captures": { - "1": { - "name": "support.type.systemverilog" - }, - "3": { - "name": "support.type.scope.systemverilog" - }, - "4": { - "name": "keyword.operator.scope.systemverilog" - }, - "5": { - "name": "storage.type.interface.systemverilog" - } - } - }, - { - "match": "\\s*\\b(output|input|inout|ref)\\b", - "name": "support.type.systemverilog" - } - ] - }, - "base-grammar": { - "patterns": [ - { - "include": "#all-types" - }, - { - "include": "#comments" - }, - { - "include": "#operators" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "match": "^\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s+[a-zA-Z_][a-zA-Z0-9_,=\\s]*", - "captures": { - "1": { - "name": "storage.type.interface.systemverilog" - } - } - }, - { - "include": "#storage-scope-systemverilog" - } - ] - }, - "storage-type-systemverilog": { - "patterns": [ - { - "match": "\\s*\\b(var|wire|tri|tri[01]|supply[01]|wand|triand|wor|trior|trireg|reg|integer|int|longint|shortint|logic|bit|byte|shortreal|string|time|realtime|real|process|void)\\b", - "name": "storage.type.systemverilog" - }, - { - "match": "\\s*\\b(uvm_transaction|uvm_component|uvm_monitor|uvm_driver|uvm_test|uvm_env|uvm_object|uvm_agent|uvm_sequence_base|uvm_sequence|uvm_sequence_item|uvm_sequence_state|uvm_sequencer|uvm_sequencer_base|uvm_component_registry|uvm_analysis_imp|uvm_analysis_port|uvm_analysis_export|uvm_config_db|uvm_active_passive_enum|uvm_phase|uvm_verbosity|uvm_tlm_analysis_fifo|uvm_tlm_fifo|uvm_report_server|uvm_objection|uvm_recorder|uvm_domain|uvm_reg_field|uvm_reg|uvm_reg_block|uvm_bitstream_t|uvm_radix_enum|uvm_printer|uvm_packer|uvm_comparer|uvm_scope_stack)\\b", - "name": "storage.type.uvm.systemverilog" - } - ] - }, - "storage-scope-systemverilog": { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(::)", - "captures": { - "1": { - "name": "support.type.systemverilog" - }, - "2": { - "name": "keyword.operator.scope.systemverilog" - } - }, - "name": "meta.scope.systemverilog" - }, - "storage-modifier-systemverilog": { - "match": "\\b(signed|unsigned|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b", - "name": "storage.modifier.systemverilog" - }, - "ifmodport": { - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "captures": { - "1": { - "name": "storage.type.interface.systemverilog" - }, - "2": { - "name": "support.modport.systemverilog" - } - } - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.systemverilog" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.systemverilog" - } - }, - "name": "string.quoted.double.systemverilog", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.systemverilog" - }, - { - "match": "(?x)%\n (\\d+\\$)? # field (argument #)\n [#0\\- +']* # flags\n [,;:_]? # separator character (AltiVec)\n ((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n (\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n (hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n [bdiouxXhHDOUeEfFgGaACcSspnmt%] # conversion type\n ", - "name": "constant.other.placeholder.systemverilog" - }, - { - "match": "%", - "name": "invalid.illegal.placeholder.systemverilog" - } - ] - } - ] - }, - "module-binding": { - "begin": "\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(", - "beginCaptures": { - "1": { - "name": "support.function.port.systemverilog" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#constants" - }, - { - "include": "#comments" - }, - { - "include": "#operators" - }, - { - "include": "#strings" - }, - { - "include": "#constants" - }, - { - "match": "\\b([a-zA-Z_]\\w*)(::)", - "captures": { - "1": { - "name": "support.type.scope.systemverilog" - }, - "2": { - "name": "keyword.operator.scope.systemverilog" - } - } - }, - { - "match": "\\b([a-zA-Z_]\\w*)(')", - "captures": { - "1": { - "name": "storage.type.interface.systemverilog" - }, - "2": { - "name": "keyword.operator.cast.systemverilog" - } - } - }, - { - "match": "\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", - "name": "support.function.systemverilog" - }, - { - "match": "\\b(virtual)\\b", - "name": "keyword.control.systemverilog" - } - ], - "match": "\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*", - "captures": { - "1": { - "name": "support.function.port.implicit.systemverilog" - } - } - }, - "module-param": { - "name": "meta.module-param.systemverilog", - "begin": "(#)\\s*\\(", - "beginCaptures": { - "1": { - "name": "keyword.operator.param.systemverilog" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#operators" - }, - { - "include": "#strings" - }, - { - "include": "#module-binding" - }, - { - "match": "\\b(virtual)\\b", - "name": "keyword.control.systemverilog" - } - ] - }, - "struct-anonymous": { - "begin": "\\s*\\b(struct|union)\\s*(packed)?\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.systemverilog" - }, - "2": { - "name": "keyword.control.systemverilog" - } - }, - "end": "(})\\s*([a-zA-Z_]\\w*)\\s*;", - "endCaptures": { - "1": { - "name": "keyword.operator.other.systemverilog" - } - }, - "patterns": [ - { - "include": "#base-grammar" - } - ], - "name": "meta.struct.anonymous.systemverilog" - } - }, - "scopeName": "source.systemverilog", - "uuid": "789be04c-8b74-352e-8f37-63d336001277" -} diff --git a/lib/grammars/tasl.tmLanguage.json b/lib/grammars/tasl.tmLanguage.json deleted file mode 100644 index 6ca4a89..0000000 --- a/lib/grammars/tasl.tmLanguage.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "scopeName": "source.tasl", - "name": "tasl", - "fileTypes": ["tasl"], - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#namespace" - }, - { - "include": "#type" - }, - { - "include": "#class" - }, - { - "include": "#edge" - } - ], - "repository": { - "comment": { - "match": "(#).*$", - "name": "comment.line.number-sign.tasl", - "captures": { - "1": { - "name": "punctuation.definition.comment.tasl" - } - } - }, - "namespace": { - "match": "(?:^\\s*)(namespace)\\b(.*)", - "captures": { - "1": { - "name": "keyword.control.tasl.namespace" - }, - "2": { - "patterns": [ - { - "include": "#namespaceURI" - }, - { - "match": "[a-zA-Z][a-zA-Z0-9]*\\b", - "name": "entity.name" - } - ] - } - } - }, - "type": { - "begin": "(?:^\\s*)(type)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.tasl.type" - } - }, - "end": "$", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "class": { - "begin": "(?:^\\s*)(class)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.tasl.class" - } - }, - "end": "$", - "patterns": [ - { - "include": "#key" - }, - { - "include": "#export" - }, - { - "include": "#expression" - } - ] - }, - "edge": { - "begin": "(?:^\\s*)(edge)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.tasl.edge" - } - }, - "end": "$", - "patterns": [ - { - "include": "#key" - }, - { - "include": "#export" - }, - { - "match": "=/", - "name": "punctuation.separator.tasl.edge.source" - }, - { - "match": "/=>", - "name": "punctuation.separator.tasl.edge.target" - }, - { - "match": "=>", - "name": "punctuation.separator.tasl.edge" - }, - { - "include": "#expression" - } - ] - }, - "export": { - "match": "::", - "name": "keyword.operator.tasl.export" - }, - "expression": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#uri" - }, - { - "include": "#product" - }, - { - "include": "#coproduct" - }, - { - "include": "#reference" - }, - { - "include": "#optional" - }, - { - "include": "#identifier" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#datatype" - } - ] - }, - "uri": { - "match": "<>", - "name": "variable.other.constant" - }, - "product": { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tasl.product" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tasl.product" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#term" - }, - { - "include": "#component" - } - ] - }, - "component": { - "begin": "->", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.separator.tasl.component" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "coproduct": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tasl.coproduct" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tasl.coproduct" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#term" - }, - { - "include": "#option" - } - ] - }, - "option": { - "begin": "<-", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.separator.tasl.option" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "reference": { - "match": "(\\*)\\s*(.*)", - "captures": { - "1": { - "name": "markup.bold keyword.operator" - }, - "2": { - "patterns": [ - { - "include": "#key" - } - ] - } - } - }, - "identifier": { - "match": "([a-zA-Z][a-zA-Z0-9]*)\\b", - "captures": { - "1": { - "name": "variable" - } - } - }, - "optional": { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator" - } - }, - "end": "$", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "namespaceURI": { - "match": "[a-z]+:[a-zA-Z0-9-._~:\\/?#\\[\\]@!$&'()*+,;%=]+", - "name": "markup.underline.link" - }, - "key": { - "match": "[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+", - "name": "markup.bold entity.name.class" - }, - "datatype": { - "match": "[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+", - "name": "string.regexp" - }, - "term": { - "match": "[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+", - "name": "entity.other.tasl.key" - } - } -} diff --git a/lib/grammars/tcl.tmLanguage.json b/lib/grammars/tcl.tmLanguage.json deleted file mode 100644 index 6203b36..0000000 --- a/lib/grammars/tcl.tmLanguage.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "fileTypes": ["tcl"], - "foldingStartMarker": "\\{\\s*$", - "foldingStopMarker": "^\\s*\\}", - "keyEquivalent": "^~T", - "name": "tcl", - "patterns": [ - { - "begin": "(?<=^|;)\\s*((#))", - "beginCaptures": { - "1": { - "name": "comment.line.number-sign.tcl" - }, - "2": { - "name": "punctuation.definition.comment.tcl" - } - }, - "contentName": "comment.line.number-sign.tcl", - "end": "\\n", - "patterns": [ - { - "match": "(\\\\\\\\|\\\\\\n)" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.tcl" - } - }, - "match": "(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.control.tcl" - } - }, - "match": "(?<=^|})\\s*(then|elseif|else)\\b" - }, - { - "captures": { - "1": { - "name": "keyword.other.tcl" - }, - "2": { - "name": "entity.name.function.tcl" - } - }, - "match": "(?<=^|{)\\s*(proc)\\s+([^\\s]+)" - }, - { - "captures": { - "1": { - "name": "keyword.other.tcl" - } - }, - "match": "(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b" - }, - { - "begin": "(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.tcl" - } - }, - "comment": "special-case regexp/regsub keyword in order to handle the expression", - "end": "[\\n;\\]]", - "patterns": [ - { - "match": "\\\\(?:.|\\n)", - "name": "constant.character.escape.tcl" - }, - { - "comment": "switch for regexp", - "match": "-\\w+\\s*" - }, - { - "applyEndPatternLast": 1, - "begin": "--\\s*", - "comment": "end of switches", - "end": "", - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "include": "#regexp" - } - ] - }, - { - "include": "#escape" - }, - { - "include": "#variable" - }, - { - "include": "#operator" - }, - { - "include": "#numeric" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tcl" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.tcl" - } - }, - "name": "string.quoted.double.tcl", - "patterns": [ - { - "include": "#escape" - }, - { - "include": "#variable" - }, - { - "include": "#embedded" - } - ] - } - ], - "repository": { - "bare-string": { - "begin": "(?:^|(?<=\\s))\"", - "comment": "matches a single quote-enclosed word without scoping", - "end": "\"([^\\s\\]]*)", - "endCaptures": { - "1": { - "name": "invalid.illegal.tcl" - } - }, - "patterns": [ - { - "include": "#escape" - }, - { - "include": "#variable" - } - ] - }, - "braces": { - "begin": "(?:^|(?<=\\s))\\{", - "comment": "matches a single brace-enclosed word", - "end": "\\}([^\\s\\]]*)", - "endCaptures": { - "1": { - "name": "invalid.illegal.tcl" - } - }, - "patterns": [ - { - "match": "\\\\[{}\\n]", - "name": "constant.character.escape.tcl" - }, - { - "include": "#inner-braces" - } - ] - }, - "embedded": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.tcl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.tcl" - } - }, - "name": "source.tcl.embedded", - "patterns": [ - { - "include": "source.tcl" - } - ] - }, - "escape": { - "match": "\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)", - "name": "constant.character.escape.tcl" - }, - "inner-braces": { - "begin": "\\{", - "comment": "matches a nested brace in a brace-enclosed word", - "end": "\\}", - "patterns": [ - { - "match": "\\\\[{}\\n]", - "name": "constant.character.escape.tcl" - }, - { - "include": "#inner-braces" - } - ] - }, - "regexp": { - "begin": "(?=\\S)(?![\\n;\\]])", - "comment": "matches a single word, named as a regexp, then swallows the rest of the command", - "end": "(?=[\\n;\\]])", - "patterns": [ - { - "begin": "(?=[^ \\t\\n;])", - "end": "(?=[ \\t\\n;])", - "name": "string.regexp.tcl", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#bare-string" - }, - { - "include": "#escape" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "[ \\t]", - "comment": "swallow the rest of the command", - "end": "(?=[\\n;\\]])", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#embedded" - }, - { - "include": "#escape" - }, - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - } - ] - }, - "string": { - "applyEndPatternLast": 1, - "begin": "(?:^|(?<=\\s))(?=\")", - "comment": "matches a single quote-enclosed word with scoping", - "end": "", - "name": "string.quoted.double.tcl", - "patterns": [ - { - "include": "#bare-string" - } - ] - }, - "variable": { - "captures": { - "1": { - "name": "punctuation.definition.variable.tcl" - } - }, - "match": "(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})", - "name": "support.function.tcl" - }, - "numeric": { - "match": "(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])", - "name": "constant.numeric.tcl" - }, - "operator": { - "match": "(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)", - "name": "keyword.operator.tcl" - } - }, - "scopeName": "source.tcl", - "uuid": "62E11136-D9E5-461C-BE98-54E3A2A9E5E3" -} diff --git a/lib/grammars/tex.tmLanguage.json b/lib/grammars/tex.tmLanguage.json deleted file mode 100644 index dd44356..0000000 --- a/lib/grammars/tex.tmLanguage.json +++ /dev/null @@ -1,286 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/TeX.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jlelong/vscode-latex-basics/commit/3ae82b457c28f0368cbbb47024b0245ef1ff3d33", - "name": "tex", - "scopeName": "text.tex", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.tex" - } - }, - "match": "(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])", - "name": "keyword.control.tex" - }, - { - "captures": { - "1": { - "name": "keyword.control.catcode.tex" - }, - "2": { - "name": "punctuation.definition.keyword.tex" - }, - "3": { - "name": "punctuation.separator.key-value.tex" - }, - "4": { - "name": "constant.numeric.category.tex" - } - }, - "match": "((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)", - "name": "meta.catcode.tex" - }, - { - "begin": "(^[ \\t]+)?(?=%)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.tex" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "%:?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.tex" - } - }, - "end": "$\\n?", - "name": "comment.line.percentage.tex" - }, - { - "begin": "^(%!TEX) (\\S*) =", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.tex" - } - }, - "end": "$\\n?", - "name": "comment.line.percentage.directive.tex" - } - ] - }, - { - "match": "[\\[\\]]", - "name": "punctuation.definition.brackets.tex" - }, - { - "begin": "(\\$\\$|\\$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.tex" - } - }, - "end": "(\\1)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.tex" - } - }, - "name": "meta.math.block.tex support.class.math.block.tex", - "patterns": [ - { - "match": "\\\\\\$", - "name": "constant.character.escape.tex" - }, - { - "include": "#math" - }, - { - "include": "$self" - } - ] - }, - { - "match": "\\\\\\\\", - "name": "keyword.control.newline.tex" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.function.tex" - } - }, - "match": "(\\\\)(?:[\\p{Alphabetic}@]+|[,;])", - "name": "support.function.general.tex" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.tex" - } - }, - "match": "(\\\\)[^a-zA-Z@]", - "name": "constant.character.escape.tex" - } - ], - "repository": { - "math": { - "patterns": [ - { - "begin": "((\\\\)(?:text|mbox))(\\{)", - "beginCaptures": { - "1": { - "name": "constant.other.math.tex" - }, - "2": { - "name": "punctuation.definition.function.tex" - }, - "3": { - "name": "punctuation.definition.arguments.begin.tex meta.text.normal.tex" - } - }, - "contentName": "meta.text.normal.tex", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.tex meta.text.normal.tex" - } - }, - "patterns": [ - { - "include": "#math" - }, - { - "include": "$base" - } - ] - }, - { - "match": "\\\\{|\\\\}", - "name": "punctuation.math.bracket.pair.tex" - }, - { - "match": "\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\(\\[\\<\\>\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)", - "name": "punctuation.math.bracket.pair.big.tex" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.math.tex" - } - }, - "match": "(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z])", - "name": "constant.character.math.tex" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.math.tex" - } - }, - "match": "(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b", - "name": "constant.character.math.tex" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.math.tex" - } - }, - "match": "(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b", - "name": "constant.other.math.tex" - }, - { - "begin": "((\\\\)Sexpr(\\{))", - "beginCaptures": { - "1": { - "name": "support.function.sexpr.math.tex" - }, - "2": { - "name": "punctuation.definition.function.math.tex" - }, - "3": { - "name": "punctuation.section.embedded.begin.math.tex" - } - }, - "contentName": "support.function.sexpr.math.tex", - "end": "(((\\})))", - "endCaptures": { - "1": { - "name": "support.function.sexpr.math.tex" - }, - "2": { - "name": "punctuation.section.embedded.end.math.tex" - }, - "3": { - "name": "source.r" - } - }, - "name": "meta.embedded.line.r", - "patterns": [ - { - "begin": "\\G(?!\\})", - "end": "(?=\\})", - "name": "source.r", - "patterns": [ - { - "include": "source.r" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.math.tex" - } - }, - "match": "(\\\\)(?!begin\\{|verb)([A-Za-z]+)", - "name": "constant.other.general.math.tex" - }, - { - "match": "(?<!\\\\)\\{", - "name": "punctuation.math.begin.bracket.curly.tex" - }, - { - "match": "(?<!\\\\)\\}", - "name": "punctuation.math.end.bracket.curly.tex" - }, - { - "match": "(?<!\\\\)\\(", - "name": "punctuation.math.begin.bracket.round.tex" - }, - { - "match": "(?<!\\\\)\\)", - "name": "punctuation.math.end.bracket.round.tex" - }, - { - "match": "(([0-9]*[\\.][0-9]+)|[0-9]+)", - "name": "constant.numeric.math.tex" - }, - { - "match": "[\\+\\*/_\\^-]", - "name": "punctuation.math.operator.tex" - } - ] - }, - "braces": { - "begin": "(?<!\\\\)\\{", - "beginCaptures": { - "0": { - "name": "punctuation.group.begin.tex" - } - }, - "end": "(?<!\\\\)\\}", - "endCaptures": { - "0": { - "name": "punctuation.group.end.tex" - } - }, - "name": "meta.group.braces.tex", - "patterns": [ - { - "include": "#braces" - } - ] - } - } -} diff --git a/lib/grammars/toml.tmLanguage.json b/lib/grammars/toml.tmLanguage.json deleted file mode 100644 index 6386b52..0000000 --- a/lib/grammars/toml.tmLanguage.json +++ /dev/null @@ -1,430 +0,0 @@ -{ - "fileTypes": ["toml"], - "keyEquivalent": "^~T", - "name": "toml", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#groups" - }, - { - "include": "#key_pair" - }, - { - "include": "#invalid" - } - ], - "repository": { - "comments": { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.toml" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.toml" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.toml" - } - ] - }, - "groups": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.section.begin.toml" - }, - "2": { - "patterns": [ - { - "match": "[^\\s.]+", - "name": "entity.name.section.toml" - } - ] - }, - "3": { - "name": "punctuation.definition.section.begin.toml" - } - }, - "match": "^\\s*(\\[)([^\\[\\]]*)(\\])", - "name": "meta.group.toml" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.section.begin.toml" - }, - "2": { - "patterns": [ - { - "match": "[^\\s.]+", - "name": "entity.name.section.toml" - } - ] - }, - "3": { - "name": "punctuation.definition.section.begin.toml" - } - }, - "match": "^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])", - "name": "meta.group.double.toml" - } - ] - }, - "invalid": { - "match": "\\S+(\\s*(?=\\S))?", - "name": "invalid.illegal.not-allowed-here.toml" - }, - "key_pair": { - "patterns": [ - { - "begin": "([A-Za-z0-9_-]+)\\s*(=)\\s*", - "captures": { - "1": { - "name": "variable.other.key.toml" - }, - "2": { - "name": "punctuation.separator.key-value.toml" - } - }, - "end": "(?<=\\S)(?<!=)|$", - "patterns": [ - { - "include": "#primatives" - } - ] - }, - { - "begin": "((\")(.*?)(\"))\\s*(=)\\s*", - "captures": { - "1": { - "name": "variable.other.key.toml" - }, - "2": { - "name": "punctuation.definition.variable.begin.toml" - }, - "3": { - "patterns": [ - { - "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape.toml" - }, - { - "match": "\\\\[^btnfr\"\\\\]", - "name": "invalid.illegal.escape.toml" - }, - { - "match": "\"", - "name": "invalid.illegal.not-allowed-here.toml" - } - ] - }, - "4": { - "name": "punctuation.definition.variable.end.toml" - }, - "5": { - "name": "punctuation.separator.key-value.toml" - } - }, - "end": "(?<=\\S)(?<!=)|$", - "patterns": [ - { - "include": "#primatives" - } - ] - }, - { - "begin": "((')([^']*)('))\\s*(=)\\s*", - "captures": { - "1": { - "name": "variable.other.key.toml" - }, - "2": { - "name": "punctuation.definition.variable.begin.toml" - }, - "4": { - "name": "punctuation.definition.variable.end.toml" - }, - "5": { - "name": "punctuation.separator.key-value.toml" - } - }, - "end": "(?<=\\S)(?<!=)|$", - "patterns": [ - { - "include": "#primatives" - } - ] - }, - { - "begin": "(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t[A-Za-z0-9_-]+\t\t\t\t# Bare key\n\t\t\t\t\t\t\t\t | \" (?:[^\"\\\\]|\\\\.)* \"\t\t# Double quoted key\n\t\t\t\t\t\t\t\t | ' [^']* '\t\t# Sindle quoted key\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\\s* \\. \\s*\t\t\t\t\t# Dot\n\t\t\t\t\t\t\t\t | (?= \\s* =)\t\t\t\t\t# or look-ahead for equals\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t){2,}\t\t\t\t\t\t\t\t# Ensure at least one dot\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*(=)\\s*\n\t\t\t\t\t", - "captures": { - "1": { - "name": "variable.other.key.toml", - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.variable.toml" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.begin.toml" - }, - "2": { - "patterns": [ - { - "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape.toml" - }, - { - "match": "\\\\[^btnfr\"\\\\]", - "name": "invalid.illegal.escape.toml" - } - ] - }, - "3": { - "name": "punctuation.definition.variable.end.toml" - } - }, - "match": "(\")((?:[^\"\\\\]|\\\\.)*)(\")" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.begin.toml" - }, - "2": { - "name": "punctuation.definition.variable.end.toml" - } - }, - "match": "(')[^']*(')" - } - ] - }, - "3": { - "name": "punctuation.separator.key-value.toml" - } - }, - "comment": "Dotted key", - "end": "(?<=\\S)(?<!=)|$", - "patterns": [ - { - "include": "#primatives" - } - ] - } - ] - }, - "primatives": { - "patterns": [ - { - "begin": "\\G\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.toml" - } - }, - "end": "\"{3,5}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.toml" - } - }, - "name": "string.quoted.triple.double.toml", - "patterns": [ - { - "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape.toml" - }, - { - "match": "\\\\[^btnfr\"\\\\\\n]", - "name": "invalid.illegal.escape.toml" - } - ] - }, - { - "begin": "\\G\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.toml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.toml" - } - }, - "name": "string.quoted.double.toml", - "patterns": [ - { - "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", - "name": "constant.character.escape.toml" - }, - { - "match": "\\\\[^btnfr\"\\\\]", - "name": "invalid.illegal.escape.toml" - } - ] - }, - { - "begin": "\\G'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.toml" - } - }, - "end": "'{3,5}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.toml" - } - }, - "name": "string.quoted.triple.single.toml" - }, - { - "begin": "\\G'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.toml" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.toml" - } - }, - "name": "string.quoted.single.toml" - }, - { - "match": "\\G(?x)\n\t\t\t\t\t\t[0-9]{4}\n\t\t\t\t\t\t-\n\t\t\t\t\t\t(0[1-9]|1[012])\n\t\t\t\t\t\t-\n\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t[Tt ]\n\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t[0-5][0-9]\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\n\t\t\t\t\t\t\t(\\.[0-9]+)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tZ\n\t\t\t\t\t\t\t | [+-](?!2[5-9])[0-2][0-9]:[0-5][0-9]\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\t\t\t\t\t", - "name": "constant.other.date.toml" - }, - { - "match": "\\G(?x)\n\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\n\t\t\t\t\t\t:\n\t\t\t\t\t\t[0-5][0-9]\n\t\t\t\t\t\t:\n\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\n\t\t\t\t\t\t(\\.[0-9]+)?\n\t\t\t\t\t", - "name": "constant.other.time.toml" - }, - { - "match": "\\G(true|false)", - "name": "constant.language.boolean.toml" - }, - { - "match": "\\G0x\\h(\\h|_\\h)*", - "name": "constant.numeric.hex.toml" - }, - { - "match": "\\G0o[0-7]([0-7]|_[0-7])*", - "name": "constant.numeric.octal.toml" - }, - { - "match": "\\G0b[01]([01]|_[01])*", - "name": "constant.numeric.binary.toml" - }, - { - "match": "\\G[+-]?(inf|nan)", - "name": "constant.numeric.toml" - }, - { - "match": "(?x)\n\t\t\t\t\t\t\\G\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [+-]?\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t | ([1-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=[.eE])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t \\.\n\t\t\t\t\t\t ([0-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [eE]\n\t\t\t\t\t\t ([+-]?[0-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t)?\n\t\t\t\t\t", - "name": "constant.numeric.float.toml" - }, - { - "match": "(?x)\n\t\t\t\t\t\t\\G\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [+-]?\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t | ([1-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", - "name": "constant.numeric.integer.toml" - }, - { - "begin": "\\G\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.toml" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.toml" - } - }, - "name": "meta.array.toml", - "patterns": [ - { - "begin": "(?=[\"'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\[|\\{)", - "end": ",|(?=])", - "endCaptures": { - "0": { - "name": "punctuation.separator.array.toml" - } - }, - "patterns": [ - { - "include": "#primatives" - }, - { - "include": "#comments" - }, - { - "include": "#invalid" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#invalid" - } - ] - }, - { - "begin": "\\G\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.inline-table.begin.toml" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.inline-table.end.toml" - } - }, - "name": "meta.inline-table.toml", - "patterns": [ - { - "begin": "(?=\\S)", - "end": ",|(?=})", - "endCaptures": { - "0": { - "name": "punctuation.separator.inline-table.toml" - } - }, - "patterns": [ - { - "include": "#key_pair" - } - ] - }, - { - "include": "#comments" - } - ] - } - ] - } - }, - "scopeName": "source.toml", - "uuid": "7DEF2EDB-5BB7-4DD2-9E78-3541A26B7923" -} diff --git a/lib/grammars/tsx.tmLanguage.json b/lib/grammars/tsx.tmLanguage.json deleted file mode 100644 index 06dd400..0000000 --- a/lib/grammars/tsx.tmLanguage.json +++ /dev/null @@ -1,5989 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", - "name": "tsx", - "scopeName": "source.tsx", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.tsx", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.tsx" - } - } - }, - "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" - } - ] - }, - "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" - }, - { - "name": "storage.modifier.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "control-statement": { - "patterns": [ - { - "include": "#switch-statement" - }, - { - "include": "#for-loop" - }, - { - "name": "keyword.control.trycatch.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.control.loop.tsx" - }, - "2": { - "name": "entity.name.label.tsx" - } - } - }, - { - "name": "keyword.control.loop.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.tsx" - } - }, - "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "keyword.control.switch.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#if-statement" - }, - { - "name": "keyword.control.conditional.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.with.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.other.debugger.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "label": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", - "beginCaptures": { - "1": { - "name": "entity.name.label.tsx" - }, - "2": { - "name": "punctuation.separator.label.tsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#decl-block" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.tsx" - }, - "2": { - "name": "punctuation.separator.label.tsx" - } - } - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "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" - } - ] - }, - "expressionPunctuations": { - "patterns": [ - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "decorator": { - "name": "meta.decorator.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", - "beginCaptures": { - "0": { - "name": "punctuation.decorator.tsx" - } - }, - "end": "(?=\\s)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "var-expr": { - "patterns": [ - { - "name": "meta.var.expr.tsx", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.tsx" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.tsx" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.tsx", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.tsx" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.tsx" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.tsx" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.tsx", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.tsx" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.tsx" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.tsx" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "var-single-variable": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.tsx", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx entity.name.function.tsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.tsx", - "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx variable.other.constant.tsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx variable.other.readwrite.tsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-const": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.tsx", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx variable.other.constant.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-variable-type-annotation": { - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "destructuring-variable": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.tsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.tsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "destructuring-const": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.tsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.tsx", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element" - } - ] - }, - { - "include": "#object-binding-pattern" - }, - { - "include": "#destructuring-variable-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-const": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element-const" - } - ] - }, - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#destructuring-variable-rest-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-propertyName": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(:)", - "endCaptures": { - "0": { - "name": "punctuation.destructuring.tsx" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "variable.object.property.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "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" - } - ] - }, - "destructuring-variable-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.tsx" - }, - "2": { - "name": "meta.definition.variable.tsx variable.other.readwrite.tsx" - } - } - }, - "destructuring-variable-rest-const": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.tsx" - }, - "2": { - "name": "meta.definition.variable.tsx variable.other.constant.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" - } - ] - }, - "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" - } - ] - }, - "parameter-name": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.tsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "keyword.operator.rest.tsx" - }, - "3": { - "name": "entity.name.function.tsx variable.language.this.tsx" - }, - "4": { - "name": "entity.name.function.tsx" - }, - "5": { - "name": "keyword.operator.optional.tsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", - "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" - } - } - } - ] - }, - "destructuring-parameter": { - "patterns": [ - { - "name": "meta.parameter.object-binding-pattern.tsx", - "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" - } - }, - "patterns": [ - { - "include": "#parameter-object-binding-element" - } - ] - }, - { - "name": "meta.paramter.array-binding-pattern.tsx", - "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" - } - }, - "patterns": [ - { - "include": "#parameter-binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "parameter-object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#parameter-binding-element" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "include": "#parameter-object-binding-pattern" - }, - { - "include": "#destructuring-parameter-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "parameter-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" - } - ] - }, - "destructuring-parameter-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.tsx" - }, - "2": { - "name": "variable.parameter.tsx" - } - } - }, - "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-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" - } - ] - }, - "field-declaration": { - "name": "meta.field.declaration.tsx", - "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - } - }, - "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", - "patterns": [ - { - "include": "#variable-initializer" - }, - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#comment" - }, - { - "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.tsx entity.name.function.tsx" - }, - "2": { - "name": "keyword.operator.optional.tsx" - }, - "3": { - "name": "keyword.operator.definiteassignment.tsx" - } - } - }, - { - "name": "meta.definition.property.tsx variable.object.property.tsx", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.tsx", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.tsx", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.tsx" - } - }, - "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<!=|!)(=)(?!=)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.tsx" - } - }, - "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "function-declaration": { - "name": "meta.function.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.async.tsx" - }, - "4": { - "name": "storage.type.function.tsx" - }, - "5": { - "name": "keyword.generator.asterisk.tsx" - }, - "6": { - "name": "meta.definition.function.tsx entity.name.function.tsx" - } - }, - "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#function-body" - } - ] - }, - "function-expression": { - "name": "meta.function.expression.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "storage.type.function.tsx" - }, - "3": { - "name": "keyword.generator.asterisk.tsx" - }, - "4": { - "name": "meta.definition.function.tsx entity.name.function.tsx" - } - }, - "end": "(?=;)|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#function-body" - } - ] - }, - "function-name": { - "name": "meta.definition.function.tsx entity.name.function.tsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - "function-body": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#return-type" - }, - { - "include": "#type-function-return-type" - }, - { - "include": "#decl-block" - }, - { - "name": "keyword.generator.asterisk.tsx", - "match": "\\*" - } - ] - }, - "method-declaration": { - "patterns": [ - { - "name": "meta.method.declaration.tsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.tsx" - }, - "4": { - "name": "storage.modifier.async.tsx" - }, - "5": { - "name": "storage.type.tsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.tsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.tsx" - }, - "4": { - "name": "storage.modifier.async.tsx" - }, - "5": { - "name": "keyword.operator.new.tsx" - }, - "6": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.tsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.tsx" - }, - "4": { - "name": "storage.modifier.async.tsx" - }, - "5": { - "name": "storage.type.property.tsx" - }, - "6": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.tsx", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "storage.type.property.tsx" - }, - "3": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "storage.type.property.tsx" - }, - "3": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "meta.definition.method.tsx entity.name.function.tsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.tsx", - "match": "\\?" - } - ] - }, - "arrow-function": { - "patterns": [ - { - "name": "meta.arrow.tsx", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", - "captures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "variable.parameter.tsx" - } - } - }, - { - "name": "meta.arrow.tsx", - "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.tsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.tsx" - } - }, - "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.tsx", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "meta.brace.square.tsx" - }, - "3": { - "name": "variable.parameter.tsx" - } - }, - "end": "(\\])\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.tsx" - }, - "2": { - "name": "keyword.operator.optional.tsx" - } - }, - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - "indexer-mapped-type-declaration": { - "name": "meta.indexer.mappedtype.declaration.tsx", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.modifier.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "meta.brace.square.tsx" - }, - "4": { - "name": "entity.name.type.tsx" - }, - "5": { - "name": "keyword.operator.expression.in.tsx" - } - }, - "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.tsx" - }, - "2": { - "name": "keyword.operator.type.modifier.tsx" - }, - "3": { - "name": "keyword.operator.optional.tsx" - } - }, - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", - "captures": { - "1": { - "name": "keyword.control.as.tsx" - } - } - }, - { - "include": "#type" - } - ] - }, - "function-parameters": { - "name": "meta.parameters.tsx", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.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" - }, - { - "name": "punctuation.separator.parameter.tsx", - "match": "," - } - ] - }, - "class-declaration": { - "name": "meta.class.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.tsx" - }, - "4": { - "name": "storage.type.class.tsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-expression": { - "name": "meta.class.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "storage.type.class.tsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-declaration-or-expression-patterns": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.class.tsx" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "interface-declaration": { - "name": "meta.interface.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.tsx" - }, - "4": { - "name": "storage.type.interface.tsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.interface.tsx" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "class-or-interface-heritage": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "include": "#type-parameters" - }, - { - "include": "#expressionWithoutIdentifiers" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", - "captures": { - "1": { - "name": "entity.name.type.module.tsx" - }, - "2": { - "name": "punctuation.accessor.tsx" - }, - "3": { - "name": "punctuation.accessor.optional.tsx" - } - } - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "entity.other.inherited-class.tsx" - } - } - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "class-or-interface-body": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#decorator" - }, - { - "begin": "(?<=:)\\s*", - "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#method-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#field-declaration" - }, - { - "include": "#string" - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#access-modifier" - }, - { - "include": "#property-accessor" - }, - { - "include": "#async-modifier" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "access-modifier": { - "name": "storage.modifier.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "property-accessor": { - "name": "storage.type.property.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "async-modifier": { - "name": "storage.modifier.async.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "enum-declaration": { - "name": "meta.enum.declaration.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.tsx" - }, - "4": { - "name": "storage.type.enum.tsx" - }, - "5": { - "name": "entity.name.type.enum.tsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "0": { - "name": "variable.other.enummember.tsx" - } - }, - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "namespace-declaration": { - "name": "meta.namespace.declaration.tsx", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.namespace.tsx" - } - }, - "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "entity.name.type.module.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - }, - { - "include": "#punctuation-accessor" - }, - { - "include": "#decl-block" - } - ] - }, - "type-alias-declaration": { - "name": "meta.type.declaration.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.type.type.tsx" - }, - "4": { - "name": "entity.name.type.alias.tsx" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.tsx" - }, - "2": { - "name": "keyword.control.intrinsic.tsx" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.tsx" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "import-equals-declaration": { - "patterns": [ - { - "name": "meta.import-equals.external.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "keyword.control.import.tsx" - }, - "4": { - "name": "keyword.control.type.tsx" - }, - "5": { - "name": "variable.other.readwrite.alias.tsx" - }, - "6": { - "name": "keyword.operator.assignment.tsx" - }, - "7": { - "name": "keyword.control.require.tsx" - }, - "8": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.import-equals.internal.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "keyword.control.import.tsx" - }, - "4": { - "name": "keyword.control.type.tsx" - }, - "5": { - "name": "variable.other.readwrite.alias.tsx" - }, - "6": { - "name": "keyword.operator.assignment.tsx" - } - }, - "end": "(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.tsx" - }, - "2": { - "name": "punctuation.accessor.tsx" - }, - "3": { - "name": "punctuation.accessor.optional.tsx" - } - } - }, - { - "name": "variable.other.readwrite.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - } - ] - }, - "import-declaration": { - "name": "meta.import.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "keyword.control.import.tsx" - }, - "4": { - "name": "keyword.control.type.tsx" - } - }, - "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", - "end": "\\bfrom\\b", - "endCaptures": { - "0": { - "name": "keyword.control.from.tsx" - } - }, - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - }, - { - "include": "#import-export-declaration" - } - ] - }, - "export-declaration": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "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" - } - } - }, - { - "name": "meta.export.default.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "keyword.control.type.tsx" - }, - "3": { - "name": "keyword.operator.assignment.tsx" - }, - "4": { - "name": "keyword.control.default.tsx" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#interface-declaration" - }, - { - "include": "#expression" - } - ] - }, - { - "name": "meta.export.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.tsx" - }, - "2": { - "name": "keyword.control.type.tsx" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - } - ] - }, - "import-export-declaration": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#import-export-block" - }, - { - "name": "keyword.control.from.tsx", - "match": "\\bfrom\\b" - }, - { - "include": "#import-export-assert-clause" - }, - { - "include": "#import-export-clause" - } - ] - }, - "import-export-assert-clause": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.assert.tsx" - }, - "2": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "meta.object-literal.key.tsx", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" - }, - { - "name": "punctuation.separator.key-value.tsx", - "match": ":" - } - ] - }, - "import-export-block": { - "name": "meta.block.tsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#import-export-clause" - } - ] - }, - "import-export-clause": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", - "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" - } - } - }, - { - "include": "#punctuation-comma" - }, - { - "name": "constant.language.import-export-all.tsx", - "match": "\\*" - }, - { - "name": "keyword.control.default.tsx", - "match": "\\b(default)\\b" - }, - { - "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.control.type.tsx" - }, - "2": { - "name": "variable.other.readwrite.alias.tsx" - } - } - } - ] - }, - "switch-statement": { - "name": "switch-statement.expr.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "switch-expression.expr.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.tsx" - }, - "2": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "switch-block.expr.tsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "name": "case-clause.expr.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.tsx" - } - }, - "end": "(?=:)", - "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" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "meta.block.tsx punctuation.definition.block.tsx" - } - }, - "contentName": "meta.block.tsx", - "patterns": [ - { - "include": "#statements" - } - ] - }, - { - "match": "(:)", - "captures": { - "0": { - "name": "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" - } - } - }, - { - "include": "#statements" - } - ] - } - ] - }, - "for-loop": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", - "beginCaptures": { - "0": { - "name": "keyword.control.loop.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "keyword.control.loop.tsx", - "match": "await" - }, - { - "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" - } - ] - } - ] - }, - "if-statement": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", - "end": "(?=;|$|\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.tsx" - }, - "2": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "string.regexp.tsx", - "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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "include": "#statements" - } - ] - } - ] - }, - "decl-block": { - "name": "meta.block.tsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#statements" - } - ] - }, - "after-operator-block-as-object-literal": { - "name": "meta.objectliteral.tsx", - "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.tsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.tsx meta.object-literal.key.tsx", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.tsx meta.object-literal.key.tsx", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.tsx meta.object-literal.key.tsx", - "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", - "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#numeric-literal" - } - ] - }, - { - "name": "meta.method.declaration.tsx", - "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.object.member.tsx", - "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.tsx" - }, - "1": { - "name": "constant.numeric.decimal.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.tsx" - }, - "1": { - "name": "entity.name.function.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.tsx" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", - "captures": { - "1": { - "name": "keyword.control.as.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.tsx" - }, - "2": { - "name": "keyword.control.satisfies.tsx" - } - }, - "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.object.member.tsx", - "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", - "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.tsx", - "begin": ":", - "beginCaptures": { - "0": { - "name": "meta.object-literal.key.tsx punctuation.separator.key-value.tsx" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\>)", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - { - "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#decl-block" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.tsx" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.tsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.tsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tsx", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.tsx punctuation.accessor.optional.tsx", - "match": "\\?\\." - }, - { - "name": "meta.function-call.tsx keyword.operator.definiteassignment.tsx", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.tsx", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" - } - ] - }, - "new-expr": { - "name": "new.expr.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.new.tsx" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "instanceof-expr": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.expression.instanceof.tsx" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#type" - } - ] - }, - "paren-expression-possibly-arrow": { - "patterns": [ - { - "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - "paren-expression-possibly-arrow-with-typeparameters": { - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.tsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "keyword.operator.rest.tsx" - }, - "3": { - "name": "entity.name.function.tsx variable.language.this.tsx" - }, - "4": { - "name": "entity.name.function.tsx" - }, - "5": { - "name": "keyword.operator.optional.tsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", - "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" - } - } - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "name": "punctuation.separator.parameter.tsx", - "match": "," - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "paren-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "cast": { - "patterns": [ - { - "include": "#jsx" - } - ] - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.control.flow.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.tsx" - } - }, - "end": "\\*", - "endCaptures": { - "0": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", - "captures": { - "1": { - "name": "keyword.control.flow.tsx" - }, - "2": { - "name": "keyword.generator.asterisk.tsx" - } - } - }, - { - "name": "keyword.operator.expression.delete.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.in.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.of.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.instanceof.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.new.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#typeof-operator" - }, - { - "name": "keyword.operator.expression.void.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", - "captures": { - "1": { - "name": "keyword.control.as.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - } - } - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.tsx" - }, - "2": { - "name": "keyword.control.satisfies.tsx" - } - }, - "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "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", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.logical.tsx" - }, - "2": { - "name": "keyword.operator.assignment.compound.tsx" - }, - "3": { - "name": "keyword.operator.arithmetic.tsx" - } - } - }, - { - "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", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", - "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", - "endCaptures": { - "1": { - "name": "keyword.operator.assignment.compound.tsx" - }, - "2": { - "name": "keyword.operator.arithmetic.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.assignment.compound.tsx" - }, - "2": { - "name": "keyword.operator.arithmetic.tsx" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.operator.expression.typeof.tsx" - } - }, - "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type-arguments" - }, - { - "include": "#expression" - } - ] - }, - "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" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.tsx", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.tsx" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.tsx", - "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.tsx" - } - } - }, - { - "name": "constant.numeric.binary.tsx", - "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.tsx" - } - } - }, - { - "name": "constant.numeric.octal.tsx", - "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.tsx" - } - } - }, - { - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", - "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" - } - } - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.boolean.false.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "null-literal": { - "name": "constant.language.null.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "this-literal": { - "name": "variable.language.this.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" - }, - "super-literal": { - "name": "variable.language.super.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" - }, - "undefined-literal": { - "name": "constant.language.undefined.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "numericConstant-literal": { - "patterns": [ - { - "name": "constant.language.nan.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.infinity.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "support-objects": { - "patterns": [ - { - "name": "variable.language.arguments.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" - }, - { - "name": "support.class.promise.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", - "captures": { - "1": { - "name": "keyword.control.import.tsx" - }, - "2": { - "name": "punctuation.accessor.tsx" - }, - "3": { - "name": "punctuation.accessor.optional.tsx" - }, - "4": { - "name": "support.variable.property.importmeta.tsx" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\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": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\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": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\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" - } - } - } - ] - }, - "identifiers": { - "patterns": [ - { - "include": "#object-identifiers" - }, - { - "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "entity.name.function.tsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "variable.other.constant.property.tsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "variable.other.property.tsx" - } - } - }, - { - "name": "variable.other.constant.tsx", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.tsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "variable.other.constant.object.property.tsx" - }, - "4": { - "name": "variable.other.object.property.tsx" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.tsx" - }, - "2": { - "name": "variable.other.object.tsx" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.tsx", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.tsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.tsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.tsx", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?<![:|&])(?=$|^|[{};,]|//)", - "patterns": [ - { - "include": "#return-type-core" - } - ] - }, - { - "name": "meta.return.type.tsx", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#return-type-core" - } - ] - } - ] - }, - "return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<=[:|&])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "arrow-return-type": { - "name": "meta.return.type.arrow.tsx", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.tsx 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" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.tsx", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "name": "keyword.operator.assignment.tsx", - "match": "(=)(?!>)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.tsx", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.tsx" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "0": { - "name": "keyword.operator.type.tsx" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "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" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "captures": { - "1": { - "name": "storage.modifier.tsx" - } - } - }, - { - "include": "#type-name" - } - ] - }, - "type-primitive": { - "name": "support.type.primitive.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-builtin-literals": { - "name": "support.type.builtin.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-tuple": { - "name": "meta.type.tuple.tsx", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "meta.brace.square.tsx" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.tsx" - } - }, - "patterns": [ - { - "name": "keyword.operator.rest.tsx", - "match": "\\.\\.\\." - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.tsx" - }, - "2": { - "name": "keyword.operator.optional.tsx" - }, - "3": { - "name": "punctuation.separator.label.tsx" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-object": { - "name": "meta.object.type.tsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.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-conditional": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - } - }, - "end": "(?<=:)", - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.tsx" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.tsx" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#type" - } - ] - } - ] - }, - "type-paren-or-function-parameters": { - "name": "meta.type.paren.cover.tsx", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\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": "entity.name.function.tsx variable.language.this.tsx" - }, - "4": { - "name": "entity.name.function.tsx" - }, - "5": { - "name": "keyword.operator.optional.tsx" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", - "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" - } - } - }, - { - "include": "#type-annotation" - }, - { - "name": "punctuation.separator.parameter.tsx", - "match": "," - }, - { - "include": "#type" - } - ] - }, - "type-fn-type-parameters": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", - "beginCaptures": { - "1": { - "name": "meta.type.constructor.tsx storage.modifier.tsx" - }, - "2": { - "name": "meta.type.constructor.tsx keyword.control.new.tsx" - } - }, - "end": "(?<=>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.tsx", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "keyword.control.new.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "name": "meta.type.function.tsx", - "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.tsx", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.tsx" - } - }, - "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.tsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.tsx" - } - }, - "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "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-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)" - }, - { - "name": "keyword.operator.expression.keyof.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.ternary.tsx", - "match": "(\\?|\\:)" - }, - { - "name": "keyword.operator.expression.import.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" - } - ] - }, - "type-infer": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", - "name": "meta.type.infer.tsx", - "captures": { - "1": { - "name": "keyword.operator.expression.infer.tsx" - }, - "2": { - "name": "entity.name.type.tsx" - }, - "3": { - "name": "keyword.operator.expression.extends.tsx" - } - } - } - ] - }, - "type-predicate-operator": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.tsx" - }, - "2": { - "name": "variable.parameter.tsx variable.language.this.tsx" - }, - "3": { - "name": "variable.parameter.tsx" - }, - "4": { - "name": "keyword.operator.expression.is.tsx" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.tsx" - }, - "2": { - "name": "variable.parameter.tsx variable.language.this.tsx" - }, - "3": { - "name": "variable.parameter.tsx" - } - } - }, - { - "name": "keyword.operator.type.asserts.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.is.tsx", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "type-name": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", - "captures": { - "1": { - "name": "entity.name.type.module.tsx" - }, - "2": { - "name": "punctuation.accessor.tsx" - }, - "3": { - "name": "punctuation.accessor.optional.tsx" - }, - "4": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" - } - }, - "contentName": "meta.type.parameters.tsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.tsx" - }, - "2": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" - } - }, - "contentName": "meta.type.parameters.tsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.tsx" - }, - "2": { - "name": "punctuation.accessor.tsx" - }, - "3": { - "name": "punctuation.accessor.optional.tsx" - } - } - }, - { - "name": "entity.name.type.tsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.tsx", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.tsx", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.tsx", - "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" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.tsx", - "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" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.tsx", - "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]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.tsx" - }, - "2": { - "name": "string.template.tsx punctuation.definition.string.template.begin.tsx" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "string.template.tsx punctuation.definition.string.template.end.tsx" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.tsx" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.tsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.tsx" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.tsx" - }, - "2": { - "name": "string.template.tsx punctuation.definition.string.template.begin.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": { - "name": "meta.template.expression.tsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.tsx" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.tsx" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.tsx", - "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.tsx" - }, - "2": { - "name": "keyword.other.tsx" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.tsx", - "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.tsx" - }, - "2": { - "name": "keyword.other.tsx" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - } - ] - }, - "regexp": { - "patterns": [ - { - "name": "keyword.control.anchor.regexp", - "match": "\\\\[bB]|\\^|\\$" - }, - { - "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "meta.group.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.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" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.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])|(\\\\.))", - "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" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.tsx", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.tsx" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.tsx" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.tsx", - "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" - } - } - }, - { - "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" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.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" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.tsx" - }, - "directives": { - "name": "comment.line.triple-slash.directive.tsx", - "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": "(?=$)", - "patterns": [ - { - "name": "meta.tag.tsx", - "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" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.tsx", - "match": "path|types|no-default-lib|lib|name|resolution-mode" - }, - { - "name": "keyword.operator.assignment.tsx", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", - "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" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "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" - } - }, - "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" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.tsx" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "(?x)((@)template)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "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" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "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" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "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" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "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" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.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" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.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-tag-without-attributes-in-expression": { - "begin": "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - } - ] - }, - "jsx-tag-without-attributes": { - "name": "meta.tag.without-attributes.tsx", - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", - "end": "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "2": { - "name": "entity.name.tag.namespace.tsx" - }, - "3": { - "name": "punctuation.separator.namespace.tsx" - }, - "4": { - "name": "entity.name.tag.tsx" - }, - "5": { - "name": "support.class.component.tsx" - }, - "6": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "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" - } - }, - "contentName": "meta.jsx.children.tsx", - "patterns": [ - { - "include": "#jsx-children" - } - ] - }, - "jsx-tag-in-expression": { - "begin": "(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "patterns": [ - { - "include": "#jsx-tag" - } - ] - }, - "jsx-tag": { - "name": "meta.tag.tsx", - "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", - "end": "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.tsx" - }, - "2": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "3": { - "name": "entity.name.tag.namespace.tsx" - }, - "4": { - "name": "punctuation.separator.namespace.tsx" - }, - "5": { - "name": "entity.name.tag.tsx" - }, - "6": { - "name": "support.class.component.tsx" - }, - "7": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "patterns": [ - { - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "2": { - "name": "entity.name.tag.namespace.tsx" - }, - "3": { - "name": "punctuation.separator.namespace.tsx" - }, - "4": { - "name": "entity.name.tag.tsx" - }, - "5": { - "name": "support.class.component.tsx" - } - }, - "end": "(?=[/]?>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-arguments" - }, - { - "include": "#jsx-tag-attributes" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "end": "(?=</)", - "contentName": "meta.jsx.children.tsx", - "patterns": [ - { - "include": "#jsx-children" - } - ] - } - ] - }, - "jsx-children": { - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - }, - { - "include": "#jsx-tag" - }, - { - "include": "#jsx-evaluated-code" - }, - { - "include": "#jsx-entities" - } - ] - }, - "jsx-evaluated-code": { - "contentName": "meta.embedded.expression.tsx", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.tsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "jsx-entities": { - "patterns": [ - { - "name": "constant.character.entity.tsx", - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "captures": { - "1": { - "name": "punctuation.definition.entity.tsx" - }, - "3": { - "name": "punctuation.definition.entity.tsx" - } - } - } - ] - }, - "jsx-tag-attributes": { - "name": "meta.tag.attributes.tsx", - "begin": "\\s+", - "end": "(?=[/]?>)", - "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-attribute-name": { - "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.tsx" - }, - "2": { - "name": "punctuation.separator.namespace.tsx" - }, - "3": { - "name": "entity.other.attribute-name.tsx" - } - } - }, - "jsx-tag-attribute-assignment": { - "name": "keyword.operator.assignment.tsx", - "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" - }, - "jsx-string-double-quoted": { - "name": "string.quoted.double.tsx", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.tsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-string-single-quoted": { - "name": "string.quoted.single.tsx", - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.tsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-tag-attributes-illegal": { - "name": "invalid.illegal.attribute.tsx", - "match": "\\S+" - } - } -} diff --git a/lib/grammars/turtle.tmLanguage.json b/lib/grammars/turtle.tmLanguage.json deleted file mode 100644 index 9abdbf3..0000000 --- a/lib/grammars/turtle.tmLanguage.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "name": "turtle", - "scopeName": "source.turtle", - "fileTypes": ["turtle", "ttl", "acl"], - "patterns": [ - { - "include": "#rule-constraint" - }, - { - "include": "#iriref" - }, - { - "include": "#prefix" - }, - { - "include": "#prefixed-name" - }, - { - "include": "#comment" - }, - { - "include": "#special-predicate" - }, - { - "include": "#literals" - }, - { - "include": "#language-tag" - } - ], - "uuid": "230498230498sdfkj8909-34df-23dfs", - "repository": { - "prefix": { - "name": "keyword.operator.turtle", - "match": "(?i:@?base|@?prefix)\\s" - }, - "iriref": { - "name": "entity.name.type.iriref.turtle", - "match": "<[^\\x20-\\x20<>\"{}|^`\\\\]*>" - }, - "prefixed-name": { - "name": "constant.complex.turtle", - "match": "(\\w*:)(\\w*)", - "captures": { - "1": { - "name": "storage.type.PNAME_NS.turtle" - }, - "2": { - "name": "support.variable.PN_LOCAL.turtle" - } - } - }, - "comment": { - "name": "comment.line.number-sign.turtle", - "match": "#.*$" - }, - "special-predicate": { - "name": "meta.specialPredicate.turtle", - "match": "\\s(a)\\s", - "captures": { - "1": { - "name": "keyword.control.turtle" - } - } - }, - "literals": { - "patterns": [ - { - "include": "#string" - }, - { - "include": "#numeric" - }, - { - "include": "#boolean" - } - ] - }, - "string": { - "patterns": [ - { - "include": "#triple-squote-string-literal" - }, - { - "include": "#triple-dquote-string-literal" - }, - { - "include": "#single-squote-string-literal" - }, - { - "include": "#single-dquote-string-literal" - }, - { - "include": "#triple-tick-string-literal" - } - ] - }, - "single-squote-string-literal": { - "name": "string.quoted.single.turtle", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.turtle" - } - }, - "end": "'", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.turtle" - }, - "2": { - "name": "invalid.illegal.newline.turtle" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "single-dquote-string-literal": { - "name": "string.quoted.double.turtle", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.turtle" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.turtle" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "triple-squote-string-literal": { - "name": "string.quoted.triple.turtle", - "begin": "'''", - "end": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.turtle" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.turtle" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "triple-dquote-string-literal": { - "name": "string.quoted.triple.turtle", - "begin": "\"\"\"", - "end": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.turtle" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.turtle" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "triple-tick-string-literal": { - "name": "string.quoted.triple.turtle", - "begin": "```", - "end": "```", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.turtle" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.turtle" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.turtle", - "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" - }, - "numeric": { - "patterns": [ - { - "include": "#integer" - } - ] - }, - "integer": { - "name": "constant.numeric.turtle", - "match": "[+-]?(?:\\d+|[0-9]+\\.[0-9]*|\\.[0-9]+(?:[eE][+-]?\\d+)?)" - }, - "boolean": { - "name": "constant.language.sparql", - "match": "\\b(?i:true|false)\\b" - }, - "language-tag": { - "name": "meta.string-literal-language-tag.turtle", - "match": "@(\\w+)", - "captures": { - "1": { - "name": "entity.name.class.turtle" - } - } - }, - "rule-constraint": { - "name": "meta.rule-constraint.turtle", - "begin": "(rule:content) (\"\"\")", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#prefixed-name" - } - ] - }, - "2": { - "name": "string.quoted.triple.turtle" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "string.quoted.triple.turtle" - } - }, - "patterns": [ - { - "include": "source.srs" - } - ] - } - } -} diff --git a/lib/grammars/twig.tmLanguage.json b/lib/grammars/twig.tmLanguage.json deleted file mode 100644 index 501020e..0000000 --- a/lib/grammars/twig.tmLanguage.json +++ /dev/null @@ -1,1372 +0,0 @@ -{ - "fileTypes": ["twig", "html.twig"], - "firstLineMatch": "<!(?i:DOCTYPE)|<(?i:html)|<\\?(?i:php)|\\{\\{|\\{%|\\{#", - "foldingStartMarker": "(?x)\n (<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\b.*?>\n |<!--(?!.*--\\s*>)\n |^<!--\\ \\#tminclude\\ (?>.*?-->)$\n |\\{%\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )", - "foldingStopMarker": "(?x)\n (</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>\n |^(?!.*?<!--).*?--\\s*>\n |^<!--\\ end\\ tminclude\\ -->$\n |\\{%\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )", - "keyEquivalent": "^~T", - "name": "twig", - "patterns": [ - { - "begin": "(<)([a-zA-Z0-9:]++)(?=[^>]*></\\2>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(>(<)/)(\\2)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "meta.scope.between-tag-pair.html" - }, - "3": { - "name": "entity.name.tag.html" - }, - "4": { - "name": "punctuation.definition.tag.html" - } - }, - "name": "meta.tag.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(<\\?)(xml)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.xml.html" - } - }, - "end": "(\\?>)", - "name": "meta.tag.preprocessor.xml.html", - "patterns": [ - { - "include": "#tag-generic-attribute" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#string-single-quoted" - } - ] - }, - { - "begin": "<!--", - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - }, - "end": "--\\s*>", - "name": "comment.block.html", - "patterns": [ - { - "match": "--", - "name": "invalid.illegal.bad-comments-or-CDATA.html" - }, - { - "include": "#embedded-code" - } - ] - }, - { - "begin": "<!", - "captures": { - "0": { - "name": "punctuation.definition.tag.html" - } - }, - "end": ">", - "name": "meta.tag.sgml.html", - "patterns": [ - { - "begin": "(?i:DOCTYPE)", - "captures": { - "1": { - "name": "entity.name.tag.doctype.html" - } - }, - "end": "(?=>)", - "name": "meta.tag.sgml.doctype.html", - "patterns": [ - { - "match": "\"[^\">]*\"", - "name": "string.quoted.double.doctype.identifiers-and-DTDs.html" - } - ] - }, - { - "begin": "\\[CDATA\\[", - "end": "]](?=>)", - "name": "constant.other.inline-data.html" - }, - { - "match": "(\\s*)(?!--|>)\\S(\\s*)", - "name": "invalid.illegal.bad-comments-or-CDATA.html" - } - ] - }, - { - "include": "#embedded-code" - }, - { - "begin": "(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.style.html" - }, - "3": { - "name": "punctuation.definition.tag.html" - } - }, - "end": "(</)((?i:style))(>)(?:\\s*\\n)?", - "name": "source.css.embedded.html", - "patterns": [ - { - "include": "#tag-stuff" - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - } - }, - "end": "(?=</(?i:style))", - "patterns": [ - { - "include": "#embedded-code" - }, - { - "include": "source.css" - } - ] - } - ] - }, - { - "begin": "(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.script.html" - } - }, - "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?", - "endCaptures": { - "2": { - "name": "punctuation.definition.tag.html" - } - }, - "name": "source.js.embedded.html", - "patterns": [ - { - "include": "#tag-stuff" - }, - { - "begin": "(?<!</(?:script|SCRIPT))(>)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.script.html" - } - }, - "end": "(</)((?i:script))", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.js" - } - }, - "match": "(//).*?((?=</script)|$\\n?)", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "\\*/|(?=</script)", - "name": "comment.block.js" - }, - { - "include": "#php" - }, - { - "include": "#twig-print-tag" - }, - { - "include": "#twig-statement-tag" - }, - { - "include": "#twig-comment-tag" - }, - { - "include": "source.js" - } - ] - } - ] - }, - { - "begin": "(?ix) # Enable free spacing mode, case insensitive\n # Make sure our opening js tag has word boundaries\n (?<=\\{\\%\\sjs\\s\\%\\}|\\{\\%\\sincludejs\\s\\%\\})\n ", - "comment": "Add JS support to set tags that use the pattern \"css\" in their name", - "end": "(?ix)(?=\\{\\%\\sendjs\\s\\%\\}|\\{\\%\\sendincludejs\\s\\%\\})", - "name": "source.js.embedded.twig", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(?ix) # Enable free spacing mode, case insensitive\n (?<=\\{\\%\\scss\\s\\%\\}|\\{\\%\\sincludecss\\s\\%\\}|\\{\\%\\sincludehirescss\\s\\%\\})\n ", - "comment": "Add CSS support to set tags that use the pattern \"css\" in their name", - "end": "(?ix)(?=\\{\\%\\sendcss\\s\\%\\}|\\{\\%\\sendincludecss\\s\\%\\}|\\{\\%\\sendincludehirescss\\s\\%\\})", - "name": "source.css.embedded.twig", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(</?)((?i:body|head|html)\\b)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.structure.any.html" - } - }, - "end": "(>)", - "name": "meta.tag.structure.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.block.any.html" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.block.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.inline.any.html" - } - }, - "end": "((?: ?/)?>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(</?)([a-zA-Z0-9:]+)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.other.html" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "include": "#entities" - }, - { - "match": "<>", - "name": "invalid.illegal.incomplete.html" - }, - { - "match": "<", - "name": "invalid.illegal.bad-angle-bracket.html" - }, - { - "include": "#twig-print-tag" - }, - { - "include": "#twig-statement-tag" - }, - { - "include": "#twig-comment-tag" - } - ], - "repository": { - "embedded-code": { - "patterns": [ - { - "include": "#ruby" - }, - { - "include": "#php" - }, - { - "include": "#twig-print-tag" - }, - { - "include": "#twig-statement-tag" - }, - { - "include": "#twig-comment-tag" - }, - { - "include": "#python" - } - ] - }, - "entities": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - }, - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "name": "constant.character.entity.html" - }, - { - "match": "&", - "name": "invalid.illegal.bad-ampersand.html" - } - ] - }, - "twig-print-tag": { - "begin": "\\{\\{-?", - "beginCaptures": { - "0": { - "name": "punctuation.section.tag.twig" - } - }, - "end": "-?\\}\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.tag.twig" - } - }, - "name": "meta.tag.template.value.twig", - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-operators" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - }, - { - "include": "#twig-hashes" - } - ] - }, - "twig-statement-tag": { - "begin": "\\{%-?", - "beginCaptures": { - "0": { - "name": "punctuation.section.tag.twig" - } - }, - "end": "-?%\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.tag.twig" - } - }, - "name": "meta.tag.template.block.twig", - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-keywords" - }, - { - "include": "#twig-operators" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - }, - { - "include": "#twig-hashes" - } - ] - }, - "twig-comment-tag": { - "begin": "\\{#-?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.twig" - } - }, - "end": "-?#\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.twig" - } - }, - "name": "comment.block.twig" - }, - "twig-constants": { - "patterns": [ - { - "match": "(?i)(?<=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])", - "name": "constant.language.twig" - }, - { - "match": "(?<=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)", - "name": "constant.numeric.twig" - } - ] - }, - "twig-operators": { - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.operator.arithmetic.twig" - } - }, - "match": "(?<=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)" - }, - { - "captures": { - "1": { - "name": "keyword.operator.assignment.twig" - } - }, - "match": "(?<=\\s)(=|~)(?=\\s)" - }, - { - "captures": { - "1": { - "name": "keyword.operator.bitwise.twig" - } - }, - "match": "(?<=\\s)(b-(?:and|or|xor))(?=\\s)" - }, - { - "captures": { - "1": { - "name": "keyword.operator.comparison.twig" - } - }, - "match": "(?<=\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)" - }, - { - "captures": { - "1": { - "name": "keyword.operator.logical.twig" - } - }, - "match": "(?<=\\s)(\\?|:|and|not|or)(?=\\s)" - }, - { - "captures": { - "0": { - "name": "keyword.operator.other.twig" - } - }, - "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'\"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'\"])" - }, - { - "captures": { - "0": { - "name": "keyword.operator.other.twig" - } - }, - "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'\"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])" - } - ] - }, - "twig-objects": { - "captures": { - "1": { - "name": "variable.other.twig" - } - }, - "match": "(?<=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])" - }, - "twig-properties": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.property.twig" - }, - "2": { - "name": "variable.other.property.twig" - } - }, - "match": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?=[\\.\\s\\|\\[\\)\\]\\}:,])\n " - }, - { - "begin": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (\\()\n ", - "beginCaptures": { - "1": { - "name": "punctuation.separator.property.twig" - }, - "2": { - "name": "variable.other.property.twig" - }, - "3": { - "name": "punctuation.definition.parameters.begin.twig" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - } - ], - "contentName": "meta.function.arguments.twig" - }, - { - "captures": { - "1": { - "name": "punctuation.section.array.begin.twig" - }, - "2": { - "name": "variable.other.property.twig" - }, - "3": { - "name": "punctuation.section.array.end.twig" - }, - "4": { - "name": "punctuation.section.array.begin.twig" - }, - "5": { - "name": "variable.other.property.twig" - }, - "6": { - "name": "punctuation.section.array.end.twig" - }, - "7": { - "name": "punctuation.section.array.begin.twig" - }, - "8": { - "name": "variable.other.property.twig" - }, - "9": { - "name": "punctuation.section.array.end.twig" - } - }, - "match": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]])\n (?:\n (\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\])\n |(\\[)(\"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\")(\\])\n |(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\])\n )\n " - } - ] - }, - "twig-strings": { - "patterns": [ - { - "begin": "(?:(?<!\\\\)|(?<=\\\\\\\\))'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.twig" - } - }, - "end": "(?:(?<!\\\\)|(?<=\\\\\\\\))'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.twig" - } - }, - "name": "string.quoted.single.twig" - }, - { - "begin": "(?:(?<!\\\\)|(?<=\\\\\\\\))\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.twig" - } - }, - "end": "(?:(?<!\\\\)|(?<=\\\\\\\\))\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.twig" - } - }, - "name": "string.quoted.double.twig" - } - ] - }, - "twig-arrays": { - "begin": "(?<=[\\s\\(\\{\\[:,])\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.twig" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-arrays" - }, - { - "include": "#twig-hashes" - }, - { - "include": "#twig-constants" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "match": ",", - "name": "punctuation.separator.object.twig" - } - ], - "name": "meta.array.twig" - }, - "twig-hashes": { - "begin": "(?<=[\\s\\(\\{\\[:,])\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.hash.begin.twig" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.hash.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-hashes" - }, - { - "include": "#twig-arrays" - }, - { - "include": "#twig-constants" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "match": ":", - "name": "punctuation.separator.key-value.twig" - }, - { - "match": ",", - "name": "punctuation.separator.object.twig" - } - ], - "name": "meta.hash.twig" - }, - "twig-keywords": { - "match": "(?<=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)", - "name": "keyword.control.twig" - }, - "twig-functions-warg": { - "begin": "(?<=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.twig" - }, - "2": { - "name": "punctuation.definition.parameters.begin.twig" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - } - ], - "contentName": "meta.function.arguments.twig" - }, - "twig-functions": { - "captures": { - "1": { - "name": "support.function.twig" - } - }, - "match": "(?<=is\\s)(defined|empty|even|iterable|odd)" - }, - "twig-macros": { - "begin": "(?x)\n (?<=[\\s\\(\\[\\{:,])\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?:\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?\n (\\()\n ", - "beginCaptures": { - "1": { - "name": "meta.function-call.twig" - }, - "2": { - "name": "punctuation.separator.property.twig" - }, - "3": { - "name": "variable.other.property.twig" - }, - "4": { - "name": "punctuation.definition.parameters.begin.twig" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-operators" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - }, - { - "include": "#twig-hashes" - } - ], - "contentName": "meta.function.arguments.twig" - }, - "twig-filters-warg": { - "begin": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.twig" - }, - "2": { - "name": "punctuation.definition.parameters.begin.twig" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - }, - { - "include": "#twig-hashes" - } - ], - "contentName": "meta.function.arguments.twig" - }, - "twig-filters": { - "captures": { - "1": { - "name": "support.function.twig" - } - }, - "match": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)" - }, - "twig-filters-warg-ud": { - "begin": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()", - "beginCaptures": { - "1": { - "name": "meta.function-call.other.twig" - }, - "2": { - "name": "punctuation.definition.parameters.begin.twig" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.twig" - } - }, - "patterns": [ - { - "include": "#twig-constants" - }, - { - "include": "#twig-functions-warg" - }, - { - "include": "#twig-functions" - }, - { - "include": "#twig-macros" - }, - { - "include": "#twig-objects" - }, - { - "include": "#twig-properties" - }, - { - "include": "#twig-filters-warg" - }, - { - "include": "#twig-filters" - }, - { - "include": "#twig-filters-warg-ud" - }, - { - "include": "#twig-filters-ud" - }, - { - "include": "#twig-strings" - }, - { - "include": "#twig-arrays" - }, - { - "include": "#twig-hashes" - } - ], - "contentName": "meta.function.arguments.twig" - }, - "twig-filters-ud": { - "captures": { - "1": { - "name": "meta.function-call.other.twig" - } - }, - "match": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)" - }, - "php": { - "begin": "(?=(^\\s*)?<\\?)", - "end": "(?!(^\\s*)?<\\?)", - "patterns": [ - { - "include": "source.php" - } - ] - }, - "python": { - "begin": "(?:^\\s*)<\\?python(?!.*\\?>)", - "end": "\\?>(?:\\s*$\\n)?", - "name": "source.python.embedded.html", - "patterns": [ - { - "include": "source.python" - } - ] - }, - "ruby": { - "patterns": [ - { - "begin": "<%+#", - "captures": { - "0": { - "name": "punctuation.definition.comment.erb" - } - }, - "end": "%>", - "name": "comment.block.erb" - }, - { - "begin": "<%+(?!>)=?", - "captures": { - "0": { - "name": "punctuation.section.embedded.ruby" - } - }, - "end": "-?%>", - "name": "source.ruby.embedded.html", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.ruby" - } - }, - "match": "(#).*?(?=-?%>)", - "name": "comment.line.number-sign.ruby" - }, - { - "include": "source.ruby" - } - ] - }, - { - "begin": "<\\?r(?!>)=?", - "captures": { - "0": { - "name": "punctuation.section.embedded.ruby.nitro" - } - }, - "end": "-?\\?>", - "name": "source.ruby.nitro.embedded.html", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.ruby.nitro" - } - }, - "match": "(#).*?(?=-?\\?>)", - "name": "comment.line.number-sign.ruby.nitro" - }, - { - "include": "source.ruby" - } - ] - } - ] - }, - "string-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "#embedded-code" - }, - { - "include": "#entities" - } - ] - }, - "string-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "include": "#embedded-code" - }, - { - "include": "#entities" - } - ] - }, - "tag-generic-attribute": { - "match": "\\b([a-zA-Z\\-:]+)", - "name": "entity.other.attribute-name.html" - }, - "tag-id-attribute": { - "begin": "\\b(id)\\b\\s*(=)", - "captures": { - "1": { - "name": "entity.other.attribute-name.id.html" - }, - "2": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<='|\")", - "name": "meta.attribute-with-value.id.html", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "meta.toc-list.id.html", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "#embedded-code" - }, - { - "include": "#entities" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "meta.toc-list.id.html", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "include": "#embedded-code" - }, - { - "include": "#entities" - } - ] - } - ] - }, - "tag-stuff": { - "patterns": [ - { - "include": "#tag-id-attribute" - }, - { - "include": "#tag-generic-attribute" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#string-single-quoted" - }, - { - "include": "#embedded-code" - } - ] - } - }, - "scopeName": "text.html.twig", - "uuid": "C220B028-86FF-44CB-8A59-27937FC83730" -} diff --git a/lib/grammars/txt.tmLanguage.json b/lib/grammars/txt.json similarity index 100% rename from lib/grammars/txt.tmLanguage.json rename to lib/grammars/txt.json diff --git a/lib/grammars/typescript.tmLanguage.json b/lib/grammars/typescript.tmLanguage.json deleted file mode 100644 index 06fede7..0000000 --- a/lib/grammars/typescript.tmLanguage.json +++ /dev/null @@ -1,5740 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", - "name": "typescript", - "scopeName": "source.ts", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.ts", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.ts" - } - } - }, - "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" - } - ] - }, - "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" - }, - { - "name": "storage.modifier.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "control-statement": { - "patterns": [ - { - "include": "#switch-statement" - }, - { - "include": "#for-loop" - }, - { - "name": "keyword.control.trycatch.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.control.loop.ts" - }, - "2": { - "name": "entity.name.label.ts" - } - } - }, - { - "name": "keyword.control.loop.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.ts" - } - }, - "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "keyword.control.switch.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#if-statement" - }, - { - "name": "keyword.control.conditional.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.with.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.control.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.other.debugger.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "label": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", - "beginCaptures": { - "1": { - "name": "entity.name.label.ts" - }, - "2": { - "name": "punctuation.separator.label.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#decl-block" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.ts" - }, - "2": { - "name": "punctuation.separator.label.ts" - } - } - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "expressionWithoutIdentifiers": { - "patterns": [ - { - "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" - } - ] - }, - "expressionPunctuations": { - "patterns": [ - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "decorator": { - "name": "meta.decorator.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", - "beginCaptures": { - "0": { - "name": "punctuation.decorator.ts" - } - }, - "end": "(?=\\s)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "var-expr": { - "patterns": [ - { - "name": "meta.var.expr.ts", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.ts" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.ts" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-variable" - }, - { - "include": "#var-single-variable" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.ts", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.ts" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.ts" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*(?=$|\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.ts" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#destructuring-const" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "name": "meta.var.expr.ts", - "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.ts" - } - }, - "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.ts" - } - }, - "end": "(?=\\S)" - }, - { - "include": "#var-single-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#comment" - }, - { - "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.comma.ts" - } - }, - "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#var-single-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "var-single-variable": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.ts", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts entity.name.function.ts" - }, - "2": { - "name": "keyword.operator.definiteassignment.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.ts", - "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts variable.other.constant.ts" - }, - "2": { - "name": "keyword.operator.definiteassignment.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts variable.other.readwrite.ts" - }, - "2": { - "name": "keyword.operator.definiteassignment.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-const": { - "patterns": [ - { - "name": "meta.var-single-variable.expr.ts", - "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - }, - { - "name": "meta.var-single-variable.expr.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts variable.other.constant.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "patterns": [ - { - "include": "#var-single-variable-type-annotation" - } - ] - } - ] - }, - "var-single-variable-type-annotation": { - "patterns": [ - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "destructuring-variable": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.ts", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.ts", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "destructuring-const": { - "patterns": [ - { - "name": "meta.object-binding-pattern-variable.ts", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - }, - { - "name": "meta.array-binding-pattern-variable.ts", - "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", - "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#array-binding-pattern-const" - }, - { - "include": "#type-annotation" - }, - { - "include": "#comment" - } - ] - } - ] - }, - "object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element" - } - ] - }, - { - "include": "#object-binding-pattern" - }, - { - "include": "#destructuring-variable-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-const": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#binding-element-const" - } - ] - }, - { - "include": "#object-binding-pattern-const" - }, - { - "include": "#destructuring-variable-rest-const" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "object-binding-element-propertyName": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(:)", - "endCaptures": { - "0": { - "name": "punctuation.destructuring.ts" - } - }, - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "variable.object.property.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "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" - } - ] - }, - "destructuring-variable-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "meta.definition.variable.ts variable.other.readwrite.ts" - } - } - }, - "destructuring-variable-rest-const": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "meta.definition.variable.ts variable.other.constant.ts" - } - } - }, - "object-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "patterns": [ - { - "include": "#object-binding-element" - } - ] - }, - "object-binding-pattern-const": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "patterns": [ - { - "include": "#object-binding-element-const" - } - ] - }, - "array-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "patterns": [ - { - "include": "#binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "array-binding-pattern-const": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "patterns": [ - { - "include": "#binding-element-const" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "parameter-name": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.ts" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "entity.name.function.ts variable.language.this.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "variable.parameter.ts variable.language.this.ts" - }, - "4": { - "name": "variable.parameter.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - } - ] - }, - "destructuring-parameter": { - "patterns": [ - { - "name": "meta.parameter.object-binding-pattern.ts", - "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "patterns": [ - { - "include": "#parameter-object-binding-element" - } - ] - }, - { - "name": "meta.paramter.array-binding-pattern.ts", - "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "patterns": [ - { - "include": "#parameter-binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "parameter-object-binding-element": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#object-binding-element-propertyName" - }, - { - "include": "#parameter-binding-element" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "include": "#parameter-object-binding-pattern" - }, - { - "include": "#destructuring-parameter-rest" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "parameter-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" - } - ] - }, - "destructuring-parameter-rest": { - "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "variable.parameter.ts" - } - } - }, - "parameter-object-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.object.ts" - } - }, - "patterns": [ - { - "include": "#parameter-object-binding-element" - } - ] - }, - "parameter-array-binding-pattern": { - "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", - "beginCaptures": { - "1": { - "name": "keyword.operator.rest.ts" - }, - "2": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.binding-pattern.array.ts" - } - }, - "patterns": [ - { - "include": "#parameter-binding-element" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "field-declaration": { - "name": "meta.field.declaration.ts", - "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - } - }, - "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", - "patterns": [ - { - "include": "#variable-initializer" - }, - { - "include": "#type-annotation" - }, - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "include": "#comment" - }, - { - "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.ts entity.name.function.ts" - }, - "2": { - "name": "keyword.operator.optional.ts" - }, - "3": { - "name": "keyword.operator.definiteassignment.ts" - } - } - }, - { - "name": "meta.definition.property.ts variable.object.property.ts", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.ts", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.ts", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ts" - } - }, - "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(?<!=|!)(=)(?!=)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ts" - } - }, - "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", - "patterns": [ - { - "include": "#expression" - } - ] - } - ] - }, - "function-declaration": { - "name": "meta.function.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.async.ts" - }, - "4": { - "name": "storage.type.function.ts" - }, - "5": { - "name": "keyword.generator.asterisk.ts" - }, - "6": { - "name": "meta.definition.function.ts entity.name.function.ts" - } - }, - "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#function-body" - } - ] - }, - "function-expression": { - "name": "meta.function.expression.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "storage.type.function.ts" - }, - "3": { - "name": "keyword.generator.asterisk.ts" - }, - "4": { - "name": "meta.definition.function.ts entity.name.function.ts" - } - }, - "end": "(?=;)|(?<=\\})", - "patterns": [ - { - "include": "#function-name" - }, - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#function-body" - } - ] - }, - "function-name": { - "name": "meta.definition.function.ts entity.name.function.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - "function-body": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#return-type" - }, - { - "include": "#type-function-return-type" - }, - { - "include": "#decl-block" - }, - { - "name": "keyword.generator.asterisk.ts", - "match": "\\*" - } - ] - }, - "method-declaration": { - "patterns": [ - { - "name": "meta.method.declaration.ts", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.ts" - }, - "4": { - "name": "storage.modifier.async.ts" - }, - "5": { - "name": "storage.type.ts" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.ts", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.ts" - }, - "4": { - "name": "storage.modifier.async.ts" - }, - "5": { - "name": "keyword.operator.new.ts" - }, - "6": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.ts", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.ts" - }, - "4": { - "name": "storage.modifier.async.ts" - }, - "5": { - "name": "storage.type.property.ts" - }, - "6": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.ts", - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "storage.type.property.ts" - }, - "3": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "storage.type.property.ts" - }, - "3": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#numeric-literal" - }, - { - "name": "meta.definition.method.ts entity.name.function.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.ts", - "match": "\\?" - } - ] - }, - "arrow-function": { - "patterns": [ - { - "name": "meta.arrow.ts", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", - "captures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "variable.parameter.ts" - } - } - }, - { - "name": "meta.arrow.ts", - "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.ts", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.ts" - } - }, - "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.ts", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "meta.brace.square.ts" - }, - "3": { - "name": "variable.parameter.ts" - } - }, - "end": "(\\])\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.ts" - }, - "2": { - "name": "keyword.operator.optional.ts" - } - }, - "patterns": [ - { - "include": "#type-annotation" - } - ] - }, - "indexer-mapped-type-declaration": { - "name": "meta.indexer.mappedtype.declaration.ts", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "meta.brace.square.ts" - }, - "4": { - "name": "entity.name.type.ts" - }, - "5": { - "name": "keyword.operator.expression.in.ts" - } - }, - "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", - "endCaptures": { - "1": { - "name": "meta.brace.square.ts" - }, - "2": { - "name": "keyword.operator.type.modifier.ts" - }, - "3": { - "name": "keyword.operator.optional.ts" - } - }, - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", - "captures": { - "1": { - "name": "keyword.control.as.ts" - } - } - }, - { - "include": "#type" - } - ] - }, - "function-parameters": { - "name": "meta.parameters.ts", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.ts" - } - }, - "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" - }, - { - "name": "punctuation.separator.parameter.ts", - "match": "," - } - ] - }, - "class-declaration": { - "name": "meta.class.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.ts" - }, - "4": { - "name": "storage.type.class.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-expression": { - "name": "meta.class.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.type.class.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#class-declaration-or-expression-patterns" - } - ] - }, - "class-declaration-or-expression-patterns": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.class.ts" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "interface-declaration": { - "name": "meta.interface.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.ts" - }, - "4": { - "name": "storage.type.interface.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "match": "[_$[:alpha:]][_$[:alnum:]]*", - "captures": { - "0": { - "name": "entity.name.type.interface.ts" - } - } - }, - { - "include": "#type-parameters" - }, - { - "include": "#class-or-interface-body" - } - ] - }, - "class-or-interface-heritage": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#class-or-interface-heritage" - }, - { - "include": "#type-parameters" - }, - { - "include": "#expressionWithoutIdentifiers" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", - "captures": { - "1": { - "name": "entity.name.type.module.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - } - } - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "entity.other.inherited-class.ts" - } - } - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "class-or-interface-body": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#decorator" - }, - { - "begin": "(?<=:)\\s*", - "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "include": "#method-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#field-declaration" - }, - { - "include": "#string" - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#access-modifier" - }, - { - "include": "#property-accessor" - }, - { - "include": "#async-modifier" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "access-modifier": { - "name": "storage.modifier.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "property-accessor": { - "name": "storage.type.property.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "async-modifier": { - "name": "storage.modifier.async.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "enum-declaration": { - "name": "meta.enum.declaration.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.ts" - }, - "4": { - "name": "storage.type.enum.ts" - }, - "5": { - "name": "entity.name.type.enum.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)", - "beginCaptures": { - "0": { - "name": "variable.other.enummember.ts" - } - }, - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", - "end": "(?=,|\\}|$)", - "patterns": [ - { - "include": "#string" - }, - { - "include": "#array-literal" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - } - ] - }, - "namespace-declaration": { - "name": "meta.namespace.declaration.ts", - "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.namespace.ts" - } - }, - "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "entity.name.type.module.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - }, - { - "include": "#punctuation-accessor" - }, - { - "include": "#decl-block" - } - ] - }, - "type-alias-declaration": { - "name": "meta.type.declaration.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.type.type.ts" - }, - "4": { - "name": "entity.name.type.alias.ts" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ts" - }, - "2": { - "name": "keyword.control.intrinsic.ts" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ts" - } - }, - "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "import-equals-declaration": { - "patterns": [ - { - "name": "meta.import-equals.external.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "keyword.control.import.ts" - }, - "4": { - "name": "keyword.control.type.ts" - }, - "5": { - "name": "variable.other.readwrite.alias.ts" - }, - "6": { - "name": "keyword.operator.assignment.ts" - }, - "7": { - "name": "keyword.control.require.ts" - }, - "8": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.import-equals.internal.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "keyword.control.import.ts" - }, - "4": { - "name": "keyword.control.type.ts" - }, - "5": { - "name": "variable.other.readwrite.alias.ts" - }, - "6": { - "name": "keyword.operator.assignment.ts" - } - }, - "end": "(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - } - } - }, - { - "name": "variable.other.readwrite.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - } - ] - }, - "import-declaration": { - "name": "meta.import.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "keyword.control.import.ts" - }, - "4": { - "name": "keyword.control.type.ts" - } - }, - "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", - "end": "\\bfrom\\b", - "endCaptures": { - "0": { - "name": "keyword.control.from.ts" - } - }, - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - }, - { - "include": "#import-export-declaration" - } - ] - }, - "export-declaration": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "keyword.control.as.ts" - }, - "3": { - "name": "storage.type.namespace.ts" - }, - "4": { - "name": "entity.name.type.module.ts" - } - } - }, - { - "name": "meta.export.default.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "keyword.control.type.ts" - }, - "3": { - "name": "keyword.operator.assignment.ts" - }, - "4": { - "name": "keyword.control.default.ts" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#interface-declaration" - }, - { - "include": "#expression" - } - ] - }, - { - "name": "meta.export.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", - "beginCaptures": { - "1": { - "name": "keyword.control.export.ts" - }, - "2": { - "name": "keyword.control.type.ts" - } - }, - "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#import-export-declaration" - } - ] - } - ] - }, - "import-export-declaration": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#import-export-block" - }, - { - "name": "keyword.control.from.ts", - "match": "\\bfrom\\b" - }, - { - "include": "#import-export-assert-clause" - }, - { - "include": "#import-export-clause" - } - ] - }, - "import-export-assert-clause": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.control.assert.ts" - }, - "2": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "name": "meta.object-literal.key.ts", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" - }, - { - "name": "punctuation.separator.key-value.ts", - "match": ":" - } - ] - }, - "import-export-block": { - "name": "meta.block.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#import-export-clause" - } - ] - }, - "import-export-clause": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", - "captures": { - "1": { - "name": "keyword.control.type.ts" - }, - "2": { - "name": "keyword.control.default.ts" - }, - "3": { - "name": "constant.language.import-export-all.ts" - }, - "4": { - "name": "variable.other.readwrite.ts" - }, - "5": { - "name": "keyword.control.as.ts" - }, - "6": { - "name": "keyword.control.default.ts" - }, - "7": { - "name": "variable.other.readwrite.alias.ts" - } - } - }, - { - "include": "#punctuation-comma" - }, - { - "name": "constant.language.import-export-all.ts", - "match": "\\*" - }, - { - "name": "keyword.control.default.ts", - "match": "\\b(default)\\b" - }, - { - "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.control.type.ts" - }, - "2": { - "name": "variable.other.readwrite.alias.ts" - } - } - } - ] - }, - "switch-statement": { - "name": "switch-statement.expr.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "switch-expression.expr.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.ts" - }, - "2": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "switch-block.expr.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "(?=\\})", - "patterns": [ - { - "name": "case-clause.expr.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.control.switch.ts" - } - }, - "end": "(?=:)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "begin": "(:)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "case-clause.expr.ts punctuation.definition.section.case-statement.ts" - }, - "2": { - "name": "meta.block.ts punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "meta.block.ts punctuation.definition.block.ts" - } - }, - "contentName": "meta.block.ts", - "patterns": [ - { - "include": "#statements" - } - ] - }, - { - "match": "(:)", - "captures": { - "0": { - "name": "case-clause.expr.ts punctuation.definition.section.case-statement.ts" - } - } - }, - { - "include": "#statements" - } - ] - } - ] - }, - "for-loop": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", - "beginCaptures": { - "0": { - "name": "keyword.control.loop.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "keyword.control.loop.ts", - "match": "await" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#var-expr" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - } - ] - } - ] - }, - "if-statement": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", - "end": "(?=;|$|\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.conditional.ts" - }, - "2": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "string.regexp.ts", - "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "keyword.other.ts" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "include": "#statements" - } - ] - } - ] - }, - "decl-block": { - "name": "meta.block.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#statements" - } - ] - }, - "after-operator-block-as-object-literal": { - "name": "meta.objectliteral.ts", - "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.ts meta.object-literal.key.ts", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.ts meta.object-literal.key.ts", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.ts meta.object-literal.key.ts", - "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", - "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#numeric-literal" - } - ] - }, - { - "name": "meta.method.declaration.ts", - "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.object.member.ts", - "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.ts" - }, - "1": { - "name": "constant.numeric.decimal.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.ts" - }, - "1": { - "name": "entity.name.function.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.ts" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", - "captures": { - "1": { - "name": "keyword.control.as.ts" - }, - "2": { - "name": "storage.modifier.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.ts" - }, - "2": { - "name": "keyword.control.satisfies.ts" - } - }, - "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.object.member.ts", - "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", - "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.ts", - "begin": ":", - "beginCaptures": { - "0": { - "name": "meta.object-literal.key.ts punctuation.separator.key-value.ts" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "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.ts" - }, - "2": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "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.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#decl-block" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.ts" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.ts", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.ts", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.ts", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.ts punctuation.accessor.optional.ts", - "match": "\\?\\." - }, - { - "name": "meta.function-call.ts keyword.operator.definiteassignment.ts", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.ts", - "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" - } - ] - }, - "new-expr": { - "name": "new.expr.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.new.ts" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "instanceof-expr": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "1": { - "name": "keyword.operator.expression.instanceof.ts" - } - }, - "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", - "patterns": [ - { - "include": "#type" - } - ] - }, - "paren-expression-possibly-arrow": { - "patterns": [ - { - "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "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.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", - "captures": { - "1": { - "name": "storage.modifier.ts" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "entity.name.function.ts variable.language.this.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "variable.parameter.ts variable.language.this.ts" - }, - "4": { - "name": "variable.parameter.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "include": "#type-annotation" - }, - { - "include": "#variable-initializer" - }, - { - "name": "punctuation.separator.parameter.ts", - "match": "," - }, - { - "include": "#identifiers" - }, - { - "include": "#expressionPunctuations" - } - ] - }, - "paren-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "cast": { - "patterns": [ - { - "name": "cast.expr.ts", - "match": "\\s*(<)\\s*(const)\\s*(>)", - "captures": { - "1": { - "name": "meta.brace.angle.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "meta.brace.angle.ts" - } - } - }, - { - "name": "cast.expr.ts", - "begin": "(?:(?<!\\+\\+|--)(?<=^return|[^\\._$[:alnum:]]return|^throw|[^\\._$[:alnum:]]throw|^yield|[^\\._$[:alnum:]]yield|^await|[^\\._$[:alnum:]]await|^default|[^\\._$[:alnum:]]default|[=(,:>*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)", - "beginCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "end": "(\\>)", - "endCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "cast.expr.ts", - "begin": "(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)", - "beginCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "end": "(\\>)", - "endCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.control.flow.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.ts" - } - }, - "end": "\\*", - "endCaptures": { - "0": { - "name": "keyword.generator.asterisk.ts" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", - "captures": { - "1": { - "name": "keyword.control.flow.ts" - }, - "2": { - "name": "keyword.generator.asterisk.ts" - } - } - }, - { - "name": "keyword.operator.expression.delete.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.in.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.of.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" - }, - { - "name": "keyword.operator.expression.instanceof.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.new.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#typeof-operator" - }, - { - "name": "keyword.operator.expression.void.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", - "captures": { - "1": { - "name": "keyword.control.as.ts" - }, - "2": { - "name": "storage.modifier.ts" - } - } - }, - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.as.ts" - }, - "2": { - "name": "keyword.control.satisfies.ts" - } - }, - "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "keyword.operator.spread.ts", - "match": "\\.\\.\\." - }, - { - "name": "keyword.operator.assignment.compound.ts", - "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" - }, - { - "name": "keyword.operator.assignment.compound.bitwise.ts", - "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.ts", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.ts", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.ts", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.logical.ts" - }, - "2": { - "name": "keyword.operator.assignment.compound.ts" - }, - "3": { - "name": "keyword.operator.arithmetic.ts" - } - } - }, - { - "name": "keyword.operator.logical.ts", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.ts", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.ts", - "match": "--" - }, - { - "name": "keyword.operator.increment.ts", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.ts", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", - "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", - "endCaptures": { - "1": { - "name": "keyword.operator.assignment.compound.ts" - }, - "2": { - "name": "keyword.operator.arithmetic.ts" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", - "captures": { - "1": { - "name": "keyword.operator.assignment.compound.ts" - }, - "2": { - "name": "keyword.operator.arithmetic.ts" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "beginCaptures": { - "0": { - "name": "keyword.operator.expression.typeof.ts" - } - }, - "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", - "patterns": [ - { - "include": "#type-arguments" - }, - { - "include": "#expression" - } - ] - }, - "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" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.ts", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.ts" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.ts", - "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.ts" - } - } - }, - { - "name": "constant.numeric.binary.ts", - "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.ts" - } - } - }, - { - "name": "constant.numeric.octal.ts", - "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", - "captures": { - "1": { - "name": "storage.type.numeric.bigint.ts" - } - } - }, - { - "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", - "captures": { - "0": { - "name": "constant.numeric.decimal.ts" - }, - "1": { - "name": "meta.delimiter.decimal.period.ts" - }, - "2": { - "name": "storage.type.numeric.bigint.ts" - }, - "3": { - "name": "meta.delimiter.decimal.period.ts" - }, - "4": { - "name": "storage.type.numeric.bigint.ts" - }, - "5": { - "name": "meta.delimiter.decimal.period.ts" - }, - "6": { - "name": "storage.type.numeric.bigint.ts" - }, - "7": { - "name": "storage.type.numeric.bigint.ts" - }, - "8": { - "name": "meta.delimiter.decimal.period.ts" - }, - "9": { - "name": "storage.type.numeric.bigint.ts" - }, - "10": { - "name": "meta.delimiter.decimal.period.ts" - }, - "11": { - "name": "storage.type.numeric.bigint.ts" - }, - "12": { - "name": "meta.delimiter.decimal.period.ts" - }, - "13": { - "name": "storage.type.numeric.bigint.ts" - }, - "14": { - "name": "storage.type.numeric.bigint.ts" - } - } - } - ] - }, - "boolean-literal": { - "patterns": [ - { - "name": "constant.language.boolean.true.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.boolean.false.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "null-literal": { - "name": "constant.language.null.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "this-literal": { - "name": "variable.language.this.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" - }, - "super-literal": { - "name": "variable.language.super.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" - }, - "undefined-literal": { - "name": "constant.language.undefined.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "numericConstant-literal": { - "patterns": [ - { - "name": "constant.language.nan.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "constant.language.infinity.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "support-objects": { - "patterns": [ - { - "name": "variable.language.arguments.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" - }, - { - "name": "support.class.promise.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", - "captures": { - "1": { - "name": "keyword.control.import.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - }, - "4": { - "name": "support.variable.property.importmeta.ts" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)", - "captures": { - "1": { - "name": "keyword.operator.new.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - }, - "4": { - "name": "support.variable.property.target.ts" - } - } - }, - { - "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "support.variable.property.ts" - }, - "4": { - "name": "support.constant.ts" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)", - "captures": { - "1": { - "name": "support.type.object.module.ts" - }, - "2": { - "name": "support.type.object.module.ts" - }, - "3": { - "name": "punctuation.accessor.ts" - }, - "4": { - "name": "punctuation.accessor.optional.ts" - }, - "5": { - "name": "support.type.object.module.ts" - } - } - } - ] - }, - "identifiers": { - "patterns": [ - { - "include": "#object-identifiers" - }, - { - "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "entity.name.function.ts" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "variable.other.constant.property.ts" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "variable.other.property.ts" - } - } - }, - { - "name": "variable.other.constant.ts", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "variable.other.constant.object.property.ts" - }, - "4": { - "name": "variable.other.object.property.ts" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.ts" - }, - "2": { - "name": "variable.other.object.ts" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.ts", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.ts", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.ts", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.ts", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?<![:|&])(?=$|^|[{};,]|//)", - "patterns": [ - { - "include": "#return-type-core" - } - ] - }, - { - "name": "meta.return.type.ts", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#return-type-core" - } - ] - } - ] - }, - "return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<=[:|&])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "arrow-return-type": { - "name": "meta.return.type.arrow.ts", - "begin": "(?<=\\))\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.ts meta.return.type.arrow.ts", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "arrow-return-type-body": { - "patterns": [ - { - "begin": "(?<=[:])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.ts", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "(=)(?!>)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.ts", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.ts" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "0": { - "name": "keyword.operator.type.ts" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "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" - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", - "captures": { - "1": { - "name": "storage.modifier.ts" - } - } - }, - { - "include": "#type-name" - } - ] - }, - "type-primitive": { - "name": "support.type.primitive.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-builtin-literals": { - "name": "support.type.builtin.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - "type-tuple": { - "name": "meta.type.tuple.ts", - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "meta.brace.square.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.ts" - } - }, - "patterns": [ - { - "name": "keyword.operator.rest.ts", - "match": "\\.\\.\\." - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", - "captures": { - "1": { - "name": "entity.name.label.ts" - }, - "2": { - "name": "keyword.operator.optional.ts" - }, - "3": { - "name": "punctuation.separator.label.ts" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-object": { - "name": "meta.object.type.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "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.ts" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#type" - } - ] - }, - "type-conditional": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - } - }, - "end": "(?<=:)", - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.ts" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "include": "#type" - } - ] - } - ] - }, - "type-paren-or-function-parameters": { - "name": "meta.type.paren.cover.ts", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "entity.name.function.ts variable.language.this.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "variable.parameter.ts variable.language.this.ts" - }, - "4": { - "name": "variable.parameter.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "include": "#type-annotation" - }, - { - "name": "punctuation.separator.parameter.ts", - "match": "," - }, - { - "include": "#type" - } - ] - }, - "type-fn-type-parameters": { - "patterns": [ - { - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", - "beginCaptures": { - "1": { - "name": "meta.type.constructor.ts storage.modifier.ts" - }, - "2": { - "name": "meta.type.constructor.ts keyword.control.new.ts" - } - }, - "end": "(?<=>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.ts", - "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.control.new.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "name": "meta.type.function.ts", - "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.ts", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.ts" - } - }, - "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.ts", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.ts" - } - }, - "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "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-operators": { - "patterns": [ - { - "include": "#typeof-operator" - }, - { - "include": "#type-infer" - }, - { - "begin": "([&|])(?=\\s*\\{)", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "begin": "[&|]", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.ts" - } - }, - "end": "(?=\\S)" - }, - { - "name": "keyword.operator.expression.keyof.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.ternary.ts", - "match": "(\\?|\\:)" - }, - { - "name": "keyword.operator.expression.import.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" - } - ] - }, - "type-infer": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", - "name": "meta.type.infer.ts", - "captures": { - "1": { - "name": "keyword.operator.expression.infer.ts" - }, - "2": { - "name": "entity.name.type.ts" - }, - "3": { - "name": "keyword.operator.expression.extends.ts" - } - } - } - ] - }, - "type-predicate-operator": { - "patterns": [ - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.ts" - }, - "2": { - "name": "variable.parameter.ts variable.language.this.ts" - }, - "3": { - "name": "variable.parameter.ts" - }, - "4": { - "name": "keyword.operator.expression.is.ts" - } - } - }, - { - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", - "captures": { - "1": { - "name": "keyword.operator.type.asserts.ts" - }, - "2": { - "name": "variable.parameter.ts variable.language.this.ts" - }, - "3": { - "name": "variable.parameter.ts" - } - } - }, - { - "name": "keyword.operator.type.asserts.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "name": "keyword.operator.expression.is.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - } - ] - }, - "type-name": { - "patterns": [ - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", - "captures": { - "1": { - "name": "entity.name.type.module.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - }, - "4": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.end.ts" - } - }, - "contentName": "meta.type.parameters.ts", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.ts" - }, - "2": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.end.ts" - } - }, - "contentName": "meta.type.parameters.ts", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - } - } - }, - { - "name": "entity.name.type.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.ts", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.ts", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.ts", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "invalid.illegal.newline.ts" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.ts", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "invalid.illegal.newline.ts" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.ts", - "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]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ts" - }, - "2": { - "name": "string.template.ts punctuation.definition.string.template.begin.ts" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "string.template.ts punctuation.definition.string.template.end.ts" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ts" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.ts", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.ts" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "contentName": "string.template.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ts" - }, - "2": { - "name": "string.template.ts punctuation.definition.string.template.begin.ts" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "string.template.ts punctuation.definition.string.template.end.ts" - } - }, - "patterns": [ - { - "include": "#template-type-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-type-substitution-element": { - "name": "meta.template.expression.ts", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.ts" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.ts", - "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "keyword.other.ts" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.ts", - "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(/)([dgimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "keyword.other.ts" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - } - ] - }, - "regexp": { - "patterns": [ - { - "name": "keyword.control.anchor.regexp", - "match": "\\\\[bB]|\\^|\\$" - }, - { - "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "meta.group.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" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.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" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.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])|(\\\\.))", - "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" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.ts", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ts" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.ts" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.ts", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.ts" - }, - "2": { - "name": "storage.type.internaldeclaration.ts" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.ts" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.ts" - } - } - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ts" - }, - "2": { - "name": "comment.line.double-slash.ts" - }, - "3": { - "name": "punctuation.definition.comment.ts" - }, - "4": { - "name": "storage.type.internaldeclaration.ts" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.ts" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.ts" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ts" - }, - "2": { - "name": "comment.line.double-slash.ts" - }, - "3": { - "name": "punctuation.definition.comment.ts" - }, - "4": { - "name": "storage.type.internaldeclaration.ts" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.ts" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.ts" - }, - "directives": { - "name": "comment.line.triple-slash.directive.ts", - "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.ts" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.ts", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.ts" - }, - "2": { - "name": "entity.name.tag.directive.ts" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.ts" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.ts", - "match": "path|types|no-default-lib|lib|name|resolution-mode" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", - "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" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "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" - } - }, - "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" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.ts" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "(?x)((@)template)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "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" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "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" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.ts" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "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" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.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" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - } - }, - "end": "((}))\\s*|(?=\\*/)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/v.tmLanguage.json b/lib/grammars/v.tmLanguage.json deleted file mode 100644 index 5b99506..0000000 --- a/lib/grammars/v.tmLanguage.json +++ /dev/null @@ -1,994 +0,0 @@ -{ - "name": "v", - "scopeName": "source.v", - "fileTypes": [".v", ".vh", ".vsh", ".vv", "v.mod"], - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#function-decl" - }, - { - "include": "#as-is" - }, - { - "include": "#attributes" - }, - { - "include": "#assignment" - }, - { - "include": "#module-decl" - }, - { - "include": "#import-decl" - }, - { - "include": "#hash-decl" - }, - { - "include": "#brackets" - }, - { - "include": "#builtin-fix" - }, - { - "include": "#escaped-fix" - }, - { - "include": "#operators" - }, - { - "include": "#function-limited-overload-decl" - }, - { - "include": "#function-extend-decl" - }, - { - "include": "#function-exist" - }, - { - "include": "#generic" - }, - { - "include": "#constants" - }, - { - "include": "#type" - }, - { - "include": "#enum" - }, - { - "include": "#interface" - }, - { - "include": "#struct" - }, - { - "include": "#keywords" - }, - { - "include": "#storage" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#punctuations" - }, - { - "include": "#variable-assign" - }, - { - "include": "#function-decl" - } - ], - "repository": { - "as-is": { - "begin": "\\s+(as|is)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.$1.v" - } - }, - "end": "([\\w.]*)", - "endCaptures": { - "1": { - "name": "entity.name.alias.v" - } - } - }, - "assignment": { - "name": "meta.definition.variable.v", - "match": "\\s+((?:\\:|\\+|\\-|\\*|/|\\%|\\&|\\||\\^)?=)\\s+", - "captures": { - "1": { - "patterns": [ - { - "include": "#operators" - } - ] - } - } - }, - "attributes": { - "name": "meta.definition.attribute.v", - "match": "^\\s*((\\[)(deprecated|unsafe|console|heap|manualfree|typedef|live|inline|flag|ref_only|direct_array_access|callconv)(\\]))", - "captures": { - "1": { - "name": "meta.function.attribute.v" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.v" - }, - "3": { - "name": "storage.modifier.attribute.v" - }, - "4": { - "name": "punctuation.definition.end.bracket.square.v" - } - } - }, - "variable-assign": { - "match": "[a-zA-Z_]\\w*(?:,\\s*[a-zA-Z_]\\w*)*(?=\\s*(?:=|:=))", - "captures": { - "0": { - "patterns": [ - { - "match": "[a-zA-Z_]\\w*", - "name": "variable.other.assignment.v" - }, - { - "include": "#punctuation" - } - ] - } - } - }, - "module-decl": { - "name": "meta.module.v", - "begin": "^\\s*(module)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.module.v" - } - }, - "end": "([\\w.]+)", - "endCaptures": { - "1": { - "name": "entity.name.module.v" - } - } - }, - "import-decl": { - "name": "meta.import.v", - "begin": "^\\s*(import)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.import.v" - } - }, - "end": "([\\w.]+)", - "endCaptures": { - "1": { - "name": "entity.name.import.v" - } - } - }, - "hash-decl": { - "name": "markup.bold.v", - "begin": "^\\s*(#)", - "end": "$" - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.bracket.curly.begin.v" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.curly.end.v" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.bracket.round.begin.v" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.round.end.v" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.bracket.square.begin.v" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.square.end.v" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "builtin-fix": { - "patterns": [ - { - "patterns": [ - { - "name": "storage.modifier.v", - "match": "(const)(?=\\s*\\()" - }, - { - "name": "keyword.$1.v", - "match": "\\b(fn|type|enum|struct|union|interface|map|assert|sizeof|typeof|__offsetof)\\b(?=\\s*\\()" - } - ] - }, - { - "patterns": [ - { - "name": "keyword.control.v", - "match": "(\\$if|\\$else)(?=\\s*\\()" - }, - { - "name": "keyword.control.v", - "match": "\\b(as|in|is|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b(?=\\s*\\()" - } - ] - }, - { - "patterns": [ - { - "match": "(?<!.)(i?(?:8|16|nt|64|128)|u?(?:16|32|64|128)|f?(?:32|64))(?=\\s*\\()", - "captures": { - "1": { - "name": "storage.type.numeric.v" - } - }, - "name": "meta.expr.numeric.cast.v" - }, - { - "match": "(bool|byte|byteptr|charptr|voidptr|string|rune|size_t|[ui]size)(?=\\s*\\()", - "captures": { - "1": { - "name": "storage.type.$1.v" - } - }, - "name": "meta.expr.bool.cast.v" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.block.documentation.v", - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.v" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.v" - } - }, - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "name": "comment.line.double-slash.v", - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.v" - } - }, - "end": "$" - } - ] - }, - "constants": { - "name": "constant.language.v", - "match": "\\b(true|false|none)\\b" - }, - "generic": { - "patterns": [ - { - "name": "meta.definition.generic.v", - "match": "(?<=[\\w\\s+])(\\<)(\\w+)(\\>)", - "captures": { - "1": { - "name": "punctuation.definition.bracket.angle.begin.v" - }, - "2": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "match": "\\w+", - "name": "entity.name.generic.v" - } - ] - }, - "3": { - "name": "punctuation.definition.bracket.angle.end.v" - } - } - } - ] - }, - "function-decl": { - "name": "meta.definition.function.v", - "match": "^(\\bpub\\b\\s+)?(\\bfn\\b)\\s+(?:\\([^\\)]+\\)\\s+)?(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?", - "captures": { - "1": { - "name": "storage.modifier.v" - }, - "2": { - "name": "keyword.fn.v" - }, - "3": { - "name": "entity.name.function.v" - }, - "4": { - "patterns": [ - { - "include": "#generic" - } - ] - } - } - }, - "function-extend-decl": { - "name": "meta.definition.function.v", - "match": "^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?", - "captures": { - "1": { - "name": "storage.modifier.v" - }, - "2": { - "name": "keyword.fn.v" - }, - "3": { - "name": "punctuation.definition.bracket.round.begin.v" - }, - "4": { - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#storage" - }, - { - "include": "#generic" - }, - { - "include": "#types" - }, - { - "include": "#punctuation" - } - ] - }, - "5": { - "name": "punctuation.definition.bracket.round.end.v" - }, - "6": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "match": "\\w+", - "name": "entity.name.function.v" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#generic" - } - ] - } - } - }, - "function-limited-overload-decl": { - "name": "meta.definition.function.v", - "match": "^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*([\\+\\-\\*\\/])?\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)", - "captures": { - "1": { - "name": "storage.modifier.v" - }, - "2": { - "name": "keyword.fn.v" - }, - "3": { - "name": "punctuation.definition.bracket.round.begin.v" - }, - "4": { - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#storage" - }, - { - "include": "#generic" - }, - { - "include": "#types" - }, - { - "include": "#punctuation" - } - ] - }, - "5": { - "name": "punctuation.definition.bracket.round.end.v" - }, - "6": { - "patterns": [ - { - "include": "#operators" - } - ] - }, - "7": { - "name": "punctuation.definition.bracket.round.begin.v" - }, - "8": { - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#storage" - }, - { - "include": "#generic" - }, - { - "include": "#types" - }, - { - "include": "#punctuation" - } - ] - }, - "9": { - "name": "punctuation.definition.bracket.round.end.v" - }, - "10": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "match": "\\w+", - "name": "entity.name.function.v" - } - ] - } - } - }, - "function-exist": { - "name": "meta.support.function.v", - "match": "(\\w+)((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?(?=\\s*\\()", - "captures": { - "0": { - "name": "meta.function.call.v" - }, - "1": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "match": "\\w+", - "name": "entity.name.function.v" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#generic" - } - ] - } - } - }, - "type": { - "name": "meta.definition.type.v", - "match": "^\\s*(?:(pub)?\\s+)?(type)\\s+(\\w*)\\s+(?:\\w+\\.+)?(\\w*)", - "captures": { - "1": { - "name": "storage.modifier.$1.v" - }, - "2": { - "name": "storage.type.type.v" - }, - "3": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "include": "#types" - }, - { - "name": "entity.name.type.v", - "match": "\\w+" - } - ] - }, - "4": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "include": "#types" - }, - { - "name": "entity.name.type.v", - "match": "\\w+" - } - ] - } - } - }, - "enum": { - "name": "meta.definition.enum.v", - "match": "^\\s*(?:(pub)?\\s+)?(enum)\\s+(?:\\w+\\.)?(\\w*)", - "captures": { - "1": { - "name": "storage.modifier.$1.v" - }, - "2": { - "name": "storage.type.enum.v" - }, - "3": { - "name": "entity.name.enum.v" - } - } - }, - "interface": { - "name": "meta.definition.interface.v", - "match": "^\\s*(?:(pub)?\\s+)?(interface)\\s+(\\w*)", - "captures": { - "1": { - "name": "storage.modifier.$1.v" - }, - "2": { - "name": "keyword.interface.v" - }, - "3": { - "patterns": [ - { - "include": "#illegal-name" - }, - { - "name": "entity.name.interface.v", - "match": "\\w+" - } - ] - } - } - }, - "struct": { - "patterns": [ - { - "name": "meta.definition.struct.v", - "begin": "^\\s*(?:(mut|pub(?:\\s+mut)?|__global)\\s+)?(struct|union)\\s+([\\w.]+)\\s*|({)", - "beginCaptures": { - "1": { - "name": "storage.modifier.$1.v" - }, - "2": { - "name": "storage.type.struct.v" - }, - "3": { - "name": "entity.name.type.v" - }, - "4": { - "name": "punctuation.definition.bracket.curly.begin.v" - } - }, - "end": "\\s*|(})", - "endCaptures": { - "1": { - "name": "punctuation.definition.bracket.curly.end.v" - } - }, - "patterns": [ - { - "include": "#struct-access-modifier" - }, - { - "match": "\\b(\\w+)\\s+([\\w\\[\\]\\*&.]+)(?:\\s*(=)\\s*((?:.(?=$|//|/\\*))*+))?", - "captures": { - "1": { - "name": "variable.other.property.v" - }, - "2": { - "patterns": [ - { - "include": "#numbers" - }, - { - "include": "#brackets" - }, - { - "include": "#types" - }, - { - "match": "\\w+", - "name": "storage.type.other.v" - } - ] - }, - "3": { - "name": "keyword.operator.assignment.v" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "include": "#types" - }, - { - "include": "$self" - } - ] - }, - { - "name": "meta.definition.struct.v", - "match": "^\\s*(?:(mut|pub(?:\\s+mut)?|__global))\\s+?(struct)\\s+(?:\\s+([\\w.]+))?", - "captures": { - "1": { - "name": "storage.modifier.$1.v" - }, - "2": { - "name": "storage.type.struct.v" - }, - "3": { - "name": "entity.name.struct.v" - } - } - } - ] - }, - "struct-access-modifier": { - "match": "(?<=\\s|^)(mut|pub(?:\\s+mut)?|__global)(:|\\b)", - "captures": { - "1": { - "name": "storage.modifier.$1.v" - }, - "2": { - "name": "punctuation.separator.struct.key-value.v" - } - } - }, - "punctuation": { - "patterns": [ - { - "name": "punctuation.delimiter.period.dot.v", - "match": "\\." - }, - { - "name": "punctuation.delimiter.comma.v", - "match": "," - }, - { - "name": "punctuation.separator.key-value.colon.v", - "match": ":" - }, - { - "name": "punctuation.definition.other.semicolon.v", - "match": ";" - }, - { - "name": "punctuation.definition.other.questionmark.v", - "match": "\\?" - }, - { - "name": "punctuation.hash.v", - "match": "#" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.v", - "match": "(\\$if|\\$else)" - }, - { - "name": "keyword.control.v", - "match": "(?<!@)\\b(as|it|is|in|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b" - }, - { - "name": "keyword.$1.v", - "match": "(?<!@)\\b(fn|type|typeof|enum|struct|interface|map|assert|sizeof|__offsetof)\\b" - } - ] - }, - "storage": { - "name": "storage.modifier.v", - "match": "\\b(const|mut|pub)\\b" - }, - "types": { - "patterns": [ - { - "name": "storage.type.numeric.v", - "match": "(?<!\\.)\\b(i(8|16|nt|64|128)|u(8|16|32|64|128)|f(32|64))\\b" - }, - { - "name": "storage.type.$1.v", - "match": "(?<!\\.)\\b(bool|byte|byteptr|charptr|voidptr|string|ustring|rune)\\b" - } - ] - }, - "operators": { - "patterns": [ - { - "name": "keyword.operator.arithmetic.v", - "match": "(\\+|\\-|\\*|\\/|\\%|\\+\\+|\\-\\-|\\>\\>|\\<\\<)" - }, - { - "name": "keyword.operator.relation.v", - "match": "(\\=\\=|\\!\\=|\\>|\\<|\\>\\=|\\<\\=)" - }, - { - "name": "keyword.operator.assignment.v", - "match": "(\\:\\=|\\=|\\+\\=|\\-\\=|\\*\\=|\\/\\=|\\%\\=|\\&\\=|\\|\\=|\\^\\=|\\~\\=|\\&\\&\\=|\\|\\|\\=|\\>\\>\\=|\\<\\<\\=)" - }, - { - "name": "keyword.operator.bitwise.v", - "match": "(\\&|\\||\\^|\\~|<(?!<)|>(?!>))" - }, - { - "name": "keyword.operator.logical.v", - "match": "(\\&\\&|\\|\\||\\!)" - }, - { - "name": "keyword.operator.optional.v", - "match": "\\?" - } - ] - }, - "numbers": { - "patterns": [ - { - "name": "constant.numeric.exponential.v", - "match": "([0-9]+(_?))+(\\.)([0-9]+[eE][-+]?[0-9]+)" - }, - { - "name": "constant.numeric.float.v", - "match": "([0-9]+(_?))+(\\.)([0-9]+)" - }, - { - "name": "constant.numeric.binary.v", - "match": "(?:0b)(?:(?:[0-1]+)(?:_?))+" - }, - { - "name": "constant.numeric.octal.v", - "match": "(?:0o)(?:(?:[0-7]+)(?:_?))+" - }, - { - "name": "constant.numeric.hex.v", - "match": "(?:0x)(?:(?:[0-9a-fA-F]+)(?:_?))+" - }, - { - "name": "constant.numeric.integer.v", - "match": "(?:(?:[0-9]+)(?:[_]?))+" - } - ] - }, - "punctuations": { - "patterns": [ - { - "name": "punctuation.accessor.v", - "match": "(?:\\.)" - }, - { - "name": "punctuation.separator.comma.v", - "match": "(?:,)" - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "`", - "end": "`", - "name": "string.quoted.rune.v", - "patterns": [ - { - "include": "#string-escaped-char" - }, - { - "include": "#string-interpolation" - }, - { - "include": "#string-placeholder" - } - ] - }, - { - "begin": "(r)'", - "beginCaptures": { - "1": { - "name": "storage.type.string.v" - } - }, - "end": "'", - "name": "string.quoted.raw.v", - "patterns": [ - { - "include": "#string-interpolation" - }, - { - "include": "#string-placeholder" - } - ] - }, - { - "begin": "(r)\"", - "beginCaptures": { - "1": { - "name": "storage.type.string.v" - } - }, - "end": "\"", - "name": "string.quoted.raw.v", - "patterns": [ - { - "include": "#string-interpolation" - }, - { - "include": "#string-placeholder" - } - ] - }, - { - "begin": "(c?)'", - "beginCaptures": { - "1": { - "name": "storage.type.string.v" - } - }, - "end": "'", - "name": "string.quoted.v", - "patterns": [ - { - "include": "#string-escaped-char" - }, - { - "include": "#string-interpolation" - }, - { - "include": "#string-placeholder" - } - ] - }, - { - "begin": "(c?)\"", - "beginCaptures": { - "1": { - "name": "storage.type.string.v" - } - }, - "end": "\"", - "name": "string.quoted.v", - "patterns": [ - { - "include": "#string-escaped-char" - }, - { - "include": "#string-interpolation" - }, - { - "include": "#string-placeholder" - } - ] - } - ] - }, - "string-escaped-char": { - "patterns": [ - { - "name": "constant.character.escape.v", - "match": "\\\\([0-7]{3}|[\\$abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})" - }, - { - "name": "invalid.illegal.unknown-escape.v", - "match": "\\\\[^0-7\\$xuUabfnrtv\\'\"]" - } - ] - }, - "string-interpolation": { - "name": "meta.string.interpolation.v", - "match": "(\\$([\\w.]+|\\{.*?\\}))", - "captures": { - "1": { - "patterns": [ - { - "name": "invalid.illegal.v", - "match": "\\$\\d[\\.\\w]+" - }, - { - "name": "variable.other.interpolated.v", - "match": "\\$([\\.\\w]+|\\{.*?\\})" - } - ] - } - } - }, - "string-placeholder": { - "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]", - "name": "constant.other.placeholder.v" - }, - "illegal-name": { - "match": "\\d\\w+", - "name": "invalid.illegal.v" - } - } -} diff --git a/lib/grammars/vb.tmLanguage.json b/lib/grammars/vb.tmLanguage.json deleted file mode 100644 index 096d7da..0000000 --- a/lib/grammars/vb.tmLanguage.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/asp.vb.net.tmbundle/blob/master/Syntaxes/ASP%20VB.net.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/asp.vb.net.tmbundle/commit/72d44550b3286d0382d7be0624140cf97857ff69", - "name": "vb", - "scopeName": "source.asp.vb.net", - "comment": "Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com", - "patterns": [ - { - "match": "\\n", - "name": "meta.ending-space" - }, - { - "include": "#round-brackets" - }, - { - "begin": "^(?=\\t)", - "end": "(?=[^\\t])", - "name": "meta.leading-space", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.odd-tab.tabs" - }, - "2": { - "name": "meta.even-tab.tabs" - } - }, - "match": "(\\t)(\\t)?" - } - ] - }, - { - "begin": "^(?= )", - "end": "(?=[^ ])", - "name": "meta.leading-space", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.odd-tab.spaces" - }, - "2": { - "name": "meta.even-tab.spaces" - } - }, - "match": "( )( )?" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.function.asp" - }, - "2": { - "name": "entity.name.function.asp" - }, - "3": { - "name": "punctuation.definition.parameters.asp" - }, - "4": { - "name": "variable.parameter.function.asp" - }, - "5": { - "name": "punctuation.definition.parameters.asp" - } - }, - "match": "^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?", - "name": "meta.function.asp" - }, - { - "begin": "(^[ \\t]+)?(?=')", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.asp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.asp" - } - }, - "end": "\\n", - "name": "comment.line.apostrophe.asp" - } - ] - }, - { - "match": "(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)", - "name": "keyword.control.asp" - }, - { - "match": "(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)", - "name": "keyword.operator.asp" - }, - { - "captures": { - "1": { - "name": "storage.type.asp" - }, - "2": { - "name": "variable.other.bfeac.asp" - }, - "3": { - "name": "meta.separator.comma.asp" - } - }, - "match": "(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))", - "name": "variable.other.dim.asp" - }, - { - "match": "(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)", - "name": "storage.type.asp" - }, - { - "match": "(?i:\\b(Private|Public|Default)\\b)", - "name": "storage.modifier.asp" - }, - { - "match": "(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)", - "name": "constant.language.asp" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.asp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.asp" - } - }, - "name": "string.quoted.double.asp", - "patterns": [ - { - "match": "\"\"", - "name": "constant.character.escape.apostrophe.asp" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.asp" - } - }, - "match": "(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*", - "name": "variable.other.asp" - }, - { - "match": "(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)", - "name": "support.class.asp" - }, - { - "match": "(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)", - "name": "support.class.collection.asp" - }, - { - "match": "(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)", - "name": "support.constant.asp" - }, - { - "match": "(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)", - "name": "support.function.asp" - }, - { - "match": "(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)", - "name": "support.function.event.asp" - }, - { - "match": "(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))", - "name": "support.type.vb.asp" - }, - { - "match": "(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)", - "name": "support.function.vb.asp" - }, - { - "match": "-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b", - "name": "constant.numeric.asp" - }, - { - "match": "(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)", - "name": "support.type.vb.asp" - }, - { - "captures": { - "1": { - "name": "entity.name.function.asp" - } - }, - "match": "(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))", - "name": "support.function.asp" - }, - { - "match": "(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))", - "name": "variable.other.asp" - }, - { - "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b", - "name": "keyword.operator.js" - } - ], - "repository": { - "round-brackets": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.round-brackets.begin.asp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.round-brackets.end.asp" - } - }, - "name": "meta.round-brackets", - "patterns": [ - { - "include": "source.asp.vb.net" - } - ] - } - } -} diff --git a/lib/grammars/verilog.tmLanguage.json b/lib/grammars/verilog.tmLanguage.json deleted file mode 100644 index 2d895d7..0000000 --- a/lib/grammars/verilog.tmLanguage.json +++ /dev/null @@ -1,303 +0,0 @@ -{ - "fileTypes": ["v", "vh"], - "keyEquivalent": "^~V", - "name": "verilog", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#module_pattern" - }, - { - "include": "#keywords" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#operators" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.verilog" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.verilog" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.verilog" - } - ] - }, - { - "begin": "/\\*", - "end": "\\*/", - "name": "comment.block.c-style.verilog" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[a-z_A-Z][a-zA-Z0-9_$]*", - "name": "variable.other.constant.verilog" - }, - { - "match": "[0-9]*'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\b", - "name": "constant.numeric.sized_integer.verilog" - }, - { - "captures": { - "1": { - "name": "constant.numeric.integer.verilog" - }, - "2": { - "name": "punctuation.separator.range.verilog" - }, - "3": { - "name": "constant.numeric.integer.verilog" - } - }, - "match": "\\b(\\d+)(:)(\\d+)\\b", - "name": "meta.block.numeric.range.verilog" - }, - { - "match": "\\b\\d[\\d_]*(?i:e\\d+)?\\b", - "name": "constant.numeric.integer.verilog" - }, - { - "match": "\\b\\d+\\.\\d+(?i:e\\d+)?\\b", - "name": "constant.numeric.real.verilog" - }, - { - "match": "#\\d+", - "name": "constant.numeric.delay.verilog" - }, - { - "match": "\\b[01xXzZ]+\\b", - "name": "constant.numeric.logic.verilog" - } - ] - }, - "instantiation_patterns": { - "patterns": [ - { - "include": "#keywords" - }, - { - "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\s*(?=\\(|$)", - "beginCaptures": { - "1": { - "name": "entity.name.tag.module.reference.verilog" - }, - "2": { - "name": "entity.name.tag.module.identifier.verilog" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.expression.verilog" - } - }, - "name": "meta.block.instantiation.parameterless.verilog", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - } - ] - }, - { - "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()", - "beginCaptures": { - "1": { - "name": "entity.name.tag.module.reference.verilog" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.expression.verilog" - } - }, - "name": "meta.block.instantiation.with.parameters.verilog", - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "match": "[a-zA-Z][a-zA-Z0-9_]*", - "name": "entity.name.tag.module.identifier.verilog" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case[xz]?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\b", - "name": "keyword.other.verilog" - }, - { - "match": "^\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|ifndef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\b", - "name": "keyword.other.compiler.directive.verilog" - }, - { - "match": "\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\b", - "name": "support.function.system.console.tasks.verilog" - }, - { - "match": "\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\b", - "name": "support.function.system.random_number.tasks.verilog" - }, - { - "match": "\\$((a)?sync\\$((n)?and|(n)or)\\$(array|plane))\\b", - "name": "support.function.system.pld_modeling.tasks.verilog" - }, - { - "match": "\\$(q_(initialize|add|remove|full|exam))\\b", - "name": "support.function.system.stochastic.tasks.verilog" - }, - { - "match": "\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\b", - "name": "support.function.system.timing.tasks.verilog" - }, - { - "match": "\\$(dump(file|vars|off|on|all|limit|flush))\\b", - "name": "support.function.system.vcd.tasks.verilog" - }, - { - "match": "\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)", - "name": "support.function.non-standard.tasks.verilog" - } - ] - }, - "module_pattern": { - "patterns": [ - { - "begin": "\\b(module)\\s+([a-zA-Z][a-zA-Z0-9_]*)", - "beginCaptures": { - "1": { - "name": "storage.type.module.verilog" - }, - "2": { - "name": "entity.name.type.module.verilog" - } - }, - "end": "\\bendmodule\\b", - "endCaptures": { - "0": { - "name": "storage.type.module.verilog" - } - }, - "name": "meta.block.module.verilog", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#instantiation_patterns" - }, - { - "include": "#operators" - } - ] - } - ] - }, - "operators": { - "patterns": [ - { - "match": "\\+|-|\\*|/|%|(<|>)=?|(!|=)?==?|!|&&?|\\|\\|?|\\^?~|~\\^?", - "name": "keyword.operator.verilog" - } - ] - }, - "parenthetical_list": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.list.verilog" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.list.verilog" - } - }, - "name": "meta.block.parenthetical_list.verilog", - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.verilog", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.verilog" - } - ] - } - ] - } - }, - "scopeName": "source.verilog", - "uuid": "7F4396B3-A33E-44F0-8502-98CA6C25971F" -} diff --git a/lib/grammars/vhdl.tmLanguage.json b/lib/grammars/vhdl.tmLanguage.json deleted file mode 100644 index 4323a49..0000000 --- a/lib/grammars/vhdl.tmLanguage.json +++ /dev/null @@ -1,1436 +0,0 @@ -{ - "fileTypes": ["vhd", "vhdl", "vho", "vht"], - "name": "vhdl", - "patterns": [ - { - "include": "#block_processing" - }, - { - "include": "#cleanup" - } - ], - "repository": { - "architecture_pattern": { - "patterns": [ - { - "begin": "(?x)\n\n\t\t\t\t\t\t# The word architecture $1\n\t\t\t\t\t\t\\b((?i:architecture))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Followed up by a valid $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n\t\t\t\t\t\t# The word of $5\n\t\t\t\t\t\t((?i:of))\\s+\n\n\t\t\t\t\t\t# Followed by a valid $7 or invalid identifier $8\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.type.architecture.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - }, - "7": { - "name": "entity.name.type.entity.reference.vhdl" - }, - "8": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# Optional word architecture $3\n\t\t\t\t\t\t(\\s+((?i:architecture)))?\n\n\t\t\t\t\t\t# Optional same identifier $6 or illegal identifier $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# This will cause the previous to capture until just before the ; or $\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "6": { - "name": "entity.name.type.architecture.end.vhdl" - }, - "7": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "name": "support.block.architecture", - "patterns": [ - { - "include": "#function_definition_pattern" - }, - { - "include": "#procedure_definition_pattern" - }, - { - "include": "#component_pattern" - }, - { - "include": "#if_pattern" - }, - { - "include": "#process_pattern" - }, - { - "include": "#type_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#for_pattern" - }, - { - "include": "#entity_instantiation_pattern" - }, - { - "include": "#component_instantiation_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "attribute_list": { - "patterns": [ - { - "begin": "\\'\\(", - "beginCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "block_processing": { - "patterns": [ - { - "include": "#package_pattern" - }, - { - "include": "#package_body_pattern" - }, - { - "include": "#entity_pattern" - }, - { - "include": "#architecture_pattern" - } - ] - }, - "case_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# Beginning of line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Optional identifier ... $3 or invalid identifier $4\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\\s*:\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word case $5\n\t\t\t\t\t\t\\b((?i:case))\\b\n\t\t\t\t\t", - "beginCaptures": { - "3": { - "name": "entity.name.tag.case.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s*\n\n\t\t\t\t\t\t# The word case $4 or invalid word $5\n\t\t\t\t\t\t(\\s+(((?i:case))|(.*?)))\n\n\t\t\t\t\t\t# Optional identifier from before $8 or illegal $9\n\t\t\t\t\t\t(\\s+((\\2)|(.*?)))?\n\n\t\t\t\t\t\t# Ending with a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - }, - "5": { - "name": "invalid.illegal.case.required.vhdl" - }, - "8": { - "name": "entity.name.tag.case.end.vhdl" - }, - "9": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#control_patterns" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "cleanup": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constants_numeric" - }, - { - "include": "#strings" - }, - { - "include": "#attribute_list" - }, - { - "include": "#syntax_highlighting" - } - ] - }, - "comments": { - "patterns": [ - { - "match": "--.*$\\n?", - "name": "comment.line.double-dash.vhdl" - } - ] - }, - "component_instantiation_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Match a valid identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Another valid identifier $3\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\\b\n\n\t\t\t\t\t\t# Make sure we are just the other word, or the beginning of\n\t\t\t\t\t\t# a generic or port mapping\n\t\t\t\t\t\t(?=\\s*($|generic|port))\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "entity.name.section.component_instantiation.vhdl" - }, - "2": { - "name": "punctuation.vhdl" - }, - "3": { - "name": "entity.name.tag.component.reference.vhdl" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "component_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word component $1\n\t\t\t\t\t\t\\b((?i:component))\\s+\n\n\t\t\t\t\t\t# A valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--)\n\n\t\t\t\t\t\t# Optional word is $6\n\t\t\t\t\t\t(\\b((?i:is\\b)))?\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.type.component.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "6": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t# The word component $3 or illegal word $4\n\t\t\t\t\t\t(((?i:component\\b))|(.+?))(?=\\s*|;)\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Optional identifier $7 or illegal mismatched $8\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "invalid.illegal.component.keyword.required.vhdl" - }, - "7": { - "name": "entity.name.type.component.end.vhdl" - }, - "8": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#generic_list_pattern" - }, - { - "include": "#port_list_pattern" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "constants_numeric": { - "patterns": [ - { - "match": "\\b([+\\-]?[\\d_]+\\.[\\d_]+([eE][+\\-]?[\\d_]+)?)\\b", - "name": "constant.numeric.floating_point.vhdl" - }, - { - "match": "\\b\\d+#[\\h_]+#\\b", - "name": "constant.numeric.base_pound_number_pound.vhdl" - }, - { - "match": "\\b[\\d_]+([eE][\\d_]+)?\\b", - "name": "constant.numeric.integer.vhdl" - }, - { - "match": "[xX]\"[0-9a-fA-F_uUxXzZwWlLhH\\-]+\"", - "name": "constant.numeric.quoted.double.string.hex.vhdl" - }, - { - "match": "[oO]\"[0-7_uUxXzZwWlLhH\\-]+\"", - "name": "constant.numeric.quoted.double.string.octal.vhdl" - }, - { - "match": "[bB]?\"[01_uUxXzZwWlLhH\\-]+\"", - "name": "constant.numeric.quoted.double.string.binary.vhdl" - }, - { - "captures": { - "1": { - "name": "invalid.illegal.quoted.double.string.vhdl" - } - }, - "match": "([bBoOxX]\".+?\")", - "name": "constant.numeric.quoted.double.string.illegal.vhdl" - }, - { - "match": "'[01uUxXzZwWlLhH\\-]'", - "name": "constant.numeric.quoted.single.std_logic" - } - ] - }, - "control_patterns": { - "patterns": [ - { - "include": "#case_pattern" - }, - { - "include": "#if_pattern" - }, - { - "include": "#for_pattern" - }, - { - "include": "#while_pattern" - } - ] - }, - "entity_instantiation_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Component identifier or illegal identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Optional word use $4\n\t\t\t\t\t\t(((?i:use))\\s+)?\n\n\t\t\t\t\t\t# Required word entity $5\n\t\t\t\t\t\t((?i:entity))\\s+\n\n\t\t\t\t\t\t# Optional library unit identifier $8 for invalid identifier $9 followed by a dot $10\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t\t(\\.)\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Entity name reference $12 or illegal identifier $13\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t# Check to see if we are being followed by either open paren, end of line, or port or generic words\n\t\t\t\t\t\t(?=\\s*(\\(|$|(?i:port|generic)))\n\n\t\t\t\t\t\t# Optional architecture elaboration\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Open paren $16\n\t\t\t\t\t\t\t\\s*(\\()\\s*\n\n\t\t\t\t\t\t\t# Arch identifier $18 or invalid identifier $19\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\))\n\n\t\t\t\t\t\t\t# Close paren $21\n\t\t\t\t\t\t\t\\s*(\\))\n\t\t\t\t\t\t)?\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "entity.name.section.entity_instantiation.vhdl" - }, - "2": { - "name": "punctuation.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - }, - "8": { - "name": "entity.name.tag.library.reference.vhdl" - }, - "9": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "10": { - "name": "punctuation.vhdl" - }, - "12": { - "name": "entity.name.tag.entity.reference.vhdl" - }, - "13": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "16": { - "name": "punctuation.vhdl" - }, - "18": { - "name": "entity.name.tag.architecture.reference.vhdl" - }, - "19": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "21": { - "name": "punctuation.vhdl" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "entity_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word entity $1\n\t\t\t\t\t\t((?i:entity\\b))\\s+\n\n\t\t\t\t\t\t# The identifier $3 or an invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s)\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.type.entity.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "end": "(?x)\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word entity $3\n\t\t\t\t\t\t(\\s+((?i:entity)))?\n\n\t\t\t\t\t\t# Optional identifier match $6 or indentifier mismatch $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Make sure there is a semicolon following\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "6": { - "name": "entity.name.type.entity.end.vhdl" - }, - "7": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic_list_pattern" - }, - { - "include": "#port_list_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "for_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Make sure the next word is not wait\n\t\t\t\t\t\t(?!(?i:wait\\s*))\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:for))\\b\n\n\t\t\t\t\t\t# Make sure the next word is not all\n\t\t\t\t\t\t(?!\\s*(?i:all))\n\n\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "entity.name.tag.for.generate.begin.vhdl" - }, - "3": { - "name": "punctuation.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by generate or loop $3\n\t\t\t\t\t\t\t ((?i:generate|loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "invalid.illegal.loop.or.generate.required.vhdl" - }, - "7": { - "name": "entity.name.tag.for.generate.end.vhdl" - }, - "8": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#control_patterns" - }, - { - "include": "#entity_instantiation_pattern" - }, - { - "include": "#component_pattern" - }, - { - "include": "#component_instantiation_pattern" - }, - { - "include": "#process_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "function_definition_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:impure)?\\s*(?i:function))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid string quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.function.function.begin.vhdl" - }, - "4": { - "name": "entity.name.function.function.begin.vhdl" - }, - "5": { - "name": "entity.name.function.function.begin.vhdl" - }, - "6": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:function)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "6": { - "name": "entity.name.function.function.end.vhdl" - }, - "7": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#control_patterns" - }, - { - "include": "#parenthetical_list" - }, - { - "include": "#type_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "function_prototype_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:impure)?\\s*(?i:function))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $6\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.function.function.prototype.vhdl" - }, - "4": { - "name": "entity.name.function.function.prototype.vhdl" - }, - "5": { - "name": "entity.name.function.function.prototype.vhdl" - }, - "6": { - "name": "invalid.illegal.function.name.vhdl" - } - }, - "end": "(?<=;)", - "patterns": [ - { - "begin": "\\b(?i:return)(?=\\s+[^;]+\\s*;)", - "beginCaptures": { - "0": { - "name": "keyword.language.vhdl" - } - }, - "end": "\\;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.function_prototype.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "include": "#cleanup" - } - ] - }, - { - "include": "#parenthetical_list" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "generic_list_pattern": { - "patterns": [ - { - "begin": "\\b(?i:generic)\\b", - "beginCaptures": { - "0": { - "name": "keyword.language.vhdl" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - } - ] - } - ] - }, - "if_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Keyword if $4\n\t\t\t\t\t\t\\b((?i:if))\\b\n\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "entity.name.tag.if.generate.begin.vhdl" - }, - "3": { - "name": "punctuation.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t# Optional generate or if keyword $4\n\t\t\t\t\t\t\t\t ((?i:generate|if))\n\n\t\t\t\t\t\t\t\t# Keyword if or generate required $5\n\t\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t\t)\\b\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t# Optional matching identifier $8\n\t\t\t\t\t\t\t\t\t (\\2)\n\n\t\t\t\t\t\t\t\t\t# Mismatched identifier $9\n\t\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Followed by a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - }, - "5": { - "name": "invalid.illegal.if.or.generate.required.vhdl" - }, - "8": { - "name": "entity.name.tag.if.generate.end.vhdl" - }, - "9": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#control_patterns" - }, - { - "include": "#process_pattern" - }, - { - "include": "#entity_instantiation_pattern" - }, - { - "include": "#component_pattern" - }, - { - "include": "#component_instantiation_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "match": "'(?i:active|ascending|base|delayed|driving|event|high|image|instance|instance_name|last|last_value|left|leftof|length|low|path|path_name|pos|pred|quiet|range|reverse|reverse_range|right|rightof|simple|simple_name|stable|succ|transaction|val|value)\\b", - "name": "keyword.attributes.vhdl" - }, - { - "match": "\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|context|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|protected|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b", - "name": "keyword.language.vhdl" - }, - { - "match": "\\b(?i:std|ieee|work|standard|textio|std_logic_1164|std_logic_arith|std_logic_misc|std_logic_signed|std_logic_textio|std_logic_unsigned|numeric_bit|numeric_std|math_complex|math_real|vital_primitives|vital_timing)\\b", - "name": "standard.library.language.vhdl" - }, - { - "match": "(\\+|\\-|<=|=|=>|:=|>=|>|<|/|\\||&|(\\*{1,2}))", - "name": "keyword.operator.vhdl" - } - ] - }, - "package_body_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we want to be a package body $2\n\t\t\t\t\t\t((?i:body))\\s+\n\n\t\t\t\t\t\t# The valid identifier $4 or the invalid one $5\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $6\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "2": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "entity.name.section.package_body.begin.vhdl" - }, - "5": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "6": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3 body $4\n\t\t\t\t\t\t(\\s+((?i:package))\\s+((?i:body)))?\n\n\t\t\t\t\t\t# Optional identifier $7 or mismatched identifier $8\n\t\t\t\t\t\t(\\s+((\\4)|(.+?)))?(?=\\s*;)", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - }, - "7": { - "name": "entity.name.section.package_body.end.vhdl" - }, - "8": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#protected_body_pattern" - }, - { - "include": "#function_definition_pattern" - }, - { - "include": "#procedure_definition_pattern" - }, - { - "include": "#type_pattern" - }, - { - "include": "#subtype_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "package_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we do not want to be a package body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t# The valid identifier $3 or the invalid one $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.section.package.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3\n\t\t\t\t\t\t(\\s+((?i:package)))?\n\n\t\t\t\t\t\t# Optional identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?(?=\\s*;)", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "6": { - "name": "entity.name.section.package.end.vhdl" - }, - "7": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#protected_pattern" - }, - { - "include": "#function_prototype_pattern" - }, - { - "include": "#procedure_prototype_pattern" - }, - { - "include": "#type_pattern" - }, - { - "include": "#subtype_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#component_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "protected_body_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# The valid identifier $2 or the invalid one $3\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t\\b((?i:is\\s+protected\\s+body))\\s+\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.section.protected_body.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t\\b((?i:end\\s+protected\\s+body))\n\n\t\t\t\t\t\t# Optional identifier\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "entity.name.section.protected_body.end.vhdl" - }, - "5": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#function_definition_pattern" - }, - { - "include": "#procedure_definition_pattern" - }, - { - "include": "#type_pattern" - }, - { - "include": "#subtype_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "protected_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# The valid identifier $2 or the invalid one $3\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t\\b((?i:is\\s+protected))\\s+\n\n\t\t\t\t\t\t# Not body\n\t\t\t\t\t\t(?!(?i:body))\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdls" - }, - "3": { - "name": "entity.name.section.protected.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t\\b((?i:end\\s+protected))\n\n\t\t\t\t\t\t# Optional identifier\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# Not body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "entity.name.section.protected.end.vhdl" - }, - "5": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#function_prototype_pattern" - }, - { - "include": "#procedure_prototype_pattern" - }, - { - "include": "#type_pattern" - }, - { - "include": "#subtype_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#component_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "parenthetical_list": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "begin": "(?=['\"a-zA-Z0-9])", - "end": "(;|\\)|,)", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "name": "source.vhdl", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#parenthetical_pair" - }, - { - "include": "#cleanup" - } - ] - }, - { - "match": "\\)", - "name": "invalid.illegal.unexpected.parenthesis.vhdl" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "parenthetical_pair": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_pair" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "port_list_pattern": { - "patterns": [ - { - "begin": "\\b(?i:port)\\b", - "beginCaptures": { - "0": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?<=\\))\\s*;", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - } - ] - } - ] - }, - "procedure_definition_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:procedure))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list is\n\t\t\t\t\t\t(?=\\s*(\\(|(?i:is)))\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.function.procedure.begin.vhdl" - }, - "4": { - "name": "entity.name.function.procedure.begin.vhdl" - }, - "5": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:procedure)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "6": { - "name": "entity.name.function.procedure.end.vhdl" - }, - "7": { - "name": "invalid.illegal.mismatched.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - }, - { - "include": "#control_patterns" - }, - { - "include": "#type_pattern" - }, - { - "include": "#record_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "procedure_prototype_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t\\b((?i:procedure))\\s+\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t(?=\\s*(\\(|;))\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.function.procedure.begin.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctual.vhdl" - } - }, - "patterns": [ - { - "include": "#parenthetical_list" - } - ] - } - ] - }, - "process_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word process #4\n\t\t\t\t\t\t((?i:process\\b))\n\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "entity.name.section.process.begin.vhdl" - }, - "3": { - "name": "punctuation.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word process $3\n\t\t\t\t\t\t(\\s+((?i:process)))\n\n\t\t\t\t\t\t# Optional identifier $6 or invalid identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "6": { - "name": "entity.name.section.process.end.vhdl" - }, - "7": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#control_patterns" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "punctuation": { - "patterns": [ - { - "match": "(\\.|,|:|;|\\(|\\))", - "name": "punctuation.vhdl" - } - ] - }, - "record_pattern": { - "patterns": [ - { - "begin": "\\b(?i:record)\\b", - "beginCaptures": { - "0": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# The word record $2\n\t\t\t\t\t\t\\s+((?i:record))\n\n\t\t\t\t\t\t# Optional identifier $5 or invalid identifier $6\n\t\t\t\t\t\t(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\t\t\t\t\t\t# Only whitespace and semicolons can be left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "2": { - "name": "keyword.language.vhdl" - }, - "5": { - "name": "entity.name.type.record.vhdl" - }, - "6": { - "name": "invalid.illegal.invalid.identifier.vhdl" - } - }, - "patterns": [ - { - "include": "#cleanup" - } - ] - }, - { - "include": "#cleanup" - } - ] - }, - "strings": { - "patterns": [ - { - "match": "'.'", - "name": "string.quoted.single.vhdl" - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.vhdl", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.vhdl" - } - ] - }, - { - "begin": "\\\\", - "end": "\\\\", - "name": "string.other.backslash.vhdl" - } - ] - }, - "subtype_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# The word subtype $1\n\t\t\t\t\t\t\\b((?i:subtype))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# The word is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.type.subtype.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "5": { - "name": "keyword.language.vhdl" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#cleanup" - } - ] - } - ] - }, - "support_constants": { - "patterns": [ - { - "match": "\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\b", - "name": "support.constant.ieee.math_real.vhdl" - }, - { - "match": "\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\b", - "name": "support.constant.ieee.math_complex.vhdl" - }, - { - "match": "\\b(?i:true|false)\\b", - "name": "support.constant.std.standard.vhdl" - } - ] - }, - "support_functions": { - "patterns": [ - { - "match": "\\b(?i:finish|stop|resolution_limit)\\b", - "name": "support.function.std.env.vhdl" - }, - { - "match": "\\b(?i:readline|read|writeline|write|endfile|endline)\\b", - "name": "support.function.std.textio.vhdl" - }, - { - "match": "\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\b", - "name": "support.function.ieee.std_logic_1164.vhdl" - }, - { - "match": "\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\b", - "name": "support.function.ieee.numeric_std.vhdl" - }, - { - "match": "\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b", - "name": "support.function.ieee.math_real.vhdl" - }, - { - "match": "\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\b", - "name": "support.function.ieee.math_complex.vhdl" - } - ] - }, - "support_types": { - "patterns": [ - { - "match": "\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\b", - "name": "support.type.std.standard.vhdl" - }, - { - "match": "\\b(?i:line|text|side|width|input|output)\\b", - "name": "support.type.std.textio.vhdl" - }, - { - "match": "\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\b", - "name": "support.type.ieee.std_logic_1164.vhdl" - }, - { - "match": "\\b(?i:signed|unsigned)\\b", - "name": "support.type.ieee.numeric_std.vhdl" - }, - { - "match": "\\b(?i:complex|complex_polar)\\b", - "name": "support.type.ieee.math_complex.vhdl" - } - ] - }, - "syntax_highlighting": { - "patterns": [ - { - "include": "#keywords" - }, - { - "include": "#punctuation" - }, - { - "include": "#support_constants" - }, - { - "include": "#support_types" - }, - { - "include": "#support_functions" - } - ] - }, - "type_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# The word type $1\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A semicolon is coming up if we are incomplete\n\t\t\t\t\t\t\t (?=\\s*;)\n\n\t\t\t\t\t\t\t# Or the word is comes up $7\n\t\t\t\t\t\t\t|(\\s+((?i:is)))\n\t\t\t\t\t\t)\\b\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "entity.name.type.type.vhdl" - }, - "4": { - "name": "invalid.illegal.invalid.identifier.vhdl" - }, - "7": { - "name": "keyword.language.vhdl" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.vhdl" - } - }, - "patterns": [ - { - "include": "#record_pattern" - }, - { - "include": "#cleanup" - } - ] - } - ] - }, - "while_pattern": { - "patterns": [ - { - "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:while))\\b\n\t\t\t\t\t", - "beginCaptures": { - "2": { - "name": "" - }, - "3": { - "name": "punctuation.vhdl" - }, - "4": { - "name": "keyword.language.vhdl" - } - }, - "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by keyword loop $3\n\t\t\t\t\t\t\t ((?i:loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", - "endCaptures": { - "1": { - "name": "keyword.language.vhdl" - }, - "3": { - "name": "keyword.language.vhdl" - }, - "4": { - "name": "invalid.illegal.loop.keyword.required.vhdl" - }, - "7": { - "name": "entity.name.tag.while.loop.vhdl" - }, - "8": { - "name": "invalid.illegal.mismatched.identifier" - } - }, - "patterns": [ - { - "include": "#control_patterns" - }, - { - "include": "#cleanup" - } - ] - } - ] - } - }, - "scopeName": "source.vhdl" -} diff --git a/lib/grammars/viml.tmLanguage.json b/lib/grammars/viml.tmLanguage.json deleted file mode 100644 index 99b7fcc..0000000 --- a/lib/grammars/viml.tmLanguage.json +++ /dev/null @@ -1,441 +0,0 @@ -{ - "repository": { - "commands": { - "patterns": [ - { - "name": "storage.other.command.viml", - "match": "\\bcom(\\s|\\!)" - }, - { - "name": "storage.other.command.viml", - "match": "\\bau(\\s|\\!)" - }, - { - "name": "storage.other.command.bang.viml", - "match": "-bang" - }, - { - "name": "storage.other.command.args.viml", - "match": "-nargs=[*+0-9]+" - }, - { - "name": "storage.other.command.completion.viml", - "match": "-complete=\\S+" - }, - { - "begin": "(aug(roup)?)", - "end": "(augroup\\sEND|$)", - "name": "support.function.augroup.viml" - } - ] - }, - "comment": { - "patterns": [ - { - "begin": "((\\s+)?\"\"\")", - "end": "^(?!\")", - "name": "comment.block.documentation.viml" - }, - { - "match": "^\"\\svim:.*", - "name": "comment.block.modeline.viml" - }, - { - "name": "comment.line.viml", - "begin": "(\\s+\"\\s+)(?!\")", - "end": "$", - "patterns": [ - { - "match": "\\{\\{\\{\\d?$", - "name": "comment.line.foldmarker.viml" - }, - { - "match": "\\}\\}\\}\\d?", - "name": "comment.line.foldmarker.viml" - } - ] - }, - { - "name": "comment.line.viml", - "begin": "^(\\s+)?\"", - "end": "$", - "patterns": [ - { - "match": "\\{\\{\\{\\d?$", - "name": "comment.line.foldmarker.viml" - }, - { - "match": "\\}\\}\\}\\d?", - "name": "comment.line.foldmarker.viml" - } - ] - } - ] - }, - "entity": { - "patterns": [ - { - "name": "entity.name.function.viml", - "match": "(([absg]\\:)?[a-zA-Z0-9_#.]{2,})\\b(?=\\()" - } - ] - }, - "map": { - "patterns": [ - { - "begin": "(\\<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.map.viml" - } - }, - "end": "(\\>|\\s)", - "endCaptures": { - "1": { - "name": "punctuation.definition.map.viml" - } - }, - "patterns": [ - { - "name": "constant.character.map.rhs.viml", - "match": "(?<=:\\s)(.+)" - }, - { - "name": "constant.character.map.special.viml", - "match": "(?i:(bang|buffer|expr|nop|plug|sid|silent))" - }, - { - "name": "constant.character.map.key.viml", - "match": "(?i:([adcms]-\\w))" - }, - { - "name": "constant.character.map.key.fn.viml", - "match": "(?i:(F[0-9]+))" - }, - { - "name": "constant.character.map.viml", - "match": "(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))" - } - ] - }, - { - "name": "storage.type.map.viml", - "match": "(\\b([cinostvx]?(nore)?map)\\b)" - } - ] - }, - "operators": { - "patterns": [ - { - "name": "keyword.operator.viml", - "match": "([#+?!=~\\\\])" - }, - { - "name": "keyword.operator.viml", - "match": " ([:\\-.]|[&|]{2})( |$)" - }, - { - "name": "keyword.operator.viml", - "match": "([.]{3})" - }, - { - "name": "keyword.operator.viml", - "match": "( [<>] )" - }, - { - "name": "keyword.operator.viml", - "match": "(>=)" - } - ] - }, - "option": { - "patterns": [ - { - "name": "support.type.option.viml", - "match": "&?\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\b" - }, - { - "name": "support.type.option.viml", - "match": "&?\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\b" - }, - { - "name": "support.type.option.shortname.viml", - "match": "&?\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\b" - }, - { - "name": "support.type.option.off.viml", - "match": "\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\b" - } - ] - }, - "punctuation": { - "patterns": [ - { - "name": "punctuation.parens.viml", - "match": "([()])" - }, - { - "name": "punctuation.comma.viml", - "match": "([,])" - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.double.viml", - "begin": "\"", - "end": "(\"|$)", - "patterns": [] - }, - { - "name": "string.quoted.single.viml", - "begin": "'", - "end": "('|$)", - "patterns": [] - }, - { - "match": "/(\\\\\\\\|\\\\/|[^\\n/])*/", - "name": "string.regexp.viml" - } - ] - }, - "support": { - "patterns": [ - { - "name": "support.function.viml", - "match": "(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\()" - }, - { - "name": "support.function.viml", - "match": "\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\b" - }, - { - "name": "support.type.builtin.vim-variable.viml", - "match": "(v\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))" - }, - { - "name": "support.type.builtin.viml", - "match": "(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))" - }, - { - "name": "support.type.builtin.viml", - "match": "(&(shell(cmdflag|redir)?))" - }, - { - "name": "support.variable.args.viml", - "match": "\\<args\\>" - }, - { - "name": "support.type.syntax.viml", - "match": "\\b(None|ErrorMsg|WarningMsg)\\b" - }, - { - "name": "support.type.event.viml", - "match": "\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\b" - }, - { - "name": "support.type.syntax-group.viml", - "match": "\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\b" - } - ] - }, - "syntax": { - "patterns": [ - { - "name": "keyword.control.syntax.viml", - "match": "syn(tax)? case (ignore|match)" - }, - { - "name": "keyword.control.syntax.viml", - "match": "syn(tax)? (clear|enable|include|off|on|manual|sync)" - }, - { - "name": "keyword.other.syntax.viml", - "match": "\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\b" - }, - { - "name": "keyword.other.syntax.viml", - "match": "\\b(add|containedin|contains|matchgroup|nextgroup)\\=" - }, - { - "captures": { - "1": { - "name": "keyword.other.syntax-range.viml" - }, - "3": { - "name": "string.regexp.viml" - } - }, - "match": "((start|skip|end)\\=)(\\+\\S+\\+\\s)?" - }, - { - "captures": { - "0": { - "name": "support.type.syntax.viml" - }, - "1": { - "name": "storage.syntax.viml" - }, - "3": { - "name": "variable.other.syntax-scope.viml" - }, - "4": { - "name": "storage.modifier.syntax.viml" - } - }, - "match": "(syn|syntax)\\s+(cluster|keyword|match|region)(\\s+\\w+\\s+)(contained)?", - "patterns": [] - }, - { - "captures": { - "1": { - "name": "storage.highlight.viml" - }, - "2": { - "name": "storage.modifier.syntax.viml" - }, - "3": { - "name": "support.function.highlight.viml" - }, - "4": { - "name": "variable.other.viml" - }, - "5": { - "name": "variable.other.viml" - } - }, - "match": "(hi|highlight)(?:\\s+)(def|default)(?:\\s+)(link)(?:\\s+)(\\w+)(?:\\s+)(\\w+)", - "patterns": [] - } - ] - }, - "keyword": { - "patterns": [ - { - "name": "keyword.control.viml", - "match": "\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\b" - }, - { - "name": "keyword.control.viml", - "match": "\\b(end|endif|endfor|endwhile)\\s|$" - }, - { - "name": "keyword.control.viml", - "match": "\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\b" - }, - { - "name": "keyword.function.viml", - "match": "\\b(fun|func|function|endfunction|endfunc)\\b" - }, - { - "name": "keyword.other.viml", - "match": "\\b(normal|silent)\\b" - }, - { - "include": "#operators" - } - ] - }, - "storage": { - "patterns": [ - { - "match": "\\b(call|let|unlet)\\b", - "name": "storage.viml" - }, - { - "match": "\\b(abort|autocmd)\\b", - "name": "storage.viml" - }, - { - "match": "\\b(set(l|local)?)\\b", - "name": "storage.viml" - }, - { - "match": "\\b(com(mand)?)\\b", - "name": "storage.viml" - }, - { - "match": "\\b(color(scheme)?)\\b", - "name": "storage.viml" - }, - { - "match": "\\b(Plug|Plugin)\\b", - "name": "storage.plugin.viml" - } - ] - }, - "variable": { - "patterns": [ - { - "name": "variable.other.link.viml", - "match": "https?://\\S+" - }, - { - "name": "variable.parameter.viml", - "match": "(?<=\\()([a-zA-Z]+)(?=\\))" - }, - { - "name": "variable.other.viml", - "match": "\\b([absgl]:[a-zA-Z0-9_.#]+)\\b(?!\\()" - } - ] - }, - "constant": { - "patterns": [ - { - "name": "constant.language.boolean.viml", - "match": "\\b(true|false)\\b" - }, - { - "name": "constant.numeric.viml", - "match": "\\b([0-9]+)\\b" - } - ] - } - }, - "$schema": "https://raw.githubusercontent.com/dunstontc/textmate/master/schema/tmLanguage.schema.json", - "name": "viml", - "scopeName": "source.viml", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#constant" - }, - { - "include": "#entity" - }, - { - "include": "#keyword" - }, - { - "include": "#punctuation" - }, - { - "include": "#storage" - }, - { - "include": "#strings" - }, - { - "include": "#support" - }, - { - "include": "#variable" - }, - { - "include": "#syntax" - }, - { - "include": "#commands" - }, - { - "include": "#option" - }, - { - "include": "#map" - } - ] -} diff --git a/lib/grammars/vue-html.tmLanguage.json b/lib/grammars/vue-html.tmLanguage.json deleted file mode 100644 index c1d8e11..0000000 --- a/lib/grammars/vue-html.tmLanguage.json +++ /dev/null @@ -1,558 +0,0 @@ -{ - "name": "vue-html", - "scopeName": "text.html.vue-html", - "fileTypes": [], - "uuid": "ca2e4260-5d62-45bf-8cf1-d8b5cc19c8f8", - "patterns": [ - { - "include": "source.vue#vue-interpolations" - }, - { - "name": "meta.tag.any.html", - "begin": "(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "support.class.component.html" - } - }, - "end": "(>)(<)(/)(\\2)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - }, - "2": { - "name": "punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html" - }, - "3": { - "name": "punctuation.definition.tag.begin.html" - }, - "4": { - "name": "support.class.component.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.any.html", - "begin": "(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(>)(<)(/)(\\2)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - }, - "2": { - "name": "punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html" - }, - "3": { - "name": "punctuation.definition.tag.begin.html" - }, - "4": { - "name": "entity.name.tag.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.preprocessor.xml.html", - "begin": "(<\\?)(xml)", - "end": "(\\?>)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.xml.html" - } - }, - "patterns": [ - { - "include": "#tag-generic-attribute" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#string-single-quoted" - } - ] - }, - { - "name": "comment.block.html", - "begin": "<!--", - "end": "-->", - "captures": { - "0": { - "name": "punctuation.definition.comment.html" - } - } - }, - { - "name": "meta.tag.sgml.html", - "begin": "<!", - "end": ">", - "captures": { - "0": { - "name": "punctuation.definition.tag.html" - } - }, - "patterns": [ - { - "name": "meta.tag.sgml.doctype.html", - "begin": "(?i:DOCTYPE)", - "end": "(?=>)", - "captures": { - "1": { - "name": "entity.name.tag.doctype.html" - } - }, - "patterns": [ - { - "name": "string.quoted.double.doctype.identifiers-and-DTDs.html", - "match": "\"[^\">]*\"" - } - ] - }, - { - "name": "constant.other.inline-data.html", - "begin": "\\[CDATA\\[", - "end": "]](?=>)" - }, - { - "name": "invalid.illegal.bad-comments-or-CDATA.html", - "match": "(\\s*)(?!--|>)\\S(\\s*)" - } - ] - }, - { - "name": "meta.tag.block.any.html", - "begin": "(</?)([A-Z][a-zA-Z0-9:-]*\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "support.class.component.html" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.block.any.html", - "begin": "(</?)([a-z][a-zA-Z0-9:-]*\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.block.any.html" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.structure.any.html", - "begin": "(</?)((?i:body|head|html)\\b)", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "captures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.structure.any.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.block.any.html", - "begin": "(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)(?!-)\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.block.any.html" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.inline.any.html", - "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?!-)\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.inline.any.html" - } - }, - "end": "(/?>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "name": "meta.tag.other.html", - "begin": "(</?)([a-zA-Z0-9:-]+)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.other.html" - } - }, - "end": "(/?>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "include": "#entities" - }, - { - "name": "invalid.illegal.incomplete.html", - "match": "<>" - }, - { - "name": "invalid.illegal.bad-angle-bracket.html", - "match": "<" - } - ], - "repository": { - "entities": { - "patterns": [ - { - "name": "constant.character.entity.html", - "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - } - }, - { - "name": "invalid.illegal.bad-ampersand.html", - "match": "&" - } - ] - }, - "string-double-quoted": { - "name": "string.quoted.double.html", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.vue#vue-interpolations" - }, - { - "include": "#entities" - } - ] - }, - "string-single-quoted": { - "name": "string.quoted.single.html", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.vue#vue-interpolations" - }, - { - "include": "#entities" - } - ] - }, - "tag-generic-attribute": { - "name": "entity.other.attribute-name.html", - "match": "(?<=[^=])\\b([a-zA-Z0-9:\\-_]+)" - }, - "tag-id-attribute": { - "name": "meta.attribute-with-value.id.html", - "begin": "\\b(id)\\b\\s*(=)", - "end": "(?!\\G)(?<='|\"|[^\\s<>/])", - "captures": { - "1": { - "name": "entity.other.attribute-name.id.html" - }, - "2": { - "name": "punctuation.separator.key-value.html" - } - }, - "patterns": [ - { - "name": "string.quoted.double.html", - "contentName": "meta.toc-list.id.html", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.vue#vue-interpolations" - }, - { - "include": "#entities" - } - ] - }, - { - "name": "string.quoted.single.html", - "contentName": "meta.toc-list.id.html", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.vue#vue-interpolations" - }, - { - "include": "#entities" - } - ] - }, - { - "name": "string.unquoted.html", - "match": "(?<==)(?:[^\\s<>/'\"]|/(?!>))+", - "captures": { - "0": { - "name": "meta.toc-list.id.html" - } - } - } - ] - }, - "tag-stuff": { - "patterns": [ - { - "include": "#vue-directives" - }, - { - "include": "#tag-id-attribute" - }, - { - "include": "#tag-generic-attribute" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#string-single-quoted" - }, - { - "include": "#unquoted-attribute" - } - ] - }, - "unquoted-attribute": { - "name": "string.unquoted.html", - "match": "(?<==)(?:[^\\s<>/'\"]|/(?!>))+" - }, - "vue-directives": { - "name": "meta.directive.vue", - "begin": "(?:\\b(v-)|(:|@|#))([a-zA-Z0-9\\-_]+)(?:\\:([a-zA-Z\\-_]+))?(?:\\.([a-zA-Z\\-_]+))*\\s*(=)", - "end": "(?<='|\")|(?=[\\s<>`])", - "captures": { - "1": { - "name": "entity.other.attribute-name.html" - }, - "2": { - "name": "punctuation.separator.key-value.html" - }, - "3": { - "name": "entity.other.attribute-name.html" - }, - "4": { - "name": "entity.other.attribute-name.html" - }, - "5": { - "name": "entity.other.attribute-name.html" - }, - "6": { - "name": "punctuation.separator.key-value.html" - } - }, - "patterns": [ - { - "name": "source.directive.vue", - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.js#expression" - } - ] - }, - { - "name": "source.directive.vue", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.js#expression" - } - ] - }, - { - "name": "source.directive.vue", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "patterns": [ - { - "include": "source.js#expression" - } - ] - } - ] - } - } -} diff --git a/lib/grammars/vue.tmLanguage.json b/lib/grammars/vue.tmLanguage.json deleted file mode 100644 index 16d976f..0000000 --- a/lib/grammars/vue.tmLanguage.json +++ /dev/null @@ -1,1237 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "name": "vue", - "scopeName": "source.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*(['\"]?)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": { - "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" - } - ] - }, - "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" - } - ] - } - ] - }, - "html-stuff": { - "patterns": [ - { - "include": "#template-tag" - }, - { - "include": "text.html.derivative" - }, - { - "include": "text.html.basic" - } - ] - }, - "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" - } - ] - }, - "vue-directives": { - "patterns": [ - { - "include": "#vue-directives-control" - }, - { - "include": "#vue-directives-style-attr" - }, - { - "include": "#vue-directives-original" - }, - { - "include": "#vue-directives-generic-attr" - } - ] - }, - "vue-directives-original": { - "begin": "(?:\\b(v-)|(:)|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.html.vue" - }, - "2": { - "name": "punctuation.attribute-shorthand.bind.html.vue" - }, - "3": { - "name": "punctuation.attribute-shorthand.event.html.vue" - }, - "4": { - "name": "punctuation.attribute-shorthand.slot.html.vue" - }, - "5": { - "name": "punctuation.separator.key-value.html.vue" - }, - "6": { - "name": "entity.other.attribute-name.html.vue" - }, - "7": { - "name": "punctuation.separator.key-value.html.vue" - }, - "8": { - "name": "entity.other.attribute-name.html.vue" - }, - "9": { - "name": "punctuation.separator.key-value.html.vue" - } - }, - "end": "(?=\\s*+[^=\\s])", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.html.vue" - } - }, - "name": "meta.attribute.directive.vue", - "patterns": [ - { - "include": "#vue-directives-expression" - } - ] - }, - "vue-directives-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" - } - ] - } - ] - }, - { - "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" - } - ] - } - ] - } - ] - }, - "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": [ - { - "comment": "Copy from source.css#rule-list-innards", - "begin": "('|\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.html.vue" - } - }, - "end": "(\\1)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.html.vue" - } - }, - "name": "source.css.embedded.html.vue", - "patterns": [ - { - "include": "source.css#comment-block" - }, - { - "include": "source.css#escapes" - }, - { - "include": "source.css#font-features" - }, - { - "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "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" - } - ] - }, - { - "comment": "Modify end to fix #199. TODO: handle ' character.", - "begin": "(:)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.separator.key-value.css" - } - }, - "end": "\\s*(;)|\\s*(?='|\")", - "endCaptures": { - "1": { - "name": "punctuation.terminator.rule.css" - } - }, - "contentName": "meta.property-value.css", - "patterns": [ - { - "include": "source.css#comment-block" - }, - { - "include": "source.css#property-values" - } - ] - }, - { - "match": ";", - "name": "punctuation.terminator.rule.css" - } - ] - } - ] - }, - "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" - } - }, - "end": "(\\1)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.html.vue" - } - }, - "name": "meta.type.parameters.vue", - "comment": "https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020", - "patterns": [ - { - "include": "source.ts#comment" - }, - { - "name": "storage.modifier.ts", - "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" - }, - { - "include": "source.ts#type" - }, - { - "include": "source.ts#punctuation-comma" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "(=)(?!>)" - } - ] - } - ] - }, - "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" - } - ] - } - ] - } - ] - } - } -} diff --git a/lib/grammars/vyper.tmLanguage.json b/lib/grammars/vyper.tmLanguage.json deleted file mode 100644 index 995927a..0000000 --- a/lib/grammars/vyper.tmLanguage.json +++ /dev/null @@ -1,5420 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/MagicStack/MagicPython/commit/b2b4f4ae7b4e6284e80bda8080106b93bd588f9e", - "name": "vyper", - "scopeName": "source.vyper", - "patterns": [ - { - "include": "#statement" - }, - { - "include": "#expression" - }, - { - "include": "#reserved-names-vyper" - } - ], - "repository": { - "impossible": { - "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", - "match": "$.^" - }, - "statement": { - "patterns": [ - { - "include": "#import" - }, - { - "include": "#class-declaration" - }, - { - "include": "#function-declaration" - }, - { - "include": "#generator" - }, - { - "include": "#statement-keyword" - }, - { - "include": "#assignment-operator" - }, - { - "include": "#decorator" - }, - { - "include": "#docstring-statement" - }, - { - "include": "#semicolon" - } - ] - }, - "semicolon": { - "patterns": [ - { - "name": "invalid.deprecated.semicolon.python", - "match": "\\;$" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.line.number-sign.python", - "contentName": "meta.typehint.comment.python", - "begin": "(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n", - "end": "(?:$|(?=\\#))", - "beginCaptures": { - "0": { - "name": "meta.typehint.comment.python" - }, - "1": { - "name": "comment.typehint.directive.notation.python" - } - }, - "patterns": [ - { - "name": "comment.typehint.ignore.notation.python", - "match": "(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n" - }, - { - "name": "comment.typehint.type.notation.python", - "match": "(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n" - }, - { - "name": "comment.typehint.punctuation.notation.python", - "match": "([\\[\\]\\(\\),\\.\\=\\*]|(->))" - }, - { - "name": "comment.typehint.variable.notation.python", - "match": "([[:alpha:]_]\\w*)" - } - ] - }, - { - "include": "#comments-base" - } - ] - }, - "docstring-statement": { - "begin": "^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", - "comment": "the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring", - "end": "((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", - "patterns": [ - { - "include": "#docstring" - } - ] - }, - "docstring": { - "patterns": [ - { - "name": "string.quoted.docstring.multi.python", - "begin": "(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\1)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - } - }, - "patterns": [ - { - "include": "#docstring-prompt" - }, - { - "include": "#codetags" - }, - { - "include": "#docstring-guts-unicode" - } - ] - }, - { - "name": "string.quoted.docstring.raw.multi.python", - "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - } - }, - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#docstring-prompt" - }, - { - "include": "#codetags" - } - ] - }, - { - "name": "string.quoted.docstring.single.python", - "begin": "(\\'|\\\")", - "end": "(\\1)|(\\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - }, - { - "include": "#docstring-guts-unicode" - } - ] - }, - { - "name": "string.quoted.docstring.raw.single.python", - "begin": "([rR])(\\'|\\\")", - "end": "(\\2)|(\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#codetags" - } - ] - } - ] - }, - "docstring-guts-unicode": { - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - } - ] - }, - "docstring-prompt": { - "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n", - "captures": { - "1": { - "name": "keyword.control.flow.python" - } - } - }, - "statement-keyword": { - "patterns": [ - { - "name": "storage.type.function.python", - "match": "\\b((async\\s+)?\\s*def)\\b" - }, - { - "name": "keyword.control.flow.python", - "comment": "if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n", - "match": "\\b(?<!\\.)as\\b(?=.*[:\\\\])" - }, - { - "name": "keyword.control.import.python", - "comment": "other legal use of `as` is in an import", - "match": "\\b(?<!\\.)as\\b" - }, - { - "name": "keyword.control.flow.python", - "match": "(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n" - }, - { - "name": "storage.modifier.declaration.python", - "match": "(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n" - }, - { - "name": "storage.type.class.python", - "match": "\\b(?<!\\.)(class)\\b" - } - ] - }, - "expression-bare": { - "comment": "valid Python expressions w/o comments and line continuation", - "patterns": [ - { - "include": "#backticks" - }, - { - "include": "#illegal-anno" - }, - { - "include": "#literal" - }, - { - "include": "#regexp" - }, - { - "include": "#string" - }, - { - "include": "#lambda" - }, - { - "include": "#generator" - }, - { - "include": "#illegal-operator" - }, - { - "include": "#operator" - }, - { - "include": "#curly-braces" - }, - { - "include": "#item-access" - }, - { - "include": "#list" - }, - { - "include": "#odd-function-call" - }, - { - "include": "#round-braces" - }, - { - "include": "#function-call" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-types" - }, - { - "include": "#builtin-exceptions" - }, - { - "include": "#magic-names" - }, - { - "include": "#special-names" - }, - { - "include": "#illegal-names" - }, - { - "include": "#special-variables" - }, - { - "include": "#ellipsis" - }, - { - "include": "#punctuation" - }, - { - "include": "#line-continuation" - }, - { - "include": "#special-variables-types" - } - ] - }, - "expression-base": { - "comment": "valid Python expressions with comments and line continuation", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#expression-bare" - }, - { - "include": "#line-continuation" - } - ] - }, - "expression": { - "comment": "All valid Python expressions", - "patterns": [ - { - "include": "#expression-base" - }, - { - "include": "#member-access" - }, - { - "comment": "Tokenize identifiers to help linters", - "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" - } - ] - }, - "member-access": { - "name": "meta.member.access.python", - "begin": "(\\.)\\s*(?!\\.)", - "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n", - "beginCaptures": { - "1": { - "name": "punctuation.separator.period.python" - } - }, - "patterns": [ - { - "include": "#function-call" - }, - { - "include": "#member-access-base" - }, - { - "include": "#member-access-attribute" - } - ] - }, - "member-access-base": { - "patterns": [ - { - "include": "#magic-names" - }, - { - "include": "#illegal-names" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#special-names" - }, - { - "include": "#line-continuation" - }, - { - "include": "#item-access" - }, - { - "include": "#special-variables-types" - } - ] - }, - "member-access-attribute": { - "comment": "Highlight attribute access in otherwise non-specialized cases.", - "name": "meta.attribute.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - }, - "special-names": { - "name": "constant.other.caps.python", - "match": "(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n" - }, - "curly-braces": { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dict.begin.python" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.dict.end.python" - } - }, - "patterns": [ - { - "name": "punctuation.separator.dict.python", - "match": ":" - }, - { - "include": "#expression" - } - ] - }, - "list": { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.list.begin.python" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.list.end.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "odd-function-call": { - "comment": "A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n", - "begin": "(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#function-arguments" - } - ] - }, - "round-braces": { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.begin.python" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.end.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "line-continuation": { - "patterns": [ - { - "match": "(\\\\)\\s*(\\S.*$\\n?)", - "captures": { - "1": { - "name": "punctuation.separator.continuation.line.python" - }, - "2": { - "name": "invalid.illegal.line.continuation.python" - } - } - }, - { - "begin": "(\\\\)\\s*$\\n?", - "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", - "beginCaptures": { - "1": { - "name": "punctuation.separator.continuation.line.python" - } - }, - "patterns": [ - { - "include": "#regexp" - }, - { - "include": "#string" - } - ] - } - ] - }, - "assignment-operator": { - "name": "keyword.operator.assignment.python", - "match": "(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n" - }, - "operator": { - "match": "(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n", - "captures": { - "1": { - "name": "keyword.operator.logical.python" - }, - "2": { - "name": "keyword.control.flow.python" - }, - "3": { - "name": "keyword.operator.bitwise.python" - }, - "4": { - "name": "keyword.operator.arithmetic.python" - }, - "5": { - "name": "keyword.operator.comparison.python" - } - } - }, - "punctuation": { - "patterns": [ - { - "name": "punctuation.separator.colon.python", - "match": ":" - }, - { - "name": "punctuation.separator.element.python", - "match": "," - } - ] - }, - "literal": { - "patterns": [ - { - "name": "constant.language.python", - "match": "\\b(True|False|None|NotImplemented|Ellipsis)\\b" - }, - { - "include": "#number" - } - ] - }, - "number": { - "name": "constant.numeric.python", - "patterns": [ - { - "include": "#number-float" - }, - { - "include": "#number-dec" - }, - { - "include": "#number-hex" - }, - { - "include": "#number-oct" - }, - { - "include": "#number-bin" - }, - { - "include": "#number-long" - }, - { - "name": "invalid.illegal.name.python", - "match": "\\b[0-9]+\\w+" - } - ] - }, - "number-float": { - "name": "constant.numeric.float.python", - "match": "(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n", - "captures": { - "1": { - "name": "storage.type.imaginary.number.python" - } - } - }, - "number-dec": { - "name": "constant.numeric.dec.python", - "match": "(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n", - "captures": { - "1": { - "name": "storage.type.imaginary.number.python" - }, - "2": { - "name": "invalid.illegal.dec.python" - } - } - }, - "number-hex": { - "name": "constant.numeric.hex.python", - "match": "(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n", - "captures": { - "1": { - "name": "storage.type.number.python" - } - } - }, - "number-oct": { - "name": "constant.numeric.oct.python", - "match": "(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n", - "captures": { - "1": { - "name": "storage.type.number.python" - } - } - }, - "number-bin": { - "name": "constant.numeric.bin.python", - "match": "(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n", - "captures": { - "1": { - "name": "storage.type.number.python" - } - } - }, - "number-long": { - "name": "constant.numeric.bin.python", - "comment": "this is to support python2 syntax for long ints", - "match": "(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n", - "captures": { - "2": { - "name": "storage.type.number.python" - } - } - }, - "regexp": { - "patterns": [ - { - "include": "#regexp-single-three-line" - }, - { - "include": "#regexp-double-three-line" - }, - { - "include": "#regexp-single-one-line" - }, - { - "include": "#regexp-double-one-line" - }, - { - "include": "#fregexp-single-three-line" - }, - { - "include": "#fregexp-double-three-line" - }, - { - "include": "#fregexp-single-one-line" - }, - { - "include": "#fregexp-double-one-line" - } - ] - }, - "string": { - "patterns": [ - { - "include": "#string-quoted-multi-line" - }, - { - "include": "#string-quoted-single-line" - }, - { - "include": "#string-bin-quoted-multi-line" - }, - { - "include": "#string-bin-quoted-single-line" - }, - { - "include": "#string-raw-quoted-multi-line" - }, - { - "include": "#string-raw-quoted-single-line" - }, - { - "include": "#string-raw-bin-quoted-multi-line" - }, - { - "include": "#string-raw-bin-quoted-single-line" - }, - { - "include": "#fstring-fnorm-quoted-multi-line" - }, - { - "include": "#fstring-fnorm-quoted-single-line" - }, - { - "include": "#fstring-normf-quoted-multi-line" - }, - { - "include": "#fstring-normf-quoted-single-line" - }, - { - "include": "#fstring-raw-quoted-multi-line" - }, - { - "include": "#fstring-raw-quoted-single-line" - } - ] - }, - "string-unicode-guts": { - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#string-entity" - }, - { - "include": "#string-brace-formatting" - } - ] - }, - "string-consume-escape": { - "match": "\\\\['\"\\n\\\\]" - }, - "string-raw-guts": { - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - }, - { - "include": "#string-brace-formatting" - } - ] - }, - "string-raw-bin-guts": { - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - } - ] - }, - "string-entity": { - "patterns": [ - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - }, - { - "include": "#string-formatting" - } - ] - }, - "fstring-guts": { - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - }, - { - "include": "#fstring-formatting" - } - ] - }, - "fstring-raw-guts": { - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#fstring-formatting" - } - ] - }, - "fstring-illegal-single-brace": { - "comment": "it is illegal to have a multiline brace inside a single-line string", - "begin": "(\\{)(?=[^\\n}]*$\\n?)", - "end": "(\\})|(?=\\n)", - "beginCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "patterns": [ - { - "include": "#fstring-terminator-single" - }, - { - "include": "#f-expression" - } - ] - }, - "fstring-illegal-multi-brace": { - "patterns": [ - { - "include": "#impossible" - } - ] - }, - "f-expression": { - "comment": "All valid Python expressions, except comments and line continuation", - "patterns": [ - { - "include": "#expression-bare" - }, - { - "include": "#member-access" - }, - { - "comment": "Tokenize identifiers to help linters", - "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" - } - ] - }, - "escape-sequence-unicode": { - "patterns": [ - { - "name": "constant.character.escape.python", - "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n" - } - ] - }, - "escape-sequence": { - "name": "constant.character.escape.python", - "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n" - }, - "string-line-continuation": { - "name": "constant.language.python", - "match": "\\\\$" - }, - "string-formatting": { - "name": "meta.format.percent.python", - "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - } - }, - "string-brace-formatting": { - "patterns": [ - { - "name": "meta.format.brace.python", - "match": "(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - }, - "3": { - "name": "storage.type.format.python" - }, - "4": { - "name": "storage.type.format.python" - } - } - }, - { - "name": "meta.format.brace.python", - "match": "(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - }, - "3": { - "name": "storage.type.format.python" - }, - "4": { - "name": "storage.type.format.python" - } - } - } - ] - }, - "fstring-formatting": { - "patterns": [ - { - "include": "#fstring-formatting-braces" - }, - { - "include": "#fstring-formatting-singe-brace" - } - ] - }, - "fstring-formatting-singe-brace": { - "name": "invalid.illegal.brace.python", - "match": "(}(?!}))" - }, - "import": { - "comment": "Import statements used to correctly mark `from`, `import`, and `as`\n", - "patterns": [ - { - "begin": "\\b(?<!\\.)(from)\\b(?=.+import)", - "end": "$|(?=import)", - "beginCaptures": { - "1": { - "name": "keyword.control.import.python" - } - }, - "patterns": [ - { - "name": "punctuation.separator.period.python", - "match": "\\.+" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "\\b(?<!\\.)(import)\\b", - "end": "$", - "beginCaptures": { - "1": { - "name": "keyword.control.import.python" - } - }, - "patterns": [ - { - "name": "keyword.control.import.python", - "match": "\\b(?<!\\.)as\\b" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "class-declaration": { - "patterns": [ - { - "name": "meta.class.python", - "begin": "(?x)\n \\s*(class)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n", - "end": "(:)", - "beginCaptures": { - "1": { - "name": "storage.type.class.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.class.begin.python" - } - }, - "patterns": [ - { - "include": "#class-name" - }, - { - "include": "#class-inheritance" - } - ] - } - ] - }, - "class-name": { - "patterns": [ - { - "include": "#illegal-object-name" - }, - { - "include": "#builtin-possible-callables" - }, - { - "name": "entity.name.type.class.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "class-inheritance": { - "name": "meta.class.inheritance.python", - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.inheritance.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.inheritance.end.python" - } - }, - "patterns": [ - { - "name": "keyword.operator.unpacking.arguments.python", - "match": "(\\*\\*|\\*)" - }, - { - "name": "punctuation.separator.inheritance.python", - "match": "," - }, - { - "name": "keyword.operator.assignment.python", - "match": "=(?!=)" - }, - { - "name": "support.type.metaclass.python", - "match": "\\bmetaclass\\b" - }, - { - "include": "#illegal-names" - }, - { - "include": "#class-kwarg" - }, - { - "include": "#call-wrapper-inheritance" - }, - { - "include": "#expression-base" - }, - { - "include": "#member-access-class" - }, - { - "include": "#inheritance-identifier" - } - ] - }, - "class-kwarg": { - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n", - "captures": { - "1": { - "name": "entity.other.inherited-class.python variable.parameter.class.python" - }, - "2": { - "name": "keyword.operator.assignment.python" - } - } - }, - "inheritance-identifier": { - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n", - "captures": { - "1": { - "name": "entity.other.inherited-class.python" - } - } - }, - "member-access-class": { - "name": "meta.member.access.python", - "begin": "(\\.)\\s*(?!\\.)", - "end": "(?<=\\S)(?=\\W)|$", - "beginCaptures": { - "1": { - "name": "punctuation.separator.period.python" - } - }, - "patterns": [ - { - "include": "#call-wrapper-inheritance" - }, - { - "include": "#member-access-base" - }, - { - "include": "#inheritance-identifier" - } - ] - }, - "lambda": { - "patterns": [ - { - "match": "((?<=\\.)lambda|lambda(?=\\s*[\\.=]))", - "captures": { - "1": { - "name": "keyword.control.flow.python" - } - } - }, - { - "match": "\\b(lambda)\\s*?(?=[,\\n]|$)", - "captures": { - "1": { - "name": "storage.type.function.lambda.python" - } - } - }, - { - "name": "meta.lambda-function.python", - "begin": "(?x)\n \\b (lambda) \\b\n", - "end": "(:)|(\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.function.lambda.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.function.lambda.begin.python" - } - }, - "contentName": "meta.function.lambda.parameters.python", - "patterns": [ - { - "name": "keyword.operator.unpacking.parameter.python", - "match": "(\\*\\*|\\*)" - }, - { - "include": "#lambda-nested-incomplete" - }, - { - "include": "#illegal-names" - }, - { - "match": "([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))", - "captures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "punctuation.separator.parameters.python" - } - } - }, - { - "include": "#comments" - }, - { - "include": "#backticks" - }, - { - "include": "#illegal-anno" - }, - { - "include": "#lambda-parameter-with-default" - }, - { - "include": "#line-continuation" - }, - { - "include": "#illegal-operator" - } - ] - } - ] - }, - "lambda-incomplete": { - "name": "storage.type.function.lambda.python", - "match": "\\blambda(?=\\s*[,)])" - }, - "lambda-nested-incomplete": { - "name": "storage.type.function.lambda.python", - "match": "\\blambda(?=\\s*[:,)])" - }, - "lambda-parameter-with-default": { - "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n", - "end": "(,)|(?=:|$)", - "beginCaptures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "keyword.operator.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "generator": { - "comment": "Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n", - "begin": "\\bfor\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.flow.python" - } - }, - "end": "\\bin\\b", - "endCaptures": { - "0": { - "name": "keyword.control.flow.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-declaration": { - "name": "meta.function.python", - "begin": "(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n", - "end": "(:|(?=[#'\"\\n]))", - "beginCaptures": { - "1": { - "name": "storage.type.function.async.python" - }, - "2": { - "name": "storage.type.function.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.function.begin.python" - } - }, - "patterns": [ - { - "include": "#function-def-name" - }, - { - "include": "#parameters" - }, - { - "include": "#line-continuation" - }, - { - "include": "#return-annotation" - } - ] - }, - "function-def-name": { - "patterns": [ - { - "name": "entity.name.function.fallback.vyper", - "match": "(?x)\n \\b (__default__) \\b\n" - }, - { - "name": "entity.name.function.constructor.vyper", - "match": "(?x)\n \\b (__init__) \\b\n" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#builtin-possible-callables" - }, - { - "name": "entity.name.function.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "parameters": { - "name": "meta.function.parameters.python", - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.python" - } - }, - "patterns": [ - { - "name": "keyword.operator.unpacking.parameter.python", - "match": "(\\*\\*|\\*)" - }, - { - "include": "#lambda-incomplete" - }, - { - "include": "#illegal-names" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#parameter-special" - }, - { - "match": "(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", - "captures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "punctuation.separator.parameters.python" - } - } - }, - { - "include": "#comments" - }, - { - "include": "#loose-default" - }, - { - "include": "#annotated-parameter" - } - ] - }, - "parameter-special": { - "match": "(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n", - "captures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "variable.parameter.function.language.special.self.python" - }, - "3": { - "name": "variable.parameter.function.language.special.cls.python" - }, - "4": { - "name": "punctuation.separator.parameters.python" - } - } - }, - "loose-default": { - "begin": "(=)", - "end": "(,)|(?=\\))", - "beginCaptures": { - "1": { - "name": "keyword.operator.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "annotated-parameter": { - "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n", - "end": "(,)|(?=\\))", - "beginCaptures": { - "1": { - "name": "variable.parameter.function.language.python" - }, - "2": { - "name": "punctuation.separator.annotation.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.parameters.python" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "name": "keyword.operator.assignment.python", - "match": "=(?!=)" - } - ] - }, - "return-annotation": { - "begin": "(->)", - "end": "(?=:)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.annotation.result.python" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "item-access": { - "patterns": [ - { - "name": "meta.item-access.python", - "begin": "(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n", - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#item-name" - }, - { - "include": "#item-index" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "item-name": { - "patterns": [ - { - "include": "#special-variables" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#special-names" - }, - { - "name": "meta.indexed-name.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - }, - { - "include": "#special-variables-types" - } - ] - }, - "item-index": { - "begin": "(\\[)", - "end": "(?=\\])", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.python" - } - }, - "contentName": "meta.item-access.arguments.python", - "patterns": [ - { - "name": "punctuation.separator.slice.python", - "match": ":" - }, - { - "include": "#expression" - } - ] - }, - "decorator": { - "name": "meta.function.decorator.python", - "begin": "(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n", - "end": "(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n", - "beginCaptures": { - "1": { - "name": "entity.name.function.decorator.python" - }, - "2": { - "name": "punctuation.definition.decorator.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - }, - "2": { - "name": "invalid.illegal.decorator.python" - } - }, - "patterns": [ - { - "include": "#decorator-name" - }, - { - "include": "#function-arguments" - } - ] - }, - "decorator-name": { - "patterns": [ - { - "include": "#builtin-callables" - }, - { - "include": "#illegal-object-name" - }, - { - "name": "entity.name.function.decorator.python", - "match": "(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n", - "captures": { - "2": { - "name": "punctuation.separator.period.python" - } - } - }, - { - "include": "#line-continuation" - }, - { - "name": "invalid.illegal.decorator.python", - "match": "(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n", - "captures": { - "1": { - "name": "invalid.illegal.decorator.python" - } - } - } - ] - }, - "call-wrapper-inheritance": { - "comment": "same as a function call, but in inheritance context", - "name": "meta.function-call.python", - "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#inheritance-name" - }, - { - "include": "#function-arguments" - } - ] - }, - "inheritance-name": { - "patterns": [ - { - "include": "#lambda-incomplete" - }, - { - "include": "#builtin-possible-callables" - }, - { - "include": "#inheritance-identifier" - } - ] - }, - "function-call": { - "name": "meta.function-call.python", - "comment": "Regular function call of the type \"name(args)\"", - "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - } - }, - "patterns": [ - { - "include": "#special-variables" - }, - { - "include": "#function-name" - }, - { - "include": "#function-arguments" - } - ] - }, - "function-name": { - "patterns": [ - { - "include": "#builtin-possible-callables" - }, - { - "comment": "Some color schemas support meta.function-call.generic scope", - "name": "meta.function-call.generic.python", - "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" - } - ] - }, - "function-arguments": { - "begin": "(\\()", - "end": "(?=\\))(?!\\)\\s*\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.python" - } - }, - "contentName": "meta.function-call.arguments.python", - "patterns": [ - { - "name": "punctuation.separator.arguments.python", - "match": "(,)" - }, - { - "match": "(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n", - "captures": { - "1": { - "name": "keyword.operator.unpacking.arguments.python" - } - } - }, - { - "include": "#lambda-incomplete" - }, - { - "include": "#illegal-names" - }, - { - "match": "\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)", - "captures": { - "1": { - "name": "variable.parameter.function-call.python" - }, - "2": { - "name": "keyword.operator.assignment.python" - } - } - }, - { - "name": "keyword.operator.assignment.python", - "match": "=(?!=)" - }, - { - "include": "#expression" - }, - { - "match": "\\s*(\\))\\s*(\\()", - "captures": { - "1": { - "name": "punctuation.definition.arguments.end.python" - }, - "2": { - "name": "punctuation.definition.arguments.begin.python" - } - } - } - ] - }, - "builtin-callables": { - "patterns": [ - { - "include": "#illegal-names" - }, - { - "include": "#illegal-object-name" - }, - { - "include": "#builtin-exceptions" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-types" - } - ] - }, - "builtin-possible-callables": { - "patterns": [ - { - "include": "#builtin-callables" - }, - { - "include": "#magic-names" - } - ] - }, - "builtin-exceptions": { - "name": "support.type.exception.python", - "match": "(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n" - }, - "builtin-functions": { - "patterns": [ - { - "name": "support.function.builtin.python", - "match": "(?x)\n (?<!\\.) \\b(\n __import__ | abs | all | any | ascii | bin | breakpoint | callable\n | chr | compile | copyright | credits | delattr | dir | divmod\n | enumerate | eval | exec | exit | filter | format | getattr\n | globals | hasattr | hash | help | hex | id | input\n | isinstance | issubclass | iter | len | license | locals | map\n | max | memoryview | min | next | oct | open | ord | pow | print\n | quit | range | reload | repr | reversed | round\n | setattr | sorted | sum | vars | zip\n )\\b\n" - }, - { - "name": "variable.legacy.builtin.python", - "match": "(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n" - }, - { - "name": "support.function.builtin.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n _abi_encode | floor | ceil | convert | slice | len | concat | sha256 | method_id | keccak256 | ecrecover | ecadd | ecmul | extract32 | as_wei_value | raw_call | blockhash | bitwise_and | bitwise_or | bitwise_xor | bitwise_not | uint256_addmod | uint256_mulmod | pow_mod256 | sqrt | shift | create_forwarder_to | min | max | empty | abs )\\b\n" - }, - { - "name": "support.function.builtin.lowlevel.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n send | selfdestruct | raw_call | raw_log | create_forwarder_to )\\b\n" - }, - { - "name": "support.type.event.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n event )\\b\n" - }, - { - "name": "support.type.reference.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n map | struct | HashMap )\\b\n" - }, - { - "name": "support.function.builtin.modifiers.safe.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n private | nonreentrant | constant | event | internal | view | pure )\\b\n" - }, - { - "name": "support.function.builtin.modifiers.unsafe.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n public | payable | modifying | external )\\b\n" - } - ] - }, - "builtin-types": { - "patterns": [ - { - "name": "support.type.python", - "match": "(?x)\n (?<!\\.) \\b(\n bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" - }, - { - "name": "support.type.basetype.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n bytes32 | bytearray | wei_value | timestamp | int256 | uint8 | uint256 | decimal | timedelta | string | int128 | address | bool | bytes )\\b\n" - }, - { - "name": "support.type.keywords.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send )\\b\n" - }, - { - "name": "support.type.unit.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n shannon | finney | gwei | twei | kwei | wei | lovelace | ether | szabo | pwei | babbage | mwei | ada \n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" - }, - { - "name": "support.type.constant.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n ZERO_ADDRESS | EMPTY_BYTES32 | MAX_INT128 | MIN_INT128 | MAX_DECIMAL | MIN_DECIMAL | MAX_UINT256 \n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" - }, - { - "name": "entity.other.inherited-class.interface.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n implements )\\b\n" - } - ] - }, - "magic-function-names": { - "comment": "these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n", - "match": "(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext | await\n | bool | call | ceil | cmp | coerce | complex | contains\n | copy | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq | exit | float\n | floor | floordiv | format | ge | get | getattr\n | getattribute | getinitargs | getitem | getnewargs\n | getslice | getstate | gt | hash | hex | iadd | iand | idiv\n | ifloordiv | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow | irshift | isub\n | iter | itruediv | ixor | le | len | long | lshift | lt\n | missing | mod | mul | ne | neg | new | next | nonzero | oct | or\n | pos | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv | rlshift | rmod\n | rmul | ror | round | rpow | rrshift | rshift | rsub\n | rtruediv | rxor | set | setattr | setitem | setslice\n | setstate | sizeof | str | sub | subclasscheck | truediv\n | trunc | unicode | xor | matmul | rmatmul | imatmul\n | init_subclass | set_name | fspath | bytes | prepare\n )__\n )\\b\n", - "captures": { - "1": { - "name": "support.function.magic.python" - } - } - }, - "magic-variable-names": { - "comment": "magic variables which a class/module may have.", - "match": "(?x)\n \\b(\n __(?:\n all | bases | builtins | class | class_getitem | code | debug\n | defaults | dict | doc | file | func | kwdefaults | members\n | metaclass | methods | module | mro | mro_entries | name\n | qualname | post_init | self | signature | slots | subclasses\n | version | weakref | wrapped | annotations | classcell\n | spec | path | package | future | traceback\n )__\n )\\b\n", - "captures": { - "1": { - "name": "support.variable.magic.python" - } - } - }, - "magic-names": { - "patterns": [ - { - "include": "#magic-function-names" - }, - { - "include": "#magic-variable-names" - } - ] - }, - "illegal-names": { - "match": "(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n", - "captures": { - "1": { - "name": "keyword.control.flow.python" - }, - "2": { - "name": "keyword.control.import.python" - } - } - }, - "special-variables": { - "match": "(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n", - "captures": { - "1": { - "name": "variable.language.special.self.python" - }, - "2": { - "name": "variable.language.special.cls.python" - } - } - }, - "ellipsis": { - "name": "constant.other.ellipsis.python", - "match": "\\.\\.\\." - }, - "backticks": { - "name": "invalid.deprecated.backtick.python", - "begin": "\\`", - "end": "(?:\\`|(?<!\\\\)(\\n))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "illegal-operator": { - "patterns": [ - { - "name": "invalid.illegal.operator.python", - "match": "&&|\\|\\||--|\\+\\+" - }, - { - "name": "invalid.illegal.operator.python", - "match": "[?$]" - }, - { - "name": "invalid.illegal.operator.python", - "comment": "We don't want `!` to flash when we're typing `!=`", - "match": "!\\b" - } - ] - }, - "illegal-object-name": { - "comment": "It's illegal to name class or function \"True\"", - "name": "keyword.illegal.name.python", - "match": "\\b(True|False|None)\\b" - }, - "illegal-anno": { - "name": "invalid.illegal.annotation.python", - "match": "->" - }, - "regexp-base-expression": { - "patterns": [ - { - "include": "#regexp-quantifier" - }, - { - "include": "#regexp-base-common" - } - ] - }, - "fregexp-base-expression": { - "patterns": [ - { - "include": "#fregexp-quantifier" - }, - { - "include": "#fstring-formatting-braces" - }, - { - "match": "\\{.*?\\}" - }, - { - "include": "#regexp-base-common" - } - ] - }, - "fstring-formatting-braces": { - "patterns": [ - { - "comment": "empty braces are illegal", - "match": "({)(\\s*?)(})", - "captures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - }, - "2": { - "name": "invalid.illegal.brace.python" - }, - "3": { - "name": "constant.character.format.placeholder.other.python" - } - } - }, - { - "name": "constant.character.escape.python", - "match": "({{|}})" - } - ] - }, - "regexp-base-common": { - "patterns": [ - { - "name": "support.other.match.any.regexp", - "match": "\\." - }, - { - "name": "support.other.match.begin.regexp", - "match": "\\^" - }, - { - "name": "support.other.match.end.regexp", - "match": "\\$" - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[+*?]\\??" - }, - { - "name": "keyword.operator.disjunction.regexp", - "match": "\\|" - }, - { - "include": "#regexp-escape-sequence" - } - ] - }, - "regexp-quantifier": { - "name": "keyword.operator.quantifier.regexp", - "match": "(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n" - }, - "fregexp-quantifier": { - "name": "keyword.operator.quantifier.regexp", - "match": "(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n" - }, - "regexp-backreference-number": { - "name": "meta.backreference.regexp", - "match": "(\\\\[1-9]\\d?)", - "captures": { - "1": { - "name": "entity.name.tag.backreference.regexp" - } - } - }, - "regexp-backreference": { - "name": "meta.backreference.named.regexp", - "match": "(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n", - "captures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.backreference.regexp" - }, - "3": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp" - } - } - }, - "regexp-flags": { - "name": "storage.modifier.flag.regexp", - "match": "\\(\\?[aiLmsux]+\\)" - }, - "regexp-escape-special": { - "name": "support.other.escape.special.regexp", - "match": "\\\\([AbBdDsSwWZ])" - }, - "regexp-escape-character": { - "name": "constant.character.escape.regexp", - "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n" - }, - "regexp-escape-unicode": { - "name": "constant.character.unicode.regexp", - "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n" - }, - "regexp-escape-catchall": { - "name": "constant.character.escape.regexp", - "match": "\\\\(.|\\n)" - }, - "regexp-escape-sequence": { - "patterns": [ - { - "include": "#regexp-escape-special" - }, - { - "include": "#regexp-escape-character" - }, - { - "include": "#regexp-escape-unicode" - }, - { - "include": "#regexp-backreference-number" - }, - { - "include": "#regexp-escape-catchall" - } - ] - }, - "regexp-charecter-set-escapes": { - "patterns": [ - { - "name": "constant.character.escape.regexp", - "match": "\\\\[abfnrtv\\\\]" - }, - { - "include": "#regexp-escape-special" - }, - { - "name": "constant.character.escape.regexp", - "match": "\\\\([0-7]{1,3})" - }, - { - "include": "#regexp-escape-character" - }, - { - "include": "#regexp-escape-unicode" - }, - { - "include": "#regexp-escape-catchall" - } - ] - }, - "codetags": { - "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)", - "captures": { - "1": { - "name": "keyword.codetag.notation.python" - } - } - }, - "comments-base": { - "name": "comment.line.number-sign.python", - "begin": "(\\#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.python" - } - }, - "end": "($)", - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "comments-string-single-three": { - "name": "comment.line.number-sign.python", - "begin": "(\\#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.python" - } - }, - "end": "($|(?='''))", - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "comments-string-double-three": { - "name": "comment.line.number-sign.python", - "begin": "(\\#)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.python" - } - }, - "end": "($|(?=\"\"\"))", - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "single-one-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#single-one-regexp-character-set" - }, - { - "include": "#single-one-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#single-one-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#single-one-regexp-lookahead" - }, - { - "include": "#single-one-regexp-lookahead-negative" - }, - { - "include": "#single-one-regexp-lookbehind" - }, - { - "include": "#single-one-regexp-lookbehind-negative" - }, - { - "include": "#single-one-regexp-conditional" - }, - { - "include": "#single-one-regexp-parentheses-non-capturing" - }, - { - "include": "#single-one-regexp-parentheses" - } - ] - }, - "single-one-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "single-one-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "single-one-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-one-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "single-three-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#single-three-regexp-character-set" - }, - { - "include": "#single-three-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#single-three-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#single-three-regexp-lookahead" - }, - { - "include": "#single-three-regexp-lookahead-negative" - }, - { - "include": "#single-three-regexp-lookbehind" - }, - { - "include": "#single-three-regexp-lookbehind-negative" - }, - { - "include": "#single-three-regexp-conditional" - }, - { - "include": "#single-three-regexp-parentheses-non-capturing" - }, - { - "include": "#single-three-regexp-parentheses" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\\'\\'\\'))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "single-three-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "single-three-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "double-one-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#double-one-regexp-character-set" - }, - { - "include": "#double-one-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#double-one-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#double-one-regexp-lookahead" - }, - { - "include": "#double-one-regexp-lookahead-negative" - }, - { - "include": "#double-one-regexp-lookbehind" - }, - { - "include": "#double-one-regexp-lookbehind-negative" - }, - { - "include": "#double-one-regexp-conditional" - }, - { - "include": "#double-one-regexp-parentheses-non-capturing" - }, - { - "include": "#double-one-regexp-parentheses" - } - ] - }, - "double-one-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "double-one-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "double-one-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-one-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "double-three-regexp-expression": { - "patterns": [ - { - "include": "#regexp-base-expression" - }, - { - "include": "#double-three-regexp-character-set" - }, - { - "include": "#double-three-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#double-three-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#double-three-regexp-lookahead" - }, - { - "include": "#double-three-regexp-lookahead-negative" - }, - { - "include": "#double-three-regexp-lookbehind" - }, - { - "include": "#double-three-regexp-lookbehind-negative" - }, - { - "include": "#double-three-regexp-conditional" - }, - { - "include": "#double-three-regexp-parentheses-non-capturing" - }, - { - "include": "#double-three-regexp-parentheses" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-character-set": { - "patterns": [ - { - "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" - }, - { - "name": "meta.character.set.regexp", - "begin": "(\\[)(\\^)?(\\])?", - "end": "(\\]|(?=\"\"\"))", - "beginCaptures": { - "1": { - "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - }, - "3": { - "name": "constant.character.set.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.character.set.end.regexp constant.other.set.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#regexp-charecter-set-escapes" - }, - { - "name": "constant.character.set.regexp", - "match": "[^\\n]" - } - ] - } - ] - }, - "double-three-regexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-comments": { - "name": "comment.regexp", - "begin": "\\(\\?#", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "punctuation.comment.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.comment.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#codetags" - } - ] - }, - "double-three-regexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-regexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "regexp-single-one-line": { - "name": "string.regexp.quoted.single.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')", - "end": "(\\')|(?<!\\\\)(\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-regexp-expression" - } - ] - }, - "regexp-single-three-line": { - "name": "string.regexp.quoted.multi.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')", - "end": "(\\'\\'\\')", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-regexp-expression" - } - ] - }, - "regexp-double-one-line": { - "name": "string.regexp.quoted.single.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\")", - "end": "(\")|(?<!\\\\)(\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-regexp-expression" - } - ] - }, - "regexp-double-three-line": { - "name": "string.regexp.quoted.multi.python", - "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")", - "end": "(\"\"\")", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-regexp-expression" - } - ] - }, - "single-one-fregexp-expression": { - "patterns": [ - { - "include": "#fregexp-base-expression" - }, - { - "include": "#single-one-regexp-character-set" - }, - { - "include": "#single-one-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#single-one-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#single-one-fregexp-lookahead" - }, - { - "include": "#single-one-fregexp-lookahead-negative" - }, - { - "include": "#single-one-fregexp-lookbehind" - }, - { - "include": "#single-one-fregexp-lookbehind-negative" - }, - { - "include": "#single-one-fregexp-conditional" - }, - { - "include": "#single-one-fregexp-parentheses-non-capturing" - }, - { - "include": "#single-one-fregexp-parentheses" - } - ] - }, - "single-one-fregexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-one-fregexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "single-three-fregexp-expression": { - "patterns": [ - { - "include": "#fregexp-base-expression" - }, - { - "include": "#single-three-regexp-character-set" - }, - { - "include": "#single-three-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#single-three-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#single-three-fregexp-lookahead" - }, - { - "include": "#single-three-fregexp-lookahead-negative" - }, - { - "include": "#single-three-fregexp-lookbehind" - }, - { - "include": "#single-three-fregexp-lookbehind-negative" - }, - { - "include": "#single-three-fregexp-conditional" - }, - { - "include": "#single-three-fregexp-parentheses-non-capturing" - }, - { - "include": "#single-three-fregexp-parentheses" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "single-three-fregexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\\'\\'\\'))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - }, - { - "include": "#comments-string-single-three" - } - ] - }, - "double-one-fregexp-expression": { - "patterns": [ - { - "include": "#fregexp-base-expression" - }, - { - "include": "#double-one-regexp-character-set" - }, - { - "include": "#double-one-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#double-one-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#double-one-fregexp-lookahead" - }, - { - "include": "#double-one-fregexp-lookahead-negative" - }, - { - "include": "#double-one-fregexp-lookbehind" - }, - { - "include": "#double-one-fregexp-lookbehind-negative" - }, - { - "include": "#double-one-fregexp-conditional" - }, - { - "include": "#double-one-fregexp-parentheses-non-capturing" - }, - { - "include": "#double-one-fregexp-parentheses" - } - ] - }, - "double-one-fregexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-one-fregexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "double-three-fregexp-expression": { - "patterns": [ - { - "include": "#fregexp-base-expression" - }, - { - "include": "#double-three-regexp-character-set" - }, - { - "include": "#double-three-regexp-comments" - }, - { - "include": "#regexp-flags" - }, - { - "include": "#double-three-regexp-named-group" - }, - { - "include": "#regexp-backreference" - }, - { - "include": "#double-three-fregexp-lookahead" - }, - { - "include": "#double-three-fregexp-lookahead-negative" - }, - { - "include": "#double-three-fregexp-lookbehind" - }, - { - "include": "#double-three-fregexp-lookbehind-negative" - }, - { - "include": "#double-three-fregexp-conditional" - }, - { - "include": "#double-three-fregexp-parentheses-non-capturing" - }, - { - "include": "#double-three-fregexp-parentheses" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-named-group": { - "name": "meta.named.regexp", - "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" - }, - "2": { - "name": "entity.name.tag.named.group.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-lookahead": { - "begin": "(\\()\\?=", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-lookahead-negative": { - "begin": "(\\()\\?!", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookahead.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookahead.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-lookbehind": { - "begin": "(\\()\\?<=", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-lookbehind-negative": { - "begin": "(\\()\\?<!", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.lookbehind.negative.regexp" - }, - "1": { - "name": "punctuation.parenthesis.lookbehind.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-conditional": { - "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "keyword.operator.conditional.regexp" - }, - "1": { - "name": "punctuation.parenthesis.conditional.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-parentheses-non-capturing": { - "begin": "\\(\\?:", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "double-three-fregexp-parentheses": { - "begin": "\\(", - "end": "(\\)|(?=\"\"\"))", - "beginCaptures": { - "0": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" - } - }, - "endCaptures": { - "1": { - "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - }, - { - "include": "#comments-string-double-three" - } - ] - }, - "fregexp-single-one-line": { - "name": "string.interpolated.python string.regexp.quoted.single.python", - "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\\')", - "end": "(\\')|(?<!\\\\)(\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-one-fregexp-expression" - } - ] - }, - "fregexp-single-three-line": { - "name": "string.interpolated.python string.regexp.quoted.multi.python", - "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\\'\\'\\')", - "end": "(\\'\\'\\')", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#single-three-fregexp-expression" - } - ] - }, - "fregexp-double-one-line": { - "name": "string.interpolated.python string.regexp.quoted.single.python", - "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\")", - "end": "(\")|(?<!\\\\)(\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-one-fregexp-expression" - } - ] - }, - "fregexp-double-three-line": { - "name": "string.interpolated.python string.regexp.quoted.multi.python", - "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\"\"\")", - "end": "(\"\"\")", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "storage.type.string.python" - }, - "5": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#double-three-fregexp-expression" - } - ] - }, - "string-raw-quoted-single-line": { - "name": "string.quoted.raw.single.python", - "begin": "\\b(([uU]R)|(R))((['\"]))", - "end": "(\\4)|((?<!\\\\)\\n)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-single-bad-brace1-formatting-raw" - }, - { - "include": "#string-single-bad-brace2-formatting-raw" - }, - { - "include": "#string-raw-guts" - } - ] - }, - "string-bin-quoted-single-line": { - "name": "string.quoted.binary.single.python", - "begin": "(\\b[bB])((['\"]))", - "end": "(\\2)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-entity" - } - ] - }, - "string-raw-bin-quoted-single-line": { - "name": "string.quoted.raw.binary.single.python", - "begin": "(\\b(?:R[bB]|[bB]R))((['\"]))", - "end": "(\\2)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-raw-bin-guts" - } - ] - }, - "string-quoted-single-line": { - "name": "string.quoted.single.python", - "begin": "(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))", - "end": "(\\3)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-single-bad-brace1-formatting-unicode" - }, - { - "include": "#string-single-bad-brace2-formatting-unicode" - }, - { - "include": "#string-unicode-guts" - } - ] - }, - "string-single-bad-brace1-formatting-unicode": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - } - ] - }, - "string-single-bad-brace1-formatting-raw": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#string-consume-escape" - } - ] - }, - "string-single-bad-brace2-formatting-unicode": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#string-entity" - } - ] - }, - "string-single-bad-brace2-formatting-raw": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", - "end": "(?=(['\"])|((?<!\\\\)\\n))", - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - } - ] - }, - "string-raw-quoted-multi-line": { - "name": "string.quoted.raw.multi.python", - "begin": "\\b(([uU]R)|(R))('''|\"\"\")", - "end": "(\\4)", - "beginCaptures": { - "2": { - "name": "invalid.deprecated.prefix.python" - }, - "3": { - "name": "storage.type.string.python" - }, - "4": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-multi-bad-brace1-formatting-raw" - }, - { - "include": "#string-multi-bad-brace2-formatting-raw" - }, - { - "include": "#string-raw-guts" - } - ] - }, - "string-bin-quoted-multi-line": { - "name": "string.quoted.binary.multi.python", - "begin": "(\\b[bB])('''|\"\"\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-entity" - } - ] - }, - "string-raw-bin-quoted-multi-line": { - "name": "string.quoted.raw.binary.multi.python", - "begin": "(\\b(?:R[bB]|[bB]R))('''|\"\"\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-raw-bin-guts" - } - ] - }, - "string-quoted-multi-line": { - "name": "string.quoted.multi.python", - "begin": "(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")", - "end": "(\\3)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#string-multi-bad-brace1-formatting-unicode" - }, - { - "include": "#string-multi-bad-brace2-formatting-unicode" - }, - { - "include": "#string-unicode-guts" - } - ] - }, - "string-multi-bad-brace1-formatting-unicode": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#escape-sequence" - }, - { - "include": "#string-line-continuation" - } - ] - }, - "string-multi-bad-brace1-formatting-raw": { - "comment": "template using {% ... %}", - "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#string-consume-escape" - } - ] - }, - "string-multi-bad-brace2-formatting-unicode": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#escape-sequence-unicode" - }, - { - "include": "#string-entity" - } - ] - }, - "string-multi-bad-brace2-formatting-raw": { - "comment": "odd format or format-like syntax", - "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", - "end": "(?='''|\"\"\")", - "patterns": [ - { - "include": "#string-consume-escape" - }, - { - "include": "#string-formatting" - } - ] - }, - "fstring-fnorm-quoted-single-line": { - "name": "meta.fstring.python", - "begin": "(\\b[fF])([bBuU])?((['\"]))", - "end": "(\\3)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" - }, - "2": { - "name": "invalid.illegal.prefix.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "include": "#fstring-single-core" - } - ] - }, - "fstring-normf-quoted-single-line": { - "name": "meta.fstring.python", - "begin": "(\\b[bBuU])([fF])((['\"]))", - "end": "(\\3)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.quoted.single.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "include": "#fstring-single-core" - } - ] - }, - "fstring-raw-quoted-single-line": { - "name": "meta.fstring.python", - "begin": "(\\b(?:[R][fF]|[fF][R]))((['\"]))", - "end": "(\\2)|((?<!\\\\)\\n)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.raw.single.python storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python string.quoted.raw.single.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-raw-guts" - }, - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "include": "#fstring-raw-single-core" - } - ] - }, - "fstring-single-core": { - "name": "string.interpolated.python string.quoted.single.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-raw-single-core": { - "name": "string.interpolated.python string.quoted.raw.single.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-single-brace": { - "comment": "value interpolation using { ... }", - "begin": "(\\{)", - "end": "(?x)\n (\\})|(?=\\n)\n", - "beginCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "patterns": [ - { - "include": "#fstring-terminator-single" - }, - { - "include": "#f-expression" - } - ] - }, - "fstring-terminator-single": { - "patterns": [ - { - "name": "storage.type.format.python", - "match": "(![rsa])(?=})" - }, - { - "match": "(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", - "captures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - } - }, - { - "include": "#fstring-terminator-single-tail" - } - ] - }, - "fstring-terminator-single-tail": { - "begin": "(![rsa])?(:)(?=.*?{)", - "end": "(?=})|(?=\\n)", - "beginCaptures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - }, - "patterns": [ - { - "include": "#fstring-illegal-single-brace" - }, - { - "include": "#fstring-single-brace" - }, - { - "name": "storage.type.format.python", - "match": "([bcdeEfFgGnosxX%])(?=})" - }, - { - "name": "storage.type.format.python", - "match": "(\\.\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(,)" - }, - { - "name": "storage.type.format.python", - "match": "(\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(\\#)" - }, - { - "name": "storage.type.format.python", - "match": "([-+ ])" - }, - { - "name": "storage.type.format.python", - "match": "([<>=^])" - }, - { - "name": "storage.type.format.python", - "match": "(\\w)" - } - ] - }, - "fstring-fnorm-quoted-multi-line": { - "name": "meta.fstring.python", - "begin": "(\\b[fF])([bBuU])?('''|\"\"\")", - "end": "(\\3)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" - }, - "2": { - "name": "invalid.illegal.prefix.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "include": "#fstring-multi-core" - } - ] - }, - "fstring-normf-quoted-multi-line": { - "name": "meta.fstring.python", - "begin": "(\\b[bBuU])([fF])('''|\"\"\")", - "end": "(\\3)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.prefix.python" - }, - "2": { - "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" - }, - "3": { - "name": "punctuation.definition.string.begin.python string.quoted.multi.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-guts" - }, - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "include": "#fstring-multi-core" - } - ] - }, - "fstring-raw-quoted-multi-line": { - "name": "meta.fstring.python", - "begin": "(\\b(?:[R][fF]|[fF][R]))('''|\"\"\")", - "end": "(\\2)", - "beginCaptures": { - "1": { - "name": "string.interpolated.python string.quoted.raw.multi.python storage.type.string.python" - }, - "2": { - "name": "punctuation.definition.string.begin.python string.quoted.raw.multi.python" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python" - }, - "2": { - "name": "invalid.illegal.newline.python" - } - }, - "patterns": [ - { - "include": "#fstring-raw-guts" - }, - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "include": "#fstring-raw-multi-core" - } - ] - }, - "fstring-multi-core": { - "name": "string.interpolated.python string.quoted.multi.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-raw-multi-core": { - "name": "string.interpolated.python string.quoted.raw.multi.python", - "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" - }, - "fstring-multi-brace": { - "comment": "value interpolation using { ... }", - "begin": "(\\{)", - "end": "(?x)\n (\\})\n", - "beginCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "endCaptures": { - "1": { - "name": "constant.character.format.placeholder.other.python" - } - }, - "patterns": [ - { - "include": "#fstring-terminator-multi" - }, - { - "include": "#f-expression" - } - ] - }, - "fstring-terminator-multi": { - "patterns": [ - { - "name": "storage.type.format.python", - "match": "(![rsa])(?=})" - }, - { - "match": "(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", - "captures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - } - }, - { - "include": "#fstring-terminator-multi-tail" - } - ] - }, - "fstring-terminator-multi-tail": { - "begin": "(![rsa])?(:)(?=.*?{)", - "end": "(?=})", - "beginCaptures": { - "1": { - "name": "storage.type.format.python" - }, - "2": { - "name": "storage.type.format.python" - } - }, - "patterns": [ - { - "include": "#fstring-illegal-multi-brace" - }, - { - "include": "#fstring-multi-brace" - }, - { - "name": "storage.type.format.python", - "match": "([bcdeEfFgGnosxX%])(?=})" - }, - { - "name": "storage.type.format.python", - "match": "(\\.\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(,)" - }, - { - "name": "storage.type.format.python", - "match": "(\\d+)" - }, - { - "name": "storage.type.format.python", - "match": "(\\#)" - }, - { - "name": "storage.type.format.python", - "match": "([-+ ])" - }, - { - "name": "storage.type.format.python", - "match": "([<>=^])" - }, - { - "name": "storage.type.format.python", - "match": "(\\w)" - } - ] - }, - "special-variables-types": { - "patterns": [ - { - "name": "variable.language.special.log.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n log )\\b\n" - }, - { - "name": "variable.language.special.msg.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n msg )\\b\n" - }, - { - "name": "variable.language.special.block.vyper", - "match": "(?x)\n (?<!\\.) \\b(\n block )\\b\n" - } - ] - }, - "reserved-names-vyper": { - "name": "name.reserved.vyper", - "match": "(?x)\n \\b (finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send) \\b\n" - } - } -} diff --git a/lib/grammars/wasm.tmLanguage.json b/lib/grammars/wasm.tmLanguage.json deleted file mode 100644 index 882bdb7..0000000 --- a/lib/grammars/wasm.tmLanguage.json +++ /dev/null @@ -1,830 +0,0 @@ -{ - "name": "wasm", - "scopeName": "source.wat", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#instructions" - }, - { - "include": "#types" - }, - { - "include": "#modules" - }, - { - "include": "#constants" - }, - { - "include": "#invalid" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "comment": "Line comment", - "name": "comment.line.wat", - "match": "(;;).*$", - "captures": { - "1": { - "name": "punctuation.definition.comment.wat" - } - } - }, - { - "comment": "Block comment", - "name": "comment.block.wat", - "begin": "\\(;", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.wat" - } - }, - "end": ";\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.wat" - } - } - } - ] - }, - "strings": { - "comment": "String literal", - "name": "string.quoted.double.wat", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "patterns": [ - { - "name": "constant.character.escape.wat", - "match": "\\\\(n|t|\\\\|'|\"|[0-9a-fA-F]{2})" - } - ] - }, - "instructions": { - "patterns": [ - { - "comment": "Non-trapping float-to-int conversions", - "patterns": [ - { - "comment": "Conversion instruction [nontrapping-float-to-int-conversions]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32|i64)\\.trunc_sat_f(?:32|64)_[su]\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - } - ] - }, - { - "comment": "Sign-extension operators", - "patterns": [ - { - "comment": "Numeric instruction (i32) [sign-extension-ops]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32)\\.(?:extend(?:8|16)_s)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Numeric instruction (i64) [sign-extension-ops]", - "name": "keyword.operator.word.wat", - "match": "\\b(i64)\\.(?:extend(?:8|16|32)_s)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - } - ] - }, - { - "comment": "Bulk memory operations", - "patterns": [ - { - "comment": "Memory instruction [bulk-memory-operations]", - "name": "keyword.operator.word.wat", - "match": "\\b(memory)\\.(?:copy|fill|init|drop)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - } - ] - }, - { - "comment": "Fixed-width SIMD", - "patterns": [ - { - "comment": "Vector instruction (v128) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(v128)\\.(?:const|and|or|xor|not|andnot|bitselect|load|store)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (i8x16) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(i8x16)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|narrow_i16x8_[su])\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (i16x8) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(i16x8)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|load8x8_[su]|narrow_i32x4_[su]|widen_(low|high)_i8x16_[su])\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (i32x4) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane|load16x4_[su]|trunc_sat_f32x4_[su]|widen_(low|high)_i16x8_[su])\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (i64x2) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(i64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|extract_lane|load32x2_[su])\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (f32x4) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(f32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt|convert_i32x4_[su])\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (f64x2) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(f64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (v8x16) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(v8x16)\\.(?:load_splat|shuffle|swizzle)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (v16x8) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(v16x8)\\.load_splat\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (v32x4) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(v32x4)\\.load_splat\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Vector instruction (v64x2) [simd]", - "name": "keyword.operator.word.wat", - "match": "\\b(v64x2)\\.load_splat\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - } - ] - }, - { - "comment": "Threads", - "patterns": [ - { - "comment": "Atomic instruction (i32) [threads]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32)\\.(atomic)\\.(?:load(?:8_u|16_u)?|store(?:8|16)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b", - "captures": { - "1": { - "name": "support.class.wat" - }, - "2": { - "name": "support.class.wat" - }, - "3": { - "name": "support.class.wat" - }, - "4": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Atomic instruction (i64) [threads]", - "name": "keyword.operator.word.wat", - "match": "\\b(i64)\\.(atomic)\\.(?:load(?:8_u|16_u|32_u)?|store(?:8|16|32)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16|rmw32)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b", - "captures": { - "1": { - "name": "support.class.wat" - }, - "2": { - "name": "support.class.wat" - }, - "3": { - "name": "support.class.wat" - }, - "4": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Atomic instruction [threads]", - "name": "keyword.operator.word.wat", - "match": "\\b(atomic)\\.(?:notify|fence)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Shared modifier [threads]", - "name": "storage.modifier.wat", - "match": "\\bshared\\b" - } - ] - }, - { - "comment": "Reference types", - "patterns": [ - { - "comment": "Reference instruction [reference-types]", - "name": "keyword.operator.word.wat", - "match": "\\b(ref)\\.(?:null|is_null|func|extern)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Table instruction [reference-types]", - "name": "keyword.operator.word.wat", - "match": "\\b(table)\\.(?:get|size|grow|fill|init|copy)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Type name [reference-types]", - "name": "entity.name.type.wat", - "match": "\\b(?:externref|funcref|nullref)\\b" - } - ] - }, - { - "comment": "Tail Call", - "patterns": [ - { - "comment": "Control instruction [tail-call]", - "name": "keyword.control.wat", - "match": "\\breturn_call(?:_indirect)?\\b" - } - ] - }, - { - "comment": "Exception handling", - "patterns": [ - { - "comment": "Control instruction [exception-handling]", - "name": "keyword.control.wat", - "match": "\\b(?:try|catch|throw|rethrow|br_on_exn)\\b" - }, - { - "comment": "Module element [exception-handling]", - "name": "storage.type.wat", - "match": "(?<=\\()event\\b" - } - ] - }, - { - "comment": "Binaryen extensions", - "patterns": [ - { - "comment": "Pseudo stack instruction [binaryen]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32|i64|f32|f64|externref|funcref|nullref|exnref)\\.(?:push|pop)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - } - ] - }, - { - "comment": "MVP", - "patterns": [ - { - "comment": "Memory instruction (i32) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32)\\.(?:load|load(?:8|16)(?:_[su])?|store(?:8|16)?)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Memory instruction (i64) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(i64)\\.(?:load|load(?:8|16|32)(?:_[su])?|store(?:8|16|32)?)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Memory instruction (f32/f64) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(f32|f64)\\.(?:load|store)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Memory instruction [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(memory)\\.(?:size|grow)\\b", - "captures": { - "1": { - "name": "support.class.memory.wat" - } - } - }, - { - "comment": "Memory instruction attribute [mvp]", - "match": "\\b(offset|align)=\\b", - "captures": { - "1": { - "name": "entity.other.attribute-name.wat" - } - } - }, - { - "comment": "Variable instruction (local) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(local)\\.(?:get|set|tee)\\b", - "captures": { - "1": { - "name": "support.class.local.wat" - } - } - }, - { - "comment": "Variable instruction (global) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(global)\\.(?:get|set)\\b", - "captures": { - "1": { - "name": "support.class.global.wat" - } - } - }, - { - "comment": "Numeric instruction (i32/i64) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32|i64)\\.(const|eqz|eq|ne|lt_[su]|gt_[su]|le_[su]|ge_[su]|clz|ctz|popcnt|add|sub|mul|div_[su]|rem_[su]|and|or|xor|shl|shr_[su]|rotl|rotr)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Numeric instruction (f32/f64) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(f32|f64)\\.(const|eq|ne|lt|gt|le|ge|abs|neg|ceil|floor|trunc|nearest|sqrt|add|sub|mul|div|min|max|copysign)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Conversion instruction (i32) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(i32)\\.(wrap_i64|trunc_(f32|f64)_[su]|reinterpret_f32)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Conversion instruction (i64) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(i64)\\.(extend_i32_[su]|trunc_f(32|64)_[su]|reinterpret_f64)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Conversion instruction (f32) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(f32)\\.(convert_i(32|64)_[su]|demote_f64|reinterpret_i32)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Conversion instruction (f64) [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(f64)\\.(convert_i(32|64)_[su]|promote_f32|reinterpret_i64)\\b", - "captures": { - "1": { - "name": "support.class.type.wat" - } - } - }, - { - "comment": "Control instruction [mvp]", - "name": "keyword.control.wat", - "match": "\\b(?:unreachable|nop|block|loop|if|then|else|end|br|br_if|br_table|return|call|call_indirect)\\b" - }, - { - "comment": "Parametric instruction [mvp]", - "name": "keyword.operator.word.wat", - "match": "\\b(?:drop|select)\\b" - } - ] - }, - { - "comment": "GC Instructions", - "patterns": [ - { - "comment": "Reference Instructions [GC]", - "name": "keyword.operator.word.wat", - "match": "\\b(ref)\\.(?:eq|test|cast)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Struct Instructions [GC]", - "name": "keyword.operator.word.wat", - "match": "\\b(struct)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Array Instructions [GC]", - "name": "keyword.operator.word.wat", - "match": "\\b(array)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set|len|new_canon_fixed|new_canon_data|new_canon_elem)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "i31 Instructions [GC]", - "name": "keyword.operator.word.wat", - "match": "\\b(i31)\\.(?:new|get_s|get_u)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Branch Instructions [GC]", - "name": "keyword.operator.word.wat", - "match": "\\b(?:br_on_non_null|br_on_cast|br_on_cast_fail)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - }, - { - "comment": "Reference Instructions [GC]", - "name": "keyword.operator.word.wat", - "match": "\\b(extern)\\.(?:internalize|externalize)\\b", - "captures": { - "1": { - "name": "support.class.wat" - } - } - } - ] - } - ] - }, - "types": { - "patterns": [ - { - "comment": "Fixed-width SIMD", - "patterns": [ - { - "comment": "Type name [simd]", - "name": "entity.name.type.wat", - "match": "\\bv128\\b(?!\\.)" - } - ] - }, - { - "comment": "Reference types", - "patterns": [ - { - "comment": "Type name [reference-types]", - "name": "entity.name.type.wat", - "match": "\\b(?:externref|funcref|nullref)\\b(?!\\.)" - } - ] - }, - { - "comment": "Exception handling", - "patterns": [ - { - "comment": "Type name [exception-handling]", - "name": "entity.name.type.wat", - "match": "\\bexnref\\b(?!\\.)" - } - ] - }, - { - "comment": "MVP", - "patterns": [ - { - "comment": "Type name [mvp]", - "name": "entity.name.type.wat", - "match": "\\b(?:i32|i64|f32|f64)\\b(?!\\.)" - } - ] - }, - { - "comment": "GC Types", - "patterns": [ - { - "comment": "Type name [GC]", - "name": "entity.name.type.wat", - "match": "\\b(?:i8|i16|ref|funcref|externref|anyref|eqref|i31ref|nullfuncref|nullexternref|structref|arrayref|nullref)\\b(?!\\.)" - } - ] - }, - { - "comment": "GC Heap Types", - "patterns": [ - { - "comment": "Type name [GC]", - "name": "entity.name.type.wat", - "match": "\\b(?:type|func|extern|any|eq|nofunc|noextern|struct|array|none)\\b(?!\\.)" - } - ] - }, - { - "comment": "GC Structured and sub Types", - "patterns": [ - { - "comment": "Type name [GC]", - "name": "entity.name.type.wat", - "match": "\\b(?:struct|array|sub|final|rec|field|mut)\\b(?!\\.)" - } - ] - } - ] - }, - "modules": { - "patterns": [ - { - "comment": "Bulk memory operations", - "patterns": [ - { - "comment": "Passive modifier [bulk-memory-operations]", - "match": "(?<=\\(data)\\s+(passive)\\b", - "captures": { - "1": { - "name": "storage.modifier.wat" - } - } - } - ] - }, - { - "comment": "MVP", - "patterns": [ - { - "comment": "Module element [mvp]", - "name": "storage.type.wat", - "match": "(?<=\\()(?:module|import|export|memory|data|table|elem|start|func|type|param|result|global|local)\\b" - }, - { - "comment": "Mutable global modifier [mvp]", - "name": "storage.modifier.wat", - "match": "(?<=\\()\\s*(mut)\\b", - "captures": { - "1": { - "name": "storage.modifier.wat" - } - } - }, - { - "comment": "Function name [mvp]", - "match": "(?<=\\(func|\\(start|call|return_call|ref\\.func)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)", - "captures": { - "1": { - "name": "entity.name.function.wat" - } - } - }, - { - "comment": "Function name(s) (elem) [mvp]", - "begin": "\\)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)", - "beginCaptures": { - "1": { - "name": "entity.name.function.wat" - } - }, - "end": "\\)", - "patterns": [ - { - "name": "entity.name.function.wat", - "match": "(?<=\\s)\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*" - } - ] - }, - { - "comment": "Function type [mvp]", - "match": "(?<=\\(type)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)", - "captures": { - "1": { - "name": "support.type.function.wat" - } - } - }, - { - "comment": "Variable name or branch label [mvp]", - "name": "variable.other.wat", - "match": "\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*\\b" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "comment": "Fixed-width SIMD", - "patterns": [ - { - "comment": "Vector literal (i8x16) [simd]", - "name": "constant.numeric.vector.wat", - "match": "\\b(i8x16)(?:\\s+0x[0-9a-fA-F]{1,2}){16}\\b", - "captures": { - "1": { - "name": "support.type.wat" - } - } - }, - { - "comment": "Vector literal (i16x8) [simd]", - "name": "constant.numeric.vector.wat", - "match": "\\b(i16x8)(?:\\s+0x[0-9a-fA-F]{1,4}){8}\\b", - "captures": { - "1": { - "name": "support.type.wat" - } - } - }, - { - "comment": "Vector literal (i32x4) [simd]", - "name": "constant.numeric.vector.wat", - "match": "\\b(i32x4)(?:\\s+0x[0-9a-fA-F]{1,8}){4}\\b", - "captures": { - "1": { - "name": "support.type.wat" - } - } - }, - { - "comment": "Vector literal (i64x2) [simd]", - "name": "constant.numeric.vector.wat", - "match": "\\b(i64x2)(?:\\s+0x[0-9a-fA-F]{1,16}){2}\\b", - "captures": { - "1": { - "name": "support.type.wat" - } - } - } - ] - }, - { - "comment": "MVP", - "patterns": [ - { - "comment": "Floating point literal", - "name": "constant.numeric.float.wat", - "match": "[+-]?\\b[0-9][0-9]*(?:\\.[0-9][0-9]*)?(?:[eE][+-]?[0-9]+)?\\b" - }, - { - "comment": "Floating point hexadecimal literal", - "name": "constant.numeric.float.wat", - "match": "[+-]?\\b0x([0-9a-fA-F]*\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\.?)[Pp][+-]?[0-9]+\\b" - }, - { - "comment": "Floating point infinity", - "name": "constant.numeric.float.wat", - "match": "[+-]?\\binf\\b" - }, - { - "comment": "Floating point literal (NaN)", - "name": "constant.numeric.float.wat", - "match": "[+-]?\\bnan:0x[0-9a-fA-F][0-9a-fA-F]*\\b" - }, - { - "comment": "Integer literal", - "name": "constant.numeric.integer.wat", - "match": "[+-]?\\b(?:0x[0-9a-fA-F][0-9a-fA-F]*|\\d[\\d]*)\\b" - } - ] - } - ] - }, - "invalid": { - "patterns": [ - { - "name": "invalid.wat", - "match": "[^\\s()]+" - } - ] - } - } -} diff --git a/lib/grammars/wenyan.tmLanguage.json b/lib/grammars/wenyan.tmLanguage.json deleted file mode 100644 index d2142ae..0000000 --- a/lib/grammars/wenyan.tmLanguage.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", - "scopeName": "source.wenyan", - "name": "wenyan", - "patterns": [ - { - "include": "#keywords" - }, - { - "include": "#constants" - }, - { - "include": "#operators" - }, - { - "include": "#symbols" - }, - { - "include": "#expression" - }, - { - "include": "#comment-blocks" - }, - { - "include": "#comment-lines" - } - ], - "repository": { - "expression": { - "patterns": [ - { - "include": "#variables" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "storage.type", - "match": "數|列|言|術|爻|物|元" - }, - { - "name": "keyword.control", - "match": "乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘" - }, - { - "name": "keyword.control", - "match": "或云|蓋謂" - }, - { - "name": "keyword.operator", - "match": "中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於" - }, - { - "name": "keyword.other", - "match": "不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈" - }, - { - "name": "keyword.control", - "match": "也|凡|遍|若|者|之|充|銜" - } - ] - }, - "comment-lines": { - "name": "comment.line", - "begin": "注曰|疏曰|批曰", - "end": "$", - "patterns": [ - { - "name": "constant.character", - "match": "\\\\." - } - ] - }, - "comment-blocks": { - "name": "comment.block", - "begin": "(注曰|疏曰|批曰)。?(「「|『)", - "end": "(」」|』)", - "patterns": [ - { - "name": "constant.character", - "match": "\\\\." - } - ] - }, - "constants": { - "patterns": [ - { - "name": "constant.numeric", - "match": "負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠" - }, - { - "name": "constant.language", - "match": "其|陰|陽" - }, - { - "name": "string.quoted", - "begin": "「「|『", - "end": "」」|』", - "patterns": [ - { - "name": "constant.character", - "match": "\\\\." - } - ] - } - ] - }, - "symbols": { - "patterns": [ - { - "name": "punctuation.separator", - "match": "。|、" - } - ] - }, - "variables": { - "name": "variable.other", - "begin": "「", - "end": "」", - "patterns": [ - { - "name": "constant.character", - "match": "\\\\." - } - ] - } - } -} diff --git a/lib/grammars/wgsl.tmLanguage.json b/lib/grammars/wgsl.tmLanguage.json deleted file mode 100644 index 86400f0..0000000 --- a/lib/grammars/wgsl.tmLanguage.json +++ /dev/null @@ -1,380 +0,0 @@ -{ - "name": "wgsl", - "scopeName": "source.wgsl", - "patterns": [ - { - "include": "#line_comments" - }, - { - "include": "#block_comments" - }, - { - "include": "#keywords" - }, - { - "include": "#attributes" - }, - { - "include": "#functions" - }, - { - "include": "#function_calls" - }, - { - "include": "#constants" - }, - { - "include": "#types" - }, - { - "include": "#variables" - }, - { - "include": "#punctuation" - } - ], - "repository": { - "line_comments": { - "comment": "single line comment", - "name": "comment.line.double-slash.wgsl", - "match": "\\s*//.*" - }, - "block_comments": { - "patterns": [ - { - "comment": "empty block comments", - "name": "comment.block.wgsl", - "match": "/\\*\\*/" - }, - { - "comment": "block documentation comments", - "name": "comment.block.documentation.wgsl", - "begin": "/\\*\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#block_comments" - } - ] - }, - { - "comment": "block comments", - "name": "comment.block.wgsl", - "begin": "/\\*(?!\\*)", - "end": "\\*/", - "patterns": [ - { - "include": "#block_comments" - } - ] - } - ] - }, - "attributes": { - "patterns": [ - { - "comment": "attribute declaration", - "name": "meta.attribute.wgsl", - "match": "(@)([A-Za-z_]+)", - "captures": { - "1": { - "name": "keyword.operator.attribute.at" - }, - "2": { - "name": "entity.name.attribute.wgsl" - } - } - } - ] - }, - "functions": { - "patterns": [ - { - "comment": "function definition", - "name": "meta.function.definition.wgsl", - "begin": "\\b(fn)\\s+([A-Za-z0-9_]+)((\\()|(<))", - "beginCaptures": { - "1": { - "name": "keyword.other.fn.wgsl" - }, - "2": { - "name": "entity.name.function.wgsl" - }, - "4": { - "name": "punctuation.brackets.round.wgsl" - } - }, - "end": "\\{", - "endCaptures": { - "0": { - "name": "punctuation.brackets.curly.wgsl" - } - }, - "patterns": [ - { - "include": "#line_comments" - }, - { - "include": "#block_comments" - }, - { - "include": "#keywords" - }, - { - "include": "#attributes" - }, - { - "include": "#function_calls" - }, - { - "include": "#constants" - }, - { - "include": "#types" - }, - { - "include": "#variables" - }, - { - "include": "#punctuation" - } - ] - } - ] - }, - "function_calls": { - "patterns": [ - { - "comment": "function/method calls", - "name": "meta.function.call.wgsl", - "begin": "([A-Za-z0-9_]+)(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.wgsl" - }, - "2": { - "name": "punctuation.brackets.round.wgsl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.brackets.round.wgsl" - } - }, - "patterns": [ - { - "include": "#line_comments" - }, - { - "include": "#block_comments" - }, - { - "include": "#keywords" - }, - { - "include": "#attributes" - }, - { - "include": "#function_calls" - }, - { - "include": "#constants" - }, - { - "include": "#types" - }, - { - "include": "#variables" - }, - { - "include": "#punctuation" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "comment": "decimal float literal", - "name": "constant.numeric.float.wgsl", - "match": "(-?\\b[0-9][0-9]*\\.[0-9][0-9]*)([eE][+-]?[0-9]+)?\\b" - }, - { - "comment": "int literal", - "name": "constant.numeric.decimal.wgsl", - "match": "-?\\b0x[0-9a-fA-F]+\\b|\\b0\\b|-?\\b[1-9][0-9]*\\b" - }, - { - "comment": "uint literal", - "name": "constant.numeric.decimal.wgsl", - "match": "\\b0x[0-9a-fA-F]+u\\b|\\b0u\\b|\\b[1-9][0-9]*u\\b" - }, - { - "comment": "boolean constant", - "name": "constant.language.boolean.wgsl", - "match": "\\b(true|false)\\b" - } - ] - }, - "types": { - "comment": "types", - "name": "storage.type.wgsl", - "patterns": [ - { - "comment": "scalar Types", - "name": "storage.type.wgsl", - "match": "\\b(bool|i32|u32|f32)\\b" - }, - { - "comment": "reserved scalar Types", - "name": "storage.type.wgsl", - "match": "\\b(i64|u64|f64)\\b" - }, - { - "comment": "vector/matrix types", - "name": "storage.type.wgsl", - "match": "\\b(vec[2-4]|mat[2-4]x[2-4])\\b" - }, - { - "comment": "atomic types", - "name": "storage.type.wgsl", - "match": "\\b(atomic)\\b" - }, - { - "comment": "array types", - "name": "storage.type.wgsl", - "match": "\\b(array)\\b" - }, - { - "comment": "Custom type", - "name": "entity.name.type.wgsl", - "match": "\\b([A-Z][A-Za-z0-9]*)\\b" - } - ] - }, - "variables": { - "patterns": [ - { - "comment": "variables", - "name": "variable.other.wgsl", - "match": "\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b" - } - ] - }, - "punctuation": { - "patterns": [ - { - "comment": "comma", - "name": "punctuation.comma.wgsl", - "match": "," - }, - { - "comment": "curly braces", - "name": "punctuation.brackets.curly.wgsl", - "match": "[{}]" - }, - { - "comment": "parentheses, round brackets", - "name": "punctuation.brackets.round.wgsl", - "match": "[()]" - }, - { - "comment": "semicolon", - "name": "punctuation.semi.wgsl", - "match": ";" - }, - { - "comment": "square brackets", - "name": "punctuation.brackets.square.wgsl", - "match": "[\\[\\]]" - }, - { - "comment": "angle brackets", - "name": "punctuation.brackets.angle.wgsl", - "match": "(?<![=-])[<>]" - } - ] - }, - "keywords": { - "patterns": [ - { - "comment": "other keywords", - "name": "keyword.control.wgsl", - "match": "\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\b" - }, - { - "comment": "reserved keywords", - "name": "keyword.control.wgsl", - "match": "\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\b" - }, - { - "comment": "storage keywords", - "name": "keyword.other.wgsl storage.type.wgsl", - "match": "\\b(let|var)\\b" - }, - { - "comment": "type keyword", - "name": "keyword.declaration.type.wgsl storage.type.wgsl", - "match": "\\b(type)\\b" - }, - { - "comment": "enum keyword", - "name": "keyword.declaration.enum.wgsl storage.type.wgsl", - "match": "\\b(enum)\\b" - }, - { - "comment": "struct keyword", - "name": "keyword.declaration.struct.wgsl storage.type.wgsl", - "match": "\\b(struct)\\b" - }, - { - "comment": "fn", - "name": "keyword.other.fn.wgsl", - "match": "\\bfn\\b" - }, - { - "comment": "logical operators", - "name": "keyword.operator.logical.wgsl", - "match": "(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)" - }, - { - "comment": "logical AND, borrow references", - "name": "keyword.operator.borrow.and.wgsl", - "match": "&(?![&=])" - }, - { - "comment": "assignment operators", - "name": "keyword.operator.assignment.wgsl", - "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)" - }, - { - "comment": "single equal", - "name": "keyword.operator.assignment.equal.wgsl", - "match": "(?<![<>])=(?!=|>)" - }, - { - "comment": "comparison operators", - "name": "keyword.operator.comparison.wgsl", - "match": "(=(=)?(?!>)|!=|<=|(?<!=)>=)" - }, - { - "comment": "math operators", - "name": "keyword.operator.math.wgsl", - "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" - }, - { - "comment": "dot access", - "name": "keyword.operator.access.dot.wgsl", - "match": "\\.(?!\\.)" - }, - { - "comment": "dashrocket, skinny arrow", - "name": "keyword.operator.arrow.skinny.wgsl", - "match": "->" - } - ] - } - } -} diff --git a/lib/grammars/wolfram.tmLanguage.json b/lib/grammars/wolfram.tmLanguage.json deleted file mode 100644 index e5d05c9..0000000 --- a/lib/grammars/wolfram.tmLanguage.json +++ /dev/null @@ -1,2363 +0,0 @@ -{ - "name": "wolfram", - "scopeName": "source.wolfram", - "fileTypes": ["wl", "m", "wls", "wlt", "mt"], - "patterns": [ - { - "include": "#main" - } - ], - "repository": { - "main": { - "patterns": [ - { - "include": "#shebang" - }, - { - "include": "#simple-toplevel-definitions" - }, - { - "include": "#expressions" - } - ] - }, - "shebang": { - "name": "comment.line.shebang.wolfram", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.wolfram" - } - } - }, - "simple-toplevel-definitions": { - "patterns": [ - { - "match": "^\\s*(Attributes|Format|Options)\\s*(\\[)(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(\\])\\s*(:=|=(?!!|=|\\.))", - "captures": { - "1": { - "name": "support.function.builtin.wolfram" - }, - "2": { - "name": "punctuation.section.brackets.begin.wolfram" - }, - "3": { - "name": "meta.function.wolfram entity.name.Context.wolfram" - }, - "4": { - "name": "meta.function.wolfram entity.name.function.wolfram" - }, - "5": { - "name": "punctuation.section.brackets.end.wolfram" - }, - "6": { - "name": "keyword.operator.assignment.wolfram" - } - } - }, - { - "match": "^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(\\[(?>[^\\[\\]]+|\\g<-1>)*\\])\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))", - "captures": { - "1": { - "name": "meta.function.wolfram entity.name.Context.wolfram" - }, - "2": { - "name": "meta.function.wolfram entity.name.function.wolfram" - } - } - }, - { - "match": "^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))", - "captures": { - "1": { - "name": "meta.function.wolfram entity.name.Context.wolfram" - }, - "2": { - "name": "meta.function.wolfram entity.name.constant.wolfram" - } - } - } - ] - }, - "expressions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#escaped_character_symbols" - }, - { - "include": "#escaped_characters" - }, - { - "include": "#out" - }, - { - "include": "#slot" - }, - { - "include": "#literals" - }, - { - "include": "#groups" - }, - { - "include": "#stringifying-operators" - }, - { - "include": "#operators" - }, - { - "include": "#pattern-operators" - }, - { - "include": "#symbols" - }, - { - "match": "(?:!|&|'|\\*|\\+|,|-|\\.|/|:|;|<|=|>|\\?|@|\\\\|\\^|\\||~)", - "name": "invalid.illegal" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.block", - "begin": "\\(\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.wolfram" - } - }, - "end": "\\*\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.wolfram" - } - }, - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "match": "\\*\\)", - "name": "invalid.illegal.stray-comment-end.wolfram" - } - ] - }, - "escaped_character_symbols": { - "patterns": [ - { - "match": "System`\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "\\\\\\[(?:D(?:egree))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "\\\\\\[(?:E(?:xponentialE))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "\\\\\\[(?:I(?:maginaryI|maginaryJ|nfinity))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "\\\\\\[(?:P(?:i))\\](?![`$[:alnum:]])", - "name": "constant.language.wolfram" - } - ] - }, - "escaped_characters": { - "patterns": [ - { - "match": "\\\\[!%&()*+/@^_` ]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:A(?:kuz|ndy))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:C(?:ontinuedFractionK|url))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:D(?:ivergence|ivisionSlash))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:E(?:xpectationE))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:F(?:reeformPrompt))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:G(?:radient))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:L(?:aplacian))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:M(?:inus|oon))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:N(?:umberComma))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:P(?:ageBreakAbove|ageBreakBelow|robabilityPr))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:S(?:pooky|tepperDown|tepperLeft|tepperRight|tepperUp|un))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:U(?:nknownGlyph))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:V(?:illa))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:W(?:olframAlphaPrompt))\\]", - "name": "donothighlight.constant.character.escape.undocumented" - }, - { - "match": "\\\\\\[(?:C(?:OMPATIBILITYKanjiSpace|OMPATIBILITYNoBreak))\\]", - "name": "invalid.illegal.unsupported" - }, - { - "match": "\\\\\\[(?:I(?:nlinePart))\\]", - "name": "invalid.illegal.unsupported" - }, - { - "match": "\\\\\\[(?:A(?:Acute|Bar|Cup|DoubleDot|E|Grave|Hat|Ring|Tilde|leph|liasDelimiter|liasIndicator|lignmentMarker|lpha|ltKey|nd|ngle|ngstrom|pplication|quariusSign|riesSign|scendingEllipsis|utoLeftMatch|utoOperand|utoPlaceholder|utoRightMatch|utoSpace))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:B(?:ackslash|eamedEighthNote|eamedSixteenthNote|ecause|et|eta|lackBishop|lackKing|lackKnight|lackPawn|lackQueen|lackRook|reve|ullet))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:C(?:Acute|Cedilla|Hacek|ancerSign|ap|apitalAAcute|apitalABar|apitalACup|apitalADoubleDot|apitalAE|apitalAGrave|apitalAHat|apitalARing|apitalATilde|apitalAlpha|apitalBeta|apitalCAcute|apitalCCedilla|apitalCHacek|apitalChi|apitalDHacek|apitalDelta|apitalDifferentialD|apitalDigamma|apitalEAcute|apitalEBar|apitalECup|apitalEDoubleDot|apitalEGrave|apitalEHacek|apitalEHat|apitalEpsilon|apitalEta|apitalEth|apitalGamma|apitalIAcute|apitalICup|apitalIDoubleDot|apitalIGrave|apitalIHat|apitalIota|apitalKappa|apitalKoppa|apitalLSlash|apitalLambda|apitalMu|apitalNHacek|apitalNTilde|apitalNu|apitalOAcute|apitalODoubleAcute|apitalODoubleDot|apitalOE|apitalOGrave|apitalOHat|apitalOSlash|apitalOTilde|apitalOmega|apitalOmicron|apitalPhi|apitalPi|apitalPsi|apitalRHacek|apitalRho|apitalSHacek|apitalSampi|apitalSigma|apitalStigma|apitalTHacek|apitalTau|apitalTheta|apitalThorn|apitalUAcute|apitalUDoubleAcute|apitalUDoubleDot|apitalUGrave|apitalUHat|apitalURing|apitalUpsilon|apitalXi|apitalYAcute|apitalZHacek|apitalZeta|apricornSign|edilla|ent|enterDot|enterEllipsis|heckedBox|heckmark|heckmarkedBox|hi|ircleDot|ircleMinus|irclePlus|ircleTimes|lockwiseContourIntegral|loseCurlyDoubleQuote|loseCurlyQuote|loverLeaf|lubSuit|olon|ommandKey|onditioned|ongruent|onjugate|onjugateTranspose|onstantC|ontinuation|ontourIntegral|ontrolKey|oproduct|opyright|ounterClockwiseContourIntegral|ross|ubeRoot|up|upCap|urlyCapitalUpsilon|urlyEpsilon|urlyKappa|urlyPhi|urlyPi|urlyRho|urlyTheta|urrency))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:D(?:Hacek|agger|alet|ash|egree|el|eleteKey|elta|escendingEllipsis|iameter|iamond|iamondSuit|ifferenceDelta|ifferentialD|igamma|irectedEdge|iscreteRatio|iscreteShift|iscretionaryHyphen|iscretionaryLineSeparator|iscretionaryPageBreakAbove|iscretionaryPageBreakBelow|iscretionaryParagraphSeparator|istributed|ivide|ivides|otEqual|otlessI|otlessJ|ottedSquare|oubleContourIntegral|oubleDagger|oubleDot|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oublePrime|oubleRightArrow|oubleRightTee|oubleStruckA|oubleStruckB|oubleStruckC|oubleStruckCapitalA|oubleStruckCapitalB|oubleStruckCapitalC|oubleStruckCapitalD|oubleStruckCapitalE|oubleStruckCapitalF|oubleStruckCapitalG|oubleStruckCapitalH|oubleStruckCapitalI|oubleStruckCapitalJ|oubleStruckCapitalK|oubleStruckCapitalL|oubleStruckCapitalM|oubleStruckCapitalN|oubleStruckCapitalO|oubleStruckCapitalP|oubleStruckCapitalQ|oubleStruckCapitalR|oubleStruckCapitalS|oubleStruckCapitalT|oubleStruckCapitalU|oubleStruckCapitalV|oubleStruckCapitalW|oubleStruckCapitalX|oubleStruckCapitalY|oubleStruckCapitalZ|oubleStruckD|oubleStruckE|oubleStruckEight|oubleStruckF|oubleStruckFive|oubleStruckFour|oubleStruckG|oubleStruckH|oubleStruckI|oubleStruckJ|oubleStruckK|oubleStruckL|oubleStruckM|oubleStruckN|oubleStruckNine|oubleStruckO|oubleStruckOne|oubleStruckP|oubleStruckQ|oubleStruckR|oubleStruckS|oubleStruckSeven|oubleStruckSix|oubleStruckT|oubleStruckThree|oubleStruckTwo|oubleStruckU|oubleStruckV|oubleStruckW|oubleStruckX|oubleStruckY|oubleStruckZ|oubleStruckZero|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|oubledGamma|oubledPi|ownArrow|ownArrowBar|ownArrowUpArrow|ownBreve|ownExclamation|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownPointer|ownQuestion|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:E(?:Acute|Bar|Cup|DoubleDot|Grave|Hacek|Hat|arth|ighthNote|lement|llipsis|mptyCircle|mptyDiamond|mptyDownTriangle|mptyRectangle|mptySet|mptySmallCircle|mptySmallSquare|mptySquare|mptyUpTriangle|mptyVerySmallSquare|nterKey|ntityEnd|ntityStart|psilon|qual|qualTilde|quilibrium|quivalent|rrorIndicator|scapeKey|ta|th|uro|xists|xponentialE))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:F(?:iLigature|illedCircle|illedDiamond|illedDownTriangle|illedLeftTriangle|illedRectangle|illedRightTriangle|illedSmallCircle|illedSmallSquare|illedSquare|illedUpTriangle|illedVerySmallSquare|inalSigma|irstPage|ivePointedStar|lLigature|lat|lorin|orAll|ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta|reakedSmiley|unction))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:G(?:amma|eminiSign|imel|othicA|othicB|othicC|othicCapitalA|othicCapitalB|othicCapitalC|othicCapitalD|othicCapitalE|othicCapitalF|othicCapitalG|othicCapitalH|othicCapitalI|othicCapitalJ|othicCapitalK|othicCapitalL|othicCapitalM|othicCapitalN|othicCapitalO|othicCapitalP|othicCapitalQ|othicCapitalR|othicCapitalS|othicCapitalT|othicCapitalU|othicCapitalV|othicCapitalW|othicCapitalX|othicCapitalY|othicCapitalZ|othicD|othicE|othicEight|othicF|othicFive|othicFour|othicG|othicH|othicI|othicJ|othicK|othicL|othicM|othicN|othicNine|othicO|othicOne|othicP|othicQ|othicR|othicS|othicSeven|othicSix|othicT|othicThree|othicTwo|othicU|othicV|othicW|othicX|othicY|othicZ|othicZero|rayCircle|raySquare|reaterEqual|reaterEqualLess|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterTilde))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:H(?:Bar|acek|appySmiley|eartSuit|ermitianConjugate|orizontalLine|umpDownHump|umpEqual|yphen))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:I(?:Acute|Cup|DoubleDot|Grave|Hat|maginaryI|maginaryJ|mplicitPlus|mplies|ndentingNewLine|nfinity|ntegral|ntersection|nvisibleApplication|nvisibleComma|nvisiblePostfixScriptBase|nvisiblePrefixScriptBase|nvisibleSpace|nvisibleTimes|ota))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:J(?:upiter))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:K(?:appa|ernelIcon|eyBar|oppa))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:L(?:Slash|ambda|astPage|eftAngleBracket|eftArrow|eftArrowBar|eftArrowRightArrow|eftAssociation|eftBracketingBar|eftCeiling|eftDoubleBracket|eftDoubleBracketingBar|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftFloor|eftGuillemet|eftModified|eftPointer|eftRightArrow|eftRightVector|eftSkeleton|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|eoSign|essEqual|essEqualGreater|essFullEqual|essGreater|essLess|essSlantEqual|essTilde|etterSpace|ibraSign|ightBulb|imit|ineSeparator|ongDash|ongEqual|ongLeftArrow|ongLeftRightArrow|ongRightArrow|owerLeftArrow|owerRightArrow))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:M(?:ars|athematicaIcon|axLimit|easuredAngle|ediumSpace|ercury|ho|icro|inLimit|inusPlus|od1Key|od2Key|u))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:N(?:Hacek|Tilde|and|atural|egativeMediumSpace|egativeThickSpace|egativeThinSpace|egativeVeryThinSpace|eptune|estedGreaterGreater|estedLessLess|eutralSmiley|ewLine|oBreak|onBreakingSpace|or|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqual|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|u|ull|umberSign))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:O(?:Acute|DoubleAcute|DoubleDot|E|Grave|Hat|Slash|Tilde|mega|micron|penCurlyDoubleQuote|penCurlyQuote|ptionKey|r|verBrace|verBracket|verParenthesis))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:P(?:aragraph|aragraphSeparator|artialD|ermutationProduct|erpendicular|hi|i|iecewise|iscesSign|laceholder|lusMinus|luto|recedes|recedesEqual|recedesSlantEqual|recedesTilde|rime|roduct|roportion|roportional|si))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:Q(?:uarterNote))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:R(?:Hacek|awAmpersand|awAt|awBackquote|awBackslash|awColon|awComma|awDash|awDollar|awDot|awDoubleQuote|awEqual|awEscape|awExclamation|awGreater|awLeftBrace|awLeftBracket|awLeftParenthesis|awLess|awNumberSign|awPercent|awPlus|awQuestion|awQuote|awReturn|awRightBrace|awRightBracket|awRightParenthesis|awSemicolon|awSlash|awSpace|awStar|awTab|awTilde|awUnderscore|awVerticalBar|awWedge|egisteredTrademark|eturnIndicator|eturnKey|everseDoublePrime|everseElement|everseEquilibrium|eversePrime|everseUpEquilibrium|ho|ightAngle|ightAngleBracket|ightArrow|ightArrowBar|ightArrowLeftArrow|ightAssociation|ightBracketingBar|ightCeiling|ightDoubleBracket|ightDoubleBracketingBar|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightFloor|ightGuillemet|ightModified|ightPointer|ightSkeleton|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|oundImplies|oundSpaceIndicator|ule|uleDelayed|upee))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:S(?:Hacek|Z|adSmiley|agittariusSign|ampi|aturn|corpioSign|criptA|criptB|criptC|criptCapitalA|criptCapitalB|criptCapitalC|criptCapitalD|criptCapitalE|criptCapitalF|criptCapitalG|criptCapitalH|criptCapitalI|criptCapitalJ|criptCapitalK|criptCapitalL|criptCapitalM|criptCapitalN|criptCapitalO|criptCapitalP|criptCapitalQ|criptCapitalR|criptCapitalS|criptCapitalT|criptCapitalU|criptCapitalV|criptCapitalW|criptCapitalX|criptCapitalY|criptCapitalZ|criptD|criptDotlessI|criptDotlessJ|criptE|criptEight|criptF|criptFive|criptFour|criptG|criptH|criptI|criptJ|criptK|criptL|criptM|criptN|criptNine|criptO|criptOne|criptP|criptQ|criptR|criptS|criptSeven|criptSix|criptT|criptThree|criptTwo|criptU|criptV|criptW|criptX|criptY|criptZ|criptZero|ection|electionPlaceholder|hah|harp|hiftKey|hortDownArrow|hortLeftArrow|hortRightArrow|hortUpArrow|igma|ixPointedStar|keletonIndicator|mallCircle|paceIndicator|paceKey|padeSuit|panFromAbove|panFromBoth|panFromLeft|phericalAngle|qrt|quare|quareIntersection|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|tar|terling|tigma|ubset|ubsetEqual|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uchThat|um|uperset|upersetEqual|ystemEnterKey|ystemsModelDelay))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:T(?:Hacek|abKey|au|aurusSign|ensorProduct|ensorWedge|herefore|heta|hickSpace|hinSpace|horn|ilde|ildeEqual|ildeFullEqual|ildeTilde|imes|rademark|ranspose|ripleDot|woWayRule))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:U(?:Acute|DoubleAcute|DoubleDot|Grave|Hat|Ring|nderBrace|nderBracket|nderParenthesis|ndirectedEdge|nion|nionPlus|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pPointer|pTee|pTeeArrow|pperLeftArrow|pperRightArrow|psilon|ranus))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:V(?:ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ee|enus|erticalBar|erticalEllipsis|erticalLine|erticalSeparator|erticalTilde|eryThinSpace|irgoSign))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:W(?:arningSign|atchIcon|edge|eierstrassP|hiteBishop|hiteKing|hiteKnight|hitePawn|hiteQueen|hiteRook|olf|olframLanguageLogo|olframLanguageLogoCircle))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:X(?:i|nor|or))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:Y(?:Acute|DoubleDot|en))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:Z(?:Hacek|eta))\\]", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\[(?:[$[:alpha:]][$[:alnum:]]*)?\\]?", - "name": "invalid.illegal.BadLongName" - }, - { - "match": "\\\\(?:[$[:alpha:]][$[:alnum:]]*)\\]", - "name": "invalid.illegal.BadLongName" - }, - { - "match": "\\\\:\\h{4}", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\:\\h{1,3}", - "name": "invalid.illegal" - }, - { - "match": "\\\\\\.\\h{2}", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\.\\h{1}", - "name": "invalid.illegal" - }, - { - "match": "\\\\\\|0\\h{5}", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\|10\\h{4}", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\\\|\\h{1,6}", - "name": "invalid.illegal" - }, - { - "match": "\\\\[0-7]{3}", - "name": "donothighlight.constant.character.escape" - }, - { - "match": "\\\\[0-7]{1,2}", - "name": "invalid.illegal" - }, - { - "match": "\\\\$", - "name": "donothighlight.constant.character.escape punctuation.separator.continuation" - }, - { - "match": "\\\\.", - "name": "invalid.illegal" - } - ] - }, - "string_escaped_characters": { - "patterns": [ - { - "match": "\\\\[bfnrt\\\"\\\\<>]", - "name": "donothighlight.constant.character.escape" - }, - { - "include": "#escaped_characters" - } - ] - }, - "literals": { - "patterns": [ - { - "include": "#numbers" - }, - { - "include": "#strings" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", - "name": "constant.numeric.wolfram" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)``", - "name": "invalid.illegal" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "2\\^\\^", - "name": "invalid.illegal" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", - "name": "constant.numeric.wolfram" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)``", - "name": "invalid.illegal" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "8\\^\\^", - "name": "invalid.illegal" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", - "name": "constant.numeric.wolfram" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)``", - "name": "invalid.illegal" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "16\\^\\^", - "name": "invalid.illegal" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", - "name": "constant.numeric.wolfram" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)``", - "name": "invalid.illegal" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:\\*\\^(?:-|\\+)?+\\d+)", - "name": "constant.numeric.wolfram" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)\\*\\^", - "name": "invalid.illegal" - }, - { - "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)", - "name": "constant.numeric.wolfram" - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.double", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end" - } - }, - "patterns": [ - { - "include": "#string_escaped_characters" - } - ] - } - ] - }, - "stringifying-operators": { - "patterns": [ - { - "match": "(>>>)(?=\\s*\")", - "captures": { - "1": { - "name": "keyword.operator.PutAppend.wolfram" - } - } - }, - { - "match": "(>>>)\\s*(\\w+)", - "captures": { - "1": { - "name": "keyword.operator.PutAppend.wolfram" - }, - "2": { - "name": "string.unquoted.wolfram" - } - } - }, - { - "match": ">>>", - "name": "invalid.illegal" - }, - { - "match": "(::)(?=\\s*\")", - "captures": { - "1": { - "name": "keyword.operator.MessageName.wolfram" - } - } - }, - { - "match": "(::)([[:alpha:]][[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.MessageName.wolfram" - }, - "2": { - "name": "string.unquoted.wolfram" - } - } - }, - { - "match": "::", - "name": "invalid.illegal" - }, - { - "match": "(<<)(?=\\s*\")", - "captures": { - "1": { - "name": "keyword.operator.Get.wolfram" - } - } - }, - { - "match": "(<<)\\s*([`[:alpha:]][`[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.operator.Get.wolfram" - }, - "2": { - "name": "string.unquoted.wolfram" - } - } - }, - { - "match": "<<", - "name": "invalid.illegal" - }, - { - "match": "(>>)(?=\\s*\")", - "captures": { - "1": { - "name": "keyword.operator.Put.wolfram" - } - } - }, - { - "match": "(>>)\\s*(\\w*)", - "captures": { - "1": { - "name": "keyword.operator.Put.wolfram" - }, - "2": { - "name": "string.unquoted.wolfram" - } - } - }, - { - "match": ">>", - "name": "invalid.illegal" - } - ] - }, - "operators": { - "patterns": [ - { - "match": "(?:\\^:=)", - "name": "keyword.operator.assignment.UpSetDelayed.wolfram" - }, - { - "match": "(?:\\^:)", - "name": "invalid.illegal" - }, - { - "match": "(?:===)", - "name": "keyword.operator.SameQ.wolfram" - }, - { - "match": "(?:=!=|\\.\\.\\.|//\\.|@@@|<->|//@)", - "name": "keyword.operator.wolfram" - }, - { - "match": "(?:\\|->)", - "name": "keyword.operator.Function.wolfram" - }, - { - "match": "(?://=)", - "name": "keyword.operator.assignment.ApplyTo.wolfram" - }, - { - "match": "(?:--|\\+\\+)", - "name": "keyword.operator.arithmetic.wolfram" - }, - { - "match": "(?:\\|\\||&&)", - "name": "keyword.operator.logical.wolfram" - }, - { - "match": "(?::=)", - "name": "keyword.operator.assignment.SetDelayed.wolfram" - }, - { - "match": "(?:\\^=)", - "name": "keyword.operator.assignment.UpSet.wolfram" - }, - { - "match": "(?:/=)", - "name": "keyword.operator.assignment.DivideBy.wolfram" - }, - { - "match": "(?:\\+=)", - "name": "keyword.operator.assignment.AddTo.wolfram" - }, - { - "match": "(?:=\\s+\\.(?![0-9]))", - "name": "invalid.whitespace.Unset.wolfram" - }, - { - "match": "(?:=\\.(?![0-9]))", - "name": "keyword.operator.assignment.Unset.wolfram" - }, - { - "match": "(?:\\*=)", - "name": "keyword.operator.assignment.TimesBy.wolfram" - }, - { - "match": "(?:-=)", - "name": "keyword.operator.assignment.SubtractFrom.wolfram" - }, - { - "match": "(?:/:)", - "name": "keyword.operator.assignment.Tag.wolfram" - }, - { - "match": "(?:;;)$", - "name": "invalid.endofline.Span.wolfram" - }, - { - "match": "(?:;;)", - "name": "keyword.operator.Span.wolfram" - }, - { - "match": "(?:!=)", - "name": "keyword.operator.Unequal.wolfram" - }, - { - "match": "(?:==)", - "name": "keyword.operator.Equal.wolfram" - }, - { - "match": "(?:!!)", - "name": "keyword.operator.BangBang.wolfram" - }, - { - "match": "(?:\\?\\?)", - "name": "invalid.illegal.Information.wolfram" - }, - { - "match": "(?:<=|>=|\\.\\.|:>|<>|->|/@|/;|/\\.|//|/\\*|@@|@\\*|~~|\\*\\*)", - "name": "keyword.operator.wolfram" - }, - { - "match": "(?:-|\\+|/|\\*)", - "name": "keyword.operator.arithmetic.wolfram" - }, - { - "match": "(?:=)", - "name": "keyword.operator.assignment.Set.wolfram" - }, - { - "match": "(?:<)", - "name": "keyword.operator.Less.wolfram" - }, - { - "match": "(?:\\|)", - "name": "keyword.operator.Alternatives.wolfram" - }, - { - "match": "(?:!)", - "name": "keyword.operator.Bang.wolfram" - }, - { - "match": "(?:;)", - "name": "keyword.operator.CompoundExpression.wolfram punctuation.terminator" - }, - { - "match": "(?:,)", - "name": "keyword.operator.Comma.wolfram punctuation.separator" - }, - { - "match": "^(?:\\?)", - "name": "invalid.startofline.Information.wolfram" - }, - { - "match": "(?:\\?)", - "name": "keyword.operator.PatternTest.wolfram" - }, - { - "match": "(?:')", - "name": "keyword.operator.Derivative.wolfram" - }, - { - "match": "(?:&)", - "name": "keyword.operator.Function.wolfram" - }, - { - "match": "(?:>|\\^|\\.|:|@|~)", - "name": "keyword.operator.wolfram" - } - ] - }, - "symbols": { - "patterns": [ - { - "match": "System`(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "System`(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:J(?:oined))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:Q(?:uartics))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:K(?:hinchin))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:Y(?:ellow|esterday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "System`(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:O(?:penTemporary))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "System`(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "System`(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "System`(?:E(?:cho|xit))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "System`(?:I(?:n|nString))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "System`(?:O(?:ut))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "System`(?:P(?:rint))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "System`(?:Q(?:uit))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "System`(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "System`(?:[$[:alpha:]][$[:alnum:]]*)(?![`$[:alnum:]])", - "name": "invalid.illegal.system.wolfram" - }, - { - "match": "(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))", - "name": "variable.function.wolfram" - }, - { - "match": "(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+", - "name": "symbol.unrecognized.wolfram" - }, - { - "match": "(?:[$[:alpha:]][$[:alnum:]]*)`", - "name": "invalid.illegal.wolfram" - }, - { - "match": "(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))", - "name": "variable.function.wolfram" - }, - { - "match": "(?:`(?:[$[:alpha:]][$[:alnum:]]*))+", - "name": "symbol.unrecognized.wolfram" - }, - { - "match": "`", - "name": "invalid.illegal.wolfram" - }, - { - "match": "(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])", - "name": "support.function.builtin.wolfram" - }, - { - "match": "(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:J(?:oined))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:Q(?:uartics))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:K(?:hinchin))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:Y(?:ellow|esterday))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])", - "name": "constant.language.wolfram" - }, - { - "match": "(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:O(?:penTemporary))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])", - "name": "invalid.deprecated.wolfram" - }, - { - "match": "(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])", - "name": "support.function.undocumented.wolfram" - }, - { - "match": "(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])", - "name": "support.function.experimental.wolfram" - }, - { - "match": "(?:A(?:llFalse|nyFalse))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:B(?:oolean))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:C(?:loudbase|omplexQ))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:D(?:ataSet))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:E(?:xpandFilename|xportPacket))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:F(?:ailed|alseQ))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:I(?:nterpolationFunction|nterpolationPolynomial))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:M(?:atch))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:O(?:ptionPattern|ptionsQ))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:R(?:ationalQ|ealQ))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:S(?:tringMatch|ymbolQ))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:U(?:nSameQ|rlExecute))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:\\$(?:PathNameSeparator|RegisteredUsername))(?![`$[:alnum:]])", - "name": "invalid.bad.wolfram" - }, - { - "match": "(?:E(?:cho|xit))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "(?:I(?:n|nString))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "(?:O(?:ut))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "(?:P(?:rint))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "(?:Q(?:uit))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])", - "name": "invalid.session.wolfram" - }, - { - "match": "(?:[$[:alpha:]][$[:alnum:]]*)(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))", - "name": "variable.function.wolfram" - }, - { - "match": "(?:[$[:alpha:]][$[:alnum:]]*)", - "name": "symbol.unrecognized.wolfram" - } - ] - }, - "groups": { - "patterns": [ - { - "match": "\\\\\\)", - "name": "invalid.illegal.stray-linearsyntaxparens-end.wolfram" - }, - { - "match": "\\)", - "name": "invalid.illegal.stray-parens-end.wolfram" - }, - { - "match": "\\[\\s+\\[", - "name": "invalid.whitespace.Part.wolfram" - }, - { - "match": "\\]\\s+\\]", - "name": "invalid.whitespace.Part.wolfram" - }, - { - "match": "\\]\\]", - "name": "invalid.illegal.stray-parts-end.wolfram" - }, - { - "match": "\\]", - "name": "invalid.illegal.stray-brackets-end.wolfram" - }, - { - "match": "\\}", - "name": "invalid.illegal.stray-braces-end.wolfram" - }, - { - "match": "\\|>", - "name": "invalid.illegal.stray-associations-end.wolfram" - }, - { - "include": "#linearsyntaxparen-group" - }, - { - "include": "#paren-group" - }, - { - "include": "#part-group" - }, - { - "include": "#bracket-group" - }, - { - "include": "#brace-group" - }, - { - "include": "#association-group" - } - ] - }, - "linearsyntaxparen-group": { - "name": "meta.linearsyntaxparens.wolfram", - "begin": "\\\\\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.linearsyntaxparens.begin.wolfram" - } - }, - "end": "\\\\\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.linearsyntaxparens.end.wolfram" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - "paren-group": { - "name": "meta.parens.wolfram", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.wolfram" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.wolfram" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - "part-group": { - "name": "meta.parts.wolfram", - "begin": "\\[\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.parts.begin.wolfram" - } - }, - "end": "\\]\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.parts.end.wolfram" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - "bracket-group": { - "name": "meta.brackets.wolfram", - "begin": "::\\[|\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.brackets.begin.wolfram" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.brackets.end.wolfram" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - "brace-group": { - "name": "meta.braces.wolfram", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.braces.begin.wolfram" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.braces.end.wolfram" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - "association-group": { - "name": "meta.associations.wolfram", - "begin": "<\\|", - "beginCaptures": { - "0": { - "name": "punctuation.section.associations.begin.wolfram" - } - }, - "end": "\\|>", - "endCaptures": { - "0": { - "name": "punctuation.section.associations.end.wolfram" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - "pattern-operators": { - "patterns": [ - { - "match": "___", - "name": "keyword.operator.BlankNullSequence.wolfram" - }, - { - "match": "__", - "name": "keyword.operator.BlankSequence.wolfram" - }, - { - "match": "_\\.", - "name": "keyword.operator.Optional.wolfram" - }, - { - "match": "_", - "name": "keyword.operator.Blank.wolfram" - } - ] - }, - "out": { - "patterns": [ - { - "match": "%\\d+", - "name": "keyword.other.Out.wolfram" - }, - { - "match": "%+", - "name": "keyword.other.Out.wolfram" - } - ] - }, - "slot": { - "patterns": [ - { - "match": "#[[:alpha:]][[:alnum:]]*", - "name": "keyword.other.Slot.wolfram" - }, - { - "match": "##\\d*", - "name": "keyword.other.SlotSequence.wolfram" - }, - { - "match": "#\\d*", - "name": "keyword.other.Slot.wolfram" - } - ] - } - } -} diff --git a/lib/grammars/xml.tmLanguage.json b/lib/grammars/xml.tmLanguage.json deleted file mode 100644 index 4d55a61..0000000 --- a/lib/grammars/xml.tmLanguage.json +++ /dev/null @@ -1,387 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xml.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-xml/commit/7bc75dfe779ad5b35d9bf4013d9181864358cb49", - "name": "xml", - "scopeName": "text.xml", - "patterns": [ - { - "begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)", - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.xml" - } - }, - "end": "(\\?>)", - "name": "meta.tag.preprocessor.xml", - "patterns": [ - { - "match": " ([a-zA-Z-]+)", - "name": "entity.other.attribute-name.xml" - }, - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - { - "begin": "(<!)(DOCTYPE)\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)", - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "keyword.other.doctype.xml" - }, - "3": { - "name": "variable.language.documentroot.xml" - } - }, - "end": "\\s*(>)", - "name": "meta.tag.sgml.doctype.xml", - "patterns": [ - { - "include": "#internalSubset" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?></\\2>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.xml" - }, - "3": { - "name": "entity.name.tag.namespace.xml" - }, - "4": { - "name": "punctuation.separator.namespace.xml" - }, - "5": { - "name": "entity.name.tag.localname.xml" - } - }, - "end": "(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "punctuation.definition.tag.xml" - }, - "3": { - "name": "entity.name.tag.xml" - }, - "4": { - "name": "entity.name.tag.namespace.xml" - }, - "5": { - "name": "punctuation.separator.namespace.xml" - }, - "6": { - "name": "entity.name.tag.localname.xml" - }, - "7": { - "name": "punctuation.definition.tag.xml" - } - }, - "name": "meta.tag.no-content.xml", - "patterns": [ - { - "include": "#tagStuff" - } - ] - }, - { - "begin": "(</?)(?:([-\\w\\.]+)((:)))?([-\\w\\.:]+)", - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.namespace.xml" - }, - "3": { - "name": "entity.name.tag.xml" - }, - "4": { - "name": "punctuation.separator.namespace.xml" - }, - "5": { - "name": "entity.name.tag.localname.xml" - } - }, - "end": "(/?>)", - "name": "meta.tag.xml", - "patterns": [ - { - "include": "#tagStuff" - } - ] - }, - { - "include": "#entity" - }, - { - "include": "#bare-ampersand" - }, - { - "begin": "<%@", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.xml" - } - }, - "end": "%>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.xml" - } - }, - "name": "source.java-props.embedded.xml", - "patterns": [ - { - "match": "page|include|taglib", - "name": "keyword.other.page-props.xml" - } - ] - }, - { - "begin": "<%[!=]?(?!--)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.xml" - } - }, - "end": "(?!--)%>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.xml" - } - }, - "name": "source.java.embedded.xml", - "patterns": [ - { - "include": "source.java" - } - ] - }, - { - "begin": "<!\\[CDATA\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "]]>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.unquoted.cdata.xml" - } - ], - "repository": { - "EntityDecl": { - "begin": "(<!)(ENTITY)\\s+(%\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?", - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "keyword.other.entity.xml" - }, - "3": { - "name": "punctuation.definition.entity.xml" - }, - "4": { - "name": "variable.language.entity.xml" - }, - "5": { - "name": "keyword.other.entitytype.xml" - } - }, - "end": "(>)", - "patterns": [ - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - "bare-ampersand": { - "match": "&", - "name": "invalid.illegal.bad-ampersand.xml" - }, - "doublequotedString": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.double.xml", - "patterns": [ - { - "include": "#entity" - }, - { - "include": "#bare-ampersand" - } - ] - }, - "entity": { - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - }, - "3": { - "name": "punctuation.definition.constant.xml" - } - }, - "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "name": "constant.character.entity.xml" - }, - "internalSubset": { - "begin": "(\\[)", - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - } - }, - "end": "(\\])", - "name": "meta.internalsubset.xml", - "patterns": [ - { - "include": "#EntityDecl" - }, - { - "include": "#parameterEntity" - }, - { - "include": "#comments" - } - ] - }, - "parameterEntity": { - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - }, - "3": { - "name": "punctuation.definition.constant.xml" - } - }, - "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", - "name": "constant.character.parameter-entity.xml" - }, - "singlequotedString": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.single.xml", - "patterns": [ - { - "include": "#entity" - }, - { - "include": "#bare-ampersand" - } - ] - }, - "tagStuff": { - "patterns": [ - { - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.xml" - }, - "2": { - "name": "entity.other.attribute-name.xml" - }, - "3": { - "name": "punctuation.separator.namespace.xml" - }, - "4": { - "name": "entity.other.attribute-name.localname.xml" - } - }, - "match": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*=" - }, - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "<%--", - "captures": { - "0": { - "name": "punctuation.definition.comment.xml" - }, - "end": "--%>", - "name": "comment.block.xml" - } - }, - { - "begin": "<!--", - "captures": { - "0": { - "name": "punctuation.definition.comment.xml" - } - }, - "end": "-->", - "name": "comment.block.xml", - "patterns": [ - { - "begin": "--(?!>)", - "captures": { - "0": { - "name": "invalid.illegal.bad-comments-or-CDATA.xml" - } - } - } - ] - } - ] - } - } -} diff --git a/lib/grammars/xsl.tmLanguage.json b/lib/grammars/xsl.tmLanguage.json deleted file mode 100644 index 9b81a5f..0000000 --- a/lib/grammars/xsl.tmLanguage.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xsl.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280", - "name": "xsl", - "scopeName": "text.xml.xsl", - "patterns": [ - { - "begin": "(<)(xsl)((:))(template)", - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.namespace.xml" - }, - "3": { - "name": "entity.name.tag.xml" - }, - "4": { - "name": "punctuation.separator.namespace.xml" - }, - "5": { - "name": "entity.name.tag.localname.xml" - } - }, - "end": "(>)", - "name": "meta.tag.xml.template", - "patterns": [ - { - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.xml" - }, - "2": { - "name": "entity.other.attribute-name.xml" - }, - "3": { - "name": "punctuation.separator.namespace.xml" - }, - "4": { - "name": "entity.other.attribute-name.localname.xml" - } - }, - "match": " (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)" - }, - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - { - "include": "text.xml" - } - ], - "repository": { - "doublequotedString": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.double.xml" - }, - "singlequotedString": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.single.xml" - } - } -} diff --git a/lib/grammars/yaml.tmLanguage.json b/lib/grammars/yaml.tmLanguage.json deleted file mode 100644 index add1ba2..0000000 --- a/lib/grammars/yaml.tmLanguage.json +++ /dev/null @@ -1,621 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/yaml.tmbundle/blob/master/Syntaxes/YAML.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/yaml.tmbundle/commit/e54ceae3b719506dba7e481a77cea4a8b576ae46", - "name": "yaml", - "scopeName": "source.yaml", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property" - }, - { - "include": "#directive" - }, - { - "match": "^---", - "name": "entity.other.document.begin.yaml" - }, - { - "match": "^\\.{3}", - "name": "entity.other.document.end.yaml" - }, - { - "include": "#node" - } - ], - "repository": { - "block-collection": { - "patterns": [ - { - "include": "#block-sequence" - }, - { - "include": "#block-mapping" - } - ] - }, - "block-mapping": { - "patterns": [ - { - "include": "#block-pair" - } - ] - }, - "block-node": { - "patterns": [ - { - "include": "#prototype" - }, - { - "include": "#block-scalar" - }, - { - "include": "#block-collection" - }, - { - "include": "#flow-scalar-plain-out" - }, - { - "include": "#flow-node" - } - ] - }, - "block-pair": { - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.key-value.begin.yaml" - } - }, - "end": "(?=\\?)|^ *(:)|(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.key-value.mapping.yaml" - }, - "2": { - "name": "invalid.illegal.expected-newline.yaml" - } - }, - "name": "meta.block-mapping.yaml", - "patterns": [ - { - "include": "#block-node" - } - ] - }, - { - "begin": "(?x)\n (?=\n (?x:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n )\n (\n [^\\s:]\n | : \\S\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", - "patterns": [ - { - "include": "#flow-scalar-plain-out-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", - "beginCaptures": { - "0": { - "name": "entity.name.tag.yaml" - } - }, - "contentName": "entity.name.tag.yaml", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", - "name": "string.unquoted.plain.out.yaml" - } - ] - }, - { - "match": ":(?=\\s|$)", - "name": "punctuation.separator.key-value.mapping.yaml" - } - ] - }, - "block-scalar": { - "begin": "(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.block-scalar.literal.yaml" - }, - "2": { - "name": "keyword.control.flow.block-scalar.folded.yaml" - }, - "3": { - "name": "constant.numeric.indentation-indicator.yaml" - }, - "4": { - "name": "storage.modifier.chomping-indicator.yaml" - }, - "5": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": ".+", - "name": "invalid.illegal.expected-comment-or-newline.yaml" - } - ] - } - }, - "end": "^(?=\\S)|(?!\\G)", - "patterns": [ - { - "begin": "^([ ]+)(?! )", - "end": "^(?!\\1|\\s*$)", - "name": "string.unquoted.block.yaml" - } - ] - }, - "block-sequence": { - "match": "(-)(?!\\S)", - "name": "punctuation.definition.block.sequence.item.yaml" - }, - "comment": { - "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.yaml" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.yaml" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.yaml" - } - ] - }, - "directive": { - "begin": "^%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.directive.begin.yaml" - } - }, - "end": "(?=$|[ \\t]+($|#))", - "name": "meta.directive.yaml", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.directive.yaml.yaml" - }, - "2": { - "name": "constant.numeric.yaml-version.yaml" - } - }, - "match": "\\G(YAML)[ \\t]+(\\d+\\.\\d+)" - }, - { - "captures": { - "1": { - "name": "keyword.other.directive.tag.yaml" - }, - "2": { - "name": "storage.type.tag-handle.yaml" - }, - "3": { - "name": "support.type.tag-prefix.yaml" - } - }, - "match": "(?x)\n \\G\n (TAG)\n (?:[ \\t]+\n ((?:!(?:[0-9A-Za-z\\-]*!)?))\n (?:[ \\t]+ (\n ! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n | (?![,!\\[\\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n )\n )?\n )?\n " - }, - { - "captures": { - "1": { - "name": "support.other.directive.reserved.yaml" - }, - "2": { - "name": "string.unquoted.directive-name.yaml" - }, - "3": { - "name": "string.unquoted.directive-parameter.yaml" - } - }, - "match": "(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?" - }, - { - "match": "\\S+", - "name": "invalid.illegal.unrecognized.yaml" - } - ] - }, - "flow-alias": { - "captures": { - "1": { - "name": "keyword.control.flow.alias.yaml" - }, - "2": { - "name": "punctuation.definition.alias.yaml" - }, - "3": { - "name": "variable.other.alias.yaml" - }, - "4": { - "name": "invalid.illegal.character.anchor.yaml" - } - }, - "match": "((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?" - }, - "flow-collection": { - "patterns": [ - { - "include": "#flow-sequence" - }, - { - "include": "#flow-mapping" - } - ] - }, - "flow-mapping": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.mapping.begin.yaml" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.mapping.end.yaml" - } - }, - "name": "meta.flow-mapping.yaml", - "patterns": [ - { - "include": "#prototype" - }, - { - "match": ",", - "name": "punctuation.separator.mapping.yaml" - }, - { - "include": "#flow-pair" - } - ] - }, - "flow-node": { - "patterns": [ - { - "include": "#prototype" - }, - { - "include": "#flow-alias" - }, - { - "include": "#flow-collection" - }, - { - "include": "#flow-scalar" - } - ] - }, - "flow-pair": { - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.key-value.begin.yaml" - } - }, - "end": "(?=[},\\]])", - "name": "meta.flow-pair.explicit.yaml", - "patterns": [ - { - "include": "#prototype" - }, - { - "include": "#flow-pair" - }, - { - "include": "#flow-node" - }, - { - "begin": ":(?=\\s|$|[\\[\\]{},])", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.mapping.yaml" - } - }, - "end": "(?=[},\\]])", - "patterns": [ - { - "include": "#flow-value" - } - ] - } - ] - }, - { - "begin": "(?x)\n (?=\n (?:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n )\n (\n [^\\s:[\\[\\]{},]]\n | : [^\\s[\\[\\]{},]]\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", - "name": "meta.flow-pair.key.yaml", - "patterns": [ - { - "include": "#flow-scalar-plain-in-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", - "beginCaptures": { - "0": { - "name": "entity.name.tag.yaml" - } - }, - "contentName": "entity.name.tag.yaml", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", - "name": "string.unquoted.plain.in.yaml" - } - ] - }, - { - "include": "#flow-node" - }, - { - "begin": ":(?=\\s|$|[\\[\\]{},])", - "captures": { - "0": { - "name": "punctuation.separator.key-value.mapping.yaml" - } - }, - "end": "(?=[},\\]])", - "name": "meta.flow-pair.yaml", - "patterns": [ - { - "include": "#flow-value" - } - ] - } - ] - }, - "flow-scalar": { - "patterns": [ - { - "include": "#flow-scalar-double-quoted" - }, - { - "include": "#flow-scalar-single-quoted" - }, - { - "include": "#flow-scalar-plain-in" - } - ] - }, - "flow-scalar-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.yaml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.yaml" - } - }, - "name": "string.quoted.double.yaml", - "patterns": [ - { - "match": "\\\\([0abtnvfre \"/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})", - "name": "constant.character.escape.yaml" - }, - { - "match": "\\\\\\n", - "name": "constant.character.escape.double-quoted.newline.yaml" - } - ] - }, - "flow-scalar-plain-in": { - "patterns": [ - { - "include": "#flow-scalar-plain-in-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", - "name": "string.unquoted.plain.in.yaml" - } - ] - }, - "flow-scalar-plain-in-implicit-type": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.language.null.yaml" - }, - "2": { - "name": "constant.language.boolean.yaml" - }, - "3": { - "name": "constant.numeric.integer.yaml" - }, - "4": { - "name": "constant.numeric.float.yaml" - }, - "5": { - "name": "constant.other.timestamp.yaml" - }, - "6": { - "name": "constant.language.value.yaml" - }, - "7": { - "name": "constant.language.merge.yaml" - } - }, - "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n )\n " - } - ] - }, - "flow-scalar-plain-out": { - "patterns": [ - { - "include": "#flow-scalar-plain-out-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", - "name": "string.unquoted.plain.out.yaml" - } - ] - }, - "flow-scalar-plain-out-implicit-type": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.language.null.yaml" - }, - "2": { - "name": "constant.language.boolean.yaml" - }, - "3": { - "name": "constant.numeric.integer.yaml" - }, - "4": { - "name": "constant.numeric.float.yaml" - }, - "5": { - "name": "constant.other.timestamp.yaml" - }, - "6": { - "name": "constant.language.value.yaml" - }, - "7": { - "name": "constant.language.merge.yaml" - } - }, - "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?x:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n )\n " - } - ] - }, - "flow-scalar-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.yaml" - } - }, - "end": "'(?!')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.yaml" - } - }, - "name": "string.quoted.single.yaml", - "patterns": [ - { - "match": "''", - "name": "constant.character.escape.single-quoted.yaml" - } - ] - }, - "flow-sequence": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.sequence.begin.yaml" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.sequence.end.yaml" - } - }, - "name": "meta.flow-sequence.yaml", - "patterns": [ - { - "include": "#prototype" - }, - { - "match": ",", - "name": "punctuation.separator.sequence.yaml" - }, - { - "include": "#flow-pair" - }, - { - "include": "#flow-node" - } - ] - }, - "flow-value": { - "patterns": [ - { - "begin": "\\G(?![},\\]])", - "end": "(?=[},\\]])", - "name": "meta.flow-pair.value.yaml", - "patterns": [ - { - "include": "#flow-node" - } - ] - } - ] - }, - "node": { - "patterns": [ - { - "include": "#block-node" - } - ] - }, - "property": { - "begin": "(?=!|&)", - "end": "(?!\\G)", - "name": "meta.property.yaml", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.control.property.anchor.yaml" - }, - "2": { - "name": "punctuation.definition.anchor.yaml" - }, - "3": { - "name": "entity.name.type.anchor.yaml" - }, - "4": { - "name": "invalid.illegal.character.anchor.yaml" - } - }, - "match": "\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?" - }, - { - "match": "(?x)\n \\G\n (?:\n ! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n | (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n | !\n )\n (?=\\ |\\t|$)\n ", - "name": "storage.type.tag-handle.yaml" - }, - { - "match": "\\S+", - "name": "invalid.illegal.tag-handle.yaml" - } - ] - }, - "prototype": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property" - } - ] - } - } -} diff --git a/lib/grammars/zenscript.tmLanguage.json b/lib/grammars/zenscript.tmLanguage.json deleted file mode 100644 index e779df7..0000000 --- a/lib/grammars/zenscript.tmLanguage.json +++ /dev/null @@ -1,254 +0,0 @@ -{ - "fileTypes": ["zs"], - "name": "zenscript", - "patterns": [ - { - "comment": "numbers", - "name": "constant.numeric.zenscript", - "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b" - }, - { - "comment": "prefixedNumbers", - "name": "constant.numeric.zenscript", - "match": "\\b\\-?(0b|0x|0o|0B|0X|0O)(0|[1-9a-fA-F][0-9a-fA-F_]*)[a-zA-Z_]*\\b" - }, - { - "include": "#code" - }, - { - "comment": "arrays", - "name": "storage.type.object.array.zenscript", - "match": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)" - } - ], - "repository": { - "code": { - "patterns": [ - { - "include": "#class" - }, - { - "include": "#functions" - }, - { - "include": "#dots" - }, - { - "include": "#quotes" - }, - { - "include": "#brackets" - }, - { - "include": "#comments" - }, - { - "include": "#var" - }, - { - "include": "#keywords" - }, - { - "include": "#constants" - }, - { - "include": "#operators" - } - ] - }, - "class": { - "comment": "class", - "name": "meta.class.zenscript", - "match": "(zenClass)\\s+(\\w+)", - "captures": { - "1": { - "name": "storage.type.zenscript" - }, - "2": { - "name": "entity.name.type.class.zenscript" - } - } - }, - "functions": { - "comment": "functions", - "name": "meta.function.zenscript", - "match": "function\\s+([A-Za-z_$][\\w$]*)\\s*(?=\\()", - "captures": { - "0": { - "name": "storage.type.function.zenscript" - }, - "1": { - "name": "entity.name.function.zenscript" - } - } - }, - "dots": { - "comment": "dots", - "name": "plain.text.zenscript", - "match": "\\b(\\w+)(\\.)(\\w+)((\\.)(\\w+))*", - "captures": { - "1": { - "name": "storage.type.zenscript" - }, - "2": { - "name": "keyword.control.zenscript" - }, - "5": { - "name": "keyword.control.zenscript" - } - } - }, - "quotes": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.zenscript" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.zenscript" - } - }, - "name": "string.quoted.double.zenscript", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.zenscript" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.zenscript" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.zenscript" - } - }, - "name": "string.quoted.single.zenscript", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.zenscript" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "comment": "items and blocks", - "name": "keyword.other.zenscript", - "match": "(<)\\b(.*?)(:(.*?(:(\\*|\\d+)?)?)?)(>)", - "captures": { - "1": { - "name": "keyword.control.zenscript" - }, - "2": { - "name": "keyword.other.zenscript" - }, - "3": { - "name": "keyword.control.zenscript" - }, - "4": { - "name": "variable.other.zenscript" - }, - "5": { - "name": "keyword.control.zenscript" - }, - "6": { - "name": "constant.numeric.zenscript" - }, - "7": { - "name": "keyword.control.zenscript" - } - } - } - ] - }, - "comments": { - "patterns": [ - { - "comment": "inline comments", - "name": "comment.line.double=slash", - "match": "//[^\n]*" - }, - { - "comment": "block comments", - "name": "comment.block", - "begin": "\\/\\*", - "beginCaptures": { - "0": { - "name": "comment.block" - } - }, - "end": "\\*\\/", - "endCaptures": { - "0": { - "name": "comment.block" - } - } - } - ] - }, - "var": { - "comment": "var", - "match": "\\b(val|var)\\b", - "name": "storage.type" - }, - "keywords": { - "patterns": [ - { - "comment": "statement keywords", - "name": "keyword.control.zenscript", - "match": "\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\b" - }, - { - "comment": "storage keywords", - "name": "storage.type.zenscript", - "match": "\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\b" - }, - { - "comment": "modifier keywords", - "name": "storage.modifier.zenscript", - "match": "\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\b" - }, - { - "comment": "annotation keywords", - "name": "entity.other.attribute-name", - "match": "\\b(Native|Precondition)\\b" - }, - { - "comment": "language keywords", - "name": "constant.language", - "match": "\\b(null|true|false)\\b" - } - ] - }, - "operators": { - "patterns": [ - { - "comment": "math operators", - "name": "keyword.control", - "match": "\\b(\\.|\\.\\.|\\.\\.\\.|,|\\+|\\+=|\\+\\+|-|-=|--|~|~=|\\*|\\*=|/|/=|%|%=|\\||\\|=|\\|\\||&|&=|&&|\\^|\\^=|\\?|\\?\\.|\\?\\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\\$|`)\\b" - }, - { - "comment": "colons", - "name": "keyword.control", - "match": "\\b(;|:)\\b" - } - ] - } - }, - "scopeName": "source.zenscript" -} From b1bda5ec1caf12a65e37adaac737f5327c345d16 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo <pombopombopombo@gmail.com> Date: Fri, 2 Aug 2024 14:19:15 +0200 Subject: [PATCH 4/9] mjs themes --- lib/tm-grammars/txt.json | 32 +++++++++++++++++++ lib/{themes => tm-themes}/dark-plus.json | 0 lib/{themes => tm-themes}/dracula-soft.json | 0 lib/{themes => tm-themes}/dracula.json | 0 .../github-dark-dimmed.json | 0 lib/{themes => tm-themes}/github-dark.json | 0 lib/{themes => tm-themes}/github-from-css.css | 0 .../github-from-css.json | 0 lib/{themes => tm-themes}/github-light.json | 0 lib/{themes => tm-themes}/light-plus.json | 0 .../material-darker.json | 0 .../material-default.json | 0 .../material-from-css.css | 0 .../material-from-css.json | 0 .../material-lighter.json | 0 lib/{themes => tm-themes}/material-ocean.json | 0 .../material-palenight.json | 0 lib/{themes => tm-themes}/min-dark.json | 0 lib/{themes => tm-themes}/min-light.json | 0 lib/{themes => tm-themes}/monokai.json | 0 lib/{themes => tm-themes}/nord.json | 0 lib/{themes => tm-themes}/one-dark-pro.json | 0 lib/{themes => tm-themes}/poimandres.json | 0 lib/{themes => tm-themes}/rose-pine-dawn.json | 0 lib/{themes => tm-themes}/rose-pine-moon.json | 0 lib/{themes => tm-themes}/rose-pine.json | 0 lib/{themes => tm-themes}/slack-dark.json | 0 lib/{themes => tm-themes}/slack-ochin.json | 0 lib/{themes => tm-themes}/solarized-dark.json | 0 .../solarized-light.json | 0 30 files changed, 32 insertions(+) create mode 100644 lib/tm-grammars/txt.json rename lib/{themes => tm-themes}/dark-plus.json (100%) rename lib/{themes => tm-themes}/dracula-soft.json (100%) rename lib/{themes => tm-themes}/dracula.json (100%) rename lib/{themes => tm-themes}/github-dark-dimmed.json (100%) rename lib/{themes => tm-themes}/github-dark.json (100%) rename lib/{themes => tm-themes}/github-from-css.css (100%) rename lib/{themes => tm-themes}/github-from-css.json (100%) rename lib/{themes => tm-themes}/github-light.json (100%) rename lib/{themes => tm-themes}/light-plus.json (100%) rename lib/{themes => tm-themes}/material-darker.json (100%) rename lib/{themes => tm-themes}/material-default.json (100%) rename lib/{themes => tm-themes}/material-from-css.css (100%) rename lib/{themes => tm-themes}/material-from-css.json (100%) rename lib/{themes => tm-themes}/material-lighter.json (100%) rename lib/{themes => tm-themes}/material-ocean.json (100%) rename lib/{themes => tm-themes}/material-palenight.json (100%) rename lib/{themes => tm-themes}/min-dark.json (100%) rename lib/{themes => tm-themes}/min-light.json (100%) rename lib/{themes => tm-themes}/monokai.json (100%) rename lib/{themes => tm-themes}/nord.json (100%) rename lib/{themes => tm-themes}/one-dark-pro.json (100%) rename lib/{themes => tm-themes}/poimandres.json (100%) rename lib/{themes => tm-themes}/rose-pine-dawn.json (100%) rename lib/{themes => tm-themes}/rose-pine-moon.json (100%) rename lib/{themes => tm-themes}/rose-pine.json (100%) rename lib/{themes => tm-themes}/slack-dark.json (100%) rename lib/{themes => tm-themes}/slack-ochin.json (100%) rename lib/{themes => tm-themes}/solarized-dark.json (100%) rename lib/{themes => tm-themes}/solarized-light.json (100%) diff --git a/lib/tm-grammars/txt.json b/lib/tm-grammars/txt.json new file mode 100644 index 0000000..30154d7 --- /dev/null +++ b/lib/tm-grammars/txt.json @@ -0,0 +1,32 @@ +{ + "name": "txt", + "scopeName": "source.txt", + "patterns": [ + { + "include": "#comment" + } + ], + "repository": { + "comment": { + "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.txt" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.txt" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.txt" + } + ] + } + } +} diff --git a/lib/themes/dark-plus.json b/lib/tm-themes/dark-plus.json similarity index 100% rename from lib/themes/dark-plus.json rename to lib/tm-themes/dark-plus.json diff --git a/lib/themes/dracula-soft.json b/lib/tm-themes/dracula-soft.json similarity index 100% rename from lib/themes/dracula-soft.json rename to lib/tm-themes/dracula-soft.json diff --git a/lib/themes/dracula.json b/lib/tm-themes/dracula.json similarity index 100% rename from lib/themes/dracula.json rename to lib/tm-themes/dracula.json diff --git a/lib/themes/github-dark-dimmed.json b/lib/tm-themes/github-dark-dimmed.json similarity index 100% rename from lib/themes/github-dark-dimmed.json rename to lib/tm-themes/github-dark-dimmed.json diff --git a/lib/themes/github-dark.json b/lib/tm-themes/github-dark.json similarity index 100% rename from lib/themes/github-dark.json rename to lib/tm-themes/github-dark.json diff --git a/lib/themes/github-from-css.css b/lib/tm-themes/github-from-css.css similarity index 100% rename from lib/themes/github-from-css.css rename to lib/tm-themes/github-from-css.css diff --git a/lib/themes/github-from-css.json b/lib/tm-themes/github-from-css.json similarity index 100% rename from lib/themes/github-from-css.json rename to lib/tm-themes/github-from-css.json diff --git a/lib/themes/github-light.json b/lib/tm-themes/github-light.json similarity index 100% rename from lib/themes/github-light.json rename to lib/tm-themes/github-light.json diff --git a/lib/themes/light-plus.json b/lib/tm-themes/light-plus.json similarity index 100% rename from lib/themes/light-plus.json rename to lib/tm-themes/light-plus.json diff --git a/lib/themes/material-darker.json b/lib/tm-themes/material-darker.json similarity index 100% rename from lib/themes/material-darker.json rename to lib/tm-themes/material-darker.json diff --git a/lib/themes/material-default.json b/lib/tm-themes/material-default.json similarity index 100% rename from lib/themes/material-default.json rename to lib/tm-themes/material-default.json diff --git a/lib/themes/material-from-css.css b/lib/tm-themes/material-from-css.css similarity index 100% rename from lib/themes/material-from-css.css rename to lib/tm-themes/material-from-css.css diff --git a/lib/themes/material-from-css.json b/lib/tm-themes/material-from-css.json similarity index 100% rename from lib/themes/material-from-css.json rename to lib/tm-themes/material-from-css.json diff --git a/lib/themes/material-lighter.json b/lib/tm-themes/material-lighter.json similarity index 100% rename from lib/themes/material-lighter.json rename to lib/tm-themes/material-lighter.json diff --git a/lib/themes/material-ocean.json b/lib/tm-themes/material-ocean.json similarity index 100% rename from lib/themes/material-ocean.json rename to lib/tm-themes/material-ocean.json diff --git a/lib/themes/material-palenight.json b/lib/tm-themes/material-palenight.json similarity index 100% rename from lib/themes/material-palenight.json rename to lib/tm-themes/material-palenight.json diff --git a/lib/themes/min-dark.json b/lib/tm-themes/min-dark.json similarity index 100% rename from lib/themes/min-dark.json rename to lib/tm-themes/min-dark.json diff --git a/lib/themes/min-light.json b/lib/tm-themes/min-light.json similarity index 100% rename from lib/themes/min-light.json rename to lib/tm-themes/min-light.json diff --git a/lib/themes/monokai.json b/lib/tm-themes/monokai.json similarity index 100% rename from lib/themes/monokai.json rename to lib/tm-themes/monokai.json diff --git a/lib/themes/nord.json b/lib/tm-themes/nord.json similarity index 100% rename from lib/themes/nord.json rename to lib/tm-themes/nord.json diff --git a/lib/themes/one-dark-pro.json b/lib/tm-themes/one-dark-pro.json similarity index 100% rename from lib/themes/one-dark-pro.json rename to lib/tm-themes/one-dark-pro.json diff --git a/lib/themes/poimandres.json b/lib/tm-themes/poimandres.json similarity index 100% rename from lib/themes/poimandres.json rename to lib/tm-themes/poimandres.json diff --git a/lib/themes/rose-pine-dawn.json b/lib/tm-themes/rose-pine-dawn.json similarity index 100% rename from lib/themes/rose-pine-dawn.json rename to lib/tm-themes/rose-pine-dawn.json diff --git a/lib/themes/rose-pine-moon.json b/lib/tm-themes/rose-pine-moon.json similarity index 100% rename from lib/themes/rose-pine-moon.json rename to lib/tm-themes/rose-pine-moon.json diff --git a/lib/themes/rose-pine.json b/lib/tm-themes/rose-pine.json similarity index 100% rename from lib/themes/rose-pine.json rename to lib/tm-themes/rose-pine.json diff --git a/lib/themes/slack-dark.json b/lib/tm-themes/slack-dark.json similarity index 100% rename from lib/themes/slack-dark.json rename to lib/tm-themes/slack-dark.json diff --git a/lib/themes/slack-ochin.json b/lib/tm-themes/slack-ochin.json similarity index 100% rename from lib/themes/slack-ochin.json rename to lib/tm-themes/slack-ochin.json diff --git a/lib/themes/solarized-dark.json b/lib/tm-themes/solarized-dark.json similarity index 100% rename from lib/themes/solarized-dark.json rename to lib/tm-themes/solarized-dark.json diff --git a/lib/themes/solarized-light.json b/lib/tm-themes/solarized-light.json similarity index 100% rename from lib/themes/solarized-light.json rename to lib/tm-themes/solarized-light.json From 64db938fe7cefcc171d61c84801cb6d6f0b57ea4 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo <pombopombopombo@gmail.com> Date: Fri, 2 Aug 2024 14:33:29 +0200 Subject: [PATCH 5/9] Keep original themes folder --- lib/dist/theme/dark-plus.mjs | 1 + lib/dist/theme/dracula-soft.mjs | 1 + lib/dist/theme/dracula.mjs | 1 + lib/dist/theme/github-dark-dimmed.mjs | 1 + lib/dist/theme/github-dark.mjs | 1 + lib/dist/theme/github-from-css.mjs | 1 + lib/dist/theme/github-light.mjs | 1 + lib/dist/theme/light-plus.mjs | 1 + lib/dist/theme/material-darker.mjs | 1 + lib/dist/theme/material-default.mjs | 1 + lib/dist/theme/material-from-css.mjs | 1 + lib/dist/theme/material-lighter.mjs | 1 + lib/dist/theme/material-ocean.mjs | 1 + lib/dist/theme/material-palenight.mjs | 1 + lib/dist/theme/min-dark.mjs | 1 + lib/dist/theme/min-light.mjs | 1 + lib/dist/theme/monokai.mjs | 1 + lib/dist/theme/nord.mjs | 1 + lib/dist/theme/one-dark-pro.mjs | 1 + lib/dist/theme/poimandres.mjs | 1 + lib/dist/theme/rose-pine-dawn.mjs | 1 + lib/dist/theme/rose-pine-moon.mjs | 1 + lib/dist/theme/rose-pine.mjs | 1 + lib/dist/theme/slack-dark.mjs | 1 + lib/dist/theme/slack-ochin.mjs | 1 + lib/dist/theme/solarized-dark.mjs | 1 + lib/dist/theme/solarized-light.mjs | 1 + lib/{tm-themes => themes}/dark-plus.json | 0 lib/{tm-themes => themes}/dracula-soft.json | 0 lib/{tm-themes => themes}/dracula.json | 0 lib/{tm-themes => themes}/github-dark-dimmed.json | 0 lib/{tm-themes => themes}/github-dark.json | 0 lib/{tm-themes => themes}/github-from-css.css | 0 lib/{tm-themes => themes}/github-from-css.json | 0 lib/{tm-themes => themes}/github-light.json | 0 lib/{tm-themes => themes}/light-plus.json | 0 lib/{tm-themes => themes}/material-darker.json | 0 lib/{tm-themes => themes}/material-default.json | 0 lib/{tm-themes => themes}/material-from-css.css | 0 lib/{tm-themes => themes}/material-from-css.json | 0 lib/{tm-themes => themes}/material-lighter.json | 0 lib/{tm-themes => themes}/material-ocean.json | 0 lib/{tm-themes => themes}/material-palenight.json | 0 lib/{tm-themes => themes}/min-dark.json | 0 lib/{tm-themes => themes}/min-light.json | 0 lib/{tm-themes => themes}/monokai.json | 0 lib/{tm-themes => themes}/nord.json | 0 lib/{tm-themes => themes}/one-dark-pro.json | 0 lib/{tm-themes => themes}/poimandres.json | 0 lib/{tm-themes => themes}/rose-pine-dawn.json | 0 lib/{tm-themes => themes}/rose-pine-moon.json | 0 lib/{tm-themes => themes}/rose-pine.json | 0 lib/{tm-themes => themes}/slack-dark.json | 0 lib/{tm-themes => themes}/slack-ochin.json | 0 lib/{tm-themes => themes}/solarized-dark.json | 0 lib/{tm-themes => themes}/solarized-light.json | 0 56 files changed, 27 insertions(+) create mode 100644 lib/dist/theme/dark-plus.mjs create mode 100644 lib/dist/theme/dracula-soft.mjs create mode 100644 lib/dist/theme/dracula.mjs create mode 100644 lib/dist/theme/github-dark-dimmed.mjs create mode 100644 lib/dist/theme/github-dark.mjs create mode 100644 lib/dist/theme/github-from-css.mjs create mode 100644 lib/dist/theme/github-light.mjs create mode 100644 lib/dist/theme/light-plus.mjs create mode 100644 lib/dist/theme/material-darker.mjs create mode 100644 lib/dist/theme/material-default.mjs create mode 100644 lib/dist/theme/material-from-css.mjs create mode 100644 lib/dist/theme/material-lighter.mjs create mode 100644 lib/dist/theme/material-ocean.mjs create mode 100644 lib/dist/theme/material-palenight.mjs create mode 100644 lib/dist/theme/min-dark.mjs create mode 100644 lib/dist/theme/min-light.mjs create mode 100644 lib/dist/theme/monokai.mjs create mode 100644 lib/dist/theme/nord.mjs create mode 100644 lib/dist/theme/one-dark-pro.mjs create mode 100644 lib/dist/theme/poimandres.mjs create mode 100644 lib/dist/theme/rose-pine-dawn.mjs create mode 100644 lib/dist/theme/rose-pine-moon.mjs create mode 100644 lib/dist/theme/rose-pine.mjs create mode 100644 lib/dist/theme/slack-dark.mjs create mode 100644 lib/dist/theme/slack-ochin.mjs create mode 100644 lib/dist/theme/solarized-dark.mjs create mode 100644 lib/dist/theme/solarized-light.mjs rename lib/{tm-themes => themes}/dark-plus.json (100%) rename lib/{tm-themes => themes}/dracula-soft.json (100%) rename lib/{tm-themes => themes}/dracula.json (100%) rename lib/{tm-themes => themes}/github-dark-dimmed.json (100%) rename lib/{tm-themes => themes}/github-dark.json (100%) rename lib/{tm-themes => themes}/github-from-css.css (100%) rename lib/{tm-themes => themes}/github-from-css.json (100%) rename lib/{tm-themes => themes}/github-light.json (100%) rename lib/{tm-themes => themes}/light-plus.json (100%) rename lib/{tm-themes => themes}/material-darker.json (100%) rename lib/{tm-themes => themes}/material-default.json (100%) rename lib/{tm-themes => themes}/material-from-css.css (100%) rename lib/{tm-themes => themes}/material-from-css.json (100%) rename lib/{tm-themes => themes}/material-lighter.json (100%) rename lib/{tm-themes => themes}/material-ocean.json (100%) rename lib/{tm-themes => themes}/material-palenight.json (100%) rename lib/{tm-themes => themes}/min-dark.json (100%) rename lib/{tm-themes => themes}/min-light.json (100%) rename lib/{tm-themes => themes}/monokai.json (100%) rename lib/{tm-themes => themes}/nord.json (100%) rename lib/{tm-themes => themes}/one-dark-pro.json (100%) rename lib/{tm-themes => themes}/poimandres.json (100%) rename lib/{tm-themes => themes}/rose-pine-dawn.json (100%) rename lib/{tm-themes => themes}/rose-pine-moon.json (100%) rename lib/{tm-themes => themes}/rose-pine.json (100%) rename lib/{tm-themes => themes}/slack-dark.json (100%) rename lib/{tm-themes => themes}/slack-ochin.json (100%) rename lib/{tm-themes => themes}/solarized-dark.json (100%) rename lib/{tm-themes => themes}/solarized-light.json (100%) diff --git a/lib/dist/theme/dark-plus.mjs b/lib/dist/theme/dark-plus.mjs new file mode 100644 index 0000000..1dab07b --- /dev/null +++ b/lib/dist/theme/dark-plus.mjs @@ -0,0 +1 @@ +var e="vscode://schemas/color-theme",t="dark-plus",o=[{settings:{foreground:"#D4D4D4"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{name:"brackets of XML/HTML tags",scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569cd6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{name:"coloring of the Java import and package identifiers",scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#569cd6"}},{name:"Function declarations",scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{name:"Types declaration and references",scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{name:"Types declaration and references, TS grammar specific",scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{name:"Control flow / Special keywords",scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{name:"Variable and parameter name",scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{name:"Constants and enums",scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{name:"Object keys, TS grammar specific",scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{name:"CSS property value",scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{name:"Regular expression groups",scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:"constant.character",settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}}],r={newOperator:"#C586C0",stringLiteral:"#ce9178",customLiteral:"#DCDCAA",numberLiteral:"#b5cea8"},n={"checkbox.border":"#6B6B6B","editor.background":"#1E1E1E","editor.foreground":"#D4D4D4","editor.inactiveSelectionBackground":"#3A3D41","editorIndentGuide.background":"#404040","editorIndentGuide.activeBackground":"#707070","editor.selectionHighlightBackground":"#ADD6FF26","list.dropBackground":"#383B3D","activityBarBadge.background":"#007ACC","sideBarTitle.foreground":"#BBBBBB","input.placeholderForeground":"#A6A6A6","menu.background":"#252526","menu.foreground":"#CCCCCC","menu.separatorBackground":"#454545","menu.border":"#454545","statusBarItem.remoteForeground":"#FFF","statusBarItem.remoteBackground":"#16825D","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#ccc3","tab.lastPinnedBorder":"#ccc3","list.activeSelectionIconForeground":"#FFF","terminal.inactiveSelectionBackground":"#3A3D41","widget.border":"#303031"},s={$schema:e,name:t,tokenColors:o,semanticTokenColors:r,colors:n};export{e as $schema,n as colors,s as default,t as name,r as semanticTokenColors,o as tokenColors}; diff --git a/lib/dist/theme/dracula-soft.mjs b/lib/dist/theme/dracula-soft.mjs new file mode 100644 index 0000000..f092d96 --- /dev/null +++ b/lib/dist/theme/dracula-soft.mjs @@ -0,0 +1 @@ +var e="vscode://schemas/color-theme",t="dracula-soft",n="Zeno Rocha",o=["Derek P Sifford <dereksifford@gmail.com>"],r="theme.dracula",i=!0,a={base:["#282A36","#F8F8F2","#44475A","#6272A4","#8BE9FD","#50FA7B","#FFB86C","#FF79C6","#BD93F9","#FF5555","#F1FA8C"],ansi:["#21222C","#FF5555","#50FA7B","#F1FA8C","#BD93F9","#FF79C6","#8BE9FD","#F8F8F2","#6272A4","#FF6E6E","#69FF94","#FFFFA5","#D6ACFF","#FF92DF","#A4FFFF","#FFFFFF"],brightOther:["#E9F284","#8BE9FE"],other:["#44475A75","#FFFFFF1A","#FFFFFF","#44475A70","#424450","#343746","#21222C","#191A21"]},s={"terminal.background":"#282A36","terminal.foreground":"#f6f6f4","terminal.ansiBrightBlack":"#7b7f8b","terminal.ansiBrightRed":"#f07c7c","terminal.ansiBrightGreen":"#78f09a","terminal.ansiBrightYellow":"#f6f6ae","terminal.ansiBrightBlue":"#d6b4f7","terminal.ansiBrightMagenta":"#f49dda","terminal.ansiBrightCyan":"#adf6f6","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBlack":"#262626","terminal.ansiRed":"#ee6666","terminal.ansiGreen":"#62e884","terminal.ansiYellow":"#e7ee98","terminal.ansiBlue":"#bf9eee","terminal.ansiMagenta":"#f286c4","terminal.ansiCyan":"#97e1f1","terminal.ansiWhite":"#f6f6f4",focusBorder:"#7b7f8b",foreground:"#f6f6f4","selection.background":"#bf9eee",errorForeground:"#ee6666","button.background":"#44475A","button.foreground":"#f6f6f4","button.secondaryBackground":"#282A36","button.secondaryForeground":"#f6f6f4","button.secondaryHoverBackground":"#343746","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#f6f6f4","input.background":"#282A36","input.foreground":"#f6f6f4","input.border":"#191A21","input.placeholderForeground":"#7b7f8b","inputOption.activeBorder":"#bf9eee","inputValidation.infoBorder":"#f286c4","inputValidation.warningBorder":"#FFB86C","inputValidation.errorBorder":"#ee6666","badge.foreground":"#f6f6f4","badge.background":"#44475A","progressBar.background":"#f286c4","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#f6f6f4","list.dropBackground":"#44475A","list.focusBackground":"#44475A75","list.highlightForeground":"#97e1f1","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","list.errorForeground":"#ee6666","activityBar.background":"#343746","activityBar.inactiveForeground":"#7b7f8b","activityBar.foreground":"#f6f6f4","activityBar.activeBorder":"#FF79C680","activityBar.activeBackground":"#BD93F910","activityBarBadge.background":"#f286c4","activityBarBadge.foreground":"#f6f6f4","sideBar.background":"#262626","sideBarTitle.foreground":"#f6f6f4","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","editorGroup.border":"#bf9eee","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","tab.activeBackground":"#282A36","tab.activeForeground":"#f6f6f4","tab.border":"#191A21","tab.activeBorderTop":"#FF79C680","tab.inactiveBackground":"#262626","tab.inactiveForeground":"#7b7f8b","editor.foreground":"#f6f6f4","editor.background":"#282A36","editorLineNumber.foreground":"#7b7f8b","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.foldBackground":"#21222C80","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editorLink.activeForeground":"#97e1f1","editor.rangeHighlightBackground":"#BD93F915","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#7b7f8b","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#62e884","editorWhitespace.foreground":"#FFFFFF1A","editorIndentGuide.background":"#FFFFFF1A","editorIndentGuide.activeBackground":"#FFFFFF45","editorRuler.foreground":"#FFFFFF1A","editorCodeLens.foreground":"#7b7f8b","editorBracketHighlight.foreground1":"#f6f6f4","editorBracketHighlight.foreground2":"#f286c4","editorBracketHighlight.foreground3":"#97e1f1","editorBracketHighlight.foreground4":"#62e884","editorBracketHighlight.foreground5":"#bf9eee","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#ee6666","editorOverviewRuler.border":"#191A21","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.wordHighlightForeground":"#97e1f1","editorOverviewRuler.wordHighlightStrongForeground":"#62e884","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.infoForeground":"#8BE9FD80","editorError.foreground":"#ee6666","editorWarning.foreground":"#97e1f1","editorGutter.modifiedBackground":"#8BE9FD80","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","gitDecoration.modifiedResourceForeground":"#97e1f1","gitDecoration.deletedResourceForeground":"#ee6666","gitDecoration.untrackedResourceForeground":"#62e884","gitDecoration.ignoredResourceForeground":"#7b7f8b","gitDecoration.conflictingResourceForeground":"#FFB86C","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","editorWidget.background":"#262626","editorSuggestWidget.background":"#262626","editorSuggestWidget.foreground":"#f6f6f4","editorSuggestWidget.selectedBackground":"#44475A","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#7b7f8b","editorMarkerNavigation.background":"#262626","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#262626","peekViewResult.fileForeground":"#f6f6f4","peekViewResult.lineForeground":"#f6f6f4","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#f6f6f4","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#7b7f8b","peekViewTitleLabel.foreground":"#f6f6f4","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","editorOverviewRuler.currentContentForeground":"#62e884","editorOverviewRuler.incomingContentForeground":"#bf9eee","panel.background":"#282A36","panel.border":"#bf9eee","panelTitle.activeBorder":"#f286c4","panelTitle.activeForeground":"#f6f6f4","panelTitle.inactiveForeground":"#7b7f8b","statusBar.background":"#191A21","statusBar.foreground":"#f6f6f4","statusBar.debuggingBackground":"#ee6666","statusBar.debuggingForeground":"#191A21","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#f6f6f4","statusBarItem.prominentBackground":"#ee6666","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteForeground":"#282A36","statusBarItem.remoteBackground":"#bf9eee","titleBar.activeBackground":"#262626","titleBar.activeForeground":"#f6f6f4","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#7b7f8b","extensionButton.prominentForeground":"#f6f6f4","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentHoverBackground":"#50FA7B60","pickerGroup.border":"#bf9eee","pickerGroup.foreground":"#97e1f1","debugToolBar.background":"#262626","walkThrough.embeddedEditorBackground":"#262626","settings.headerForeground":"#f6f6f4","settings.modifiedItemIndicator":"#FFB86C","settings.dropdownBackground":"#262626","settings.dropdownForeground":"#f6f6f4","settings.dropdownBorder":"#191A21","settings.checkboxBackground":"#262626","settings.checkboxForeground":"#f6f6f4","settings.checkboxBorder":"#191A21","settings.textInputBackground":"#262626","settings.textInputForeground":"#f6f6f4","settings.textInputBorder":"#191A21","settings.numberInputBackground":"#262626","settings.numberInputForeground":"#f6f6f4","settings.numberInputBorder":"#191A21","breadcrumb.foreground":"#7b7f8b","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#f6f6f4","breadcrumb.activeSelectionForeground":"#f6f6f4","breadcrumbPicker.background":"#191A21","listFilterWidget.background":"#343746","listFilterWidget.outline":"#424450","listFilterWidget.noMatchesOutline":"#ee6666"},d=[{scope:["emphasis"],settings:{fontStyle:"italic"}},{scope:["strong"],settings:{fontStyle:"bold"}},{scope:["header"],settings:{foreground:"#bf9eee"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#7b7f8b"}},{scope:["markup.inserted"],settings:{foreground:"#62e884"}},{scope:["markup.deleted"],settings:{foreground:"#ee6666"}},{scope:["markup.changed"],settings:{foreground:"#FFB86C"}},{scope:["invalid"],settings:{foreground:"#ee6666",fontStyle:"underline italic"}},{scope:["invalid.deprecated"],settings:{foreground:"#f6f6f4",fontStyle:"underline italic"}},{scope:["entity.name.filename"],settings:{foreground:"#e7ee98"}},{scope:["markup.error"],settings:{foreground:"#ee6666"}},{name:"Underlined markup",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Bold markup",scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#FFB86C"}},{name:"Markup headings",scope:["markup.heading"],settings:{fontStyle:"bold",foreground:"#bf9eee"}},{name:"Markup italic",scope:["markup.italic"],settings:{foreground:"#e7ee98",fontStyle:"italic"}},{name:"Bullets, lists (prose)",scope:["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],settings:{foreground:"#97e1f1"}},{name:"Inline code (prose)",scope:["markup.inline.raw","markup.raw.restructuredtext"],settings:{foreground:"#62e884"}},{name:"Links (prose)",scope:["markup.underline.link","markup.underline.link.image"],settings:{foreground:"#97e1f1"}},{name:"Link text, image alt text (prose)",scope:["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],settings:{foreground:"#f286c4"}},{name:"Blockquotes (prose)",scope:["entity.name.directive.restructuredtext","markup.quote"],settings:{foreground:"#e7ee98",fontStyle:"italic"}},{name:"Horizontal rule (prose)",scope:["meta.separator.markdown"],settings:{foreground:"#7b7f8b"}},{name:"Code blocks",scope:["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],settings:{foreground:"#62e884"}},{name:"Prose constants",scope:["punctuation.definition.constant.restructuredtext"],settings:{foreground:"#bf9eee"}},{name:"Braces in markdown headings",scope:["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],settings:{foreground:"#bf9eee"}},{name:"Braces in markdown paragraphs",scope:["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#f6f6f4"}},{name:"Braces in markdown blockquotes",scope:["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#e7ee98"}},{name:"User-defined class names",scope:["entity.name.type.class","entity.name.class"],settings:{foreground:"#97e1f1",fontStyle:"normal"}},{name:"this, super, self, etc.",scope:["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],settings:{foreground:"#bf9eee",fontStyle:"italic"}},{name:"Inherited classes",scope:["entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{name:"Comments",scope:["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],settings:{foreground:"#7b7f8b"}},{name:"JSDoc-style keywords",scope:["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],settings:{foreground:"#f286c4"}},{name:"JSDoc-style types",scope:["comment.block.documentation entity.name.type"],settings:{foreground:"#97e1f1",fontStyle:"italic"}},{name:"JSDoc-style type brackets",scope:["comment.block.documentation entity.name.type punctuation.definition.bracket"],settings:{foreground:"#97e1f1"}},{name:"JSDoc-style comment parameters",scope:["comment.block.documentation variable"],settings:{foreground:"#FFB86C",fontStyle:"italic"}},{name:"Constants",scope:["constant","variable.other.constant"],settings:{foreground:"#bf9eee"}},{name:"Constant escape sequences",scope:["constant.character.escape","constant.character.string.escape","constant.regexp"],settings:{foreground:"#f286c4"}},{name:"HTML tags",scope:["entity.name.tag"],settings:{foreground:"#f286c4"}},{name:"CSS attribute parent selectors ('&')",scope:["entity.other.attribute-name.parent-selector"],settings:{foreground:"#f286c4"}},{name:"HTML/CSS attribute names",scope:["entity.other.attribute-name"],settings:{foreground:"#62e884",fontStyle:"italic"}},{name:"Function names",scope:["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],settings:{foreground:"#62e884"}},{name:"Function parameters",scope:["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Decorators",scope:["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],settings:{foreground:"#62e884",fontStyle:"italic"}},{name:"Decorator Objects",scope:["meta.decorator variable.other.object"],settings:{foreground:"#62e884"}},{name:"Keywords",scope:["keyword","punctuation.definition.keyword"],settings:{foreground:"#f286c4"}},{name:'Keyword "new"',scope:["keyword.control.new","keyword.operator.new"],settings:{fontStyle:"bold"}},{name:"Generic selectors (CSS/SCSS/Less/Stylus)",scope:["meta.selector"],settings:{foreground:"#f286c4"}},{name:"Language Built-ins",scope:["support"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{name:"Built-in magic functions and constants",scope:["support.function.magic","support.variable","variable.other.predefined"],settings:{fontStyle:"regular",foreground:"#bf9eee"}},{name:"Built-in functions / properties",scope:["support.function","support.type.property-name"],settings:{fontStyle:"regular"}},{name:"Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)",scope:["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],settings:{foreground:"#f286c4"}},{name:"Brackets, braces, parens, etc.",scope:["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],settings:{foreground:"#f6f6f4"}},{name:"Variable interpolation operators",scope:["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],settings:{foreground:"#f286c4"}},{name:"Keys (serializable languages)",scope:["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],settings:{foreground:"#97e1f1"}},{name:"Dates / timestamps (serializable languages)",scope:["constant.other.date","constant.other.timestamp"],settings:{foreground:"#FFB86C"}},{name:"YAML aliases",scope:["variable.other.alias.yaml"],settings:{fontStyle:"italic underline",foreground:"#62e884"}},{name:"Storage",scope:["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],settings:{fontStyle:"regular",foreground:"#f286c4"}},{name:"Types",scope:["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{name:"Generics, templates, and mapped type declarations",scope:["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],settings:{foreground:"#FFB86C"}},{name:"Modifiers",scope:["storage.modifier"],settings:{foreground:"#f286c4"}},{name:"RegExp string",scope:["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],settings:{foreground:"#e7ee98"}},{name:"Non-capture operators",scope:["punctuation.definition.group.capture.regexp"],settings:{foreground:"#f286c4"}},{name:"RegExp start and end characters",scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#ee6666"}},{name:"Character group",scope:["punctuation.definition.character-class.regexp"],settings:{foreground:"#97e1f1"}},{name:"Capture groups",scope:["punctuation.definition.group.regexp"],settings:{foreground:"#FFB86C"}},{name:"Assertion operators",scope:["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],settings:{foreground:"#ee6666"}},{name:"Positive lookaheads",scope:["meta.assertion.look-ahead.regexp"],settings:{foreground:"#62e884"}},{name:"Strings",scope:["string"],settings:{foreground:"#e7ee98"}},{name:"String quotes (temporary vscode fix)",scope:["punctuation.definition.string.begin","punctuation.definition.string.end"],settings:{foreground:"#dee492"}},{name:"Property quotes (temporary vscode fix)",scope:["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],settings:{foreground:"#97e2f2"}},{name:"Docstrings",scope:["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],settings:{foreground:"#7b7f8b"}},{name:"Variables and object properties",scope:["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],settings:{foreground:"#f6f6f4"}},{name:"Destructuring / aliasing reference name (LHS)",scope:["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Destructuring / aliasing variable name (RHS)",scope:["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],settings:{fontStyle:"normal",foreground:"#f6f6f4"}},{name:"GraphQL keys",scope:["meta.selectionset.graphql variable"],settings:{foreground:"#e7ee98"}},{name:"GraphQL function arguments",scope:["meta.selectionset.graphql meta.arguments variable"],settings:{foreground:"#f6f6f4"}},{name:"GraphQL fragment name (definition)",scope:["entity.name.fragment.graphql","variable.fragment.graphql"],settings:{foreground:"#97e1f1"}},{name:"Edge cases (foreground color resets)",scope:["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],settings:{foreground:"#f6f6f4"}},{name:'Shell variables prefixed with "$" (edge case)',scope:["source.shell variable.other"],settings:{foreground:"#bf9eee"}},{name:"Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)",scope:["support.constant"],settings:{fontStyle:"normal",foreground:"#bf9eee"}},{name:"Makefile prerequisite names",scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#e7ee98"}},{name:"SCSS attibute selector strings",scope:["meta.attribute-selector.scss"],settings:{foreground:"#e7ee98"}},{name:"SCSS attribute selector brackets",scope:["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],settings:{foreground:"#f6f6f4"}},{name:"Haskell Pragmas",scope:["meta.preprocessor.haskell"],settings:{foreground:"#7b7f8b"}},{name:"Log file error",scope:["log.error"],settings:{foreground:"#ee6666",fontStyle:"bold"}},{name:"Log file warning",scope:["log.warning"],settings:{foreground:"#e7ee98",fontStyle:"bold"}}],u={$schema:e,name:t,author:n,maintainers:o,semanticClass:r,semanticHighlighting:true,dracula:a,colors:s,tokenColors:d};export{e as $schema,n as author,s as colors,u as default,a as dracula,o as maintainers,t as name,r as semanticClass,i as semanticHighlighting,d as tokenColors}; diff --git a/lib/dist/theme/dracula.mjs b/lib/dist/theme/dracula.mjs new file mode 100644 index 0000000..834ceff --- /dev/null +++ b/lib/dist/theme/dracula.mjs @@ -0,0 +1 @@ +var e="vscode://schemas/color-theme",t="dracula",n="Zeno Rocha",o=["Derek P Sifford <dereksifford@gmail.com>"],r="theme.dracula",i=!0,a={base:["#282A36","#F8F8F2","#44475A","#6272A4","#8BE9FD","#50FA7B","#FFB86C","#FF79C6","#BD93F9","#FF5555","#F1FA8C"],ansi:["#21222C","#FF5555","#50FA7B","#F1FA8C","#BD93F9","#FF79C6","#8BE9FD","#F8F8F2","#6272A4","#FF6E6E","#69FF94","#FFFFA5","#D6ACFF","#FF92DF","#A4FFFF","#FFFFFF"],brightOther:["#E9F284","#8BE9FE"],other:["#44475A75","#FFFFFF1A","#FFFFFF","#44475A70","#424450","#343746","#21222C","#191A21"]},s={"terminal.background":"#282A36","terminal.foreground":"#F8F8F2","terminal.ansiBrightBlack":"#6272A4","terminal.ansiBrightRed":"#FF6E6E","terminal.ansiBrightGreen":"#69FF94","terminal.ansiBrightYellow":"#FFFFA5","terminal.ansiBrightBlue":"#D6ACFF","terminal.ansiBrightMagenta":"#FF92DF","terminal.ansiBrightCyan":"#A4FFFF","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBlack":"#21222C","terminal.ansiRed":"#FF5555","terminal.ansiGreen":"#50FA7B","terminal.ansiYellow":"#F1FA8C","terminal.ansiBlue":"#BD93F9","terminal.ansiMagenta":"#FF79C6","terminal.ansiCyan":"#8BE9FD","terminal.ansiWhite":"#F8F8F2",focusBorder:"#6272A4",foreground:"#F8F8F2","selection.background":"#BD93F9",errorForeground:"#FF5555","button.background":"#44475A","button.foreground":"#F8F8F2","button.secondaryBackground":"#282A36","button.secondaryForeground":"#F8F8F2","button.secondaryHoverBackground":"#343746","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#F8F8F2","input.background":"#282A36","input.foreground":"#F8F8F2","input.border":"#191A21","input.placeholderForeground":"#6272A4","inputOption.activeBorder":"#BD93F9","inputValidation.infoBorder":"#FF79C6","inputValidation.warningBorder":"#FFB86C","inputValidation.errorBorder":"#FF5555","badge.foreground":"#F8F8F2","badge.background":"#44475A","progressBar.background":"#FF79C6","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#F8F8F2","list.dropBackground":"#44475A","list.focusBackground":"#44475A75","list.highlightForeground":"#8BE9FD","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","list.errorForeground":"#FF5555","activityBar.background":"#343746","activityBar.inactiveForeground":"#6272A4","activityBar.foreground":"#F8F8F2","activityBar.activeBorder":"#FF79C680","activityBar.activeBackground":"#BD93F910","activityBarBadge.background":"#FF79C6","activityBarBadge.foreground":"#F8F8F2","sideBar.background":"#21222C","sideBarTitle.foreground":"#F8F8F2","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","editorGroup.border":"#BD93F9","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","tab.activeBackground":"#282A36","tab.activeForeground":"#F8F8F2","tab.border":"#191A21","tab.activeBorderTop":"#FF79C680","tab.inactiveBackground":"#21222C","tab.inactiveForeground":"#6272A4","editor.foreground":"#F8F8F2","editor.background":"#282A36","editorLineNumber.foreground":"#6272A4","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.foldBackground":"#21222C80","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editorLink.activeForeground":"#8BE9FD","editor.rangeHighlightBackground":"#BD93F915","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#6272A4","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#50FA7B","editorWhitespace.foreground":"#FFFFFF1A","editorIndentGuide.background":"#FFFFFF1A","editorIndentGuide.activeBackground":"#FFFFFF45","editorRuler.foreground":"#FFFFFF1A","editorCodeLens.foreground":"#6272A4","editorBracketHighlight.foreground1":"#F8F8F2","editorBracketHighlight.foreground2":"#FF79C6","editorBracketHighlight.foreground3":"#8BE9FD","editorBracketHighlight.foreground4":"#50FA7B","editorBracketHighlight.foreground5":"#BD93F9","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#FF5555","editorOverviewRuler.border":"#191A21","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.wordHighlightForeground":"#8BE9FD","editorOverviewRuler.wordHighlightStrongForeground":"#50FA7B","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.infoForeground":"#8BE9FD80","editorError.foreground":"#FF5555","editorWarning.foreground":"#8BE9FD","editorGutter.modifiedBackground":"#8BE9FD80","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","gitDecoration.modifiedResourceForeground":"#8BE9FD","gitDecoration.deletedResourceForeground":"#FF5555","gitDecoration.untrackedResourceForeground":"#50FA7B","gitDecoration.ignoredResourceForeground":"#6272A4","gitDecoration.conflictingResourceForeground":"#FFB86C","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","editorWidget.background":"#21222C","editorSuggestWidget.background":"#21222C","editorSuggestWidget.foreground":"#F8F8F2","editorSuggestWidget.selectedBackground":"#44475A","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#6272A4","editorMarkerNavigation.background":"#21222C","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#21222C","peekViewResult.fileForeground":"#F8F8F2","peekViewResult.lineForeground":"#F8F8F2","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#F8F8F2","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#6272A4","peekViewTitleLabel.foreground":"#F8F8F2","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","editorOverviewRuler.currentContentForeground":"#50FA7B","editorOverviewRuler.incomingContentForeground":"#BD93F9","panel.background":"#282A36","panel.border":"#BD93F9","panelTitle.activeBorder":"#FF79C6","panelTitle.activeForeground":"#F8F8F2","panelTitle.inactiveForeground":"#6272A4","statusBar.background":"#191A21","statusBar.foreground":"#F8F8F2","statusBar.debuggingBackground":"#FF5555","statusBar.debuggingForeground":"#191A21","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#F8F8F2","statusBarItem.prominentBackground":"#FF5555","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteForeground":"#282A36","statusBarItem.remoteBackground":"#BD93F9","titleBar.activeBackground":"#21222C","titleBar.activeForeground":"#F8F8F2","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#6272A4","extensionButton.prominentForeground":"#F8F8F2","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentHoverBackground":"#50FA7B60","pickerGroup.border":"#BD93F9","pickerGroup.foreground":"#8BE9FD","debugToolBar.background":"#21222C","walkThrough.embeddedEditorBackground":"#21222C","settings.headerForeground":"#F8F8F2","settings.modifiedItemIndicator":"#FFB86C","settings.dropdownBackground":"#21222C","settings.dropdownForeground":"#F8F8F2","settings.dropdownBorder":"#191A21","settings.checkboxBackground":"#21222C","settings.checkboxForeground":"#F8F8F2","settings.checkboxBorder":"#191A21","settings.textInputBackground":"#21222C","settings.textInputForeground":"#F8F8F2","settings.textInputBorder":"#191A21","settings.numberInputBackground":"#21222C","settings.numberInputForeground":"#F8F8F2","settings.numberInputBorder":"#191A21","breadcrumb.foreground":"#6272A4","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#F8F8F2","breadcrumb.activeSelectionForeground":"#F8F8F2","breadcrumbPicker.background":"#191A21","listFilterWidget.background":"#343746","listFilterWidget.outline":"#424450","listFilterWidget.noMatchesOutline":"#FF5555"},d=[{scope:["emphasis"],settings:{fontStyle:"italic"}},{scope:["strong"],settings:{fontStyle:"bold"}},{scope:["header"],settings:{foreground:"#BD93F9"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#6272A4"}},{scope:["markup.inserted"],settings:{foreground:"#50FA7B"}},{scope:["markup.deleted"],settings:{foreground:"#FF5555"}},{scope:["markup.changed"],settings:{foreground:"#FFB86C"}},{scope:["invalid"],settings:{foreground:"#FF5555",fontStyle:"underline italic"}},{scope:["invalid.deprecated"],settings:{foreground:"#F8F8F2",fontStyle:"underline italic"}},{scope:["entity.name.filename"],settings:{foreground:"#F1FA8C"}},{scope:["markup.error"],settings:{foreground:"#FF5555"}},{name:"Underlined markup",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Bold markup",scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#FFB86C"}},{name:"Markup headings",scope:["markup.heading"],settings:{fontStyle:"bold",foreground:"#BD93F9"}},{name:"Markup italic",scope:["markup.italic"],settings:{foreground:"#F1FA8C",fontStyle:"italic"}},{name:"Bullets, lists (prose)",scope:["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],settings:{foreground:"#8BE9FD"}},{name:"Inline code (prose)",scope:["markup.inline.raw","markup.raw.restructuredtext"],settings:{foreground:"#50FA7B"}},{name:"Links (prose)",scope:["markup.underline.link","markup.underline.link.image"],settings:{foreground:"#8BE9FD"}},{name:"Link text, image alt text (prose)",scope:["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],settings:{foreground:"#FF79C6"}},{name:"Blockquotes (prose)",scope:["entity.name.directive.restructuredtext","markup.quote"],settings:{foreground:"#F1FA8C",fontStyle:"italic"}},{name:"Horizontal rule (prose)",scope:["meta.separator.markdown"],settings:{foreground:"#6272A4"}},{name:"Code blocks",scope:["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],settings:{foreground:"#50FA7B"}},{name:"Prose constants",scope:["punctuation.definition.constant.restructuredtext"],settings:{foreground:"#BD93F9"}},{name:"Braces in markdown headings",scope:["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],settings:{foreground:"#BD93F9"}},{name:"Braces in markdown paragraphs",scope:["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#F8F8F2"}},{name:"Braces in markdown blockquotes",scope:["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#F1FA8C"}},{name:"User-defined class names",scope:["entity.name.type.class","entity.name.class"],settings:{foreground:"#8BE9FD",fontStyle:"normal"}},{name:"this, super, self, etc.",scope:["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],settings:{foreground:"#BD93F9",fontStyle:"italic"}},{name:"Inherited classes",scope:["entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{name:"Comments",scope:["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],settings:{foreground:"#6272A4"}},{name:"JSDoc-style keywords",scope:["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],settings:{foreground:"#FF79C6"}},{name:"JSDoc-style types",scope:["comment.block.documentation entity.name.type"],settings:{foreground:"#8BE9FD",fontStyle:"italic"}},{name:"JSDoc-style type brackets",scope:["comment.block.documentation entity.name.type punctuation.definition.bracket"],settings:{foreground:"#8BE9FD"}},{name:"JSDoc-style comment parameters",scope:["comment.block.documentation variable"],settings:{foreground:"#FFB86C",fontStyle:"italic"}},{name:"Constants",scope:["constant","variable.other.constant"],settings:{foreground:"#BD93F9"}},{name:"Constant escape sequences",scope:["constant.character.escape","constant.character.string.escape","constant.regexp"],settings:{foreground:"#FF79C6"}},{name:"HTML tags",scope:["entity.name.tag"],settings:{foreground:"#FF79C6"}},{name:"CSS attribute parent selectors ('&')",scope:["entity.other.attribute-name.parent-selector"],settings:{foreground:"#FF79C6"}},{name:"HTML/CSS attribute names",scope:["entity.other.attribute-name"],settings:{foreground:"#50FA7B",fontStyle:"italic"}},{name:"Function names",scope:["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],settings:{foreground:"#50FA7B"}},{name:"Function parameters",scope:["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Decorators",scope:["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],settings:{foreground:"#50FA7B",fontStyle:"italic"}},{name:"Decorator Objects",scope:["meta.decorator variable.other.object"],settings:{foreground:"#50FA7B"}},{name:"Keywords",scope:["keyword","punctuation.definition.keyword"],settings:{foreground:"#FF79C6"}},{name:'Keyword "new"',scope:["keyword.control.new","keyword.operator.new"],settings:{fontStyle:"bold"}},{name:"Generic selectors (CSS/SCSS/Less/Stylus)",scope:["meta.selector"],settings:{foreground:"#FF79C6"}},{name:"Language Built-ins",scope:["support"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{name:"Built-in magic functions and constants",scope:["support.function.magic","support.variable","variable.other.predefined"],settings:{fontStyle:"regular",foreground:"#BD93F9"}},{name:"Built-in functions / properties",scope:["support.function","support.type.property-name"],settings:{fontStyle:"regular"}},{name:"Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)",scope:["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],settings:{foreground:"#FF79C6"}},{name:"Brackets, braces, parens, etc.",scope:["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],settings:{foreground:"#F8F8F2"}},{name:"Variable interpolation operators",scope:["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],settings:{foreground:"#FF79C6"}},{name:"Keys (serializable languages)",scope:["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],settings:{foreground:"#8BE9FD"}},{name:"Dates / timestamps (serializable languages)",scope:["constant.other.date","constant.other.timestamp"],settings:{foreground:"#FFB86C"}},{name:"YAML aliases",scope:["variable.other.alias.yaml"],settings:{fontStyle:"italic underline",foreground:"#50FA7B"}},{name:"Storage",scope:["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],settings:{fontStyle:"regular",foreground:"#FF79C6"}},{name:"Types",scope:["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{name:"Generics, templates, and mapped type declarations",scope:["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],settings:{foreground:"#FFB86C"}},{name:"Modifiers",scope:["storage.modifier"],settings:{foreground:"#FF79C6"}},{name:"RegExp string",scope:["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],settings:{foreground:"#F1FA8C"}},{name:"Non-capture operators",scope:["punctuation.definition.group.capture.regexp"],settings:{foreground:"#FF79C6"}},{name:"RegExp start and end characters",scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#FF5555"}},{name:"Character group",scope:["punctuation.definition.character-class.regexp"],settings:{foreground:"#8BE9FD"}},{name:"Capture groups",scope:["punctuation.definition.group.regexp"],settings:{foreground:"#FFB86C"}},{name:"Assertion operators",scope:["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],settings:{foreground:"#FF5555"}},{name:"Positive lookaheads",scope:["meta.assertion.look-ahead.regexp"],settings:{foreground:"#50FA7B"}},{name:"Strings",scope:["string"],settings:{foreground:"#F1FA8C"}},{name:"String quotes (temporary vscode fix)",scope:["punctuation.definition.string.begin","punctuation.definition.string.end"],settings:{foreground:"#E9F284"}},{name:"Property quotes (temporary vscode fix)",scope:["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],settings:{foreground:"#8BE9FE"}},{name:"Docstrings",scope:["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],settings:{foreground:"#6272A4"}},{name:"Variables and object properties",scope:["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],settings:{foreground:"#F8F8F2"}},{name:"Destructuring / aliasing reference name (LHS)",scope:["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Destructuring / aliasing variable name (RHS)",scope:["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],settings:{fontStyle:"normal",foreground:"#F8F8F2"}},{name:"GraphQL keys",scope:["meta.selectionset.graphql variable"],settings:{foreground:"#F1FA8C"}},{name:"GraphQL function arguments",scope:["meta.selectionset.graphql meta.arguments variable"],settings:{foreground:"#F8F8F2"}},{name:"GraphQL fragment name (definition)",scope:["entity.name.fragment.graphql","variable.fragment.graphql"],settings:{foreground:"#8BE9FD"}},{name:"Edge cases (foreground color resets)",scope:["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],settings:{foreground:"#F8F8F2"}},{name:'Shell variables prefixed with "$" (edge case)',scope:["source.shell variable.other"],settings:{foreground:"#BD93F9"}},{name:"Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)",scope:["support.constant"],settings:{fontStyle:"normal",foreground:"#BD93F9"}},{name:"Makefile prerequisite names",scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#F1FA8C"}},{name:"SCSS attibute selector strings",scope:["meta.attribute-selector.scss"],settings:{foreground:"#F1FA8C"}},{name:"SCSS attribute selector brackets",scope:["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],settings:{foreground:"#F8F8F2"}},{name:"Haskell Pragmas",scope:["meta.preprocessor.haskell"],settings:{foreground:"#6272A4"}},{name:"Log file error",scope:["log.error"],settings:{foreground:"#FF5555",fontStyle:"bold"}},{name:"Log file warning",scope:["log.warning"],settings:{foreground:"#F1FA8C",fontStyle:"bold"}}],u={$schema:e,name:t,author:n,maintainers:o,semanticClass:r,semanticHighlighting:true,dracula:a,colors:s,tokenColors:d};export{e as $schema,n as author,s as colors,u as default,a as dracula,o as maintainers,t as name,r as semanticClass,i as semanticHighlighting,d as tokenColors}; diff --git a/lib/dist/theme/github-dark-dimmed.mjs b/lib/dist/theme/github-dark-dimmed.mjs new file mode 100644 index 0000000..25fe28e --- /dev/null +++ b/lib/dist/theme/github-dark-dimmed.mjs @@ -0,0 +1 @@ +var e="github-dark-dimmed",o={focusBorder:"#316dca",foreground:"#adbac7",descriptionForeground:"#768390",errorForeground:"#e5534b","textLink.foreground":"#539bf5","textLink.activeForeground":"#539bf5","textBlockQuote.background":"#1c2128","textBlockQuote.border":"#444c56","textCodeBlock.background":"#636e7b66","textPreformat.foreground":"#768390","textSeparator.foreground":"#373e47","icon.foreground":"#768390","keybindingLabel.foreground":"#adbac7","button.background":"#347d39","button.foreground":"#ffffff","button.hoverBackground":"#46954a","button.secondaryBackground":"#3d444d","button.secondaryForeground":"#adbac7","button.secondaryHoverBackground":"#444c56","checkbox.background":"#2d333b","checkbox.border":"#444c56","dropdown.background":"#2d333b","dropdown.border":"#444c56","dropdown.foreground":"#adbac7","dropdown.listBackground":"#2d333b","input.background":"#22272e","input.border":"#444c56","input.foreground":"#adbac7","input.placeholderForeground":"#545d68","badge.foreground":"#cdd9e5","badge.background":"#316dca","progressBar.background":"#316dca","titleBar.activeForeground":"#768390","titleBar.activeBackground":"#22272e","titleBar.inactiveForeground":"#768390","titleBar.inactiveBackground":"#1c2128","titleBar.border":"#444c56","activityBar.foreground":"#adbac7","activityBar.inactiveForeground":"#768390","activityBar.background":"#22272e","activityBarBadge.foreground":"#cdd9e5","activityBarBadge.background":"#316dca","activityBar.activeBorder":"#ec775c","activityBar.border":"#444c56","sideBar.foreground":"#adbac7","sideBar.background":"#1c2128","sideBar.border":"#444c56","sideBarTitle.foreground":"#adbac7","sideBarSectionHeader.foreground":"#adbac7","sideBarSectionHeader.background":"#1c2128","sideBarSectionHeader.border":"#444c56","list.hoverForeground":"#adbac7","list.inactiveSelectionForeground":"#adbac7","list.activeSelectionForeground":"#adbac7","list.hoverBackground":"#636e7b1a","list.inactiveSelectionBackground":"#636e7b66","list.activeSelectionBackground":"#636e7b66","list.focusForeground":"#adbac7","list.focusBackground":"#4184e426","list.inactiveFocusBackground":"#4184e426","list.highlightForeground":"#539bf5","tree.indentGuidesStroke":"#373e47","notificationCenterHeader.foreground":"#768390","notificationCenterHeader.background":"#2d333b","notifications.foreground":"#adbac7","notifications.background":"#2d333b","notifications.border":"#444c56","notificationsErrorIcon.foreground":"#e5534b","notificationsWarningIcon.foreground":"#c69026","notificationsInfoIcon.foreground":"#539bf5","pickerGroup.border":"#444c56","pickerGroup.foreground":"#768390","quickInput.background":"#2d333b","quickInput.foreground":"#adbac7","statusBar.foreground":"#768390","statusBar.background":"#22272e","statusBar.border":"#444c56","statusBar.focusBorder":"#316dca80","statusBar.noFolderBackground":"#22272e","statusBar.debuggingForeground":"#cdd9e5","statusBar.debuggingBackground":"#c93c37","statusBarItem.prominentBackground":"#636e7b66","statusBarItem.remoteForeground":"#adbac7","statusBarItem.remoteBackground":"#444c56","statusBarItem.hoverBackground":"#adbac714","statusBarItem.activeBackground":"#adbac71f","statusBarItem.focusBorder":"#316dca","editorGroupHeader.tabsBackground":"#1c2128","editorGroupHeader.tabsBorder":"#444c56","editorGroup.border":"#444c56","tab.activeForeground":"#adbac7","tab.inactiveForeground":"#768390","tab.inactiveBackground":"#1c2128","tab.activeBackground":"#22272e","tab.hoverBackground":"#22272e","tab.unfocusedHoverBackground":"#636e7b1a","tab.border":"#444c56","tab.unfocusedActiveBorderTop":"#444c56","tab.activeBorder":"#22272e","tab.unfocusedActiveBorder":"#22272e","tab.activeBorderTop":"#ec775c","breadcrumb.foreground":"#768390","breadcrumb.focusForeground":"#adbac7","breadcrumb.activeSelectionForeground":"#768390","breadcrumbPicker.background":"#2d333b","editor.foreground":"#adbac7","editor.background":"#22272e","editorWidget.background":"#2d333b","editor.foldBackground":"#636e7b1a","editor.lineHighlightBackground":"#636e7b1a","editorLineNumber.foreground":"#636e7b","editorLineNumber.activeForeground":"#adbac7","editorIndentGuide.background":"#adbac71f","editorIndentGuide.activeBackground":"#adbac73d","editorWhitespace.foreground":"#545d68","editorCursor.foreground":"#539bf5","editor.findMatchBackground":"#966600","editor.findMatchHighlightBackground":"#eac55f80","editor.linkedEditingBackground":"#539bf512","editor.selectionHighlightBackground":"#57ab5a40","editor.wordHighlightBackground":"#636e7b80","editor.wordHighlightBorder":"#636e7b99","editor.wordHighlightStrongBackground":"#636e7b4d","editor.wordHighlightStrongBorder":"#636e7b99","editorBracketMatch.background":"#57ab5a40","editorBracketMatch.border":"#57ab5a99","editorInlayHint.background":"#76839033","editorInlayHint.foreground":"#768390","editorInlayHint.typeBackground":"#76839033","editorInlayHint.typeForeground":"#768390","editorInlayHint.paramBackground":"#76839033","editorInlayHint.paramForeground":"#768390","editorGutter.modifiedBackground":"#ae7c1466","editorGutter.addedBackground":"#46954a66","editorGutter.deletedBackground":"#e5534b66","diffEditor.insertedLineBackground":"#347d3933","diffEditor.insertedTextBackground":"#347d394d","diffEditor.removedLineBackground":"#c93c3733","diffEditor.removedTextBackground":"#c93c374d","scrollbar.shadow":"#545d6833","scrollbarSlider.background":"#636e7b33","scrollbarSlider.hoverBackground":"#636e7b45","scrollbarSlider.activeBackground":"#636e7b87","editorOverviewRuler.border":"#1c2128","panel.background":"#1c2128","panel.border":"#444c56","panelTitle.activeBorder":"#ec775c","panelTitle.activeForeground":"#adbac7","panelTitle.inactiveForeground":"#768390","panelInput.border":"#444c56","debugIcon.breakpointForeground":"#e5534b","debugConsole.infoForeground":"#768390","debugConsole.warningForeground":"#c69026","debugConsole.errorForeground":"#ff938a","debugConsole.sourceForeground":"#daaa3f","debugConsoleInputIcon.foreground":"#b083f0","debugTokenExpression.name":"#6cb6ff","debugTokenExpression.value":"#96d0ff","debugTokenExpression.string":"#96d0ff","debugTokenExpression.boolean":"#6bc46d","debugTokenExpression.number":"#6bc46d","debugTokenExpression.error":"#ff938a","symbolIcon.arrayForeground":"#e0823d","symbolIcon.booleanForeground":"#539bf5","symbolIcon.classForeground":"#e0823d","symbolIcon.colorForeground":"#6cb6ff","symbolIcon.constructorForeground":"#dcbdfb","symbolIcon.enumeratorForeground":"#e0823d","symbolIcon.enumeratorMemberForeground":"#539bf5","symbolIcon.eventForeground":"#636e7b","symbolIcon.fieldForeground":"#e0823d","symbolIcon.fileForeground":"#c69026","symbolIcon.folderForeground":"#c69026","symbolIcon.functionForeground":"#b083f0","symbolIcon.interfaceForeground":"#e0823d","symbolIcon.keyForeground":"#539bf5","symbolIcon.keywordForeground":"#f47067","symbolIcon.methodForeground":"#b083f0","symbolIcon.moduleForeground":"#f47067","symbolIcon.namespaceForeground":"#f47067","symbolIcon.nullForeground":"#539bf5","symbolIcon.numberForeground":"#57ab5a","symbolIcon.objectForeground":"#e0823d","symbolIcon.operatorForeground":"#6cb6ff","symbolIcon.packageForeground":"#e0823d","symbolIcon.propertyForeground":"#e0823d","symbolIcon.referenceForeground":"#539bf5","symbolIcon.snippetForeground":"#539bf5","symbolIcon.stringForeground":"#6cb6ff","symbolIcon.structForeground":"#e0823d","symbolIcon.textForeground":"#6cb6ff","symbolIcon.typeParameterForeground":"#6cb6ff","symbolIcon.unitForeground":"#539bf5","symbolIcon.variableForeground":"#e0823d","symbolIcon.constantForeground":["#b4f1b4","#8ddb8c","#6bc46d","#57ab5a","#46954a","#347d39","#2b6a30","#245829","#1b4721","#113417"],"terminal.foreground":"#adbac7","terminal.ansiBlack":"#545d68","terminal.ansiRed":"#f47067","terminal.ansiGreen":"#57ab5a","terminal.ansiYellow":"#c69026","terminal.ansiBlue":"#539bf5","terminal.ansiMagenta":"#b083f0","terminal.ansiCyan":"#39c5cf","terminal.ansiWhite":"#909dab","terminal.ansiBrightBlack":"#636e7b","terminal.ansiBrightRed":"#ff938a","terminal.ansiBrightGreen":"#6bc46d","terminal.ansiBrightYellow":"#daaa3f","terminal.ansiBrightBlue":"#6cb6ff","terminal.ansiBrightMagenta":"#dcbdfb","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiBrightWhite":"#cdd9e5","editorBracketHighlight.foreground1":"#6cb6ff","editorBracketHighlight.foreground2":"#6bc46d","editorBracketHighlight.foreground3":"#daaa3f","editorBracketHighlight.foreground4":"#ff938a","editorBracketHighlight.foreground5":"#fc8dc7","editorBracketHighlight.foreground6":"#dcbdfb","editorBracketHighlight.unexpectedBracket.foreground":"#768390","gitDecoration.addedResourceForeground":"#57ab5a","gitDecoration.modifiedResourceForeground":"#c69026","gitDecoration.deletedResourceForeground":"#e5534b","gitDecoration.untrackedResourceForeground":"#57ab5a","gitDecoration.ignoredResourceForeground":"#545d68","gitDecoration.conflictingResourceForeground":"#cc6b2c","gitDecoration.submoduleResourceForeground":"#768390","debugToolBar.background":"#2d333b","editor.stackFrameHighlightBackground":"#ae7c1466","editor.focusedStackFrameHighlightBackground":"#46954a66","peekViewEditor.matchHighlightBackground":"#ae7c1466","peekViewResult.matchHighlightBackground":"#ae7c1466","peekViewEditor.background":"#636e7b1a","peekViewResult.background":"#22272e","settings.headerForeground":"#768390","settings.modifiedItemIndicator":"#ae7c1466","welcomePage.buttonBackground":"#373e47","welcomePage.buttonHoverBackground":"#444c56"},r=!0,t=[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#768390"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#6cb6ff"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#f69d50"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#adbac7"}},{scope:"entity.name.function",settings:{foreground:"#dcbdfb"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#8ddb8c"}},{scope:"keyword",settings:{foreground:"#f47067"}},{scope:["storage","storage.type"],settings:{foreground:"#f47067"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#adbac7"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#96d0ff"}},{scope:"support",settings:{foreground:"#6cb6ff"}},{scope:"meta.property-name",settings:{foreground:"#6cb6ff"}},{scope:"variable",settings:{foreground:"#f69d50"}},{scope:"variable.other",settings:{foreground:"#adbac7"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#f47067",foreground:"#cdd9e5",content:"^M"}},{scope:"message.error",settings:{foreground:"#ff938a"}},{scope:"string variable",settings:{foreground:"#6cb6ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#96d0ff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#96d0ff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#8ddb8c"}},{scope:"support.constant",settings:{foreground:"#6cb6ff"}},{scope:"support.variable",settings:{foreground:"#6cb6ff"}},{scope:"support.type.property-name.json",settings:{foreground:"#8ddb8c"}},{scope:"meta.module-reference",settings:{foreground:"#6cb6ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#f69d50"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#6cb6ff"}},{scope:"markup.quote",settings:{foreground:"#8ddb8c"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#adbac7"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#adbac7"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#6cb6ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#5d0f12",foreground:"#ff938a"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#f47067"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#113417",foreground:"#8ddb8c"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#682d0f",foreground:"#f69d50"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#2d333b",background:"#6cb6ff"}},{scope:"meta.diff.range",settings:{foreground:"#dcbdfb",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#6cb6ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#6cb6ff"}},{scope:"meta.output",settings:{foreground:"#6cb6ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#768390"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#ff938a"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#96d0ff",fontStyle:"underline"}}],n={name:e,colors:o,semanticHighlighting:true,tokenColors:t};export{o as colors,n as default,e as name,r as semanticHighlighting,t as tokenColors}; diff --git a/lib/dist/theme/github-dark.mjs b/lib/dist/theme/github-dark.mjs new file mode 100644 index 0000000..dd382a8 --- /dev/null +++ b/lib/dist/theme/github-dark.mjs @@ -0,0 +1 @@ +var e="github-dark",o={focusBorder:"#1f6feb",foreground:"#c9d1d9",descriptionForeground:"#8b949e",errorForeground:"#f85149","textLink.foreground":"#58a6ff","textLink.activeForeground":"#58a6ff","textBlockQuote.background":"#010409","textBlockQuote.border":"#30363d","textCodeBlock.background":"#6e768166","textPreformat.foreground":"#8b949e","textSeparator.foreground":"#21262d","icon.foreground":"#8b949e","keybindingLabel.foreground":"#c9d1d9","button.background":"#238636","button.foreground":"#ffffff","button.hoverBackground":"#2ea043","button.secondaryBackground":"#282e33","button.secondaryForeground":"#c9d1d9","button.secondaryHoverBackground":"#30363d","checkbox.background":"#161b22","checkbox.border":"#30363d","dropdown.background":"#161b22","dropdown.border":"#30363d","dropdown.foreground":"#c9d1d9","dropdown.listBackground":"#161b22","input.background":"#0d1117","input.border":"#30363d","input.foreground":"#c9d1d9","input.placeholderForeground":"#484f58","badge.foreground":"#f0f6fc","badge.background":"#1f6feb","progressBar.background":"#1f6feb","titleBar.activeForeground":"#8b949e","titleBar.activeBackground":"#0d1117","titleBar.inactiveForeground":"#8b949e","titleBar.inactiveBackground":"#010409","titleBar.border":"#30363d","activityBar.foreground":"#c9d1d9","activityBar.inactiveForeground":"#8b949e","activityBar.background":"#0d1117","activityBarBadge.foreground":"#f0f6fc","activityBarBadge.background":"#1f6feb","activityBar.activeBorder":"#f78166","activityBar.border":"#30363d","sideBar.foreground":"#c9d1d9","sideBar.background":"#010409","sideBar.border":"#30363d","sideBarTitle.foreground":"#c9d1d9","sideBarSectionHeader.foreground":"#c9d1d9","sideBarSectionHeader.background":"#010409","sideBarSectionHeader.border":"#30363d","list.hoverForeground":"#c9d1d9","list.inactiveSelectionForeground":"#c9d1d9","list.activeSelectionForeground":"#c9d1d9","list.hoverBackground":"#6e76811a","list.inactiveSelectionBackground":"#6e768166","list.activeSelectionBackground":"#6e768166","list.focusForeground":"#c9d1d9","list.focusBackground":"#388bfd26","list.inactiveFocusBackground":"#388bfd26","list.highlightForeground":"#58a6ff","tree.indentGuidesStroke":"#21262d","notificationCenterHeader.foreground":"#8b949e","notificationCenterHeader.background":"#161b22","notifications.foreground":"#c9d1d9","notifications.background":"#161b22","notifications.border":"#30363d","notificationsErrorIcon.foreground":"#f85149","notificationsWarningIcon.foreground":"#d29922","notificationsInfoIcon.foreground":"#58a6ff","pickerGroup.border":"#30363d","pickerGroup.foreground":"#8b949e","quickInput.background":"#161b22","quickInput.foreground":"#c9d1d9","statusBar.foreground":"#8b949e","statusBar.background":"#0d1117","statusBar.border":"#30363d","statusBar.focusBorder":"#1f6feb80","statusBar.noFolderBackground":"#0d1117","statusBar.debuggingForeground":"#f0f6fc","statusBar.debuggingBackground":"#da3633","statusBarItem.prominentBackground":"#6e768166","statusBarItem.remoteForeground":"#c9d1d9","statusBarItem.remoteBackground":"#30363d","statusBarItem.hoverBackground":"#c9d1d914","statusBarItem.activeBackground":"#c9d1d91f","statusBarItem.focusBorder":"#1f6feb","editorGroupHeader.tabsBackground":"#010409","editorGroupHeader.tabsBorder":"#30363d","editorGroup.border":"#30363d","tab.activeForeground":"#c9d1d9","tab.inactiveForeground":"#8b949e","tab.inactiveBackground":"#010409","tab.activeBackground":"#0d1117","tab.hoverBackground":"#0d1117","tab.unfocusedHoverBackground":"#6e76811a","tab.border":"#30363d","tab.unfocusedActiveBorderTop":"#30363d","tab.activeBorder":"#0d1117","tab.unfocusedActiveBorder":"#0d1117","tab.activeBorderTop":"#f78166","breadcrumb.foreground":"#8b949e","breadcrumb.focusForeground":"#c9d1d9","breadcrumb.activeSelectionForeground":"#8b949e","breadcrumbPicker.background":"#161b22","editor.foreground":"#c9d1d9","editor.background":"#0d1117","editorWidget.background":"#161b22","editor.foldBackground":"#6e76811a","editor.lineHighlightBackground":"#6e76811a","editorLineNumber.foreground":"#6e7681","editorLineNumber.activeForeground":"#c9d1d9","editorIndentGuide.background":"#c9d1d91f","editorIndentGuide.activeBackground":"#c9d1d93d","editorWhitespace.foreground":"#484f58","editorCursor.foreground":"#58a6ff","editor.findMatchBackground":"#9e6a03","editor.findMatchHighlightBackground":"#f2cc6080","editor.linkedEditingBackground":"#58a6ff12","editor.selectionHighlightBackground":"#3fb95040","editor.wordHighlightBackground":"#6e768180","editor.wordHighlightBorder":"#6e768199","editor.wordHighlightStrongBackground":"#6e76814d","editor.wordHighlightStrongBorder":"#6e768199","editorBracketMatch.background":"#3fb95040","editorBracketMatch.border":"#3fb95099","editorInlayHint.background":"#8b949e33","editorInlayHint.foreground":"#8b949e","editorInlayHint.typeBackground":"#8b949e33","editorInlayHint.typeForeground":"#8b949e","editorInlayHint.paramBackground":"#8b949e33","editorInlayHint.paramForeground":"#8b949e","editorGutter.modifiedBackground":"#bb800966","editorGutter.addedBackground":"#2ea04366","editorGutter.deletedBackground":"#f8514966","diffEditor.insertedLineBackground":"#23863633","diffEditor.insertedTextBackground":"#2386364d","diffEditor.removedLineBackground":"#da363333","diffEditor.removedTextBackground":"#da36334d","scrollbar.shadow":"#484f5833","scrollbarSlider.background":"#6e768133","scrollbarSlider.hoverBackground":"#6e768145","scrollbarSlider.activeBackground":"#6e768187","editorOverviewRuler.border":"#010409","panel.background":"#010409","panel.border":"#30363d","panelTitle.activeBorder":"#f78166","panelTitle.activeForeground":"#c9d1d9","panelTitle.inactiveForeground":"#8b949e","panelInput.border":"#30363d","debugIcon.breakpointForeground":"#f85149","debugConsole.infoForeground":"#8b949e","debugConsole.warningForeground":"#d29922","debugConsole.errorForeground":"#ffa198","debugConsole.sourceForeground":"#e3b341","debugConsoleInputIcon.foreground":"#bc8cff","debugTokenExpression.name":"#79c0ff","debugTokenExpression.value":"#a5d6ff","debugTokenExpression.string":"#a5d6ff","debugTokenExpression.boolean":"#56d364","debugTokenExpression.number":"#56d364","debugTokenExpression.error":"#ffa198","symbolIcon.arrayForeground":"#f0883e","symbolIcon.booleanForeground":"#58a6ff","symbolIcon.classForeground":"#f0883e","symbolIcon.colorForeground":"#79c0ff","symbolIcon.constructorForeground":"#d2a8ff","symbolIcon.enumeratorForeground":"#f0883e","symbolIcon.enumeratorMemberForeground":"#58a6ff","symbolIcon.eventForeground":"#6e7681","symbolIcon.fieldForeground":"#f0883e","symbolIcon.fileForeground":"#d29922","symbolIcon.folderForeground":"#d29922","symbolIcon.functionForeground":"#bc8cff","symbolIcon.interfaceForeground":"#f0883e","symbolIcon.keyForeground":"#58a6ff","symbolIcon.keywordForeground":"#ff7b72","symbolIcon.methodForeground":"#bc8cff","symbolIcon.moduleForeground":"#ff7b72","symbolIcon.namespaceForeground":"#ff7b72","symbolIcon.nullForeground":"#58a6ff","symbolIcon.numberForeground":"#3fb950","symbolIcon.objectForeground":"#f0883e","symbolIcon.operatorForeground":"#79c0ff","symbolIcon.packageForeground":"#f0883e","symbolIcon.propertyForeground":"#f0883e","symbolIcon.referenceForeground":"#58a6ff","symbolIcon.snippetForeground":"#58a6ff","symbolIcon.stringForeground":"#79c0ff","symbolIcon.structForeground":"#f0883e","symbolIcon.textForeground":"#79c0ff","symbolIcon.typeParameterForeground":"#79c0ff","symbolIcon.unitForeground":"#58a6ff","symbolIcon.variableForeground":"#f0883e","symbolIcon.constantForeground":["#aff5b4","#7ee787","#56d364","#3fb950","#2ea043","#238636","#196c2e","#0f5323","#033a16","#04260f"],"terminal.foreground":"#c9d1d9","terminal.ansiBlack":"#484f58","terminal.ansiRed":"#ff7b72","terminal.ansiGreen":"#3fb950","terminal.ansiYellow":"#d29922","terminal.ansiBlue":"#58a6ff","terminal.ansiMagenta":"#bc8cff","terminal.ansiCyan":"#39c5cf","terminal.ansiWhite":"#b1bac4","terminal.ansiBrightBlack":"#6e7681","terminal.ansiBrightRed":"#ffa198","terminal.ansiBrightGreen":"#56d364","terminal.ansiBrightYellow":"#e3b341","terminal.ansiBrightBlue":"#79c0ff","terminal.ansiBrightMagenta":"#d2a8ff","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiBrightWhite":"#f0f6fc","editorBracketHighlight.foreground1":"#79c0ff","editorBracketHighlight.foreground2":"#56d364","editorBracketHighlight.foreground3":"#e3b341","editorBracketHighlight.foreground4":"#ffa198","editorBracketHighlight.foreground5":"#ff9bce","editorBracketHighlight.foreground6":"#d2a8ff","editorBracketHighlight.unexpectedBracket.foreground":"#8b949e","gitDecoration.addedResourceForeground":"#3fb950","gitDecoration.modifiedResourceForeground":"#d29922","gitDecoration.deletedResourceForeground":"#f85149","gitDecoration.untrackedResourceForeground":"#3fb950","gitDecoration.ignoredResourceForeground":"#484f58","gitDecoration.conflictingResourceForeground":"#db6d28","gitDecoration.submoduleResourceForeground":"#8b949e","debugToolBar.background":"#161b22","editor.stackFrameHighlightBackground":"#bb800966","editor.focusedStackFrameHighlightBackground":"#2ea04366","peekViewEditor.matchHighlightBackground":"#bb800966","peekViewResult.matchHighlightBackground":"#bb800966","peekViewEditor.background":"#6e76811a","peekViewResult.background":"#0d1117","settings.headerForeground":"#8b949e","settings.modifiedItemIndicator":"#bb800966","welcomePage.buttonBackground":"#21262d","welcomePage.buttonHoverBackground":"#30363d"},r=!0,t=[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#8b949e"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#79c0ff"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#ffa657"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#c9d1d9"}},{scope:"entity.name.function",settings:{foreground:"#d2a8ff"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#7ee787"}},{scope:"keyword",settings:{foreground:"#ff7b72"}},{scope:["storage","storage.type"],settings:{foreground:"#ff7b72"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#c9d1d9"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#a5d6ff"}},{scope:"support",settings:{foreground:"#79c0ff"}},{scope:"meta.property-name",settings:{foreground:"#79c0ff"}},{scope:"variable",settings:{foreground:"#ffa657"}},{scope:"variable.other",settings:{foreground:"#c9d1d9"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#ffa198"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#ff7b72",foreground:"#f0f6fc",content:"^M"}},{scope:"message.error",settings:{foreground:"#ffa198"}},{scope:"string variable",settings:{foreground:"#79c0ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#a5d6ff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#a5d6ff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#7ee787"}},{scope:"support.constant",settings:{foreground:"#79c0ff"}},{scope:"support.variable",settings:{foreground:"#79c0ff"}},{scope:"support.type.property-name.json",settings:{foreground:"#7ee787"}},{scope:"meta.module-reference",settings:{foreground:"#79c0ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#ffa657"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#79c0ff"}},{scope:"markup.quote",settings:{foreground:"#7ee787"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#c9d1d9"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#c9d1d9"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#79c0ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#490202",foreground:"#ffa198"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#ff7b72"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#04260f",foreground:"#7ee787"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#5a1e02",foreground:"#ffa657"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#161b22",background:"#79c0ff"}},{scope:"meta.diff.range",settings:{foreground:"#d2a8ff",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#79c0ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79c0ff"}},{scope:"meta.output",settings:{foreground:"#79c0ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#8b949e"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#ffa198"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#a5d6ff",fontStyle:"underline"}}],n={name:e,colors:o,semanticHighlighting:true,tokenColors:t};export{o as colors,n as default,e as name,r as semanticHighlighting,t as tokenColors}; diff --git a/lib/dist/theme/github-from-css.mjs b/lib/dist/theme/github-from-css.mjs new file mode 100644 index 0000000..24e21e8 --- /dev/null +++ b/lib/dist/theme/github-from-css.mjs @@ -0,0 +1 @@ +var e="github-from-css",r="from-css",t=[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"var(--ch-1)"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"var(--ch-2)"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"var(--ch-3)"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"var(--ch-4)"}},{scope:"entity.name.function",settings:{foreground:"var(--ch-5)"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"var(--ch-6)"}},{scope:"keyword",settings:{foreground:"var(--ch-7)"}},{scope:["storage","storage.type"],settings:{foreground:"var(--ch-7)"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"var(--ch-4)"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"var(--ch-8)"}},{scope:"support",settings:{foreground:"var(--ch-2)"}},{scope:"meta.property-name",settings:{foreground:"var(--ch-2)"}},{scope:"variable",settings:{foreground:"var(--ch-3)"}},{scope:"variable.other",settings:{foreground:"var(--ch-4)"}},{scope:"invalid.broken",settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:"invalid.deprecated",settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:"invalid.illegal",settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:"invalid.unimplemented",settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:"carriage-return",settings:{background:"var(--ch-7)",foreground:"var(--ch-10)",fontStyle:"italic underline"}},{scope:"message.error",settings:{foreground:"var(--ch-9)"}},{scope:"string variable",settings:{foreground:"var(--ch-2)"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"var(--ch-8)"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"var(--ch-8)"}},{scope:"string.regexp constant.character.escape",settings:{foreground:"var(--ch-6)",fontStyle:"bold"}},{scope:"support.constant",settings:{foreground:"var(--ch-2)"}},{scope:"support.variable",settings:{foreground:"var(--ch-2)"}},{scope:"support.type.property-name.json",settings:{foreground:"var(--ch-6)"}},{scope:"meta.module-reference",settings:{foreground:"var(--ch-2)"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"var(--ch-3)"}},{scope:["markup.heading","markup.heading entity.name"],settings:{foreground:"var(--ch-2)",fontStyle:"bold"}},{scope:"markup.quote",settings:{foreground:"var(--ch-6)"}},{scope:"markup.italic",settings:{foreground:"var(--ch-4)",fontStyle:"italic"}},{scope:"markup.bold",settings:{foreground:"var(--ch-4)",fontStyle:"bold"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"var(--ch-2)"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"var(--ch-11)",foreground:"var(--ch-9)"}},{scope:["punctuation.section.embedded"],settings:{foreground:"var(--ch-7)"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"var(--ch-12)",foreground:"var(--ch-6)"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"var(--ch-13)",foreground:"var(--ch-3)"}},{scope:["markup.ignored","markup.untracked"],settings:{background:"var(--ch-2)",foreground:"var(--ch-14)"}},{scope:"meta.diff.range",settings:{foreground:"var(--ch-5)",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"var(--ch-2)"}},{scope:"meta.separator",settings:{foreground:"var(--ch-2)",fontStyle:"bold"}},{scope:"meta.output",settings:{foreground:"var(--ch-2)"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"var(--ch-15)"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"var(--ch-9)"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"var(--ch-8)",fontStyle:"underline"}}],o={"editor.background":"var(--ch-16)","editor.foreground":"var(--ch-4)","editor.lineHighlightBackground":"var(--ch-17)","editor.rangeHighlightBackground":"var(--ch-18)","editor.infoForeground":"var(--ch-19)","editor.selectionBackground":"var(--ch-20)",focusBorder:"var(--ch-21)","tab.activeBackground":"var(--ch-16)","tab.activeForeground":"var(--ch-4)","tab.inactiveBackground":"var(--ch-22)","tab.inactiveForeground":"var(--ch-15)","tab.border":"var(--ch-23)","tab.activeBorder":"var(--ch-16)","editorGroup.border":"var(--ch-23)","editorGroupHeader.tabsBackground":"var(--ch-22)","editorLineNumber.foreground":"var(--ch-24)","input.background":"var(--ch-16)","input.foreground":"var(--ch-4)","input.border":"var(--ch-23)","icon.foreground":"var(--ch-15)","sideBar.background":"var(--ch-22)","sideBar.foreground":"var(--ch-4)","sideBar.border":"var(--ch-23)","list.activeSelectionBackground":"var(--ch-25)","list.activeSelectionForeground":"var(--ch-4)","list.hoverBackground":"var(--ch-17)","list.hoverForeground":"var(--ch-4)",foreground:"var(--ch-4)",background:"var(--ch-16)","lighter.inlineBackground":"var(--ch-26)"},n={name:e,type:r,tokenColors:t,colors:o};export{o as colors,n as default,e as name,t as tokenColors,r as type}; diff --git a/lib/dist/theme/github-light.mjs b/lib/dist/theme/github-light.mjs new file mode 100644 index 0000000..3086d32 --- /dev/null +++ b/lib/dist/theme/github-light.mjs @@ -0,0 +1 @@ +var e="github-light",o={focusBorder:"#0969da",foreground:"#24292f",descriptionForeground:"#57606a",errorForeground:"#cf222e","textLink.foreground":"#0969da","textLink.activeForeground":"#0969da","textBlockQuote.background":"#f6f8fa","textBlockQuote.border":"#d0d7de","textCodeBlock.background":"#afb8c133","textPreformat.foreground":"#57606a","textSeparator.foreground":"#d8dee4","icon.foreground":"#57606a","keybindingLabel.foreground":"#24292f","button.background":"#2da44e","button.foreground":"#ffffff","button.hoverBackground":"#2c974b","button.secondaryBackground":"#ebecf0","button.secondaryForeground":"#24292f","button.secondaryHoverBackground":"#f3f4f6","checkbox.background":"#f6f8fa","checkbox.border":"#d0d7de","dropdown.background":"#ffffff","dropdown.border":"#d0d7de","dropdown.foreground":"#24292f","dropdown.listBackground":"#ffffff","input.background":"#ffffff","input.border":"#d0d7de","input.foreground":"#24292f","input.placeholderForeground":"#6e7781","badge.foreground":"#ffffff","badge.background":"#0969da","progressBar.background":"#0969da","titleBar.activeForeground":"#57606a","titleBar.activeBackground":"#ffffff","titleBar.inactiveForeground":"#57606a","titleBar.inactiveBackground":"#f6f8fa","titleBar.border":"#d0d7de","activityBar.foreground":"#24292f","activityBar.inactiveForeground":"#57606a","activityBar.background":"#ffffff","activityBarBadge.foreground":"#ffffff","activityBarBadge.background":"#0969da","activityBar.activeBorder":"#fd8c73","activityBar.border":"#d0d7de","sideBar.foreground":"#24292f","sideBar.background":"#f6f8fa","sideBar.border":"#d0d7de","sideBarTitle.foreground":"#24292f","sideBarSectionHeader.foreground":"#24292f","sideBarSectionHeader.background":"#f6f8fa","sideBarSectionHeader.border":"#d0d7de","list.hoverForeground":"#24292f","list.inactiveSelectionForeground":"#24292f","list.activeSelectionForeground":"#24292f","list.hoverBackground":"#eaeef280","list.inactiveSelectionBackground":"#afb8c133","list.activeSelectionBackground":"#afb8c133","list.focusForeground":"#24292f","list.focusBackground":"#ddf4ff","list.inactiveFocusBackground":"#ddf4ff","list.highlightForeground":"#0969da","tree.indentGuidesStroke":"#d8dee4","notificationCenterHeader.foreground":"#57606a","notificationCenterHeader.background":"#f6f8fa","notifications.foreground":"#24292f","notifications.background":"#ffffff","notifications.border":"#d0d7de","notificationsErrorIcon.foreground":"#cf222e","notificationsWarningIcon.foreground":"#9a6700","notificationsInfoIcon.foreground":"#0969da","pickerGroup.border":"#d0d7de","pickerGroup.foreground":"#57606a","quickInput.background":"#ffffff","quickInput.foreground":"#24292f","statusBar.foreground":"#57606a","statusBar.background":"#ffffff","statusBar.border":"#d0d7de","statusBar.focusBorder":"#0969da80","statusBar.noFolderBackground":"#ffffff","statusBar.debuggingForeground":"#ffffff","statusBar.debuggingBackground":"#cf222e","statusBarItem.prominentBackground":"#afb8c133","statusBarItem.remoteForeground":"#24292f","statusBarItem.remoteBackground":"#eaeef2","statusBarItem.hoverBackground":"#24292f14","statusBarItem.activeBackground":"#24292f1f","statusBarItem.focusBorder":"#0969da","editorGroupHeader.tabsBackground":"#f6f8fa","editorGroupHeader.tabsBorder":"#d0d7de","editorGroup.border":"#d0d7de","tab.activeForeground":"#24292f","tab.inactiveForeground":"#57606a","tab.inactiveBackground":"#f6f8fa","tab.activeBackground":"#ffffff","tab.hoverBackground":"#ffffff","tab.unfocusedHoverBackground":"#eaeef280","tab.border":"#d0d7de","tab.unfocusedActiveBorderTop":"#d0d7de","tab.activeBorder":"#ffffff","tab.unfocusedActiveBorder":"#ffffff","tab.activeBorderTop":"#fd8c73","breadcrumb.foreground":"#57606a","breadcrumb.focusForeground":"#24292f","breadcrumb.activeSelectionForeground":"#57606a","breadcrumbPicker.background":"#ffffff","editor.foreground":"#24292f","editor.background":"#ffffff","editorWidget.background":"#ffffff","editor.foldBackground":"#6e77811a","editor.lineHighlightBackground":"#eaeef280","editorLineNumber.foreground":"#8c959f","editorLineNumber.activeForeground":"#24292f","editorIndentGuide.background":"#24292f1f","editorIndentGuide.activeBackground":"#24292f3d","editorWhitespace.foreground":"#afb8c1","editorCursor.foreground":"#0969da","editor.findMatchBackground":"#bf8700","editor.findMatchHighlightBackground":"#fae17d80","editor.linkedEditingBackground":"#0969da12","editor.selectionHighlightBackground":"#4ac26b40","editor.wordHighlightBackground":"#eaeef280","editor.wordHighlightBorder":"#afb8c199","editor.wordHighlightStrongBackground":"#afb8c14d","editor.wordHighlightStrongBorder":"#afb8c199","editorBracketMatch.background":"#4ac26b40","editorBracketMatch.border":"#4ac26b99","editorInlayHint.background":"#afb8c133","editorInlayHint.foreground":"#57606a","editorInlayHint.typeBackground":"#afb8c133","editorInlayHint.typeForeground":"#57606a","editorInlayHint.paramBackground":"#afb8c133","editorInlayHint.paramForeground":"#57606a","editorGutter.modifiedBackground":"#d4a72c66","editorGutter.addedBackground":"#4ac26b66","editorGutter.deletedBackground":"#ff818266","diffEditor.insertedLineBackground":"#aceebb4d","diffEditor.insertedTextBackground":"#6fdd8b66","diffEditor.removedLineBackground":"#ffcecb4d","diffEditor.removedTextBackground":"#ffaba866","scrollbar.shadow":"#6e778133","scrollbarSlider.background":"#8c959f33","scrollbarSlider.hoverBackground":"#8c959f45","scrollbarSlider.activeBackground":"#8c959f87","editorOverviewRuler.border":"#ffffff","panel.background":"#f6f8fa","panel.border":"#d0d7de","panelTitle.activeBorder":"#fd8c73","panelTitle.activeForeground":"#24292f","panelTitle.inactiveForeground":"#57606a","panelInput.border":"#d0d7de","debugIcon.breakpointForeground":"#cf222e","debugConsole.infoForeground":"#57606a","debugConsole.warningForeground":"#7d4e00","debugConsole.errorForeground":"#cf222e","debugConsole.sourceForeground":"#9a6700","debugConsoleInputIcon.foreground":"#6639ba","debugTokenExpression.name":"#0550ae","debugTokenExpression.value":"#0a3069","debugTokenExpression.string":"#0a3069","debugTokenExpression.boolean":"#116329","debugTokenExpression.number":"#116329","debugTokenExpression.error":"#a40e26","symbolIcon.arrayForeground":"#953800","symbolIcon.booleanForeground":"#0550ae","symbolIcon.classForeground":"#953800","symbolIcon.colorForeground":"#0a3069","symbolIcon.constructorForeground":"#3e1f79","symbolIcon.enumeratorForeground":"#953800","symbolIcon.enumeratorMemberForeground":"#0550ae","symbolIcon.eventForeground":"#57606a","symbolIcon.fieldForeground":"#953800","symbolIcon.fileForeground":"#7d4e00","symbolIcon.folderForeground":"#7d4e00","symbolIcon.functionForeground":"#6639ba","symbolIcon.interfaceForeground":"#953800","symbolIcon.keyForeground":"#0550ae","symbolIcon.keywordForeground":"#a40e26","symbolIcon.methodForeground":"#6639ba","symbolIcon.moduleForeground":"#a40e26","symbolIcon.namespaceForeground":"#a40e26","symbolIcon.nullForeground":"#0550ae","symbolIcon.numberForeground":"#116329","symbolIcon.objectForeground":"#953800","symbolIcon.operatorForeground":"#0a3069","symbolIcon.packageForeground":"#953800","symbolIcon.propertyForeground":"#953800","symbolIcon.referenceForeground":"#0550ae","symbolIcon.snippetForeground":"#0550ae","symbolIcon.stringForeground":"#0a3069","symbolIcon.structForeground":"#953800","symbolIcon.textForeground":"#0a3069","symbolIcon.typeParameterForeground":"#0a3069","symbolIcon.unitForeground":"#0550ae","symbolIcon.variableForeground":"#953800","symbolIcon.constantForeground":"#116329","terminal.foreground":"#24292f","terminal.ansiBlack":"#24292f","terminal.ansiRed":"#cf222e","terminal.ansiGreen":"#116329","terminal.ansiYellow":"#4d2d00","terminal.ansiBlue":"#0969da","terminal.ansiMagenta":"#8250df","terminal.ansiCyan":"#1b7c83","terminal.ansiWhite":"#6e7781","terminal.ansiBrightBlack":"#57606a","terminal.ansiBrightRed":"#a40e26","terminal.ansiBrightGreen":"#1a7f37","terminal.ansiBrightYellow":"#633c01","terminal.ansiBrightBlue":"#218bff","terminal.ansiBrightMagenta":"#a475f9","terminal.ansiBrightCyan":"#3192aa","terminal.ansiBrightWhite":"#8c959f","editorBracketHighlight.foreground1":"#0969da","editorBracketHighlight.foreground2":"#1a7f37","editorBracketHighlight.foreground3":"#9a6700","editorBracketHighlight.foreground4":"#cf222e","editorBracketHighlight.foreground5":"#bf3989","editorBracketHighlight.foreground6":"#8250df","editorBracketHighlight.unexpectedBracket.foreground":"#57606a","gitDecoration.addedResourceForeground":"#1a7f37","gitDecoration.modifiedResourceForeground":"#9a6700","gitDecoration.deletedResourceForeground":"#cf222e","gitDecoration.untrackedResourceForeground":"#1a7f37","gitDecoration.ignoredResourceForeground":"#6e7781","gitDecoration.conflictingResourceForeground":"#bc4c00","gitDecoration.submoduleResourceForeground":"#57606a","debugToolBar.background":"#ffffff","editor.stackFrameHighlightBackground":"#d4a72c66","editor.focusedStackFrameHighlightBackground":"#4ac26b66","settings.headerForeground":"#57606a","settings.modifiedItemIndicator":"#d4a72c66","welcomePage.buttonBackground":"#f6f8fa","welcomePage.buttonHoverBackground":"#f3f4f6"},r=!0,t=[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#6e7781"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#0550ae"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#953800"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#24292f"}},{scope:"entity.name.function",settings:{foreground:"#8250df"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#116329"}},{scope:"keyword",settings:{foreground:"#cf222e"}},{scope:["storage","storage.type"],settings:{foreground:"#cf222e"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#24292f"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#0a3069"}},{scope:"support",settings:{foreground:"#0550ae"}},{scope:"meta.property-name",settings:{foreground:"#0550ae"}},{scope:"variable",settings:{foreground:"#953800"}},{scope:"variable.other",settings:{foreground:"#24292f"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#82071e"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#cf222e",foreground:"#f6f8fa",content:"^M"}},{scope:"message.error",settings:{foreground:"#82071e"}},{scope:"string variable",settings:{foreground:"#0550ae"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#0a3069"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#0a3069"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#116329"}},{scope:"support.constant",settings:{foreground:"#0550ae"}},{scope:"support.variable",settings:{foreground:"#0550ae"}},{scope:"support.type.property-name.json",settings:{foreground:"#116329"}},{scope:"meta.module-reference",settings:{foreground:"#0550ae"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#953800"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#0550ae"}},{scope:"markup.quote",settings:{foreground:"#116329"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#24292f"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#24292f"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#0550ae"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#ffebe9",foreground:"#82071e"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#cf222e"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#dafbe1",foreground:"#116329"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#ffd8b5",foreground:"#953800"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#eaeef2",background:"#0550ae"}},{scope:"meta.diff.range",settings:{foreground:"#8250df",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#0550ae"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#0550ae"}},{scope:"meta.output",settings:{foreground:"#0550ae"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#57606a"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#82071e"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#0a3069",fontStyle:"underline"}}],n={name:e,colors:o,semanticHighlighting:true,tokenColors:t};export{o as colors,n as default,e as name,r as semanticHighlighting,t as tokenColors}; diff --git a/lib/dist/theme/light-plus.mjs b/lib/dist/theme/light-plus.mjs new file mode 100644 index 0000000..df217cf --- /dev/null +++ b/lib/dist/theme/light-plus.mjs @@ -0,0 +1 @@ +var e="vscode://schemas/color-theme",t="light-plus",o=[{settings:{foreground:"#000000"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#000000ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000ff"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811f3f"}},{name:"css tags in selectors, xml tags",scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#e50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#cd3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#000080"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#800000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#a31515"}},{scope:"markup.changed",settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451a5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{name:"brackets of XML/HTML tags",scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000ff"}},{scope:"meta.preprocessor.string",settings:{foreground:"#a31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451a5"}},{scope:"storage",settings:{foreground:"#0000ff"}},{scope:"storage.type",settings:{foreground:"#0000ff"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000ff"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#a31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000ff"}},{scope:"string.regexp",settings:{foreground:"#811f3f"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000ff"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#e50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451a5"}},{scope:"keyword",settings:{foreground:"#0000ff"}},{scope:"keyword.control",settings:{foreground:"#0000ff"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000ff"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451a5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{name:"coloring of the Java import and package identifiers",scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#0000ff"}},{name:"Function declarations",scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{name:"Types declaration and references",scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267f99"}},{name:"Types declaration and references, TS grammar specific",scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267f99"}},{name:"Control flow / Special keywords",scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{name:"Variable and parameter name",scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{name:"Constants and enums",scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{name:"Object keys, TS grammar specific",scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{name:"CSS property value",scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{name:"Regular expression groups",scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#d16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811f3f"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:"constant.character",settings:{foreground:"#0000ff"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}}],r=!0,n={newOperator:"#AF00DB",stringLiteral:"#a31515",customLiteral:"#795E26",numberLiteral:"#098658"},s={"checkbox.border":"#919191","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editorIndentGuide.background":"#D3D3D3","editorIndentGuide.activeBackground":"#939393","editor.selectionHighlightBackground":"#ADD6FF80","editorSuggestWidget.background":"#F3F3F3","activityBarBadge.background":"#007ACC","sideBarTitle.foreground":"#6F6F6F","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","input.placeholderForeground":"#767676","searchEditor.textInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","statusBarItem.remoteForeground":"#FFF","statusBarItem.remoteBackground":"#16825D","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","tab.lastPinnedBorder":"#61616130","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","statusBarItem.errorBackground":"#c72e0f","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"},a={$schema:e,name:t,tokenColors:o,semanticHighlighting:true,semanticTokenColors:n,colors:s};export{e as $schema,s as colors,a as default,t as name,r as semanticHighlighting,n as semanticTokenColors,o as tokenColors}; diff --git a/lib/dist/theme/material-darker.mjs b/lib/dist/theme/material-darker.mjs new file mode 100644 index 0000000..590b565 --- /dev/null +++ b/lib/dist/theme/material-darker.mjs @@ -0,0 +1 @@ +var e="material-darker",t=!0,r=[{name:"Global settings",settings:{background:"#212121",foreground:"#EEFFFF"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#EEFFFF"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#EEFFFF"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#545454",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#545454",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#EEFFFF"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#EEFFFF"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#545454"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#EEFFFF"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#EEFFFF"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#EEFFFF"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#EEFFFF"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#212121",foreground:"#EEFFFF"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#EEFFFF90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],o={focusBorder:"#FFFFFF00",foreground:"#EEFFFF","button.background":"#61616150","button.foreground":"#ffffff","dropdown.background":"#212121","input.background":"#2B2B2B","inputOption.activeBorder":"#EEFFFF30","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#212121","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#212121","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#545454","sideBar.background":"#212121","sideBarSectionHeader.background":"#212121","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#212121","tab.border":"#212121","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#212121","tab.activeModifiedBorder":"#616161","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#212121","editor.foreground":"#EEFFFF","editorLineNumber.foreground":"#424242","editorLineNumber.activeForeground":"#616161","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#61616150","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#EEFFFF","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#212121","editorHoverWidget.background":"#212121","editorMarkerNavigation.background":"#EEFFFF05","peekView.border":"#00000030","peekViewEditor.background":"#EEFFFF05","peekViewResult.background":"#EEFFFF05","peekViewTitle.background":"#EEFFFF05","panel.background":"#212121","panel.border":"#21212160","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#EEFFFF","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#212121","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#212121","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#54545420","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#212121","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#545454","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#212121","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#424242","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#EEFFFF","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#424242","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#EEFFFF30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#EEFFFF","sideBar.foreground":"#616161","sideBar.border":"#21212160","sideBarTitle.foreground":"#EEFFFF","sideBarSectionHeader.border":"#21212160","panel.dropBackground":"#EEFFFF","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#42424270","editorIndentGuide.activeBackground":"#424242","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#21212160","activityBar.foreground":"#EEFFFF","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#545454","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#616161","tab.activeBackground":"#212121","tab.unfocusedActiveForeground":"#EEFFFF","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#21212160","statusBar.foreground":"#616161","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#212121","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#212121","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#EEFFFF","titleBar.inactiveBackground":"#212121","titleBar.inactiveForeground":"#616161","titleBar.border":"#21212160","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#212121","quickInput.foreground":"#616161","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#EEFFFF20","editorSuggestWidget.background":"#212121","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#212121","notifications.foreground":"#EEFFFF","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#EEFFFF05","peekViewTitleDescription.foreground":"#EEFFFF60","peekViewResult.matchHighlightBackground":"#61616150","peekViewEditor.matchHighlightBackground":"#61616150","peekViewResult.selectionBackground":"#61616170","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#61616190","breadcrumb.background":"#212121","breadcrumb.foreground":"#616161","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#212121","menu.background":"#212121","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#EEFFFF","settings.dropdownBackground":"#212121","settings.numberInputForeground":"#EEFFFF","settings.numberInputBackground":"#212121","settings.textInputForeground":"#EEFFFF","settings.textInputBackground":"#212121","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#212121","settings.checkboxForeground":"#EEFFFF","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"},n={name:e,semanticHighlighting:true,tokenColors:r,colors:o};export{o as colors,n as default,e as name,t as semanticHighlighting,r as tokenColors}; diff --git a/lib/dist/theme/material-default.mjs b/lib/dist/theme/material-default.mjs new file mode 100644 index 0000000..c755991 --- /dev/null +++ b/lib/dist/theme/material-default.mjs @@ -0,0 +1 @@ +var e="material-default",t=!0,r=[{name:"Global settings",settings:{background:"#263238",foreground:"#EEFFFF"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#EEFFFF"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#EEFFFF"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#546E7A",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#546E7A",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#EEFFFF"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#EEFFFF"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#546E7A"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#EEFFFF"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#EEFFFF"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#EEFFFF"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#EEFFFF"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#263238",foreground:"#EEFFFF"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#EEFFFF90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],o={focusBorder:"#FFFFFF00",foreground:"#EEFFFF","button.background":"#80CBC420","button.foreground":"#ffffff","dropdown.background":"#263238","input.background":"#303C41","inputOption.activeBorder":"#EEFFFF30","list.activeSelectionBackground":"#263238","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#263238","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#263238","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#546E7A","sideBar.background":"#263238","sideBarSectionHeader.background":"#263238","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#263238","tab.border":"#263238","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#263238","tab.activeModifiedBorder":"#607a86","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#263238","editor.foreground":"#EEFFFF","editorLineNumber.foreground":"#37474F","editorLineNumber.activeForeground":"#607a86","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#80CBC420","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#EEFFFF","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#263238","editorHoverWidget.background":"#263238","editorMarkerNavigation.background":"#EEFFFF05","peekView.border":"#00000030","peekViewEditor.background":"#EEFFFF05","peekViewResult.background":"#EEFFFF05","peekViewTitle.background":"#EEFFFF05","panel.background":"#263238","panel.border":"#26323860","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#EEFFFF","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#263238","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#263238","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#546E7A20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#263238","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#546E7A","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#263238","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#37474F","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#EEFFFF","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#37474F","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#EEFFFF30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#EEFFFF","sideBar.foreground":"#607a86","sideBar.border":"#26323860","sideBarTitle.foreground":"#EEFFFF","sideBarSectionHeader.border":"#26323860","panel.dropBackground":"#EEFFFF","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#37474F70","editorIndentGuide.activeBackground":"#37474F","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#26323860","activityBar.foreground":"#EEFFFF","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#546E7A","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#607a86","tab.activeBackground":"#263238","tab.unfocusedActiveForeground":"#EEFFFF","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#26323860","statusBar.foreground":"#546E7A","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#263238","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#263238","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#EEFFFF","titleBar.inactiveBackground":"#263238","titleBar.inactiveForeground":"#607a86","titleBar.border":"#26323860","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#263238","quickInput.foreground":"#607a86","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#EEFFFF20","editorSuggestWidget.background":"#263238","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#263238","notifications.foreground":"#EEFFFF","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#EEFFFF05","peekViewTitleDescription.foreground":"#EEFFFF60","peekViewResult.matchHighlightBackground":"#80CBC420","peekViewEditor.matchHighlightBackground":"#80CBC420","peekViewResult.selectionBackground":"#607a8670","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#607a8690","breadcrumb.background":"#263238","breadcrumb.foreground":"#607a86","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#263238","menu.background":"#263238","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#EEFFFF","settings.dropdownBackground":"#263238","settings.numberInputForeground":"#EEFFFF","settings.numberInputBackground":"#263238","settings.textInputForeground":"#EEFFFF","settings.textInputBackground":"#263238","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#263238","settings.checkboxForeground":"#EEFFFF","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"},n={name:e,semanticHighlighting:true,tokenColors:r,colors:o};export{o as colors,n as default,e as name,t as semanticHighlighting,r as tokenColors}; diff --git a/lib/dist/theme/material-from-css.mjs b/lib/dist/theme/material-from-css.mjs new file mode 100644 index 0000000..571aac5 --- /dev/null +++ b/lib/dist/theme/material-from-css.mjs @@ -0,0 +1 @@ +var t="material-from-css",e="from-css",r=[{settings:{background:"var(--ch-1)",foreground:"var(--ch-2)"}},{scope:"string",settings:{foreground:"var(--ch-3)"}},{scope:"punctuation, constant.other.symbol",settings:{foreground:"var(--ch-4)"}},{scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"var(--ch-2)"}},{scope:"constant.language.boolean",settings:{foreground:"var(--ch-5)"}},{scope:"constant.numeric",settings:{foreground:"var(--ch-6)"}},{scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"var(--ch-2)"}},{scope:"keyword.other",settings:{foreground:"var(--ch-6)"}},{scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"var(--ch-4)"}},{scope:"entity.name.function, support.function",settings:{foreground:"var(--ch-7)"}},{scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"var(--ch-8)"}},{scope:"support.module, support.node",settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:"support.type, constant.other.key",settings:{foreground:"var(--ch-10)"}},{scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"var(--ch-10)"}},{scope:"comment",settings:{foreground:"var(--ch-11)",fontStyle:"italic"}},{scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"var(--ch-11)",fontStyle:"italic"}},{scope:"punctuation",settings:{foreground:"var(--ch-4)"}},{scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"var(--ch-10)"}},{scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"var(--ch-9)"}},{scope:"meta.definition.method entity.name.function",settings:{foreground:"var(--ch-9)"}},{scope:"meta.function entity.name.function",settings:{foreground:"var(--ch-7)"}},{scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"var(--ch-4)"}},{scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"var(--ch-2)"}},{scope:"entity.name.tag.yaml",settings:{foreground:"var(--ch-9)"}},{scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"var(--ch-9)"}},{scope:"constant.language.json",settings:{foreground:"var(--ch-4)"}},{scope:"entity.other.attribute-name.class",settings:{foreground:"var(--ch-10)"}},{scope:"entity.other.attribute-name.id",settings:{foreground:"var(--ch-6)"}},{scope:"source.css entity.name.tag",settings:{foreground:"var(--ch-10)"}},{scope:"support.type.property-name.css",settings:{foreground:"var(--ch-12)"}},{scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"var(--ch-4)"}},{scope:"entity.name.tag",settings:{foreground:"var(--ch-9)"}},{scope:"entity.other.attribute-name",settings:{foreground:"var(--ch-8)"}},{scope:"punctuation.definition.entity.html",settings:{foreground:"var(--ch-2)"}},{scope:"markup.heading",settings:{foreground:"var(--ch-4)"}},{scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"var(--ch-9)"}},{scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"var(--ch-4)"}},{scope:"markup.italic",settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:"markup.bold",settings:{foreground:"var(--ch-9)",fontStyle:"bold"}},{scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"var(--ch-9)",fontStyle:"italic bold"}},{scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"var(--ch-3)"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"var(--ch-3)"}},{scope:"keyword.other.definition.ini",settings:{foreground:"var(--ch-9)"}},{scope:"entity.name.section.group-title.ini",settings:{foreground:"var(--ch-4)"}},{scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"var(--ch-10)"}},{scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"var(--ch-9)"}},{scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"var(--ch-7)"}},{scope:"source.cs storage.type",settings:{foreground:"var(--ch-10)"}},{scope:"source.cs meta.method.return-type",settings:{foreground:"var(--ch-10)"}},{scope:"source.cs meta.preprocessor",settings:{foreground:"var(--ch-11)"}},{scope:"source.cs entity.name.type.namespace",settings:{foreground:"var(--ch-2)"}},{scope:"meta.jsx.children, SXNested",settings:{foreground:"var(--ch-2)"}},{scope:"support.class.component",settings:{foreground:"var(--ch-10)"}},{scope:"source.cpp meta.block variable.other",settings:{foreground:"var(--ch-2)"}},{scope:"source.python meta.member.access.python",settings:{foreground:"var(--ch-9)"}},{scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"var(--ch-7)"}},{scope:"meta.block",settings:{foreground:"var(--ch-9)"}},{scope:"entity.name.function.call",settings:{foreground:"var(--ch-7)"}},{scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"var(--ch-2)"}},{scope:"constant.keyword",settings:{foreground:"var(--ch-4)",fontStyle:"italic"}},{scope:"entity.name.function",settings:{foreground:"var(--ch-7)"}},{settings:{background:"var(--ch-1)",foreground:"var(--ch-2)"}},{scope:["markup.deleted"],settings:{foreground:"var(--ch-9)"}},{scope:["markup.inserted"],settings:{foreground:"var(--ch-3)"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["keyword.control"],settings:{foreground:"var(--ch-4)",fontStyle:"italic"}},{scope:["variable.parameter"],settings:{fontStyle:"italic"}},{scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"var(--ch-9)",fontStyle:"italic"}},{scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"var(--ch-6)"}},{scope:["markup.quote"],settings:{foreground:"var(--ch-4)",fontStyle:"italic"}},{scope:["markup.fenced_code.block"],settings:{foreground:"var(--ch-13)"}},{scope:["punctuation.definition.quote"],settings:{foreground:"var(--ch-5)"}},{scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-8)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-10)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-6)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-9)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-7)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-5)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-8)"}},{scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"var(--ch-3)"}}],o={"editor.background":"var(--ch-1)","editor.foreground":"var(--ch-2)","editor.lineHighlightBackground":"var(--ch-14)","editor.rangeHighlightBackground":"#FFFFFF0d","editor.infoForeground":"var(--ch-15)","editor.selectionBackground":"var(--ch-16)",focusBorder:"#FFFFFF00","tab.activeBackground":"var(--ch-1)","tab.activeForeground":"var(--ch-17)","tab.inactiveBackground":"var(--ch-1)","tab.inactiveForeground":"var(--ch-18)","tab.border":"var(--ch-1)","tab.activeBorder":"#80CBC4","editorGroup.border":"var(--ch-19)","editorGroupHeader.tabsBackground":"var(--ch-1)","editorLineNumber.foreground":"var(--ch-20)","input.background":"var(--ch-21)","input.foreground":"var(--ch-2)","input.border":"var(--ch-22)","icon.foreground":"var(--ch-23)","sideBar.background":"var(--ch-1)","sideBar.foreground":"var(--ch-18)","sideBar.border":"var(--ch-24)","list.activeSelectionBackground":"var(--ch-1)","list.activeSelectionForeground":"#80CBC4","list.hoverBackground":"var(--ch-1)","list.hoverForeground":"var(--ch-25)",foreground:"var(--ch-2)",background:"var(--ch-1)","lighter.inlineBackground":"var(--ch-26)"},n={name:t,type:e,tokenColors:r,colors:o};export{o as colors,n as default,t as name,r as tokenColors,e as type}; diff --git a/lib/dist/theme/material-lighter.mjs b/lib/dist/theme/material-lighter.mjs new file mode 100644 index 0000000..55ad860 --- /dev/null +++ b/lib/dist/theme/material-lighter.mjs @@ -0,0 +1 @@ +var e="material-lighter",t=!0,r=[{name:"Global settings",settings:{background:"#FAFAFA",foreground:"#90A4AE"}},{name:"String",scope:"string",settings:{foreground:"#91B859"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#39ADB5"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#90A4AE"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#FF5370"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F76D47"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#90A4AE"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F76D47"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#39ADB5"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#6182B8"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#9C3EDA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#E53935",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#E2931D"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#E2931D"}},{name:"Comment",scope:"comment",settings:{foreground:"#90A4AE",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#90A4AE",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#39ADB5"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#E2931D"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#E53935"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#E53935"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#6182B8"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#39ADB5"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#90A4AE"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#E53935"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#E53935"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#39ADB5"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#E2931D"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F76D47"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#E2931D"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#8796B0"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#39ADB5"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#E53935"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#9C3EDA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#90A4AE"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#39ADB5"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#E53935"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#39ADB5"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#E53935",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#E53935",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#E53935",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#91B859"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#91B859"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#E53935"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#39ADB5"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#E2931D"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#E53935"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#6182B8"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#E2931D"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#E2931D"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#90A4AE"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#90A4AE"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#90A4AE"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#E2931D"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#90A4AE"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#E53935"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#6182B8"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#E53935"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#6182B8"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#90A4AE"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#39ADB5",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#6182B8"}},{name:"Global settings",settings:{background:"#FAFAFA",foreground:"#90A4AE"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#E53935"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#91B859"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#39ADB5",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#E53935",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F76D47"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#39ADB5"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#90A4AE90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#FF5370"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9C3EDA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#E2931D"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F76D47"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#E53935"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#6182B8"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FF5370"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9C3EDA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B859"}}],o={focusBorder:"#FFFFFF00",foreground:"#90A4AE","button.background":"#80CBC440","button.foreground":"#ffffff","dropdown.background":"#FAFAFA","input.background":"#EEEEEE","inputOption.activeBorder":"#90A4AE30","list.activeSelectionBackground":"#FAFAFA","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#E5393580","list.focusBackground":"#90A4AE20","list.focusForeground":"#90A4AE","list.highlightForeground":"#80CBC4","list.hoverBackground":"#FAFAFA","list.inactiveSelectionBackground":"#CCD7DA50","activityBar.background":"#FAFAFA","activityBar.dropBackground":"#E5393580","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#CCD7DA30","badge.foreground":"#90A4AE","sideBar.background":"#FAFAFA","sideBarSectionHeader.background":"#FAFAFA","editorGroup.dropBackground":"#E5393580","editorGroup.focusedEmptyBorder":"#E53935","editorGroupHeader.tabsBackground":"#FAFAFA","tab.border":"#FAFAFA","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#FAFAFA","tab.activeModifiedBorder":"#7E939E","tab.inactiveModifiedBorder":"#89221f","tab.unfocusedActiveModifiedBorder":"#b72d2a","tab.unfocusedInactiveModifiedBorder":"#89221f","editor.background":"#FAFAFA","editor.foreground":"#90A4AE","editorLineNumber.foreground":"#CFD8DC","editorLineNumber.activeForeground":"#7E939E","editorCursor.foreground":"#272727","editor.selectionBackground":"#80CBC440","editor.selectionHighlightBackground":"#27272720","editor.wordHighlightBackground":"#FF537030","editor.wordHighlightStrongBackground":"#91B85930","editor.findMatchHighlight":"#90A4AE","editor.findRangeHighlightBackground":"#E2931D30","editor.lineHighlightBorder":"#CCD7DA00","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#90A4AE40","editorWidget.background":"#FAFAFA","editorHoverWidget.background":"#FAFAFA","editorMarkerNavigation.background":"#90A4AE05","peekView.border":"#00000020","peekViewEditor.background":"#90A4AE05","peekViewResult.background":"#90A4AE05","peekViewTitle.background":"#90A4AE05","panel.background":"#FAFAFA","panel.border":"#FAFAFA60","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#90A4AE","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#FAFAFA","statusBar.debuggingBackground":"#9C3EDA","statusBar.debuggingForeground":"#FFFFFF","statusBar.noFolderBackground":"#FAFAFA","statusBarItem.activeBackground":"#E5393580","statusBarItem.hoverBackground":"#90A4AE20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#FAFAFA","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182B8","terminal.ansiBrightBlack":"#90A4AE","terminal.ansiBrightBlue":"#6182B8","terminal.ansiBrightCyan":"#39ADB5","terminal.ansiBrightGreen":"#91B859","terminal.ansiBrightMagenta":"#9C3EDA","terminal.ansiBrightRed":"#E53935","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#E2931D","terminal.ansiCyan":"#39ADB5","terminal.ansiGreen":"#91B859","terminal.ansiMagenta":"#9C3EDA","terminal.ansiRed":"#E53935","terminal.ansiWhite":"#FFFFFF","terminal.ansiYellow":"#E2931D","debugToolBar.background":"#FAFAFA","debugConsole.errorForeground":"#E53935","debugConsole.infoForeground":"#39ADB5","debugConsole.warningForeground":"#E2931D","selection.background":"#CCD7DA80","editorRuler.foreground":"#B0BEC5","widget.shadow":"#00000020","scrollbar.shadow":"#00000020","editorLink.activeForeground":"#90A4AE","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#B0BEC5","terminalCursor.foreground":"#E2931D","terminalCursor.background":"#000000","inputOption.activeBackground":"#90A4AE30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#90A4AE","sideBar.foreground":"#7E939E","sideBar.border":"#FAFAFA60","sideBarTitle.foreground":"#90A4AE","sideBarSectionHeader.border":"#FAFAFA60","panel.dropBackground":"#90A4AE","panelTitle.activeForeground":"#000000","editor.lineHighlightBackground":"#CCD7DA50","editor.findMatchBackground":"#00000020","editor.findMatchHighlightBackground":"#00000010","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#00000030","editorIndentGuide.background":"#B0BEC570","editorIndentGuide.activeBackground":"#B0BEC5","editorGroup.border":"#00000020","editorGutter.modifiedBackground":"#6182B860","editorGutter.addedBackground":"#91B85960","editorGutter.deletedBackground":"#E5393560","activityBar.border":"#FAFAFA60","activityBar.foreground":"#90A4AE","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#90A4AE","scrollbarSlider.background":"#90A4AE20","scrollbarSlider.hoverBackground":"#90A4AE10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#90A4AE","tab.activeForeground":"#000000","tab.inactiveForeground":"#7E939E","tab.activeBackground":"#FAFAFA","tab.unfocusedActiveForeground":"#90A4AE","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#FAFAFA60","statusBar.foreground":"#7E939E","editorBracketMatch.border":"#27272750","editorBracketMatch.background":"#FAFAFA","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#FAFAFA","editorOverviewRuler.errorForeground":"#E5393540","editorOverviewRuler.infoForeground":"#6182B840","editorOverviewRuler.warningForeground":"#E2931D40","editorInfo.foreground":"#6182B870","editorWarning.foreground":"#E2931D70","editorError.foreground":"#E5393570","editorHoverWidget.border":"#00000010","titleBar.activeForeground":"#90A4AE","titleBar.inactiveBackground":"#FAFAFA","titleBar.inactiveForeground":"#7E939E","titleBar.border":"#FAFAFA60","input.foreground":"#90A4AE","input.placeholderForeground":"#90A4AE60","input.border":"#00000010","inputValidation.errorBorder":"#E53935","inputValidation.infoBorder":"#6182B8","inputValidation.warningBorder":"#E2931D","dropdown.border":"#00000010","quickInput.background":"#FAFAFA","quickInput.foreground":"#7E939E","list.hoverForeground":"#B1C7D3","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#90A4AE20","editorSuggestWidget.background":"#FAFAFA","editorSuggestWidget.foreground":"#90A4AE","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#CCD7DA50","editorSuggestWidget.border":"#00000010","diffEditor.insertedTextBackground":"#39ADB520","diffEditor.removedTextBackground":"#FF537020","notifications.background":"#FAFAFA","notifications.foreground":"#90A4AE","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#91B85990","extensionButton.prominentHoverBackground":"#91B859","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#90A4AE05","peekViewTitleDescription.foreground":"#90A4AE60","peekViewResult.matchHighlightBackground":"#80CBC440","peekViewEditor.matchHighlightBackground":"#80CBC440","peekViewResult.selectionBackground":"#7E939E70","gitDecoration.deletedResourceForeground":"#E5393590","gitDecoration.conflictingResourceForeground":"#E2931D90","gitDecoration.modifiedResourceForeground":"#6182B890","gitDecoration.untrackedResourceForeground":"#91B85990","gitDecoration.ignoredResourceForeground":"#7E939E90","breadcrumb.background":"#FAFAFA","breadcrumb.foreground":"#7E939E","breadcrumb.focusForeground":"#90A4AE","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#FAFAFA","menu.background":"#FAFAFA","menu.foreground":"#90A4AE","menu.selectionBackground":"#CCD7DA50","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#CCD7DA50","menu.separatorBackground":"#90A4AE","menubar.selectionBackground":"#CCD7DA50","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#CCD7DA50","settings.dropdownForeground":"#90A4AE","settings.dropdownBackground":"#FAFAFA","settings.numberInputForeground":"#90A4AE","settings.numberInputBackground":"#FAFAFA","settings.textInputForeground":"#90A4AE","settings.textInputBackground":"#FAFAFA","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#FAFAFA","settings.checkboxForeground":"#90A4AE","listFilterWidget.background":"#CCD7DA50","listFilterWidget.outline":"#CCD7DA50","listFilterWidget.noMatchesOutline":"#CCD7DA50"},n={name:e,semanticHighlighting:true,tokenColors:r,colors:o};export{o as colors,n as default,e as name,t as semanticHighlighting,r as tokenColors}; diff --git a/lib/dist/theme/material-ocean.mjs b/lib/dist/theme/material-ocean.mjs new file mode 100644 index 0000000..8bddafe --- /dev/null +++ b/lib/dist/theme/material-ocean.mjs @@ -0,0 +1 @@ +var e="material-ocean",t=!0,r=[{name:"Global settings",settings:{background:"#0F111A",foreground:"#A6ACCD"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#A6ACCD"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#A6ACCD"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#464B5D",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#464B5D",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#A6ACCD"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#A6ACCD"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#464B5D"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#A6ACCD"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#A6ACCD"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#A6ACCD"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#A6ACCD"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#0F111A",foreground:"#A6ACCD"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#A6ACCD90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],o={focusBorder:"#FFFFFF00",foreground:"#A6ACCD","button.background":"#717CB450","button.foreground":"#ffffff","dropdown.background":"#0F111A","input.background":"#1A1C25","inputOption.activeBorder":"#A6ACCD30","list.activeSelectionBackground":"#0F111A","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#A6ACCD20","list.focusForeground":"#A6ACCD","list.highlightForeground":"#80CBC4","list.hoverBackground":"#0F111A","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#0F111A","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#464B5D","sideBar.background":"#0F111A","sideBarSectionHeader.background":"#0F111A","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#0F111A","tab.border":"#0F111A","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#0F111A","tab.activeModifiedBorder":"#525975","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#0F111A","editor.foreground":"#A6ACCD","editorLineNumber.foreground":"#3B3F5180","editorLineNumber.activeForeground":"#525975","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#717CB450","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#A6ACCD","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#A6ACCD40","editorWidget.background":"#0F111A","editorHoverWidget.background":"#0F111A","editorMarkerNavigation.background":"#A6ACCD05","peekView.border":"#00000030","peekViewEditor.background":"#A6ACCD05","peekViewResult.background":"#A6ACCD05","peekViewTitle.background":"#A6ACCD05","panel.background":"#0F111A","panel.border":"#0F111A60","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#A6ACCD","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#0F111A","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#0F111A","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#464B5D20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#0F111A","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#464B5D","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#0F111A","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#3B3F51","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#A6ACCD","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#3B3F51","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#A6ACCD30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#A6ACCD","sideBar.foreground":"#525975","sideBar.border":"#0F111A60","sideBarTitle.foreground":"#A6ACCD","sideBarSectionHeader.border":"#0F111A60","panel.dropBackground":"#A6ACCD","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#3B3F5170","editorIndentGuide.activeBackground":"#3B3F51","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#0F111A60","activityBar.foreground":"#A6ACCD","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#A6ACCD","scrollbarSlider.background":"#8F93A220","scrollbarSlider.hoverBackground":"#8F93A210","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#464B5D","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#525975","tab.activeBackground":"#0F111A","tab.unfocusedActiveForeground":"#A6ACCD","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#0F111A60","statusBar.foreground":"#4B526D","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#0F111A","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#0F111A","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#A6ACCD","titleBar.inactiveBackground":"#0F111A","titleBar.inactiveForeground":"#525975","titleBar.border":"#0F111A60","input.foreground":"#A6ACCD","input.placeholderForeground":"#A6ACCD60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#0F111A","quickInput.foreground":"#525975","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#A6ACCD20","editorSuggestWidget.background":"#0F111A","editorSuggestWidget.foreground":"#A6ACCD","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#0F111A","notifications.foreground":"#A6ACCD","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#A6ACCD05","peekViewTitleDescription.foreground":"#A6ACCD60","peekViewResult.matchHighlightBackground":"#717CB450","peekViewEditor.matchHighlightBackground":"#717CB450","peekViewResult.selectionBackground":"#52597570","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#52597590","breadcrumb.background":"#0F111A","breadcrumb.foreground":"#525975","breadcrumb.focusForeground":"#A6ACCD","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#0F111A","menu.background":"#0F111A","menu.foreground":"#A6ACCD","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#A6ACCD","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#A6ACCD","settings.dropdownBackground":"#0F111A","settings.numberInputForeground":"#A6ACCD","settings.numberInputBackground":"#0F111A","settings.textInputForeground":"#A6ACCD","settings.textInputBackground":"#0F111A","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#0F111A","settings.checkboxForeground":"#A6ACCD","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"},n={name:e,semanticHighlighting:true,tokenColors:r,colors:o};export{o as colors,n as default,e as name,t as semanticHighlighting,r as tokenColors}; diff --git a/lib/dist/theme/material-palenight.mjs b/lib/dist/theme/material-palenight.mjs new file mode 100644 index 0000000..a640c1b --- /dev/null +++ b/lib/dist/theme/material-palenight.mjs @@ -0,0 +1 @@ +var e="material-palenight",t=!0,r=[{name:"Global settings",settings:{background:"#292D3E",foreground:"#A6ACCD"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#A6ACCD"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#A6ACCD"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#676E95",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#676E95",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#A6ACCD"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#A6ACCD"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#676E95"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#A6ACCD"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#A6ACCD"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#A6ACCD"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#A6ACCD"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#292D3E",foreground:"#A6ACCD"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#A6ACCD90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],o={focusBorder:"#FFFFFF00",foreground:"#A6ACCD","button.background":"#717CB450","button.foreground":"#ffffff","dropdown.background":"#292D3E","input.background":"#333747","inputOption.activeBorder":"#A6ACCD30","list.activeSelectionBackground":"#292D3E","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#A6ACCD20","list.focusForeground":"#A6ACCD","list.highlightForeground":"#80CBC4","list.hoverBackground":"#292D3E","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#292D3E","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#676E95","sideBar.background":"#292D3E","sideBarSectionHeader.background":"#292D3E","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#292D3E","tab.border":"#292D3E","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#292D3E","tab.activeModifiedBorder":"#676E95","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#292D3E","editor.foreground":"#A6ACCD","editorLineNumber.foreground":"#3A3F58","editorLineNumber.activeForeground":"#676E95","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#717CB450","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#A6ACCD","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#A6ACCD40","editorWidget.background":"#292D3E","editorHoverWidget.background":"#292D3E","editorMarkerNavigation.background":"#A6ACCD05","peekView.border":"#00000030","peekViewEditor.background":"#A6ACCD05","peekViewResult.background":"#A6ACCD05","peekViewTitle.background":"#A6ACCD05","panel.background":"#292D3E","panel.border":"#292D3E60","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#A6ACCD","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#292D3E","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#292D3E","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#676E9520","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#292D3E","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#676E95","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#292D3E","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#4E5579","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#A6ACCD","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#4E5579","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#A6ACCD30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#A6ACCD","sideBar.foreground":"#676E95","sideBar.border":"#292D3E60","sideBarTitle.foreground":"#A6ACCD","sideBarSectionHeader.border":"#292D3E60","panel.dropBackground":"#A6ACCD","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#4E557970","editorIndentGuide.activeBackground":"#4E5579","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#292D3E60","activityBar.foreground":"#A6ACCD","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#A6ACCD","scrollbarSlider.background":"#A6ACCD20","scrollbarSlider.hoverBackground":"#A6ACCD10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#676E95","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#676E95","tab.activeBackground":"#292D3E","tab.unfocusedActiveForeground":"#A6ACCD","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#292D3E60","statusBar.foreground":"#676E95","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#292D3E","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#292D3E","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#A6ACCD","titleBar.inactiveBackground":"#292D3E","titleBar.inactiveForeground":"#676E95","titleBar.border":"#292D3E60","input.foreground":"#A6ACCD","input.placeholderForeground":"#A6ACCD60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#292D3E","quickInput.foreground":"#676E95","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#A6ACCD20","editorSuggestWidget.background":"#292D3E","editorSuggestWidget.foreground":"#A6ACCD","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#292D3E","notifications.foreground":"#A6ACCD","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#A6ACCD05","peekViewTitleDescription.foreground":"#A6ACCD60","peekViewResult.matchHighlightBackground":"#717CB450","peekViewEditor.matchHighlightBackground":"#717CB450","peekViewResult.selectionBackground":"#676E9570","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#676E9590","breadcrumb.background":"#292D3E","breadcrumb.foreground":"#676E95","breadcrumb.focusForeground":"#A6ACCD","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#292D3E","menu.background":"#292D3E","menu.foreground":"#A6ACCD","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#A6ACCD","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#A6ACCD","settings.dropdownBackground":"#292D3E","settings.numberInputForeground":"#A6ACCD","settings.numberInputBackground":"#292D3E","settings.textInputForeground":"#A6ACCD","settings.textInputBackground":"#292D3E","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#292D3E","settings.checkboxForeground":"#A6ACCD","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"},n={name:e,semanticHighlighting:true,tokenColors:r,colors:o};export{o as colors,n as default,e as name,t as semanticHighlighting,r as tokenColors}; diff --git a/lib/dist/theme/min-dark.mjs b/lib/dist/theme/min-dark.mjs new file mode 100644 index 0000000..79cbadd --- /dev/null +++ b/lib/dist/theme/min-dark.mjs @@ -0,0 +1 @@ +var e="min-dark",o="dark",r={"editorIndentGuide.activeBackground":"#383838","editorIndentGuide.background":"#2A2A2A","editorRuler.foreground":"#2A2A2A","editorLineNumber.foreground":"#727272","activityBar.background":"#1A1A1A","activityBar.foreground":"#7D7D7D","activityBarBadge.background":"#383838","badge.background":"#383838","badge.foreground":"#C1C1C1","button.background":"#333","editor.background":"#1f1f1f","editor.lineHighlightBorder":"#303030","editorGroupHeader.tabsBackground":"#1A1A1A","editorGroupHeader.tabsBorder":"#1A1A1A","editorSuggestWidget.background":"#1A1A1A",focusBorder:"#444",foreground:"#888888","gitDecoration.ignoredResourceForeground":"#444444","input.background":"#2A2A2A","input.foreground":"#E0E0E0","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#F5F5F5","list.focusBackground":"#292929","list.highlightForeground":"#EAEAEA","list.hoverBackground":"#262626","list.hoverForeground":"#9E9E9E","list.inactiveSelectionBackground":"#212121","list.inactiveSelectionForeground":"#F5F5F5","panelTitle.activeBorder":"#1f1f1f","panelTitle.activeForeground":"#FAFAFA","panelTitle.inactiveForeground":"#484848","peekView.border":"#444","peekViewEditor.background":"#242424","pickerGroup.border":"#363636","pickerGroup.foreground":"#EAEAEA","progressBar.background":"#FAFAFA","scrollbar.shadow":"#1f1f1f","sideBar.background":"#1A1A1A","sideBarSectionHeader.background":"#202020","statusBar.background":"#1A1A1A","statusBar.debuggingBackground":"#1A1A1A","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#1A1A1A","statusBarItem.remoteForeground":"#7E7E7E","statusBarItem.remoteBackground":"#1a1a1a00","statusBarItem.prominentBackground":"#fafafa1a","tab.activeBorder":"#1e1e1e","tab.activeForeground":"#FAFAFA","tab.border":"#1A1A1A","tab.inactiveBackground":"#1A1A1A","tab.inactiveForeground":"#727272","textLink.foreground":"#CCC","textLink.activeForeground":"#fafafa","titleBar.activeBackground":"#1A1A1A","titleBar.border":"#00000000","terminal.ansiBrightBlack":"#5c5c5c","inputOption.activeBackground":"#3a3a3a","debugIcon.continueForeground":"#FF7A84","debugIcon.disconnectForeground":"#FF7A84","debugIcon.pauseForeground":"#FF7A84","debugIcon.restartForeground":"#79b8ff","debugIcon.startForeground":"#79b8ff","debugIcon.stepBackForeground":"#FF7A84","debugIcon.stepIntoForeground":"#FF7A84","debugIcon.stepOutForeground":"#FF7A84","debugIcon.stepOverForeground":"#FF7A84","debugIcon.stopForeground":"#79b8ff","debugIcon.breakpointCurrentStackframeForeground":"#79b8ff","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#FF7A84","debugIcon.breakpointStackframeForeground":"#79b8ff","debugIcon.breakpointUnverifiedForeground":"#848484","symbolIcon.classForeground":"#FF9800","symbolIcon.enumeratorForeground":"#FF9800","symbolIcon.eventForeground":"#FF9800","symbolIcon.methodForeground":"#b392f0","symbolIcon.constructorForeground":"#b392f0","symbolIcon.functionForeground":"#b392f0","symbolIcon.fieldForeground":"#79b8ff","symbolIcon.interfaceForeground":"#79b8ff","symbolIcon.variableForeground":"#79b8ff","symbolIcon.enumeratorMemberForeground":"#79b8ff","diffEditor.insertedTextBackground":"#3a632a4b","diffEditor.removedTextBackground":"#88063852"},t=[{settings:{foreground:"#b392f0"}},{scope:["support.function","keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#b392f0"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold",foreground:"#FF7A84"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#1976D2"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#9db1c5"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#6b737c"}},{scope:["constant.language","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","support","string.other.link.title.markdown"],settings:{foreground:"#79b8ff"}},{scope:["constant.numeric","constant.other.placeholder","constant.character.format.placeholder","meta.property-value","keyword.other.unit","keyword.other.template","entity.name.tag.yaml","entity.other.attribute-name","support.type.property-name.json"],settings:{foreground:"#f8f8f8"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","support.function.node","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#f97583"}},{scope:"variable.parameter.function",settings:{foreground:"#FF9800"}},{scope:["entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#b392f0"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#ffab70"}},{scope:"token.info-token",settings:{foreground:"#316bcd"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#cd3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#bbbbbb"}},{name:"[Custom] Markdown links",scope:"markup.underline.link",settings:{foreground:"#ffab70"}},{name:"[Custom] Markdown list",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#FF7A84"}},{name:"[Custom] Markdown punctuation definition",scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#ffab70"}},{name:"[Custom] Markdown punctuation definition brackets",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#79b8ff"}}],n=!0,a={name:e,type:o,colors:r,tokenColors:t,semanticHighlighting:true};export{r as colors,a as default,e as name,n as semanticHighlighting,t as tokenColors,o as type}; diff --git a/lib/dist/theme/min-light.mjs b/lib/dist/theme/min-light.mjs new file mode 100644 index 0000000..c31b3c4 --- /dev/null +++ b/lib/dist/theme/min-light.mjs @@ -0,0 +1 @@ +var e="min-light",o="light",n={"activityBar.background":"#f6f6f6","activityBar.foreground":"#9E9E9E","activityBarBadge.background":"#616161","badge.background":"#E0E0E0","badge.foreground":"#616161","button.background":"#757575","button.hoverBackground":"#616161","editor.background":"#ffffff","editor.foreground":"#212121","editor.lineHighlightBorder":"#f2f2f2","editorBracketMatch.background":"#E7F3FF","editorBracketMatch.border":"#c8e1ff","editorGroupHeader.tabsBackground":"#f6f6f6","editorGroupHeader.tabsBorder":"#fff","editorIndentGuide.background":"#EEE","editorLineNumber.activeForeground":"#757575","editorLineNumber.foreground":"#CCC","editorSuggestWidget.background":"#F3F3F3","extensionButton.prominentBackground":"#000000AA","extensionButton.prominentHoverBackground":"#000000BB",focusBorder:"#D0D0D0",foreground:"#757575","gitDecoration.ignoredResourceForeground":"#AAAAAA","input.border":"#E9E9E9","list.activeSelectionBackground":"#EEE","list.activeSelectionForeground":"#212121","list.focusBackground":"#ddd","list.focusForeground":"#212121","list.highlightForeground":"#212121","list.inactiveSelectionBackground":"#E0E0E0","list.inactiveSelectionForeground":"#212121","panel.background":"#fff","panel.border":"#f4f4f4","panelTitle.activeBorder":"#fff","panelTitle.inactiveForeground":"#BDBDBD","peekView.border":"#E0E0E0","peekViewEditor.background":"#f8f8f8","pickerGroup.foreground":"#000","progressBar.background":"#000","scrollbar.shadow":"#FFF","sideBar.background":"#f6f6f6","sideBar.border":"#f6f6f6","sideBarSectionHeader.background":"#EEE","sideBarTitle.foreground":"#999","statusBar.background":"#f6f6f6","statusBar.border":"#f6f6f6","statusBar.debuggingBackground":"#f6f6f6","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#f6f6f6","statusBarItem.remoteForeground":"#7E7E7E","statusBarItem.remoteBackground":"#f6f6f600","statusBarItem.prominentBackground":"#0000001a","tab.activeBorder":"#FFF","tab.activeForeground":"#424242","tab.border":"#f6f6f6","tab.inactiveBackground":"#f6f6f6","tab.inactiveForeground":"#BDBDBD","tab.unfocusedActiveBorder":"#fff","terminal.ansiBlack":"#333","terminal.ansiBlue":"#e0e0e0","terminal.ansiBrightBlack":"#a1a1a1","terminal.ansiBrightBlue":"#6871ff","terminal.ansiBrightCyan":"#57d9ad","terminal.ansiBrightGreen":"#a3d900","terminal.ansiBrightMagenta":"#a37acc","terminal.ansiBrightRed":"#d6656a","terminal.ansiBrightWhite":"#7E7E7E","terminal.ansiBrightYellow":"#e7c547","terminal.ansiCyan":"#4dbf99","terminal.ansiGreen":"#77cc00","terminal.ansiMagenta":"#9966cc","terminal.ansiRed":"#D32F2F","terminal.ansiWhite":"#c7c7c7","terminal.ansiYellow":"#f29718","terminal.background":"#fff","textLink.activeForeground":"#000","textLink.foreground":"#000","titleBar.activeBackground":"#f6f6f6","titleBar.border":"#FFFFFF00","titleBar.inactiveBackground":"#f6f6f6","inputOption.activeBackground":"#EDEDED","debugIcon.continueForeground":"#6f42c1","debugIcon.disconnectForeground":"#6f42c1","debugIcon.pauseForeground":"#6f42c1","debugIcon.restartForeground":"#1976D2","debugIcon.startForeground":"#1976D2","debugIcon.stepBackForeground":"#6f42c1","debugIcon.stepIntoForeground":"#6f42c1","debugIcon.stepOutForeground":"#6f42c1","debugIcon.stepOverForeground":"#6f42c1","debugIcon.stopForeground":"#1976D2","debugIcon.breakpointCurrentStackframeForeground":"#1976D2","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#D32F2F","debugIcon.breakpointStackframeForeground":"#1976D2","symbolIcon.classForeground":"#dd8500","symbolIcon.enumeratorForeground":"#dd8500","symbolIcon.eventForeground":"#dd8500","symbolIcon.methodForeground":"#6f42c1","symbolIcon.constructorForeground":"#6f42c1","symbolIcon.functionForeground":"#6f42c1","symbolIcon.fieldForeground":"#1976D2","symbolIcon.interfaceForeground":"#1976D2","symbolIcon.variableForeground":"#1976D2","symbolIcon.enumeratorMemberForeground":"#1976D2","diffEditor.removedTextBackground":"#e597af52","diffEditor.insertedTextBackground":"#b7e7a44b"},r=[{settings:{foreground:"#24292eff"}},{scope:["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#24292eff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#1976D2"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#2b5581"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#c2c3c5"}},{scope:["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],settings:{foreground:"#1976D2"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#D32F2F"}},{scope:"variable.parameter.function",settings:{foreground:"#FF9800"}},{scope:["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#6f42c1"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#22863a"}},{scope:"token.info-token",settings:{foreground:"#316bcd"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#cd3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{foreground:"#6f42c1"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#212121"}},{name:"[Custom] Markdown links",scope:["markup.underline.link","punctuation.definition.metadata.markdown"],settings:{foreground:"#22863a"}},{name:"[Custom] Markdown list",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#6f42c1"}},{name:"[Custom] Markdown punctuation definition brackets",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:"#d32f2f"}}],t={name:e,type:o,colors:n,tokenColors:r};export{n as colors,t as default,e as name,r as tokenColors,o as type}; diff --git a/lib/dist/theme/monokai.mjs b/lib/dist/theme/monokai.mjs new file mode 100644 index 0000000..241d814 --- /dev/null +++ b/lib/dist/theme/monokai.mjs @@ -0,0 +1 @@ +var e="dark",n={"dropdown.background":"#414339","list.activeSelectionBackground":"#75715E","quickInputList.focusBackground":"#414339","dropdown.listBackground":"#1e1f1c","list.inactiveSelectionBackground":"#414339","list.hoverBackground":"#3e3d32","list.dropBackground":"#414339","list.highlightForeground":"#f8f8f2","button.background":"#75715E","editor.background":"#272822","editor.foreground":"#f8f8f2","selection.background":"#878b9180","editor.selectionHighlightBackground":"#575b6180","editor.selectionBackground":"#878b9180","minimap.selectionHighlight":"#878b9180","editor.wordHighlightBackground":"#4a4a7680","editor.wordHighlightStrongBackground":"#6a6a9680","editor.lineHighlightBackground":"#3e3d32","editorLineNumber.activeForeground":"#c2c2bf","editorCursor.foreground":"#f8f8f0","editorWhitespace.foreground":"#464741","editorIndentGuide.background":"#464741","editorIndentGuide.activeBackground":"#767771","editorGroupHeader.tabsBackground":"#1e1f1c","editorGroup.dropBackground":"#41433980","tab.inactiveBackground":"#34352f","tab.border":"#1e1f1c","tab.inactiveForeground":"#ccccc7","tab.lastPinnedBorder":"#414339","widget.shadow":"#00000098","progressBar.background":"#75715E","badge.background":"#75715E","badge.foreground":"#f8f8f2","editorLineNumber.foreground":"#90908a","panelTitle.activeForeground":"#f8f8f2","panelTitle.activeBorder":"#75715E","panelTitle.inactiveForeground":"#75715E","panel.border":"#414339","settings.focusedRowBackground":"#4143395A","titleBar.activeBackground":"#1e1f1c","statusBar.background":"#414339","statusBar.noFolderBackground":"#414339","statusBar.debuggingBackground":"#75715E","statusBarItem.remoteBackground":"#AC6218","ports.iconRunningProcessForeground":"#ccccc7","activityBar.background":"#272822","activityBar.foreground":"#f8f8f2","sideBar.background":"#1e1f1c","sideBarSectionHeader.background":"#272822","menu.background":"#1e1f1c","menu.foreground":"#cccccc","pickerGroup.foreground":"#75715E","input.background":"#414339","inputOption.activeBorder":"#75715E",focusBorder:"#99947c","editorWidget.background":"#1e1f1c","debugToolBar.background":"#1e1f1c","diffEditor.insertedTextBackground":"#4b661680","diffEditor.removedTextBackground":"#90274A70","inputValidation.errorBackground":"#90274A","inputValidation.errorBorder":"#f92672","inputValidation.warningBackground":"#848528","inputValidation.warningBorder":"#e2e22e","inputValidation.infoBackground":"#546190","inputValidation.infoBorder":"#819aff","editorHoverWidget.background":"#414339","editorHoverWidget.border":"#75715E","editorSuggestWidget.background":"#272822","editorSuggestWidget.border":"#75715E","editorGroup.border":"#34352f","peekView.border":"#75715E","peekViewEditor.background":"#272822","peekViewResult.background":"#1e1f1c","peekViewTitle.background":"#1e1f1c","peekViewResult.selectionBackground":"#414339","peekViewResult.matchHighlightBackground":"#75715E","peekViewEditor.matchHighlightBackground":"#75715E","terminal.ansiBlack":"#333333","terminal.ansiRed":"#C4265E","terminal.ansiGreen":"#86B42B","terminal.ansiYellow":"#B3B42B","terminal.ansiBlue":"#6A7EC8","terminal.ansiMagenta":"#8C6BC8","terminal.ansiCyan":"#56ADBC","terminal.ansiWhite":"#e3e3dd","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightGreen":"#A6E22E","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightMagenta":"#AE81FF","terminal.ansiBrightCyan":"#66D9EF","terminal.ansiBrightWhite":"#f8f8f2"},t=[{settings:{foreground:"#F8F8F2"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#F8F8F2"}},{name:"Comment",scope:"comment",settings:{foreground:"#88846f"}},{name:"String",scope:"string",settings:{foreground:"#E6DB74"}},{name:"Template Definition",scope:["punctuation.definition.template-expression","punctuation.section.embedded"],settings:{foreground:"#F92672"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#F8F8F2"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#AE81FF"}},{name:"Built-in constant",scope:"constant.language",settings:{foreground:"#AE81FF"}},{name:"User-defined constant",scope:"constant.character, constant.other",settings:{foreground:"#AE81FF"}},{name:"Variable",scope:"variable",settings:{fontStyle:"",foreground:"#F8F8F2"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#F92672"}},{name:"Storage",scope:"storage",settings:{fontStyle:"",foreground:"#F92672"}},{name:"Storage type",scope:"storage.type",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{name:"Class name",scope:"entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",settings:{fontStyle:"underline",foreground:"#A6E22E"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{fontStyle:"italic underline",foreground:"#A6E22E"}},{name:"Function name",scope:"entity.name.function",settings:{fontStyle:"",foreground:"#A6E22E"}},{name:"Function argument",scope:"variable.parameter",settings:{fontStyle:"italic",foreground:"#FD971F"}},{name:"Tag name",scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#F92672"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{fontStyle:"",foreground:"#A6E22E"}},{name:"Library function",scope:"support.function",settings:{fontStyle:"",foreground:"#66D9EF"}},{name:"Library constant",scope:"support.constant",settings:{fontStyle:"",foreground:"#66D9EF"}},{name:"Library class/type",scope:"support.type, support.class",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{name:"Library variable",scope:"support.other.variable",settings:{fontStyle:""}},{name:"Invalid",scope:"invalid",settings:{fontStyle:"",foreground:"#F44747"}},{name:"Invalid deprecated",scope:"invalid.deprecated",settings:{foreground:"#F44747"}},{name:"JSON String",scope:"meta.structure.dictionary.json string.quoted.double.json",settings:{foreground:"#CFCFC2"}},{name:"diff.header",scope:"meta.diff, meta.diff.header",settings:{foreground:"#75715E"}},{name:"diff.deleted",scope:"markup.deleted",settings:{foreground:"#F92672"}},{name:"diff.inserted",scope:"markup.inserted",settings:{foreground:"#A6E22E"}},{name:"diff.changed",scope:"markup.changed",settings:{foreground:"#E6DB74"}},{scope:"constant.numeric.line-number.find-in-files - match",settings:{foreground:"#AE81FFA0"}},{scope:"entity.name.filename.find-in-files",settings:{foreground:"#E6DB74"}},{name:"Markup Quote",scope:"markup.quote",settings:{foreground:"#F92672"}},{name:"Markup Lists",scope:"markup.list",settings:{foreground:"#E6DB74"}},{name:"Markup Styling",scope:"markup.bold, markup.italic",settings:{foreground:"#66D9EF"}},{name:"Markup Inline",scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#FD971F"}},{name:"Markup Headings",scope:"markup.heading",settings:{foreground:"#A6E22E"}},{name:"Markup Setext Header",scope:"markup.heading.setext",settings:{foreground:"#A6E22E",fontStyle:"bold"}},{name:"Markup Headings",scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{name:"Markdown Quote",scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#75715E"}},{name:"Markdown Bold",scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{name:"Markdown Link Title/Description",scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{name:"Markdown Underline Link/Image",scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#E6DB74"}},{name:"Markdown Emphasis",scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{name:"Markdown Punctuation Definition Link",scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{foreground:"#f8f8f2"}},{name:"Markdown List Punctuation",scope:["punctuation.definition.list.begin.markdown"],settings:{foreground:"#A6E22E"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#FD971F"}}],o=!0,r="monokai",i={type:e,colors:n,tokenColors:t,semanticHighlighting:true,name:r};export{n as colors,i as default,r as name,o as semanticHighlighting,t as tokenColors,e as type}; diff --git a/lib/dist/theme/nord.mjs b/lib/dist/theme/nord.mjs new file mode 100644 index 0000000..3cc8989 --- /dev/null +++ b/lib/dist/theme/nord.mjs @@ -0,0 +1 @@ +var e="nord",t="dark",o=!0,r={focusBorder:"#3b4252",foreground:"#d8dee9","activityBar.background":"#2e3440","activityBar.dropBackground":"#3b4252","activityBar.foreground":"#d8dee9","activityBar.activeBorder":"#88c0d0","activityBar.activeBackground":"#3b4252","activityBarBadge.background":"#88c0d0","activityBarBadge.foreground":"#2e3440","badge.foreground":"#2e3440","badge.background":"#88c0d0","button.background":"#88c0d0ee","button.foreground":"#2e3440","button.hoverBackground":"#88c0d0","button.secondaryBackground":"#434c5e","button.secondaryForeground":"#d8dee9","button.secondaryHoverBackground":"#4c566a","charts.red":"#bf616a","charts.blue":"#81a1c1","charts.yellow":"#ebcb8b","charts.orange":"#d08770","charts.green":"#a3be8c","charts.purple":"#b48ead","charts.foreground":"#d8dee9","charts.lines":"#88c0d0","debugConsole.infoForeground":"#88c0d0","debugConsole.warningForeground":"#ebcb8b","debugConsole.errorForeground":"#bf616a","debugConsole.sourceForeground":"#616e88","debugConsoleInputIcon.foreground":"#81a1c1","debugExceptionWidget.background":"#4c566a","debugExceptionWidget.border":"#2e3440","debugToolBar.background":"#3b4252",descriptionForeground:"#d8dee9e6","diffEditor.insertedTextBackground":"#81a1c133","diffEditor.removedTextBackground":"#bf616a4d","dropdown.background":"#3b4252","dropdown.border":"#3b4252","dropdown.foreground":"#d8dee9","editorActiveLineNumber.foreground":"#d8dee9cc","editorCursor.foreground":"#d8dee9","editorHint.border":"#ebcb8b00","editorHint.foreground":"#ebcb8b","editorIndentGuide.background":"#434c5eb3","editorIndentGuide.activeBackground":"#4c566a","editorInlayHint.background":"#434c5e","editorInlayHint.foreground":"#d8dee9","editorLineNumber.foreground":"#4c566a","editorLineNumber.activeForeground":"#d8dee9","editorWhitespace.foreground":"#4c566ab3","editorWidget.background":"#2e3440","editorWidget.border":"#3b4252","editor.background":"#2e3440","editor.foreground":"#d8dee9","editor.hoverHighlightBackground":"#3b4252","editor.findMatchBackground":"#88c0d066","editor.findMatchHighlightBackground":"#88c0d033","editor.findRangeHighlightBackground":"#88c0d033","editor.lineHighlightBackground":"#3b4252","editor.lineHighlightBorder":"#3b4252","editor.inactiveSelectionBackground":"#434c5ecc","editor.inlineValuesBackground":"#4c566a","editor.inlineValuesForeground":"#eceff4","editor.selectionBackground":"#434c5ecc","editor.selectionHighlightBackground":"#434c5ecc","editor.rangeHighlightBackground":"#434c5e52","editor.wordHighlightBackground":"#81a1c166","editor.wordHighlightStrongBackground":"#81a1c199","editor.stackFrameHighlightBackground":"#5e81ac","editor.focusedStackFrameHighlightBackground":"#5e81ac","editorError.foreground":"#bf616a","editorError.border":"#bf616a00","editorWarning.foreground":"#ebcb8b","editorWarning.border":"#ebcb8b00","editorBracketMatch.background":"#2e344000","editorBracketMatch.border":"#88c0d0","editorBracketHighlight.foreground1":"#8fbcbb","editorBracketHighlight.foreground2":"#88c0d0","editorBracketHighlight.foreground3":"#81a1c1","editorBracketHighlight.foreground4":"#5e81ac","editorBracketHighlight.foreground5":"#8fbcbb","editorBracketHighlight.foreground6":"#88c0d0","editorBracketHighlight.unexpectedBracket.foreground":"#bf616a","editorCodeLens.foreground":"#4c566a","editorGroup.background":"#2e3440","editorGroup.border":"#3b425201","editorGroup.dropBackground":"#3b425299","editorGroupHeader.border":"#3b425200","editorGroupHeader.noTabsBackground":"#2e3440","editorGroupHeader.tabsBackground":"#2e3440","editorGroupHeader.tabsBorder":"#3b425200","editorGutter.background":"#2e3440","editorGutter.modifiedBackground":"#ebcb8b","editorGutter.addedBackground":"#a3be8c","editorGutter.deletedBackground":"#bf616a","editorHoverWidget.background":"#3b4252","editorHoverWidget.border":"#3b4252","editorLink.activeForeground":"#88c0d0","editorMarkerNavigation.background":"#5e81acc0","editorMarkerNavigationError.background":"#bf616ac0","editorMarkerNavigationWarning.background":"#ebcb8bc0","editorOverviewRuler.border":"#3b4252","editorOverviewRuler.currentContentForeground":"#3b4252","editorOverviewRuler.incomingContentForeground":"#3b4252","editorOverviewRuler.findMatchForeground":"#88c0d066","editorOverviewRuler.rangeHighlightForeground":"#88c0d066","editorOverviewRuler.selectionHighlightForeground":"#88c0d066","editorOverviewRuler.wordHighlightForeground":"#88c0d066","editorOverviewRuler.wordHighlightStrongForeground":"#88c0d066","editorOverviewRuler.modifiedForeground":"#ebcb8b","editorOverviewRuler.addedForeground":"#a3be8c","editorOverviewRuler.deletedForeground":"#bf616a","editorOverviewRuler.errorForeground":"#bf616a","editorOverviewRuler.warningForeground":"#ebcb8b","editorOverviewRuler.infoForeground":"#81a1c1","editorRuler.foreground":"#434c5e","editorSuggestWidget.background":"#2e3440","editorSuggestWidget.border":"#3b4252","editorSuggestWidget.foreground":"#d8dee9","editorSuggestWidget.focusHighlightForeground":"#88c0d0","editorSuggestWidget.highlightForeground":"#88c0d0","editorSuggestWidget.selectedBackground":"#434c5e","editorSuggestWidget.selectedForeground":"#d8dee9","extensionButton.prominentForeground":"#d8dee9","extensionButton.prominentBackground":"#434c5e","extensionButton.prominentHoverBackground":"#4c566a",errorForeground:"#bf616a","gitDecoration.modifiedResourceForeground":"#ebcb8b","gitDecoration.deletedResourceForeground":"#bf616a","gitDecoration.untrackedResourceForeground":"#a3be8c","gitDecoration.ignoredResourceForeground":"#d8dee966","gitDecoration.conflictingResourceForeground":"#5e81ac","gitDecoration.submoduleResourceForeground":"#8fbcbb","gitDecoration.stageDeletedResourceForeground":"#bf616a","gitDecoration.stageModifiedResourceForeground":"#ebcb8b","input.background":"#3b4252","input.foreground":"#d8dee9","input.placeholderForeground":"#d8dee999","input.border":"#3b4252","inputOption.activeBackground":"#5e81ac","inputOption.activeBorder":"#5e81ac","inputOption.activeForeground":"#eceff4","inputValidation.errorBackground":"#bf616a","inputValidation.errorBorder":"#bf616a","inputValidation.infoBackground":"#81a1c1","inputValidation.infoBorder":"#81a1c1","inputValidation.warningBackground":"#d08770","inputValidation.warningBorder":"#d08770","keybindingLabel.background":"#4c566a","keybindingLabel.border":"#4c566a","keybindingLabel.bottomBorder":"#4c566a","keybindingLabel.foreground":"#d8dee9","list.activeSelectionBackground":"#88c0d0","list.activeSelectionForeground":"#2e3440","list.inactiveSelectionBackground":"#434c5e","list.inactiveSelectionForeground":"#d8dee9","list.inactiveFocusBackground":"#434c5ecc","list.hoverForeground":"#eceff4","list.focusForeground":"#d8dee9","list.focusBackground":"#88c0d099","list.focusHighlightForeground":"#eceff4","list.hoverBackground":"#3b4252","list.dropBackground":"#88c0d099","list.highlightForeground":"#88c0d0","list.errorForeground":"#bf616a","list.warningForeground":"#ebcb8b","merge.currentHeaderBackground":"#81a1c166","merge.currentContentBackground":"#81a1c14d","merge.incomingHeaderBackground":"#8fbcbb66","merge.incomingContentBackground":"#8fbcbb4d","merge.border":"#3b425200","minimap.background":"#2e3440","minimap.errorHighlight":"#bf616acc","minimap.findMatchHighlight":"#88c0d0","minimap.selectionHighlight":"#88c0d0cc","minimap.warningHighlight":"#ebcb8bcc","minimapGutter.addedBackground":"#a3be8c","minimapGutter.deletedBackground":"#bf616a","minimapGutter.modifiedBackground":"#ebcb8b","minimapSlider.activeBackground":"#434c5eaa","minimapSlider.background":"#434c5e99","minimapSlider.hoverBackground":"#434c5eaa","notification.background":"#3b4252","notification.buttonBackground":"#434c5e","notification.buttonForeground":"#d8dee9","notification.buttonHoverBackground":"#4c566a","notification.errorBackground":"#bf616a","notification.errorForeground":"#2e3440","notification.foreground":"#d8dee9","notification.infoBackground":"#88c0d0","notification.infoForeground":"#2e3440","notification.warningBackground":"#ebcb8b","notification.warningForeground":"#2e3440","notificationCenter.border":"#3b425200","notificationCenterHeader.background":"#2e3440","notificationCenterHeader.foreground":"#88c0d0","notificationLink.foreground":"#88c0d0","notifications.background":"#3b4252","notifications.border":"#2e3440","notifications.foreground":"#d8dee9","notificationToast.border":"#3b425200","panel.background":"#2e3440","panel.border":"#3b4252","panelTitle.activeBorder":"#88c0d000","panelTitle.activeForeground":"#88c0d0","panelTitle.inactiveForeground":"#d8dee9","peekView.border":"#4c566a","peekViewEditor.background":"#2e3440","peekViewEditorGutter.background":"#2e3440","peekViewEditor.matchHighlightBackground":"#88c0d04d","peekViewResult.background":"#2e3440","peekViewResult.fileForeground":"#88c0d0","peekViewResult.lineForeground":"#d8dee966","peekViewResult.matchHighlightBackground":"#88c0d0cc","peekViewResult.selectionBackground":"#434c5e","peekViewResult.selectionForeground":"#d8dee9","peekViewTitle.background":"#3b4252","peekViewTitleDescription.foreground":"#d8dee9","peekViewTitleLabel.foreground":"#88c0d0","pickerGroup.border":"#3b4252","pickerGroup.foreground":"#88c0d0","progressBar.background":"#88c0d0","quickInputList.focusBackground":"#88c0d0","quickInputList.focusForeground":"#2e3440","sash.hoverBorder":"#88c0d0","scrollbar.shadow":"#00000066","scrollbarSlider.activeBackground":"#434c5eaa","scrollbarSlider.background":"#434c5e99","scrollbarSlider.hoverBackground":"#434c5eaa","selection.background":"#88c0d099","sideBar.background":"#2e3440","sideBar.foreground":"#d8dee9","sideBar.border":"#3b4252","sideBarSectionHeader.background":"#3b4252","sideBarSectionHeader.foreground":"#d8dee9","sideBarTitle.foreground":"#d8dee9","statusBar.background":"#3b4252","statusBar.debuggingBackground":"#5e81ac","statusBar.debuggingForeground":"#d8dee9","statusBar.noFolderForeground":"#d8dee9","statusBar.noFolderBackground":"#3b4252","statusBar.foreground":"#d8dee9","statusBarItem.activeBackground":"#4c566a","statusBarItem.hoverBackground":"#434c5e","statusBarItem.prominentBackground":"#3b4252","statusBarItem.prominentHoverBackground":"#434c5e","statusBarItem.errorBackground":"#3b4252","statusBarItem.errorForeground":"#bf616a","statusBarItem.warningBackground":"#ebcb8b","statusBarItem.warningForeground":"#2e3440","statusBar.border":"#3b425200","tab.activeBackground":"#3b4252","tab.activeForeground":"#d8dee9","tab.border":"#3b425200","tab.activeBorder":"#88c0d000","tab.unfocusedActiveBorder":"#88c0d000","tab.inactiveBackground":"#2e3440","tab.inactiveForeground":"#d8dee966","tab.unfocusedActiveForeground":"#d8dee999","tab.unfocusedInactiveForeground":"#d8dee966","tab.hoverBackground":"#3b4252cc","tab.unfocusedHoverBackground":"#3b4252b3","tab.hoverBorder":"#88c0d000","tab.unfocusedHoverBorder":"#88c0d000","tab.activeBorderTop":"#88c0d000","tab.unfocusedActiveBorderTop":"#88c0d000","tab.lastPinnedBorder":"#4c566a","terminal.background":"#2e3440","terminal.foreground":"#d8dee9","terminal.ansiBlack":"#3b4252","terminal.ansiRed":"#bf616a","terminal.ansiGreen":"#a3be8c","terminal.ansiYellow":"#ebcb8b","terminal.ansiBlue":"#81a1c1","terminal.ansiMagenta":"#b48ead","terminal.ansiCyan":"#88c0d0","terminal.ansiWhite":"#e5e9f0","terminal.ansiBrightBlack":"#4c566a","terminal.ansiBrightRed":"#bf616a","terminal.ansiBrightGreen":"#a3be8c","terminal.ansiBrightYellow":"#ebcb8b","terminal.ansiBrightBlue":"#81a1c1","terminal.ansiBrightMagenta":"#b48ead","terminal.ansiBrightCyan":"#8fbcbb","terminal.ansiBrightWhite":"#eceff4","terminal.tab.activeBorder":"#88c0d0","textBlockQuote.background":"#3b4252","textBlockQuote.border":"#81a1c1","textCodeBlock.background":"#4c566a","textLink.activeForeground":"#88c0d0","textLink.foreground":"#88c0d0","textPreformat.foreground":"#8fbcbb","textSeparator.foreground":"#eceff4","titleBar.activeBackground":"#2e3440","titleBar.activeForeground":"#d8dee9","titleBar.border":"#2e344000","titleBar.inactiveBackground":"#2e3440","titleBar.inactiveForeground":"#d8dee966","tree.indentGuidesStroke":"#616e88","walkThrough.embeddedEditorBackground":"#2e3440","welcomePage.buttonBackground":"#434c5e","welcomePage.buttonHoverBackground":"#4c566a","widget.shadow":"#00000066"},n=[{settings:{foreground:"#d8dee9ff",background:"#2e3440ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{name:"Comment",scope:"comment",settings:{foreground:"#616E88"}},{name:"Constant Character",scope:"constant.character",settings:{foreground:"#EBCB8B"}},{name:"Constant Character Escape",scope:"constant.character.escape",settings:{foreground:"#EBCB8B"}},{name:"Constant Language",scope:"constant.language",settings:{foreground:"#81A1C1"}},{name:"Constant Numeric",scope:"constant.numeric",settings:{foreground:"#B48EAD"}},{name:"Constant Regexp",scope:"constant.regexp",settings:{foreground:"#EBCB8B"}},{name:"Entity Name Class/Type",scope:["entity.name.class","entity.name.type.class"],settings:{foreground:"#8FBCBB"}},{name:"Entity Name Function",scope:"entity.name.function",settings:{foreground:"#88C0D0"}},{name:"Entity Name Tag",scope:"entity.name.tag",settings:{foreground:"#81A1C1"}},{name:"Entity Other Attribute Name",scope:"entity.other.attribute-name",settings:{foreground:"#8FBCBB"}},{name:"Entity Other Inherited Class",scope:"entity.other.inherited-class",settings:{fontStyle:"bold",foreground:"#8FBCBB"}},{name:"Invalid Deprecated",scope:"invalid.deprecated",settings:{foreground:"#D8DEE9",background:"#EBCB8B"}},{name:"Invalid Illegal",scope:"invalid.illegal",settings:{foreground:"#D8DEE9",background:"#BF616A"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#81A1C1"}},{name:"Keyword Operator",scope:"keyword.operator",settings:{foreground:"#81A1C1"}},{name:"Keyword Other New",scope:"keyword.other.new",settings:{foreground:"#81A1C1"}},{name:"Markup Bold",scope:"markup.bold",settings:{fontStyle:"bold"}},{name:"Markup Changed",scope:"markup.changed",settings:{foreground:"#EBCB8B"}},{name:"Markup Deleted",scope:"markup.deleted",settings:{foreground:"#BF616A"}},{name:"Markup Inserted",scope:"markup.inserted",settings:{foreground:"#A3BE8C"}},{name:"Meta Preprocessor",scope:"meta.preprocessor",settings:{foreground:"#5E81AC"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#ECEFF4"}},{name:"Punctuation Definition Parameters",scope:["punctuation.definition.method-parameters","punctuation.definition.function-parameters","punctuation.definition.parameters"],settings:{foreground:"#ECEFF4"}},{name:"Punctuation Definition Tag",scope:"punctuation.definition.tag",settings:{foreground:"#81A1C1"}},{name:"Punctuation Definition Comment",scope:["punctuation.definition.comment","punctuation.end.definition.comment","punctuation.start.definition.comment"],settings:{foreground:"#616E88"}},{name:"Punctuation Section",scope:"punctuation.section",settings:{foreground:"#ECEFF4"}},{name:"Punctuation Section Embedded",scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#81A1C1"}},{name:"Punctuation Terminator",scope:"punctuation.terminator",settings:{foreground:"#81A1C1"}},{name:"Punctuation Variable",scope:"punctuation.definition.variable",settings:{foreground:"#81A1C1"}},{name:"Storage",scope:"storage",settings:{foreground:"#81A1C1"}},{name:"String",scope:"string",settings:{foreground:"#A3BE8C"}},{name:"String Regexp",scope:"string.regexp",settings:{foreground:"#EBCB8B"}},{name:"Support Class",scope:"support.class",settings:{foreground:"#8FBCBB"}},{name:"Support Constant",scope:"support.constant",settings:{foreground:"#81A1C1"}},{name:"Support Function",scope:"support.function",settings:{foreground:"#88C0D0"}},{name:"Support Function Construct",scope:"support.function.construct",settings:{foreground:"#81A1C1"}},{name:"Support Type",scope:"support.type",settings:{foreground:"#8FBCBB"}},{name:"Support Type Exception",scope:"support.type.exception",settings:{foreground:"#8FBCBB"}},{name:"Token Debug",scope:"token.debug-token",settings:{foreground:"#b48ead"}},{name:"Token Error",scope:"token.error-token",settings:{foreground:"#bf616a"}},{name:"Token Info",scope:"token.info-token",settings:{foreground:"#88c0d0"}},{name:"Token Warning",scope:"token.warn-token",settings:{foreground:"#ebcb8b"}},{name:"Variable",scope:"variable.other",settings:{foreground:"#D8DEE9"}},{name:"Variable Language",scope:"variable.language",settings:{foreground:"#81A1C1"}},{name:"Variable Parameter",scope:"variable.parameter",settings:{foreground:"#D8DEE9"}},{name:"[C/CPP] Punctuation Separator Pointer-Access",scope:"punctuation.separator.pointer-access.c",settings:{foreground:"#81A1C1"}},{name:"[C/CPP] Meta Preprocessor Include",scope:["source.c meta.preprocessor.include","source.c string.quoted.other.lt-gt.include"],settings:{foreground:"#8FBCBB"}},{name:"[C/CPP] Conditional Directive",scope:["source.cpp keyword.control.directive.conditional","source.cpp punctuation.definition.directive","source.c keyword.control.directive.conditional","source.c punctuation.definition.directive"],settings:{foreground:"#5E81AC",fontStyle:"bold"}},{name:"[CSS] Constant Other Color RGB Value",scope:"source.css constant.other.color.rgb-value",settings:{foreground:"#B48EAD"}},{name:"[CSS](Function) Meta Property-Value",scope:"source.css meta.property-value",settings:{foreground:"#88C0D0"}},{name:"[CSS] Media Queries",scope:["source.css keyword.control.at-rule.media","source.css keyword.control.at-rule.media punctuation.definition.keyword"],settings:{foreground:"#D08770"}},{name:"[CSS] Punctuation Definition Keyword",scope:"source.css punctuation.definition.keyword",settings:{foreground:"#81A1C1"}},{name:"[CSS] Support Type Property Name",scope:"source.css support.type.property-name",settings:{foreground:"#D8DEE9"}},{name:"[diff] Meta Range Context",scope:"source.diff meta.diff.range.context",settings:{foreground:"#8FBCBB"}},{name:"[diff] Meta Header From-File",scope:"source.diff meta.diff.header.from-file",settings:{foreground:"#8FBCBB"}},{name:"[diff] Punctuation Definition From-File",scope:"source.diff punctuation.definition.from-file",settings:{foreground:"#8FBCBB"}},{name:"[diff] Punctuation Definition Range",scope:"source.diff punctuation.definition.range",settings:{foreground:"#8FBCBB"}},{name:"[diff] Punctuation Definition Separator",scope:"source.diff punctuation.definition.separator",settings:{foreground:"#81A1C1"}},{name:"[Elixir](JakeBecker.elixir-ls) module names",scope:"entity.name.type.module.elixir",settings:{foreground:"#8FBCBB"}},{name:"[Elixir](JakeBecker.elixir-ls) module attributes",scope:"variable.other.readwrite.module.elixir",settings:{foreground:"#D8DEE9",fontStyle:"bold"}},{name:"[Elixir](JakeBecker.elixir-ls) atoms",scope:"constant.other.symbol.elixir",settings:{foreground:"#D8DEE9",fontStyle:"bold"}},{name:"[Elixir](JakeBecker.elixir-ls) modules",scope:"variable.other.constant.elixir",settings:{foreground:"#8FBCBB"}},{name:"[Go] String Format Placeholder",scope:"source.go constant.other.placeholder.go",settings:{foreground:"#EBCB8B"}},{name:"[Java](JavaDoc) Comment Block Documentation HTML Entities",scope:"source.java comment.block.documentation.javadoc punctuation.definition.entity.html",settings:{foreground:"#81A1C1"}},{name:"[Java](JavaDoc) Constant Other",scope:"source.java constant.other",settings:{foreground:"#D8DEE9"}},{name:"[Java](JavaDoc) Keyword Other Documentation",scope:"source.java keyword.other.documentation",settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Keyword Other Documentation Author",scope:"source.java keyword.other.documentation.author.javadoc",settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Keyword Other Documentation Directive/Custom",scope:["source.java keyword.other.documentation.directive","source.java keyword.other.documentation.custom"],settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Keyword Other Documentation See",scope:"source.java keyword.other.documentation.see.javadoc",settings:{foreground:"#8FBCBB"}},{name:"[Java] Meta Method-Call",scope:"source.java meta.method-call meta.method",settings:{foreground:"#88C0D0"}},{name:"[Java](JavaDoc) Meta Tag Template Link",scope:["source.java meta.tag.template.link.javadoc","source.java string.other.link.title.javadoc"],settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Meta Tag Template Value",scope:"source.java meta.tag.template.value.javadoc",settings:{foreground:"#88C0D0"}},{name:"[Java](JavaDoc) Punctuation Definition Keyword",scope:"source.java punctuation.definition.keyword.javadoc",settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Punctuation Definition Tag",scope:["source.java punctuation.definition.tag.begin.javadoc","source.java punctuation.definition.tag.end.javadoc"],settings:{foreground:"#616E88"}},{name:"[Java] Storage Modifier Import",scope:"source.java storage.modifier.import",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Modifier Package",scope:"source.java storage.modifier.package",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Type",scope:"source.java storage.type",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Type Annotation",scope:"source.java storage.type.annotation",settings:{foreground:"#D08770"}},{name:"[Java] Storage Type Generic",scope:"source.java storage.type.generic",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Type Primitive",scope:"source.java storage.type.primitive",settings:{foreground:"#81A1C1"}},{name:"[JavaScript] Decorator",scope:["source.js punctuation.decorator","source.js meta.decorator variable.other.readwrite","source.js meta.decorator entity.name.function"],settings:{foreground:"#D08770"}},{name:"[JavaScript] Meta Object-Literal Key",scope:"source.js meta.object-literal.key",settings:{foreground:"#88C0D0"}},{name:"[JavaScript](JSDoc) Storage Type Class",scope:"source.js storage.type.class.jsdoc",settings:{foreground:"#8FBCBB"}},{name:"[JavaScript] String Template Literals Punctuation",scope:["source.js string.quoted.template punctuation.quasi.element.begin","source.js string.quoted.template punctuation.quasi.element.end","source.js string.template punctuation.definition.template-expression"],settings:{foreground:"#81A1C1"}},{name:"[JavaScript] Interpolated String Template Punctuation Functions",scope:"source.js string.quoted.template meta.method-call.with-arguments",settings:{foreground:"#ECEFF4"}},{name:"[JavaScript] String Template Literal Variable",scope:["source.js string.template meta.template.expression support.variable.property","source.js string.template meta.template.expression variable.other.object"],settings:{foreground:"#D8DEE9"}},{name:"[JavaScript] Support Type Primitive",scope:"source.js support.type.primitive",settings:{foreground:"#81A1C1"}},{name:"[JavaScript] Variable Other Object",scope:"source.js variable.other.object",settings:{foreground:"#D8DEE9"}},{name:"[JavaScript] Variable Other Read-Write Alias",scope:"source.js variable.other.readwrite.alias",settings:{foreground:"#8FBCBB"}},{name:"[JavaScript] Parentheses in Template Strings",scope:["source.js meta.embedded.line meta.brace.square","source.js meta.embedded.line meta.brace.round","source.js string.quoted.template meta.brace.square","source.js string.quoted.template meta.brace.round"],settings:{foreground:"#ECEFF4"}},{name:"[HTML] Constant Character Entity",scope:"text.html.basic constant.character.entity.html",settings:{foreground:"#EBCB8B"}},{name:"[HTML] Constant Other Inline-Data",scope:"text.html.basic constant.other.inline-data",settings:{foreground:"#D08770",fontStyle:"italic"}},{name:"[HTML] Meta Tag SGML Doctype",scope:"text.html.basic meta.tag.sgml.doctype",settings:{foreground:"#5E81AC"}},{name:"[HTML] Punctuation Definition Entity",scope:"text.html.basic punctuation.definition.entity",settings:{foreground:"#81A1C1"}},{name:"[INI] Entity Name Section Group-Title",scope:"source.properties entity.name.section.group-title.ini",settings:{foreground:"#88C0D0"}},{name:"[INI] Punctuation Separator Key-Value",scope:"source.properties punctuation.separator.key-value.ini",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Markup Fenced Code Block",scope:["text.html.markdown markup.fenced_code.block","text.html.markdown markup.fenced_code.block punctuation.definition"],settings:{foreground:"#8FBCBB"}},{name:"[Markdown] Markup Heading",scope:"markup.heading",settings:{foreground:"#88C0D0"}},{name:"[Markdown] Markup Inline",scope:["text.html.markdown markup.inline.raw","text.html.markdown markup.inline.raw punctuation.definition.raw"],settings:{foreground:"#8FBCBB"}},{name:"[Markdown] Markup Italic",scope:"text.html.markdown markup.italic",settings:{fontStyle:"italic"}},{name:"[Markdown] Markup Link",scope:"text.html.markdown markup.underline.link",settings:{fontStyle:"underline"}},{name:"[Markdown] Markup List Numbered/Unnumbered",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Markup Quote Punctuation Definition",scope:"text.html.markdown beginning.punctuation.definition.quote",settings:{foreground:"#8FBCBB"}},{name:"[Markdown] Markup Quote Punctuation Definition",scope:"text.html.markdown markup.quote",settings:{foreground:"#616E88"}},{name:"[Markdown] Markup Math Constant",scope:"text.html.markdown constant.character.math.tex",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Markup Math Definition Marker",scope:["text.html.markdown punctuation.definition.math.begin","text.html.markdown punctuation.definition.math.end"],settings:{foreground:"#5E81AC"}},{name:"[Markdown] Markup Math Function Definition Marker",scope:"text.html.markdown punctuation.definition.function.math.tex",settings:{foreground:"#88C0D0"}},{name:"[Markdown] Markup Math Operator",scope:"text.html.markdown punctuation.math.operator.latex",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Punctuation Definition Heading",scope:"text.html.markdown punctuation.definition.heading",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Punctuation Definition Constant/String",scope:["text.html.markdown punctuation.definition.constant","text.html.markdown punctuation.definition.string"],settings:{foreground:"#81A1C1"}},{name:"[Markdown] String Other Link Description/Title",scope:["text.html.markdown constant.other.reference.link","text.html.markdown string.other.link.description","text.html.markdown string.other.link.title"],settings:{foreground:"#88C0D0"}},{name:"[Perl] Perl Sigils",scope:"source.perl punctuation.definition.variable",settings:{foreground:"#D8DEE9"}},{name:"[PHP] Meta Function-Call Object",scope:["source.php meta.function-call","source.php meta.function-call.object"],settings:{foreground:"#88C0D0"}},{name:"[Python] Decorator",scope:["source.python entity.name.function.decorator","source.python meta.function.decorator support.type"],settings:{foreground:"#D08770"}},{name:"[Python] Function Call",scope:"source.python meta.function-call.generic",settings:{foreground:"#88C0D0"}},{name:"[Python] Support Type",scope:"source.python support.type",settings:{foreground:"#88C0D0"}},{name:"[Python] Function Parameter",scope:["source.python variable.parameter.function.language"],settings:{foreground:"#D8DEE9"}},{name:"[Python] Function Parameter Special",scope:["source.python meta.function.parameters variable.parameter.function.language.special.self"],settings:{foreground:"#81A1C1"}},{name:"[Rust] Entity types",scope:"source.rust entity.name.type",settings:{foreground:"#8FBCBB"}},{name:"[Rust] Macro",scope:"source.rust meta.macro entity.name.function",settings:{fontStyle:"bold",foreground:"#88C0D0"}},{name:"[Rust] Attributes",scope:["source.rust meta.attribute","source.rust meta.attribute punctuation","source.rust meta.attribute keyword.operator"],settings:{foreground:"#5E81AC"}},{name:"[Rust] Traits",scope:"source.rust entity.name.type.trait",settings:{fontStyle:"bold"}},{name:"[Rust] Interpolation Bracket Curly",scope:"source.rust punctuation.definition.interpolation",settings:{foreground:"#EBCB8B"}},{name:"[SCSS] Punctuation Definition Interpolation Bracket Curly",scope:["source.css.scss punctuation.definition.interpolation.begin.bracket.curly","source.css.scss punctuation.definition.interpolation.end.bracket.curly"],settings:{foreground:"#81A1C1"}},{name:"[SCSS] Variable Interpolation",scope:"source.css.scss variable.interpolation",settings:{foreground:"#D8DEE9",fontStyle:"italic"}},{name:"[TypeScript] Decorators",scope:["source.ts punctuation.decorator","source.ts meta.decorator variable.other.readwrite","source.ts meta.decorator entity.name.function","source.tsx punctuation.decorator","source.tsx meta.decorator variable.other.readwrite","source.tsx meta.decorator entity.name.function"],settings:{foreground:"#D08770"}},{name:"[TypeScript] Object-literal keys",scope:["source.ts meta.object-literal.key","source.tsx meta.object-literal.key"],settings:{foreground:"#D8DEE9"}},{name:"[TypeScript] Object-literal functions",scope:["source.ts meta.object-literal.key entity.name.function","source.tsx meta.object-literal.key entity.name.function"],settings:{foreground:"#88C0D0"}},{name:"[TypeScript] Type/Class",scope:["source.ts support.class","source.ts support.type","source.ts entity.name.type","source.ts entity.name.class","source.tsx support.class","source.tsx support.type","source.tsx entity.name.type","source.tsx entity.name.class"],settings:{foreground:"#8FBCBB"}},{name:"[TypeScript] Static Class Support",scope:["source.ts support.constant.math","source.ts support.constant.dom","source.ts support.constant.json","source.tsx support.constant.math","source.tsx support.constant.dom","source.tsx support.constant.json"],settings:{foreground:"#8FBCBB"}},{name:"[TypeScript] Variables",scope:["source.ts support.variable","source.tsx support.variable"],settings:{foreground:"#D8DEE9"}},{name:"[TypeScript] Parentheses in Template Strings",scope:["source.ts meta.embedded.line meta.brace.square","source.ts meta.embedded.line meta.brace.round","source.tsx meta.embedded.line meta.brace.square","source.tsx meta.embedded.line meta.brace.round"],settings:{foreground:"#ECEFF4"}},{name:"[XML] Entity Name Tag Namespace",scope:"text.xml entity.name.tag.namespace",settings:{foreground:"#8FBCBB"}},{name:"[XML] Keyword Other Doctype",scope:"text.xml keyword.other.doctype",settings:{foreground:"#5E81AC"}},{name:"[XML] Meta Tag Preprocessor",scope:"text.xml meta.tag.preprocessor entity.name.tag",settings:{foreground:"#5E81AC"}},{name:"[XML] Entity Name Tag Namespace",scope:["text.xml string.unquoted.cdata","text.xml string.unquoted.cdata punctuation.definition.string"],settings:{foreground:"#D08770",fontStyle:"italic"}},{name:"[YAML] Entity Name Tag",scope:"source.yaml entity.name.tag",settings:{foreground:"#8FBCBB"}}],a={name:e,type:t,semanticHighlighting:true,colors:r,tokenColors:n};export{r as colors,a as default,e as name,o as semanticHighlighting,n as tokenColors,t as type}; diff --git a/lib/dist/theme/one-dark-pro.mjs b/lib/dist/theme/one-dark-pro.mjs new file mode 100644 index 0000000..bd49d84 --- /dev/null +++ b/lib/dist/theme/one-dark-pro.mjs @@ -0,0 +1 @@ +var e="one-dark-pro",o="dark",t=!0,n={enumMember:{foreground:"#56b6c2"},"variable.constant":{foreground:"#d19a66"},"variable.defaultLibrary":{foreground:"#e5c07b"},"variable:dart":{foreground:"#d19a66"},"property:dart":{foreground:"#d19a66"},"annotation:dart":{foreground:"#d19a66"},"parameter.label:dart":{foreground:"#abb2bf"},macro:{foreground:"#d19a66"},tomlArrayKey:{foreground:"#e5c07b"}},r=[{scope:"meta.embedded",settings:{foreground:"#abb2bf"}},{name:"unison punctuation",scope:"punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison",settings:{foreground:"#e06c75"}},{name:"haskell variable generic-type",scope:"variable.other.generic-type.haskell",settings:{foreground:"#c678dd"}},{name:"haskell storage type",scope:"storage.type.haskell",settings:{foreground:"#d19a66"}},{name:"support.variable.magic.python",scope:"support.variable.magic.python",settings:{foreground:"#e06c75"}},{name:"punctuation.separator.parameters.python",scope:"punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python",settings:{foreground:"#abb2bf"}},{name:"variable.parameter.function.language.special.self.python",scope:"variable.parameter.function.language.special.self.python",settings:{foreground:"#e5c07b"}},{name:"variable.parameter.function.language.special.cls.python",scope:"variable.parameter.function.language.special.cls.python",settings:{foreground:"#e5c07b"}},{name:"storage.modifier.lifetime.rust",scope:"storage.modifier.lifetime.rust",settings:{foreground:"#abb2bf"}},{name:"support.function.std.rust",scope:"support.function.std.rust",settings:{foreground:"#61afef"}},{name:"entity.name.lifetime.rust",scope:"entity.name.lifetime.rust",settings:{foreground:"#e5c07b"}},{name:"variable.language.rust",scope:"variable.language.rust",settings:{foreground:"#e06c75"}},{name:"support.constant.edge",scope:"support.constant.edge",settings:{foreground:"#c678dd"}},{name:"regexp constant character-class",scope:"constant.other.character-class.regexp",settings:{foreground:"#e06c75"}},{name:"keyword.operator",scope:["keyword.operator.word"],settings:{foreground:"#c678dd"}},{name:"regexp operator.quantifier",scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d19a66"}},{name:"Text",scope:"variable.parameter.function",settings:{foreground:"#abb2bf"}},{name:"Comment Markup Link",scope:"comment markup.link",settings:{foreground:"#5c6370"}},{name:"markup diff",scope:"markup.changed.diff",settings:{foreground:"#e5c07b"}},{name:"diff",scope:"meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff",settings:{foreground:"#61afef"}},{name:"inserted.diff",scope:"markup.inserted.diff",settings:{foreground:"#98c379"}},{name:"deleted.diff",scope:"markup.deleted.diff",settings:{foreground:"#e06c75"}},{name:"c++ function",scope:"meta.function.c,meta.function.cpp",settings:{foreground:"#e06c75"}},{name:"c++ block",scope:"punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c",settings:{foreground:"#abb2bf"}},{name:"js/ts punctuation separator key-value",scope:"punctuation.separator.key-value",settings:{foreground:"#abb2bf"}},{name:"js/ts import keyword",scope:"keyword.operator.expression.import",settings:{foreground:"#61afef"}},{name:"math js/ts",scope:"support.constant.math",settings:{foreground:"#e5c07b"}},{name:"math property js/ts",scope:"support.constant.property.math",settings:{foreground:"#d19a66"}},{name:"js/ts variable.other.constant",scope:"variable.other.constant",settings:{foreground:"#e5c07b"}},{name:"java type",scope:["storage.type.annotation.java","storage.type.object.array.java"],settings:{foreground:"#e5c07b"}},{name:"java source",scope:"source.java",settings:{foreground:"#e06c75"}},{name:"java modifier.import",scope:"punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java",settings:{foreground:"#abb2bf"}},{name:"java modifier.import",scope:"meta.method.java",settings:{foreground:"#61afef"}},{name:"java modifier.import",scope:"storage.modifier.import.java,storage.type.java,storage.type.generic.java",settings:{foreground:"#e5c07b"}},{name:"java instanceof",scope:"keyword.operator.instanceof.java",settings:{foreground:"#c678dd"}},{name:"java variable.name",scope:"meta.definition.variable.name.java",settings:{foreground:"#e06c75"}},{name:"operator logical",scope:"keyword.operator.logical",settings:{foreground:"#56b6c2"}},{name:"operator bitwise",scope:"keyword.operator.bitwise",settings:{foreground:"#56b6c2"}},{name:"operator channel",scope:"keyword.operator.channel",settings:{foreground:"#56b6c2"}},{name:"support.constant.property-value.scss",scope:"support.constant.property-value.scss,support.constant.property-value.css",settings:{foreground:"#d19a66"}},{name:"CSS/SCSS/LESS Operators",scope:"keyword.operator.css,keyword.operator.scss,keyword.operator.less",settings:{foreground:"#56b6c2"}},{name:"css color standard name",scope:"support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss",settings:{foreground:"#d19a66"}},{name:"css comma",scope:"punctuation.separator.list.comma.css",settings:{foreground:"#abb2bf"}},{name:"css attribute-name.id",scope:"support.constant.color.w3c-standard-color-name.css",settings:{foreground:"#d19a66"}},{name:"css property-name",scope:"support.type.vendored.property-name.css",settings:{foreground:"#56b6c2"}},{name:"js/ts module",scope:"support.module.node,support.type.object.module,support.module.node",settings:{foreground:"#e5c07b"}},{name:"entity.name.type.module",scope:"entity.name.type.module",settings:{foreground:"#e5c07b"}},{name:"js variable readwrite",scope:"variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node",settings:{foreground:"#e06c75"}},{name:"js/ts json",scope:"support.constant.json",settings:{foreground:"#d19a66"}},{name:"js/ts Keyword",scope:["keyword.operator.expression.instanceof","keyword.operator.new","keyword.operator.ternary","keyword.operator.optional","keyword.operator.expression.keyof"],settings:{foreground:"#c678dd"}},{name:"js/ts console",scope:"support.type.object.console",settings:{foreground:"#e06c75"}},{name:"js/ts support.variable.property.process",scope:"support.variable.property.process",settings:{foreground:"#d19a66"}},{name:"js console function",scope:"entity.name.function,support.function.console",settings:{foreground:"#61afef"}},{name:"keyword.operator.misc.rust",scope:"keyword.operator.misc.rust",settings:{foreground:"#abb2bf"}},{name:"keyword.operator.sigil.rust",scope:"keyword.operator.sigil.rust",settings:{foreground:"#c678dd"}},{name:"operator",scope:"keyword.operator.delete",settings:{foreground:"#c678dd"}},{name:"js dom",scope:"support.type.object.dom",settings:{foreground:"#56b6c2"}},{name:"js dom variable",scope:"support.variable.dom,support.variable.property.dom",settings:{foreground:"#e06c75"}},{name:"keyword.operator",scope:"keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational",settings:{foreground:"#56b6c2"}},{name:"C operator assignment",scope:"keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp",settings:{foreground:"#c678dd"}},{name:"Punctuation",scope:"punctuation.separator.delimiter",settings:{foreground:"#abb2bf"}},{name:"Other punctuation .c",scope:"punctuation.separator.c,punctuation.separator.cpp",settings:{foreground:"#c678dd"}},{name:"C type posix-reserved",scope:"support.type.posix-reserved.c,support.type.posix-reserved.cpp",settings:{foreground:"#56b6c2"}},{name:"keyword.operator.sizeof.c",scope:"keyword.operator.sizeof.c,keyword.operator.sizeof.cpp",settings:{foreground:"#c678dd"}},{name:"python parameter",scope:"variable.parameter.function.language.python",settings:{foreground:"#d19a66"}},{name:"python type",scope:"support.type.python",settings:{foreground:"#56b6c2"}},{name:"python logical",scope:"keyword.operator.logical.python",settings:{foreground:"#c678dd"}},{name:"pyCs",scope:"variable.parameter.function.python",settings:{foreground:"#d19a66"}},{name:"python block",scope:"punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python",settings:{foreground:"#abb2bf"}},{name:"python function-call.generic",scope:"meta.function-call.generic.python",settings:{foreground:"#61afef"}},{name:"python placeholder reset to normal string",scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#d19a66"}},{name:"Operators",scope:"keyword.operator",settings:{foreground:"#abb2bf"}},{name:"Compound Assignment Operators",scope:"keyword.operator.assignment.compound",settings:{foreground:"#c678dd"}},{name:"Compound Assignment Operators js/ts",scope:"keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts",settings:{foreground:"#56b6c2"}},{name:"Keywords",scope:"keyword",settings:{foreground:"#c678dd"}},{name:"Namespaces",scope:"entity.name.namespace",settings:{foreground:"#e5c07b"}},{name:"Variables",scope:"variable",settings:{foreground:"#e06c75"}},{name:"Variables",scope:"variable.c",settings:{foreground:"#abb2bf"}},{name:"Language variables",scope:"variable.language",settings:{foreground:"#e5c07b"}},{name:"Java Variables",scope:"token.variable.parameter.java",settings:{foreground:"#abb2bf"}},{name:"Java Imports",scope:"import.storage.java",settings:{foreground:"#e5c07b"}},{name:"Packages",scope:"token.package.keyword",settings:{foreground:"#c678dd"}},{name:"Packages",scope:"token.package",settings:{foreground:"#abb2bf"}},{name:"Functions",scope:["entity.name.function","meta.require","support.function.any-method","variable.function"],settings:{foreground:"#61afef"}},{name:"Classes",scope:"entity.name.type.namespace",settings:{foreground:"#e5c07b"}},{name:"Classes",scope:"support.class, entity.name.type.class",settings:{foreground:"#e5c07b"}},{name:"Class name",scope:"entity.name.class.identifier.namespace.type",settings:{foreground:"#e5c07b"}},{name:"Class name",scope:["entity.name.class","variable.other.class.js","variable.other.class.ts"],settings:{foreground:"#e5c07b"}},{name:"Class name php",scope:"variable.other.class.php",settings:{foreground:"#e06c75"}},{name:"Type Name",scope:"entity.name.type",settings:{foreground:"#e5c07b"}},{name:"Keyword Control",scope:"keyword.control",settings:{foreground:"#c678dd"}},{name:"Control Elements",scope:"control.elements, keyword.operator.less",settings:{foreground:"#d19a66"}},{name:"Methods",scope:"keyword.other.special-method",settings:{foreground:"#61afef"}},{name:"Storage",scope:"storage",settings:{foreground:"#c678dd"}},{name:"Storage JS TS",scope:"token.storage",settings:{foreground:"#c678dd"}},{name:"Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void",scope:"keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void",settings:{foreground:"#c678dd"}},{name:"Java Storage",scope:"token.storage.type.java",settings:{foreground:"#e5c07b"}},{name:"Support",scope:"support.function",settings:{foreground:"#56b6c2"}},{name:"Support type",scope:"support.type.property-name",settings:{foreground:"#abb2bf"}},{name:"[VSCODE-CUSTOM] toml support",scope:"support.type.property-name.toml, support.type.property-name.table.toml, support.type.property-name.array.toml",settings:{foreground:"#e06c75"}},{name:"Support type",scope:"support.constant.property-value",settings:{foreground:"#abb2bf"}},{name:"Support type",scope:"support.constant.font-name",settings:{foreground:"#d19a66"}},{name:"Meta tag",scope:"meta.tag",settings:{foreground:"#abb2bf"}},{name:"Strings",scope:"string",settings:{foreground:"#98c379"}},{name:"Constant other symbol",scope:"constant.other.symbol",settings:{foreground:"#56b6c2"}},{name:"Integers",scope:"constant.numeric",settings:{foreground:"#d19a66"}},{name:"Constants",scope:"constant",settings:{foreground:"#d19a66"}},{name:"Constants",scope:"punctuation.definition.constant",settings:{foreground:"#d19a66"}},{name:"Tags",scope:"entity.name.tag",settings:{foreground:"#e06c75"}},{name:"Attributes",scope:"entity.other.attribute-name",settings:{foreground:"#d19a66"}},{name:"Attribute IDs",scope:"entity.other.attribute-name.id",settings:{foreground:"#61afef"}},{name:"Attribute class",scope:"entity.other.attribute-name.class.css",settings:{foreground:"#d19a66"}},{name:"Selector",scope:"meta.selector",settings:{foreground:"#c678dd"}},{name:"Headings",scope:"markup.heading",settings:{foreground:"#e06c75"}},{name:"Headings",scope:"markup.heading punctuation.definition.heading, entity.name.section",settings:{foreground:"#61afef"}},{name:"Units",scope:"keyword.other.unit",settings:{foreground:"#e06c75"}},{name:"Bold",scope:"markup.bold,todo.bold",settings:{foreground:"#d19a66"}},{name:"Bold",scope:"punctuation.definition.bold",settings:{foreground:"#e5c07b"}},{name:"markup Italic",scope:"markup.italic, punctuation.definition.italic,todo.emphasis",settings:{foreground:"#c678dd"}},{name:"emphasis md",scope:"emphasis md",settings:{foreground:"#c678dd"}},{name:"[VSCODE-CUSTOM] Markdown headings",scope:"entity.name.section.markdown",settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] Markdown heading Punctuation Definition",scope:"punctuation.definition.heading.markdown",settings:{foreground:"#e06c75"}},{name:"punctuation.definition.list.begin.markdown",scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Markdown heading setext",scope:"markup.heading.setext",settings:{foreground:"#abb2bf"}},{name:"[VSCODE-CUSTOM] Markdown Punctuation Definition Bold",scope:"punctuation.definition.bold.markdown",settings:{foreground:"#d19a66"}},{name:"[VSCODE-CUSTOM] Markdown Inline Raw",scope:"markup.inline.raw.markdown",settings:{foreground:"#98c379"}},{name:"[VSCODE-CUSTOM] Markdown Inline Raw",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#98c379"}},{name:"[VSCODE-CUSTOM] Markdown Inline Raw punctuation",scope:"punctuation.definition.raw.markdown",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Markdown List Punctuation Definition",scope:"punctuation.definition.list.markdown",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Markdown Punctuation Definition String",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","punctuation.definition.metadata.markdown"],settings:{foreground:"#e06c75"}},{name:"beginning.punctuation.definition.list.markdown",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] Markdown Punctuation Definition Link",scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] Markdown Underline Link/Image",scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#c678dd"}},{name:"[VSCODE-CUSTOM] Markdown Link Title/Description",scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#61afef"}},{name:"[VSCODE-CUSTOM] Asciidoc Inline Raw",scope:"markup.raw.monospace.asciidoc",settings:{foreground:"#98c379"}},{name:"[VSCODE-CUSTOM] Asciidoc Inline Raw Punctuation Definition",scope:"punctuation.definition.asciidoc",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Asciidoc List Punctuation Definition",scope:"markup.list.asciidoc",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Asciidoc underline link",scope:"markup.link.asciidoc,markup.other.url.asciidoc",settings:{foreground:"#c678dd"}},{name:"[VSCODE-CUSTOM] Asciidoc link name",scope:"string.unquoted.asciidoc,markup.other.url.asciidoc",settings:{foreground:"#61afef"}},{name:"Regular Expressions",scope:"string.regexp",settings:{foreground:"#56b6c2"}},{name:"Embedded",scope:"punctuation.section.embedded, variable.interpolation",settings:{foreground:"#e06c75"}},{name:"Embedded",scope:"punctuation.section.embedded.begin,punctuation.section.embedded.end",settings:{foreground:"#c678dd"}},{name:"illegal",scope:"invalid.illegal",settings:{foreground:"#ffffff"}},{name:"illegal",scope:"invalid.illegal.bad-ampersand.html",settings:{foreground:"#abb2bf"}},{scope:"invalid.illegal.unrecognized-tag.html",settings:{foreground:"#e06c75"}},{name:"Broken",scope:"invalid.broken",settings:{foreground:"#ffffff"}},{name:"Deprecated",scope:"invalid.deprecated",settings:{foreground:"#ffffff"}},{name:"html Deprecated",scope:"invalid.deprecated.entity.other.attribute-name.html",settings:{foreground:"#d19a66"}},{name:"Unimplemented",scope:"invalid.unimplemented",settings:{foreground:"#ffffff"}},{name:"Source Json Meta Structure Dictionary Json > String Quoted Json",scope:"source.json meta.structure.dictionary.json > string.quoted.json",settings:{foreground:"#e06c75"}},{name:"Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String",scope:"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string",settings:{foreground:"#e06c75"}},{name:"Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation",scope:"source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation",settings:{foreground:"#98c379"}},{name:"Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json",scope:"source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json",settings:{foreground:"#56b6c2"}},{name:"[VSCODE-CUSTOM] JSON Property Name",scope:"support.type.property-name.json",settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] JSON Punctuation for Property Name",scope:"support.type.property-name.json punctuation",settings:{foreground:"#e06c75"}},{name:"laravel blade tag",scope:"text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade",settings:{foreground:"#c678dd"}},{name:"laravel blade @",scope:"text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade",settings:{foreground:"#c678dd"}},{name:"use statement for other classes",scope:"support.other.namespace.use.php,support.other.namespace.use-as.php,entity.other.alias.php,meta.interface.php",settings:{foreground:"#e5c07b"}},{name:"error suppression",scope:"keyword.operator.error-control.php",settings:{foreground:"#c678dd"}},{name:"php instanceof",scope:"keyword.operator.type.php",settings:{foreground:"#c678dd"}},{name:"style double quoted array index normal begin",scope:"punctuation.section.array.begin.php",settings:{foreground:"#abb2bf"}},{name:"style double quoted array index normal end",scope:"punctuation.section.array.end.php",settings:{foreground:"#abb2bf"}},{name:"php illegal.non-null-typehinted",scope:"invalid.illegal.non-null-typehinted.php",settings:{foreground:"#f44747"}},{name:"php types",scope:"storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php",settings:{foreground:"#e5c07b"}},{name:"php call-function",scope:"meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php",settings:{foreground:"#61afef"}},{name:"php function-resets",scope:"punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php",settings:{foreground:"#abb2bf"}},{name:"support php constants",scope:"support.constant.core.rust",settings:{foreground:"#d19a66"}},{name:"support php constants",scope:"support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php",settings:{foreground:"#d19a66"}},{name:"php goto",scope:"entity.name.goto-label.php,support.other.php",settings:{foreground:"#61afef"}},{name:"php logical/bitwise operator",scope:"keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php",settings:{foreground:"#56b6c2"}},{name:"php regexp operator",scope:"keyword.operator.regexp.php",settings:{foreground:"#c678dd"}},{name:"php comparison",scope:"keyword.operator.comparison.php",settings:{foreground:"#56b6c2"}},{name:"php heredoc/nowdoc",scope:"keyword.operator.heredoc.php,keyword.operator.nowdoc.php",settings:{foreground:"#c678dd"}},{name:"python function decorator @",scope:"meta.function.decorator.python",settings:{foreground:"#61afef"}},{name:"python function support",scope:"support.token.decorator.python,meta.function.decorator.identifier.python",settings:{foreground:"#56b6c2"}},{name:"parameter function js/ts",scope:"function.parameter",settings:{foreground:"#abb2bf"}},{name:"brace function",scope:"function.brace",settings:{foreground:"#abb2bf"}},{name:"parameter function ruby cs",scope:"function.parameter.ruby, function.parameter.cs",settings:{foreground:"#abb2bf"}},{name:"constant.language.symbol.ruby",scope:"constant.language.symbol.ruby",settings:{foreground:"#56b6c2"}},{name:"rgb-value",scope:"rgb-value",settings:{foreground:"#56b6c2"}},{name:"rgb value",scope:"inline-color-decoration rgb-value",settings:{foreground:"#d19a66"}},{name:"rgb value less",scope:"less rgb-value",settings:{foreground:"#d19a66"}},{name:"sass selector",scope:"selector.sass",settings:{foreground:"#e06c75"}},{name:"ts primitive/builtin types",scope:"support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx",settings:{foreground:"#e5c07b"}},{name:"block scope",scope:"block.scope.end,block.scope.begin",settings:{foreground:"#abb2bf"}},{name:"cs storage type",scope:"storage.type.cs",settings:{foreground:"#e5c07b"}},{name:"cs local variable",scope:"entity.name.variable.local.cs",settings:{foreground:"#e06c75"}},{scope:"token.info-token",settings:{foreground:"#61afef"}},{scope:"token.warn-token",settings:{foreground:"#d19a66"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#c678dd"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#c678dd"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#abb2bf"}},{name:"Import module JS",scope:["keyword.operator.module"],settings:{foreground:"#c678dd"}},{name:"js Flowtype",scope:["support.type.type.flowtype"],settings:{foreground:"#61afef"}},{name:"js Flow",scope:["support.type.primitive"],settings:{foreground:"#e5c07b"}},{name:"js class prop",scope:["meta.property.object"],settings:{foreground:"#e06c75"}},{name:"js func parameter",scope:["variable.parameter.function.js"],settings:{foreground:"#e06c75"}},{name:"js template literals begin",scope:["keyword.other.template.begin"],settings:{foreground:"#98c379"}},{name:"js template literals end",scope:["keyword.other.template.end"],settings:{foreground:"#98c379"}},{name:"js template literals variable braces begin",scope:["keyword.other.substitution.begin"],settings:{foreground:"#98c379"}},{name:"js template literals variable braces end",scope:["keyword.other.substitution.end"],settings:{foreground:"#98c379"}},{name:"js operator.assignment",scope:["keyword.operator.assignment"],settings:{foreground:"#56b6c2"}},{name:"go operator",scope:["keyword.operator.assignment.go"],settings:{foreground:"#e5c07b"}},{name:"go operator",scope:["keyword.operator.arithmetic.go","keyword.operator.address.go"],settings:{foreground:"#c678dd"}},{name:"Go package name",scope:["entity.name.package.go"],settings:{foreground:"#e5c07b"}},{name:"elm prelude",scope:["support.type.prelude.elm"],settings:{foreground:"#56b6c2"}},{name:"elm constant",scope:["support.constant.elm"],settings:{foreground:"#d19a66"}},{name:"template literal",scope:["punctuation.quasi.element"],settings:{foreground:"#c678dd"}},{name:"html/pug (jade) escaped characters and entities",scope:["constant.character.entity"],settings:{foreground:"#e06c75"}},{name:"styling css pseudo-elements/classes to be able to differentiate from classes which are the same colour",scope:["entity.other.attribute-name.pseudo-element","entity.other.attribute-name.pseudo-class"],settings:{foreground:"#56b6c2"}},{name:"Clojure globals",scope:["entity.global.clojure"],settings:{foreground:"#e5c07b"}},{name:"Clojure symbols",scope:["meta.symbol.clojure"],settings:{foreground:"#e06c75"}},{name:"Clojure constants",scope:["constant.keyword.clojure"],settings:{foreground:"#56b6c2"}},{name:"CoffeeScript Function Argument",scope:["meta.arguments.coffee","variable.parameter.function.coffee"],settings:{foreground:"#e06c75"}},{name:"Ini Default Text",scope:["source.ini"],settings:{foreground:"#98c379"}},{name:"Makefile prerequisities",scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#e06c75"}},{name:"Makefile text colour",scope:["source.makefile"],settings:{foreground:"#e5c07b"}},{name:"Groovy import names",scope:["storage.modifier.import.groovy"],settings:{foreground:"#e5c07b"}},{name:"Groovy Methods",scope:["meta.method.groovy"],settings:{foreground:"#61afef"}},{name:"Groovy Variables",scope:["meta.definition.variable.name.groovy"],settings:{foreground:"#e06c75"}},{name:"Groovy Inheritance",scope:["meta.definition.class.inherited.classes.groovy"],settings:{foreground:"#98c379"}},{name:"HLSL Semantic",scope:["support.variable.semantic.hlsl"],settings:{foreground:"#e5c07b"}},{name:"HLSL Types",scope:["support.type.texture.hlsl","support.type.sampler.hlsl","support.type.object.hlsl","support.type.object.rw.hlsl","support.type.fx.hlsl","support.type.object.hlsl"],settings:{foreground:"#c678dd"}},{name:"SQL Variables",scope:["text.variable","text.bracketed"],settings:{foreground:"#e06c75"}},{name:"types",scope:["support.type.swift","support.type.vb.asp"],settings:{foreground:"#e5c07b"}},{name:"heading 1, keyword",scope:["entity.name.function.xi"],settings:{foreground:"#e5c07b"}},{name:"heading 2, callable",scope:["entity.name.class.xi"],settings:{foreground:"#56b6c2"}},{name:"heading 3, property",scope:["constant.character.character-class.regexp.xi"],settings:{foreground:"#e06c75"}},{name:"heading 4, type, class, interface",scope:["constant.regexp.xi"],settings:{foreground:"#c678dd"}},{name:"heading 5, enums, preprocessor, constant, decorator",scope:["keyword.control.xi"],settings:{foreground:"#56b6c2"}},{name:"heading 6, number",scope:["invalid.xi"],settings:{foreground:"#abb2bf"}},{name:"string",scope:["beginning.punctuation.definition.quote.markdown.xi"],settings:{foreground:"#98c379"}},{name:"comments",scope:["beginning.punctuation.definition.list.markdown.xi"],settings:{foreground:"#7f848e"}},{name:"link",scope:["constant.character.xi"],settings:{foreground:"#61afef"}},{name:"accent",scope:["accent.xi"],settings:{foreground:"#61afef"}},{name:"wikiword",scope:["wikiword.xi"],settings:{foreground:"#d19a66"}},{name:"language operators like '+', '-' etc",scope:["constant.other.color.rgb-value.xi"],settings:{foreground:"#ffffff"}},{name:"elements to dim",scope:["punctuation.definition.tag.xi"],settings:{foreground:"#5c6370"}},{name:"C++/C#",scope:["entity.name.label.cs","entity.name.scope-resolution.function.call","entity.name.scope-resolution.function.definition"],settings:{foreground:"#e5c07b"}},{name:"Markdown underscore-style headers",scope:["entity.name.label.cs","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{foreground:"#e06c75"}},{name:"meta.brace.square",scope:[" meta.brace.square"],settings:{foreground:"#abb2bf"}},{name:"Comments",scope:"comment, punctuation.definition.comment",settings:{foreground:"#7f848e",fontStyle:"italic"}},{name:"[VSCODE-CUSTOM] Markdown Quote",scope:"markup.quote.markdown",settings:{foreground:"#5c6370"}},{name:"punctuation.definition.block.sequence.item.yaml",scope:"punctuation.definition.block.sequence.item.yaml",settings:{foreground:"#abb2bf"}},{scope:["constant.language.symbol.elixir","constant.language.symbol.double-quoted.elixir"],settings:{foreground:"#56b6c2"}},{scope:["entity.name.variable.parameter.cs"],settings:{foreground:"#e5c07b"}},{scope:["entity.name.variable.field.cs"],settings:{foreground:"#e06c75"}},{name:"Deleted",scope:"markup.deleted",settings:{foreground:"#e06c75"}},{name:"Inserted",scope:"markup.inserted",settings:{foreground:"#98c379"}},{name:"Underline",scope:"markup.underline",settings:{fontStyle:"underline"}},{name:"punctuation.section.embedded.begin.php",scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#BE5046"}},{name:"support.other.namespace.php",scope:["support.other.namespace.php"],settings:{foreground:"#abb2bf"}},{name:"variable.other.object",scope:["variable.other.object"],settings:{foreground:"#e5c07b"}},{name:"variable.other.constant.property",scope:["variable.other.constant.property"],settings:{foreground:"#e06c75"}},{name:"entity.other.inherited-class",scope:["entity.other.inherited-class"],settings:{foreground:"#e5c07b"}},{name:"c variable readwrite",scope:"variable.other.readwrite.c",settings:{foreground:"#e06c75"}},{name:"php scope",scope:"entity.name.variable.parameter.php,punctuation.separator.colon.php,constant.other.php",settings:{foreground:"#abb2bf"}},{name:"Assembly",scope:["constant.numeric.decimal.asm.x86_64"],settings:{foreground:"#c678dd"}},{scope:["support.other.parenthesis.regexp"],settings:{foreground:"#d19a66"}},{scope:["constant.character.escape"],settings:{foreground:"#56b6c2"}},{scope:["string.regexp"],settings:{foreground:"#e06c75"}},{name:"js/ts italic",scope:"entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super",settings:{fontStyle:"italic"}},{name:"comment",scope:"comment.line.double-slash,comment.block.documentation",settings:{fontStyle:"italic"}},{name:"Python Keyword Control",scope:"keyword.control.import.python,keyword.control.flow.python,keyword.operator.logical.python",settings:{fontStyle:"italic"}},{name:"markup.italic.markdown",scope:"markup.italic.markdown",settings:{fontStyle:"italic"}}],a={"activityBar.background":"#282c34","activityBar.foreground":"#d7dae0","activityBarBadge.background":"#4d78cc","activityBarBadge.foreground":"#f8fafd","badge.background":"#282c34","button.background":"#404754","button.secondaryBackground":"#30333d","button.secondaryForeground":"#c0bdbd","checkbox.border":"#404754","debugToolBar.background":"#21252b",descriptionForeground:"#abb2bf","diffEditor.insertedTextBackground":"#00809b33","dropdown.background":"#21252b","dropdown.border":"#21252b","editor.background":"#282c34","editor.findMatchBackground":"#42557b","editor.findMatchBorder":"#457dff","editor.findMatchHighlightBackground":"#6199ff2f","editor.foreground":"#abb2bf","editorBracketHighlight.foreground1":"#d19a66","editorBracketHighlight.foreground2":"#c678dd","editorBracketHighlight.foreground3":"#56b6c2","editorHoverWidget.highlightForeground":"#61afef","editorInlayHint.foreground":"#abb2bf","editorInlayHint.background":"#2c313c","editor.lineHighlightBackground":"#2c313c","editorLineNumber.activeForeground":"#abb2bf","editorGutter.addedBackground":"#109868","editorGutter.deletedBackground":"#9A353D","editorGutter.modifiedBackground":"#948B60","editorOverviewRuler.addedBackground":"#109868","editorOverviewRuler.deletedBackground":"#9A353D","editorOverviewRuler.modifiedBackground":"#948B60","editor.selectionBackground":"#67769660","editor.selectionHighlightBackground":"#ffffff10","editor.selectionHighlightBorder":"#dddddd","editor.wordHighlightBackground":"#d2e0ff2f","editor.wordHighlightBorder":"#7f848e","editor.wordHighlightStrongBackground":"#abb2bf26","editor.wordHighlightStrongBorder":"#7f848e","editorBracketMatch.background":"#515a6b","editorBracketMatch.border":"#515a6b","editorCursor.background":"#ffffffc9","editorCursor.foreground":"#528bff","editorError.foreground":"#c24038","editorGroup.background":"#181a1f","editorGroup.border":"#181a1f","editorGroupHeader.tabsBackground":"#21252b","editorHoverWidget.background":"#21252b","editorHoverWidget.border":"#181a1f","editorIndentGuide.activeBackground":"#c8c8c859","editorIndentGuide.background":"#3b4048","editorLineNumber.foreground":"#495162","editorMarkerNavigation.background":"#21252b","editorRuler.foreground":"#abb2bf26","editorSuggestWidget.background":"#21252b","editorSuggestWidget.border":"#181a1f","editorSuggestWidget.selectedBackground":"#2c313a","editorWarning.foreground":"#d19a66","editorWhitespace.foreground":"#ffffff1d","editorWidget.background":"#21252b",focusBorder:"#3e4452","gitDecoration.ignoredResourceForeground":"#636b78","input.background":"#1d1f23","input.foreground":"#abb2bf","list.activeSelectionBackground":"#2c313a","list.activeSelectionForeground":"#d7dae0","list.focusBackground":"#323842","list.focusForeground":"#f0f0f0","list.highlightForeground":"#ecebeb","list.hoverBackground":"#2c313a","list.hoverForeground":"#abb2bf","list.inactiveSelectionBackground":"#323842","list.inactiveSelectionForeground":"#d7dae0","list.warningForeground":"#d19a66","menu.foreground":"#abb2bf","menu.separatorBackground":"#343a45","minimapGutter.addedBackground":"#109868","minimapGutter.deletedBackground":"#9A353D","minimapGutter.modifiedBackground":"#948B60","panel.border":"#3e4452","panelSectionHeader.background":"#21252b","peekViewEditor.background":"#1b1d23","peekViewEditor.matchHighlightBackground":"#29244b","peekViewResult.background":"#22262b","scrollbar.shadow":"#23252c","scrollbarSlider.activeBackground":"#747d9180","scrollbarSlider.background":"#4e566660","scrollbarSlider.hoverBackground":"#5a637580","settings.focusedRowBackground":"#282c34","settings.headerForeground":"#fff","sideBar.background":"#21252b","sideBar.foreground":"#abb2bf","sideBarSectionHeader.background":"#282c34","sideBarSectionHeader.foreground":"#abb2bf","statusBar.background":"#21252b","statusBar.debuggingBackground":"#cc6633","statusBar.debuggingBorder":"#ff000000","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#9da5b4","statusBar.noFolderBackground":"#21252b","statusBarItem.remoteBackground":"#4d78cc","statusBarItem.remoteForeground":"#f8fafd","tab.activeBackground":"#282c34","tab.activeBorder":"#b4b4b4","tab.activeForeground":"#dcdcdc","tab.border":"#181a1f","tab.hoverBackground":"#323842","tab.inactiveBackground":"#21252b","tab.unfocusedHoverBackground":"#323842","terminal.ansiBlack":"#3f4451","terminal.ansiBlue":"#4aa5f0","terminal.ansiBrightBlack":"#4f5666","terminal.ansiBrightBlue":"#4dc4ff","terminal.ansiBrightCyan":"#4cd1e0","terminal.ansiBrightGreen":"#a5e075","terminal.ansiBrightMagenta":"#de73ff","terminal.ansiBrightRed":"#ff616e","terminal.ansiBrightWhite":"#e6e6e6","terminal.ansiBrightYellow":"#f0a45d","terminal.ansiCyan":"#42b3c2","terminal.ansiGreen":"#8cc265","terminal.ansiMagenta":"#c162de","terminal.ansiRed":"#e05561","terminal.ansiWhite":"#d7dae0","terminal.ansiYellow":"#d18f52","terminal.background":"#282c34","terminal.border":"#3e4452","terminal.foreground":"#abb2bf","terminal.selectionBackground":"#abb2bf30","textBlockQuote.background":"#2e3440","textBlockQuote.border":"#4b5362","textLink.foreground":"#61afef","textPreformat.foreground":"#d19a66","titleBar.activeBackground":"#282c34","titleBar.activeForeground":"#9da5b4","titleBar.inactiveBackground":"#21252b","titleBar.inactiveForeground":"#6b717d","tree.indentGuidesStroke":"#ffffff1d","walkThrough.embeddedEditorBackground":"#2e3440","welcomePage.buttonHoverBackground":"#404754"},s={name:e,type:o,semanticHighlighting:true,semanticTokenColors:n,tokenColors:r,colors:a};export{a as colors,s as default,e as name,t as semanticHighlighting,n as semanticTokenColors,r as tokenColors,o as type}; diff --git a/lib/dist/theme/poimandres.mjs b/lib/dist/theme/poimandres.mjs new file mode 100644 index 0000000..2144e34 --- /dev/null +++ b/lib/dist/theme/poimandres.mjs @@ -0,0 +1 @@ +var e="poimandres",o="dark",r={"activityBar.background":"#1b1e28","activityBar.foreground":"#a6accd","activityBarBadge.background":"#303340","activityBarBadge.foreground":"#e4f0fb","badge.background":"#303340","badge.foreground":"#e4f0fb","button.background":"#303340","diffEditor.insertedTextBackground":"#50647715","diffEditor.removedTextBackground":"#d0679d20","dropdown.background":"#1b1e28","dropdown.border":"#ffffff10","editor.background":"#1b1e28","editor.findMatchBackground":"#ADD7FF40","editor.findMatchBorder":"#ADD7FF","editor.findMatchHighlightBackground":"#ADD7FF40","editor.foreground":"#a6accd","editor.lineHighlightBackground":"#717cb425","editor.lineHighlightBorder":"#00000000","editor.selectionBackground":"#717cb425","editor.selectionHighlightBackground":"#00000000","editor.selectionHighlightBorder":"#ADD7FF80","editor.wordHighlightBackground":"#ADD7FF20","editor.wordHighlightStrongBackground":"#ADD7FF40","editorBracketMatch.border":"#e4f0fb40","editorCursor.foreground":"#a6accd","editorGroup.border":"#00000030","editorGroupHeader.tabsBackground":"#1b1e28","editorHoverWidget.background":"#1b1e28","editorHoverWidget.border":"#ffffff10","editorIndentGuide.background":"#303340","editorLineNumber.foreground":"#767c9d50","editorLink.activeForeground":"#ADD7FF","editorSuggestWidget.background":"#1b1e28","editorSuggestWidget.border":"#ffffff10","editorSuggestWidget.foreground":"#a6accd","editorSuggestWidget.highlightForeground":"#5DE4c7","editorSuggestWidget.selectedBackground":"#00000050","editorWidget.background":"#1b1e28","editor.findRangeHighlightBackground":"#ADD7FF40","editor.focusedStackFrameHighlightBackground":"#7abd7a4d","editor.foldBackground":"#717cb40b","editor.hoverHighlightBackground":"#264f7840","editor.inactiveSelectionBackground":"#717cb425","editor.linkedEditingBackground":"#d0679d4d","editor.rangeHighlightBackground":"#ffffff0b","editor.snippetFinalTabstopHighlightBorder":"#525252","editor.snippetTabstopHighlightBackground":"#7c7c7c4d","editor.stackFrameHighlightBackground":"#ffff0033","editor.symbolHighlightBackground":"#89ddff60","editorBracketMatch.background":"#00000000","editorCodeLens.foreground":"#a6accd","editorError.foreground":"#d0679d","editorGroup.dropBackground":"#7390AA80","editorGroupHeader.noTabsBackground":"#1b1e28","editorGutter.background":"#1b1e28","editorGutter.commentRangeForeground":"#a6accd","editorGutter.foldingControlForeground":"#a6accd","editorGutter.addedBackground":"#5fb3a140","editorGutter.deletedBackground":"#d0679d40","editorGutter.modifiedBackground":"#ADD7FF20","editorHint.foreground":"#7390AAb3","editorHoverWidget.foreground":"#a6accd","editorHoverWidget.statusBarBackground":"#202430","editorIndentGuide.activeBackground":"#e3e4e229","editorInfo.foreground":"#ADD7FF","editorInlineHint.background":"#a6accd","editorInlineHint.foreground":"#1b1e28","editorLightBulb.foreground":"#fffac2","editorLightBulbAutoFix.foreground":"#ADD7FF","editorLineNumber.activeForeground":"#a6accd","editorMarkerNavigation.background":"#2d2d30","editorMarkerNavigationError.background":"#d0679d","editorMarkerNavigationInfo.background":"#ADD7FF","editorMarkerNavigationWarning.background":"#fffac2","editorOverviewRuler.addedForeground":"#5fb3a199","editorOverviewRuler.border":"#00000000","editorOverviewRuler.bracketMatchForeground":"#a0a0a0","editorOverviewRuler.commonContentForeground":"#a6accd66","editorOverviewRuler.currentContentForeground":"#5fb3a180","editorOverviewRuler.deletedForeground":"#d0679d99","editorOverviewRuler.errorForeground":"#d0679db3","editorOverviewRuler.findMatchForeground":"#e4f0fb20","editorOverviewRuler.incomingContentForeground":"#89ddff80","editorOverviewRuler.infoForeground":"#ADD7FF","editorOverviewRuler.modifiedForeground":"#89ddff99","editorOverviewRuler.rangeHighlightForeground":"#89ddff99","editorOverviewRuler.selectionHighlightForeground":"#a0a0a0cc","editorOverviewRuler.warningForeground":"#fffac2","editorOverviewRuler.wordHighlightForeground":"#a0a0a0cc","editorOverviewRuler.wordHighlightStrongForeground":"#89ddffcc","editorPane.background":"#1b1e28","editorRuler.foreground":"#e4f0fb10","editorUnnecessaryCode.opacity":"#000000aa","editorWarning.foreground":"#fffac2","editorWhitespace.foreground":"#303340","editorWidget.border":"#a6accd","editorWidget.foreground":"#a6accd","extensionButton.prominentBackground":"#30334090","extensionButton.prominentHoverBackground":"#303340",focusBorder:"#00000000","input.background":"#ffffff05","input.border":"#ffffff10","input.foreground":"#e4f0fb","input.placeholderForeground":"#a6accd60","inputValidation.errorBorder":"#d0679d","inputValidation.errorForeground":"#d0679d","inputValidation.infoBorder":"#89ddff","inputValidation.warningBorder":"#fffac2","notifications.background":"#1b1e28","notifications.foreground":"#e4f0fb","panel.border":"#00000030","panelTitle.activeForeground":"#a6accd","peekView.border":"#00000030","peekViewEditor.background":"#a6accd05","peekViewEditorGutter.background":"#a6accd05","peekViewResult.background":"#a6accd05","peekViewTitle.background":"#a6accd05","peekViewTitleDescription.foreground":"#a6accd60","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#a6accd25","scrollbarSlider.background":"#00000080","scrollbarSlider.hoverBackground":"#a6accd25","selection.background":"#a6accd","sideBar.background":"#1b1e28","sideBar.foreground":"#767c9d","sideBarSectionHeader.background":"#1b1e28","sideBarTitle.foreground":"#a6accd","statusBar.background":"#1b1e28","statusBar.foreground":"#a6accd","statusBar.noFolderBackground":"#1b1e28","tab.activeBackground":"#30334080","tab.activeForeground":"#e4f0fb","tab.border":"#00000000","tab.inactiveBackground":"#1b1e28","tab.inactiveForeground":"#767c9d","tab.unfocusedActiveForeground":"#a6accd","tab.activeModifiedBorder":"#ADD7FF","tab.inactiveModifiedBorder":"#ADD7FF80","tab.lastPinnedBorder":"#00000000","tab.unfocusedActiveBackground":"#1b1e28","tab.unfocusedActiveModifiedBorder":"#ADD7FF40","tab.unfocusedInactiveBackground":"#1b1e28","tab.unfocusedInactiveForeground":"#a6accd80","tab.unfocusedInactiveModifiedBorder":"#ADD7FF40","terminal.ansiBlack":"#1b1e28","terminal.ansiBlue":"#89ddff","terminal.ansiBrightBlack":"#a6accd","terminal.ansiBrightBlue":"#ADD7FF","terminal.ansiBrightCyan":"#ADD7FF","terminal.ansiBrightGreen":"#5DE4c7","terminal.ansiBrightMagenta":"#f087bd","terminal.ansiBrightRed":"#d0679d","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#fffac2","terminal.ansiCyan":"#89ddff","terminal.ansiGreen":"#5DE4c7","terminal.ansiMagenta":"#f087bd","terminal.ansiRed":"#d0679d","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#fffac2","textLink.activeForeground":"#ADD7FF","textLink.foreground":"#ADD7FF","titleBar.activeBackground":"#1b1e28","titleBar.activeForeground":"#a6accd","titleBar.inactiveBackground":"#1b1e28","titleBar.inactiveForeground":"#767c9d","tree.indentGuidesStroke":"#303340","widget.shadow":"#00000030","activityBar.activeBorder":"#a6accd","activityBar.dropBorder":"#a6accd","activityBar.inactiveForeground":"#a6accd66","breadcrumb.activeSelectionForeground":"#e4f0fb","breadcrumb.background":"#00000000","breadcrumb.focusForeground":"#e4f0fb","breadcrumb.foreground":"#767c9dcc","breadcrumbPicker.background":"#1b1e28","button.foreground":"#ffffff","button.hoverBackground":"#50647750","button.secondaryBackground":"#a6accd","button.secondaryForeground":"#ffffff","button.secondaryHoverBackground":"#a6accd","charts.blue":"#ADD7FF","charts.foreground":"#a6accd","charts.green":"#5DE4c7","charts.lines":"#a6accd80","charts.orange":"#89ddff","charts.purple":"#f087bd","charts.red":"#d0679d","charts.yellow":"#fffac2","checkbox.background":"#1b1e28","checkbox.border":"#ffffff10","checkbox.foreground":"#e4f0fb","debugConsole.errorForeground":"#d0679d","debugConsole.infoForeground":"#ADD7FF","debugConsole.sourceForeground":"#a6accd","debugConsole.warningForeground":"#fffac2","debugConsoleInputIcon.foreground":"#a6accd","debugExceptionWidget.background":"#d0679d","debugExceptionWidget.border":"#d0679d","debugIcon.breakpointCurrentStackframeForeground":"#fffac2","debugIcon.breakpointDisabledForeground":"#7390AA","debugIcon.breakpointForeground":"#d0679d","debugIcon.breakpointStackframeForeground":"#5fb3a1","debugIcon.breakpointUnverifiedForeground":"#7390AA","debugIcon.continueForeground":"#ADD7FF","debugIcon.disconnectForeground":"#d0679d","debugIcon.pauseForeground":"#ADD7FF","debugIcon.restartForeground":"#5fb3a1","debugIcon.startForeground":"#5fb3a1","debugIcon.stepBackForeground":"#ADD7FF","debugIcon.stepIntoForeground":"#ADD7FF","debugIcon.stepOutForeground":"#ADD7FF","debugIcon.stepOverForeground":"#ADD7FF","debugIcon.stopForeground":"#d0679d","debugTokenExpression.boolean":"#89ddff","debugTokenExpression.error":"#d0679d","debugTokenExpression.name":"#e4f0fb","debugTokenExpression.number":"#5fb3a1","debugTokenExpression.string":"#89ddff","debugTokenExpression.value":"#a6accd99","debugToolBar.background":"#303340","debugView.exceptionLabelBackground":"#d0679d","debugView.exceptionLabelForeground":"#e4f0fb","debugView.stateLabelBackground":"#303340","debugView.stateLabelForeground":"#a6accd","debugView.valueChangedHighlight":"#89ddff",descriptionForeground:"#a6accdb3","diffEditor.diagonalFill":"#a6accd33","dropdown.foreground":"#e4f0fb",errorForeground:"#d0679d","extensionBadge.remoteBackground":"#303340","extensionBadge.remoteForeground":"#e4f0fb","extensionButton.prominentForeground":"#ffffff","extensionIcon.starForeground":"#fffac2",foreground:"#a6accd","gitDecoration.addedResourceForeground":"#5fb3a1","gitDecoration.conflictingResourceForeground":"#d0679d","gitDecoration.deletedResourceForeground":"#d0679d","gitDecoration.ignoredResourceForeground":"#767c9d70","gitDecoration.modifiedResourceForeground":"#ADD7FF","gitDecoration.renamedResourceForeground":"#5DE4c7","gitDecoration.stageDeletedResourceForeground":"#d0679d","gitDecoration.stageModifiedResourceForeground":"#ADD7FF","gitDecoration.submoduleResourceForeground":"#89ddff","gitDecoration.untrackedResourceForeground":"#5DE4c7","icon.foreground":"#a6accd","imagePreview.border":"#303340","inputOption.activeBackground":"#00000000","inputOption.activeBorder":"#00000000","inputOption.activeForeground":"#ffffff","inputValidation.errorBackground":"#1b1e28","inputValidation.infoBackground":"#506477","inputValidation.warningBackground":"#506477","list.deemphasizedForeground":"#767c9d","list.dropBackground":"#506477","list.filterMatchBackground":"#89ddff60","list.focusOutline":"#00000000","list.invalidItemForeground":"#fffac2","list.warningForeground":"#fffac2","listFilterWidget.background":"#303340","listFilterWidget.noMatchesOutline":"#d0679d","listFilterWidget.outline":"#00000000","list.activeSelectionBackground":"#30334080","list.activeSelectionForeground":"#e4f0fb","list.errorForeground":"#d0679d","list.focusBackground":"#30334080","list.focusForeground":"#a6accd","list.highlightForeground":"#5fb3a1","list.hoverBackground":"#30334080","list.hoverForeground":"#e4f0fb","list.inactiveSelectionBackground":"#30334080","list.inactiveSelectionForeground":"#e4f0fb","menu.background":"#1b1e28","menu.foreground":"#e4f0fb","menu.selectionBackground":"#303340","menu.selectionForeground":"#7390AA","menu.separatorBackground":"#767c9d","menubar.selectionBackground":"#717cb425","menubar.selectionForeground":"#a6accd","merge.commonContentBackground":"#a6accd29","merge.commonHeaderBackground":"#a6accd66","merge.currentContentBackground":"#5fb3a133","merge.currentHeaderBackground":"#5fb3a180","merge.incomingContentBackground":"#89ddff33","merge.incomingHeaderBackground":"#89ddff80","minimap.errorHighlight":"#d0679d","minimap.findMatchHighlight":"#ADD7FF","minimap.selectionHighlight":"#e4f0fb40","minimap.warningHighlight":"#fffac2","minimapGutter.addedBackground":"#5fb3a180","minimapGutter.deletedBackground":"#d0679d80","minimapGutter.modifiedBackground":"#ADD7FF80","minimapSlider.activeBackground":"#a6accd30","minimapSlider.background":"#a6accd20","minimapSlider.hoverBackground":"#a6accd30","notebook.cellBorderColor":"#1b1e28","notebook.cellInsertionIndicator":"#00000000","notebook.cellStatusBarItemHoverBackground":"#ffffff26","notebook.cellToolbarSeparator":"#303340","notebook.focusedCellBorder":"#00000000","notebook.focusedEditorBorder":"#00000000","notebook.focusedRowBorder":"#00000000","notebook.inactiveFocusedCellBorder":"#00000000","notebook.outputContainerBackgroundColor":"#1b1e28","notebook.rowHoverBackground":"#30334000","notebook.selectedCellBackground":"#303340","notebook.selectedCellBorder":"#1b1e28","notebook.symbolHighlightBackground":"#ffffff0b","notebookScrollbarSlider.activeBackground":"#a6accd25","notebookScrollbarSlider.background":"#00000050","notebookScrollbarSlider.hoverBackground":"#a6accd25","notebookStatusErrorIcon.foreground":"#d0679d","notebookStatusRunningIcon.foreground":"#a6accd","notebookStatusSuccessIcon.foreground":"#5fb3a1","notificationCenterHeader.background":"#303340","notificationLink.foreground":"#ADD7FF","notifications.border":"#303340","notificationsErrorIcon.foreground":"#d0679d","notificationsInfoIcon.foreground":"#ADD7FF","notificationsWarningIcon.foreground":"#fffac2","panel.background":"#1b1e28","panel.dropBorder":"#a6accd","panelSection.border":"#1b1e28","panelSection.dropBackground":"#7390AA80","panelSectionHeader.background":"#303340","panelTitle.activeBorder":"#a6accd","panelTitle.inactiveForeground":"#a6accd99","peekViewEditor.matchHighlightBackground":"#303340","peekViewResult.fileForeground":"#ffffff","peekViewResult.lineForeground":"#a6accd","peekViewResult.matchHighlightBackground":"#303340","peekViewResult.selectionBackground":"#717cb425","peekViewResult.selectionForeground":"#ffffff","peekViewTitleLabel.foreground":"#ffffff","pickerGroup.border":"#a6accd","pickerGroup.foreground":"#89ddff","problemsErrorIcon.foreground":"#d0679d","problemsInfoIcon.foreground":"#ADD7FF","problemsWarningIcon.foreground":"#fffac2","progressBar.background":"#89ddff","quickInput.background":"#1b1e28","quickInput.foreground":"#a6accd","quickInputList.focusBackground":"#a6accd10","quickInputTitle.background":"#ffffff1b","sash.hoverBorder":"#00000000","scm.providerBorder":"#e4f0fb10","searchEditor.findMatchBackground":"#ADD7FF50","searchEditor.textInputBorder":"#ffffff10","settings.checkboxBackground":"#1b1e28","settings.checkboxBorder":"#ffffff10","settings.checkboxForeground":"#e4f0fb","settings.dropdownBackground":"#1b1e28","settings.dropdownBorder":"#ffffff10","settings.dropdownForeground":"#e4f0fb","settings.dropdownListBorder":"#e4f0fb10","settings.focusedRowBackground":"#00000000","settings.headerForeground":"#e4f0fb","settings.modifiedItemIndicator":"#ADD7FF","settings.numberInputBackground":"#ffffff05","settings.numberInputBorder":"#ffffff10","settings.numberInputForeground":"#e4f0fb","settings.textInputBackground":"#ffffff05","settings.textInputBorder":"#ffffff10","settings.textInputForeground":"#e4f0fb","sideBar.dropBackground":"#7390AA80","sideBarSectionHeader.foreground":"#a6accd","statusBar.debuggingBackground":"#303340","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderForeground":"#a6accd","statusBarItem.activeBackground":"#ffffff2e","statusBarItem.errorBackground":"#d0679d","statusBarItem.errorForeground":"#ffffff","statusBarItem.hoverBackground":"#ffffff1f","statusBarItem.prominentBackground":"#00000080","statusBarItem.prominentForeground":"#a6accd","statusBarItem.prominentHoverBackground":"#0000004d","statusBarItem.remoteBackground":"#303340","statusBarItem.remoteForeground":"#e4f0fb","symbolIcon.arrayForeground":"#a6accd","symbolIcon.booleanForeground":"#a6accd","symbolIcon.classForeground":"#fffac2","symbolIcon.colorForeground":"#a6accd","symbolIcon.constantForeground":"#a6accd","symbolIcon.constructorForeground":"#f087bd","symbolIcon.enumeratorForeground":"#fffac2","symbolIcon.enumeratorMemberForeground":"#ADD7FF","symbolIcon.eventForeground":"#fffac2","symbolIcon.fieldForeground":"#ADD7FF","symbolIcon.fileForeground":"#a6accd","symbolIcon.folderForeground":"#a6accd","symbolIcon.functionForeground":"#f087bd","symbolIcon.interfaceForeground":"#ADD7FF","symbolIcon.keyForeground":"#a6accd","symbolIcon.keywordForeground":"#a6accd","symbolIcon.methodForeground":"#f087bd","symbolIcon.moduleForeground":"#a6accd","symbolIcon.namespaceForeground":"#a6accd","symbolIcon.nullForeground":"#a6accd","symbolIcon.numberForeground":"#a6accd","symbolIcon.objectForeground":"#a6accd","symbolIcon.operatorForeground":"#a6accd","symbolIcon.packageForeground":"#a6accd","symbolIcon.propertyForeground":"#a6accd","symbolIcon.referenceForeground":"#a6accd","symbolIcon.snippetForeground":"#a6accd","symbolIcon.stringForeground":"#a6accd","symbolIcon.structForeground":"#a6accd","symbolIcon.textForeground":"#a6accd","symbolIcon.typeParameterForeground":"#a6accd","symbolIcon.unitForeground":"#a6accd","symbolIcon.variableForeground":"#ADD7FF","terminal.border":"#00000000","terminal.foreground":"#a6accd","terminal.selectionBackground":"#717cb425","terminalCommandDecoration.errorBackground":"#d0679d","terminalCommandDecoration.successBackground":"#5DE4c7","terminalCommandDecoration.defaultBackground":"#767c9d","testing.iconErrored":"#d0679d","testing.iconFailed":"#d0679d","testing.iconPassed":"#5DE4c7","testing.iconQueued":"#fffac2","testing.iconSkipped":"#7390AA","testing.iconUnset":"#7390AA","testing.message.error.decorationForeground":"#d0679d","testing.message.error.lineBackground":"#d0679d33","testing.message.hint.decorationForeground":"#7390AAb3","testing.message.info.decorationForeground":"#ADD7FF","testing.message.info.lineBackground":"#89ddff33","testing.message.warning.decorationForeground":"#fffac2","testing.message.warning.lineBackground":"#fffac233","testing.peekBorder":"#d0679d","testing.runAction":"#5DE4c7","textBlockQuote.background":"#7390AA1a","textBlockQuote.border":"#89ddff80","textCodeBlock.background":"#00000050","textPreformat.foreground":"#e4f0fb","textSeparator.foreground":"#ffffff2e","tree.tableColumnsBorder":"#a6accd20","welcomePage.progress.background":"#ffffff05","welcomePage.progress.foreground":"#5fb3a1","welcomePage.tileBackground":"#1b1e28","welcomePage.tileHoverBackground":"#303340"},t=[{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#767c9dB0",fontStyle:"italic"}},{scope:"meta.parameters comment.block",settings:{foreground:"#a6accd",fontStyle:"italic"}},{scope:["variable.other.constant.object","variable.other.readwrite.alias","meta.import variable.other.readwrite"],settings:{foreground:"#ADD7FF"}},{scope:["variable.other","support.type.object"],settings:{foreground:"#e4f0fb"}},{scope:["variable.other.object.property","variable.other.property","support.variable.property"],settings:{foreground:"#e4f0fb"}},{scope:["entity.name.function.method","string.unquoted","meta.object.member"],settings:{foreground:"#ADD7FF"}},{scope:["variable - meta.import","constant.other.placeholder","meta.object-literal.key-meta.object.member"],settings:{foreground:"#e4f0fb"}},{scope:["keyword.control.flow"],settings:{foreground:"#5DE4c7c0"}},{scope:["keyword.operator.new","keyword.control.new"],settings:{foreground:"#5DE4c7"}},{scope:["variable.language.this","storage.modifier.async","storage.modifier","variable.language.super"],settings:{foreground:"#5DE4c7"}},{scope:["support.class.error","keyword.control.trycatch","keyword.operator.expression.delete","keyword.operator.expression.void","keyword.operator.void","keyword.operator.delete","constant.language.null","constant.language.boolean.false","constant.language.undefined"],settings:{foreground:"#d0679d"}},{scope:["variable.parameter","variable.other.readwrite.js","meta.definition.variable variable.other.constant","meta.definition.variable variable.other.readwrite"],settings:{foreground:"#e4f0fb"}},{scope:["constant.other.color"],settings:{foreground:"#ffffff"}},{scope:["invalid","invalid.illegal"],settings:{foreground:"#d0679d"}},{scope:["invalid.deprecated"],settings:{foreground:"#d0679d"}},{scope:["keyword.control","keyword"],settings:{foreground:"#a6accd"}},{scope:["keyword.operator","storage.type"],settings:{foreground:"#91B4D5"}},{scope:["keyword.control.module","keyword.control.import","keyword.control.export","keyword.control.default","meta.import","meta.export"],settings:{foreground:"#5DE4c7"}},{scope:["Keyword","Storage"],settings:{fontStyle:"italic"}},{scope:["keyword-meta.export"],settings:{foreground:"#ADD7FF"}},{scope:["meta.brace","punctuation","keyword.operator.existential"],settings:{foreground:"#a6accd"}},{scope:["constant.other.color","meta.tag","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution","meta.objectliteral"],settings:{foreground:"#e4f0fb"}},{scope:["support.class.component"],settings:{foreground:"#5DE4c7"}},{scope:["entity.name.tag","entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],settings:{foreground:"#5DE4c7"}},{name:"Function Call",scope:"variable.function, source meta.function-call entity.name.function, source meta.function-call entity.name.function, source meta.method-call entity.name.function, meta.class meta.group.braces.curly meta.function-call variable.function, meta.class meta.field.declaration meta.function-call entity.name.function, variable.function.constructor, meta.block meta.var.expr meta.function-call entity.name.function, support.function.console, meta.function-call support.function, meta.property.class variable.other.class, punctuation.definition.entity.css",settings:{foreground:"#e4f0fbd0"}},{name:"Function/Class Name",scope:"entity.name.function, meta.class entity.name.class, meta.class entity.name.type.class, meta.class meta.function-call variable.function, keyword.other.important",settings:{foreground:"#ADD7FF"}},{scope:["source.cpp meta.block variable.other"],settings:{foreground:"#ADD7FF"}},{scope:["support.other.variable","string.other.link"],settings:{foreground:"#5DE4c7"}},{scope:["constant.numeric","support.constant","constant.character","constant.escape","keyword.other.unit","keyword.other","string","constant.language","constant.other.symbol","constant.other.key","markup.heading","markup.inserted.git_gutter","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js","text.html.derivative"],settings:{foreground:"#5DE4c7"}},{scope:["entity.other.inherited-class"],settings:{foreground:"#ADD7FF"}},{scope:["meta.type.declaration"],settings:{foreground:"#ADD7FF"}},{scope:["entity.name.type.alias"],settings:{foreground:"#a6accd"}},{scope:["keyword.control.as","entity.name.type","support.type"],settings:{foreground:"#a6accdC0"}},{scope:["entity.name","support.orther.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],settings:{foreground:"#91B4D5"}},{scope:["support.class","support.constant","variable.other.constant.object"],settings:{foreground:"#ADD7FF"}},{scope:["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name"],settings:{foreground:"#ADD7FF"}},{scope:["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],settings:{foreground:"#e4f0fb"}},{scope:["variable.language"],settings:{foreground:"#ADD7FF",fontStyle:"italic"}},{scope:["entity.name.method.js"],settings:{foreground:"#91B4D5",fontStyle:"italic"}},{scope:["meta.class-method.js entity.name.function.js","variable.function.constructor"],settings:{foreground:"#91B4D5"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#91B4D5",fontStyle:"italic"}},{scope:["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],settings:{foreground:"#5fb3a1",fontStyle:"italic"}},{scope:["entity.other.attribute-name.class"],settings:{foreground:"#5fb3a1"}},{scope:["source.sass keyword.control"],settings:{foreground:"#42675A"}},{scope:["markup.inserted"],settings:{foreground:"#ADD7FF"}},{scope:["markup.deleted"],settings:{foreground:"#506477"}},{scope:["markup.changed"],settings:{foreground:"#91B4D5"}},{scope:["string.regexp"],settings:{foreground:"#5fb3a1"}},{scope:["constant.character.escape"],settings:{foreground:"#5fb3a1"}},{scope:["*url*","*link*","*uri*"],settings:{foreground:"#ADD7FF",fontStyle:"underline"}},{scope:["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],settings:{foreground:"#42675A",fontStyle:"italic"}},{scope:["source.js constant.other.object.key.js string.unquoted.label.js"],settings:{foreground:"#5fb3a1",fontStyle:"italic"}},{scope:["source.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ADD7FF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B4D5"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7390AA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ADD7FF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B4D5"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7390AA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["text.html.markdown","punctuation.definition.list_item.markdown"],settings:{foreground:"#e4f0fb"}},{scope:["text.html.markdown markup.inline.raw.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],settings:{foreground:"#91B4D5"}},{scope:["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown"],settings:{foreground:"#e4f0fb"}},{scope:["markup.italic"],settings:{foreground:"#7390AA",fontStyle:"italic"}},{scope:["markup.bold","markup.bold string"],settings:{foreground:"#7390AA",fontStyle:"bold"}},{scope:["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],settings:{foreground:"#7390AA",fontStyle:"bold"}},{scope:["markup.underline"],settings:{foreground:"#7390AA",fontStyle:"underline"}},{scope:["markup.strike"],settings:{fontStyle:"italic"}},{scope:["markup.quote punctuation.definition.blockquote.markdown"],settings:{foreground:"#5DE4c7"}},{scope:["markup.quote"],settings:{fontStyle:"italic"}},{scope:["string.other.link.title.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["string.other.link.description.title.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["constant.other.reference.link.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["markup.raw.block"],settings:{foreground:"#ADD7FF"}},{scope:["markup.raw.block.fenced.markdown"],settings:{foreground:"#50647750"}},{scope:["punctuation.definition.fenced.markdown"],settings:{foreground:"#50647750"}},{scope:["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],settings:{foreground:"#91B4D5"}},{scope:["variable.language.fenced.markdown"],settings:{foreground:"#91B4D5"}},{scope:["meta.separator"],settings:{foreground:"#7390AA",fontStyle:"bold"}},{scope:["markup.table"],settings:{foreground:"#ADD7FF"}},{scope:"token.info-token",settings:{foreground:"#89ddff"}},{scope:"token.warn-token",settings:{foreground:"#fffac2"}},{scope:"token.error-token",settings:{foreground:"#d0679d"}},{scope:"token.debug-token",settings:{foreground:"#e4f0fb"}},{scope:["entity.name.section.markdown","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{foreground:"#e4f0fb",fontStyle:"bold"}},{scope:"meta.paragraph.markdown",settings:{foreground:"#e4f0fbd0"}},{scope:["punctuation.definition.from-file.diff","meta.diff.header.from-file"],settings:{foreground:"#506477"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#7390AA"}},{scope:"meta.separator.markdown",settings:{foreground:"#767c9d"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["beginning.punctuation.definition.list.markdown","punctuation.definition.list.begin.markdown","markup.list.unnumbered.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["string.other.link.description.title.markdown punctuation.definition.string.markdown","meta.link.inline.markdown string.other.link.description.title.markdown","string.other.link.description.title.markdown punctuation.definition.string.begin.markdown","string.other.link.description.title.markdown punctuation.definition.string.end.markdown","meta.image.inline.markdown string.other.link.description.title.markdown"],settings:{foreground:"#ADD7FF",fontStyle:""}},{scope:["meta.link.inline.markdown string.other.link.title.markdown","meta.link.reference.markdown string.other.link.title.markdown","meta.link.reference.def.markdown markup.underline.link.markdown"],settings:{foreground:"#ADD7FF",fontStyle:"underline"}},{scope:["markup.underline.link.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#5DE4c7"}},{scope:["fenced_code.block.language","markup.inline.raw.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["punctuation.definition.markdown","punctuation.definition.raw.markdown","punctuation.definition.heading.markdown","punctuation.definition.bold.markdown","punctuation.definition.italic.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["source.ignore","log.error","log.exception"],settings:{foreground:"#d0679d"}},{scope:["log.verbose"],settings:{foreground:"#a6accd"}}],n={name:e,type:o,colors:r,tokenColors:t};export{r as colors,n as default,e as name,t as tokenColors,o as type}; diff --git a/lib/dist/theme/rose-pine-dawn.mjs b/lib/dist/theme/rose-pine-dawn.mjs new file mode 100644 index 0000000..266991e --- /dev/null +++ b/lib/dist/theme/rose-pine-dawn.mjs @@ -0,0 +1 @@ +var e="rose-pine-dawn",r="light",o={"activityBar.activeBorder":"#575279","activityBar.background":"#faf4ed","activityBar.dropBorder":"#f2e9e1","activityBar.foreground":"#575279","activityBar.inactiveForeground":"#797593","activityBarBadge.background":"#d7827e","activityBarBadge.foreground":"#faf4ed","badge.background":"#d7827e","badge.foreground":"#faf4ed","banner.background":"#fffaf3","banner.foreground":"#575279","banner.iconForeground":"#797593","breadcrumb.activeSelectionForeground":"#d7827e","breadcrumb.background":"#faf4ed","breadcrumb.focusForeground":"#797593","breadcrumb.foreground":"#9893a5","breadcrumbPicker.background":"#fffaf3","button.background":"#d7827e","button.foreground":"#faf4ed","button.hoverBackground":"#d7827ee6","button.secondaryBackground":"#fffaf3","button.secondaryForeground":"#575279","button.secondaryHoverBackground":"#f2e9e1","charts.blue":"#56949f","charts.foreground":"#575279","charts.green":"#286983","charts.lines":"#797593","charts.orange":"#d7827e","charts.purple":"#907aa9","charts.red":"#b4637a","charts.yellow":"#ea9d34","checkbox.background":"#fffaf3","checkbox.border":"#6e6a8614","checkbox.foreground":"#575279","debugExceptionWidget.background":"#fffaf3","debugExceptionWidget.border":"#6e6a8614","debugIcon.breakpointCurrentStackframeForeground":"#797593","debugIcon.breakpointDisabledForeground":"#797593","debugIcon.breakpointForeground":"#797593","debugIcon.breakpointStackframeForeground":"#797593","debugIcon.breakpointUnverifiedForeground":"#797593","debugIcon.continueForeground":"#797593","debugIcon.disconnectForeground":"#797593","debugIcon.pauseForeground":"#797593","debugIcon.restartForeground":"#797593","debugIcon.startForeground":"#797593","debugIcon.stepBackForeground":"#797593","debugIcon.stepIntoForeground":"#797593","debugIcon.stepOutForeground":"#797593","debugIcon.stepOverForeground":"#797593","debugIcon.stopForeground":"#b4637a","debugToolBar.background":"#fffaf3","debugToolBar.border":"#f2e9e1",descriptionForeground:"#797593","diffEditor.border":"#f2e9e1","diffEditor.diagonalFill":"#6e6a8626","diffEditor.insertedLineBackground":"#56949f26","diffEditor.insertedTextBackground":"#56949f26","diffEditor.removedLineBackground":"#b4637a26","diffEditor.removedTextBackground":"#b4637a26","diffEditorOverview.insertedForeground":"#56949f80","diffEditorOverview.removedForeground":"#b4637a80","dropdown.background":"#fffaf3","dropdown.border":"#6e6a8614","dropdown.foreground":"#575279","dropdown.listBackground":"#fffaf3","editor.background":"#faf4ed","editor.findMatchBackground":"#6e6a8626","editor.findMatchHighlightBackground":"#6e6a8626","editor.findRangeHighlightBackground":"#6e6a8626","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#6e6a8614","editor.foldBackground":"#fffaf3","editor.foreground":"#575279","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#6e6a860d","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#797593","editor.lineHighlightBackground":"#6e6a860d","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#fffaf3","editor.rangeHighlightBackground":"#6e6a860d","editor.rangeHighlightBorder":"#0000","editor.selectionBackground":"#6e6a8614","editor.selectionForeground":"#575279","editor.selectionHighlightBackground":"#6e6a8614","editor.selectionHighlightBorder":"#0000","editor.snippetFinalTabstopHighlightBackground":"#6e6a8614","editor.snippetFinalTabstopHighlightBorder":"#fffaf3","editor.snippetTabstopHighlightBackground":"#6e6a8614","editor.snippetTabstopHighlightBorder":"#fffaf3","editor.stackFrameHighlightBackground":"#6e6a8614","editor.symbolHighlightBackground":"#6e6a8614","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#6e6a8614","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#6e6a8614","editor.wordHighlightStrongBorder":"#6e6a8614","editorBracketHighlight.foreground1":"#b4637a80","editorBracketHighlight.foreground2":"#28698380","editorBracketHighlight.foreground3":"#ea9d3480","editorBracketHighlight.foreground4":"#56949f80","editorBracketHighlight.foreground5":"#d7827e80","editorBracketHighlight.foreground6":"#907aa980","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#797593","editorBracketPairGuide.activeBackground1":"#286983","editorBracketPairGuide.activeBackground2":"#d7827e","editorBracketPairGuide.activeBackground3":"#907aa9","editorBracketPairGuide.activeBackground4":"#56949f","editorBracketPairGuide.activeBackground5":"#ea9d34","editorBracketPairGuide.activeBackground6":"#b4637a","editorBracketPairGuide.background1":"#28698380","editorBracketPairGuide.background2":"#d7827e80","editorBracketPairGuide.background3":"#907aa980","editorBracketPairGuide.background4":"#56949f80","editorBracketPairGuide.background5":"#ea9d3480","editorBracketPairGuide.background6":"#b4637a80","editorCodeLens.foreground":"#d7827e","editorCursor.background":"#575279","editorCursor.foreground":"#9893a5","editorError.border":"#0000","editorError.foreground":"#b4637a","editorGhostText.foreground":"#797593","editorGroup.border":"#0000","editorGroup.dropBackground":"#fffaf3","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#56949f","editorGutter.background":"#0000","editorGutter.commentRangeForeground":"#797593","editorGutter.deletedBackground":"#b4637a","editorGutter.foldingControlForeground":"#907aa9","editorGutter.modifiedBackground":"#d7827e","editorHint.border":"#0000","editorHint.foreground":"#797593","editorHoverWidget.background":"#fffaf3","editorHoverWidget.border":"#9893a580","editorHoverWidget.foreground":"#797593","editorHoverWidget.highlightForeground":"#575279","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#9893a5","editorIndentGuide.background":"#6e6a8626","editorInfo.border":"#f2e9e1","editorInfo.foreground":"#56949f","editorInlayHint.background":"#f2e9e1","editorInlayHint.foreground":"#797593","editorInlayHint.parameterBackground":"#f2e9e1","editorInlayHint.parameterForeground":"#907aa9","editorInlayHint.typeBackground":"#f2e9e1","editorInlayHint.typeForeground":"#56949f","editorLightBulb.foreground":"#286983","editorLightBulbAutoFix.foreground":"#d7827e","editorLineNumber.activeForeground":"#575279","editorLineNumber.foreground":"#797593","editorLink.activeForeground":"#d7827e","editorMarkerNavigation.background":"#fffaf3","editorMarkerNavigationError.background":"#fffaf3","editorMarkerNavigationInfo.background":"#fffaf3","editorMarkerNavigationWarning.background":"#fffaf3","editorOverviewRuler.addedForeground":"#56949f80","editorOverviewRuler.background":"#faf4ed","editorOverviewRuler.border":"#6e6a8626","editorOverviewRuler.bracketMatchForeground":"#797593","editorOverviewRuler.commonContentForeground":"#6e6a860d","editorOverviewRuler.currentContentForeground":"#6e6a8614","editorOverviewRuler.deletedForeground":"#b4637a80","editorOverviewRuler.errorForeground":"#b4637a80","editorOverviewRuler.findMatchForeground":"#6e6a8626","editorOverviewRuler.incomingContentForeground":"#907aa980","editorOverviewRuler.infoForeground":"#56949f80","editorOverviewRuler.modifiedForeground":"#d7827e80","editorOverviewRuler.rangeHighlightForeground":"#6e6a8626","editorOverviewRuler.selectionHighlightForeground":"#6e6a8626","editorOverviewRuler.warningForeground":"#ea9d3480","editorOverviewRuler.wordHighlightForeground":"#6e6a8614","editorOverviewRuler.wordHighlightStrongForeground":"#6e6a8626","editorPane.background":"#0000","editorRuler.foreground":"#6e6a8626","editorSuggestWidget.background":"#fffaf3","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#d7827e","editorSuggestWidget.foreground":"#797593","editorSuggestWidget.highlightForeground":"#d7827e","editorSuggestWidget.selectedBackground":"#6e6a8614","editorSuggestWidget.selectedForeground":"#575279","editorSuggestWidget.selectedIconForeground":"#575279","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#00000080","editorWarning.border":"#0000","editorWarning.foreground":"#ea9d34","editorWhitespace.foreground":"#9893a5","editorWidget.background":"#fffaf3","editorWidget.border":"#f2e9e1","editorWidget.foreground":"#797593","editorWidget.resizeBorder":"#9893a5",errorForeground:"#b4637a","extensionBadge.remoteBackground":"#907aa9","extensionBadge.remoteForeground":"#faf4ed","extensionButton.prominentBackground":"#d7827e","extensionButton.prominentForeground":"#faf4ed","extensionButton.prominentHoverBackground":"#d7827ee6","extensionIcon.preReleaseForeground":"#286983","extensionIcon.starForeground":"#d7827e","extensionIcon.verifiedForeground":"#907aa9",focusBorder:"#6e6a8614",foreground:"#575279","gitDecoration.addedResourceForeground":"#56949f","gitDecoration.conflictingResourceForeground":"#b4637a","gitDecoration.deletedResourceForeground":"#797593","gitDecoration.ignoredResourceForeground":"#9893a5","gitDecoration.modifiedResourceForeground":"#d7827e","gitDecoration.renamedResourceForeground":"#286983","gitDecoration.stageDeletedResourceForeground":"#b4637a","gitDecoration.stageModifiedResourceForeground":"#907aa9","gitDecoration.submoduleResourceForeground":"#ea9d34","gitDecoration.untrackedResourceForeground":"#ea9d34","icon.foreground":"#797593","input.background":"#f2e9e180","input.border":"#6e6a8614","input.foreground":"#575279","input.placeholderForeground":"#797593","inputOption.activeBackground":"#d7827e","inputOption.activeBorder":"#0000","inputOption.activeForeground":"#faf4ed","inputValidation.errorBackground":"#fffaf3","inputValidation.errorBorder":"#6e6a8626","inputValidation.errorForeground":"#b4637a","inputValidation.infoBackground":"#fffaf3","inputValidation.infoBorder":"#6e6a8626","inputValidation.infoForeground":"#56949f","inputValidation.warningBackground":"#fffaf3","inputValidation.warningBorder":"#6e6a8626","inputValidation.warningForeground":"#56949f80","keybindingLabel.background":"#f2e9e1","keybindingLabel.border":"#6e6a8626","keybindingLabel.bottomBorder":"#6e6a8626","keybindingLabel.foreground":"#907aa9","keybindingTable.headerBackground":"#f2e9e1","keybindingTable.rowsBackground":"#fffaf3","list.activeSelectionBackground":"#6e6a8614","list.activeSelectionForeground":"#575279","list.deemphasizedForeground":"#797593","list.dropBackground":"#fffaf3","list.errorForeground":"#b4637a","list.filterMatchBackground":"#fffaf3","list.filterMatchBorder":"#d7827e","list.focusBackground":"#6e6a8626","list.focusForeground":"#575279","list.focusOutline":"#6e6a8614","list.highlightForeground":"#d7827e","list.hoverBackground":"#6e6a860d","list.hoverForeground":"#575279","list.inactiveFocusBackground":"#6e6a860d","list.inactiveSelectionBackground":"#fffaf3","list.inactiveSelectionForeground":"#575279","list.invalidItemForeground":"#b4637a","list.warningForeground":"#ea9d34","listFilterWidget.background":"#fffaf3","listFilterWidget.noMatchesOutline":"#b4637a","listFilterWidget.outline":"#f2e9e1","menu.background":"#fffaf3","menu.border":"#6e6a860d","menu.foreground":"#575279","menu.selectionBackground":"#6e6a8614","menu.selectionBorder":"#f2e9e1","menu.selectionForeground":"#575279","menu.separatorBackground":"#6e6a8626","menubar.selectionBackground":"#6e6a8614","menubar.selectionBorder":"#6e6a860d","menubar.selectionForeground":"#575279","merge.border":"#f2e9e1","merge.commonContentBackground":"#6e6a8614","merge.commonHeaderBackground":"#6e6a8614","merge.currentContentBackground":"#ea9d3480","merge.currentHeaderBackground":"#ea9d3480","merge.incomingContentBackground":"#56949f80","merge.incomingHeaderBackground":"#56949f80","minimap.background":"#fffaf3","minimap.errorHighlight":"#b4637a80","minimap.findMatchHighlight":"#6e6a8614","minimap.selectionHighlight":"#6e6a8614","minimap.warningHighlight":"#ea9d3480","minimapGutter.addedBackground":"#56949f","minimapGutter.deletedBackground":"#b4637a","minimapGutter.modifiedBackground":"#d7827e","minimapSlider.activeBackground":"#6e6a8626","minimapSlider.background":"#6e6a8614","minimapSlider.hoverBackground":"#6e6a8614","notificationCenter.border":"#6e6a8614","notificationCenterHeader.background":"#fffaf3","notificationCenterHeader.foreground":"#797593","notificationLink.foreground":"#907aa9","notifications.background":"#fffaf3","notifications.border":"#6e6a8614","notifications.foreground":"#575279","notificationsErrorIcon.foreground":"#b4637a","notificationsInfoIcon.foreground":"#56949f","notificationsWarningIcon.foreground":"#ea9d34","notificationToast.border":"#6e6a8614","panel.background":"#fffaf3","panel.border":"#0000","panel.dropBorder":"#f2e9e1","panelInput.border":"#fffaf3","panelSection.dropBackground":"#6e6a8614","panelSectionHeader.background":"#fffaf3","panelSectionHeader.foreground":"#575279","panelTitle.activeBorder":"#6e6a8626","panelTitle.activeForeground":"#575279","panelTitle.inactiveForeground":"#797593","peekView.border":"#f2e9e1","peekViewEditor.background":"#fffaf3","peekViewEditor.matchHighlightBackground":"#6e6a8626","peekViewResult.background":"#fffaf3","peekViewResult.fileForeground":"#797593","peekViewResult.lineForeground":"#797593","peekViewResult.matchHighlightBackground":"#6e6a8626","peekViewResult.selectionBackground":"#6e6a8614","peekViewResult.selectionForeground":"#575279","peekViewTitle.background":"#f2e9e1","peekViewTitleDescription.foreground":"#797593","pickerGroup.border":"#6e6a8626","pickerGroup.foreground":"#907aa9","ports.iconRunningProcessForeground":"#d7827e","problemsErrorIcon.foreground":"#b4637a","problemsInfoIcon.foreground":"#56949f","problemsWarningIcon.foreground":"#ea9d34","progressBar.background":"#d7827e","quickInput.background":"#fffaf3","quickInput.foreground":"#797593","quickInputList.focusBackground":"#6e6a8614","quickInputList.focusForeground":"#575279","quickInputList.focusIconForeground":"#575279","scrollbar.shadow":"#0000","scrollbarSlider.activeBackground":"#28698380","scrollbarSlider.background":"#6e6a8614","scrollbarSlider.hoverBackground":"#6e6a8626","searchEditor.findMatchBackground":"#6e6a8614","selection.background":"#6e6a8626","settings.focusedRowBackground":"#fffaf3","settings.headerForeground":"#575279","settings.modifiedItemIndicator":"#d7827e","settings.focusedRowBorder":"#6e6a8614","settings.rowHoverBackground":"#fffaf3","sideBar.background":"#faf4ed","sideBar.dropBackground":"#fffaf3","sideBar.foreground":"#797593","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#6e6a8614","statusBar.background":"#faf4ed","statusBar.debuggingBackground":"#907aa9","statusBar.debuggingForeground":"#faf4ed","statusBar.foreground":"#797593","statusBar.noFolderBackground":"#faf4ed","statusBar.noFolderForeground":"#797593","statusBarItem.activeBackground":"#6e6a8626","statusBarItem.hoverBackground":"#6e6a8614","statusBarItem.prominentBackground":"#f2e9e1","statusBarItem.prominentForeground":"#575279","statusBarItem.prominentHoverBackground":"#6e6a8614","statusBarItem.remoteBackground":"#faf4ed","statusBarItem.remoteForeground":"#ea9d34","statusBarItem.errorBackground":"#faf4ed","statusBarItem.errorForeground":"#b4637a","symbolIcon.arrayForeground":"#797593","symbolIcon.classForeground":"#797593","symbolIcon.colorForeground":"#797593","symbolIcon.constantForeground":"#797593","symbolIcon.constructorForeground":"#797593","symbolIcon.enumeratorForeground":"#797593","symbolIcon.enumeratorMemberForeground":"#797593","symbolIcon.eventForeground":"#797593","symbolIcon.fieldForeground":"#797593","symbolIcon.fileForeground":"#797593","symbolIcon.folderForeground":"#797593","symbolIcon.functionForeground":"#797593","symbolIcon.interfaceForeground":"#797593","symbolIcon.keyForeground":"#797593","symbolIcon.keywordForeground":"#797593","symbolIcon.methodForeground":"#797593","symbolIcon.moduleForeground":"#797593","symbolIcon.namespaceForeground":"#797593","symbolIcon.nullForeground":"#797593","symbolIcon.numberForeground":"#797593","symbolIcon.objectForeground":"#797593","symbolIcon.operatorForeground":"#797593","symbolIcon.packageForeground":"#797593","symbolIcon.propertyForeground":"#797593","symbolIcon.referenceForeground":"#797593","symbolIcon.snippetForeground":"#797593","symbolIcon.stringForeground":"#797593","symbolIcon.structForeground":"#797593","symbolIcon.textForeground":"#797593","symbolIcon.typeParameterForeground":"#797593","symbolIcon.unitForeground":"#797593","symbolIcon.variableForeground":"#797593","tab.activeBackground":"#6e6a860d","tab.activeForeground":"#575279","tab.activeModifiedBorder":"#56949f","tab.border":"#0000","tab.hoverBackground":"#6e6a8614","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#797593","tab.inactiveModifiedBorder":"#56949f80","tab.lastPinnedBorder":"#9893a5","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#56949f80","terminal.ansiBlack":"#f2e9e1","terminal.ansiBlue":"#56949f","terminal.ansiBrightBlack":"#797593","terminal.ansiBrightBlue":"#56949f","terminal.ansiBrightCyan":"#d7827e","terminal.ansiBrightGreen":"#286983","terminal.ansiBrightMagenta":"#907aa9","terminal.ansiBrightRed":"#b4637a","terminal.ansiBrightWhite":"#575279","terminal.ansiBrightYellow":"#ea9d34","terminal.ansiCyan":"#d7827e","terminal.ansiGreen":"#286983","terminal.ansiMagenta":"#907aa9","terminal.ansiRed":"#b4637a","terminal.ansiWhite":"#575279","terminal.ansiYellow":"#ea9d34","terminal.dropBackground":"#6e6a8614","terminal.foreground":"#575279","terminal.selectionBackground":"#6e6a8614","terminal.tab.activeBorder":"#575279","terminalCursor.background":"#575279","terminalCursor.foreground":"#9893a5","textBlockQuote.background":"#fffaf3","textBlockQuote.border":"#6e6a8614","textCodeBlock.background":"#fffaf3","textLink.activeForeground":"#907aa9e6","textLink.foreground":"#907aa9","textPreformat.foreground":"#ea9d34","textSeparator.foreground":"#797593","titleBar.activeBackground":"#faf4ed","titleBar.activeForeground":"#797593","titleBar.inactiveBackground":"#fffaf3","titleBar.inactiveForeground":"#797593","toolbar.activeBackground":"#6e6a8626","toolbar.hoverBackground":"#6e6a8614","tree.indentGuidesStroke":"#797593","walkThrough.embeddedEditorBackground":"#faf4ed","welcomePage.background":"#faf4ed","welcomePage.buttonBackground":"#fffaf3","welcomePage.buttonHoverBackground":"#f2e9e1","widget.shadow":"#f2e9de4d","window.activeBorder":"#fffaf3","window.inactiveBorder":"#fffaf3"},n=[{scope:["comment"],settings:{foreground:"#9893a5",fontStyle:"italic"}},{scope:["constant"],settings:{foreground:"#286983"}},{scope:["constant.numeric","constant.language","constant.charcter.escape"],settings:{foreground:"#d7827e"}},{scope:["entity.name"],settings:{foreground:"#d7827e"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#56949f"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{foreground:"#907aa9",fontStyle:"italic"}},{scope:["invalid"],settings:{foreground:"#b4637a"}},{scope:["invalid.deprecated"],settings:{foreground:"#797593"}},{scope:["keyword"],settings:{foreground:"#286983"}},{scope:["markup.inserted.diff"],settings:{foreground:"#56949f"}},{scope:["markup.deleted.diff"],settings:{foreground:"#b4637a"}},{scope:["meta.diff.range"],settings:{foreground:"#907aa9"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#575279"}},{scope:["meta.import","meta.export"],settings:{foreground:"#286983"}},{scope:"meta.directive.vue",settings:{foreground:"#907aa9",fontStyle:"italic"}},{scope:"meta.property-name.css",settings:{foreground:"#56949f"}},{scope:"meta.property-value.css",settings:{foreground:"#ea9d34"}},{scope:"meta.tag.other.html",settings:{foreground:"#797593"}},{scope:["punctuation"],settings:{foreground:"#797593"}},{scope:["punctuation.accessor"],settings:{foreground:"#286983"}},{scope:["punctuation.definition.string"],settings:{foreground:"#ea9d34"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#9893a5"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#286983"}},{scope:["string"],settings:{foreground:"#ea9d34"}},{scope:["support"],settings:{foreground:"#56949f"}},{scope:["support.constant"],settings:{foreground:"#ea9d34"}},{scope:["support.function"],settings:{foreground:"#b4637a",fontStyle:"italic"}},{scope:["variable"],settings:{foreground:"#d7827e",fontStyle:"italic"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#575279"}},{scope:["variable.parameter"],settings:{foreground:"#907aa9"}}],t={name:e,type:r,colors:o,tokenColors:n};export{o as colors,t as default,e as name,n as tokenColors,r as type}; diff --git a/lib/dist/theme/rose-pine-moon.mjs b/lib/dist/theme/rose-pine-moon.mjs new file mode 100644 index 0000000..571d349 --- /dev/null +++ b/lib/dist/theme/rose-pine-moon.mjs @@ -0,0 +1 @@ +var e="rose-pine-moon",r="dark",o={"activityBar.activeBorder":"#e0def4","activityBar.background":"#232136","activityBar.dropBorder":"#393552","activityBar.foreground":"#e0def4","activityBar.inactiveForeground":"#908caa","activityBarBadge.background":"#ea9a97","activityBarBadge.foreground":"#232136","badge.background":"#ea9a97","badge.foreground":"#232136","banner.background":"#2a273f","banner.foreground":"#e0def4","banner.iconForeground":"#908caa","breadcrumb.activeSelectionForeground":"#ea9a97","breadcrumb.background":"#232136","breadcrumb.focusForeground":"#908caa","breadcrumb.foreground":"#6e6a86","breadcrumbPicker.background":"#2a273f","button.background":"#ea9a97","button.foreground":"#232136","button.hoverBackground":"#ea9a97e6","button.secondaryBackground":"#2a273f","button.secondaryForeground":"#e0def4","button.secondaryHoverBackground":"#393552","charts.blue":"#9ccfd8","charts.foreground":"#e0def4","charts.green":"#3e8fb0","charts.lines":"#908caa","charts.orange":"#ea9a97","charts.purple":"#c4a7e7","charts.red":"#eb6f92","charts.yellow":"#f6c177","checkbox.background":"#2a273f","checkbox.border":"#817c9c26","checkbox.foreground":"#e0def4","debugExceptionWidget.background":"#2a273f","debugExceptionWidget.border":"#817c9c26","debugIcon.breakpointCurrentStackframeForeground":"#908caa","debugIcon.breakpointDisabledForeground":"#908caa","debugIcon.breakpointForeground":"#908caa","debugIcon.breakpointStackframeForeground":"#908caa","debugIcon.breakpointUnverifiedForeground":"#908caa","debugIcon.continueForeground":"#908caa","debugIcon.disconnectForeground":"#908caa","debugIcon.pauseForeground":"#908caa","debugIcon.restartForeground":"#908caa","debugIcon.startForeground":"#908caa","debugIcon.stepBackForeground":"#908caa","debugIcon.stepIntoForeground":"#908caa","debugIcon.stepOutForeground":"#908caa","debugIcon.stepOverForeground":"#908caa","debugIcon.stopForeground":"#eb6f92","debugToolBar.background":"#2a273f","debugToolBar.border":"#393552",descriptionForeground:"#908caa","diffEditor.border":"#393552","diffEditor.diagonalFill":"#817c9c4d","diffEditor.insertedLineBackground":"#9ccfd826","diffEditor.insertedTextBackground":"#9ccfd826","diffEditor.removedLineBackground":"#eb6f9226","diffEditor.removedTextBackground":"#eb6f9226","diffEditorOverview.insertedForeground":"#9ccfd880","diffEditorOverview.removedForeground":"#eb6f9280","dropdown.background":"#2a273f","dropdown.border":"#817c9c26","dropdown.foreground":"#e0def4","dropdown.listBackground":"#2a273f","editor.background":"#232136","editor.findMatchBackground":"#817c9c4d","editor.findMatchHighlightBackground":"#817c9c4d","editor.findRangeHighlightBackground":"#817c9c4d","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#817c9c26","editor.foldBackground":"#2a273f","editor.foreground":"#e0def4","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#817c9c14","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#908caa","editor.lineHighlightBackground":"#817c9c14","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#2a273f","editor.rangeHighlightBackground":"#817c9c14","editor.rangeHighlightBorder":"#0000","editor.selectionBackground":"#817c9c26","editor.selectionForeground":"#e0def4","editor.selectionHighlightBackground":"#817c9c26","editor.selectionHighlightBorder":"#0000","editor.snippetFinalTabstopHighlightBackground":"#817c9c26","editor.snippetFinalTabstopHighlightBorder":"#2a273f","editor.snippetTabstopHighlightBackground":"#817c9c26","editor.snippetTabstopHighlightBorder":"#2a273f","editor.stackFrameHighlightBackground":"#817c9c26","editor.symbolHighlightBackground":"#817c9c26","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#817c9c26","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#817c9c26","editor.wordHighlightStrongBorder":"#817c9c26","editorBracketHighlight.foreground1":"#eb6f9280","editorBracketHighlight.foreground2":"#3e8fb080","editorBracketHighlight.foreground3":"#f6c17780","editorBracketHighlight.foreground4":"#9ccfd880","editorBracketHighlight.foreground5":"#ea9a9780","editorBracketHighlight.foreground6":"#c4a7e780","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#908caa","editorBracketPairGuide.activeBackground1":"#3e8fb0","editorBracketPairGuide.activeBackground2":"#ea9a97","editorBracketPairGuide.activeBackground3":"#c4a7e7","editorBracketPairGuide.activeBackground4":"#9ccfd8","editorBracketPairGuide.activeBackground5":"#f6c177","editorBracketPairGuide.activeBackground6":"#eb6f92","editorBracketPairGuide.background1":"#3e8fb080","editorBracketPairGuide.background2":"#ea9a9780","editorBracketPairGuide.background3":"#c4a7e780","editorBracketPairGuide.background4":"#9ccfd880","editorBracketPairGuide.background5":"#f6c17780","editorBracketPairGuide.background6":"#eb6f9280","editorCodeLens.foreground":"#ea9a97","editorCursor.background":"#e0def4","editorCursor.foreground":"#6e6a86","editorError.border":"#0000","editorError.foreground":"#eb6f92","editorGhostText.foreground":"#908caa","editorGroup.border":"#0000","editorGroup.dropBackground":"#2a273f","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#9ccfd8","editorGutter.background":"#0000","editorGutter.commentRangeForeground":"#908caa","editorGutter.deletedBackground":"#eb6f92","editorGutter.foldingControlForeground":"#c4a7e7","editorGutter.modifiedBackground":"#ea9a97","editorHint.border":"#0000","editorHint.foreground":"#908caa","editorHoverWidget.background":"#2a273f","editorHoverWidget.border":"#6e6a8680","editorHoverWidget.foreground":"#908caa","editorHoverWidget.highlightForeground":"#e0def4","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#6e6a86","editorIndentGuide.background":"#817c9c4d","editorInfo.border":"#393552","editorInfo.foreground":"#9ccfd8","editorInlayHint.background":"#393552","editorInlayHint.foreground":"#908caa","editorInlayHint.parameterBackground":"#393552","editorInlayHint.parameterForeground":"#c4a7e7","editorInlayHint.typeBackground":"#393552","editorInlayHint.typeForeground":"#9ccfd8","editorLightBulb.foreground":"#3e8fb0","editorLightBulbAutoFix.foreground":"#ea9a97","editorLineNumber.activeForeground":"#e0def4","editorLineNumber.foreground":"#908caa","editorLink.activeForeground":"#ea9a97","editorMarkerNavigation.background":"#2a273f","editorMarkerNavigationError.background":"#2a273f","editorMarkerNavigationInfo.background":"#2a273f","editorMarkerNavigationWarning.background":"#2a273f","editorOverviewRuler.addedForeground":"#9ccfd880","editorOverviewRuler.background":"#232136","editorOverviewRuler.border":"#817c9c4d","editorOverviewRuler.bracketMatchForeground":"#908caa","editorOverviewRuler.commonContentForeground":"#817c9c14","editorOverviewRuler.currentContentForeground":"#817c9c26","editorOverviewRuler.deletedForeground":"#eb6f9280","editorOverviewRuler.errorForeground":"#eb6f9280","editorOverviewRuler.findMatchForeground":"#817c9c4d","editorOverviewRuler.incomingContentForeground":"#c4a7e780","editorOverviewRuler.infoForeground":"#9ccfd880","editorOverviewRuler.modifiedForeground":"#ea9a9780","editorOverviewRuler.rangeHighlightForeground":"#817c9c4d","editorOverviewRuler.selectionHighlightForeground":"#817c9c4d","editorOverviewRuler.warningForeground":"#f6c17780","editorOverviewRuler.wordHighlightForeground":"#817c9c26","editorOverviewRuler.wordHighlightStrongForeground":"#817c9c4d","editorPane.background":"#0000","editorRuler.foreground":"#817c9c4d","editorSuggestWidget.background":"#2a273f","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#ea9a97","editorSuggestWidget.foreground":"#908caa","editorSuggestWidget.highlightForeground":"#ea9a97","editorSuggestWidget.selectedBackground":"#817c9c26","editorSuggestWidget.selectedForeground":"#e0def4","editorSuggestWidget.selectedIconForeground":"#e0def4","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#00000080","editorWarning.border":"#0000","editorWarning.foreground":"#f6c177","editorWhitespace.foreground":"#6e6a86","editorWidget.background":"#2a273f","editorWidget.border":"#393552","editorWidget.foreground":"#908caa","editorWidget.resizeBorder":"#6e6a86",errorForeground:"#eb6f92","extensionBadge.remoteBackground":"#c4a7e7","extensionBadge.remoteForeground":"#232136","extensionButton.prominentBackground":"#ea9a97","extensionButton.prominentForeground":"#232136","extensionButton.prominentHoverBackground":"#ea9a97e6","extensionIcon.preReleaseForeground":"#3e8fb0","extensionIcon.starForeground":"#ea9a97","extensionIcon.verifiedForeground":"#c4a7e7",focusBorder:"#817c9c26",foreground:"#e0def4","gitDecoration.addedResourceForeground":"#9ccfd8","gitDecoration.conflictingResourceForeground":"#eb6f92","gitDecoration.deletedResourceForeground":"#908caa","gitDecoration.ignoredResourceForeground":"#6e6a86","gitDecoration.modifiedResourceForeground":"#ea9a97","gitDecoration.renamedResourceForeground":"#3e8fb0","gitDecoration.stageDeletedResourceForeground":"#eb6f92","gitDecoration.stageModifiedResourceForeground":"#c4a7e7","gitDecoration.submoduleResourceForeground":"#f6c177","gitDecoration.untrackedResourceForeground":"#f6c177","icon.foreground":"#908caa","input.background":"#39355280","input.border":"#817c9c26","input.foreground":"#e0def4","input.placeholderForeground":"#908caa","inputOption.activeBackground":"#ea9a97","inputOption.activeBorder":"#0000","inputOption.activeForeground":"#232136","inputValidation.errorBackground":"#2a273f","inputValidation.errorBorder":"#817c9c4d","inputValidation.errorForeground":"#eb6f92","inputValidation.infoBackground":"#2a273f","inputValidation.infoBorder":"#817c9c4d","inputValidation.infoForeground":"#9ccfd8","inputValidation.warningBackground":"#2a273f","inputValidation.warningBorder":"#817c9c4d","inputValidation.warningForeground":"#9ccfd880","keybindingLabel.background":"#393552","keybindingLabel.border":"#817c9c4d","keybindingLabel.bottomBorder":"#817c9c4d","keybindingLabel.foreground":"#c4a7e7","keybindingTable.headerBackground":"#393552","keybindingTable.rowsBackground":"#2a273f","list.activeSelectionBackground":"#817c9c26","list.activeSelectionForeground":"#e0def4","list.deemphasizedForeground":"#908caa","list.dropBackground":"#2a273f","list.errorForeground":"#eb6f92","list.filterMatchBackground":"#2a273f","list.filterMatchBorder":"#ea9a97","list.focusBackground":"#817c9c4d","list.focusForeground":"#e0def4","list.focusOutline":"#817c9c26","list.highlightForeground":"#ea9a97","list.hoverBackground":"#817c9c14","list.hoverForeground":"#e0def4","list.inactiveFocusBackground":"#817c9c14","list.inactiveSelectionBackground":"#2a273f","list.inactiveSelectionForeground":"#e0def4","list.invalidItemForeground":"#eb6f92","list.warningForeground":"#f6c177","listFilterWidget.background":"#2a273f","listFilterWidget.noMatchesOutline":"#eb6f92","listFilterWidget.outline":"#393552","menu.background":"#2a273f","menu.border":"#817c9c14","menu.foreground":"#e0def4","menu.selectionBackground":"#817c9c26","menu.selectionBorder":"#393552","menu.selectionForeground":"#e0def4","menu.separatorBackground":"#817c9c4d","menubar.selectionBackground":"#817c9c26","menubar.selectionBorder":"#817c9c14","menubar.selectionForeground":"#e0def4","merge.border":"#393552","merge.commonContentBackground":"#817c9c26","merge.commonHeaderBackground":"#817c9c26","merge.currentContentBackground":"#f6c17780","merge.currentHeaderBackground":"#f6c17780","merge.incomingContentBackground":"#9ccfd880","merge.incomingHeaderBackground":"#9ccfd880","minimap.background":"#2a273f","minimap.errorHighlight":"#eb6f9280","minimap.findMatchHighlight":"#817c9c26","minimap.selectionHighlight":"#817c9c26","minimap.warningHighlight":"#f6c17780","minimapGutter.addedBackground":"#9ccfd8","minimapGutter.deletedBackground":"#eb6f92","minimapGutter.modifiedBackground":"#ea9a97","minimapSlider.activeBackground":"#817c9c4d","minimapSlider.background":"#817c9c26","minimapSlider.hoverBackground":"#817c9c26","notificationCenter.border":"#817c9c26","notificationCenterHeader.background":"#2a273f","notificationCenterHeader.foreground":"#908caa","notificationLink.foreground":"#c4a7e7","notifications.background":"#2a273f","notifications.border":"#817c9c26","notifications.foreground":"#e0def4","notificationsErrorIcon.foreground":"#eb6f92","notificationsInfoIcon.foreground":"#9ccfd8","notificationsWarningIcon.foreground":"#f6c177","notificationToast.border":"#817c9c26","panel.background":"#2a273f","panel.border":"#0000","panel.dropBorder":"#393552","panelInput.border":"#2a273f","panelSection.dropBackground":"#817c9c26","panelSectionHeader.background":"#2a273f","panelSectionHeader.foreground":"#e0def4","panelTitle.activeBorder":"#817c9c4d","panelTitle.activeForeground":"#e0def4","panelTitle.inactiveForeground":"#908caa","peekView.border":"#393552","peekViewEditor.background":"#2a273f","peekViewEditor.matchHighlightBackground":"#817c9c4d","peekViewResult.background":"#2a273f","peekViewResult.fileForeground":"#908caa","peekViewResult.lineForeground":"#908caa","peekViewResult.matchHighlightBackground":"#817c9c4d","peekViewResult.selectionBackground":"#817c9c26","peekViewResult.selectionForeground":"#e0def4","peekViewTitle.background":"#393552","peekViewTitleDescription.foreground":"#908caa","pickerGroup.border":"#817c9c4d","pickerGroup.foreground":"#c4a7e7","ports.iconRunningProcessForeground":"#ea9a97","problemsErrorIcon.foreground":"#eb6f92","problemsInfoIcon.foreground":"#9ccfd8","problemsWarningIcon.foreground":"#f6c177","progressBar.background":"#ea9a97","quickInput.background":"#2a273f","quickInput.foreground":"#908caa","quickInputList.focusBackground":"#817c9c26","quickInputList.focusForeground":"#e0def4","quickInputList.focusIconForeground":"#e0def4","scrollbar.shadow":"#0000","scrollbarSlider.activeBackground":"#3e8fb080","scrollbarSlider.background":"#817c9c26","scrollbarSlider.hoverBackground":"#817c9c4d","searchEditor.findMatchBackground":"#817c9c26","selection.background":"#817c9c4d","settings.focusedRowBackground":"#2a273f","settings.headerForeground":"#e0def4","settings.modifiedItemIndicator":"#ea9a97","settings.focusedRowBorder":"#817c9c26","settings.rowHoverBackground":"#2a273f","sideBar.background":"#232136","sideBar.dropBackground":"#2a273f","sideBar.foreground":"#908caa","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#817c9c26","statusBar.background":"#232136","statusBar.debuggingBackground":"#c4a7e7","statusBar.debuggingForeground":"#232136","statusBar.foreground":"#908caa","statusBar.noFolderBackground":"#232136","statusBar.noFolderForeground":"#908caa","statusBarItem.activeBackground":"#817c9c4d","statusBarItem.hoverBackground":"#817c9c26","statusBarItem.prominentBackground":"#393552","statusBarItem.prominentForeground":"#e0def4","statusBarItem.prominentHoverBackground":"#817c9c26","statusBarItem.remoteBackground":"#232136","statusBarItem.remoteForeground":"#f6c177","statusBarItem.errorBackground":"#232136","statusBarItem.errorForeground":"#eb6f92","symbolIcon.arrayForeground":"#908caa","symbolIcon.classForeground":"#908caa","symbolIcon.colorForeground":"#908caa","symbolIcon.constantForeground":"#908caa","symbolIcon.constructorForeground":"#908caa","symbolIcon.enumeratorForeground":"#908caa","symbolIcon.enumeratorMemberForeground":"#908caa","symbolIcon.eventForeground":"#908caa","symbolIcon.fieldForeground":"#908caa","symbolIcon.fileForeground":"#908caa","symbolIcon.folderForeground":"#908caa","symbolIcon.functionForeground":"#908caa","symbolIcon.interfaceForeground":"#908caa","symbolIcon.keyForeground":"#908caa","symbolIcon.keywordForeground":"#908caa","symbolIcon.methodForeground":"#908caa","symbolIcon.moduleForeground":"#908caa","symbolIcon.namespaceForeground":"#908caa","symbolIcon.nullForeground":"#908caa","symbolIcon.numberForeground":"#908caa","symbolIcon.objectForeground":"#908caa","symbolIcon.operatorForeground":"#908caa","symbolIcon.packageForeground":"#908caa","symbolIcon.propertyForeground":"#908caa","symbolIcon.referenceForeground":"#908caa","symbolIcon.snippetForeground":"#908caa","symbolIcon.stringForeground":"#908caa","symbolIcon.structForeground":"#908caa","symbolIcon.textForeground":"#908caa","symbolIcon.typeParameterForeground":"#908caa","symbolIcon.unitForeground":"#908caa","symbolIcon.variableForeground":"#908caa","tab.activeBackground":"#817c9c14","tab.activeForeground":"#e0def4","tab.activeModifiedBorder":"#9ccfd8","tab.border":"#0000","tab.hoverBackground":"#817c9c26","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#908caa","tab.inactiveModifiedBorder":"#9ccfd880","tab.lastPinnedBorder":"#6e6a86","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#9ccfd880","terminal.ansiBlack":"#393552","terminal.ansiBlue":"#9ccfd8","terminal.ansiBrightBlack":"#908caa","terminal.ansiBrightBlue":"#9ccfd8","terminal.ansiBrightCyan":"#ea9a97","terminal.ansiBrightGreen":"#3e8fb0","terminal.ansiBrightMagenta":"#c4a7e7","terminal.ansiBrightRed":"#eb6f92","terminal.ansiBrightWhite":"#e0def4","terminal.ansiBrightYellow":"#f6c177","terminal.ansiCyan":"#ea9a97","terminal.ansiGreen":"#3e8fb0","terminal.ansiMagenta":"#c4a7e7","terminal.ansiRed":"#eb6f92","terminal.ansiWhite":"#e0def4","terminal.ansiYellow":"#f6c177","terminal.dropBackground":"#817c9c26","terminal.foreground":"#e0def4","terminal.selectionBackground":"#817c9c26","terminal.tab.activeBorder":"#e0def4","terminalCursor.background":"#e0def4","terminalCursor.foreground":"#6e6a86","textBlockQuote.background":"#2a273f","textBlockQuote.border":"#817c9c26","textCodeBlock.background":"#2a273f","textLink.activeForeground":"#c4a7e7e6","textLink.foreground":"#c4a7e7","textPreformat.foreground":"#f6c177","textSeparator.foreground":"#908caa","titleBar.activeBackground":"#232136","titleBar.activeForeground":"#908caa","titleBar.inactiveBackground":"#2a273f","titleBar.inactiveForeground":"#908caa","toolbar.activeBackground":"#817c9c4d","toolbar.hoverBackground":"#817c9c26","tree.indentGuidesStroke":"#908caa","walkThrough.embeddedEditorBackground":"#232136","welcomePage.background":"#232136","welcomePage.buttonBackground":"#2a273f","welcomePage.buttonHoverBackground":"#393552","widget.shadow":"#1917244d","window.activeBorder":"#2a273f","window.inactiveBorder":"#2a273f"},a=[{scope:["comment"],settings:{foreground:"#6e6a86",fontStyle:"italic"}},{scope:["constant"],settings:{foreground:"#3e8fb0"}},{scope:["constant.numeric","constant.language","constant.charcter.escape"],settings:{foreground:"#ea9a97"}},{scope:["entity.name"],settings:{foreground:"#ea9a97"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#9ccfd8"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:["invalid"],settings:{foreground:"#eb6f92"}},{scope:["invalid.deprecated"],settings:{foreground:"#908caa"}},{scope:["keyword"],settings:{foreground:"#3e8fb0"}},{scope:["markup.inserted.diff"],settings:{foreground:"#9ccfd8"}},{scope:["markup.deleted.diff"],settings:{foreground:"#eb6f92"}},{scope:["meta.diff.range"],settings:{foreground:"#c4a7e7"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#e0def4"}},{scope:["meta.import","meta.export"],settings:{foreground:"#3e8fb0"}},{scope:"meta.directive.vue",settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:"meta.property-name.css",settings:{foreground:"#9ccfd8"}},{scope:"meta.property-value.css",settings:{foreground:"#f6c177"}},{scope:"meta.tag.other.html",settings:{foreground:"#908caa"}},{scope:["punctuation"],settings:{foreground:"#908caa"}},{scope:["punctuation.accessor"],settings:{foreground:"#3e8fb0"}},{scope:["punctuation.definition.string"],settings:{foreground:"#f6c177"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#6e6a86"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#3e8fb0"}},{scope:["string"],settings:{foreground:"#f6c177"}},{scope:["support"],settings:{foreground:"#9ccfd8"}},{scope:["support.constant"],settings:{foreground:"#f6c177"}},{scope:["support.function"],settings:{foreground:"#eb6f92",fontStyle:"italic"}},{scope:["variable"],settings:{foreground:"#ea9a97",fontStyle:"italic"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#e0def4"}},{scope:["variable.parameter"],settings:{foreground:"#c4a7e7"}}],n={name:e,type:r,colors:o,tokenColors:a};export{o as colors,n as default,e as name,a as tokenColors,r as type}; diff --git a/lib/dist/theme/rose-pine.mjs b/lib/dist/theme/rose-pine.mjs new file mode 100644 index 0000000..ddd68ad --- /dev/null +++ b/lib/dist/theme/rose-pine.mjs @@ -0,0 +1 @@ +var e="rose-pine",r="dark",o={"activityBar.activeBorder":"#e0def4","activityBar.background":"#191724","activityBar.dropBorder":"#26233a","activityBar.foreground":"#e0def4","activityBar.inactiveForeground":"#908caa","activityBarBadge.background":"#ebbcba","activityBarBadge.foreground":"#191724","badge.background":"#ebbcba","badge.foreground":"#191724","banner.background":"#1f1d2e","banner.foreground":"#e0def4","banner.iconForeground":"#908caa","breadcrumb.activeSelectionForeground":"#ebbcba","breadcrumb.background":"#191724","breadcrumb.focusForeground":"#908caa","breadcrumb.foreground":"#6e6a86","breadcrumbPicker.background":"#1f1d2e","button.background":"#ebbcba","button.foreground":"#191724","button.hoverBackground":"#ebbcbae6","button.secondaryBackground":"#1f1d2e","button.secondaryForeground":"#e0def4","button.secondaryHoverBackground":"#26233a","charts.blue":"#9ccfd8","charts.foreground":"#e0def4","charts.green":"#31748f","charts.lines":"#908caa","charts.orange":"#ebbcba","charts.purple":"#c4a7e7","charts.red":"#eb6f92","charts.yellow":"#f6c177","checkbox.background":"#1f1d2e","checkbox.border":"#6e6a8633","checkbox.foreground":"#e0def4","debugExceptionWidget.background":"#1f1d2e","debugExceptionWidget.border":"#6e6a8633","debugIcon.breakpointCurrentStackframeForeground":"#908caa","debugIcon.breakpointDisabledForeground":"#908caa","debugIcon.breakpointForeground":"#908caa","debugIcon.breakpointStackframeForeground":"#908caa","debugIcon.breakpointUnverifiedForeground":"#908caa","debugIcon.continueForeground":"#908caa","debugIcon.disconnectForeground":"#908caa","debugIcon.pauseForeground":"#908caa","debugIcon.restartForeground":"#908caa","debugIcon.startForeground":"#908caa","debugIcon.stepBackForeground":"#908caa","debugIcon.stepIntoForeground":"#908caa","debugIcon.stepOutForeground":"#908caa","debugIcon.stepOverForeground":"#908caa","debugIcon.stopForeground":"#eb6f92","debugToolBar.background":"#1f1d2e","debugToolBar.border":"#26233a",descriptionForeground:"#908caa","diffEditor.border":"#26233a","diffEditor.diagonalFill":"#6e6a8666","diffEditor.insertedLineBackground":"#9ccfd826","diffEditor.insertedTextBackground":"#9ccfd826","diffEditor.removedLineBackground":"#eb6f9226","diffEditor.removedTextBackground":"#eb6f9226","diffEditorOverview.insertedForeground":"#9ccfd880","diffEditorOverview.removedForeground":"#eb6f9280","dropdown.background":"#1f1d2e","dropdown.border":"#6e6a8633","dropdown.foreground":"#e0def4","dropdown.listBackground":"#1f1d2e","editor.background":"#191724","editor.findMatchBackground":"#6e6a8666","editor.findMatchHighlightBackground":"#6e6a8666","editor.findRangeHighlightBackground":"#6e6a8666","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#6e6a8633","editor.foldBackground":"#1f1d2e","editor.foreground":"#e0def4","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#6e6a861a","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#908caa","editor.lineHighlightBackground":"#6e6a861a","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#1f1d2e","editor.rangeHighlightBackground":"#6e6a861a","editor.rangeHighlightBorder":"#0000","editor.selectionBackground":"#6e6a8633","editor.selectionForeground":"#e0def4","editor.selectionHighlightBackground":"#6e6a8633","editor.selectionHighlightBorder":"#0000","editor.snippetFinalTabstopHighlightBackground":"#6e6a8633","editor.snippetFinalTabstopHighlightBorder":"#1f1d2e","editor.snippetTabstopHighlightBackground":"#6e6a8633","editor.snippetTabstopHighlightBorder":"#1f1d2e","editor.stackFrameHighlightBackground":"#6e6a8633","editor.symbolHighlightBackground":"#6e6a8633","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#6e6a8633","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#6e6a8633","editor.wordHighlightStrongBorder":"#6e6a8633","editorBracketHighlight.foreground1":"#eb6f9280","editorBracketHighlight.foreground2":"#31748f80","editorBracketHighlight.foreground3":"#f6c17780","editorBracketHighlight.foreground4":"#9ccfd880","editorBracketHighlight.foreground5":"#ebbcba80","editorBracketHighlight.foreground6":"#c4a7e780","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#908caa","editorBracketPairGuide.activeBackground1":"#31748f","editorBracketPairGuide.activeBackground2":"#ebbcba","editorBracketPairGuide.activeBackground3":"#c4a7e7","editorBracketPairGuide.activeBackground4":"#9ccfd8","editorBracketPairGuide.activeBackground5":"#f6c177","editorBracketPairGuide.activeBackground6":"#eb6f92","editorBracketPairGuide.background1":"#31748f80","editorBracketPairGuide.background2":"#ebbcba80","editorBracketPairGuide.background3":"#c4a7e780","editorBracketPairGuide.background4":"#9ccfd880","editorBracketPairGuide.background5":"#f6c17780","editorBracketPairGuide.background6":"#eb6f9280","editorCodeLens.foreground":"#ebbcba","editorCursor.background":"#e0def4","editorCursor.foreground":"#6e6a86","editorError.border":"#0000","editorError.foreground":"#eb6f92","editorGhostText.foreground":"#908caa","editorGroup.border":"#0000","editorGroup.dropBackground":"#1f1d2e","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#9ccfd8","editorGutter.background":"#0000","editorGutter.commentRangeForeground":"#908caa","editorGutter.deletedBackground":"#eb6f92","editorGutter.foldingControlForeground":"#c4a7e7","editorGutter.modifiedBackground":"#ebbcba","editorHint.border":"#0000","editorHint.foreground":"#908caa","editorHoverWidget.background":"#1f1d2e","editorHoverWidget.border":"#6e6a8680","editorHoverWidget.foreground":"#908caa","editorHoverWidget.highlightForeground":"#e0def4","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#6e6a86","editorIndentGuide.background":"#6e6a8666","editorInfo.border":"#26233a","editorInfo.foreground":"#9ccfd8","editorInlayHint.background":"#26233a","editorInlayHint.foreground":"#908caa","editorInlayHint.parameterBackground":"#26233a","editorInlayHint.parameterForeground":"#c4a7e7","editorInlayHint.typeBackground":"#26233a","editorInlayHint.typeForeground":"#9ccfd8","editorLightBulb.foreground":"#31748f","editorLightBulbAutoFix.foreground":"#ebbcba","editorLineNumber.activeForeground":"#e0def4","editorLineNumber.foreground":"#908caa","editorLink.activeForeground":"#ebbcba","editorMarkerNavigation.background":"#1f1d2e","editorMarkerNavigationError.background":"#1f1d2e","editorMarkerNavigationInfo.background":"#1f1d2e","editorMarkerNavigationWarning.background":"#1f1d2e","editorOverviewRuler.addedForeground":"#9ccfd880","editorOverviewRuler.background":"#191724","editorOverviewRuler.border":"#6e6a8666","editorOverviewRuler.bracketMatchForeground":"#908caa","editorOverviewRuler.commonContentForeground":"#6e6a861a","editorOverviewRuler.currentContentForeground":"#6e6a8633","editorOverviewRuler.deletedForeground":"#eb6f9280","editorOverviewRuler.errorForeground":"#eb6f9280","editorOverviewRuler.findMatchForeground":"#6e6a8666","editorOverviewRuler.incomingContentForeground":"#c4a7e780","editorOverviewRuler.infoForeground":"#9ccfd880","editorOverviewRuler.modifiedForeground":"#ebbcba80","editorOverviewRuler.rangeHighlightForeground":"#6e6a8666","editorOverviewRuler.selectionHighlightForeground":"#6e6a8666","editorOverviewRuler.warningForeground":"#f6c17780","editorOverviewRuler.wordHighlightForeground":"#6e6a8633","editorOverviewRuler.wordHighlightStrongForeground":"#6e6a8666","editorPane.background":"#0000","editorRuler.foreground":"#6e6a8666","editorSuggestWidget.background":"#1f1d2e","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#ebbcba","editorSuggestWidget.foreground":"#908caa","editorSuggestWidget.highlightForeground":"#ebbcba","editorSuggestWidget.selectedBackground":"#6e6a8633","editorSuggestWidget.selectedForeground":"#e0def4","editorSuggestWidget.selectedIconForeground":"#e0def4","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#00000080","editorWarning.border":"#0000","editorWarning.foreground":"#f6c177","editorWhitespace.foreground":"#6e6a86","editorWidget.background":"#1f1d2e","editorWidget.border":"#26233a","editorWidget.foreground":"#908caa","editorWidget.resizeBorder":"#6e6a86",errorForeground:"#eb6f92","extensionBadge.remoteBackground":"#c4a7e7","extensionBadge.remoteForeground":"#191724","extensionButton.prominentBackground":"#ebbcba","extensionButton.prominentForeground":"#191724","extensionButton.prominentHoverBackground":"#ebbcbae6","extensionIcon.preReleaseForeground":"#31748f","extensionIcon.starForeground":"#ebbcba","extensionIcon.verifiedForeground":"#c4a7e7",focusBorder:"#6e6a8633",foreground:"#e0def4","gitDecoration.addedResourceForeground":"#9ccfd8","gitDecoration.conflictingResourceForeground":"#eb6f92","gitDecoration.deletedResourceForeground":"#908caa","gitDecoration.ignoredResourceForeground":"#6e6a86","gitDecoration.modifiedResourceForeground":"#ebbcba","gitDecoration.renamedResourceForeground":"#31748f","gitDecoration.stageDeletedResourceForeground":"#eb6f92","gitDecoration.stageModifiedResourceForeground":"#c4a7e7","gitDecoration.submoduleResourceForeground":"#f6c177","gitDecoration.untrackedResourceForeground":"#f6c177","icon.foreground":"#908caa","input.background":"#26233a80","input.border":"#6e6a8633","input.foreground":"#e0def4","input.placeholderForeground":"#908caa","inputOption.activeBackground":"#ebbcba","inputOption.activeBorder":"#0000","inputOption.activeForeground":"#191724","inputValidation.errorBackground":"#1f1d2e","inputValidation.errorBorder":"#6e6a8666","inputValidation.errorForeground":"#eb6f92","inputValidation.infoBackground":"#1f1d2e","inputValidation.infoBorder":"#6e6a8666","inputValidation.infoForeground":"#9ccfd8","inputValidation.warningBackground":"#1f1d2e","inputValidation.warningBorder":"#6e6a8666","inputValidation.warningForeground":"#9ccfd880","keybindingLabel.background":"#26233a","keybindingLabel.border":"#6e6a8666","keybindingLabel.bottomBorder":"#6e6a8666","keybindingLabel.foreground":"#c4a7e7","keybindingTable.headerBackground":"#26233a","keybindingTable.rowsBackground":"#1f1d2e","list.activeSelectionBackground":"#6e6a8633","list.activeSelectionForeground":"#e0def4","list.deemphasizedForeground":"#908caa","list.dropBackground":"#1f1d2e","list.errorForeground":"#eb6f92","list.filterMatchBackground":"#1f1d2e","list.filterMatchBorder":"#ebbcba","list.focusBackground":"#6e6a8666","list.focusForeground":"#e0def4","list.focusOutline":"#6e6a8633","list.highlightForeground":"#ebbcba","list.hoverBackground":"#6e6a861a","list.hoverForeground":"#e0def4","list.inactiveFocusBackground":"#6e6a861a","list.inactiveSelectionBackground":"#1f1d2e","list.inactiveSelectionForeground":"#e0def4","list.invalidItemForeground":"#eb6f92","list.warningForeground":"#f6c177","listFilterWidget.background":"#1f1d2e","listFilterWidget.noMatchesOutline":"#eb6f92","listFilterWidget.outline":"#26233a","menu.background":"#1f1d2e","menu.border":"#6e6a861a","menu.foreground":"#e0def4","menu.selectionBackground":"#6e6a8633","menu.selectionBorder":"#26233a","menu.selectionForeground":"#e0def4","menu.separatorBackground":"#6e6a8666","menubar.selectionBackground":"#6e6a8633","menubar.selectionBorder":"#6e6a861a","menubar.selectionForeground":"#e0def4","merge.border":"#26233a","merge.commonContentBackground":"#6e6a8633","merge.commonHeaderBackground":"#6e6a8633","merge.currentContentBackground":"#f6c17780","merge.currentHeaderBackground":"#f6c17780","merge.incomingContentBackground":"#9ccfd880","merge.incomingHeaderBackground":"#9ccfd880","minimap.background":"#1f1d2e","minimap.errorHighlight":"#eb6f9280","minimap.findMatchHighlight":"#6e6a8633","minimap.selectionHighlight":"#6e6a8633","minimap.warningHighlight":"#f6c17780","minimapGutter.addedBackground":"#9ccfd8","minimapGutter.deletedBackground":"#eb6f92","minimapGutter.modifiedBackground":"#ebbcba","minimapSlider.activeBackground":"#6e6a8666","minimapSlider.background":"#6e6a8633","minimapSlider.hoverBackground":"#6e6a8633","notificationCenter.border":"#6e6a8633","notificationCenterHeader.background":"#1f1d2e","notificationCenterHeader.foreground":"#908caa","notificationLink.foreground":"#c4a7e7","notifications.background":"#1f1d2e","notifications.border":"#6e6a8633","notifications.foreground":"#e0def4","notificationsErrorIcon.foreground":"#eb6f92","notificationsInfoIcon.foreground":"#9ccfd8","notificationsWarningIcon.foreground":"#f6c177","notificationToast.border":"#6e6a8633","panel.background":"#1f1d2e","panel.border":"#0000","panel.dropBorder":"#26233a","panelInput.border":"#1f1d2e","panelSection.dropBackground":"#6e6a8633","panelSectionHeader.background":"#1f1d2e","panelSectionHeader.foreground":"#e0def4","panelTitle.activeBorder":"#6e6a8666","panelTitle.activeForeground":"#e0def4","panelTitle.inactiveForeground":"#908caa","peekView.border":"#26233a","peekViewEditor.background":"#1f1d2e","peekViewEditor.matchHighlightBackground":"#6e6a8666","peekViewResult.background":"#1f1d2e","peekViewResult.fileForeground":"#908caa","peekViewResult.lineForeground":"#908caa","peekViewResult.matchHighlightBackground":"#6e6a8666","peekViewResult.selectionBackground":"#6e6a8633","peekViewResult.selectionForeground":"#e0def4","peekViewTitle.background":"#26233a","peekViewTitleDescription.foreground":"#908caa","pickerGroup.border":"#6e6a8666","pickerGroup.foreground":"#c4a7e7","ports.iconRunningProcessForeground":"#ebbcba","problemsErrorIcon.foreground":"#eb6f92","problemsInfoIcon.foreground":"#9ccfd8","problemsWarningIcon.foreground":"#f6c177","progressBar.background":"#ebbcba","quickInput.background":"#1f1d2e","quickInput.foreground":"#908caa","quickInputList.focusBackground":"#6e6a8633","quickInputList.focusForeground":"#e0def4","quickInputList.focusIconForeground":"#e0def4","scrollbar.shadow":"#0000","scrollbarSlider.activeBackground":"#31748f80","scrollbarSlider.background":"#6e6a8633","scrollbarSlider.hoverBackground":"#6e6a8666","searchEditor.findMatchBackground":"#6e6a8633","selection.background":"#6e6a8666","settings.focusedRowBackground":"#1f1d2e","settings.headerForeground":"#e0def4","settings.modifiedItemIndicator":"#ebbcba","settings.focusedRowBorder":"#6e6a8633","settings.rowHoverBackground":"#1f1d2e","sideBar.background":"#191724","sideBar.dropBackground":"#1f1d2e","sideBar.foreground":"#908caa","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#6e6a8633","statusBar.background":"#191724","statusBar.debuggingBackground":"#c4a7e7","statusBar.debuggingForeground":"#191724","statusBar.foreground":"#908caa","statusBar.noFolderBackground":"#191724","statusBar.noFolderForeground":"#908caa","statusBarItem.activeBackground":"#6e6a8666","statusBarItem.hoverBackground":"#6e6a8633","statusBarItem.prominentBackground":"#26233a","statusBarItem.prominentForeground":"#e0def4","statusBarItem.prominentHoverBackground":"#6e6a8633","statusBarItem.remoteBackground":"#191724","statusBarItem.remoteForeground":"#f6c177","statusBarItem.errorBackground":"#191724","statusBarItem.errorForeground":"#eb6f92","symbolIcon.arrayForeground":"#908caa","symbolIcon.classForeground":"#908caa","symbolIcon.colorForeground":"#908caa","symbolIcon.constantForeground":"#908caa","symbolIcon.constructorForeground":"#908caa","symbolIcon.enumeratorForeground":"#908caa","symbolIcon.enumeratorMemberForeground":"#908caa","symbolIcon.eventForeground":"#908caa","symbolIcon.fieldForeground":"#908caa","symbolIcon.fileForeground":"#908caa","symbolIcon.folderForeground":"#908caa","symbolIcon.functionForeground":"#908caa","symbolIcon.interfaceForeground":"#908caa","symbolIcon.keyForeground":"#908caa","symbolIcon.keywordForeground":"#908caa","symbolIcon.methodForeground":"#908caa","symbolIcon.moduleForeground":"#908caa","symbolIcon.namespaceForeground":"#908caa","symbolIcon.nullForeground":"#908caa","symbolIcon.numberForeground":"#908caa","symbolIcon.objectForeground":"#908caa","symbolIcon.operatorForeground":"#908caa","symbolIcon.packageForeground":"#908caa","symbolIcon.propertyForeground":"#908caa","symbolIcon.referenceForeground":"#908caa","symbolIcon.snippetForeground":"#908caa","symbolIcon.stringForeground":"#908caa","symbolIcon.structForeground":"#908caa","symbolIcon.textForeground":"#908caa","symbolIcon.typeParameterForeground":"#908caa","symbolIcon.unitForeground":"#908caa","symbolIcon.variableForeground":"#908caa","tab.activeBackground":"#6e6a861a","tab.activeForeground":"#e0def4","tab.activeModifiedBorder":"#9ccfd8","tab.border":"#0000","tab.hoverBackground":"#6e6a8633","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#908caa","tab.inactiveModifiedBorder":"#9ccfd880","tab.lastPinnedBorder":"#6e6a86","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#9ccfd880","terminal.ansiBlack":"#26233a","terminal.ansiBlue":"#9ccfd8","terminal.ansiBrightBlack":"#908caa","terminal.ansiBrightBlue":"#9ccfd8","terminal.ansiBrightCyan":"#ebbcba","terminal.ansiBrightGreen":"#31748f","terminal.ansiBrightMagenta":"#c4a7e7","terminal.ansiBrightRed":"#eb6f92","terminal.ansiBrightWhite":"#e0def4","terminal.ansiBrightYellow":"#f6c177","terminal.ansiCyan":"#ebbcba","terminal.ansiGreen":"#31748f","terminal.ansiMagenta":"#c4a7e7","terminal.ansiRed":"#eb6f92","terminal.ansiWhite":"#e0def4","terminal.ansiYellow":"#f6c177","terminal.dropBackground":"#6e6a8633","terminal.foreground":"#e0def4","terminal.selectionBackground":"#6e6a8633","terminal.tab.activeBorder":"#e0def4","terminalCursor.background":"#e0def4","terminalCursor.foreground":"#6e6a86","textBlockQuote.background":"#1f1d2e","textBlockQuote.border":"#6e6a8633","textCodeBlock.background":"#1f1d2e","textLink.activeForeground":"#c4a7e7e6","textLink.foreground":"#c4a7e7","textPreformat.foreground":"#f6c177","textSeparator.foreground":"#908caa","titleBar.activeBackground":"#191724","titleBar.activeForeground":"#908caa","titleBar.inactiveBackground":"#1f1d2e","titleBar.inactiveForeground":"#908caa","toolbar.activeBackground":"#6e6a8666","toolbar.hoverBackground":"#6e6a8633","tree.indentGuidesStroke":"#908caa","walkThrough.embeddedEditorBackground":"#191724","welcomePage.background":"#191724","welcomePage.buttonBackground":"#1f1d2e","welcomePage.buttonHoverBackground":"#26233a","widget.shadow":"#0101011a","window.activeBorder":"#1f1d2e","window.inactiveBorder":"#1f1d2e"},a=[{scope:["comment"],settings:{foreground:"#6e6a86",fontStyle:"italic"}},{scope:["constant"],settings:{foreground:"#31748f"}},{scope:["constant.numeric","constant.language","constant.charcter.escape"],settings:{foreground:"#ebbcba"}},{scope:["entity.name"],settings:{foreground:"#ebbcba"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#9ccfd8"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:["invalid"],settings:{foreground:"#eb6f92"}},{scope:["invalid.deprecated"],settings:{foreground:"#908caa"}},{scope:["keyword"],settings:{foreground:"#31748f"}},{scope:["markup.inserted.diff"],settings:{foreground:"#9ccfd8"}},{scope:["markup.deleted.diff"],settings:{foreground:"#eb6f92"}},{scope:["meta.diff.range"],settings:{foreground:"#c4a7e7"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#e0def4"}},{scope:["meta.import","meta.export"],settings:{foreground:"#31748f"}},{scope:"meta.directive.vue",settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:"meta.property-name.css",settings:{foreground:"#9ccfd8"}},{scope:"meta.property-value.css",settings:{foreground:"#f6c177"}},{scope:"meta.tag.other.html",settings:{foreground:"#908caa"}},{scope:["punctuation"],settings:{foreground:"#908caa"}},{scope:["punctuation.accessor"],settings:{foreground:"#31748f"}},{scope:["punctuation.definition.string"],settings:{foreground:"#f6c177"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#6e6a86"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#31748f"}},{scope:["string"],settings:{foreground:"#f6c177"}},{scope:["support"],settings:{foreground:"#9ccfd8"}},{scope:["support.constant"],settings:{foreground:"#f6c177"}},{scope:["support.function"],settings:{foreground:"#eb6f92",fontStyle:"italic"}},{scope:["variable"],settings:{foreground:"#ebbcba",fontStyle:"italic"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#e0def4"}},{scope:["variable.parameter"],settings:{foreground:"#c4a7e7"}}],n={name:e,type:r,colors:o,tokenColors:a};export{o as colors,n as default,e as name,a as tokenColors,r as type}; diff --git a/lib/dist/theme/slack-dark.mjs b/lib/dist/theme/slack-dark.mjs new file mode 100644 index 0000000..c84242f --- /dev/null +++ b/lib/dist/theme/slack-dark.mjs @@ -0,0 +1 @@ +var e="slack-dark",t="dark",o={"activityBarBadge.background":"#1D978D","editor.background":"#222222","editor.foreground":"#E6E6E6","editor.inactiveSelectionBackground":"#3a3d41","editor.selectionHighlightBackground":"#add6ff26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","input.placeholderForeground":"#7A7A7A","list.dropBackground":"#383b3d","list.activeSelectionBackground":"#222222","list.focusBackground":"#0077B5","menu.background":"#252526","menu.foreground":"#E6E6E6","settings.numberInputBackground":"#292929","settings.textInputBackground":"#292929","sideBarTitle.foreground":"#E6E6E6","statusBar.background":"#222222","statusBar.noFolderBackground":"#141414","statusBar.debuggingBackground":"#1D978D","list.hoverBackground":"#222222","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.untrackedResourceForeground":"#ECB22E","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","editor.lineHighlightBorder":"#141414","editor.lineHighlightBackground":"#141414","editorSuggestWidget.selectedBackground":"#0077B5","sideBarSectionHeader.background":"#222222","activityBar.background":"#222222","button.background":"#0077B5","button.foreground":"#FFF","button.hoverBackground":"#005076","extensionButton.prominentBackground":"#0077B5","extensionButton.prominentForeground":"#FFF","extensionButton.prominentHoverBackground":"#005076","debugExceptionWidget.background":"#141414","debugExceptionWidget.border":"#FFF","debugToolBar.background":"#141414","titleBar.activeBackground":"#222222","titleBar.activeForeground":"#E6E6E6","titleBar.inactiveBackground":"#222222","titleBar.inactiveForeground":"#7A7A7A",focusBorder:"#0077B5","textLink.activeForeground":"#0077B5","textLink.foreground":"#0077B5","editorLink.activeForeground":"#0077B5","notificationLink.foreground":"#0077B5"},r=[{scope:["meta.embedded","source.groovy.embedded"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.attribute.scss","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{name:"brackets of XML/HTML tags",scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:"meta.preprocessor",settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:"storage.modifier",settings:{foreground:"#569cd6"}},{scope:"string",settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.instanceof","keyword.operator.logical.python"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{name:"coloring of the Java import and package identifiers",scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#569cd6"}},{name:"Function declarations",scope:["entity.name.function","support.function","support.constant.handlebars"],settings:{foreground:"#DCDCAA"}},{name:"Types declaration and references",scope:["meta.return-type","support.class","support.type","entity.name.type","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{name:"Types declaration and references, TS grammar specific",scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{name:"Control flow keywords",scope:"keyword.control",settings:{foreground:"#C586C0"}},{name:"Variable and parameter name",scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable"],settings:{foreground:"#9CDCFE"}},{name:"Object keys, TS grammar specific",scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{name:"CSS property value",scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{name:"Regular expression groups",scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:"constant.character",settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}}],n={name:e,type:t,colors:o,tokenColors:r};export{o as colors,n as default,e as name,r as tokenColors,t as type}; diff --git a/lib/dist/theme/slack-ochin.mjs b/lib/dist/theme/slack-ochin.mjs new file mode 100644 index 0000000..f82048f --- /dev/null +++ b/lib/dist/theme/slack-ochin.mjs @@ -0,0 +1 @@ +var e="slack-ochin",n="dark",o={foreground:"#616161",focusBorder:"#161F26","widget.shadow":"#161F2694","input.background":"#FFF","input.border":"#161F26","input.foreground":"#000","input.placeholderForeground":"#a0a0a0","inputOption.activeBorder":"#3E313C","inputValidation.errorBackground":"#F44C5E","inputValidation.errorForeground":"#FFF","inputValidation.infoBackground":"#6182b8","inputValidation.infoForeground":"#FFF","inputValidation.warningBackground":"#F6B555","inputValidation.warningForeground":"#000","list.activeSelectionBackground":"#5899C5","list.activeSelectionForeground":"#fff","list.hoverBackground":"#d5e1ea","list.hoverForeground":"#fff","list.focusBackground":"#d5e1ea","list.focusForeground":"#fff","list.inactiveSelectionBackground":"#5899C5","list.inactiveSelectionForeground":"#fff","list.highlightForeground":"#2D3E4C","list.inactiveFocusBackground":"#161F26","list.invalidItemForeground":"#fff","button.background":"#475663","button.foreground":"#FFF","button.hoverBackground":"#161F26","scrollbar.shadow":"#ffffff00","scrollbarSlider.activeBackground":"#161F267e","scrollbarSlider.background":"#161F267e","scrollbarSlider.hoverBackground":"#161F267e","badge.background":"#8AE773","progressBar.background":"#8AE773","editor.background":"#FFF","editor.foreground":"#000","editor.lineHighlightBackground":"#EEEEEE","editor.wordHighlightStrongBackground":"#EEEEEE","editor.selectionBackground":"#AED4FB","editorLineNumber.foreground":"#b9b9b9","editorActiveLineNumber.foreground":"#475663","editor.findMatchBackground":"#AED4FB","editorHint.foreground":"#F9F9F9","editorHint.border":"#F9F9F9","editor.wordHighlightBackground":"#AED4FB","terminal.border":"#2D3E4C","terminal.foreground":"#161F26","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182b8","terminal.ansiBrightBlack":"#90a4ae","terminal.ansiBrightBlue":"#6182b8","terminal.ansiBrightCyan":"#39adb5","terminal.ansiBrightGreen":"#91b859","terminal.ansiBrightMagenta":"#7c4dff","terminal.ansiBrightRed":"#e53935","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffb62c","terminal.ansiCyan":"#39adb5","terminal.ansiGreen":"#91b859","terminal.ansiMagenta":"#7c4dff","terminal.ansiRed":"#e53935","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#ffb62c","terminal.selectionBackground":"#0006","panelTitle.activeForeground":"#161F26","activityBar.background":"#161F26","activityBar.foreground":"#FFF","activityBar.dropBackground":"#FFF","activityBarBadge.background":"#8AE773","activityBarBadge.foreground":"#FFF","panel.border":"#2D3E4C","dropdown.background":"#FFF","dropdown.listBackground":"#FFF","dropdown.border":"#DCDEDF","dropdown.foreground":"#DCDEDF","sideBar.background":"#2D3E4C","sideBar.foreground":"#DCDEDF","sideBarTitle.foreground":"#FFF","sideBarSectionHeader.foreground":"#FFF","sideBarSectionHeader.background":"#161F26","debugToolBar.background":"#161F26","tab.border":"#F3F3F3","tab.activeBackground":"#FFF","tab.inactiveForeground":"#686868","tab.inactiveBackground":"#F3F3F3","tab.activeForeground":"#000","editorGroupHeader.tabsBackground":"#2D3E4C","statusBar.foreground":"#FFF","statusBar.background":"#5899C5","statusBar.debuggingBackground":"#8AE773","statusBar.noFolderBackground":"#161F26","extensionButton.prominentBackground":"#475663","extensionButton.prominentForeground":"#F6F6F6","extensionButton.prominentHoverBackground":"#161F26","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.untrackedResourceForeground":"#ECB22E","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","notificationCenter.border":"#161F26","notificationToast.border":"#161F26","notifications.foreground":"#FFF","notifications.background":"#161F26","notifications.border":"#161F26","notificationCenterHeader.foreground":"#FFF","notificationLink.foreground":"#FFF","titleBar.activeBackground":"#2D3E4C","titleBar.activeForeground":"#FFF","titleBar.inactiveBackground":"#161F26","titleBar.inactiveForeground":"#685C66","titleBar.border":"#2D3E4C","welcomePage.buttonBackground":"#F3F3F3","welcomePage.buttonHoverBackground":"#ECECEC","editorWidget.background":"#F9F9F9","editorWidget.border":"#dbdbdb","editorSuggestWidget.foreground":"#2D3E4C","editorSuggestWidget.highlightForeground":"#2D3E4C","editorSuggestWidget.selectedBackground":"#b9b9b9","editorGroup.emptyBackground":"#2D3E4C","editorGroup.focusedEmptyBorder":"#2D3E4C","editorPane.background":"#2D3E4C","breadcrumb.foreground":"#161F26","breadcrumb.focusForeground":"#475663","settings.headerForeground":"#161F26","settings.dropdownForeground":"#161F26","settings.dropdownBorder":"#161F26","menu.separatorBackground":"#F9FAFA","menu.background":"#161F26","menu.foreground":"#F9FAFA","textPreformat.foreground":"#161F26","editorIndentGuide.background":"#F3F3F3","editorIndentGuide.activeBackground":"#dbdbdb","debugExceptionWidget.background":"#AED4FB","debugExceptionWidget.border":"#161F26","editorMarkerNavigation.background":"#F9F9F9","editorMarkerNavigationInfo.background":"#6182b8","editorMarkerNavigationError.background":"#F44C5E","editorMarkerNavigationWarning.background":"#F6B555"},t=[{settings:{foreground:"#002339"}},{scope:["meta.paragraph.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#110000"}},{scope:["entity.name.section.markdown","punctuation.definition.heading.markdown"],settings:{foreground:"#034c7c"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","markup.quote.markdown"],settings:{foreground:"#00AC8F"}},{scope:["markup.quote.markdown"],settings:{fontStyle:"italic",foreground:"#003494"}},{scope:["markup.bold.markdown","punctuation.definition.bold.markdown"],settings:{fontStyle:"bold",foreground:"#4e76b5"}},{scope:["markup.italic.markdown","punctuation.definition.italic.markdown"],settings:{fontStyle:"italic",foreground:"#C792EA"}},{scope:["markup.inline.raw.string.markdown","markup.fenced_code.block.markdown"],settings:{fontStyle:"italic",foreground:"#0460b1"}},{scope:["punctuation.definition.metadata.markdown"],settings:{foreground:"#00AC8F"}},{scope:["markup.underline.link.image.markdown","markup.underline.link.markdown"],settings:{foreground:"#924205"}},{name:"Comment",scope:"comment",settings:{fontStyle:"italic",foreground:"#357b42"}},{name:"String",scope:"string",settings:{foreground:"#a44185"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#174781"}},{name:"Constant",scope:"constant",settings:{foreground:"#174781"}},{name:"Built-in constant",scope:"language.method",settings:{foreground:"#174781"}},{name:"User-defined constant",scope:["constant.character","constant.other"],settings:{foreground:"#174781"}},{name:"Variable",scope:"variable",settings:{fontStyle:"",foreground:"#2f86d2"}},{name:"Variable",scope:"variable.language.this",settings:{fontStyle:"",foreground:"#000000"}},{name:"Keyword",scope:"keyword",settings:{fontStyle:"",foreground:"#7b30d0"}},{name:"Storage",scope:"storage",settings:{fontStyle:"",foreground:"#da5221"}},{name:"Storage type",scope:"storage.type",settings:{foreground:"#0991b6",fontStyle:""}},{name:"Class name",scope:"entity.name.class",settings:{foreground:"#1172c7"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{fontStyle:"",foreground:"#b02767"}},{name:"Function name",scope:"entity.name.function",settings:{fontStyle:"",foreground:"#7eb233"}},{name:"Function argument",scope:"variable.parameter",settings:{foreground:"#b1108e",fontStyle:""}},{name:"Tag name",scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#0444ac"}},{name:"Html Other",scope:"text.html.basic",settings:{fontStyle:"",foreground:"#0071ce"}},{name:"Entity Name Type",scope:"entity.name.type",settings:{foreground:"#0444ac"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{fontStyle:"italic",foreground:"#df8618"}},{name:"Library function",scope:"support.function",settings:{fontStyle:"",foreground:"#1ab394"}},{name:"Library constant",scope:"support.constant",settings:{fontStyle:"",foreground:"#174781"}},{name:"Library class/type",scope:["support.type","support.class"],settings:{foreground:"#dc3eb7"}},{name:"Library variable",scope:"support.other.variable",settings:{foreground:"#224555"}},{name:"Invalid",scope:"invalid",settings:{fontStyle:" italic bold underline",foreground:"#207bb8"}},{name:"Invalid deprecated",scope:"invalid.deprecated",settings:{foreground:"#207bb8",fontStyle:" bold italic underline"}},{name:"[JSON] - Support",scope:"source.json support",settings:{foreground:"#6dbdfa"}},{name:"[JSON] - String",scope:["source.json string","source.json punctuation.definition.string"],settings:{foreground:"#00820f"}},{name:"Lists",scope:"markup.list",settings:{foreground:"#207bb8"}},{name:"Headings",scope:["markup.heading punctuation.definition.heading","entity.name.section"],settings:{fontStyle:"",foreground:"#4FB4D8"}},{name:"Support",scope:["text.html.markdown meta.paragraph meta.link.inline","text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.begin.markdown","text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.end.markdown"],settings:{foreground:"#87429A"}},{name:"Quotes",scope:"markup.quote",settings:{foreground:"#87429A"}},{name:"Bold",scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#08134A"}},{name:"Italic",scope:["markup.italic","punctuation.definition.italic"],settings:{fontStyle:"italic",foreground:"#174781"}},{name:"Link Url",scope:"meta.link",settings:{foreground:"#87429A"}}],r={name:e,type:n,colors:o,tokenColors:t};export{o as colors,r as default,e as name,t as tokenColors,n as type}; diff --git a/lib/dist/theme/solarized-dark.mjs b/lib/dist/theme/solarized-dark.mjs new file mode 100644 index 0000000..687c0e6 --- /dev/null +++ b/lib/dist/theme/solarized-dark.mjs @@ -0,0 +1 @@ +var e="solarized-dark",t=[{settings:{foreground:"#839496"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#839496"}},{name:"Comment",scope:"comment",settings:{fontStyle:"italic",foreground:"#586E75"}},{name:"String",scope:"string",settings:{foreground:"#2AA198"}},{name:"Regexp",scope:"string.regexp",settings:{foreground:"#DC322F"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#D33682"}},{name:"Variable",scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#859900"}},{name:"Storage",scope:"storage",settings:{fontStyle:"bold",foreground:"#93A1A1"}},{name:"Class name",scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"Function name",scope:"entity.name.function",settings:{foreground:"#268BD2"}},{name:"Variable start",scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{name:"Embedded code markers",scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{name:"Built-in constant",scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{name:"Support.construct",scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{name:"User-defined constant",scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{name:"Function argument",scope:"variable.parameter",settings:{}},{name:"Tag name",scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{name:"Tag start/end",scope:"punctuation.definition.tag",settings:{foreground:"#586E75"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{name:"Library function",scope:"support.function",settings:{foreground:"#268BD2"}},{name:"Continuation",scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{name:"Library constant",scope:["support.constant","support.variable"],settings:{}},{name:"Library class/type",scope:["support.type","support.class"],settings:{foreground:"#859900"}},{name:"Library Exception",scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{name:"Library variable",scope:"support.other.variable",settings:{}},{name:"Invalid",scope:"invalid",settings:{foreground:"#DC322F"}},{name:"diff: header",scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{name:"diff: deleted",scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{name:"diff: changed",scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"diff: inserted",scope:"markup.inserted",settings:{foreground:"#859900"}},{name:"Markup Quote",scope:"markup.quote",settings:{foreground:"#859900"}},{name:"Markup Lists",scope:"markup.list",settings:{foreground:"#B58900"}},{name:"Markup Styling",scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{name:"Markup: Strong",scope:"markup.bold",settings:{fontStyle:"bold"}},{name:"Markup: Emphasis",scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{name:"Markup Inline",scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{name:"Markup Headings",scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{name:"Markup Setext Header",scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],n={focusBorder:"#2AA19899","selection.background":"#2AA19899","input.background":"#003847","input.foreground":"#93A1A1","input.placeholderForeground":"#93A1A1AA","inputOption.activeBorder":"#2AA19899","inputValidation.infoBorder":"#363b5f","inputValidation.infoBackground":"#052730","inputValidation.warningBackground":"#5d5938","inputValidation.warningBorder":"#9d8a5e","inputValidation.errorBackground":"#571b26","inputValidation.errorBorder":"#a92049",errorForeground:"#ffeaea","badge.background":"#047aa6","progressBar.background":"#047aa6","dropdown.background":"#00212B","dropdown.border":"#2AA19899","button.background":"#2AA19899","list.activeSelectionBackground":"#005A6F","quickInputList.focusBackground":"#005A6F","list.hoverBackground":"#004454AA","list.inactiveSelectionBackground":"#00445488","list.dropBackground":"#00445488","list.highlightForeground":"#1ebcc5","editor.background":"#002B36","editor.foreground":"#839496","editorWidget.background":"#00212B","editorCursor.foreground":"#D30102","editorWhitespace.foreground":"#93A1A180","editor.lineHighlightBackground":"#073642","editorLineNumber.activeForeground":"#949494","editor.selectionBackground":"#274642","minimap.selectionHighlight":"#274642","editorIndentGuide.background":"#93A1A180","editorIndentGuide.activeBackground":"#C3E1E180","editorHoverWidget.background":"#004052","editorMarkerNavigationError.background":"#AB395B","editorMarkerNavigationWarning.background":"#5B7E7A","editor.selectionHighlightBackground":"#005A6FAA","editor.wordHighlightBackground":"#004454AA","editor.wordHighlightStrongBackground":"#005A6FAA","editorBracketHighlight.foreground1":"#cdcdcdff","editorBracketHighlight.foreground2":"#b58900ff","editorBracketHighlight.foreground3":"#d33682ff","peekViewResult.background":"#00212B","peekViewEditor.background":"#10192c","peekViewTitle.background":"#00212B","peekView.border":"#2b2b4a","peekViewEditor.matchHighlightBackground":"#7744AA40","titleBar.activeBackground":"#002C39","editorGroup.border":"#00212B","editorGroup.dropBackground":"#2AA19844","editorGroupHeader.tabsBackground":"#004052","tab.activeForeground":"#d6dbdb","tab.activeBackground":"#002B37","tab.inactiveForeground":"#93A1A1","tab.inactiveBackground":"#004052","tab.border":"#003847","tab.lastPinnedBorder":"#2AA19844","activityBar.background":"#003847","panel.border":"#2b2b4a","sideBar.background":"#00212B","sideBarTitle.foreground":"#93A1A1","statusBar.foreground":"#93A1A1","statusBar.background":"#00212B","statusBar.debuggingBackground":"#00212B","statusBar.noFolderBackground":"#00212B","statusBarItem.remoteBackground":"#2AA19899","ports.iconRunningProcessForeground":"#369432","statusBarItem.prominentBackground":"#003847","statusBarItem.prominentHoverBackground":"#003847","debugToolBar.background":"#00212B","debugExceptionWidget.background":"#00212B","debugExceptionWidget.border":"#AB395B","pickerGroup.foreground":"#2AA19899","pickerGroup.border":"#2AA19899","terminal.ansiBlack":"#073642","terminal.ansiRed":"#dc322f","terminal.ansiGreen":"#859900","terminal.ansiYellow":"#b58900","terminal.ansiBlue":"#268bd2","terminal.ansiMagenta":"#d33682","terminal.ansiCyan":"#2aa198","terminal.ansiWhite":"#eee8d5","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightYellow":"#657b83","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightWhite":"#fdf6e3"},r=!0,o={name:e,tokenColors:t,colors:n,semanticHighlighting:true};export{n as colors,o as default,e as name,r as semanticHighlighting,t as tokenColors}; diff --git a/lib/dist/theme/solarized-light.mjs b/lib/dist/theme/solarized-light.mjs new file mode 100644 index 0000000..052f6f8 --- /dev/null +++ b/lib/dist/theme/solarized-light.mjs @@ -0,0 +1 @@ +var e="solarized-light",t=[{settings:{foreground:"#657B83"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#657B83"}},{name:"Comment",scope:"comment",settings:{fontStyle:"italic",foreground:"#93A1A1"}},{name:"String",scope:"string",settings:{foreground:"#2AA198"}},{name:"Regexp",scope:"string.regexp",settings:{foreground:"#DC322F"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#D33682"}},{name:"Variable",scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#859900"}},{name:"Storage",scope:"storage",settings:{fontStyle:"bold",foreground:"#586E75"}},{name:"Class name",scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"Function name",scope:"entity.name.function",settings:{foreground:"#268BD2"}},{name:"Variable start",scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{name:"Embedded code markers",scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{name:"Built-in constant",scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{name:"Support.construct",scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{name:"User-defined constant",scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{name:"Function argument",scope:"variable.parameter",settings:{}},{name:"Tag name",scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{name:"Tag start/end",scope:"punctuation.definition.tag",settings:{foreground:"#93A1A1"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{name:"Library function",scope:"support.function",settings:{foreground:"#268BD2"}},{name:"Continuation",scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{name:"Library constant",scope:["support.constant","support.variable"],settings:{}},{name:"Library class/type",scope:["support.type","support.class"],settings:{foreground:"#859900"}},{name:"Library Exception",scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{name:"Library variable",scope:"support.other.variable",settings:{}},{name:"Invalid",scope:"invalid",settings:{foreground:"#DC322F"}},{name:"diff: header",scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{name:"diff: deleted",scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{name:"diff: changed",scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"diff: inserted",scope:"markup.inserted",settings:{foreground:"#859900"}},{name:"Markup Quote",scope:"markup.quote",settings:{foreground:"#859900"}},{name:"Markup Lists",scope:"markup.list",settings:{foreground:"#B58900"}},{name:"Markup Styling",scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{name:"Markup: Strong",scope:"markup.bold",settings:{fontStyle:"bold"}},{name:"Markup: Emphasis",scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{name:"Markup Inline",scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{name:"Markup Headings",scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{name:"Markup Setext Header",scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],n={focusBorder:"#b49471","input.background":"#DDD6C1","input.foreground":"#586E75","input.placeholderForeground":"#586E75AA","inputOption.activeBorder":"#D3AF86","badge.background":"#B58900AA","progressBar.background":"#B58900","dropdown.background":"#EEE8D5","dropdown.border":"#D3AF86","button.background":"#AC9D57","selection.background":"#878b9180","list.activeSelectionBackground":"#DFCA88","list.activeSelectionForeground":"#6C6C6C","quickInputList.focusBackground":"#DFCA8866","list.hoverBackground":"#DFCA8844","list.inactiveSelectionBackground":"#D1CBB8","list.highlightForeground":"#B58900","editor.background":"#FDF6E3","editor.foreground":"#657B83","notebook.cellEditorBackground":"#F7F0E0","editorWidget.background":"#EEE8D5","editorCursor.foreground":"#657B83","editorWhitespace.foreground":"#586E7580","editor.lineHighlightBackground":"#EEE8D5","editor.selectionBackground":"#EEE8D5","minimap.selectionHighlight":"#EEE8D5","editorIndentGuide.background":"#586E7580","editorIndentGuide.activeBackground":"#081E2580","editorHoverWidget.background":"#CCC4B0","editorLineNumber.activeForeground":"#567983","peekViewResult.background":"#EEE8D5","peekViewEditor.background":"#FFFBF2","peekViewTitle.background":"#EEE8D5","peekView.border":"#B58900","peekViewEditor.matchHighlightBackground":"#7744AA40","titleBar.activeBackground":"#EEE8D5","editorGroup.border":"#DDD6C1","editorGroup.dropBackground":"#DDD6C1AA","editorGroupHeader.tabsBackground":"#D9D2C2","tab.border":"#DDD6C1","tab.activeBackground":"#FDF6E3","tab.inactiveForeground":"#586E75","tab.inactiveBackground":"#D3CBB7","tab.activeModifiedBorder":"#cb4b16","tab.lastPinnedBorder":"#FDF6E3","activityBar.background":"#DDD6C1","activityBar.foreground":"#584c27","activityBarBadge.background":"#B58900","panel.border":"#DDD6C1","sideBar.background":"#EEE8D5","sideBarTitle.foreground":"#586E75","statusBar.foreground":"#586E75","statusBar.background":"#EEE8D5","statusBar.debuggingBackground":"#EEE8D5","statusBar.noFolderBackground":"#EEE8D5","statusBarItem.remoteBackground":"#AC9D57","ports.iconRunningProcessForeground":"#2AA19899","statusBarItem.prominentBackground":"#DDD6C1","statusBarItem.prominentHoverBackground":"#DDD6C199","debugToolBar.background":"#DDD6C1","debugExceptionWidget.background":"#DDD6C1","debugExceptionWidget.border":"#AB395B","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","extensionButton.prominentBackground":"#b58900","extensionButton.prominentHoverBackground":"#584c27aa","terminal.ansiBlack":"#073642","terminal.ansiRed":"#dc322f","terminal.ansiGreen":"#859900","terminal.ansiYellow":"#b58900","terminal.ansiBlue":"#268bd2","terminal.ansiMagenta":"#d33682","terminal.ansiCyan":"#2aa198","terminal.ansiWhite":"#eee8d5","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightYellow":"#657b83","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightWhite":"#fdf6e3","terminal.background":"#FDF6E3","walkThrough.embeddedEditorBackground":"#00000014"},r=!0,o={name:e,tokenColors:t,colors:n,semanticHighlighting:true};export{n as colors,o as default,e as name,r as semanticHighlighting,t as tokenColors}; diff --git a/lib/tm-themes/dark-plus.json b/lib/themes/dark-plus.json similarity index 100% rename from lib/tm-themes/dark-plus.json rename to lib/themes/dark-plus.json diff --git a/lib/tm-themes/dracula-soft.json b/lib/themes/dracula-soft.json similarity index 100% rename from lib/tm-themes/dracula-soft.json rename to lib/themes/dracula-soft.json diff --git a/lib/tm-themes/dracula.json b/lib/themes/dracula.json similarity index 100% rename from lib/tm-themes/dracula.json rename to lib/themes/dracula.json diff --git a/lib/tm-themes/github-dark-dimmed.json b/lib/themes/github-dark-dimmed.json similarity index 100% rename from lib/tm-themes/github-dark-dimmed.json rename to lib/themes/github-dark-dimmed.json diff --git a/lib/tm-themes/github-dark.json b/lib/themes/github-dark.json similarity index 100% rename from lib/tm-themes/github-dark.json rename to lib/themes/github-dark.json diff --git a/lib/tm-themes/github-from-css.css b/lib/themes/github-from-css.css similarity index 100% rename from lib/tm-themes/github-from-css.css rename to lib/themes/github-from-css.css diff --git a/lib/tm-themes/github-from-css.json b/lib/themes/github-from-css.json similarity index 100% rename from lib/tm-themes/github-from-css.json rename to lib/themes/github-from-css.json diff --git a/lib/tm-themes/github-light.json b/lib/themes/github-light.json similarity index 100% rename from lib/tm-themes/github-light.json rename to lib/themes/github-light.json diff --git a/lib/tm-themes/light-plus.json b/lib/themes/light-plus.json similarity index 100% rename from lib/tm-themes/light-plus.json rename to lib/themes/light-plus.json diff --git a/lib/tm-themes/material-darker.json b/lib/themes/material-darker.json similarity index 100% rename from lib/tm-themes/material-darker.json rename to lib/themes/material-darker.json diff --git a/lib/tm-themes/material-default.json b/lib/themes/material-default.json similarity index 100% rename from lib/tm-themes/material-default.json rename to lib/themes/material-default.json diff --git a/lib/tm-themes/material-from-css.css b/lib/themes/material-from-css.css similarity index 100% rename from lib/tm-themes/material-from-css.css rename to lib/themes/material-from-css.css diff --git a/lib/tm-themes/material-from-css.json b/lib/themes/material-from-css.json similarity index 100% rename from lib/tm-themes/material-from-css.json rename to lib/themes/material-from-css.json diff --git a/lib/tm-themes/material-lighter.json b/lib/themes/material-lighter.json similarity index 100% rename from lib/tm-themes/material-lighter.json rename to lib/themes/material-lighter.json diff --git a/lib/tm-themes/material-ocean.json b/lib/themes/material-ocean.json similarity index 100% rename from lib/tm-themes/material-ocean.json rename to lib/themes/material-ocean.json diff --git a/lib/tm-themes/material-palenight.json b/lib/themes/material-palenight.json similarity index 100% rename from lib/tm-themes/material-palenight.json rename to lib/themes/material-palenight.json diff --git a/lib/tm-themes/min-dark.json b/lib/themes/min-dark.json similarity index 100% rename from lib/tm-themes/min-dark.json rename to lib/themes/min-dark.json diff --git a/lib/tm-themes/min-light.json b/lib/themes/min-light.json similarity index 100% rename from lib/tm-themes/min-light.json rename to lib/themes/min-light.json diff --git a/lib/tm-themes/monokai.json b/lib/themes/monokai.json similarity index 100% rename from lib/tm-themes/monokai.json rename to lib/themes/monokai.json diff --git a/lib/tm-themes/nord.json b/lib/themes/nord.json similarity index 100% rename from lib/tm-themes/nord.json rename to lib/themes/nord.json diff --git a/lib/tm-themes/one-dark-pro.json b/lib/themes/one-dark-pro.json similarity index 100% rename from lib/tm-themes/one-dark-pro.json rename to lib/themes/one-dark-pro.json diff --git a/lib/tm-themes/poimandres.json b/lib/themes/poimandres.json similarity index 100% rename from lib/tm-themes/poimandres.json rename to lib/themes/poimandres.json diff --git a/lib/tm-themes/rose-pine-dawn.json b/lib/themes/rose-pine-dawn.json similarity index 100% rename from lib/tm-themes/rose-pine-dawn.json rename to lib/themes/rose-pine-dawn.json diff --git a/lib/tm-themes/rose-pine-moon.json b/lib/themes/rose-pine-moon.json similarity index 100% rename from lib/tm-themes/rose-pine-moon.json rename to lib/themes/rose-pine-moon.json diff --git a/lib/tm-themes/rose-pine.json b/lib/themes/rose-pine.json similarity index 100% rename from lib/tm-themes/rose-pine.json rename to lib/themes/rose-pine.json diff --git a/lib/tm-themes/slack-dark.json b/lib/themes/slack-dark.json similarity index 100% rename from lib/tm-themes/slack-dark.json rename to lib/themes/slack-dark.json diff --git a/lib/tm-themes/slack-ochin.json b/lib/themes/slack-ochin.json similarity index 100% rename from lib/tm-themes/slack-ochin.json rename to lib/themes/slack-ochin.json diff --git a/lib/tm-themes/solarized-dark.json b/lib/themes/solarized-dark.json similarity index 100% rename from lib/tm-themes/solarized-dark.json rename to lib/themes/solarized-dark.json diff --git a/lib/tm-themes/solarized-light.json b/lib/themes/solarized-light.json similarity index 100% rename from lib/tm-themes/solarized-light.json rename to lib/themes/solarized-light.json From 3f10b8e54b59d09cfaf9bbcea3a3c2514f369654 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo <pombopombopombo@gmail.com> Date: Fri, 2 Aug 2024 17:33:29 +0200 Subject: [PATCH 6/9] Replace file system with dynamic imports --- lib/dist/browser.esm.mjs | 2 +- lib/dist/grammar/txt.mjs | 1 + lib/dist/index.d.ts | 2 +- lib/dist/index.esm.mjs | 2 +- lib/dist/txt.mjs | 1 + lib/dist/worker.esm.mjs | 2 +- lib/grammars/txt.json | 32 - lib/package.json | 30 +- lib/rollup.config.js | 23 +- lib/src/dynamic-imports.ts | 493 +++++++ lib/src/file-system.browser.ts | 6 +- lib/src/file-system.ts | 30 +- lib/src/grammars.ts | 19 +- lib/src/language-data.ts | 1733 ++++++++++++------------- lib/src/network.browser.ts | 4 + lib/src/network.ts | 1 + lib/src/resolve/index.js | 327 ----- lib/src/theme.ts | 4 +- lib/tsconfig.json | 3 +- lib/utils/01.dynamic-imports.mjs | 45 + lib/utils/02.language-data.mjs | 107 ++ lib/utils/1.download-grammars.mjs | 31 - lib/utils/2.update-languages.mjs | 106 -- lib/utils/3.update-languages-data.mjs | 86 -- lib/utils/grammars.mjs | 17 + lib/utils/themes.mjs | 9 + lib/utils/update.mjs | 13 +- yarn.lock | 5 + 28 files changed, 1574 insertions(+), 1560 deletions(-) create mode 100644 lib/dist/grammar/txt.mjs create mode 100644 lib/dist/txt.mjs delete mode 100644 lib/grammars/txt.json create mode 100644 lib/src/dynamic-imports.ts delete mode 100644 lib/src/resolve/index.js create mode 100644 lib/utils/01.dynamic-imports.mjs create mode 100644 lib/utils/02.language-data.mjs delete mode 100644 lib/utils/1.download-grammars.mjs delete mode 100644 lib/utils/2.update-languages.mjs delete mode 100644 lib/utils/3.update-languages-data.mjs create mode 100644 lib/utils/grammars.mjs create mode 100644 lib/utils/themes.mjs diff --git a/lib/dist/browser.esm.mjs b/lib/dist/browser.esm.mjs index 8902f04..44833de 100644 --- a/lib/dist/browser.esm.mjs +++ b/lib/dist/browser.esm.mjs @@ -1 +1 @@ -async function A(A,B){throw new Error("no fs")}async function B(A){const B=await fetch(`https://lighter.codehike.org/${A}.json`);return await B.json()}const Q=A=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(A),g=(A,B)=>A.match(new RegExp(`.{${B}}`,"g")),E=A=>parseInt(A.repeat(2/A.length),16);function C(A,B){return void 0!==A?A/255:"number"!=typeof B||B<0||B>1?1:B}function I(A,B){if(!A)return A;const{r:I,g:D,b:w,a:o}=function(A){if(!A)return;if(!Q(A))throw new Error("Invalid color string, must be a valid hex color");const B=Math.floor((A.length-1)/3),I=g(A.slice(1),B),[D,w,o,s]=I.map(E);return{r:D,g:w,b:o,a:C(s,1)}}(A);return function(A){if(!A)return;const{r:B,g:Q,b:g,a:E}=A,C=Math.round(255*E);return`#${B.toString(16).padStart(2,"0")}${Q.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${C.toString(16).padStart(2,"0")}`}({r:I,g:D,b:w,a:o*B})}function D(A,B){const Q=A.colors||{};if(Q[B])return Q[B];const g=o[B];if(!g)throw new Error(`Unknown theme color key: ${B}`);return"string"==typeof g?D(A,g):function(A,B){const Q=B[A.type];if(Array.isArray(Q)){const[B,g,...E]=Q;return B(D(A,g),...E)}return Q}(A,g)}const w="#6FC3DF",o={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:w},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[I,"tab.activeForeground",.5],light:[I,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:w},"tab.activeBorderTop":{hc:w},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:w},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:w},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:w},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[I,"editor.background",.9],light:[I,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},s=new Map,e=new Map;async function c(Q){if("string"==typeof Q){const g=Q;if(!M.includes(g))throw new h(g);if(!s.has(g)){const Q=async function(Q){try{return await A()}catch(A){return await B(`themes/${Q}`)}}(g).then((A=>(e.set(g,A),A)));s.set(g,Q)}return s.get(g)}return Q}function i(A){let B=null;if("string"==typeof A){if(B=e.get(A),!B)throw new Error("Syntax highlighting error: theme not loaded")}else B=A;return function(A){if(!A)return;const B=A.settings||A.tokenColors||[],Q={name:A.name||"unknown-theme",type:t(A),foreground:"",background:"",settings:B,colors:A.colors||{},colorNames:A.colorNames},g=B.find((A=>!A.scope));if(g){const{foreground:A,background:B}=(null==g?void 0:g.settings)||{},E={};A&&!Q.colors["editor.foreground"]&&(E["editor.foreground"]=A),B&&!Q.colors["editor.background"]&&(E["editor.background"]=B),Object.keys(E).length>0&&(Q.colors=Object.assign(Object.assign({},Q.colors),E)),Q.foreground=A,Q.background=B}g||(Q.settings=[{settings:{foreground:D(Q,"editor.foreground"),background:D(Q,"editor.background")}},...Q.settings]);if(Q.background=Q.background||D(Q,"editor.background"),Q.foreground=Q.foreground||D(Q,"editor.foreground"),"from-css"===A.type&&!Q.colorNames){const A={};let B=0;Q.settings=Q.settings.map((Q=>{const g=Object.assign(Object.assign({},Q),{settings:Object.assign({},Q.settings)}),{foreground:E,background:C}=g.settings||{};return E&&!A[E]&&(A[E]=`#${B.toString(16).padStart(6,"0")}`,B++),C&&!A[C]&&(A[C]=`#${B.toString(16).padStart(6,"0")}`,B++),E&&(g.settings.foreground=A[E]),C&&(g.settings.background=A[C]),g})),Q.colorNames=A}return Q}(B)}function t(A){var B;if("from-css"===A.type)return"from-css";return"light"===(A.type?A.type:(null===(B=A.name)||void 0===B?void 0:B.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const M=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class h extends Error{constructor(A){super(`Unknown theme: ${A}`),this.theme=A}}function a(A){const B=B=>"colorScheme"===B?function(A){return"from-css"===A.type?"var(--ch-0)":A.type}(A):"foreground"===B?A.foreground:"background"===B?A.background:D(A,B);return{colorScheme:B("colorScheme"),foreground:B("foreground"),background:B("background"),lighter:{inlineBackground:B("lighter.inlineBackground")},editor:{background:B("editor.background"),foreground:B("editor.foreground"),lineHighlightBackground:B("editor.lineHighlightBackground"),rangeHighlightBackground:B("editor.rangeHighlightBackground"),infoForeground:B("editor.infoForeground"),selectionBackground:B("editor.selectionBackground")},focusBorder:B("focusBorder"),tab:{activeBackground:B("tab.activeBackground"),activeForeground:B("tab.activeForeground"),inactiveBackground:B("tab.inactiveBackground"),inactiveForeground:B("tab.inactiveForeground"),border:B("tab.border"),activeBorder:B("tab.activeBorder"),activeBorderTop:B("tab.activeBorderTop")},editorGroup:{border:B("editorGroup.border")},editorGroupHeader:{tabsBackground:B("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:B("editorLineNumber.foreground")},input:{background:B("input.background"),foreground:B("input.foreground"),border:B("input.border")},icon:{foreground:B("icon.foreground")},sideBar:{background:B("sideBar.background"),foreground:B("sideBar.foreground"),border:B("sideBar.border")},list:{activeSelectionBackground:B("list.activeSelectionBackground"),activeSelectionForeground:B("list.activeSelectionForeground"),hoverBackground:B("list.hoverBackground"),hoverForeground:B("list.hoverForeground")}}}const F=["abap","actionscript-3","ada","apache","apex","apl","applescript","ara","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","cadence","cdc","clarity","clj","clojure","cmake","cmd","cobol","codeql","coffee","console","cpp","crystal","cs","csharp","css","cue","cypher","d","dart","dax","diff","docker","dockerfile","dream-maker","elixir","elm","erb","erl","erlang","f#","fish","fs","fsharp","fsl","gdresource","gdscript","gdshader","gherkin","git-commit","git-rebase","glimmer-js","glimmer-ts","glsl","gnuplot","go","graphql","groovy","hack","haml","handlebars","haskell","hbs","hcl","hjson","hlsl","hs","html","http","imba","ini","jade","java","javascript","jinja-html","jison","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kusto","latex","less","liquid","lisp","logo","lua","make","makefile","markdown","marko","matlab","md","mdx","mermaid","narrat","nextflow","nginx","nim","nix","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","polar","postcss","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","r","raku","razor","rb","reg","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","sparql","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","tasl","tcl","terminal","tex","text","toml","ts","tsx","turtle","twig","txt","typescript","v","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vyper","wasm","wenyan","wgsl","wolfram","xml","xsl","yaml","yml","zenscript","zsh","文言"],n={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",cpp:"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",cue:"source.cue",cypher:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile","dream-maker":"source.dm",elixir:"source.elixir",elm:"source.elm",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fish:"source.fish",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase","glimmer-js":"source.gjs","glimmer-ts":"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic",http:"source.http",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js","jinja-html":"text.html.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",kotlin:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",less:"source.css.less",liquid:"text.html.liquid",lisp:"source.lisp",logo:"source.logo",lua:"source.lua",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdx:"source.mdx",mermaid:"source.mermaid",narrat:"source.narrat",nextflow:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",polar:"source.polar",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",r:"source.r",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",console:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",sparql:"source.sparql",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",tasl:"source.tasl",tcl:"source.tcl",tex:"text.tex",toml:"source.toml",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",v:"source.v",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml","vue-html":"text.html.vue-html",vue:"source.vue",vyper:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wolfram:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript"},G={"source.abap":{id:"abap",path:"abap.tmLanguage.json",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",path:"actionscript-3.tmLanguage.json",embeddedScopes:[]},"source.ada":{id:"ada",path:"ada.tmLanguage.json",embeddedScopes:[]},"source.apacheconf":{id:"apache",path:"apache.tmLanguage.json",embeddedScopes:[]},"source.apex":{id:"apex",path:"apex.tmLanguage.json",embeddedScopes:[]},"source.apl":{id:"apl",path:"apl.tmLanguage.json",embeddedScopes:["source.java","source.json","source.js","source.css","text.xml","text.html.basic"]},"source.applescript":{id:"applescript",path:"applescript.tmLanguage.json",embeddedScopes:[]},"source.ara":{id:"ara",path:"ara.tmLanguage.json",embeddedScopes:[]},"source.asm.x86_64":{id:"asm",path:"asm.tmLanguage.json",embeddedScopes:[]},"source.astro":{id:"astro",path:"astro.tmLanguage.json",embeddedScopes:["source.tsx","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.ts","source.js","source.json"]},"source.awk":{id:"awk",path:"awk.tmLanguage.json",embeddedScopes:[]},"source.ballerina":{id:"ballerina",path:"ballerina.tmLanguage.json",embeddedScopes:[]},"source.batchfile":{id:"bat",path:"bat.tmLanguage.json",embeddedScopes:[]},"text.beancount":{id:"beancount",path:"beancount.tmLanguage.json",embeddedScopes:[]},"source.berry":{id:"berry",path:"berry.tmLanguage.json",embeddedScopes:[]},"text.bibtex":{id:"bibtex",path:"bibtex.tmLanguage.json",embeddedScopes:[]},"source.bicep":{id:"bicep",path:"bicep.tmLanguage.json",embeddedScopes:[]},"text.html.php.blade":{id:"blade",path:"blade.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.c":{id:"c",path:"c.tmLanguage.json",embeddedScopes:[]},"source.cadence":{id:"cadence",path:"cadence.tmLanguage.json",embeddedScopes:[]},"source.clar":{id:"clarity",path:"clarity.tmLanguage.json",embeddedScopes:[]},"source.clojure":{id:"clojure",path:"clojure.tmLanguage.json",embeddedScopes:[]},"source.cmake":{id:"cmake",path:"cmake.tmLanguage.json",embeddedScopes:[]},"source.cobol":{id:"cobol",path:"cobol.tmLanguage.json",embeddedScopes:["source.css","source.js","source.java","text.html.basic","source.sql"]},"source.ql":{id:"codeql",path:"codeql.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.coffee":{id:"coffee",path:"coffee.tmLanguage.json",embeddedScopes:["source.js"]},"source.cpp":{id:"cpp",path:"cpp.tmLanguage.json",embeddedScopes:["source.c","source.sql","source.glsl"]},"source.crystal":{id:"crystal",path:"crystal.tmLanguage.json",embeddedScopes:["source.shell","source.js","source.c","source.css","source.sql","text.html.basic"]},"source.cs":{id:"csharp",path:"csharp.tmLanguage.json",embeddedScopes:[]},"source.css":{id:"css",path:"css.tmLanguage.json",embeddedScopes:[]},"source.cue":{id:"cue",path:"cue.tmLanguage.json",embeddedScopes:[]},"source.cypher":{id:"cypher",path:"cypher.tmLanguage.json",embeddedScopes:[]},"source.d":{id:"d",path:"d.tmLanguage.json",embeddedScopes:[]},"source.dart":{id:"dart",path:"dart.tmLanguage.json",embeddedScopes:[]},"source.dax":{id:"dax",path:"dax.tmLanguage.json",embeddedScopes:[]},"source.diff":{id:"diff",path:"diff.tmLanguage.json",embeddedScopes:[]},"source.dockerfile":{id:"docker",path:"docker.tmLanguage.json",embeddedScopes:[]},"source.dm":{id:"dream-maker",path:"dream-maker.tmLanguage.json",embeddedScopes:[]},"source.elixir":{id:"elixir",path:"elixir.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.elm":{id:"elm",path:"elm.tmLanguage.json",embeddedScopes:["source.c","source.glsl"]},"text.html.erb":{id:"erb",path:"erb.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.sql","text.xml","source.css","source.js","source.ruby","text.html.basic"]},"source.erlang":{id:"erlang",path:"erlang.tmLanguage.json",embeddedScopes:[]},"source.fish":{id:"fish",path:"fish.tmLanguage.json",embeddedScopes:[]},"source.fsharp":{id:"fsharp",path:"fsharp.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.gdresource":{id:"gdresource",path:"gdresource.tmLanguage.json",embeddedScopes:["source.gdscript","source.gdshader"]},"source.gdscript":{id:"gdscript",path:"gdscript.tmLanguage.json",embeddedScopes:[]},"source.gdshader":{id:"gdshader",path:"gdshader.tmLanguage.json",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",path:"gherkin.tmLanguage.json",embeddedScopes:[]},"text.git-commit":{id:"git-commit",path:"git-commit.tmLanguage.json",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",path:"git-rebase.tmLanguage.json",embeddedScopes:["source.shell"]},"source.gjs":{id:"glimmer-js",path:"glimmer-js.tmLanguage.json",embeddedScopes:["source.yaml","source.css","text.html.basic","text.html.handlebars","source.js"]},"source.gts":{id:"glimmer-ts",path:"glimmer-ts.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic","text.html.handlebars","source.ts"]},"source.glsl":{id:"glsl",path:"glsl.tmLanguage.json",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",path:"gnuplot.tmLanguage.json",embeddedScopes:[]},"source.go":{id:"go",path:"go.tmLanguage.json",embeddedScopes:[]},"source.graphql":{id:"graphql",path:"graphql.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js"]},"source.groovy":{id:"groovy",path:"groovy.tmLanguage.json",embeddedScopes:[]},"source.hack":{id:"hack",path:"hack.tmLanguage.json",embeddedScopes:["source.css","source.js","source.sql","text.html.basic"]},"text.haml":{id:"haml",path:"haml.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.php","source.r","source.perl","source.makefile","source.java","source.ini","source.lua","source.shell","source.c","source.sql","text.xml","text.html.basic","source.css","text.html.markdown","source.coffee","source.sass","source.js","source.ruby"]},"text.html.handlebars":{id:"handlebars",path:"handlebars.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic"]},"source.haskell":{id:"haskell",path:"haskell.tmLanguage.json",embeddedScopes:[]},"source.hcl":{id:"hcl",path:"hcl.tmLanguage.json",embeddedScopes:[]},"source.hjson":{id:"hjson",path:"hjson.tmLanguage.json",embeddedScopes:[]},"source.hlsl":{id:"hlsl",path:"hlsl.tmLanguage.json",embeddedScopes:[]},"text.html.basic":{id:"html",path:"html.tmLanguage.json",embeddedScopes:["source.css","source.js"]},"source.http":{id:"http",path:"http.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js","source.java","source.graphql","text.xml","source.json","source.shell"]},"source.imba":{id:"imba",path:"imba.tmLanguage.json",embeddedScopes:[]},"source.ini":{id:"ini",path:"ini.tmLanguage.json",embeddedScopes:[]},"source.java":{id:"java",path:"java.tmLanguage.json",embeddedScopes:[]},"source.js":{id:"javascript",path:"javascript.tmLanguage.json",embeddedScopes:[]},"text.html.jinja":{id:"jinja-html",path:"jinja-html.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.jison":{id:"jison",path:"jison.tmLanguage.json",embeddedScopes:["source.js"]},"source.json":{id:"json",path:"json.tmLanguage.json",embeddedScopes:[]},"source.json5":{id:"json5",path:"json5.tmLanguage.json",embeddedScopes:[]},"source.json.comments":{id:"jsonc",path:"jsonc.tmLanguage.json",embeddedScopes:[]},"source.json.lines":{id:"jsonl",path:"jsonl.tmLanguage.json",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",path:"jsonnet.tmLanguage.json",embeddedScopes:[]},"source.jssm":{id:"jssm",path:"jssm.tmLanguage.json",embeddedScopes:[]},"source.js.jsx":{id:"jsx",path:"jsx.tmLanguage.json",embeddedScopes:[]},"source.julia":{id:"julia",path:"julia.tmLanguage.json",embeddedScopes:["source.c","source.glsl","source.sql","source.r","source.js","source.python","source.cpp"]},"source.kotlin":{id:"kotlin",path:"kotlin.tmLanguage.json",embeddedScopes:[]},"source.kusto":{id:"kusto",path:"kusto.tmLanguage.json",embeddedScopes:[]},"text.tex.latex":{id:"latex",path:"latex.tmLanguage.json",embeddedScopes:["source.glsl","source.shell","source.sql","source.cpp","source.c","source.r","source.gnuplot","source.scala","source.rust","source.yaml","source.python","source.ts","source.js","source.ruby","source.julia","source.lua","source.java","text.xml","text.html.basic","source.haskell","source.css","text.tex"]},"source.css.less":{id:"less",path:"less.tmLanguage.json",embeddedScopes:["source.css"]},"text.html.liquid":{id:"liquid",path:"liquid.tmLanguage.json",embeddedScopes:["source.js","source.json","source.css","text.html.basic"]},"source.lisp":{id:"lisp",path:"lisp.tmLanguage.json",embeddedScopes:[]},"source.logo":{id:"logo",path:"logo.tmLanguage.json",embeddedScopes:[]},"source.lua":{id:"lua",path:"lua.tmLanguage.json",embeddedScopes:["source.c"]},"source.makefile":{id:"make",path:"make.tmLanguage.json",embeddedScopes:[]},"text.html.markdown":{id:"markdown",path:"markdown.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css"]},"text.marko":{id:"marko",path:"marko.tmLanguage.json",embeddedScopes:["source.js","source.css.scss","source.css.less","source.css"]},"source.matlab":{id:"matlab",path:"matlab.tmLanguage.json",embeddedScopes:[]},"source.mdx":{id:"mdx",path:"mdx.tmLanguage.json",embeddedScopes:["source.gnuplot","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","text.html.handlebars","source.dart","source.fsharp","source.powershell","source.perl.6","source.json.comments","text.pug","source.groovy","text.git-rebase","text.git-commit","source.batchfile","text.xml.xsl","source.asp.vb.net","source.php","source.js.jsx","source.glsl","source.ts","source.swift","text.xml","source.sql","text.shell-session","source.shell","source.css.scss","source.scala","source.rust","source.ruby","source.r","source.python","source.perl","source.objc","text.html.markdown","source.makefile","source.lua","source.css.less","source.kotlin","source.julia","source.json","source.js","source.java","source.ini","text.html.basic","source.haskell","source.graphql","source.go","source.erlang","source.elm","source.elixir","source.dockerfile","source.diff","source.css","source.cs","source.cpp","source.coffee","source.clojure","source.c","source.yaml","source.toml","source.tsx"]},"source.mermaid":{id:"mermaid",path:"mermaid.tmLanguage.json",embeddedScopes:[]},"source.narrat":{id:"narrat",path:"narrat.tmLanguage.json",embeddedScopes:[]},"source.nextflow":{id:"nextflow",path:"nextflow.tmLanguage.json",embeddedScopes:[]},"source.nginx":{id:"nginx",path:"nginx.tmLanguage.json",embeddedScopes:["source.c","source.lua"]},"source.nim":{id:"nim",path:"nim.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.ini","source.java","text.html.markdown","source.glsl","source.css","source.js","text.xml","text.html.basic","source.c"]},"source.nix":{id:"nix",path:"nix.tmLanguage.json",embeddedScopes:[]},"source.objc":{id:"objective-c",path:"objective-c.tmLanguage.json",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",path:"objective-cpp.tmLanguage.json",embeddedScopes:[]},"source.ocaml":{id:"ocaml",path:"ocaml.tmLanguage.json",embeddedScopes:[]},"source.pascal":{id:"pascal",path:"pascal.tmLanguage.json",embeddedScopes:[]},"source.perl":{id:"perl",path:"perl.tmLanguage.json",embeddedScopes:["source.java","source.sql","source.js","source.css","text.xml","text.html.basic"]},"source.php":{id:"php",path:"php.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.plsql.oracle":{id:"plsql",path:"plsql.tmLanguage.json",embeddedScopes:[]},"source.polar":{id:"polar",path:"polar.tmLanguage.json",embeddedScopes:[]},"source.css.postcss":{id:"postcss",path:"postcss.tmLanguage.json",embeddedScopes:[]},"source.powerquery":{id:"powerquery",path:"powerquery.tmLanguage.json",embeddedScopes:[]},"source.powershell":{id:"powershell",path:"powershell.tmLanguage.json",embeddedScopes:[]},"source.prisma":{id:"prisma",path:"prisma.tmLanguage.json",embeddedScopes:[]},"source.prolog":{id:"prolog",path:"prolog.tmLanguage.json",embeddedScopes:[]},"source.proto":{id:"proto",path:"proto.tmLanguage.json",embeddedScopes:[]},"text.pug":{id:"pug",path:"pug.tmLanguage.json",embeddedScopes:["text.html.basic","source.coffee","source.stylus","source.css.scss","source.sass","source.css","source.js"]},"source.puppet":{id:"puppet",path:"puppet.tmLanguage.json",embeddedScopes:[]},"source.purescript":{id:"purescript",path:"purescript.tmLanguage.json",embeddedScopes:[]},"source.python":{id:"python",path:"python.tmLanguage.json",embeddedScopes:[]},"source.r":{id:"r",path:"r.tmLanguage.json",embeddedScopes:[]},"source.perl.6":{id:"raku",path:"raku.tmLanguage.json",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",path:"razor.tmLanguage.json",embeddedScopes:["source.css","source.js","source.cs","text.html.basic"]},"source.reg":{id:"reg",path:"reg.tmLanguage.json",embeddedScopes:[]},"source.rel":{id:"rel",path:"rel.tmLanguage.json",embeddedScopes:[]},"source.riscv":{id:"riscv",path:"riscv.tmLanguage.json",embeddedScopes:[]},"source.rst":{id:"rst",path:"rst.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.c","source.css","text.xml","text.html.basic","source.sql","source.glsl","source.ruby","source.cmake","source.yaml","source.shell","source.js","source.python","source.cpp"]},"source.ruby":{id:"ruby",path:"ruby.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.js","source.c","source.css","source.sql","text.xml","text.html.basic"]},"source.rust":{id:"rust",path:"rust.tmLanguage.json",embeddedScopes:[]},"source.sas":{id:"sas",path:"sas.tmLanguage.json",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",path:"sass.tmLanguage.json",embeddedScopes:[]},"source.scala":{id:"scala",path:"scala.tmLanguage.json",embeddedScopes:[]},"source.scheme":{id:"scheme",path:"scheme.tmLanguage.json",embeddedScopes:[]},"source.css.scss":{id:"scss",path:"scss.tmLanguage.json",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",path:"shaderlab.tmLanguage.json",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",path:"shellscript.tmLanguage.json",embeddedScopes:[]},"text.shell-session":{id:"shellsession",path:"shellsession.tmLanguage.json",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",path:"smalltalk.tmLanguage.json",embeddedScopes:[]},"source.solidity":{id:"solidity",path:"solidity.tmLanguage.json",embeddedScopes:[]},"source.sparql":{id:"sparql",path:"sparql.tmLanguage.json",embeddedScopes:["source.turtle"]},"source.sql":{id:"sql",path:"sql.tmLanguage.json",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",path:"ssh-config.tmLanguage.json",embeddedScopes:[]},"source.stata":{id:"stata",path:"stata.tmLanguage.json",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",path:"stylus.tmLanguage.json",embeddedScopes:[]},"source.svelte":{id:"svelte",path:"svelte.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.json.comments","source.json","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","text.html.markdown","text.pug","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.coffee","source.ts","source.js"]},"source.swift":{id:"swift",path:"swift.tmLanguage.json",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",path:"system-verilog.tmLanguage.json",embeddedScopes:[]},"source.tasl":{id:"tasl",path:"tasl.tmLanguage.json",embeddedScopes:[]},"source.tcl":{id:"tcl",path:"tcl.tmLanguage.json",embeddedScopes:[]},"text.tex":{id:"tex",path:"tex.tmLanguage.json",embeddedScopes:["source.r"]},"source.toml":{id:"toml",path:"toml.tmLanguage.json",embeddedScopes:[]},"source.tsx":{id:"tsx",path:"tsx.tmLanguage.json",embeddedScopes:[]},"source.turtle":{id:"turtle",path:"turtle.tmLanguage.json",embeddedScopes:[]},"text.html.twig":{id:"twig",path:"twig.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.json","source.sql","text.xml","text.html.basic","source.ruby","source.python","source.php","source.js","source.css"]},"source.txt":{id:"txt",path:"txt.tmLanguage.json",embeddedScopes:[]},"source.ts":{id:"typescript",path:"typescript.tmLanguage.json",embeddedScopes:[]},"source.v":{id:"v",path:"v.tmLanguage.json",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",path:"vb.tmLanguage.json",embeddedScopes:[]},"source.verilog":{id:"verilog",path:"verilog.tmLanguage.json",embeddedScopes:[]},"source.vhdl":{id:"vhdl",path:"vhdl.tmLanguage.json",embeddedScopes:[]},"source.viml":{id:"viml",path:"viml.tmLanguage.json",embeddedScopes:[]},"text.html.vue-html":{id:"vue-html",path:"vue-html.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic","source.js","source.vue"]},"source.vue":{id:"vue",path:"vue.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.js","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic"]},"source.vyper":{id:"vyper",path:"vyper.tmLanguage.json",embeddedScopes:[]},"source.wat":{id:"wasm",path:"wasm.tmLanguage.json",embeddedScopes:[]},"source.wenyan":{id:"wenyan",path:"wenyan.tmLanguage.json",embeddedScopes:[]},"source.wgsl":{id:"wgsl",path:"wgsl.tmLanguage.json",embeddedScopes:[]},"source.wolfram":{id:"wolfram",path:"wolfram.tmLanguage.json",embeddedScopes:[]},"text.xml":{id:"xml",path:"xml.tmLanguage.json",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",path:"xsl.tmLanguage.json",embeddedScopes:["source.java","text.xml"]},"source.yaml":{id:"yaml",path:"yaml.tmLanguage.json",embeddedScopes:[]},"source.zenscript":{id:"zenscript",path:"zenscript.tmLanguage.json",embeddedScopes:[]}};var r={d:(A,B)=>{for(var Q in B)r.o(B,Q)&&!r.o(A,Q)&&Object.defineProperty(A,Q,{enumerable:!0,get:B[Q]})},o:(A,B)=>Object.prototype.hasOwnProperty.call(A,B)},N={};r.d(N,{_X:()=>XA,Bz:()=>TA,ot:()=>WA,u:()=>bA,jG:()=>K,Pn:()=>vA});const L="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var H;function k(A,B){const Q=[],g=function(A){let B=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,Q=B.exec(A);return{next:()=>{if(!Q)return null;const g=Q[0];return Q=B.exec(A),g}}}(A);let E=g.next();for(;null!==E;){let A=0;if(2===E.length&&":"===E.charAt(1)){switch(E.charAt(0)){case"R":A=1;break;case"L":A=-1;break;default:console.log(`Unknown priority ${E} in scope selector`)}E=g.next()}let B=I();if(Q.push({matcher:B,priority:A}),","!==E)break;E=g.next()}return Q;function C(){if("-"===E){E=g.next();const A=C();return B=>!!A&&!A(B)}if("("===E){E=g.next();const A=function(){const A=[];let B=I();for(;B&&(A.push(B),"|"===E||","===E);){do{E=g.next()}while("|"===E||","===E);B=I()}return B=>A.some((A=>A(B)))}();return")"===E&&(E=g.next()),A}if(R(E)){const A=[];do{A.push(E),E=g.next()}while(R(E));return Q=>B(A,Q)}return null}function I(){const A=[];let B=C();for(;B;)A.push(B),B=C();return B=>A.every((A=>A(B)))}}function R(A){return!!A&&!!A.match(/[\w\.:]+/)}function K(A){"function"==typeof A.dispose&&A.dispose()}function Y(A){return Array.isArray(A)?function(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=Y(A[Q]);return B}(A):"object"==typeof A?function(A){let B={};for(let Q in A)B[Q]=Y(A[Q]);return B}(A):A}function U(A,...B){return B.forEach((B=>{for(let Q in B)A[Q]=B[Q]})),A}function P(A){const B=~A.lastIndexOf("/")||~A.lastIndexOf("\\");return 0===B?A:~B==A.length-1?P(A.substring(0,A.length-1)):A.substr(1+~B)}!function(A){A.toBinaryStr=function(A){let B=A.toString(2);for(;B.length<32;)B="0"+B;return B},A.print=function(B){const Q=A.getLanguageId(B),g=A.getTokenType(B),E=A.getFontStyle(B),C=A.getForeground(B),I=A.getBackground(B);console.log({languageId:Q,tokenType:g,fontStyle:E,foreground:C,background:I})},A.getLanguageId=function(A){return(255&A)>>>0},A.getTokenType=function(A){return(768&A)>>>8},A.containsBalancedBrackets=function(A){return 0!=(1024&A)},A.getFontStyle=function(A){return(30720&A)>>>11},A.getForeground=function(A){return(16744448&A)>>>15},A.getBackground=function(A){return(4278190080&A)>>>24},A.set=function(B,Q,g,E,C,I,D){let w=A.getLanguageId(B),o=A.getTokenType(B),s=A.containsBalancedBrackets(B)?1:0,e=A.getFontStyle(B),c=A.getForeground(B),i=A.getBackground(B);return 0!==Q&&(w=Q),8!==g&&(o=g),null!==E&&(s=E?1:0),-1!==C&&(e=C),0!==I&&(c=I),0!==D&&(i=D),(w<<0|o<<8|s<<10|e<<11|c<<15|i<<24)>>>0}}(H||(H={}));let u=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class y{static hasCaptures(A){return null!==A&&(u.lastIndex=0,u.test(A))}static replaceCaptures(A,B,Q){return A.replace(u,((A,g,E,C)=>{let I=Q[parseInt(g||E,10)];if(!I)return A;{let A=B.substring(I.start,I.end);for(;"."===A[0];)A=A.substring(1);switch(C){case"downcase":return A.toLowerCase();case"upcase":return A.toUpperCase();default:return A}}}))}}function J(A,B){return A<B?-1:A>B?1:0}function S(A,B){if(null===A&&null===B)return 0;if(!A)return-1;if(!B)return 1;let Q=A.length,g=B.length;if(Q===g){for(let g=0;g<Q;g++){let Q=J(A[g],B[g]);if(0!==Q)return Q}return 0}return Q-g}function p(A){return!!(/^#[0-9a-f]{6}$/i.test(A)||/^#[0-9a-f]{8}$/i.test(A)||/^#[0-9a-f]{3}$/i.test(A)||/^#[0-9a-f]{4}$/i.test(A))}function l(A){return A.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}class d{constructor(A){this.fn=A,this.cache=new Map}get(A){if(this.cache.has(A))return this.cache.get(A);const B=this.fn(A);return this.cache.set(A,B),B}}const f="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};class x{constructor(A){this.scopeName=A}toKey(){return this.scopeName}}class m{constructor(A,B){this.scopeName=A,this.ruleName=B}toKey(){return`${this.scopeName}#${this.ruleName}`}}class O{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(A){const B=A.toKey();this._seenReferenceKeys.has(B)||(this._seenReferenceKeys.add(B),this._references.push(A))}}class q{constructor(A,B){this.repo=A,this.initialScopeName=B,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new x(this.initialScopeName)]}processQueue(){const A=this.Q;this.Q=[];const B=new O;for(const Q of A)b(Q,this.initialScopeName,this.repo,B);for(const A of B.references)if(A instanceof x){if(this.seenFullScopeRequests.has(A.scopeName))continue;this.seenFullScopeRequests.add(A.scopeName),this.Q.push(A)}else{if(this.seenFullScopeRequests.has(A.scopeName))continue;if(this.seenPartialScopeRequests.has(A.toKey()))continue;this.seenPartialScopeRequests.add(A.toKey()),this.Q.push(A)}}}function b(A,B,Q,g){const E=Q.lookup(A.scopeName);if(!E){if(A.scopeName===B)throw new Error(`No grammar provided for <${B}>`);return}const C=Q.lookup(B);A instanceof x?T({baseGrammar:C,selfGrammar:E},g):W(A.ruleName,{baseGrammar:C,selfGrammar:E,repository:E.repository},g);const I=Q.injections(A.scopeName);if(I)for(const A of I)g.add(new x(A))}function W(A,B,Q){B.repository&&B.repository[A]&&X([B.repository[A]],B,Q)}function T(A,B){A.selfGrammar.patterns&&Array.isArray(A.selfGrammar.patterns)&&X(A.selfGrammar.patterns,{...A,repository:A.selfGrammar.repository},B),A.selfGrammar.injections&&X(Object.values(A.selfGrammar.injections),{...A,repository:A.selfGrammar.repository},B)}function X(A,B,Q){for(const g of A){if(Q.visitedRule.has(g))continue;Q.visitedRule.add(g);const A=g.repository?U({},B.repository,g.repository):B.repository;Array.isArray(g.patterns)&&X(g.patterns,{...B,repository:A},Q);const E=g.include;if(!E)continue;const C=_(E);switch(C.kind){case 0:T({...B,selfGrammar:B.baseGrammar},Q);break;case 1:T(B,Q);break;case 2:W(C.ruleName,{...B,repository:A},Q);break;case 3:case 4:const g=C.scopeName===B.selfGrammar.scopeName?B.selfGrammar:C.scopeName===B.baseGrammar.scopeName?B.baseGrammar:void 0;if(g){const E={baseGrammar:B.baseGrammar,selfGrammar:g,repository:A};4===C.kind?W(C.ruleName,E,Q):T(E,Q)}else 4===C.kind?Q.add(new m(C.scopeName,C.ruleName)):Q.add(new x(C.scopeName))}}}class v{constructor(){this.kind=0}}class Z{constructor(){this.kind=1}}class j{constructor(A){this.ruleName=A,this.kind=2}}class V{constructor(A){this.scopeName=A,this.kind=3}}class z{constructor(A,B){this.scopeName=A,this.ruleName=B,this.kind=4}}function _(A){if("$base"===A)return new v;if("$self"===A)return new Z;const B=A.indexOf("#");if(-1===B)return new V(A);if(0===B)return new j(A.substring(1));{const Q=A.substring(0,B),g=A.substring(B+1);return new z(Q,g)}}const $=/\\(\d+)/,AA=/\\(\d+)/g;class BA{constructor(A,B,Q,g){this.$location=A,this.id=B,this._name=Q||null,this._nameIsCapturing=y.hasCaptures(this._name),this._contentName=g||null,this._contentNameIsCapturing=y.hasCaptures(this._contentName)}get debugName(){const A=this.$location?`${P(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${A}`}getName(A,B){return this._nameIsCapturing&&null!==this._name&&null!==A&&null!==B?y.replaceCaptures(this._name,A,B):this._name}getContentName(A,B){return this._contentNameIsCapturing&&null!==this._contentName?y.replaceCaptures(this._contentName,A,B):this._contentName}}class QA extends BA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.retokenizeCapturedWithRuleId=E}dispose(){}collectPatterns(A,B){throw new Error("Not supported!")}compile(A,B){throw new Error("Not supported!")}compileAG(A,B,Q,g){throw new Error("Not supported!")}}class gA extends BA{constructor(A,B,Q,g,E){super(A,B,Q,null),this._match=new wA(g,this.id),this.captures=E,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(A,B){B.push(this._match)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new oA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class EA extends BA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.patterns=E.patterns,this.hasMissingPatterns=E.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(A,B){for(const Q of this.patterns)A.getRule(Q).collectPatterns(A,B)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new oA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class CA extends BA{constructor(A,B,Q,g,E,C,I,D,w,o){super(A,B,Q,g),this._begin=new wA(E,this.id),this.beginCaptures=C,this._end=new wA(I||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=D,this.applyEndPatternLast=w||!1,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(A,B){return this._end.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A,B).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledPatterns(A,B){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new oA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,B):this._cachedCompiledPatterns.setSource(0,B)),this._cachedCompiledPatterns}}class IA extends BA{constructor(A,B,Q,g,E,C,I,D,w){super(A,B,Q,g),this._begin=new wA(E,this.id),this.beginCaptures=C,this.whileCaptures=D,this._while=new wA(I,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=w.patterns,this.hasMissingPatterns=w.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(A,B){return this._while.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new oA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(A,B){return this._getCachedCompiledWhilePatterns(A,B).compile(A)}compileWhileAG(A,B,Q,g){return this._getCachedCompiledWhilePatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledWhilePatterns(A,B){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new oA,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,B||"￿"),this._cachedCompiledWhilePatterns}}class DA{static createCaptureRule(A,B,Q,g,E){return A.registerRule((A=>new QA(B,A,Q,g,E)))}static getCompiledRuleId(A,B,Q){return A.id||B.registerRule((g=>{if(A.id=g,A.match)return new gA(A.$vscodeTextmateLocation,A.id,A.name,A.match,DA._compileCaptures(A.captures,B,Q));if(void 0===A.begin){A.repository&&(Q=U({},Q,A.repository));let g=A.patterns;return void 0===g&&A.include&&(g=[{include:A.include}]),new EA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,DA._compilePatterns(g,B,Q))}return A.while?new IA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,DA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.while,DA._compileCaptures(A.whileCaptures||A.captures,B,Q),DA._compilePatterns(A.patterns,B,Q)):new CA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,DA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.end,DA._compileCaptures(A.endCaptures||A.captures,B,Q),A.applyEndPatternLast,DA._compilePatterns(A.patterns,B,Q))})),A.id}static _compileCaptures(A,B,Q){let g=[];if(A){let E=0;for(const B in A){if("$vscodeTextmateLocation"===B)continue;const A=parseInt(B,10);A>E&&(E=A)}for(let A=0;A<=E;A++)g[A]=null;for(const E in A){if("$vscodeTextmateLocation"===E)continue;const C=parseInt(E,10);let I=0;A[E].patterns&&(I=DA.getCompiledRuleId(A[E],B,Q)),g[C]=DA.createCaptureRule(B,A[E].$vscodeTextmateLocation,A[E].name,A[E].contentName,I)}}return g}static _compilePatterns(A,B,Q){let g=[];if(A)for(let E=0,C=A.length;E<C;E++){const C=A[E];let I=-1;if(C.include){const A=_(C.include);switch(A.kind){case 0:case 1:I=DA.getCompiledRuleId(Q[C.include],B,Q);break;case 2:let g=Q[A.ruleName];g&&(I=DA.getCompiledRuleId(g,B,Q));break;case 3:case 4:const E=A.scopeName,D=4===A.kind?A.ruleName:null,w=B.getExternalGrammar(E,Q);if(w)if(D){let A=w.repository[D];A&&(I=DA.getCompiledRuleId(A,B,w.repository))}else I=DA.getCompiledRuleId(w.repository.$self,B,w.repository)}}else I=DA.getCompiledRuleId(C,B,Q);if(-1!==I){const A=B.getRule(I);let Q=!1;if((A instanceof EA||A instanceof CA||A instanceof IA)&&A.hasMissingPatterns&&0===A.patterns.length&&(Q=!0),Q)continue;g.push(I)}}return{patterns:g,hasMissingPatterns:(A?A.length:0)!==g.length}}}class wA{constructor(A,B){if(A){const B=A.length;let Q=0,g=[],E=!1;for(let C=0;C<B;C++)if("\\"===A.charAt(C)&&C+1<B){const B=A.charAt(C+1);"z"===B?(g.push(A.substring(Q,C)),g.push("$(?!\\n)(?<!\\n)"),Q=C+2):"A"!==B&&"G"!==B||(E=!0),C++}this.hasAnchor=E,0===Q?this.source=A:(g.push(A.substring(Q,B)),this.source=g.join(""))}else this.hasAnchor=!1,this.source=A;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=B,this.hasBackReferences=$.test(this.source)}clone(){return new wA(this.source,this.ruleId)}setSource(A){this.source!==A&&(this.source=A,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(A,B){let Q=B.map((B=>A.substring(B.start,B.end)));return AA.lastIndex=0,this.source.replace(AA,((A,B)=>l(Q[parseInt(B,10)]||"")))}_buildAnchorCache(){let A,B,Q,g,E=[],C=[],I=[],D=[];for(A=0,B=this.source.length;A<B;A++)Q=this.source.charAt(A),E[A]=Q,C[A]=Q,I[A]=Q,D[A]=Q,"\\"===Q&&A+1<B&&(g=this.source.charAt(A+1),"A"===g?(E[A+1]="￿",C[A+1]="￿",I[A+1]="A",D[A+1]="A"):"G"===g?(E[A+1]="￿",C[A+1]="G",I[A+1]="￿",D[A+1]="G"):(E[A+1]=g,C[A+1]=g,I[A+1]=g,D[A+1]=g),A++);return{A0_G0:E.join(""),A0_G1:C.join(""),A1_G0:I.join(""),A1_G1:D.join("")}}resolveAnchors(A,B){return this.hasAnchor&&this._anchorCache?A?B?this._anchorCache.A1_G1:this._anchorCache.A1_G0:B?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source}}class oA{constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(A){this._items.push(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}unshift(A){this._items.unshift(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}length(){return this._items.length}setSource(A,B){this._items[A].source!==B&&(this._disposeCaches(),this._items[A].setSource(B))}compile(A){if(!this._cached){let B=this._items.map((A=>A.source));this._cached=new sA(A,B,this._items.map((A=>A.ruleId)))}return this._cached}compileAG(A,B,Q){return this._hasAnchors?B?Q?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G0):Q?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G0):this.compile(A)}_resolveAnchors(A,B,Q){let g=this._items.map((A=>A.resolveAnchors(B,Q)));return new sA(A,g,this._items.map((A=>A.ruleId)))}}class sA{constructor(A,B,Q){this.regExps=B,this.rules=Q,this.scanner=A.createOnigScanner(B)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const A=[];for(let B=0,Q=this.rules.length;B<Q;B++)A.push(" - "+this.rules[B]+": "+this.regExps[B]);return A.join("\n")}findNextMatchSync(A,B,Q){const g=this.scanner.findNextMatchSync(A,B,Q);return g?{ruleId:this.rules[g.index],captureIndices:g.captureIndices}:null}}class eA{constructor(A,B,Q){this._colorMap=A,this._defaults=B,this._root=Q,this._cachedMatchRoot=new d((A=>this._root.match(A)))}static createFromRawTheme(A,B){return this.createFromParsedTheme(function(A){if(!A)return[];if(!A.settings||!Array.isArray(A.settings))return[];let B=A.settings,Q=[],g=0;for(let A=0,E=B.length;A<E;A++){let E,C=B[A];if(!C.settings)continue;if("string"==typeof C.scope){let A=C.scope;A=A.replace(/^[,]+/,""),A=A.replace(/[,]+$/,""),E=A.split(",")}else E=Array.isArray(C.scope)?C.scope:[""];let I=-1;if("string"==typeof C.settings.fontStyle){I=0;let A=C.settings.fontStyle.split(" ");for(let B=0,Q=A.length;B<Q;B++)switch(A[B]){case"italic":I|=1;break;case"bold":I|=2;break;case"underline":I|=4;break;case"strikethrough":I|=8}}let D=null;"string"==typeof C.settings.foreground&&p(C.settings.foreground)&&(D=C.settings.foreground);let w=null;"string"==typeof C.settings.background&&p(C.settings.background)&&(w=C.settings.background);for(let B=0,C=E.length;B<C;B++){let C=E[B].trim().split(" "),o=C[C.length-1],s=null;C.length>1&&(s=C.slice(0,C.length-1),s.reverse()),Q[g++]=new MA(o,s,A,I,D,w)}}return Q}(A),B)}static createFromParsedTheme(A,B){return function(A,B){A.sort(((A,B)=>{let Q=J(A.scope,B.scope);return 0!==Q?Q:(Q=S(A.parentScopes,B.parentScopes),0!==Q?Q:A.index-B.index)}));let Q=0,g="#000000",E="#ffffff";for(;A.length>=1&&""===A[0].scope;){let B=A.shift();-1!==B.fontStyle&&(Q=B.fontStyle),null!==B.foreground&&(g=B.foreground),null!==B.background&&(E=B.background)}let C=new hA(B),I=new tA(Q,C.getId(g),C.getId(E)),D=new FA(new aA(0,null,-1,0,0),[]);for(let B=0,Q=A.length;B<Q;B++){let Q=A[B];D.insert(0,Q.scope,Q.parentScopes,Q.fontStyle,C.getId(Q.foreground),C.getId(Q.background))}return new eA(C,I,D)}(A,B)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(A){if(null===A)return this._defaults;const B=A.scopeName,Q=this._cachedMatchRoot.get(B).find((B=>function(A,B){if(null===B)return!0;let Q=0,g=B[Q];for(;A;){if(iA(A.scopeName,g)){if(Q++,Q===B.length)return!0;g=B[Q]}A=A.parent}return!1}(A.parent,B.parentScopes)));return Q?new tA(Q.fontStyle,Q.foreground,Q.background):null}}class cA{constructor(A,B){this.parent=A,this.scopeName=B}static push(A,B){for(const Q of B)A=new cA(A,Q);return A}static from(...A){let B=null;for(let Q=0;Q<A.length;Q++)B=new cA(B,A[Q]);return B}push(A){return new cA(this,A)}getSegments(){let A=this;const B=[];for(;A;)B.push(A.scopeName),A=A.parent;return B.reverse(),B}toString(){return this.getSegments().join(" ")}extends(A){return this===A||null!==this.parent&&this.parent.extends(A)}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push(Q.scopeName),Q=Q.parent;return Q===A?B.reverse():void 0}}function iA(A,B){return B===A||A.startsWith(B)&&"."===A[B.length]}class tA{constructor(A,B,Q){this.fontStyle=A,this.foregroundId=B,this.backgroundId=Q}}class MA{constructor(A,B,Q,g,E,C){this.scope=A,this.parentScopes=B,this.index=Q,this.fontStyle=g,this.foreground=E,this.background=C}}class hA{constructor(A){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(A)){this._isFrozen=!0;for(let B=0,Q=A.length;B<Q;B++)this._color2id[A[B]]=B,this._id2color[B]=A[B]}else this._isFrozen=!1}getId(A){if(null===A)return 0;A=A.toUpperCase();let B=this._color2id[A];if(B)return B;if(this._isFrozen)throw new Error(`Missing color in color map - ${A}`);return B=++this._lastColorId,this._color2id[A]=B,this._id2color[B]=A,B}getColorMap(){return this._id2color.slice(0)}}class aA{constructor(A,B,Q,g,E){this.scopeDepth=A,this.parentScopes=B,this.fontStyle=Q,this.foreground=g,this.background=E}clone(){return new aA(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=A[Q].clone();return B}acceptOverwrite(A,B,Q,g){this.scopeDepth>A?console.log("how did this happen?"):this.scopeDepth=A,-1!==B&&(this.fontStyle=B),0!==Q&&(this.foreground=Q),0!==g&&(this.background=g)}}class FA{constructor(A,B=[],Q={}){this._mainRule=A,this._children=Q,this._rulesWithParentScopes=B}static _sortBySpecificity(A){return 1===A.length||A.sort(this._cmpBySpecificity),A}static _cmpBySpecificity(A,B){if(A.scopeDepth===B.scopeDepth){const Q=A.parentScopes,g=B.parentScopes;let E=null===Q?0:Q.length,C=null===g?0:g.length;if(E===C)for(let A=0;A<E;A++){const B=Q[A].length,E=g[A].length;if(B!==E)return E-B}return C-E}return B.scopeDepth-A.scopeDepth}match(A){if(""===A)return FA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));let B,Q,g=A.indexOf(".");return-1===g?(B=A,Q=""):(B=A.substring(0,g),Q=A.substring(g+1)),this._children.hasOwnProperty(B)?this._children[B].match(Q):FA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))}insert(A,B,Q,g,E,C){if(""===B)return void this._doInsertHere(A,Q,g,E,C);let I,D,w,o=B.indexOf(".");-1===o?(I=B,D=""):(I=B.substring(0,o),D=B.substring(o+1)),this._children.hasOwnProperty(I)?w=this._children[I]:(w=new FA(this._mainRule.clone(),aA.cloneArr(this._rulesWithParentScopes)),this._children[I]=w),w.insert(A+1,D,Q,g,E,C)}_doInsertHere(A,B,Q,g,E){if(null!==B){for(let C=0,I=this._rulesWithParentScopes.length;C<I;C++){let I=this._rulesWithParentScopes[C];if(0===S(I.parentScopes,B))return void I.acceptOverwrite(A,Q,g,E)}-1===Q&&(Q=this._mainRule.fontStyle),0===g&&(g=this._mainRule.foreground),0===E&&(E=this._mainRule.background),this._rulesWithParentScopes.push(new aA(A,B,Q,g,E))}else this._mainRule.acceptOverwrite(A,Q,g,E)}}class nA{constructor(A,B){this.languageId=A,this.tokenType=B}}class GA{constructor(A,B){this._getBasicScopeAttributes=new d((A=>{const B=this._scopeToLanguage(A),Q=this._toStandardTokenType(A);return new nA(B,Q)})),this._defaultAttributes=new nA(A,8),this._embeddedLanguagesMatcher=new rA(Object.entries(B||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(A){return null===A?GA._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(A)}_scopeToLanguage(A){return this._embeddedLanguagesMatcher.match(A)||0}_toStandardTokenType(A){const B=A.match(GA.STANDARD_TOKEN_TYPE_REGEXP);if(!B)return 8;switch(B[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}GA._NULL_SCOPE_METADATA=new nA(0,0),GA.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class rA{constructor(A){if(0===A.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(A);const B=A.map((([A,B])=>l(A)));B.sort(),B.reverse(),this.scopesRegExp=new RegExp(`^((${B.join(")|(")}))($|\\.)`,"")}}match(A){if(!this.scopesRegExp)return;const B=A.match(this.scopesRegExp);return B?this.values.get(B[1]):void 0}}class NA{constructor(A,B){this.stack=A,this.stoppedEarly=B}}function LA(A,B,Q,g,E,C,I,D){const w=B.content.length;let o=!1,s=-1;if(I){const I=function(A,B,Q,g,E,C){let I=E.beginRuleCapturedEOL?0:-1;const D=[];for(let B=E;B;B=B.pop()){const Q=B.getRule(A);Q instanceof IA&&D.push({rule:Q,stack:B})}for(let w=D.pop();w;w=D.pop()){const{ruleScanner:D,findOptions:o}=kA(w.rule,A,w.stack.endRule,Q,g===I),s=D.findNextMatchSync(B,g,o);if(L&&(console.log(" scanning for while rule"),console.log(D.toString())),!s){L&&console.log(" popping "+w.rule.debugName+" - "+w.rule.debugWhileRegExp),E=w.stack.pop();break}if(-2!==s.ruleId){E=w.stack.pop();break}s.captureIndices&&s.captureIndices.length&&(C.produce(w.stack,s.captureIndices[0].start),RA(A,B,Q,w.stack,C,w.rule.whileCaptures,s.captureIndices),C.produce(w.stack,s.captureIndices[0].end),I=s.captureIndices[0].end,s.captureIndices[0].end>g&&(g=s.captureIndices[0].end,Q=!1))}return{stack:E,linePos:g,anchorPosition:I,isFirstLine:Q}}(A,B,Q,g,E,C);E=I.stack,g=I.linePos,Q=I.isFirstLine,s=I.anchorPosition}const e=Date.now();for(;!o;){if(0!==D&&Date.now()-e>D)return new NA(E,!0);c()}return new NA(E,!1);function c(){L&&(console.log(""),console.log(`@@scanNext ${g}: |${B.content.substr(g).replace(/\n$/,"\\n")}|`));const I=function(A,B,Q,g,E,C){const I=function(A,B,Q,g,E,C){const I=E.getRule(A),{ruleScanner:D,findOptions:w}=HA(I,A,E.endRule,Q,g===C);let o=0;L&&(o=f());const s=D.findNextMatchSync(B,g,w);if(L){const A=f()-o;A>5&&console.warn(`Rule ${I.debugName} (${I.id}) matching took ${A} against '${B}'`),console.log(` scanning for (linePos: ${g}, anchorPosition: ${C})`),console.log(D.toString()),s&&console.log(`matched rule id: ${s.ruleId} from ${s.captureIndices[0].start} to ${s.captureIndices[0].end}`)}return s?{captureIndices:s.captureIndices,matchedRuleId:s.ruleId}:null}(A,B,Q,g,E,C),D=A.getInjections();if(0===D.length)return I;const w=function(A,B,Q,g,E,C,I){let D,w=Number.MAX_VALUE,o=null,s=0;const e=C.contentNameScopesList.getScopeNames();for(let C=0,c=A.length;C<c;C++){const c=A[C];if(!c.matcher(e))continue;const i=B.getRule(c.ruleId),{ruleScanner:t,findOptions:M}=HA(i,B,null,g,E===I),h=t.findNextMatchSync(Q,E,M);if(!h)continue;L&&(console.log(` matched injection: ${c.debugSelector}`),console.log(t.toString()));const a=h.captureIndices[0].start;if(!(a>=w)&&(w=a,o=h.captureIndices,D=h.ruleId,s=c.priority,w===E))break}return o?{priorityMatch:-1===s,captureIndices:o,matchedRuleId:D}:null}(D,A,B,Q,g,E,C);if(!w)return I;if(!I)return w;const o=I.captureIndices[0].start,s=w.captureIndices[0].start;return s<o||w.priorityMatch&&s===o?w:I}(A,B,Q,g,E,s);if(!I)return L&&console.log(" no more matches."),C.produce(E,w),void(o=!0);const D=I.captureIndices,e=I.matchedRuleId,c=!!(D&&D.length>0)&&D[0].end>g;if(-1===e){const I=E.getRule(A);L&&console.log(" popping "+I.debugName+" - "+I.debugEndRegExp),C.produce(E,D[0].start),E=E.withContentNameScopesList(E.nameScopesList),RA(A,B,Q,E,C,I.endCaptures,D),C.produce(E,D[0].end);const e=E;if(E=E.parent,s=e.getAnchorPos(),!c&&e.getEnterPos()===g)return L&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),E=e,C.produce(E,w),void(o=!0)}else{const I=A.getRule(e);C.produce(E,D[0].start);const i=E,t=I.getName(B.content,D),M=E.contentNameScopesList.pushAttributed(t,A);if(E=E.push(e,g,s,D[0].end===w,null,M,M),I instanceof CA){const g=I;L&&console.log(" pushing "+g.debugName+" - "+g.debugBeginRegExp),RA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.endHasBackReferences&&(E=E.withEndRule(g.getEndWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return L&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else if(I instanceof IA){const g=I;L&&console.log(" pushing "+g.debugName),RA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.whileHasBackReferences&&(E=E.withEndRule(g.getWhileWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return L&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else{const g=I;if(L&&console.log(" matched "+g.debugName+" - "+g.debugMatchRegExp),RA(A,B,Q,E,C,g.captures,D),C.produce(E,D[0].end),E=E.pop(),!c)return L&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),E=E.safePop(),C.produce(E,w),void(o=!0)}}D[0].end>g&&(g=D[0].end,Q=!1)}}function HA(A,B,Q,g,E){return{ruleScanner:A.compileAG(B,Q,g,E),findOptions:0}}function kA(A,B,Q,g,E){return{ruleScanner:A.compileWhileAG(B,Q,g,E),findOptions:0}}function RA(A,B,Q,g,E,C,I){if(0===C.length)return;const D=B.content,w=Math.min(C.length,I.length),o=[],s=I[0].end;for(let B=0;B<w;B++){const w=C[B];if(null===w)continue;const e=I[B];if(0===e.length)continue;if(e.start>s)break;for(;o.length>0&&o[o.length-1].endPos<=e.start;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop();if(o.length>0?E.produceFromScopes(o[o.length-1].scopes,e.start):E.produce(g,e.start),w.retokenizeCapturedWithRuleId){const B=w.getName(D,I),C=g.contentNameScopesList.pushAttributed(B,A),o=w.getContentName(D,I),s=C.pushAttributed(o,A),c=g.push(w.retokenizeCapturedWithRuleId,e.start,-1,!1,null,C,s),i=A.createOnigString(D.substring(0,e.end));LA(A,i,Q&&0===e.start,e.start,c,E,!1,0),K(i);continue}const c=w.getName(D,I);if(null!==c){const B=(o.length>0?o[o.length-1].scopes:g.contentNameScopesList).pushAttributed(c,A);o.push(new KA(B,e.end))}}for(;o.length>0;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop()}class KA{constructor(A,B){this.scopes=A,this.endPos=B}}function YA(A,B,Q,g,E){const C=k(B,UA),I=DA.getCompiledRuleId(Q,g,E.repository);for(const Q of C)A.push({debugSelector:B,matcher:Q.matcher,ruleId:I,grammar:E,priority:Q.priority})}function UA(A,B){if(B.length<A.length)return!1;let Q=0;return A.every((A=>{for(let g=Q;g<B.length;g++)if(PA(B[g],A))return Q=g+1,!0;return!1}))}function PA(A,B){if(!A)return!1;if(A===B)return!0;const Q=B.length;return A.length>Q&&A.substr(0,Q)===B&&"."===A[Q]}class uA{constructor(A,B,Q,g,E,C,I,D){if(this._rootScopeName=A,this.balancedBracketSelectors=C,this._onigLib=D,this._basicScopeAttributesProvider=new GA(Q,g),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=I,this._grammar=yA(B,null),this._injections=null,this._tokenTypeMatchers=[],E)for(const A of Object.keys(E)){const B=k(A,UA);for(const Q of B)this._tokenTypeMatchers.push({matcher:Q.matcher,type:E[A]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const A of this._ruleId2desc)A&&A.dispose()}createOnigScanner(A){return this._onigLib.createOnigScanner(A)}createOnigString(A){return this._onigLib.createOnigString(A)}getMetadataForScope(A){return this._basicScopeAttributesProvider.getBasicScopeAttributes(A)}_collectInjections(){const A=[],B=this._rootScopeName,Q=(A=>A===this._rootScopeName?this._grammar:this.getExternalGrammar(A))(B);if(Q){const g=Q.injections;if(g)for(let B in g)YA(A,B,g[B],this,Q);const E=this._grammarRepository.injections(B);E&&E.forEach((B=>{const Q=this.getExternalGrammar(B);if(Q){const B=Q.injectionSelector;B&&YA(A,B,Q,this,Q)}}))}return A.sort(((A,B)=>A.priority-B.priority)),A}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),L&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const A of this._injections)console.log(` - ${A.debugSelector}`)}return this._injections}registerRule(A){const B=++this._lastRuleId,Q=A(B);return this._ruleId2desc[B]=Q,Q}getRule(A){return this._ruleId2desc[A]}getExternalGrammar(A,B){if(this._includedGrammars[A])return this._includedGrammars[A];if(this._grammarRepository){const Q=this._grammarRepository.lookup(A);if(Q)return this._includedGrammars[A]=yA(Q,B&&B.$base),this._includedGrammars[A]}}tokenizeLine(A,B,Q=0){const g=this._tokenize(A,B,!1,Q);return{tokens:g.lineTokens.getResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}tokenizeLine2(A,B,Q=0){const g=this._tokenize(A,B,!0,Q);return{tokens:g.lineTokens.getBinaryResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}_tokenize(A,B,Q,g){let E;if(-1===this._rootId&&(this._rootId=DA.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),B&&B!==SA.NULL)E=!1,B.reset();else{E=!0;const A=this._basicScopeAttributesProvider.getDefaultAttributes(),Q=this.themeProvider.getDefaults(),g=H.set(0,A.languageId,A.tokenType,null,Q.fontStyle,Q.foregroundId,Q.backgroundId),C=this.getRule(this._rootId).getName(null,null);let I;I=C?JA.createRootAndLookUpScopeName(C,g,this):JA.createRoot("unknown",g),B=new SA(null,this._rootId,-1,-1,!1,null,I,I)}A+="\n";const C=this.createOnigString(A),I=C.content.length,D=new lA(Q,A,this._tokenTypeMatchers,this.balancedBracketSelectors),w=LA(this,C,E,0,B,D,!0,g);return K(C),{lineLength:I,lineTokens:D,ruleStack:w.stack,stoppedEarly:w.stoppedEarly}}}function yA(A,B){return(A=Y(A)).repository=A.repository||{},A.repository.$self={$vscodeTextmateLocation:A.$vscodeTextmateLocation,patterns:A.patterns,name:A.scopeName},A.repository.$base=B||A.repository.$self,A}class JA{constructor(A,B,Q){this.parent=A,this.scopePath=B,this.tokenAttributes=Q}static fromExtension(A,B){let Q=A,g=A?.scopePath??null;for(const A of B)g=cA.push(g,A.scopeNames),Q=new JA(Q,g,A.encodedTokenAttributes);return Q}static createRoot(A,B){return new JA(null,new cA(null,A),B)}static createRootAndLookUpScopeName(A,B,Q){const g=Q.getMetadataForScope(A),E=new cA(null,A),C=Q.themeProvider.themeMatch(E),I=JA.mergeAttributes(B,g,C);return new JA(null,E,I)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(A){return JA.equals(this,A)}static equals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.scopeName!==B.scopeName||A.tokenAttributes!==B.tokenAttributes)return!1;A=A.parent,B=B.parent}}static mergeAttributes(A,B,Q){let g=-1,E=0,C=0;return null!==Q&&(g=Q.fontStyle,E=Q.foregroundId,C=Q.backgroundId),H.set(A,B.languageId,B.tokenType,null,g,E,C)}pushAttributed(A,B){if(null===A)return this;if(-1===A.indexOf(" "))return JA._pushAttributed(this,A,B);const Q=A.split(/ /g);let g=this;for(const A of Q)g=JA._pushAttributed(g,A,B);return g}static _pushAttributed(A,B,Q){const g=Q.getMetadataForScope(B),E=A.scopePath.push(B),C=Q.themeProvider.themeMatch(E),I=JA.mergeAttributes(A.tokenAttributes,g,C);return new JA(A,E,I)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push({encodedTokenAttributes:Q.tokenAttributes,scopeNames:Q.scopePath.getExtensionIfDefined(Q.parent?.scopePath??null)}),Q=Q.parent;return Q===A?B.reverse():void 0}}class SA{constructor(A,B,Q,g,E,C,I,D){this.parent=A,this.ruleId=B,this.beginRuleCapturedEOL=E,this.endRule=C,this.nameScopesList=I,this.contentNameScopesList=D,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=Q,this._anchorPos=g}equals(A){return null!==A&&SA._equals(this,A)}static _equals(A,B){return A===B||!!this._structuralEquals(A,B)&&JA.equals(A.contentNameScopesList,B.contentNameScopesList)}static _structuralEquals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.depth!==B.depth||A.ruleId!==B.ruleId||A.endRule!==B.endRule)return!1;A=A.parent,B=B.parent}}clone(){return this}static _reset(A){for(;A;)A._enterPos=-1,A._anchorPos=-1,A=A.parent}reset(){SA._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(A,B,Q,g,E,C,I){return new SA(this,A,B,Q,g,E,C,I)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(A){return A.getRule(this.ruleId)}toString(){const A=[];return this._writeString(A,0),"["+A.join(",")+"]"}_writeString(A,B){return this.parent&&(B=this.parent._writeString(A,B)),A[B++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,B}withContentNameScopesList(A){return this.contentNameScopesList===A?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,A)}withEndRule(A){return this.endRule===A?this:new SA(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,A,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(A){let B=this;for(;B&&B._enterPos===A._enterPos;){if(B.ruleId===A.ruleId)return!0;B=B.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(A,B){const Q=JA.fromExtension(A?.nameScopesList??null,B.nameScopesList);return new SA(A,B.ruleId,B.enterPos??-1,B.anchorPos??-1,B.beginRuleCapturedEOL,B.endRule,Q,JA.fromExtension(Q,B.contentNameScopesList))}}SA.NULL=new SA(null,0,0,0,!1,null,null,null);class pA{constructor(A,B){this.allowAny=!1,this.balancedBracketScopes=A.flatMap((A=>"*"===A?(this.allowAny=!0,[]):k(A,UA).map((A=>A.matcher)))),this.unbalancedBracketScopes=B.flatMap((A=>k(A,UA).map((A=>A.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(A){for(const B of this.unbalancedBracketScopes)if(B(A))return!1;for(const B of this.balancedBracketScopes)if(B(A))return!0;return this.allowAny}}class lA{constructor(A,B,Q,g){this.balancedBracketSelectors=g,this._emitBinaryTokens=A,this._tokenTypeOverrides=Q,this._lineText=L?B:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(A,B){this.produceFromScopes(A.contentNameScopesList,B)}produceFromScopes(A,B){if(this._lastTokenEndIndex>=B)return;if(this._emitBinaryTokens){let Q=A?.tokenAttributes??0,g=!1;if(this.balancedBracketSelectors?.matchesAlways&&(g=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const B=A?.getScopeNames()??[];for(const A of this._tokenTypeOverrides)A.matcher(B)&&(Q=H.set(Q,0,A.type,null,-1,0,0));this.balancedBracketSelectors&&(g=this.balancedBracketSelectors.match(B))}if(g&&(Q=H.set(Q,0,8,g,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===Q)return void(this._lastTokenEndIndex=B);if(L){const Q=A?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(Q),void(this._lastTokenEndIndex=B)}const Q=A?.getScopeNames()??[];if(L){console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:B,scopes:Q}),this._lastTokenEndIndex=B}getResult(A,B){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===B-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(A,B){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===B-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._binaryTokens[this._binaryTokens.length-2]=0);const Q=new Uint32Array(this._binaryTokens.length);for(let A=0,B=this._binaryTokens.length;A<B;A++)Q[A]=this._binaryTokens[A];return Q}}function dA(A,B,Q){const g=A.length;let E=0,C=1,I=0;function D(B){if(null===Q)E+=B;else for(;B>0;)10===A.charCodeAt(E)?(E++,C++,I=0):(E++,I++),B--}function w(A){null===Q?E=A:D(A-E)}function o(){for(;E<g;){let B=A.charCodeAt(E);if(32!==B&&9!==B&&13!==B&&10!==B)break;D(1)}}function s(B){return A.substr(E,B.length)===B&&(D(B.length),!0)}function e(B){let Q=A.indexOf(B,E);w(-1!==Q?Q+B.length:g)}function c(B){let Q=A.indexOf(B,E);if(-1!==Q){let g=A.substring(E,Q);return w(Q+B.length),g}{let B=A.substr(E);return w(g),B}}g>0&&65279===A.charCodeAt(0)&&(E=1);let i=0,t=null,M=[],h=[],a=null;function F(A,B){M.push(i),h.push(t),i=A,t=B}function n(){if(0===M.length)return G("illegal state stack");i=M.pop(),t=h.pop()}function G(B){throw new Error("Near offset "+E+": "+B+" ~~~"+A.substr(E,50)+"~~~")}const r=function(){if(null===a)return G("missing <key>");let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t[a]=A,a=null,F(1,A)},N=function(){if(null===a)return G("missing <key>");let A=[];t[a]=A,a=null,F(2,A)},L=function(){let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t.push(A),F(1,A)},H=function(){let A=[];t.push(A),F(2,A)};function k(){if(1!==i)return G("unexpected </dict>");n()}function R(){return 1===i||2!==i?G("unexpected </array>"):void n()}function K(A){if(1===i){if(null===a)return G("missing <key>");t[a]=A,a=null}else 2===i?t.push(A):t=A}function Y(A){if(isNaN(A))return G("cannot parse float");if(1===i){if(null===a)return G("missing <key>");t[a]=A,a=null}else 2===i?t.push(A):t=A}function U(A){if(isNaN(A))return G("cannot parse integer");if(1===i){if(null===a)return G("missing <key>");t[a]=A,a=null}else 2===i?t.push(A):t=A}function P(A){if(1===i){if(null===a)return G("missing <key>");t[a]=A,a=null}else 2===i?t.push(A):t=A}function u(A){if(1===i){if(null===a)return G("missing <key>");t[a]=A,a=null}else 2===i?t.push(A):t=A}function y(A){if(1===i){if(null===a)return G("missing <key>");t[a]=A,a=null}else 2===i?t.push(A):t=A}function J(){let A=c(">"),B=!1;return 47===A.charCodeAt(A.length-1)&&(B=!0,A=A.substring(0,A.length-1)),{name:A.trim(),isClosed:B}}function S(A){if(A.isClosed)return"";let B=c("</");return e(">"),B.replace(/&#([0-9]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,10))})).replace(/&#x([0-9a-f]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,16))})).replace(/&|<|>|"|'/g,(function(A){switch(A){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return A}))}for(;E<g&&(o(),!(E>=g));){const w=A.charCodeAt(E);if(D(1),60!==w)return G("expected <");if(E>=g)return G("unexpected end of input");const c=A.charCodeAt(E);if(63===c){D(1),e("?>");continue}if(33===c){if(D(1),s("--")){e("--\x3e");continue}e(">");continue}if(47===c){if(D(1),o(),s("plist")){e(">");continue}if(s("dict")){e(">"),k();continue}if(s("array")){e(">"),R();continue}return G("unexpected closed tag")}let M=J();switch(M.name){case"dict":1===i?r():2===i?L():(t={},null!==Q&&(t[Q]={filename:B,line:C,char:I}),F(1,t)),M.isClosed&&k();continue;case"array":1===i?N():2===i?H():(t=[],F(2,t)),M.isClosed&&R();continue;case"key":p=S(M),1!==i?G("unexpected <key>"):null!==a?G("too many <key>"):a=p;continue;case"string":K(S(M));continue;case"real":Y(parseFloat(S(M)));continue;case"integer":U(parseInt(S(M),10));continue;case"date":P(new Date(S(M)));continue;case"data":u(S(M));continue;case"true":S(M),y(!0);continue;case"false":S(M),y(!1);continue}if(!/^plist/.test(M.name))return G("unexpected opened tag "+M.name)}var p;return t}function fA(A,B){throw new Error("Near offset "+A.pos+": "+B+" ~~~"+A.source.substr(A.pos,50)+"~~~")}class xA{constructor(A){this.source=A,this.pos=0,this.len=A.length,this.line=1,this.char=0}}class mA{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(A){return{filename:A,line:this.line,char:this.char}}}function OA(A,B){B.value=null,B.type=0,B.offset=-1,B.len=-1,B.line=-1,B.char=-1;let Q,g=A.source,E=A.pos,C=A.len,I=A.line,D=A.char;for(;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),32!==Q&&9!==Q&&13!==Q){if(10!==Q)break;E++,I++,D=0}else E++,D++}if(B.offset=E,B.line=I,B.char=D,34===Q){for(B.type=1,E++,D++;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),E++,D++,92!==Q){if(34===Q)break}else E++,D++}B.value=g.substring(B.offset+1,E-1).replace(/\\u([0-9A-Fa-f]{4})/g,((A,B)=>String.fromCodePoint(parseInt(B,16)))).replace(/\\(.)/g,((B,Q)=>{switch(Q){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:fA(A,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===Q)B.type=2,E++,D++;else if(123===Q)B.type=3,E++,D++;else if(93===Q)B.type=4,E++,D++;else if(125===Q)B.type=5,E++,D++;else if(58===Q)B.type=6,E++,D++;else if(44===Q)B.type=7,E++,D++;else if(110===Q){if(B.type=8,E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;E++,D++}else if(116===Q){if(B.type=9,E++,D++,Q=g.charCodeAt(E),114!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else if(102===Q){if(B.type=10,E++,D++,Q=g.charCodeAt(E),97!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),115!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else for(B.type=11;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),!(46===Q||Q>=48&&Q<=57||101===Q||69===Q||45===Q||43===Q))break;E++,D++}return B.len=E-B.offset,null===B.value&&(B.value=g.substr(B.offset,B.len)),A.pos=E,A.line=I,A.char=D,!0}class qA{constructor(A,B){this._onigLibPromise=B,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=A}dispose(){for(const A of this._grammars.values())A.dispose()}setTheme(A){this._theme=A}getColorMap(){return this._theme.getColorMap()}addGrammar(A,B){this._rawGrammars.set(A.scopeName,A),B&&this._injectionGrammars.set(A.scopeName,B)}lookup(A){return this._rawGrammars.get(A)}injections(A){return this._injectionGrammars.get(A)}getDefaults(){return this._theme.getDefaults()}themeMatch(A){return this._theme.match(A)}async grammarForScopeName(A,B,Q,g,E){if(!this._grammars.has(A)){let C=this._rawGrammars.get(A);if(!C)return null;this._grammars.set(A,function(A,B,Q,g,E,C,I,D){return new uA(A,B,Q,g,E,C,I,D)}(A,C,B,Q,g,E,this,await this._onigLibPromise))}return this._grammars.get(A)}}function bA(A,B){let Q=0;const g=[];let E=A,C=B;for(;E!==C;)E&&(!C||E.depth>=C.depth)?(Q++,E=E.parent):(g.push(C.toStateStackFrame()),C=C.parent);return{pops:Q,newFrames:g.reverse()}}function WA(A,B){let Q=A;for(let A=0;A<B.pops;A++)Q=Q.parent;for(const A of B.newFrames)Q=SA.pushFrame(Q,A);return Q}class TA{constructor(A){this._options=A,this._syncRegistry=new qA(eA.createFromRawTheme(A.theme,A.colorMap),A.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(A,B){this._syncRegistry.setTheme(eA.createFromRawTheme(A,B))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(A,B,Q){return this.loadGrammarWithConfiguration(A,B,{embeddedLanguages:Q})}loadGrammarWithConfiguration(A,B,Q){return this._loadGrammar(A,B,Q.embeddedLanguages,Q.tokenTypes,new pA(Q.balancedBracketSelectors||[],Q.unbalancedBracketSelectors||[]))}loadGrammar(A){return this._loadGrammar(A,0,null,null,null)}async _loadGrammar(A,B,Q,g,E){const C=new q(this._syncRegistry,A);for(;C.Q.length>0;)await Promise.all(C.Q.map((A=>this._loadSingleGrammar(A.scopeName)))),C.processQueue();return this._grammarForScopeName(A,B,Q,g,E)}async _loadSingleGrammar(A){return this._ensureGrammarCache.has(A)||this._ensureGrammarCache.set(A,this._doLoadSingleGrammar(A)),this._ensureGrammarCache.get(A)}async _doLoadSingleGrammar(A){const B=await this._options.loadGrammar(A);if(B){const Q="function"==typeof this._options.getInjections?this._options.getInjections(A):void 0;this._syncRegistry.addGrammar(B,Q)}}async addGrammar(A,B=[],Q=0,g=null){return this._syncRegistry.addGrammar(A,B),await this._grammarForScopeName(A.scopeName,Q,g)}_grammarForScopeName(A,B=0,Q=null,g=null,E=null){return this._syncRegistry.grammarForScopeName(A,B,Q,g,E)}}const XA=SA.NULL,vA=function(A,B=null){return null!==B&&/\.json$/.test(B)?(Q=A,L?function(A,B,Q){let g=new xA(A),E=new mA,C=0,I=null,D=[],w=[];function o(){D.push(C),w.push(I)}function s(){C=D.pop(),I=w.pop()}function e(A){fA(g,A)}for(;OA(g,E);){if(0===C){if(null!==I&&e("too many constructs in root"),3===E.type){I={},I.$vscodeTextmateLocation=E.toLocation(B),o(),C=1;continue}if(2===E.type){I=[],o(),C=4;continue}e("unexpected token in root")}if(2===C){if(5===E.type){s();continue}if(7===E.type){C=3;continue}e("expected , or }")}if(1===C||3===C){if(1===C&&5===E.type){s();continue}if(1===E.type){let A=E.value;if(OA(g,E)&&6===E.type||e("expected colon"),OA(g,E)||e("expected value"),C=2,1===E.type){I[A]=E.value;continue}if(8===E.type){I[A]=null;continue}if(9===E.type){I[A]=!0;continue}if(10===E.type){I[A]=!1;continue}if(11===E.type){I[A]=parseFloat(E.value);continue}if(2===E.type){let B=[];I[A]=B,o(),C=4,I=B;continue}if(3===E.type){let Q={};Q.$vscodeTextmateLocation=E.toLocation(B),I[A]=Q,o(),C=1,I=Q;continue}}e("unexpected token in dict")}if(5===C){if(4===E.type){s();continue}if(7===E.type){C=6;continue}e("expected , or ]")}if(4===C||6===C){if(4===C&&4===E.type){s();continue}if(C=5,1===E.type){I.push(E.value);continue}if(8===E.type){I.push(null);continue}if(9===E.type){I.push(!0);continue}if(10===E.type){I.push(!1);continue}if(11===E.type){I.push(parseFloat(E.value));continue}if(2===E.type){let A=[];I.push(A),o(),C=4,I=A;continue}if(3===E.type){let A={};A.$vscodeTextmateLocation=E.toLocation(B),I.push(A),o(),C=1,I=A;continue}e("unexpected token in array")}e("unknown state")}return 0!==w.length&&e("unclosed constructs"),I}(Q,B):JSON.parse(Q)):function(A,B){return L?function(A,B,Q){return dA(A,B,"$vscodeTextmateLocation")}(A,B):function(A){return dA(A,null,null)}(A)}(A,B);var Q};var ZA=N.Bz,jA=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(A){var B,Q,g=void 0!==(A=A||{})?A:{};g.ready=new Promise((function(A,g){B=A,Q=g}));var E,C=Object.assign({},g),I=!1;E=function(A){let B;return"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(B=read(A,"binary"),"object"==typeof B||L(Q),B);var Q},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var D,w,o=g.print||console.log.bind(console),s=g.printErr||console.warn.bind(console);Object.assign(g,C),C=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(D=g.wasmBinary),g.noExitRuntime,"object"!=typeof WebAssembly&&L("no native wasm support detected");var e,c,i,t=!1,M="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function h(A,B,Q){for(var g=B+Q,E=B;A[E]&&!(E>=g);)++E;if(E-B>16&&A.buffer&&M)return M.decode(A.subarray(B,E));for(var C="";B<E;){var I=A[B++];if(128&I){var D=63&A[B++];if(192!=(224&I)){var w=63&A[B++];if((I=224==(240&I)?(15&I)<<12|D<<6|w:(7&I)<<18|D<<12|w<<6|63&A[B++])<65536)C+=String.fromCharCode(I);else{var o=I-65536;C+=String.fromCharCode(55296|o>>10,56320|1023&o)}}else C+=String.fromCharCode((31&I)<<6|D)}else C+=String.fromCharCode(I)}return C}function a(A){e=A,g.HEAP8=new Int8Array(A),g.HEAP16=new Int16Array(A),g.HEAP32=new Int32Array(A),g.HEAPU8=c=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=i=new Uint32Array(A),g.HEAPF32=new Float32Array(A),g.HEAPF64=new Float64Array(A)}g.INITIAL_MEMORY;var F=[],n=[],G=[],r=0,N=null;function L(A){g.onAbort&&g.onAbort(A),s(A="Aborted("+A+")"),t=!0,A+=". Build with -sASSERTIONS for more info.";var B=new WebAssembly.RuntimeError(A);throw Q(B),B}var H,k,R,K="data:application/octet-stream;base64,";function Y(A){return A.startsWith(K)}function U(A){try{if(A==H&&D)return new Uint8Array(D);if(E)return E(A);throw"both async and sync fetching of the wasm failed"}catch(A){L(A)}}function P(A){for(;A.length>0;)A.shift()(g)}function u(A){try{return w.grow(A-e.byteLength+65535>>>16),a(w.buffer),1}catch(A){}}Y(H="onig.wasm")||(k=H,H=g.locateFile?g.locateFile(k,""):""+k),R="undefined"!=typeof dateNow?dateNow:()=>performance.now();var y=[null,[],[]];function J(A,B){var Q=y[A];0===B||10===B?((1===A?o:s)(h(Q,0)),Q.length=0):Q.push(B)}var S,p={emscripten_get_now:R,emscripten_memcpy_big:function(A,B,Q){c.copyWithin(A,B,B+Q)},emscripten_resize_heap:function(A){var B=c.length,Q=2147483648;if((A>>>=0)>Q)return!1;let g=(A,B)=>A+(B-A%B)%B;for(var E=1;E<=4;E*=2){var C=B*(1+.2/E);if(C=Math.min(C,A+100663296),u(Math.min(Q,g(Math.max(A,C),65536))))return!0}return!1},fd_write:function(A,B,Q,g){for(var E=0,C=0;C<Q;C++){var I=i[B>>2],D=i[B+4>>2];B+=8;for(var w=0;w<D;w++)J(A,c[I+w]);E+=D}return i[g>>2]=E,0}};function l(A){function Q(){S||(S=!0,g.calledRun=!0,t||(P(n),B(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)A=g.postRun.shift(),G.unshift(A);var A;P(G)}()))}r>0||(function(){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)A=g.preRun.shift(),F.unshift(A);var A;P(F)}(),r>0||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),Q()}),1)):Q()))}if(function(){var A={env:p,wasi_snapshot_preview1:p};function B(A,B){var Q,E=A.exports;g.asm=E,a((w=g.asm.memory).buffer),g.asm.__indirect_function_table,Q=g.asm.__wasm_call_ctors,n.unshift(Q),function(A){if(r--,g.monitorRunDependencies&&g.monitorRunDependencies(r),0==r&&N){var B=N;N=null,B()}}()}function E(A){B(A.instance)}function C(B){return(!D&&I&&"function"==typeof fetch?fetch(H,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+H+"'";return A.arrayBuffer()})).catch((function(){return U(H)})):Promise.resolve().then((function(){return U(H)}))).then((function(B){return WebAssembly.instantiate(B,A)})).then((function(A){return A})).then(B,(function(A){s("failed to asynchronously prepare wasm: "+A),L(A)}))}if(r++,g.monitorRunDependencies&&g.monitorRunDependencies(r),g.instantiateWasm)try{return g.instantiateWasm(A,B)}catch(A){s("Module.instantiateWasm callback failed with error: "+A),Q(A)}(D||"function"!=typeof WebAssembly.instantiateStreaming||Y(H)||"function"!=typeof fetch?C(E):fetch(H,{credentials:"same-origin"}).then((function(B){return WebAssembly.instantiateStreaming(B,A).then(E,(function(A){return s("wasm streaming compile failed: "+A),s("falling back to ArrayBuffer instantiation"),C(E)}))}))).catch(Q)}(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.__wasm_call_ctors).apply(null,arguments)},g.___errno_location=function(){return(g.___errno_location=g.asm.__errno_location).apply(null,arguments)},g._omalloc=function(){return(g._omalloc=g.asm.omalloc).apply(null,arguments)},g._ofree=function(){return(g._ofree=g.asm.ofree).apply(null,arguments)},g._getLastOnigError=function(){return(g._getLastOnigError=g.asm.getLastOnigError).apply(null,arguments)},g._createOnigScanner=function(){return(g._createOnigScanner=g.asm.createOnigScanner).apply(null,arguments)},g._freeOnigScanner=function(){return(g._freeOnigScanner=g.asm.freeOnigScanner).apply(null,arguments)},g._findNextOnigScannerMatch=function(){return(g._findNextOnigScannerMatch=g.asm.findNextOnigScannerMatch).apply(null,arguments)},g._findNextOnigScannerMatchDbg=function(){return(g._findNextOnigScannerMatchDbg=g.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},g.stackSave=function(){return(g.stackSave=g.asm.stackSave).apply(null,arguments)},g.stackRestore=function(){return(g.stackRestore=g.asm.stackRestore).apply(null,arguments)},g.stackAlloc=function(){return(g.stackAlloc=g.asm.stackAlloc).apply(null,arguments)},g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.dynCall_jiji).apply(null,arguments)},g.UTF8ToString=function(A,B){return A?h(c,A,B):""},N=function A(){S||l(),S||(N=A)},g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return l(),A.ready});let VA=null;class zA{static _utf8ByteLength(A){let B=0;for(let Q=0,g=A.length;Q<g;Q++){const E=A.charCodeAt(Q);let C=E,I=!1;if(E>=55296&&E<=56319&&Q+1<g){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(C=65536+(E-55296<<10)|B-56320,I=!0)}B+=C<=127?1:C<=2047?2:C<=65535?3:4,I&&Q++}return B}constructor(A){const B=A.length,Q=zA._utf8ByteLength(A),g=Q!==B,E=g?new Uint32Array(B+1):null;g&&(E[B]=Q);const C=g?new Uint32Array(Q+1):null;g&&(C[Q]=B);const I=new Uint8Array(Q);let D=0;for(let Q=0;Q<B;Q++){const w=A.charCodeAt(Q);let o=w,s=!1;if(w>=55296&&w<=56319&&Q+1<B){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(o=65536+(w-55296<<10)|B-56320,s=!0)}g&&(E[Q]=D,s&&(E[Q+1]=D),o<=127?C[D+0]=Q:o<=2047?(C[D+0]=Q,C[D+1]=Q):o<=65535?(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q):(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q,C[D+3]=Q)),o<=127?I[D++]=o:o<=2047?(I[D++]=192|(1984&o)>>>6,I[D++]=128|(63&o)>>>0):o<=65535?(I[D++]=224|(61440&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0):(I[D++]=240|(1835008&o)>>>18,I[D++]=128|(258048&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0),s&&Q++}this.utf16Length=B,this.utf8Length=Q,this.utf16Value=A,this.utf8Value=I,this.utf16OffsetToUtf8=E,this.utf8OffsetToUtf16=C}createString(A){const B=A._omalloc(this.utf8Length);return A.HEAPU8.set(this.utf8Value,B),B}}class _A{constructor(A){if(this.id=++_A.LAST_ID,!VA)throw new Error("Must invoke loadWASM first.");this._onigBinding=VA,this.content=A;const B=new zA(A);this.utf16Length=B.utf16Length,this.utf8Length=B.utf8Length,this.utf16OffsetToUtf8=B.utf16OffsetToUtf8,this.utf8OffsetToUtf16=B.utf8OffsetToUtf16,this.utf8Length<1e4&&!_A._sharedPtrInUse?(_A._sharedPtr||(_A._sharedPtr=VA._omalloc(1e4)),_A._sharedPtrInUse=!0,VA.HEAPU8.set(B.utf8Value,_A._sharedPtr),this.ptr=_A._sharedPtr):this.ptr=B.createString(VA)}convertUtf8OffsetToUtf16(A){return this.utf8OffsetToUtf16?A<0?0:A>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[A]:A}convertUtf16OffsetToUtf8(A){return this.utf16OffsetToUtf8?A<0?0:A>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[A]:A}dispose(){this.ptr===_A._sharedPtr?_A._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}_A.LAST_ID=0,_A._sharedPtr=0,_A._sharedPtrInUse=!1;class $A{constructor(A){if(!VA)throw new Error("Must invoke loadWASM first.");const B=[],Q=[];for(let g=0,E=A.length;g<E;g++){const E=new zA(A[g]);B[g]=E.createString(VA),Q[g]=E.utf8Length}const g=VA._omalloc(4*A.length);VA.HEAPU32.set(B,g/4);const E=VA._omalloc(4*A.length);VA.HEAPU32.set(Q,E/4);const C=VA._createOnigScanner(g,E,A.length);for(let Q=0,g=A.length;Q<g;Q++)VA._ofree(B[Q]);VA._ofree(E),VA._ofree(g),0===C&&function(A){throw new Error(A.UTF8ToString(A._getLastOnigError()))}(VA),this._onigBinding=VA,this._ptr=C}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(A,B,Q){let g=false,E=0;if("number"==typeof Q?(8&Q&&(g=!0),E=Q):"boolean"==typeof Q&&(g=Q),"string"==typeof A){A=new _A(A);const Q=this._findNextMatchSync(A,B,g,E);return A.dispose(),Q}return this._findNextMatchSync(A,B,g,E)}_findNextMatchSync(A,B,Q,g){const E=this._onigBinding;let C;if(C=Q?E._findNextOnigScannerMatchDbg(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g):E._findNextOnigScannerMatch(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g),0===C)return null;const I=E.HEAPU32;let D=C/4;const w=I[D++],o=I[D++];let s=[];for(let B=0;B<o;B++){const Q=A.convertUtf8OffsetToUtf16(I[D++]),g=A.convertUtf8OffsetToUtf16(I[D++]);s[B]={start:Q,end:g,length:g-Q}}return{index:w,captureIndices:s}}}let AB=!1,BB=null;function QB(A){if(AB)return BB;let B,Q,g,E;if(AB=!0,function(A){return"function"==typeof A.instantiator}(A))B=A.instantiator,Q=A.print;else{let g;!function(A){return void 0!==A.data}(A)?g=A:(g=A.data,Q=A.print),B=function(A){return"undefined"!=typeof Response&&A instanceof Response}(g)?"function"==typeof WebAssembly.instantiateStreaming?function(A){return B=>WebAssembly.instantiateStreaming(A,B)}(g):function(A){return async B=>{const Q=await A.arrayBuffer();return WebAssembly.instantiate(Q,B)}}(g):function(A){return B=>WebAssembly.instantiate(A,B)}(g)}return BB=new Promise(((A,B)=>{g=A,E=B})),function(A,B,Q,g){jA({print:B,instantiateWasm:(B,Q)=>{if("undefined"==typeof performance){const A=()=>Date.now();B.env.emscripten_get_now=A,B.wasi_snapshot_preview1.emscripten_get_now=A}return A(B).then((A=>Q(A.instance)),g),{}}}).then((A=>{VA=A,Q()}))}(B,Q,g,E),BB}function gB(A){return new _A(A)}function EB(A){return new $A(A)}function CB(A){const B=n[A];if(!B)return;const{id:Q}=G[B];return{id:Q,scopeName:B}}const IB=new Map;let DB,wB;async function oB(A){if(IB.has(A))return IB.get(A);const Q=function(A){return G[A]}(A);if(!Q)return Promise.resolve(void 0);let g;if(void 0===DB&&(g=sB(Q.path),DB=g.then((()=>!0)).catch((()=>!1))),void 0===wB&&(wB=await DB),wB){const B=g||sB(Q.path);return IB.set(A,B),B}const E=B(`grammars/${Q.id}`);Q.embeddedScopes.forEach((A=>{if(!IB.has(A)){const B=E.then((B=>B.find((B=>B.scopeName===A))));IB.set(A,B)}}));const C=E.then((B=>B.find((B=>B.scopeName===A))));return IB.set(A,C),C}async function sB(B){return await A()}const eB=30720,cB=16744448,iB=16775168,tB=11,MB=15,hB={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function aB(A,B,Q,g){const{tokens:E,ruleStack:C}=A.tokenizeLine2(Q,B),I=[];let D=Q.length;for(let A=E.length-2;A>=0;A-=2){const B=E[A],g=E[A+1],C=Q.slice(B,D);I.unshift({content:C,metadata:g}),D=B}let w=[];if(null==g?void 0:g.preserveWhitespace)w=I;else for(let A=0;A<I.length;A++){const B=I[A];if(""!==B.content.trim()){const A=w[w.length-1];A&&(A.metadata&iB)==(B.metadata&iB)?A.content+=B.content:w.push(B)}else w.length>0?w[w.length-1].content+=B.content:A<I.length-1?I[A+1].content=B.content+I[A+1].content:w.push(B)}return{rawTokens:w,nextStack:C}}function FB(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=aB(B,g,A,{preserveWhitespace:!0}),I=E.map((({content:A,metadata:B})=>({content:A,style:nB(B,Q)}))),D=function(A,B,Q,g){const{tokens:E}=Q.tokenizeLine(A,B),C=[];for(let B=0;B<E.length;B++){const{startIndex:Q,endIndex:I,scopes:D}=E[B];let w=0;const o=g.find((A=>{if(w+=A.content.length,Q<w)return!0}));C.push(Object.assign(Object.assign({},o),{content:A.slice(Q,I),scopes:D.reverse()}))}return C}(A,g,B,I);return g=C,D}))}function nB(A,B){const Q={color:B[(A&cB)>>>MB]},g=(A&eB)>>>tB;return g&hB.Italic&&(Q.fontStyle="italic"),g&hB.Bold&&(Q.fontWeight="bold"),g&hB.Underline&&(Q.textDecoration="underline"),g&hB.Strikethrough&&(Q.textDecoration="line-through"),Q}var GB=function(A){var B=null;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)B=Buffer.from(A,"base64");else{var Q=globalThis.atob(A),g=Q.length;B=new Uint8Array(new ArrayBuffer(g));for(var E=0;E<g;E++)B[E]=Q.charCodeAt(E)}return B}("AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawB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ACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAA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AgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgC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QQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0PC0GxLQ8LQdEtDwtB7y0PC0GOLg8LQaouDwtBzi4PC0HlLg8LQZEvDwtBti8PC0HNLw8LQeovDwtBkTAPC0GpMA8LQb4wDwtB1TAPC0HqMA8LQYMxDwtBlzEPC0G6MQ8LQdkxDwtB8jEPC0GNMiEBCyABC8UJAQV/IwBBIGsiByQAIAcgBTYCFCAAQYACIAQgBRC8ASADIAJrQQJ0akEEakGAAkgEQCAAEK0BIABqQbrAvAE2AABBlL0SIAAQeiAAaiEAIAIgA0kEQCAHQRlqIQoDQAJAIAIgASgCABEBAEEBRwRAIAIgASgCABEBACEFAkAgASgCDEEBRwRAIAVBAEoNAQwDCyAFQQBMDQIgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAgNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAgsDQCAFIQggByACLQAANgIQIAdBGmpBBUGrMiAHQRBqEKkBAkBBlL0SIAdBGmoQeiIJQQBMDQAgB0EaaiEFIAlBB3EiBARAQQAhBgNAIAAgBS0AADoAACAAQQFqIQAgBUEBaiEFIAZBAWoiBiAERw0ACwsgCUEBa0EHSQ0AIAkgCmohBANAIAAgBS0AADoAACAAIAUtAAE6AAEgACAFLQACOgACIAAgBS0AAzoAAyAAIAUtAAQ6AAQgACAFLQAFOgAFIAAgBS0ABjoABiAAIAUtAAc6AAcgAEEIaiEAIAVBB2ohBiAFQQhqIQUgBCAGRw0ACwsgAkEBaiECIAhBAWshBSAIQQJODQALDAELAn8gAi0AACIFQS9HBEAgBUHcAEYEQCAAQdwAOgAAIABBAWohACACQQFqIgIgASgCABEBACIFQQBMDQMgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAwNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAwtBASEGIAAgBUEHIAEoAjARAAANARogACACLQAAQQkgASgCMBEAAA0BGiAHIAItAAA2AgAgB0EaakEFQasyIAcQqQEgAkEBaiECQZS9EiAHQRpqEHoiCEEATA0CIAhBAWshCSAHQRpqIQUgCEEHcSIEBEBBACEGA0AgACAFLQAAOgAAIABBAWohACAFQQFqIQUgBkEBaiIGIARHDQALCyAJQQdJDQIgCCAKaiEEA0AgACAFLQAAOgAAIAAgBS0AAToAASAAIAUtAAI6AAIgACAFLQADOgADIAAgBS0ABDoABCAAIAUtAAU6AAUgACAFLQAGOgAGIAAgBS0ABzoAByAAQQhqIQAgBUEHaiEGIAVBCGohBSAEIAZHDQALDAILIABB3AA6AABBAiEGIABBAWoLIAItAAA6AAAgACAGaiEAIAJBAWohAgsgAiADSQ0ACwsgAEEvOwAACyAHQSBqJAALTwECfwJAQQUQjQEiAkEATA0AQRAQywEiAUUNACABQQA2AgggASAANgIAIAEgAjYCBCABIAJBBBDPASICNgIMIAIEQCABDwsgARDMAQtBAAuAAwEBfwJAIABBB0wNAEEBIQEgAEEQSQ0AQQIhASAAQSBJDQBBAyEBIABBwABJDQBBBCEBIABBgAFJDQBBBSEBIABBgAJJDQBBBiEBIABBgARJDQBBByEBIABBgAhJDQBBCCEBIABBgBBJDQBBCSEBIABBgCBJDQBBCiEBIABBgMAASQ0AQQshASAAQYCAAUkNAEEMIQEgAEGAgAJJDQBBDSEBIABBgIAESQ0AQQ4hASAAQYCACEkNAEEPIQEgAEGAgBBJDQBBECEBIABBgIAgSQ0AQREhASAAQYCAwABJDQBBEiEBIABBgICAAUkNAEETIQEgAEGAgIACSQ0AQRQhASAAQYCAgARJDQBBFSEBIABBgICACEkNAEEWIQEgAEGAgIAQSQ0AQRchASAAQYCAgCBJDQBBGCEBIABBgICAwABJDQBBGSEBIABBgICAgAFJDQBBGiEBIABBgICAgAJJDQBBGyEBIABBgICAgARJDQBBfw8LIAFBAnRB4DJqKAIAC14BA38gACgCBCIBQQBKBEADQCAAKAIMIAJBAnRqKAIAIgMEQANAIAMoAgwhASADEMwBIAEhAyABDQALIAAoAgQhAQsgAkEBaiICIAFIDQALCyAAKAIMEMwBIAAQzAEL4AEBBX8gASAAKAIAKAIEEQEAIQUCQCAAKAIMIAUgACgCBHBBAnRqKAIAIgRFDQACQAJAIAQoAgAgBUcNACABIAQoAgQiA0YEQCAEIQMMAgsgASADIAAoAgAoAgARAAANACAEIQMMAQsgBCgCDCIDRQ0BIARBDGohBANAAkAgBSADKAIARgRAIAMoAgQiBiABRg0DIAEgBiAAKAIAKAIAEQAAIQYgBCgCACEDIAZFDQELIANBDGohBCADKAIMIgMNAQwDCwsgA0UNAQtBASEHIAJFDQAgAiADKAIINgIACyAHC9MDAQl/IAEgACgCACgCBBEBACEGAkACQAJAIAAoAgwgBiAAKAIEcCIFQQJ0aigCACIERQ0AIAYgBCgCAEYEQCAEKAIEIgMgAUYNAiABIAMgACgCACgCABEAAEUNAgsgBCgCDCIDRQ0AIARBDGohBANAAkAgBiADKAIARgRAIAMoAgQiByABRg0FIAEgByAAKAIAKAIAEQAAIQcgBCgCACEDIAdFDQELIANBDGohBCADKAIMIgMNAQwCCwsgAw0CCyAAKAIIIAAoAgQiCG1BBk4EQAJAIAhBAWoQjQEiBUEATARAIAghBQwBCyAFQQQQzwEiCkUEQCAIIQUMAQsgACgCDCELIAhBAEoEQANAIAsgCUECdGooAgAiAwRAA0AgAygCDCEEIAMgCiADKAIAIAVwQQJ0aiIHKAIANgIMIAcgAzYCACAEIgMNAAsLIAlBAWoiCSAIRw0ACwsgCxDMASAAIAo2AgwgACAFNgIECyAGIAVwIQULQRAQywEiA0UEQEF7DwsgAyACNgIIIAMgATYCBCADIAY2AgAgAyAAKAIMIAVBAnRqIgQoAgA2AgwgBCADNgIAIAAgACgCCEEBajYCCEEADwsgBCEDCyADIAI2AghBAQvtAQEFfyAAKAIEIgNBAEoEQANAAkBBACEFIAZBAnQiByAAKAIMaigCACIEBEADQCAEIQMCQAJAAkACQCAEKAIEIAQoAgggAiABEQIADgQBBgIAAwsgBiAAKAIETg0FIAAoAgwgB2ooAgAiA0UNBQNAIAMgBEYNASADKAIMIgMNAAsMBQsgBCgCDCEDIAQhBQwBCyAEKAIMIQMCfyAFRQRAIAAoAgwgB2oMAQsgBUEMagsgAzYCACAEKAIMIQMgBBDMASAAIAAoAghBAWs2AggLIAMiBA0ACyAAKAIEIQMLIAZBAWoiBiADSA0BCwsLC48DAQp/AkAgAEEAQfcgIAEgAhCTASIDDQAgAEH3IEH6ICABIAIQkwEiAw0AQQAhAyAAQYCAgIAEcUUNAEEAQYUCIAEgAhCUASIDDQBBhQJBiQIgASACEJQBIgMNACMAQRBrIgQkAEGgqBIiB0EMaiEIQbCoEiEJQQEhAAJ/A0AgAEEBcyEMAkADQEEBIQpBACEDIAgoAgAiBUEATA0BA0AgBCAJIANBAnRqKAIAIgA2AgwCQAJAIAAgB0EDIAIgAREDACILDQBBACEAIANFDQEDQCAEIAkgAEECdGooAgA2AgggBCgCDCAEQQhqQQEgAiABEQMAIgsNASAEKAIIIARBDGpBASACIAERAwAiCw0BIAMgAEEBaiIARw0ACwwBCyAKIAxyQQFxRQ0CIAtBACAKGwwFCyADQQFqIgMgBUghCiADIAVHDQALCyAIKAIAIQULIAUgBmpBBGoiBkECdEGgqBJqIgdBEGohCSAHQQxqIQggBkHIAEgiAA0AC0EACyEAIARBEGokACAAIQMLIAMLygIBBn8jAEEQayIFJAACQAJAIAEgAk4NACAAQQFxIQgDQCAFIAFBAnQiAEGAnBFqIgYoAgAiBzYCDCAHQYABTyAIcQ0BIAEgAEGEnBFqIgooAgAiAUEASgR/IAZBCGohCUEAIQcDQCAFIAkgB0ECdGooAgAiADYCCAJAIABB/wBLIAhxDQAgBSgCDCAFQQhqQQEgBCADEQMAIgYNBSAFKAIIIAVBDGpBASAEIAMRAwAiBg0FQQAhACAHRQ0AA0AgBSAJIABBAnRqKAIAIgY2AgQgBkH/AEsgCHFFBEAgBSgCCCAFQQRqQQEgBCADEQMAIgYNByAFKAIEIAVBCGpBASAEIAMRAwAiBg0HCyAAQQFqIgAgB0cNAAsLIAdBAWoiByABRw0ACyAKKAIABSABC2pBAmoiASACSA0ACwtBACEGCyAFQRBqJAAgBgutAgEKfyMAQRBrIgUkAAJ/QQAgACABTg0AGiAAIAFIIQQDQCAEQQFzIQ0gAEECdEHwnxJqIgpBDGohCyAKQQhqIQwCQANAQQEhCEEAIQYgDCgCACIHQQBMDQEDQCAFIAsgBkECdGooAgAiBDYCDAJAAkAgBCAKQQIgAyACEQMAIgkNAEEAIQQgBkUNAQNAIAUgCyAEQQJ0aigCADYCCCAFKAIMIAVBCGpBASADIAIRAwAiCQ0BIAUoAgggBUEMakEBIAMgAhEDACIJDQEgBiAEQQFqIgRHDQALDAELIAggDXJBAXFFDQIgCUEAIAgbDAULIAZBAWoiBiAHSCEIIAYgB0cNAAsLIAwoAgAhBwsgACAHakEDaiIAIAFIIgQNAAtBAAshBCAFQRBqJAAgBAtqAQR/QYcIIQIDQCABIAJqQQF2IgNBAWogASADQQxsQeA3aigCBCAASSIEGyIBIAIgAyAEGyICSQ0AC0EAIQICQCABQYYISw0AIAFBDGwiAUHgN2ooAgAgAEsNACABQeA3aigCCCECCyACC84BAQV/IAIgASAAKAIAEQEAIAFqIgZLBH8CQANAQYcIIQVBACEBIAYgAiAAKAIUEQAAIQcDQCABIAVqQQF2IghBAWogASAIQQxsQeA3aigCBCAHSSIJGyIBIAUgCCAJGyIFSQ0AC0EAIQUgAUGGCEsNASABQQxsIgFB4DdqKAIAIAdLDQEgAUHgN2ooAggiBUESSw0BQQEgBXRB0IAQcUUNASAGIAAoAgARAQAgBmoiBiACSQ0AC0EADwsgAyAHNgIAIAQgBTYCAEEBBSAFCwtrAAJAIABB/wFLDQAgAUEOSw0AIABBAXRB4DNqLwEAIAF2QQFxDwsCfyABQdUETwRAQXogAUHVBGsiAUGwwRIoAgBODQEaIAFBA3RBwMESaigCBCAAEFMPCyABQQJ0QcCqEmooAgAgABBTCwu7BQEIfyMAQdAAayIDJAACQCABIAJJBEADQEGhfiEIIAEgAiAAKAIUEQAAIgVB/wBLDQICQAJAAkAgBUEgaw4OAgEBAQEBAQEBAQEBAQIACyAFQd8ARg0BCyADQRBqIARqIAU6AAAgBEE7Sg0DIARBAWohBAsgASAAKAIAEQEAIAFqIgEgAkkNAAsLIANBEGogBGoiAUEAOgAAAkBBtMESKAIAIgVFDQAgA0EANgIMIwBBEGsiACQAIAAgATYCDCAAIANBEGo2AgggBSAAQQhqIANBDGoQjwEaIABBEGokACADKAIMIgFFDQAgASgCACEIDAELQaF+IQggBEEBayIBQSxLDQAgBCEGIAQhCSAEIQcgBCEAIAQhAiAEIQUCQAJAAkACQAJAAkACQCABDg8GBQQEAwICAgICAgEBAQEACyAEIAMtAB9BAXRBgNsPai8BAGohBgsgBiADLQAbQQF0QYDbD2ovAQBqIQkLIAkgAy0AFUEBdEGA2w9qLwEAaiEHCyAHIAMtABRBAXRBgNsPai8BAGohAAsgACADLQASQQF0QYDbD2ovAQBqIQILIAIgAy0AEUEBdEGA2w9qLwEAaiEFCyADQRBqIAFqLQAAQQF0QYDbD2ovAQAgBSADLQAQIgBBAXRBgNsPai8BBGpqIgZBoDBLDQAgBkECdEHwzQ1qLgEAIgFBAEgNACABQf//A3FB9I4PaiIKLQAAIABzQd8BcQ0AIANBEGohBSAKIQIgBCEBAkADQCABRQ0BIAItAABB8O8Pai0AACEAIAUtAAAiCUHw7w9qLQAAIQcgCQRAIAFBAWshASACQQFqIQIgBUEBaiEFIAdB/wFxIABB/wFxRg0BCwsgB0H/AXEgAEH/AXFHDQELIAQgCmotAAANACAGQQJ0QfDNDWouAQIhCAsgA0HQAGokACAIC6QBAQN/IwBBEGsiASQAIAEgADYCDCABQQxqQQIQiQEhAwJAQZDfDyIAIAFBDGpBARCJAUH/AXFBAXRqLwECIANB/wFxQQF0IABqLwFGaiAAIAFBDGpBABCJAUH/AXFBAXRqLwEAaiIAQZsPSw0AIAEoAgwgAEEDdCIAQfDxD2oiAigCAEYEQCAAQfDxD2ouAQRBAE4NAQtBACECCyABQRBqJAAgAguPAQEDfyAAQQIQiQEhA0F/IQICQEHg4w8iASAAQQEQiQFB/wFxQQF0ai8BACADQf8BcUEBdCABai8BBmogASAAQQAQiQFB/wFxQQF0ai8BAGoiAUHMDksNACABQQF0QdDrEGouAQAiAUEATgRAIAAgAUH//wNxIgJBAnRBgJwRakEBEIgBRQ0BC0F/IQILIAILIgEBfyAAQf8ATQR/IABBAXRB0CFqLwEAIAF2QQFxBSACCwuOAwEDfyMAQTBrIgEkAAJAQZS9EiICQZENIgAgAiAAEHogAGpBAUEHQQBBAEEAQQAQDCIAQQBIDQBBlL0SQcsNIgAgAiAAEHogAGpBAUEIQQBBAEEAQQAQDCIAQQBIDQAgAUHYADYCACABQpGAgIAgNwMgQZS9EkG2DiIAIAIgABB6IABqQQNBCUECIAFBIGpBASABEAwiAEEASA0AIAFBfTYCACABQQE2AiBBlL0SQc0PIgAgAiAAEHogAGpBAUEKQQEgAUEgakEBIAEQDCIAQQBIDQAgAUE+NgIAIAFBAjYCIEGUvRJBnBAiACACIAAQeiAAakEDQQtBASABQSBqQQEgARAMIgBBAEgNACABQT42AgAgAUECNgIgQZS9EkHtECIAIAIgABB6IABqQQNBDEEBIAFBIGpBASABEAwiAEEASA0AIAFBETYCKCABQpGAgIDAADcDIEGUvRJB3xEiACACIAAQeiAAakEBQQ1BAyABQSBqQQBBABAMIgBBH3UgAHEhAAsgAUEwaiQAIAALEgAgAC0AAEECdEGQihFqKAIAC9YBAQR/AkAgAC0AACICQQJ0QZCKEWooAgAiAyABIABrIgEgASADShsiAUECSA0AIAFBAmshBEF/QQcgAWt0QX9zIAJxIQIgAUEBayIBQQNxIgUEQEEAIQMDQCAALQABQT9xIAJBBnRyIQIgAUEBayEBIABBAWohACADQQFqIgMgBUcNAAsLIARBA0kNAANAIAAtAARBP3EgAC0AAkE/cSACQQx0IAAtAAFBP3FBBnRyckEMdCAALQADQT9xQQZ0cnIhAiAAQQRqIQAgAUEEayIBDQALCyACCzUAAn9BASAAQYABSQ0AGkECIABBgBBJDQAaQQMgAEGAgARJDQAaQQRB8HwgAEGAgIABSRsLC8QBAQF/IABB/wBNBEAgASAAOgAAQQEPCwJ/An8gAEH/D00EQCABIABBBnZBwAFyOgAAIAFBAWoMAQsgAEH//wNNBEAgASAAQQx2QeABcjoAACABIABBBnZBP3FBgAFyOgABIAFBAmoMAQtB73wgAEH///8ASw0BGiABIABBEnZB8AFyOgAAIAEgAEEGdkE/cUGAAXI6AAIgASAAQQx2QT9xQYABcjoAASABQQNqCyICIABBP3FBgAFyOgAAIAIgAWtBAWoLC/IDAQN/IAEoAgAsAAAiBUEATgRAIAMgBUH/AXFB0B9qLQAAOgAAIAEgASgCAEEBajYCAEEBDwsCfyABKAIAIgQgAkGAvhIoAgARAAAhAiABIARB7L0SKAIAEQEAIgUgASgCAGo2AgACQAJAIABBAXEiBiACQf8AS3ENACACEJkBIgBFDQBB8J8SIQJB8HwhAQJAAkACQCAALwEGQQFrDgMAAgEECyAALgEEQQJ0QYCcEWooAgAiAUH/AEsgBnENAiABIANBiL4SKAIAEQAADAQLQaCoEiECCyACIAAuAQRBAnRqIQVBACEBQQAhBANAIAUgBEECdGooAgAgA0GIvhIoAgARAAAiAiABaiEBIAIgA2ohAyAEQQFqIgQgAC4BBkgNAAsMAQsCQCAFQQBMDQAgBUEHcSECIAVBAWtBB08EQCAFQXhxIQBBACEBA0AgAyAELQAAOgAAIAMgBC0AAToAASADIAQtAAI6AAIgAyAELQADOgADIAMgBC0ABDoABCADIAQtAAU6AAUgAyAELQAGOgAGIAMgBC0ABzoAByADQQhqIQMgBEEIaiEEIAFBCGoiASAARw0ACwsgAkUNAEEAIQEDQCADIAQtAAA6AAAgA0EBaiEDIARBAWohBCABQQFqIgEgAkcNAAsLIAUhAQsgAQsL7h4BEH8gAyEKQQAhAyMAQdAAayIFJAACQCAAIgZBAXEiCCABIAJBgL4SKAIAEQAAIgxB/wBLcQ0AIAFB7L0SKAIAEQEAIQAgBSAMNgIIIAUCfyAMIAwQmQEiB0UNABogDCAHLwEGQQFHDQAaIAcuAQRBAnRBgJwRaigCAAs2AhQCQCAGQYCAgIAEcSINRQ0AIAAgAWoiASACTw0AIAUgASACQYC+EigCABEAACIONgIMIAFB7L0SKAIAEQEAIQkCQCAOIgsQmQEiBkUNACAGLwEGQQFHDQAgBi4BBEECdEGAnBFqKAIAIQsLIAAgCWohBiAFIAs2AhgCQCABIAlqIgEgAk8NACAFIAEgAkGAvhIoAgARAAAiCzYCECABQey9EigCABEBACEBAkAgCyIDEJkBIgJFDQAgAi8BBkEBRw0AIAIuAQRBAnRBgJwRaigCACEDCyAFIAM2AhxBACEDIAVBFGoiCUEIEIkBIQICQCAJQQUQiQFB/wFxQfDpD2otAAAgAkH/AXFB8OkPai0AAGogCUECEIkBQf8BcUHw6Q9qLQAAaiICQQ1NBEAgCSACQQF0QfCJEWouAQAiAkECdEGgqBJqQQMQiAFFDQELQX8hAgsgAkEASA0AIAEgBmohCUEBIRAgAkECdCIHQaCoEmooAgwiBkEASgRAIAZBAXEhDSAHQbCoEmohBCAGQQFHBEAgBkF+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgCTYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAk2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAk2AgAgAiAEIANBAnRqKAIANgIICyAGIQMLIAUgB0GgqBJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIRALIAUgAigCBDYCMEEBIQhBASEPIAVBMGoQmgEiBEEATgRAIARBAnQiAEGAnBFqKAIEIgRBAEoEQCAFQTRqIABBiJwRaiAEQQJ0EKYBGgsgBEEBaiEPCyAFIAIoAgg2AkAgBUFAaxCaASICQQBOBEAgAkECdCIEQYCcEWooAgQiAkEASgRAIAVBxABqIARBiJwRaiACQQJ0EKYBGgsgAkEBaiEICyAQQQBMBEAgAyEEDAMLIA9BAEwhESADIQQDQCARRQRAIAVBIGogEkECdGohE0EAIQ0DQCAIQQBKBEAgEygCACIHIAxGIA1BAnQgBWooAjAiASAORnEhBkEAIQIDQCABIQACQCAGBEAgDiEAIAJBAnQgBWpBQGsoAgAgC0YNAQsgCiAEQRRsaiIDIAc2AgggA0EDNgIEIAMgCTYCACADIAA2AgwgAyACQQJ0IAVqQUBrKAIANgIQIARBAWohBAsgAkEBaiICIAhHDQALCyANQQFqIg0gD0cNAAsLIBJBAWoiEiAQRw0ACwwCCyAFQRRqIgJBBRCJASEBAkAgAkECEIkBQf8BcUHw5w9qLQAAIAFB/wFxQfDnD2otAABqIgFBOk0EQCACIAFBAXRB8IgRai4BACIBQQJ0QfCfEmpBAhCIAUUNAQtBfyEBCyABIgJBAEgNAEEBIQkgAkECdCILQfCfEmooAggiB0EASgRAIAdBAXEhDSALQfyfEmohBCAHQQFHBEAgB0F+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgBjYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAY2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAY2AgAgAiAEIANBAnRqKAIANgIICyAHIQMLIAUgC0HwnxJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIQkLIAUgAigCBDYCMCAFQTBqEJoBIgJBAEgEf0EBBSACQQJ0IgRBgJwRaigCBCICQQBKBEAgBUE0aiAEQYicEWogAkECdBCmARoLIAJBAWoLIQEgCUEATARAIAMhBAwCC0EAIQcgAUEATCELIAMhBANAIAtFBEAgBUEgaiAHQQJ0aigCACEIQQAhAwNAIAggDEYgDiADQQJ0IAVqKAIwIgJGcUUEQCAKIARBFGxqIgAgCDYCCCAAQQI2AgQgACAGNgIAIAAgAjYCDCAEQQFqIQQLIANBAWoiAyABRw0ACwsgB0EBaiIHIAlHDQALDAELAkACQAJAAkAgBwRAIAcvAQYiA0EBRgRAIAcuAQQhAwJ/IAgEQEEAIANBAnRBgJwRaigCAEH/AEsNARoLIApBATYCBCAKIAA2AgAgCiADQQJ0QYCcEWooAgA2AghBAQshBCADQQJ0IgNBgJwRaigCBCIGQQBMDQYgA0GInBFqIQdBACEDA0ACQCAHIANBAnRqKAIAIgIgDEYNACAIRSACQYABSXJFDQAgCiAEQRRsaiIBIAI2AgggAUEBNgIEIAEgADYCACAEQQFqIQQLIANBAWoiAyAGRw0ACwwGCyANRQ0FIAcuAQQhCyADQQJGBEBBASEPIAtBAnRB8J8SaigCCCIDQQBMDQUgA0EBcSENIAtBAnRB/J8SaiECIANBAUYEQEEAIQMMBQsgA0F+cSEOQQAhA0EAIQgDQCAMIAIgA0ECdCIBaigCACIGRwRAIAogBEEUbGoiCSAGNgIIIAlBATYCBCAJIAA2AgAgBEEBaiEECyAMIAIgAUEEcmooAgAiAUcEQCAKIARBFGxqIgYgATYCCCAGQQE2AgQgBiAANgIAIARBAWohBAsgA0ECaiEDIA4gCEECaiIIRw0ACwwEC0EBIREgC0ECdEGgqBJqKAIMIgNBAEwNAiADQQFxIQ0gC0ECdEGwqBJqIQIgA0EBRgRAQQAhAwwCCyADQX5xIQ5BACEDQQAhCANAIAwgAiADQQJ0IgFqKAIAIgZHBEAgCiAEQRRsaiIJIAY2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAwgAiABQQRyaigCACIBRwRAIAogBEEUbGoiBiABNgIIIAZBATYCBCAGIAA2AgAgBEEBaiEECyADQQJqIQMgDiAIQQJqIghHDQALDAELIAVBCGoQmgEiA0EASA0EIANBAnQiAkGAnBFqKAIEIgNBAEwNBCADQQFxIQsgAkGInBFqIQECQCADQQFGBEBBACEDDAELIANBfnEhDkEAIQNBACEGA0AgCEEAIAEgA0ECdCIHaigCACICQf8ASxtFBEAgCiAEQRRsaiIJIAI2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAhBACABIAdBBHJqKAIAIgJB/wBLG0UEQCAKIARBFGxqIgcgAjYCCCAHQQE2AgQgByAANgIAIARBAWohBAsgA0ECaiEDIAZBAmoiBiAORw0ACwsgC0UNBCAIQQAgASADQQJ0aigCACIDQf8ASxsNBCAKIARBFGxqIgIgAzYCCCACQQE2AgQgAiAANgIAIARBAWohBAwECyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRBoKgSaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIRELIAUgBy4BBEECdEGgqBJqKAIENgIwQQEhDEEBIQ8gBUEwahCaASIDQQBOBEAgA0ECdCICQYCcEWooAgQiA0EASgRAIAVBNGogAkGInBFqIANBAnQQpgEaCyADQQFqIQ8LIAUgBy4BBEECdEGgqBJqKAIINgJAIAVBQGsQmgEiA0EATgRAIANBAnRBgJwRaigCBCICQQBKBEAgBUHEAGogA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQwLIBFBAEwNAiAMQX5xIQsgDEEBcSESA0AgD0EASgRAIAVBIGogEEECdGohE0EAIQ0DQAJAIAxBAEwNACANQQJ0IAVqKAIwIQggEygCACEBQQAhAkEAIQYgDEEBRwRAA0AgCiAEQRRsaiIDIAE2AgggA0EDNgIEIAMgADYCACADIAg2AgwgBUFAayIHIAJBAnQiCWooAgAhDiADIAA2AhQgAyAONgIQIAMgATYCHCADIAg2AiAgA0EDNgIYIAMgByAJQQRyaigCADYCJCACQQJqIQIgBEECaiEEIAZBAmoiBiALRw0ACwsgEkUNACAKIARBFGxqIgMgATYCCCADQQM2AgQgAyAANgIAIAMgCDYCDCADIAJBAnQgBWpBQGsoAgA2AhAgBEEBaiEECyANQQFqIg0gD0cNAAsLIBBBAWoiECARRw0ACwwCCyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRB8J8SaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQ8LIAUgBy4BBEECdEHwnxJqKAIENgIwIAVBMGoQmgEiA0EASAR/QQEFIANBAnQiAkGAnBFqKAIEIgNBAEoEQCAFQTRqIAJBiJwRaiADQQJ0EKYBGgsgA0EBagshDSAPQQBMDQAgDUF+cSEOIA1BAXEhDEEAIQsDQAJAIA1BAEwNACAFQSBqIAtBAnRqKAIAIQhBACECQQAhASANQQFHBEADQCAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAVBMGoiBiACQQJ0IgdqKAIAIQkgAyAANgIUIAMgCTYCDCADIAg2AhwgA0ECNgIYIAMgBiAHQQRyaigCADYCICACQQJqIQIgBEECaiEEIAFBAmoiASAORw0ACwsgDEUNACAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAMgAkECdCAFaigCMDYCDCAEQQFqIQQLIAtBAWoiCyAPRw0ACwsgBUHQAGokACAEC04AIAFBgAE2AgACfyACAn8gAEHVBE8EQEF6IABB1QRrIgBBsMESKAIATg0CGiAAQQN0QcTBEmoMAQsgAEECdEHAqhJqCygCADYCAEEACwszAQF/IAAgAU8EQCABDwsDQCAAIAEiAkkEQCACQQFrIQEgAi0AAEFAcUGAAUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsi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AmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRA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IQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBK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JyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoA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b2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMg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ALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4A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AKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacA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XR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEA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AAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcA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AIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwA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AMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4A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AQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh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AABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEan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AAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAA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CQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACa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CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADG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vx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAA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AACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqn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ADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwA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AD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVh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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4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AGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8B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ANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMA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AAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAAB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LAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADN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AgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q=");let rB=null;function NB(A){return"text"==A||"terminal"==A}function LB(A){if(!rB){const A=QB(GB).then((()=>({createOnigScanner:EB,createOnigString:gB})));rB=new ZA({onigLib:A,loadGrammar:A=>oB(A)})}const B=A.filter((A=>!NB(A))).map((A=>{const B=CB(A);if(!B)throw new kB(A);return rB.loadGrammar(B.scopeName)}));return Promise.all(B)}function HB(A){if(NB(A))return{langId:A,grammar:null};const B=CB(A);if(!B)throw new kB(A);const Q=function(A){const{_syncRegistry:B}=rB;return null==B?void 0:B._grammars.get(A)}(B.scopeName);if(!Q)throw new Error(`Syntax highlighting error: grammar for ${A} not loaded`);return{langId:B.id,grammar:Q}}class kB extends Error{constructor(A){super(`Unknown language: ${A}`),this.alias=A}}function RB(A,B,Q){rB.setTheme(Q);const g=function(A){const B=rB.getColorMap();return A.colorNames?B.map((B=>Object.keys(A.colorNames).find((Q=>A.colorNames[Q].toUpperCase()===B.toUpperCase()))||B)):B}(Q);return function(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=aB(B,g,A);return g=C,E.map((({content:A,metadata:B})=>({content:A,style:nB(B,Q)})))}))}(A,B,g)}function KB(A){return A.split(/\r?\n|\r/g).map((A=>[{content:A,style:{}}]))}function YB(A,B){return PB(A.slice(1,-1)).map((A=>{const{from:Q,to:g}=UB(A);return{lineNumber:B,fromColumn:Q,toColumn:g}}))}function UB(A){const[B,Q]=A.split(":");if(!uB(B))throw new yB(B);const g=Number(B);if(g<1)throw new JB;if(Q){if(!uB(Q))throw new yB(Q);return{from:g,to:+Q}}return{from:g,to:g}}function PB(A){return A.split(/,(?![^\[]*\])/g)}function uB(A){A=A.toString();var B=Math.abs(A),Q=parseInt(A,10);return!isNaN(B)&&Q===B&&B.toString()===A}class yB extends Error{constructor(A){super(`Invalid number "${A}" in range string`),this.number=A,Object.setPrototypeOf(this,new.target.prototype)}}class JB extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const SB="#001",pB="#010",lB={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:SB}},{scope:"comment",settings:{foreground:pB}}]};function dB(A,B,Q,g){const E=B?RB(A,B,lB):KB(A),C=[];let I=1;const D=E.map((A=>{const{annotations:B,lineWithoutComments:E}=function(A,B,Q,g){if(g in fB&&A.some((A=>A.style.color===pB))){const B=fB[g];A=A.flatMap((A=>{if(A.style.color!==pB)return[A];const Q=A.content.trimStart();if(Q.startsWith(B)){const g=Q.slice(B.length),E=[{content:A.content.slice(0,A.content.length-g.length),style:{color:SB}}];return g.length&&E.push({content:g,style:A.style}),E}return[A]}))}if(!A.some((A=>A.style.color===SB)))return{annotations:[],lineWithoutComments:A};const E=[];let C=0;for(;C<A.length;){const g=A[C];if(g.style.color!==pB){C++;continue}const I="function"==typeof B?B(g.content):mB(g.content,B);if(!I){C++;continue}const{name:D,query:w,rangeString:o}=I,s=A[C-1],e=A[C+1],c=[];s&&s.style.color===SB&&c.push(s),c.push(g),e&&e.style.color===SB&&c.push(e),E.push({tokens:c,name:D,query:w,rangeString:o,lineNumber:Q}),C+=2}let I=A;for(const A of E)I=I.filter((B=>!A.tokens.includes(B)));I.every((A=>""===A.content.trim()))&&(I=null);return{annotations:E.map((A=>({name:A.name,query:A.query,lineNumber:A.lineNumber,rangeString:A.rangeString}))),lineWithoutComments:I}}(A,g,I,Q);if(C.push(...B),!E)return null;const D=E.map((A=>A.content)).join("");return["mdx","jsx","tsx"].includes(Q)&&B.length>0&&"{}"===D.trim()?null:(I++,D)})).filter((A=>null!==A)).join("\n"),w=C.map((A=>{var{rangeString:B,lineNumber:Q}=A,g=function(A,B){var Q={};for(var g in A)Object.prototype.hasOwnProperty.call(A,g)&&B.indexOf(g)<0&&(Q[g]=A[g]);if(null!=A&&"function"==typeof Object.getOwnPropertySymbols){var E=0;for(g=Object.getOwnPropertySymbols(A);E<g.length;E++)B.indexOf(g[E])<0&&Object.prototype.propertyIsEnumerable.call(A,g[E])&&(Q[g[E]]=A[g[E]])}return Q}(A,["rangeString","lineNumber"]);return Object.assign(Object.assign({},g),{ranges:xB(B,Q,D)})})).filter((A=>A.ranges.length>0));return{newCode:D,annotations:w}}const fB={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function xB(A,B,Q){return A&&A.startsWith("(/")?function(A,B,Q){const g=B.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);const E=new RegExp(g[1],g[2]),C=A.split(/\r?\n/).slice(Q-1).join("\n");if(!E.global){const A=E.exec(C);if(!A)return[];const B=C.slice(0,A.index).split("\n").length+Q-1;return[{fromLineNumber:B,toLineNumber:B+A[0].split("\n").length-1}]}let I;const D=[];for(;I=E.exec(C);){const A=C.slice(0,I.index).split("\n").length+Q-1,B=A+I[0].split("\n").length-1,g=D[D.length-1];g&&g.fromLineNumber===A||D.push({fromLineNumber:A,toLineNumber:B})}return D}(Q,A,B):A&&A.startsWith("[/")?function(A,B,Q){const g=B.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);let E=g[2]||"";E+="d";const C=new RegExp(g[1],E);let I=A.split(/\r?\n/);I=I.slice(Q-1),C.multiline||(I=[I[0]]);const D=[];return I.forEach(((A,B)=>{if(!C.global){if(D.length>0)return;const g=C.exec(A);if(!g)return;const E=g.indices[1]||g.indices[0];return void D.push({lineNumber:B+Q,fromColumn:E[0]+1,toColumn:E[1]})}let g;for(;g=C.exec(A);){const A=g.indices[1]||g.indices[0];D.push({lineNumber:B+Q,fromColumn:A[0]+1,toColumn:A[1]})}})),D}(Q,A,B):function(A,B){return A?A.startsWith("[")?YB(A,B):PB(A.slice(1,-1)).map((A=>{if(A.includes("[")){const[Q,g]=A.split("["),E=Number(Q),C=B+E-1;if(!uB(C))throw new yB(Q);return YB("["+g,C)}const{from:Q,to:g}=UB(A);return[{fromLineNumber:Q+B-1,toLineNumber:g+B-1}]})).flat():[{fromLineNumber:B,toLineNumber:B}]}(A,B)}function mB(A,B){var Q;const g=A.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),E=g[1],C=g[2],I=null===(Q=g[3])||void 0===Q?void 0:Q.trim();return B.includes(E)?{name:E,rangeString:C,query:I}:null}function OB(A,B){let Q=[],g=1;return A.forEach((A=>{Q.push({fromColumn:g,toColumn:g+A.content.length-1,token:A}),g+=A.content.length})),B.forEach((A=>{Q=function(A,B){const{range:Q}=B,{fromColumn:g,toColumn:E}=Q,C=[];let I=0;for(;I<A.length&&A[I].toColumn<g;)C.push(A[I]),I++;if(I===A.length)return A;const D={annotationName:B.name,annotationQuery:B.query,fromColumn:g,toColumn:E,tokens:[]},w=A[I];if(w.fromColumn<g){const[A,B]=bB(w,g);if(C.push(A),C.push(D),B.toColumn>E){const[A,Q]=bB(B,E+1);D.tokens.push(A),C.push(Q)}else D.tokens.push(B);I++}else C.push(D);for(;I<A.length&&A[I].toColumn<=E;)D.tokens.push(A[I]),I++;if(I===A.length)return C;const o=A[I];if(o.fromColumn<=E){const[A,B]=bB(o,E+1);D.tokens.push(A),C.push(B),I++}for(;I<A.length;)C.push(A[I]),I++;return C}(Q,A)})),Q.map((A=>qB(A)))}function qB(A){return"tokens"in A?{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromColumn:A.fromColumn,toColumn:A.toColumn,tokens:A.tokens.map((A=>qB(A)))}:A.token}function bB(A,B){if("token"in A){const Q=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(0,B-A.fromColumn)}),g=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(B-A.fromColumn)});return[Object.assign(Object.assign({},A),{toColumn:B-1,token:Q}),Object.assign(Object.assign({},A),{fromColumn:B,token:g})]}{const Q=[],g=[];A.tokens.forEach((A=>{if(A.toColumn<B)Q.push(A);else if(A.fromColumn>=B)g.push(A);else{const[E,C]=bB(A,B);Q.push(E),g.push(C)}}));return[Object.assign(Object.assign({},A),{toColumn:B-1,tokens:Q}),Object.assign(Object.assign({},A),{fromColumn:B,tokens:g})]}}function WB(A,B){let Q=A.map(((A,B)=>({fromLineNumber:B+1,toLineNumber:B+1,line:A})));return B.forEach((A=>{Q=function(A,B){const{range:Q,name:g,query:E}=B,{fromLineNumber:C,toLineNumber:I}=Q,D=[];let w=0;for(;w<A.length&&A[w].toLineNumber<C;)D.push(A[w]),w++;if(w===A.length)return D;const o={annotationName:g,annotationQuery:E,fromLineNumber:C,toLineNumber:I,lines:[]},s=A[w];if(s.fromLineNumber<C){const[A,B]=XB(s,C);if(D.push(A),D.push(o),B.toLineNumber>I){const[A,Q]=XB(B,I+1);o.lines.push(A),D.push(Q)}else o.lines.push(B);w++}else D.push(o);for(;w<A.length&&A[w].toLineNumber<=I;)o.lines.push(A[w]),w++;if(w===A.length)return D;const e=A[w];if(e.fromLineNumber<=I){const[A,B]=XB(e,I+1);o.lines.push(A),D.push(B),w++}for(;w<A.length;)D.push(A[w]),w++;return D}(Q,A)})),Q.map((A=>TB(A)))}function TB(A){return"line"in A?{lineNumber:A.fromLineNumber,tokens:A.line.tokens}:{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromLineNumber:A.fromLineNumber,toLineNumber:A.toLineNumber,lines:A.lines.map((A=>TB(A)))}}function XB(A,B){if("line"in A)return[Object.assign(Object.assign({},A),{toLineNumber:B-1}),Object.assign(Object.assign({},A),{fromLineNumber:B})];{const Q=[],g=[];return A.lines.forEach((A=>{if(A.toLineNumber<B)Q.push(A);else if(A.fromLineNumber>=B)g.push(A);else{const[E,C]=XB(A,B);Q.push(E),g.push(C)}})),[Object.assign(Object.assign({},A),{toLineNumber:B-1,lines:Q}),Object.assign(Object.assign({},A),{fromLineNumber:B,lines:g})]}}function vB(A,B){const{inlineAnnotations:Q,multilineAnnotations:g}=function(A){const B=[],Q=[];return A.forEach((A=>{A.ranges.forEach((g=>{"lineNumber"in g?B.push(Object.assign(Object.assign({},A),{range:g})):Q.push(Object.assign(Object.assign({},A),{range:g}))}))})),{inlineAnnotations:B,multilineAnnotations:Q}}(B);return WB(A.map(((A,B)=>{const g=Q.filter((A=>A.range.lineNumber===B+1));return{lineNumber:B+1,tokens:OB(A,g)}})),g)}var ZB=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],jB={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function VB(A,B){const Q=A.indexOf("[",B);if(-1!==Q){const B=A.indexOf("m",Q);return{sequence:A.substring(Q+2,B).split(";"),startPosition:Q,position:B+1}}return{position:A.length}}function zB(A,B){let Q=1;const g=A[B+Q++];let E;if("2"===g){const g=[A[B+Q++],A[B+Q++],A[B+Q]].map((A=>Number.parseInt(A)));3!==g.length||g.some((A=>Number.isNaN(A)))||(E={type:"rgb",rgb:g})}else if("5"===g){const g=Number.parseInt(A[B+Q]);Number.isNaN(g)||(E={type:"table",index:Number(g)})}return[Q,E]}function _B(A){const B=[];for(let Q=0;Q<A.length;Q++){const g=A[Q],E=Number.parseInt(g);if(!Number.isNaN(E))if(0===E)B.push({type:"resetAll"});else if(E<=9){jB[E]&&B.push({type:"setDecoration",value:jB[E]})}else if(E<=29){const A=jB[E-20];A&&B.push({type:"resetDecoration",value:A})}else if(E<=37)B.push({type:"setForegroundColor",value:{type:"named",name:ZB[E-30]}});else if(38===E){const[g,E]=zB(A,Q);E&&B.push({type:"setForegroundColor",value:E}),Q+=g}else if(39===E)B.push({type:"resetForegroundColor"});else if(E<=47)B.push({type:"setBackgroundColor",value:{type:"named",name:ZB[E-40]}});else if(48===E){const[g,E]=zB(A,Q);E&&B.push({type:"setBackgroundColor",value:E}),Q+=g}else 49===E?B.push({type:"resetBackgroundColor"}):E>=90&&E<=97?B.push({type:"setForegroundColor",value:{type:"named",name:ZB[E-90+8]}}):E>=100&&E<=107&&B.push({type:"setBackgroundColor",value:{type:"named",name:ZB[E-100+8]}})}return B}function $B(A,B){const Q=function(){let A=null,B=null,Q=new Set;return{parse(g){const E=[];let C=0;do{const I=VB(g,C),D=I.sequence?g.substring(C,I.startPosition):g.substring(C);if(D.length>0&&E.push({value:D,foreground:A,background:B,decorations:new Set(Q)}),I.sequence){const g=_B(I.sequence);for(const E of g)"resetAll"===E.type?(A=null,B=null,Q.clear()):"resetForegroundColor"===E.type?A=null:"resetBackgroundColor"===E.type?B=null:"resetDecoration"===E.type&&Q.delete(E.value);for(const E of g)"setForegroundColor"===E.type?A=E.value:"setBackgroundColor"===E.type?B=E.value:"setDecoration"===E.type&&Q.add(E.value)}C=I.position}while(C<g.length);return E}}}(),g=A.split(/\r?\n|\r/g).map((A=>function(A,B,Q){const g=A.parse(B),E=g.map((({value:A,foreground:B,background:g,decorations:E})=>{const C=AQ(B,Q),I={};C&&(I.color=C);const D=AQ(g,Q);return D&&(I.background=D),E.has("bold")&&(I.fontWeight="bold"),E.has("italic")&&(I.fontStyle="italic"),E.has("underline")&&(I.textDecoration="underline"),E.has("strikethrough")&&(I.textDecoration="line-through"),E.has("reverse")&&(I.color=D,I.background=C),E.has("dim")&&(I.opacity=.5),{content:A,style:I}}));return E}(Q,A,B)));return g}function AQ(A,B){if(A){if("named"===A.type){return D(B,"terminal.ansi"+(A.name[0].toUpperCase()+A.name.slice(1)))}if("rgb"===A.type){const[B,Q,g]=A.rgb;return`rgb(${B}, ${Q}, ${g})`}}}async function BQ(A,B){await Promise.all([LB(A),c(B)])}async function QQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");return await BQ([C],Q),gQ(E,C,Q,g)}function gQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");const{langId:I,grammar:w}=HB(C),o=i(Q),s="text"==I?KB(E):"terminal"==I?$B(E,o):(null==g?void 0:g.scopes)?function(A,B,Q){return rB.setTheme(Q),FB(A,B,rB.getColorMap())}(E,w,o):RB(E,w,o),e="terminal"==I?function(A){return{color:D(A,"terminal.foreground"),background:D(A,"terminal.background")}}(o):{color:o.foreground,background:o.background};if(function(A){return"annotations"in A}(g)){return{lines:vB(s,(null==g?void 0:g.annotations)||[]),lang:I,style:e}}return{lines:s,lang:I,style:e}}async function EQ(A,B,Q){if(!Q)return{code:A,annotations:[]};await LB([B]);const{grammar:g,langId:E}=HB(B),{newCode:C,annotations:I}=dB(A,g,E,Q);return{code:C,annotations:I}}async function CQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");await BQ([],A);return a(i(A))}function IQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");return a(i(A))}export{F as LANG_NAMES,M as THEME_NAMES,kB as UnknownLanguageError,h as UnknownThemeError,EQ as extractAnnotations,CQ as getThemeColors,IQ as getThemeColorsSync,QQ as highlight,gQ as highlightSync,BQ as preload}; +async function A(A){throw new Error("no fs")}async function B(A){const B=await fetch(`https://lighter.codehike.org/${A}.json`);if(B.ok)return await B.json()}const Q=A=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(A),g=(A,B)=>A.match(new RegExp(`.{${B}}`,"g")),E=A=>parseInt(A.repeat(2/A.length),16);function C(A,B){return void 0!==A?A/255:"number"!=typeof B||B<0||B>1?1:B}function I(A,B){if(!A)return A;const{r:I,g:D,b:w,a:o}=function(A){if(!A)return;if(!Q(A))throw new Error("Invalid color string, must be a valid hex color");const B=Math.floor((A.length-1)/3),I=g(A.slice(1),B),[D,w,o,s]=I.map(E);return{r:D,g:w,b:o,a:C(s,1)}}(A);return function(A){if(!A)return;const{r:B,g:Q,b:g,a:E}=A,C=Math.round(255*E);return`#${B.toString(16).padStart(2,"0")}${Q.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${C.toString(16).padStart(2,"0")}`}({r:I,g:D,b:w,a:o*B})}function D(A,B){const Q=A.colors||{};if(Q[B])return Q[B];const g=o[B];if(!g)throw new Error(`Unknown theme color key: ${B}`);return"string"==typeof g?D(A,g):function(A,B){const Q=B[A.type];if(Array.isArray(Q)){const[B,g,...E]=Q;return B(D(A,g),...E)}return Q}(A,g)}const w="#6FC3DF",o={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:w},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[I,"tab.activeForeground",.5],light:[I,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:w},"tab.activeBorderTop":{hc:w},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:w},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:w},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:w},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[I,"editor.background",.9],light:[I,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},s=new Map,e=new Map;async function c(A){if("string"==typeof A){const Q=A;if(!M.includes(Q))throw new h(Q);if(!s.has(Q)){const A=async function(A){try{return await async function(A){throw new Error("no fs")}()}catch(Q){return await B(`themes/${A}`)}}(Q).then((A=>(e.set(Q,A),A)));s.set(Q,A)}return s.get(Q)}return A}function i(A){let B=null;if("string"==typeof A){if(B=e.get(A),!B)throw new Error("Syntax highlighting error: theme not loaded")}else B=A;return function(A){if(!A)return;const B=A.settings||A.tokenColors||[],Q={name:A.name||"unknown-theme",type:t(A),foreground:"",background:"",settings:B,colors:A.colors||{},colorNames:A.colorNames},g=B.find((A=>!A.scope));if(g){const{foreground:A,background:B}=(null==g?void 0:g.settings)||{},E={};A&&!Q.colors["editor.foreground"]&&(E["editor.foreground"]=A),B&&!Q.colors["editor.background"]&&(E["editor.background"]=B),Object.keys(E).length>0&&(Q.colors=Object.assign(Object.assign({},Q.colors),E)),Q.foreground=A,Q.background=B}g||(Q.settings=[{settings:{foreground:D(Q,"editor.foreground"),background:D(Q,"editor.background")}},...Q.settings]);if(Q.background=Q.background||D(Q,"editor.background"),Q.foreground=Q.foreground||D(Q,"editor.foreground"),"from-css"===A.type&&!Q.colorNames){const A={};let B=0;Q.settings=Q.settings.map((Q=>{const g=Object.assign(Object.assign({},Q),{settings:Object.assign({},Q.settings)}),{foreground:E,background:C}=g.settings||{};return E&&!A[E]&&(A[E]=`#${B.toString(16).padStart(6,"0")}`,B++),C&&!A[C]&&(A[C]=`#${B.toString(16).padStart(6,"0")}`,B++),E&&(g.settings.foreground=A[E]),C&&(g.settings.background=A[C]),g})),Q.colorNames=A}return Q}(B)}function t(A){var B;if("from-css"===A.type)return"from-css";return"light"===(A.type?A.type:(null===(B=A.name)||void 0===B?void 0:B.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const M=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class h extends Error{constructor(A){super(`Unknown theme: ${A}`),this.theme=A}}function F(A){const B=B=>"colorScheme"===B?function(A){return"from-css"===A.type?"var(--ch-0)":A.type}(A):"foreground"===B?A.foreground:"background"===B?A.background:D(A,B);return{colorScheme:B("colorScheme"),foreground:B("foreground"),background:B("background"),lighter:{inlineBackground:B("lighter.inlineBackground")},editor:{background:B("editor.background"),foreground:B("editor.foreground"),lineHighlightBackground:B("editor.lineHighlightBackground"),rangeHighlightBackground:B("editor.rangeHighlightBackground"),infoForeground:B("editor.infoForeground"),selectionBackground:B("editor.selectionBackground")},focusBorder:B("focusBorder"),tab:{activeBackground:B("tab.activeBackground"),activeForeground:B("tab.activeForeground"),inactiveBackground:B("tab.inactiveBackground"),inactiveForeground:B("tab.inactiveForeground"),border:B("tab.border"),activeBorder:B("tab.activeBorder"),activeBorderTop:B("tab.activeBorderTop")},editorGroup:{border:B("editorGroup.border")},editorGroupHeader:{tabsBackground:B("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:B("editorLineNumber.foreground")},input:{background:B("input.background"),foreground:B("input.foreground"),border:B("input.border")},icon:{foreground:B("icon.foreground")},sideBar:{background:B("sideBar.background"),foreground:B("sideBar.foreground"),border:B("sideBar.border")},list:{activeSelectionBackground:B("list.activeSelectionBackground"),activeSelectionForeground:B("list.activeSelectionForeground"),hoverBackground:B("list.hoverBackground"),hoverForeground:B("list.hoverForeground")}}}const G=["abap","actionscript-3","ada","adoc","angular-html","angular-ts","apache","apex","apl","applescript","ara","asciidoc","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","c++","cadence","cdc","clarity","clj","clojure","closure-templates","cmake","cmd","cobol","codeowners","codeql","coffee","coffeescript","common-lisp","console","cpp","cql","crystal","cs","csharp","css","csv","cue","cypher","d","dart","dax","desktop","diff","docker","dockerfile","dotenv","dream-maker","edge","elisp","elixir","elm","emacs-lisp","erb","erl","erlang","f","f#","f03","f08","f18","f77","f90","f95","fennel","fish","fluent","for","fortran-fixed-form","fortran-free-form","fs","fsharp","fsl","ftl","gdresource","gdscript","gdshader","genie","gherkin","git-commit","git-rebase","gjs","gleam","glimmer-js","glimmer-ts","glsl","gnuplot","go","gql","graphql","groovy","gts","hack","haml","handlebars","haskell","haxe","hbs","hcl","hjson","hlsl","hs","html","html-derivative","http","hxml","hy","imba","ini","jade","java","javascript","jinja","jison","jl","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kt","kts","kusto","latex","lean","lean4","less","liquid","lisp","lit","log","logo","lua","luau","make","makefile","markdown","marko","matlab","md","mdc","mdx","mediawiki","mermaid","mojo","move","nar","narrat","nextflow","nf","nginx","nim","nix","nu","nushell","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","po","postcss","pot","potx","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","qml","qmldir","qss","r","racket","raku","razor","rb","reg","regex","regexp","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","soy","sparql","spl","splunk","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","systemd","tasl","tcl","templ","terminal","terraform","tex","text","tf","tfvars","toml","ts","ts-tags","tsp","tsv","tsx","turtle","twig","txt","typ","typescript","typespec","typst","v","vala","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vy","vyper","wasm","wenyan","wgsl","wiki","wikitext","wl","wolfram","xml","xsl","yaml","yml","zenscript","zig","zsh","文言"],a={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada","angular-html":"text.html.derivative.ng","angular-ts":"source.ts.ng",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asciidoc:"text.asciidoc",adoc:"text.asciidoc",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeowners:"text.codeowners",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",coffeescript:"source.coffee","common-lisp":"source.commonlisp",lisp:"source.commonlisp",cpp:"source.cpp","c++":"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",csv:"text.csv",cue:"source.cue",cypher:"source.cypher",cql:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",desktop:"source.desktop",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile",dotenv:"source.dotenv","dream-maker":"source.dm",edge:"text.html.edge",elixir:"source.elixir",elm:"source.elm","emacs-lisp":"source.emacs.lisp",elisp:"source.emacs.lisp",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fennel:"source.fnl",fish:"source.fish",fluent:"source.ftl",ftl:"source.ftl","fortran-fixed-form":"source.fortran.fixed",f:"source.fortran.fixed",for:"source.fortran.fixed",f77:"source.fortran.fixed","fortran-free-form":"source.fortran.free",f90:"source.fortran.free",f95:"source.fortran.free",f03:"source.fortran.free",f08:"source.fortran.free",f18:"source.fortran.free",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",genie:"source.genie",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase",gleam:"source.gleam","glimmer-js":"source.gjs",gjs:"source.gjs","glimmer-ts":"source.gts",gts:"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",gql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",haxe:"source.hx",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic","html-derivative":"text.html.derivative",http:"source.http",hxml:"source.hxml",hy:"source.hy",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js",jinja:"source.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",jl:"source.julia",kotlin:"source.kotlin",kt:"source.kotlin",kts:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",lean:"source.lean4",lean4:"source.lean4",less:"source.css.less",liquid:"text.html.liquid",log:"text.log",logo:"source.logo",lua:"source.lua",luau:"source.luau",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdc:"text.markdown.mdc",mdx:"source.mdx",mermaid:"markdown.mermaid.codeblock",mojo:"source.mojo",move:"source.move",narrat:"source.narrat",nar:"source.narrat",nextflow:"source.nextflow",nf:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix",nushell:"source.nushell",nu:"source.nushell","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",po:"source.po",pot:"source.po",potx:"source.po",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",qml:"source.qml",qmldir:"source.qmldir",qss:"source.qss",r:"source.r",racket:"source.racket",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",regexp:"source.regexp.python",regex:"source.regexp.python",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",console:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",soy:"text.html.soy","closure-templates":"text.html.soy",sparql:"source.sparql",splunk:"source.splunk_search",spl:"source.splunk_search",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",systemd:"source.systemd",tasl:"source.tasl",tcl:"source.tcl",templ:"source.templ",terraform:"source.hcl.terraform",tf:"source.hcl.terraform",tfvars:"source.hcl.terraform",tex:"text.tex",toml:"source.toml","ts-tags":"source.ts.tags",lit:"source.ts.tags",tsv:"text.tsv",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",typespec:"source.tsp",tsp:"source.tsp",typst:"source.typst",typ:"source.typst",v:"source.v",vala:"source.vala",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml",vue:"source.vue","vue-html":"text.html.vue-html",vyper:"source.vyper",vy:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wikitext:"source.wikitext",mediawiki:"source.wikitext",wiki:"source.wikitext",wolfram:"source.wolfram",wl:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript",zig:"source.zig"},n={"source.abap":{id:"abap",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",embeddedScopes:[]},"source.ada":{id:"ada",embeddedScopes:[]},"text.html.derivative.ng":{id:"angular-html",embeddedScopes:["text.html.basic"]},"source.ts.ng":{id:"angular-ts",embeddedScopes:[]},"source.apacheconf":{id:"apache",embeddedScopes:[]},"source.apex":{id:"apex",embeddedScopes:[]},"source.apl":{id:"apl",embeddedScopes:["text.html.basic","text.xml","source.css","source.js","source.json"]},"source.applescript":{id:"applescript",embeddedScopes:[]},"source.ara":{id:"ara",embeddedScopes:[]},"text.asciidoc":{id:"asciidoc",embeddedScopes:["text.html.basic","source.yaml","text.csv","source.c","source.clojure","source.coffee","source.cpp","source.css","source.cs","source.diff","source.dockerfile","source.elixir","source.elm","source.erlang","source.go","source.groovy","source.haskell","source.java","source.js","source.json","source.js.jsx","source.julia","source.kotlin","source.css.less","source.makefile","source.objc","source.ocaml","source.perl","source.python","source.r","source.ruby","source.rust","source.sass","source.scala","source.css.scss","source.shell","source.sql","source.swift","source.toml","source.ts","text.xml"]},"source.asm.x86_64":{id:"asm",embeddedScopes:[]},"source.astro":{id:"astro",embeddedScopes:["source.json","source.js","source.ts","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.css.postcss","source.tsx"]},"source.awk":{id:"awk",embeddedScopes:[]},"source.ballerina":{id:"ballerina",embeddedScopes:[]},"source.batchfile":{id:"bat",embeddedScopes:[]},"text.beancount":{id:"beancount",embeddedScopes:[]},"source.berry":{id:"berry",embeddedScopes:[]},"text.bibtex":{id:"bibtex",embeddedScopes:[]},"source.bicep":{id:"bicep",embeddedScopes:[]},"text.html.php.blade":{id:"blade",embeddedScopes:["text.html.basic","text.xml","source.sql","source.js","source.json","source.css"]},"source.c":{id:"c",embeddedScopes:[]},"source.cadence":{id:"cadence",embeddedScopes:[]},"source.clar":{id:"clarity",embeddedScopes:[]},"source.clojure":{id:"clojure",embeddedScopes:[]},"source.cmake":{id:"cmake",embeddedScopes:[]},"source.cobol":{id:"cobol",embeddedScopes:["source.sql","text.html.basic","source.java"]},"text.codeowners":{id:"codeowners",embeddedScopes:[]},"source.ql":{id:"codeql",embeddedScopes:[]},"source.coffee":{id:"coffee",embeddedScopes:["source.js"]},"source.commonlisp":{id:"common-lisp",embeddedScopes:[]},"source.cpp":{id:"cpp",embeddedScopes:["source.regexp.python","source.glsl","source.sql"]},"source.crystal":{id:"crystal",embeddedScopes:["text.html.basic","source.sql","source.css","source.c","source.js","source.shell"]},"source.cs":{id:"csharp",embeddedScopes:[]},"source.css":{id:"css",embeddedScopes:[]},"text.csv":{id:"csv",embeddedScopes:[]},"source.cue":{id:"cue",embeddedScopes:[]},"source.cypher":{id:"cypher",embeddedScopes:[]},"source.d":{id:"d",embeddedScopes:[]},"source.dart":{id:"dart",embeddedScopes:[]},"source.dax":{id:"dax",embeddedScopes:[]},"source.desktop":{id:"desktop",embeddedScopes:[]},"source.diff":{id:"diff",embeddedScopes:[]},"source.dockerfile":{id:"docker",embeddedScopes:[]},"source.dotenv":{id:"dotenv",embeddedScopes:[]},"source.dm":{id:"dream-maker",embeddedScopes:[]},"text.html.edge":{id:"edge",embeddedScopes:["source.ts","text.html.basic","text.html.derivative"]},"source.elixir":{id:"elixir",embeddedScopes:["text.html.basic"]},"source.elm":{id:"elm",embeddedScopes:["source.glsl"]},"source.emacs.lisp":{id:"emacs-lisp",embeddedScopes:[]},"text.html.erb":{id:"erb",embeddedScopes:["text.html.basic","source.ruby"]},"source.erlang":{id:"erlang",embeddedScopes:[]},"source.fnl":{id:"fennel",embeddedScopes:[]},"source.fish":{id:"fish",embeddedScopes:[]},"source.ftl":{id:"fluent",embeddedScopes:[]},"source.fortran.fixed":{id:"fortran-fixed-form",embeddedScopes:["source.fortran.free"]},"source.fortran.free":{id:"fortran-free-form",embeddedScopes:[]},"source.fsharp":{id:"fsharp",embeddedScopes:["text.html.markdown"]},"source.gdresource":{id:"gdresource",embeddedScopes:["source.gdshader","source.gdscript"]},"source.gdscript":{id:"gdscript",embeddedScopes:[]},"source.gdshader":{id:"gdshader",embeddedScopes:[]},"source.genie":{id:"genie",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",embeddedScopes:[]},"text.git-commit":{id:"git-commit",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",embeddedScopes:["source.shell"]},"source.gleam":{id:"gleam",embeddedScopes:[]},"source.gjs":{id:"glimmer-js",embeddedScopes:["source.js","source.ts","source.css","text.html.basic"]},"source.gts":{id:"glimmer-ts",embeddedScopes:["source.ts","source.css","source.js","text.html.basic"]},"source.glsl":{id:"glsl",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",embeddedScopes:[]},"source.go":{id:"go",embeddedScopes:[]},"source.graphql":{id:"graphql",embeddedScopes:["source.js","source.ts","source.js.jsx","source.tsx"]},"source.groovy":{id:"groovy",embeddedScopes:[]},"source.hack":{id:"hack",embeddedScopes:["text.html.basic","source.sql"]},"text.haml":{id:"haml",embeddedScopes:["source.ruby","source.js","source.sass","source.coffee","text.html.markdown","source.css"]},"text.html.handlebars":{id:"handlebars",embeddedScopes:["text.html.basic","source.css","source.js","source.yaml"]},"source.haskell":{id:"haskell",embeddedScopes:[]},"source.hx":{id:"haxe",embeddedScopes:[]},"source.hcl":{id:"hcl",embeddedScopes:[]},"source.hjson":{id:"hjson",embeddedScopes:[]},"source.hlsl":{id:"hlsl",embeddedScopes:[]},"text.html.basic":{id:"html",embeddedScopes:["source.js","source.css"]},"text.html.derivative":{id:"html-derivative",embeddedScopes:["text.html.basic"]},"source.http":{id:"http",embeddedScopes:["source.shell","source.json","text.xml","source.graphql"]},"source.hxml":{id:"hxml",embeddedScopes:["source.hx"]},"source.hy":{id:"hy",embeddedScopes:[]},"source.imba":{id:"imba",embeddedScopes:["source.ts"]},"source.ini":{id:"ini",embeddedScopes:[]},"source.java":{id:"java",embeddedScopes:[]},"source.js":{id:"javascript",embeddedScopes:[]},"source.jinja":{id:"jinja",embeddedScopes:[]},"source.jison":{id:"jison",embeddedScopes:["source.js"]},"source.json":{id:"json",embeddedScopes:[]},"source.json5":{id:"json5",embeddedScopes:[]},"source.json.comments":{id:"jsonc",embeddedScopes:[]},"source.json.lines":{id:"jsonl",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",embeddedScopes:[]},"source.jssm":{id:"jssm",embeddedScopes:[]},"source.js.jsx":{id:"jsx",embeddedScopes:[]},"source.julia":{id:"julia",embeddedScopes:["source.cpp","source.python","source.js","source.r","source.sql"]},"source.kotlin":{id:"kotlin",embeddedScopes:[]},"source.kusto":{id:"kusto",embeddedScopes:[]},"text.tex.latex":{id:"latex",embeddedScopes:["text.tex","source.shell","source.css","source.gnuplot","source.haskell","text.html.basic","source.java","source.julia","source.js","source.lua","source.python","source.ruby","source.rust","source.ts","text.xml","source.yaml","source.scala"]},"source.lean4":{id:"lean",embeddedScopes:[]},"source.css.less":{id:"less",embeddedScopes:[]},"text.html.liquid":{id:"liquid",embeddedScopes:["text.html.basic","source.css","source.json","source.js"]},"text.log":{id:"log",embeddedScopes:[]},"source.logo":{id:"logo",embeddedScopes:[]},"source.lua":{id:"lua",embeddedScopes:["source.c"]},"source.luau":{id:"luau",embeddedScopes:[]},"source.makefile":{id:"make",embeddedScopes:[]},"text.html.markdown":{id:"markdown",embeddedScopes:["source.css","text.html.basic","source.ini","source.java","source.lua","source.makefile","source.perl","source.r","source.ruby","source.php","source.sql","source.asp.vb.net","text.xml","text.xml.xsl","source.yaml","source.batchfile","source.clojure","source.coffee","source.c","source.cpp","source.diff","source.dockerfile","text.git-commit","text.git-rebase","source.go","source.groovy","text.pug","source.js","source.json","source.json.comments","source.css.less","source.objc","source.swift","source.css.scss","source.perl.6","source.powershell","source.python","source.julia","source.regexp.python","source.rust","source.scala","source.shell","source.ts","source.tsx","source.cs","source.fsharp","source.dart","text.html.handlebars","text.log","source.erlang","source.elixir","text.tex.latex","text.bibtex","text.html.derivative"]},"text.marko":{id:"marko",embeddedScopes:["source.css","source.css.less","source.css.scss","source.js"]},"source.matlab":{id:"matlab",embeddedScopes:[]},"text.markdown.mdc":{id:"mdc",embeddedScopes:["text.html.markdown","source.yaml","text.html.derivative"]},"source.mdx":{id:"mdx",embeddedScopes:["source.tsx","source.toml","source.yaml","source.c","source.clojure","source.coffee","source.cpp","source.cs","source.css","source.diff","source.dockerfile","source.elixir","source.elm","source.erlang","source.go","source.graphql","source.haskell","text.html.basic","source.ini","source.java","source.js","source.json","source.julia","source.kotlin","source.css.less","source.lua","source.makefile","text.html.markdown","source.objc","source.perl","source.python","source.r","source.ruby","source.rust","source.scala","source.css.scss","source.shell","text.shell-session","source.sql","text.xml","source.swift","source.ts"]},"markdown.mermaid.codeblock":{id:"mermaid",embeddedScopes:[]},"source.mojo":{id:"mojo",embeddedScopes:[]},"source.move":{id:"move",embeddedScopes:[]},"source.narrat":{id:"narrat",embeddedScopes:[]},"source.nextflow":{id:"nextflow",embeddedScopes:[]},"source.nginx":{id:"nginx",embeddedScopes:["source.lua"]},"source.nim":{id:"nim",embeddedScopes:["source.c","text.html.basic","text.xml","source.js","source.css","source.glsl","text.html.markdown"]},"source.nix":{id:"nix",embeddedScopes:[]},"source.nushell":{id:"nushell",embeddedScopes:[]},"source.objc":{id:"objective-c",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",embeddedScopes:[]},"source.ocaml":{id:"ocaml",embeddedScopes:[]},"source.pascal":{id:"pascal",embeddedScopes:[]},"source.perl":{id:"perl",embeddedScopes:["text.html.basic","text.xml","source.css","source.js","source.sql"]},"source.php":{id:"php",embeddedScopes:["text.html.basic","text.xml","source.sql","source.js","source.json","source.css"]},"source.plsql.oracle":{id:"plsql",embeddedScopes:[]},"source.po":{id:"po",embeddedScopes:[]},"source.css.postcss":{id:"postcss",embeddedScopes:[]},"source.powerquery":{id:"powerquery",embeddedScopes:[]},"source.powershell":{id:"powershell",embeddedScopes:[]},"source.prisma":{id:"prisma",embeddedScopes:[]},"source.prolog":{id:"prolog",embeddedScopes:[]},"source.proto":{id:"proto",embeddedScopes:[]},"text.pug":{id:"pug",embeddedScopes:["source.js","source.css","source.sass","source.css.scss","source.stylus","source.coffee","text.html.basic"]},"source.puppet":{id:"puppet",embeddedScopes:[]},"source.purescript":{id:"purescript",embeddedScopes:[]},"source.python":{id:"python",embeddedScopes:[]},"source.qml":{id:"qml",embeddedScopes:["source.js"]},"source.qmldir":{id:"qmldir",embeddedScopes:[]},"source.qss":{id:"qss",embeddedScopes:[]},"source.r":{id:"r",embeddedScopes:[]},"source.racket":{id:"racket",embeddedScopes:[]},"source.perl.6":{id:"raku",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",embeddedScopes:["text.html.basic","source.cs"]},"source.reg":{id:"reg",embeddedScopes:[]},"source.regexp.python":{id:"regexp",embeddedScopes:[]},"source.rel":{id:"rel",embeddedScopes:[]},"source.riscv":{id:"riscv",embeddedScopes:[]},"source.rst":{id:"rst",embeddedScopes:["text.html.derivative","source.cpp","source.python","source.js","source.shell","source.yaml","source.cmake","source.ruby"]},"source.ruby":{id:"ruby",embeddedScopes:["text.html.basic","text.xml","source.sql","source.css","source.c","source.js","source.shell","source.lua"]},"source.rust":{id:"rust",embeddedScopes:[]},"source.sas":{id:"sas",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",embeddedScopes:[]},"source.scala":{id:"scala",embeddedScopes:[]},"source.scheme":{id:"scheme",embeddedScopes:[]},"source.css.scss":{id:"scss",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",embeddedScopes:[]},"text.shell-session":{id:"shellsession",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",embeddedScopes:[]},"source.solidity":{id:"solidity",embeddedScopes:[]},"text.html.soy":{id:"soy",embeddedScopes:["text.html.basic"]},"source.sparql":{id:"sparql",embeddedScopes:["source.turtle"]},"source.splunk_search":{id:"splunk",embeddedScopes:[]},"source.sql":{id:"sql",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",embeddedScopes:[]},"source.stata":{id:"stata",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",embeddedScopes:[]},"source.svelte":{id:"svelte",embeddedScopes:["source.js","source.ts","source.coffee","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.css.postcss","text.pug","text.html.markdown"]},"source.swift":{id:"swift",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",embeddedScopes:[]},"source.systemd":{id:"systemd",embeddedScopes:[]},"source.tasl":{id:"tasl",embeddedScopes:[]},"source.tcl":{id:"tcl",embeddedScopes:[]},"source.templ":{id:"templ",embeddedScopes:["source.go","source.js","source.css"]},"source.hcl.terraform":{id:"terraform",embeddedScopes:[]},"text.tex":{id:"tex",embeddedScopes:["source.r"]},"source.toml":{id:"toml",embeddedScopes:[]},"source.ts.tags":{id:"ts-tags",embeddedScopes:["source.ts"]},"text.tsv":{id:"tsv",embeddedScopes:[]},"source.tsx":{id:"tsx",embeddedScopes:[]},"source.turtle":{id:"turtle",embeddedScopes:[]},"text.html.twig":{id:"twig",embeddedScopes:["source.css","source.js","source.css.scss","source.php","source.python","source.ruby"]},"source.txt":{id:"txt",embeddedScopes:[]},"source.ts":{id:"typescript",embeddedScopes:[]},"source.tsp":{id:"typespec",embeddedScopes:[]},"source.typst":{id:"typst",embeddedScopes:[]},"source.v":{id:"v",embeddedScopes:[]},"source.vala":{id:"vala",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",embeddedScopes:[]},"source.verilog":{id:"verilog",embeddedScopes:[]},"source.vhdl":{id:"vhdl",embeddedScopes:[]},"source.viml":{id:"viml",embeddedScopes:[]},"source.vue":{id:"vue",embeddedScopes:["text.html.basic","text.html.markdown","text.pug","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.js","source.ts","source.js.jsx","source.tsx","source.coffee","source.json","source.json.comments","source.json5","source.yaml","source.toml","source.graphql","text.html.derivative"]},"text.html.vue-html":{id:"vue-html",embeddedScopes:["source.vue","source.js"]},"source.vyper":{id:"vyper",embeddedScopes:[]},"source.wat":{id:"wasm",embeddedScopes:[]},"source.wenyan":{id:"wenyan",embeddedScopes:[]},"source.wgsl":{id:"wgsl",embeddedScopes:[]},"source.wikitext":{id:"wikitext",embeddedScopes:["text.html.basic","source.css","source.ini","source.java","source.lua","source.makefile","source.perl","source.r","source.ruby","source.php","source.sql","source.asp.vb.net","text.xml","text.xml.xsl","source.yaml","source.batchfile","source.clojure","source.coffee","source.c","source.cpp","source.diff","source.dockerfile","source.go","source.groovy","text.pug","source.js","source.json.comments","source.css.less","source.objc","source.swift","source.css.scss","source.perl.6","source.powershell","source.python","source.julia","source.rust","source.scala","source.shell","source.ts","source.cs","source.fsharp","source.dart","text.html.handlebars","text.html.markdown","source.erlang","source.elixir","text.tex.latex","text.bibtex","source.json"]},"source.wolfram":{id:"wolfram",embeddedScopes:[]},"text.xml":{id:"xml",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",embeddedScopes:["text.xml"]},"source.yaml":{id:"yaml",embeddedScopes:[]},"source.zenscript":{id:"zenscript",embeddedScopes:[]},"source.zig":{id:"zig",embeddedScopes:[]}};var N={d:(A,B)=>{for(var Q in B)N.o(B,Q)&&!N.o(A,Q)&&Object.defineProperty(A,Q,{enumerable:!0,get:B[Q]})},o:(A,B)=>Object.prototype.hasOwnProperty.call(A,B)},r={};N.d(r,{_X:()=>XA,Bz:()=>TA,ot:()=>WA,u:()=>bA,jG:()=>K,Pn:()=>vA});const H="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var L;function k(A,B){const Q=[],g=function(A){let B=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,Q=B.exec(A);return{next:()=>{if(!Q)return null;const g=Q[0];return Q=B.exec(A),g}}}(A);let E=g.next();for(;null!==E;){let A=0;if(2===E.length&&":"===E.charAt(1)){switch(E.charAt(0)){case"R":A=1;break;case"L":A=-1;break;default:console.log(`Unknown priority ${E} in scope selector`)}E=g.next()}let B=I();if(Q.push({matcher:B,priority:A}),","!==E)break;E=g.next()}return Q;function C(){if("-"===E){E=g.next();const A=C();return B=>!!A&&!A(B)}if("("===E){E=g.next();const A=function(){const A=[];let B=I();for(;B&&(A.push(B),"|"===E||","===E);){do{E=g.next()}while("|"===E||","===E);B=I()}return B=>A.some((A=>A(B)))}();return")"===E&&(E=g.next()),A}if(R(E)){const A=[];do{A.push(E),E=g.next()}while(R(E));return Q=>B(A,Q)}return null}function I(){const A=[];let B=C();for(;B;)A.push(B),B=C();return B=>A.every((A=>A(B)))}}function R(A){return!!A&&!!A.match(/[\w\.:]+/)}function K(A){"function"==typeof A.dispose&&A.dispose()}function Y(A){return Array.isArray(A)?function(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=Y(A[Q]);return B}(A):"object"==typeof A?function(A){let B={};for(let Q in A)B[Q]=Y(A[Q]);return B}(A):A}function U(A,...B){return B.forEach((B=>{for(let Q in B)A[Q]=B[Q]})),A}function P(A){const B=~A.lastIndexOf("/")||~A.lastIndexOf("\\");return 0===B?A:~B==A.length-1?P(A.substring(0,A.length-1)):A.substr(1+~B)}!function(A){A.toBinaryStr=function(A){let B=A.toString(2);for(;B.length<32;)B="0"+B;return B},A.print=function(B){const Q=A.getLanguageId(B),g=A.getTokenType(B),E=A.getFontStyle(B),C=A.getForeground(B),I=A.getBackground(B);console.log({languageId:Q,tokenType:g,fontStyle:E,foreground:C,background:I})},A.getLanguageId=function(A){return(255&A)>>>0},A.getTokenType=function(A){return(768&A)>>>8},A.containsBalancedBrackets=function(A){return 0!=(1024&A)},A.getFontStyle=function(A){return(30720&A)>>>11},A.getForeground=function(A){return(16744448&A)>>>15},A.getBackground=function(A){return(4278190080&A)>>>24},A.set=function(B,Q,g,E,C,I,D){let w=A.getLanguageId(B),o=A.getTokenType(B),s=A.containsBalancedBrackets(B)?1:0,e=A.getFontStyle(B),c=A.getForeground(B),i=A.getBackground(B);return 0!==Q&&(w=Q),8!==g&&(o=g),null!==E&&(s=E?1:0),-1!==C&&(e=C),0!==I&&(c=I),0!==D&&(i=D),(w<<0|o<<8|s<<10|e<<11|c<<15|i<<24)>>>0}}(L||(L={}));let u=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class y{static hasCaptures(A){return null!==A&&(u.lastIndex=0,u.test(A))}static replaceCaptures(A,B,Q){return A.replace(u,((A,g,E,C)=>{let I=Q[parseInt(g||E,10)];if(!I)return A;{let A=B.substring(I.start,I.end);for(;"."===A[0];)A=A.substring(1);switch(C){case"downcase":return A.toLowerCase();case"upcase":return A.toUpperCase();default:return A}}}))}}function J(A,B){return A<B?-1:A>B?1:0}function S(A,B){if(null===A&&null===B)return 0;if(!A)return-1;if(!B)return 1;let Q=A.length,g=B.length;if(Q===g){for(let g=0;g<Q;g++){let Q=J(A[g],B[g]);if(0!==Q)return Q}return 0}return Q-g}function d(A){return!!(/^#[0-9a-f]{6}$/i.test(A)||/^#[0-9a-f]{8}$/i.test(A)||/^#[0-9a-f]{3}$/i.test(A)||/^#[0-9a-f]{4}$/i.test(A))}function l(A){return A.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}class p{constructor(A){this.fn=A,this.cache=new Map}get(A){if(this.cache.has(A))return this.cache.get(A);const B=this.fn(A);return this.cache.set(A,B),B}}const f="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};class x{constructor(A){this.scopeName=A}toKey(){return this.scopeName}}class O{constructor(A,B){this.scopeName=A,this.ruleName=B}toKey(){return`${this.scopeName}#${this.ruleName}`}}class m{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(A){const B=A.toKey();this._seenReferenceKeys.has(B)||(this._seenReferenceKeys.add(B),this._references.push(A))}}class q{constructor(A,B){this.repo=A,this.initialScopeName=B,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new x(this.initialScopeName)]}processQueue(){const A=this.Q;this.Q=[];const B=new m;for(const Q of A)b(Q,this.initialScopeName,this.repo,B);for(const A of B.references)if(A instanceof x){if(this.seenFullScopeRequests.has(A.scopeName))continue;this.seenFullScopeRequests.add(A.scopeName),this.Q.push(A)}else{if(this.seenFullScopeRequests.has(A.scopeName))continue;if(this.seenPartialScopeRequests.has(A.toKey()))continue;this.seenPartialScopeRequests.add(A.toKey()),this.Q.push(A)}}}function b(A,B,Q,g){const E=Q.lookup(A.scopeName);if(!E){if(A.scopeName===B)throw new Error(`No grammar provided for <${B}>`);return}const C=Q.lookup(B);A instanceof x?T({baseGrammar:C,selfGrammar:E},g):W(A.ruleName,{baseGrammar:C,selfGrammar:E,repository:E.repository},g);const I=Q.injections(A.scopeName);if(I)for(const A of I)g.add(new x(A))}function W(A,B,Q){B.repository&&B.repository[A]&&X([B.repository[A]],B,Q)}function T(A,B){A.selfGrammar.patterns&&Array.isArray(A.selfGrammar.patterns)&&X(A.selfGrammar.patterns,{...A,repository:A.selfGrammar.repository},B),A.selfGrammar.injections&&X(Object.values(A.selfGrammar.injections),{...A,repository:A.selfGrammar.repository},B)}function X(A,B,Q){for(const g of A){if(Q.visitedRule.has(g))continue;Q.visitedRule.add(g);const A=g.repository?U({},B.repository,g.repository):B.repository;Array.isArray(g.patterns)&&X(g.patterns,{...B,repository:A},Q);const E=g.include;if(!E)continue;const C=_(E);switch(C.kind){case 0:T({...B,selfGrammar:B.baseGrammar},Q);break;case 1:T(B,Q);break;case 2:W(C.ruleName,{...B,repository:A},Q);break;case 3:case 4:const g=C.scopeName===B.selfGrammar.scopeName?B.selfGrammar:C.scopeName===B.baseGrammar.scopeName?B.baseGrammar:void 0;if(g){const E={baseGrammar:B.baseGrammar,selfGrammar:g,repository:A};4===C.kind?W(C.ruleName,E,Q):T(E,Q)}else 4===C.kind?Q.add(new O(C.scopeName,C.ruleName)):Q.add(new x(C.scopeName))}}}class v{constructor(){this.kind=0}}class Z{constructor(){this.kind=1}}class j{constructor(A){this.ruleName=A,this.kind=2}}class V{constructor(A){this.scopeName=A,this.kind=3}}class z{constructor(A,B){this.scopeName=A,this.ruleName=B,this.kind=4}}function _(A){if("$base"===A)return new v;if("$self"===A)return new Z;const B=A.indexOf("#");if(-1===B)return new V(A);if(0===B)return new j(A.substring(1));{const Q=A.substring(0,B),g=A.substring(B+1);return new z(Q,g)}}const $=/\\(\d+)/,AA=/\\(\d+)/g;class BA{constructor(A,B,Q,g){this.$location=A,this.id=B,this._name=Q||null,this._nameIsCapturing=y.hasCaptures(this._name),this._contentName=g||null,this._contentNameIsCapturing=y.hasCaptures(this._contentName)}get debugName(){const A=this.$location?`${P(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${A}`}getName(A,B){return this._nameIsCapturing&&null!==this._name&&null!==A&&null!==B?y.replaceCaptures(this._name,A,B):this._name}getContentName(A,B){return this._contentNameIsCapturing&&null!==this._contentName?y.replaceCaptures(this._contentName,A,B):this._contentName}}class QA extends BA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.retokenizeCapturedWithRuleId=E}dispose(){}collectPatterns(A,B){throw new Error("Not supported!")}compile(A,B){throw new Error("Not supported!")}compileAG(A,B,Q,g){throw new Error("Not supported!")}}class gA extends BA{constructor(A,B,Q,g,E){super(A,B,Q,null),this._match=new wA(g,this.id),this.captures=E,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(A,B){B.push(this._match)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new oA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class EA extends BA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.patterns=E.patterns,this.hasMissingPatterns=E.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(A,B){for(const Q of this.patterns)A.getRule(Q).collectPatterns(A,B)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new oA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class CA extends BA{constructor(A,B,Q,g,E,C,I,D,w,o){super(A,B,Q,g),this._begin=new wA(E,this.id),this.beginCaptures=C,this._end=new wA(I||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=D,this.applyEndPatternLast=w||!1,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(A,B){return this._end.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A,B).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledPatterns(A,B){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new oA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,B):this._cachedCompiledPatterns.setSource(0,B)),this._cachedCompiledPatterns}}class IA extends BA{constructor(A,B,Q,g,E,C,I,D,w){super(A,B,Q,g),this._begin=new wA(E,this.id),this.beginCaptures=C,this.whileCaptures=D,this._while=new wA(I,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=w.patterns,this.hasMissingPatterns=w.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(A,B){return this._while.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new oA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(A,B){return this._getCachedCompiledWhilePatterns(A,B).compile(A)}compileWhileAG(A,B,Q,g){return this._getCachedCompiledWhilePatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledWhilePatterns(A,B){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new oA,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,B||"￿"),this._cachedCompiledWhilePatterns}}class DA{static createCaptureRule(A,B,Q,g,E){return A.registerRule((A=>new QA(B,A,Q,g,E)))}static getCompiledRuleId(A,B,Q){return A.id||B.registerRule((g=>{if(A.id=g,A.match)return new gA(A.$vscodeTextmateLocation,A.id,A.name,A.match,DA._compileCaptures(A.captures,B,Q));if(void 0===A.begin){A.repository&&(Q=U({},Q,A.repository));let g=A.patterns;return void 0===g&&A.include&&(g=[{include:A.include}]),new EA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,DA._compilePatterns(g,B,Q))}return A.while?new IA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,DA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.while,DA._compileCaptures(A.whileCaptures||A.captures,B,Q),DA._compilePatterns(A.patterns,B,Q)):new CA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,DA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.end,DA._compileCaptures(A.endCaptures||A.captures,B,Q),A.applyEndPatternLast,DA._compilePatterns(A.patterns,B,Q))})),A.id}static _compileCaptures(A,B,Q){let g=[];if(A){let E=0;for(const B in A){if("$vscodeTextmateLocation"===B)continue;const A=parseInt(B,10);A>E&&(E=A)}for(let A=0;A<=E;A++)g[A]=null;for(const E in A){if("$vscodeTextmateLocation"===E)continue;const C=parseInt(E,10);let I=0;A[E].patterns&&(I=DA.getCompiledRuleId(A[E],B,Q)),g[C]=DA.createCaptureRule(B,A[E].$vscodeTextmateLocation,A[E].name,A[E].contentName,I)}}return g}static _compilePatterns(A,B,Q){let g=[];if(A)for(let E=0,C=A.length;E<C;E++){const C=A[E];let I=-1;if(C.include){const A=_(C.include);switch(A.kind){case 0:case 1:I=DA.getCompiledRuleId(Q[C.include],B,Q);break;case 2:let g=Q[A.ruleName];g&&(I=DA.getCompiledRuleId(g,B,Q));break;case 3:case 4:const E=A.scopeName,D=4===A.kind?A.ruleName:null,w=B.getExternalGrammar(E,Q);if(w)if(D){let A=w.repository[D];A&&(I=DA.getCompiledRuleId(A,B,w.repository))}else I=DA.getCompiledRuleId(w.repository.$self,B,w.repository)}}else I=DA.getCompiledRuleId(C,B,Q);if(-1!==I){const A=B.getRule(I);let Q=!1;if((A instanceof EA||A instanceof CA||A instanceof IA)&&A.hasMissingPatterns&&0===A.patterns.length&&(Q=!0),Q)continue;g.push(I)}}return{patterns:g,hasMissingPatterns:(A?A.length:0)!==g.length}}}class wA{constructor(A,B){if(A){const B=A.length;let Q=0,g=[],E=!1;for(let C=0;C<B;C++)if("\\"===A.charAt(C)&&C+1<B){const B=A.charAt(C+1);"z"===B?(g.push(A.substring(Q,C)),g.push("$(?!\\n)(?<!\\n)"),Q=C+2):"A"!==B&&"G"!==B||(E=!0),C++}this.hasAnchor=E,0===Q?this.source=A:(g.push(A.substring(Q,B)),this.source=g.join(""))}else this.hasAnchor=!1,this.source=A;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=B,this.hasBackReferences=$.test(this.source)}clone(){return new wA(this.source,this.ruleId)}setSource(A){this.source!==A&&(this.source=A,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(A,B){let Q=B.map((B=>A.substring(B.start,B.end)));return AA.lastIndex=0,this.source.replace(AA,((A,B)=>l(Q[parseInt(B,10)]||"")))}_buildAnchorCache(){let A,B,Q,g,E=[],C=[],I=[],D=[];for(A=0,B=this.source.length;A<B;A++)Q=this.source.charAt(A),E[A]=Q,C[A]=Q,I[A]=Q,D[A]=Q,"\\"===Q&&A+1<B&&(g=this.source.charAt(A+1),"A"===g?(E[A+1]="￿",C[A+1]="￿",I[A+1]="A",D[A+1]="A"):"G"===g?(E[A+1]="￿",C[A+1]="G",I[A+1]="￿",D[A+1]="G"):(E[A+1]=g,C[A+1]=g,I[A+1]=g,D[A+1]=g),A++);return{A0_G0:E.join(""),A0_G1:C.join(""),A1_G0:I.join(""),A1_G1:D.join("")}}resolveAnchors(A,B){return this.hasAnchor&&this._anchorCache?A?B?this._anchorCache.A1_G1:this._anchorCache.A1_G0:B?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source}}class oA{constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(A){this._items.push(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}unshift(A){this._items.unshift(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}length(){return this._items.length}setSource(A,B){this._items[A].source!==B&&(this._disposeCaches(),this._items[A].setSource(B))}compile(A){if(!this._cached){let B=this._items.map((A=>A.source));this._cached=new sA(A,B,this._items.map((A=>A.ruleId)))}return this._cached}compileAG(A,B,Q){return this._hasAnchors?B?Q?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G0):Q?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G0):this.compile(A)}_resolveAnchors(A,B,Q){let g=this._items.map((A=>A.resolveAnchors(B,Q)));return new sA(A,g,this._items.map((A=>A.ruleId)))}}class sA{constructor(A,B,Q){this.regExps=B,this.rules=Q,this.scanner=A.createOnigScanner(B)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const A=[];for(let B=0,Q=this.rules.length;B<Q;B++)A.push(" - "+this.rules[B]+": "+this.regExps[B]);return A.join("\n")}findNextMatchSync(A,B,Q){const g=this.scanner.findNextMatchSync(A,B,Q);return g?{ruleId:this.rules[g.index],captureIndices:g.captureIndices}:null}}class eA{constructor(A,B,Q){this._colorMap=A,this._defaults=B,this._root=Q,this._cachedMatchRoot=new p((A=>this._root.match(A)))}static createFromRawTheme(A,B){return this.createFromParsedTheme(function(A){if(!A)return[];if(!A.settings||!Array.isArray(A.settings))return[];let B=A.settings,Q=[],g=0;for(let A=0,E=B.length;A<E;A++){let E,C=B[A];if(!C.settings)continue;if("string"==typeof C.scope){let A=C.scope;A=A.replace(/^[,]+/,""),A=A.replace(/[,]+$/,""),E=A.split(",")}else E=Array.isArray(C.scope)?C.scope:[""];let I=-1;if("string"==typeof C.settings.fontStyle){I=0;let A=C.settings.fontStyle.split(" ");for(let B=0,Q=A.length;B<Q;B++)switch(A[B]){case"italic":I|=1;break;case"bold":I|=2;break;case"underline":I|=4;break;case"strikethrough":I|=8}}let D=null;"string"==typeof C.settings.foreground&&d(C.settings.foreground)&&(D=C.settings.foreground);let w=null;"string"==typeof C.settings.background&&d(C.settings.background)&&(w=C.settings.background);for(let B=0,C=E.length;B<C;B++){let C=E[B].trim().split(" "),o=C[C.length-1],s=null;C.length>1&&(s=C.slice(0,C.length-1),s.reverse()),Q[g++]=new MA(o,s,A,I,D,w)}}return Q}(A),B)}static createFromParsedTheme(A,B){return function(A,B){A.sort(((A,B)=>{let Q=J(A.scope,B.scope);return 0!==Q?Q:(Q=S(A.parentScopes,B.parentScopes),0!==Q?Q:A.index-B.index)}));let Q=0,g="#000000",E="#ffffff";for(;A.length>=1&&""===A[0].scope;){let B=A.shift();-1!==B.fontStyle&&(Q=B.fontStyle),null!==B.foreground&&(g=B.foreground),null!==B.background&&(E=B.background)}let C=new hA(B),I=new tA(Q,C.getId(g),C.getId(E)),D=new GA(new FA(0,null,-1,0,0),[]);for(let B=0,Q=A.length;B<Q;B++){let Q=A[B];D.insert(0,Q.scope,Q.parentScopes,Q.fontStyle,C.getId(Q.foreground),C.getId(Q.background))}return new eA(C,I,D)}(A,B)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(A){if(null===A)return this._defaults;const B=A.scopeName,Q=this._cachedMatchRoot.get(B).find((B=>function(A,B){if(null===B)return!0;let Q=0,g=B[Q];for(;A;){if(iA(A.scopeName,g)){if(Q++,Q===B.length)return!0;g=B[Q]}A=A.parent}return!1}(A.parent,B.parentScopes)));return Q?new tA(Q.fontStyle,Q.foreground,Q.background):null}}class cA{constructor(A,B){this.parent=A,this.scopeName=B}static push(A,B){for(const Q of B)A=new cA(A,Q);return A}static from(...A){let B=null;for(let Q=0;Q<A.length;Q++)B=new cA(B,A[Q]);return B}push(A){return new cA(this,A)}getSegments(){let A=this;const B=[];for(;A;)B.push(A.scopeName),A=A.parent;return B.reverse(),B}toString(){return this.getSegments().join(" ")}extends(A){return this===A||null!==this.parent&&this.parent.extends(A)}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push(Q.scopeName),Q=Q.parent;return Q===A?B.reverse():void 0}}function iA(A,B){return B===A||A.startsWith(B)&&"."===A[B.length]}class tA{constructor(A,B,Q){this.fontStyle=A,this.foregroundId=B,this.backgroundId=Q}}class MA{constructor(A,B,Q,g,E,C){this.scope=A,this.parentScopes=B,this.index=Q,this.fontStyle=g,this.foreground=E,this.background=C}}class hA{constructor(A){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(A)){this._isFrozen=!0;for(let B=0,Q=A.length;B<Q;B++)this._color2id[A[B]]=B,this._id2color[B]=A[B]}else this._isFrozen=!1}getId(A){if(null===A)return 0;A=A.toUpperCase();let B=this._color2id[A];if(B)return B;if(this._isFrozen)throw new Error(`Missing color in color map - ${A}`);return B=++this._lastColorId,this._color2id[A]=B,this._id2color[B]=A,B}getColorMap(){return this._id2color.slice(0)}}class FA{constructor(A,B,Q,g,E){this.scopeDepth=A,this.parentScopes=B,this.fontStyle=Q,this.foreground=g,this.background=E}clone(){return new FA(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=A[Q].clone();return B}acceptOverwrite(A,B,Q,g){this.scopeDepth>A?console.log("how did this happen?"):this.scopeDepth=A,-1!==B&&(this.fontStyle=B),0!==Q&&(this.foreground=Q),0!==g&&(this.background=g)}}class GA{constructor(A,B=[],Q={}){this._mainRule=A,this._children=Q,this._rulesWithParentScopes=B}static _sortBySpecificity(A){return 1===A.length||A.sort(this._cmpBySpecificity),A}static _cmpBySpecificity(A,B){if(A.scopeDepth===B.scopeDepth){const Q=A.parentScopes,g=B.parentScopes;let E=null===Q?0:Q.length,C=null===g?0:g.length;if(E===C)for(let A=0;A<E;A++){const B=Q[A].length,E=g[A].length;if(B!==E)return E-B}return C-E}return B.scopeDepth-A.scopeDepth}match(A){if(""===A)return GA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));let B,Q,g=A.indexOf(".");return-1===g?(B=A,Q=""):(B=A.substring(0,g),Q=A.substring(g+1)),this._children.hasOwnProperty(B)?this._children[B].match(Q):GA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))}insert(A,B,Q,g,E,C){if(""===B)return void this._doInsertHere(A,Q,g,E,C);let I,D,w,o=B.indexOf(".");-1===o?(I=B,D=""):(I=B.substring(0,o),D=B.substring(o+1)),this._children.hasOwnProperty(I)?w=this._children[I]:(w=new GA(this._mainRule.clone(),FA.cloneArr(this._rulesWithParentScopes)),this._children[I]=w),w.insert(A+1,D,Q,g,E,C)}_doInsertHere(A,B,Q,g,E){if(null!==B){for(let C=0,I=this._rulesWithParentScopes.length;C<I;C++){let I=this._rulesWithParentScopes[C];if(0===S(I.parentScopes,B))return void I.acceptOverwrite(A,Q,g,E)}-1===Q&&(Q=this._mainRule.fontStyle),0===g&&(g=this._mainRule.foreground),0===E&&(E=this._mainRule.background),this._rulesWithParentScopes.push(new FA(A,B,Q,g,E))}else this._mainRule.acceptOverwrite(A,Q,g,E)}}class aA{constructor(A,B){this.languageId=A,this.tokenType=B}}class nA{constructor(A,B){this._getBasicScopeAttributes=new p((A=>{const B=this._scopeToLanguage(A),Q=this._toStandardTokenType(A);return new aA(B,Q)})),this._defaultAttributes=new aA(A,8),this._embeddedLanguagesMatcher=new NA(Object.entries(B||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(A){return null===A?nA._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(A)}_scopeToLanguage(A){return this._embeddedLanguagesMatcher.match(A)||0}_toStandardTokenType(A){const B=A.match(nA.STANDARD_TOKEN_TYPE_REGEXP);if(!B)return 8;switch(B[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}nA._NULL_SCOPE_METADATA=new aA(0,0),nA.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class NA{constructor(A){if(0===A.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(A);const B=A.map((([A,B])=>l(A)));B.sort(),B.reverse(),this.scopesRegExp=new RegExp(`^((${B.join(")|(")}))($|\\.)`,"")}}match(A){if(!this.scopesRegExp)return;const B=A.match(this.scopesRegExp);return B?this.values.get(B[1]):void 0}}class rA{constructor(A,B){this.stack=A,this.stoppedEarly=B}}function HA(A,B,Q,g,E,C,I,D){const w=B.content.length;let o=!1,s=-1;if(I){const I=function(A,B,Q,g,E,C){let I=E.beginRuleCapturedEOL?0:-1;const D=[];for(let B=E;B;B=B.pop()){const Q=B.getRule(A);Q instanceof IA&&D.push({rule:Q,stack:B})}for(let w=D.pop();w;w=D.pop()){const{ruleScanner:D,findOptions:o}=kA(w.rule,A,w.stack.endRule,Q,g===I),s=D.findNextMatchSync(B,g,o);if(H&&(console.log(" scanning for while rule"),console.log(D.toString())),!s){H&&console.log(" popping "+w.rule.debugName+" - "+w.rule.debugWhileRegExp),E=w.stack.pop();break}if(-2!==s.ruleId){E=w.stack.pop();break}s.captureIndices&&s.captureIndices.length&&(C.produce(w.stack,s.captureIndices[0].start),RA(A,B,Q,w.stack,C,w.rule.whileCaptures,s.captureIndices),C.produce(w.stack,s.captureIndices[0].end),I=s.captureIndices[0].end,s.captureIndices[0].end>g&&(g=s.captureIndices[0].end,Q=!1))}return{stack:E,linePos:g,anchorPosition:I,isFirstLine:Q}}(A,B,Q,g,E,C);E=I.stack,g=I.linePos,Q=I.isFirstLine,s=I.anchorPosition}const e=Date.now();for(;!o;){if(0!==D&&Date.now()-e>D)return new rA(E,!0);c()}return new rA(E,!1);function c(){H&&(console.log(""),console.log(`@@scanNext ${g}: |${B.content.substr(g).replace(/\n$/,"\\n")}|`));const I=function(A,B,Q,g,E,C){const I=function(A,B,Q,g,E,C){const I=E.getRule(A),{ruleScanner:D,findOptions:w}=LA(I,A,E.endRule,Q,g===C);let o=0;H&&(o=f());const s=D.findNextMatchSync(B,g,w);if(H){const A=f()-o;A>5&&console.warn(`Rule ${I.debugName} (${I.id}) matching took ${A} against '${B}'`),console.log(` scanning for (linePos: ${g}, anchorPosition: ${C})`),console.log(D.toString()),s&&console.log(`matched rule id: ${s.ruleId} from ${s.captureIndices[0].start} to ${s.captureIndices[0].end}`)}return s?{captureIndices:s.captureIndices,matchedRuleId:s.ruleId}:null}(A,B,Q,g,E,C),D=A.getInjections();if(0===D.length)return I;const w=function(A,B,Q,g,E,C,I){let D,w=Number.MAX_VALUE,o=null,s=0;const e=C.contentNameScopesList.getScopeNames();for(let C=0,c=A.length;C<c;C++){const c=A[C];if(!c.matcher(e))continue;const i=B.getRule(c.ruleId),{ruleScanner:t,findOptions:M}=LA(i,B,null,g,E===I),h=t.findNextMatchSync(Q,E,M);if(!h)continue;H&&(console.log(` matched injection: ${c.debugSelector}`),console.log(t.toString()));const F=h.captureIndices[0].start;if(!(F>=w)&&(w=F,o=h.captureIndices,D=h.ruleId,s=c.priority,w===E))break}return o?{priorityMatch:-1===s,captureIndices:o,matchedRuleId:D}:null}(D,A,B,Q,g,E,C);if(!w)return I;if(!I)return w;const o=I.captureIndices[0].start,s=w.captureIndices[0].start;return s<o||w.priorityMatch&&s===o?w:I}(A,B,Q,g,E,s);if(!I)return H&&console.log(" no more matches."),C.produce(E,w),void(o=!0);const D=I.captureIndices,e=I.matchedRuleId,c=!!(D&&D.length>0)&&D[0].end>g;if(-1===e){const I=E.getRule(A);H&&console.log(" popping "+I.debugName+" - "+I.debugEndRegExp),C.produce(E,D[0].start),E=E.withContentNameScopesList(E.nameScopesList),RA(A,B,Q,E,C,I.endCaptures,D),C.produce(E,D[0].end);const e=E;if(E=E.parent,s=e.getAnchorPos(),!c&&e.getEnterPos()===g)return H&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),E=e,C.produce(E,w),void(o=!0)}else{const I=A.getRule(e);C.produce(E,D[0].start);const i=E,t=I.getName(B.content,D),M=E.contentNameScopesList.pushAttributed(t,A);if(E=E.push(e,g,s,D[0].end===w,null,M,M),I instanceof CA){const g=I;H&&console.log(" pushing "+g.debugName+" - "+g.debugBeginRegExp),RA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.endHasBackReferences&&(E=E.withEndRule(g.getEndWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return H&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else if(I instanceof IA){const g=I;H&&console.log(" pushing "+g.debugName),RA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.whileHasBackReferences&&(E=E.withEndRule(g.getWhileWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return H&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else{const g=I;if(H&&console.log(" matched "+g.debugName+" - "+g.debugMatchRegExp),RA(A,B,Q,E,C,g.captures,D),C.produce(E,D[0].end),E=E.pop(),!c)return H&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),E=E.safePop(),C.produce(E,w),void(o=!0)}}D[0].end>g&&(g=D[0].end,Q=!1)}}function LA(A,B,Q,g,E){return{ruleScanner:A.compileAG(B,Q,g,E),findOptions:0}}function kA(A,B,Q,g,E){return{ruleScanner:A.compileWhileAG(B,Q,g,E),findOptions:0}}function RA(A,B,Q,g,E,C,I){if(0===C.length)return;const D=B.content,w=Math.min(C.length,I.length),o=[],s=I[0].end;for(let B=0;B<w;B++){const w=C[B];if(null===w)continue;const e=I[B];if(0===e.length)continue;if(e.start>s)break;for(;o.length>0&&o[o.length-1].endPos<=e.start;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop();if(o.length>0?E.produceFromScopes(o[o.length-1].scopes,e.start):E.produce(g,e.start),w.retokenizeCapturedWithRuleId){const B=w.getName(D,I),C=g.contentNameScopesList.pushAttributed(B,A),o=w.getContentName(D,I),s=C.pushAttributed(o,A),c=g.push(w.retokenizeCapturedWithRuleId,e.start,-1,!1,null,C,s),i=A.createOnigString(D.substring(0,e.end));HA(A,i,Q&&0===e.start,e.start,c,E,!1,0),K(i);continue}const c=w.getName(D,I);if(null!==c){const B=(o.length>0?o[o.length-1].scopes:g.contentNameScopesList).pushAttributed(c,A);o.push(new KA(B,e.end))}}for(;o.length>0;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop()}class KA{constructor(A,B){this.scopes=A,this.endPos=B}}function YA(A,B,Q,g,E){const C=k(B,UA),I=DA.getCompiledRuleId(Q,g,E.repository);for(const Q of C)A.push({debugSelector:B,matcher:Q.matcher,ruleId:I,grammar:E,priority:Q.priority})}function UA(A,B){if(B.length<A.length)return!1;let Q=0;return A.every((A=>{for(let g=Q;g<B.length;g++)if(PA(B[g],A))return Q=g+1,!0;return!1}))}function PA(A,B){if(!A)return!1;if(A===B)return!0;const Q=B.length;return A.length>Q&&A.substr(0,Q)===B&&"."===A[Q]}class uA{constructor(A,B,Q,g,E,C,I,D){if(this._rootScopeName=A,this.balancedBracketSelectors=C,this._onigLib=D,this._basicScopeAttributesProvider=new nA(Q,g),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=I,this._grammar=yA(B,null),this._injections=null,this._tokenTypeMatchers=[],E)for(const A of Object.keys(E)){const B=k(A,UA);for(const Q of B)this._tokenTypeMatchers.push({matcher:Q.matcher,type:E[A]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const A of this._ruleId2desc)A&&A.dispose()}createOnigScanner(A){return this._onigLib.createOnigScanner(A)}createOnigString(A){return this._onigLib.createOnigString(A)}getMetadataForScope(A){return this._basicScopeAttributesProvider.getBasicScopeAttributes(A)}_collectInjections(){const A=[],B=this._rootScopeName,Q=(A=>A===this._rootScopeName?this._grammar:this.getExternalGrammar(A))(B);if(Q){const g=Q.injections;if(g)for(let B in g)YA(A,B,g[B],this,Q);const E=this._grammarRepository.injections(B);E&&E.forEach((B=>{const Q=this.getExternalGrammar(B);if(Q){const B=Q.injectionSelector;B&&YA(A,B,Q,this,Q)}}))}return A.sort(((A,B)=>A.priority-B.priority)),A}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),H&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const A of this._injections)console.log(` - ${A.debugSelector}`)}return this._injections}registerRule(A){const B=++this._lastRuleId,Q=A(B);return this._ruleId2desc[B]=Q,Q}getRule(A){return this._ruleId2desc[A]}getExternalGrammar(A,B){if(this._includedGrammars[A])return this._includedGrammars[A];if(this._grammarRepository){const Q=this._grammarRepository.lookup(A);if(Q)return this._includedGrammars[A]=yA(Q,B&&B.$base),this._includedGrammars[A]}}tokenizeLine(A,B,Q=0){const g=this._tokenize(A,B,!1,Q);return{tokens:g.lineTokens.getResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}tokenizeLine2(A,B,Q=0){const g=this._tokenize(A,B,!0,Q);return{tokens:g.lineTokens.getBinaryResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}_tokenize(A,B,Q,g){let E;if(-1===this._rootId&&(this._rootId=DA.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),B&&B!==SA.NULL)E=!1,B.reset();else{E=!0;const A=this._basicScopeAttributesProvider.getDefaultAttributes(),Q=this.themeProvider.getDefaults(),g=L.set(0,A.languageId,A.tokenType,null,Q.fontStyle,Q.foregroundId,Q.backgroundId),C=this.getRule(this._rootId).getName(null,null);let I;I=C?JA.createRootAndLookUpScopeName(C,g,this):JA.createRoot("unknown",g),B=new SA(null,this._rootId,-1,-1,!1,null,I,I)}A+="\n";const C=this.createOnigString(A),I=C.content.length,D=new lA(Q,A,this._tokenTypeMatchers,this.balancedBracketSelectors),w=HA(this,C,E,0,B,D,!0,g);return K(C),{lineLength:I,lineTokens:D,ruleStack:w.stack,stoppedEarly:w.stoppedEarly}}}function yA(A,B){return(A=Y(A)).repository=A.repository||{},A.repository.$self={$vscodeTextmateLocation:A.$vscodeTextmateLocation,patterns:A.patterns,name:A.scopeName},A.repository.$base=B||A.repository.$self,A}class JA{constructor(A,B,Q){this.parent=A,this.scopePath=B,this.tokenAttributes=Q}static fromExtension(A,B){let Q=A,g=A?.scopePath??null;for(const A of B)g=cA.push(g,A.scopeNames),Q=new JA(Q,g,A.encodedTokenAttributes);return Q}static createRoot(A,B){return new JA(null,new cA(null,A),B)}static createRootAndLookUpScopeName(A,B,Q){const g=Q.getMetadataForScope(A),E=new cA(null,A),C=Q.themeProvider.themeMatch(E),I=JA.mergeAttributes(B,g,C);return new JA(null,E,I)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(A){return JA.equals(this,A)}static equals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.scopeName!==B.scopeName||A.tokenAttributes!==B.tokenAttributes)return!1;A=A.parent,B=B.parent}}static mergeAttributes(A,B,Q){let g=-1,E=0,C=0;return null!==Q&&(g=Q.fontStyle,E=Q.foregroundId,C=Q.backgroundId),L.set(A,B.languageId,B.tokenType,null,g,E,C)}pushAttributed(A,B){if(null===A)return this;if(-1===A.indexOf(" "))return JA._pushAttributed(this,A,B);const Q=A.split(/ /g);let g=this;for(const A of Q)g=JA._pushAttributed(g,A,B);return g}static _pushAttributed(A,B,Q){const g=Q.getMetadataForScope(B),E=A.scopePath.push(B),C=Q.themeProvider.themeMatch(E),I=JA.mergeAttributes(A.tokenAttributes,g,C);return new JA(A,E,I)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push({encodedTokenAttributes:Q.tokenAttributes,scopeNames:Q.scopePath.getExtensionIfDefined(Q.parent?.scopePath??null)}),Q=Q.parent;return Q===A?B.reverse():void 0}}class SA{constructor(A,B,Q,g,E,C,I,D){this.parent=A,this.ruleId=B,this.beginRuleCapturedEOL=E,this.endRule=C,this.nameScopesList=I,this.contentNameScopesList=D,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=Q,this._anchorPos=g}equals(A){return null!==A&&SA._equals(this,A)}static _equals(A,B){return A===B||!!this._structuralEquals(A,B)&&JA.equals(A.contentNameScopesList,B.contentNameScopesList)}static _structuralEquals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.depth!==B.depth||A.ruleId!==B.ruleId||A.endRule!==B.endRule)return!1;A=A.parent,B=B.parent}}clone(){return this}static _reset(A){for(;A;)A._enterPos=-1,A._anchorPos=-1,A=A.parent}reset(){SA._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(A,B,Q,g,E,C,I){return new SA(this,A,B,Q,g,E,C,I)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(A){return A.getRule(this.ruleId)}toString(){const A=[];return this._writeString(A,0),"["+A.join(",")+"]"}_writeString(A,B){return this.parent&&(B=this.parent._writeString(A,B)),A[B++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,B}withContentNameScopesList(A){return this.contentNameScopesList===A?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,A)}withEndRule(A){return this.endRule===A?this:new SA(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,A,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(A){let B=this;for(;B&&B._enterPos===A._enterPos;){if(B.ruleId===A.ruleId)return!0;B=B.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(A,B){const Q=JA.fromExtension(A?.nameScopesList??null,B.nameScopesList);return new SA(A,B.ruleId,B.enterPos??-1,B.anchorPos??-1,B.beginRuleCapturedEOL,B.endRule,Q,JA.fromExtension(Q,B.contentNameScopesList))}}SA.NULL=new SA(null,0,0,0,!1,null,null,null);class dA{constructor(A,B){this.allowAny=!1,this.balancedBracketScopes=A.flatMap((A=>"*"===A?(this.allowAny=!0,[]):k(A,UA).map((A=>A.matcher)))),this.unbalancedBracketScopes=B.flatMap((A=>k(A,UA).map((A=>A.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(A){for(const B of this.unbalancedBracketScopes)if(B(A))return!1;for(const B of this.balancedBracketScopes)if(B(A))return!0;return this.allowAny}}class lA{constructor(A,B,Q,g){this.balancedBracketSelectors=g,this._emitBinaryTokens=A,this._tokenTypeOverrides=Q,this._lineText=H?B:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(A,B){this.produceFromScopes(A.contentNameScopesList,B)}produceFromScopes(A,B){if(this._lastTokenEndIndex>=B)return;if(this._emitBinaryTokens){let Q=A?.tokenAttributes??0,g=!1;if(this.balancedBracketSelectors?.matchesAlways&&(g=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const B=A?.getScopeNames()??[];for(const A of this._tokenTypeOverrides)A.matcher(B)&&(Q=L.set(Q,0,A.type,null,-1,0,0));this.balancedBracketSelectors&&(g=this.balancedBracketSelectors.match(B))}if(g&&(Q=L.set(Q,0,8,g,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===Q)return void(this._lastTokenEndIndex=B);if(H){const Q=A?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(Q),void(this._lastTokenEndIndex=B)}const Q=A?.getScopeNames()??[];if(H){console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:B,scopes:Q}),this._lastTokenEndIndex=B}getResult(A,B){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===B-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(A,B){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===B-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._binaryTokens[this._binaryTokens.length-2]=0);const Q=new Uint32Array(this._binaryTokens.length);for(let A=0,B=this._binaryTokens.length;A<B;A++)Q[A]=this._binaryTokens[A];return Q}}function pA(A,B,Q){const g=A.length;let E=0,C=1,I=0;function D(B){if(null===Q)E+=B;else for(;B>0;)10===A.charCodeAt(E)?(E++,C++,I=0):(E++,I++),B--}function w(A){null===Q?E=A:D(A-E)}function o(){for(;E<g;){let B=A.charCodeAt(E);if(32!==B&&9!==B&&13!==B&&10!==B)break;D(1)}}function s(B){return A.substr(E,B.length)===B&&(D(B.length),!0)}function e(B){let Q=A.indexOf(B,E);w(-1!==Q?Q+B.length:g)}function c(B){let Q=A.indexOf(B,E);if(-1!==Q){let g=A.substring(E,Q);return w(Q+B.length),g}{let B=A.substr(E);return w(g),B}}g>0&&65279===A.charCodeAt(0)&&(E=1);let i=0,t=null,M=[],h=[],F=null;function G(A,B){M.push(i),h.push(t),i=A,t=B}function a(){if(0===M.length)return n("illegal state stack");i=M.pop(),t=h.pop()}function n(B){throw new Error("Near offset "+E+": "+B+" ~~~"+A.substr(E,50)+"~~~")}const N=function(){if(null===F)return n("missing <key>");let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t[F]=A,F=null,G(1,A)},r=function(){if(null===F)return n("missing <key>");let A=[];t[F]=A,F=null,G(2,A)},H=function(){let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t.push(A),G(1,A)},L=function(){let A=[];t.push(A),G(2,A)};function k(){if(1!==i)return n("unexpected </dict>");a()}function R(){return 1===i||2!==i?n("unexpected </array>"):void a()}function K(A){if(1===i){if(null===F)return n("missing <key>");t[F]=A,F=null}else 2===i?t.push(A):t=A}function Y(A){if(isNaN(A))return n("cannot parse float");if(1===i){if(null===F)return n("missing <key>");t[F]=A,F=null}else 2===i?t.push(A):t=A}function U(A){if(isNaN(A))return n("cannot parse integer");if(1===i){if(null===F)return n("missing <key>");t[F]=A,F=null}else 2===i?t.push(A):t=A}function P(A){if(1===i){if(null===F)return n("missing <key>");t[F]=A,F=null}else 2===i?t.push(A):t=A}function u(A){if(1===i){if(null===F)return n("missing <key>");t[F]=A,F=null}else 2===i?t.push(A):t=A}function y(A){if(1===i){if(null===F)return n("missing <key>");t[F]=A,F=null}else 2===i?t.push(A):t=A}function J(){let A=c(">"),B=!1;return 47===A.charCodeAt(A.length-1)&&(B=!0,A=A.substring(0,A.length-1)),{name:A.trim(),isClosed:B}}function S(A){if(A.isClosed)return"";let B=c("</");return e(">"),B.replace(/&#([0-9]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,10))})).replace(/&#x([0-9a-f]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,16))})).replace(/&|<|>|"|'/g,(function(A){switch(A){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return A}))}for(;E<g&&(o(),!(E>=g));){const w=A.charCodeAt(E);if(D(1),60!==w)return n("expected <");if(E>=g)return n("unexpected end of input");const c=A.charCodeAt(E);if(63===c){D(1),e("?>");continue}if(33===c){if(D(1),s("--")){e("--\x3e");continue}e(">");continue}if(47===c){if(D(1),o(),s("plist")){e(">");continue}if(s("dict")){e(">"),k();continue}if(s("array")){e(">"),R();continue}return n("unexpected closed tag")}let M=J();switch(M.name){case"dict":1===i?N():2===i?H():(t={},null!==Q&&(t[Q]={filename:B,line:C,char:I}),G(1,t)),M.isClosed&&k();continue;case"array":1===i?r():2===i?L():(t=[],G(2,t)),M.isClosed&&R();continue;case"key":d=S(M),1!==i?n("unexpected <key>"):null!==F?n("too many <key>"):F=d;continue;case"string":K(S(M));continue;case"real":Y(parseFloat(S(M)));continue;case"integer":U(parseInt(S(M),10));continue;case"date":P(new Date(S(M)));continue;case"data":u(S(M));continue;case"true":S(M),y(!0);continue;case"false":S(M),y(!1);continue}if(!/^plist/.test(M.name))return n("unexpected opened tag "+M.name)}var d;return t}function fA(A,B){throw new Error("Near offset "+A.pos+": "+B+" ~~~"+A.source.substr(A.pos,50)+"~~~")}class xA{constructor(A){this.source=A,this.pos=0,this.len=A.length,this.line=1,this.char=0}}class OA{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(A){return{filename:A,line:this.line,char:this.char}}}function mA(A,B){B.value=null,B.type=0,B.offset=-1,B.len=-1,B.line=-1,B.char=-1;let Q,g=A.source,E=A.pos,C=A.len,I=A.line,D=A.char;for(;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),32!==Q&&9!==Q&&13!==Q){if(10!==Q)break;E++,I++,D=0}else E++,D++}if(B.offset=E,B.line=I,B.char=D,34===Q){for(B.type=1,E++,D++;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),E++,D++,92!==Q){if(34===Q)break}else E++,D++}B.value=g.substring(B.offset+1,E-1).replace(/\\u([0-9A-Fa-f]{4})/g,((A,B)=>String.fromCodePoint(parseInt(B,16)))).replace(/\\(.)/g,((B,Q)=>{switch(Q){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:fA(A,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===Q)B.type=2,E++,D++;else if(123===Q)B.type=3,E++,D++;else if(93===Q)B.type=4,E++,D++;else if(125===Q)B.type=5,E++,D++;else if(58===Q)B.type=6,E++,D++;else if(44===Q)B.type=7,E++,D++;else if(110===Q){if(B.type=8,E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;E++,D++}else if(116===Q){if(B.type=9,E++,D++,Q=g.charCodeAt(E),114!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else if(102===Q){if(B.type=10,E++,D++,Q=g.charCodeAt(E),97!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),115!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else for(B.type=11;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),!(46===Q||Q>=48&&Q<=57||101===Q||69===Q||45===Q||43===Q))break;E++,D++}return B.len=E-B.offset,null===B.value&&(B.value=g.substr(B.offset,B.len)),A.pos=E,A.line=I,A.char=D,!0}class qA{constructor(A,B){this._onigLibPromise=B,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=A}dispose(){for(const A of this._grammars.values())A.dispose()}setTheme(A){this._theme=A}getColorMap(){return this._theme.getColorMap()}addGrammar(A,B){this._rawGrammars.set(A.scopeName,A),B&&this._injectionGrammars.set(A.scopeName,B)}lookup(A){return this._rawGrammars.get(A)}injections(A){return this._injectionGrammars.get(A)}getDefaults(){return this._theme.getDefaults()}themeMatch(A){return this._theme.match(A)}async grammarForScopeName(A,B,Q,g,E){if(!this._grammars.has(A)){let C=this._rawGrammars.get(A);if(!C)return null;this._grammars.set(A,function(A,B,Q,g,E,C,I,D){return new uA(A,B,Q,g,E,C,I,D)}(A,C,B,Q,g,E,this,await this._onigLibPromise))}return this._grammars.get(A)}}function bA(A,B){let Q=0;const g=[];let E=A,C=B;for(;E!==C;)E&&(!C||E.depth>=C.depth)?(Q++,E=E.parent):(g.push(C.toStateStackFrame()),C=C.parent);return{pops:Q,newFrames:g.reverse()}}function WA(A,B){let Q=A;for(let A=0;A<B.pops;A++)Q=Q.parent;for(const A of B.newFrames)Q=SA.pushFrame(Q,A);return Q}class TA{constructor(A){this._options=A,this._syncRegistry=new qA(eA.createFromRawTheme(A.theme,A.colorMap),A.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(A,B){this._syncRegistry.setTheme(eA.createFromRawTheme(A,B))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(A,B,Q){return this.loadGrammarWithConfiguration(A,B,{embeddedLanguages:Q})}loadGrammarWithConfiguration(A,B,Q){return this._loadGrammar(A,B,Q.embeddedLanguages,Q.tokenTypes,new dA(Q.balancedBracketSelectors||[],Q.unbalancedBracketSelectors||[]))}loadGrammar(A){return this._loadGrammar(A,0,null,null,null)}async _loadGrammar(A,B,Q,g,E){const C=new q(this._syncRegistry,A);for(;C.Q.length>0;)await Promise.all(C.Q.map((A=>this._loadSingleGrammar(A.scopeName)))),C.processQueue();return this._grammarForScopeName(A,B,Q,g,E)}async _loadSingleGrammar(A){return this._ensureGrammarCache.has(A)||this._ensureGrammarCache.set(A,this._doLoadSingleGrammar(A)),this._ensureGrammarCache.get(A)}async _doLoadSingleGrammar(A){const B=await this._options.loadGrammar(A);if(B){const Q="function"==typeof this._options.getInjections?this._options.getInjections(A):void 0;this._syncRegistry.addGrammar(B,Q)}}async addGrammar(A,B=[],Q=0,g=null){return this._syncRegistry.addGrammar(A,B),await this._grammarForScopeName(A.scopeName,Q,g)}_grammarForScopeName(A,B=0,Q=null,g=null,E=null){return this._syncRegistry.grammarForScopeName(A,B,Q,g,E)}}const XA=SA.NULL,vA=function(A,B=null){return null!==B&&/\.json$/.test(B)?(Q=A,H?function(A,B,Q){let g=new xA(A),E=new OA,C=0,I=null,D=[],w=[];function o(){D.push(C),w.push(I)}function s(){C=D.pop(),I=w.pop()}function e(A){fA(g,A)}for(;mA(g,E);){if(0===C){if(null!==I&&e("too many constructs in root"),3===E.type){I={},I.$vscodeTextmateLocation=E.toLocation(B),o(),C=1;continue}if(2===E.type){I=[],o(),C=4;continue}e("unexpected token in root")}if(2===C){if(5===E.type){s();continue}if(7===E.type){C=3;continue}e("expected , or }")}if(1===C||3===C){if(1===C&&5===E.type){s();continue}if(1===E.type){let A=E.value;if(mA(g,E)&&6===E.type||e("expected colon"),mA(g,E)||e("expected value"),C=2,1===E.type){I[A]=E.value;continue}if(8===E.type){I[A]=null;continue}if(9===E.type){I[A]=!0;continue}if(10===E.type){I[A]=!1;continue}if(11===E.type){I[A]=parseFloat(E.value);continue}if(2===E.type){let B=[];I[A]=B,o(),C=4,I=B;continue}if(3===E.type){let Q={};Q.$vscodeTextmateLocation=E.toLocation(B),I[A]=Q,o(),C=1,I=Q;continue}}e("unexpected token in dict")}if(5===C){if(4===E.type){s();continue}if(7===E.type){C=6;continue}e("expected , or ]")}if(4===C||6===C){if(4===C&&4===E.type){s();continue}if(C=5,1===E.type){I.push(E.value);continue}if(8===E.type){I.push(null);continue}if(9===E.type){I.push(!0);continue}if(10===E.type){I.push(!1);continue}if(11===E.type){I.push(parseFloat(E.value));continue}if(2===E.type){let A=[];I.push(A),o(),C=4,I=A;continue}if(3===E.type){let A={};A.$vscodeTextmateLocation=E.toLocation(B),I.push(A),o(),C=1,I=A;continue}e("unexpected token in array")}e("unknown state")}return 0!==w.length&&e("unclosed constructs"),I}(Q,B):JSON.parse(Q)):function(A,B){return H?function(A,B,Q){return pA(A,B,"$vscodeTextmateLocation")}(A,B):function(A){return pA(A,null,null)}(A)}(A,B);var Q};var ZA=r.Bz,jA=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(A){var B,Q,g=void 0!==(A=A||{})?A:{};g.ready=new Promise((function(A,g){B=A,Q=g}));var E,C=Object.assign({},g),I=!1;E=function(A){let B;return"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(B=read(A,"binary"),"object"==typeof B||H(Q),B);var Q},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var D,w,o=g.print||console.log.bind(console),s=g.printErr||console.warn.bind(console);Object.assign(g,C),C=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(D=g.wasmBinary),g.noExitRuntime,"object"!=typeof WebAssembly&&H("no native wasm support detected");var e,c,i,t=!1,M="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function h(A,B,Q){for(var g=B+Q,E=B;A[E]&&!(E>=g);)++E;if(E-B>16&&A.buffer&&M)return M.decode(A.subarray(B,E));for(var C="";B<E;){var I=A[B++];if(128&I){var D=63&A[B++];if(192!=(224&I)){var w=63&A[B++];if((I=224==(240&I)?(15&I)<<12|D<<6|w:(7&I)<<18|D<<12|w<<6|63&A[B++])<65536)C+=String.fromCharCode(I);else{var o=I-65536;C+=String.fromCharCode(55296|o>>10,56320|1023&o)}}else C+=String.fromCharCode((31&I)<<6|D)}else C+=String.fromCharCode(I)}return C}function F(A){e=A,g.HEAP8=new Int8Array(A),g.HEAP16=new Int16Array(A),g.HEAP32=new Int32Array(A),g.HEAPU8=c=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=i=new Uint32Array(A),g.HEAPF32=new Float32Array(A),g.HEAPF64=new Float64Array(A)}g.INITIAL_MEMORY;var G=[],a=[],n=[],N=0,r=null;function H(A){g.onAbort&&g.onAbort(A),s(A="Aborted("+A+")"),t=!0,A+=". Build with -sASSERTIONS for more info.";var B=new WebAssembly.RuntimeError(A);throw Q(B),B}var L,k,R,K="data:application/octet-stream;base64,";function Y(A){return A.startsWith(K)}function U(A){try{if(A==L&&D)return new Uint8Array(D);if(E)return E(A);throw"both async and sync fetching of the wasm failed"}catch(A){H(A)}}function P(A){for(;A.length>0;)A.shift()(g)}function u(A){try{return w.grow(A-e.byteLength+65535>>>16),F(w.buffer),1}catch(A){}}Y(L="onig.wasm")||(k=L,L=g.locateFile?g.locateFile(k,""):""+k),R="undefined"!=typeof dateNow?dateNow:()=>performance.now();var y=[null,[],[]];function J(A,B){var Q=y[A];0===B||10===B?((1===A?o:s)(h(Q,0)),Q.length=0):Q.push(B)}var S,d={emscripten_get_now:R,emscripten_memcpy_big:function(A,B,Q){c.copyWithin(A,B,B+Q)},emscripten_resize_heap:function(A){var B=c.length,Q=2147483648;if((A>>>=0)>Q)return!1;let g=(A,B)=>A+(B-A%B)%B;for(var E=1;E<=4;E*=2){var C=B*(1+.2/E);if(C=Math.min(C,A+100663296),u(Math.min(Q,g(Math.max(A,C),65536))))return!0}return!1},fd_write:function(A,B,Q,g){for(var E=0,C=0;C<Q;C++){var I=i[B>>2],D=i[B+4>>2];B+=8;for(var w=0;w<D;w++)J(A,c[I+w]);E+=D}return i[g>>2]=E,0}};function l(A){function Q(){S||(S=!0,g.calledRun=!0,t||(P(a),B(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)A=g.postRun.shift(),n.unshift(A);var A;P(n)}()))}N>0||(function(){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)A=g.preRun.shift(),G.unshift(A);var A;P(G)}(),N>0||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),Q()}),1)):Q()))}if(function(){var A={env:d,wasi_snapshot_preview1:d};function B(A,B){var Q,E=A.exports;g.asm=E,F((w=g.asm.memory).buffer),g.asm.__indirect_function_table,Q=g.asm.__wasm_call_ctors,a.unshift(Q),function(A){if(N--,g.monitorRunDependencies&&g.monitorRunDependencies(N),0==N&&r){var B=r;r=null,B()}}()}function E(A){B(A.instance)}function C(B){return(!D&&I&&"function"==typeof fetch?fetch(L,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+L+"'";return A.arrayBuffer()})).catch((function(){return U(L)})):Promise.resolve().then((function(){return U(L)}))).then((function(B){return WebAssembly.instantiate(B,A)})).then((function(A){return A})).then(B,(function(A){s("failed to asynchronously prepare wasm: "+A),H(A)}))}if(N++,g.monitorRunDependencies&&g.monitorRunDependencies(N),g.instantiateWasm)try{return g.instantiateWasm(A,B)}catch(A){s("Module.instantiateWasm callback failed with error: "+A),Q(A)}(D||"function"!=typeof WebAssembly.instantiateStreaming||Y(L)||"function"!=typeof fetch?C(E):fetch(L,{credentials:"same-origin"}).then((function(B){return WebAssembly.instantiateStreaming(B,A).then(E,(function(A){return s("wasm streaming compile failed: "+A),s("falling back to ArrayBuffer instantiation"),C(E)}))}))).catch(Q)}(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.__wasm_call_ctors).apply(null,arguments)},g.___errno_location=function(){return(g.___errno_location=g.asm.__errno_location).apply(null,arguments)},g._omalloc=function(){return(g._omalloc=g.asm.omalloc).apply(null,arguments)},g._ofree=function(){return(g._ofree=g.asm.ofree).apply(null,arguments)},g._getLastOnigError=function(){return(g._getLastOnigError=g.asm.getLastOnigError).apply(null,arguments)},g._createOnigScanner=function(){return(g._createOnigScanner=g.asm.createOnigScanner).apply(null,arguments)},g._freeOnigScanner=function(){return(g._freeOnigScanner=g.asm.freeOnigScanner).apply(null,arguments)},g._findNextOnigScannerMatch=function(){return(g._findNextOnigScannerMatch=g.asm.findNextOnigScannerMatch).apply(null,arguments)},g._findNextOnigScannerMatchDbg=function(){return(g._findNextOnigScannerMatchDbg=g.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},g.stackSave=function(){return(g.stackSave=g.asm.stackSave).apply(null,arguments)},g.stackRestore=function(){return(g.stackRestore=g.asm.stackRestore).apply(null,arguments)},g.stackAlloc=function(){return(g.stackAlloc=g.asm.stackAlloc).apply(null,arguments)},g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.dynCall_jiji).apply(null,arguments)},g.UTF8ToString=function(A,B){return A?h(c,A,B):""},r=function A(){S||l(),S||(r=A)},g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return l(),A.ready});let VA=null;class zA{static _utf8ByteLength(A){let B=0;for(let Q=0,g=A.length;Q<g;Q++){const E=A.charCodeAt(Q);let C=E,I=!1;if(E>=55296&&E<=56319&&Q+1<g){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(C=65536+(E-55296<<10)|B-56320,I=!0)}B+=C<=127?1:C<=2047?2:C<=65535?3:4,I&&Q++}return B}constructor(A){const B=A.length,Q=zA._utf8ByteLength(A),g=Q!==B,E=g?new Uint32Array(B+1):null;g&&(E[B]=Q);const C=g?new Uint32Array(Q+1):null;g&&(C[Q]=B);const I=new Uint8Array(Q);let D=0;for(let Q=0;Q<B;Q++){const w=A.charCodeAt(Q);let o=w,s=!1;if(w>=55296&&w<=56319&&Q+1<B){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(o=65536+(w-55296<<10)|B-56320,s=!0)}g&&(E[Q]=D,s&&(E[Q+1]=D),o<=127?C[D+0]=Q:o<=2047?(C[D+0]=Q,C[D+1]=Q):o<=65535?(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q):(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q,C[D+3]=Q)),o<=127?I[D++]=o:o<=2047?(I[D++]=192|(1984&o)>>>6,I[D++]=128|(63&o)>>>0):o<=65535?(I[D++]=224|(61440&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0):(I[D++]=240|(1835008&o)>>>18,I[D++]=128|(258048&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0),s&&Q++}this.utf16Length=B,this.utf8Length=Q,this.utf16Value=A,this.utf8Value=I,this.utf16OffsetToUtf8=E,this.utf8OffsetToUtf16=C}createString(A){const B=A._omalloc(this.utf8Length);return A.HEAPU8.set(this.utf8Value,B),B}}class _A{constructor(A){if(this.id=++_A.LAST_ID,!VA)throw new Error("Must invoke loadWASM first.");this._onigBinding=VA,this.content=A;const B=new zA(A);this.utf16Length=B.utf16Length,this.utf8Length=B.utf8Length,this.utf16OffsetToUtf8=B.utf16OffsetToUtf8,this.utf8OffsetToUtf16=B.utf8OffsetToUtf16,this.utf8Length<1e4&&!_A._sharedPtrInUse?(_A._sharedPtr||(_A._sharedPtr=VA._omalloc(1e4)),_A._sharedPtrInUse=!0,VA.HEAPU8.set(B.utf8Value,_A._sharedPtr),this.ptr=_A._sharedPtr):this.ptr=B.createString(VA)}convertUtf8OffsetToUtf16(A){return this.utf8OffsetToUtf16?A<0?0:A>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[A]:A}convertUtf16OffsetToUtf8(A){return this.utf16OffsetToUtf8?A<0?0:A>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[A]:A}dispose(){this.ptr===_A._sharedPtr?_A._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}_A.LAST_ID=0,_A._sharedPtr=0,_A._sharedPtrInUse=!1;class $A{constructor(A){if(!VA)throw new Error("Must invoke loadWASM first.");const B=[],Q=[];for(let g=0,E=A.length;g<E;g++){const E=new zA(A[g]);B[g]=E.createString(VA),Q[g]=E.utf8Length}const g=VA._omalloc(4*A.length);VA.HEAPU32.set(B,g/4);const E=VA._omalloc(4*A.length);VA.HEAPU32.set(Q,E/4);const C=VA._createOnigScanner(g,E,A.length);for(let Q=0,g=A.length;Q<g;Q++)VA._ofree(B[Q]);VA._ofree(E),VA._ofree(g),0===C&&function(A){throw new Error(A.UTF8ToString(A._getLastOnigError()))}(VA),this._onigBinding=VA,this._ptr=C}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(A,B,Q){let g=false,E=0;if("number"==typeof Q?(8&Q&&(g=!0),E=Q):"boolean"==typeof Q&&(g=Q),"string"==typeof A){A=new _A(A);const Q=this._findNextMatchSync(A,B,g,E);return A.dispose(),Q}return this._findNextMatchSync(A,B,g,E)}_findNextMatchSync(A,B,Q,g){const E=this._onigBinding;let C;if(C=Q?E._findNextOnigScannerMatchDbg(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g):E._findNextOnigScannerMatch(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g),0===C)return null;const I=E.HEAPU32;let D=C/4;const w=I[D++],o=I[D++];let s=[];for(let B=0;B<o;B++){const Q=A.convertUtf8OffsetToUtf16(I[D++]),g=A.convertUtf8OffsetToUtf16(I[D++]);s[B]={start:Q,end:g,length:g-Q}}return{index:w,captureIndices:s}}}let AB=!1,BB=null;function QB(A){if(AB)return BB;let B,Q,g,E;if(AB=!0,function(A){return"function"==typeof A.instantiator}(A))B=A.instantiator,Q=A.print;else{let g;!function(A){return void 0!==A.data}(A)?g=A:(g=A.data,Q=A.print),B=function(A){return"undefined"!=typeof Response&&A instanceof Response}(g)?"function"==typeof WebAssembly.instantiateStreaming?function(A){return B=>WebAssembly.instantiateStreaming(A,B)}(g):function(A){return async B=>{const Q=await A.arrayBuffer();return WebAssembly.instantiate(Q,B)}}(g):function(A){return B=>WebAssembly.instantiate(A,B)}(g)}return BB=new Promise(((A,B)=>{g=A,E=B})),function(A,B,Q,g){jA({print:B,instantiateWasm:(B,Q)=>{if("undefined"==typeof performance){const A=()=>Date.now();B.env.emscripten_get_now=A,B.wasi_snapshot_preview1.emscripten_get_now=A}return A(B).then((A=>Q(A.instance)),g),{}}}).then((A=>{VA=A,Q()}))}(B,Q,g,E),BB}function gB(A){return new _A(A)}function EB(A){return new $A(A)}function CB(A){const B=a[A];if(!B)return;const{id:Q}=n[B];return{id:Q,scopeName:B}}const IB=new Map;let DB,wB;async function oB(Q){if(IB.has(Q))return IB.get(Q);const g=function(A){return n[A]}(Q);if(!g)return Promise.resolve(void 0);let E;if(void 0===DB&&(E=A(g.id),DB=E.then((()=>!0)).catch((()=>!1))),void 0===wB&&(wB=await DB),wB){const B=E||A(g.id);return IB.set(Q,B),B}const C=B(`grammars/${g.id}`);g.embeddedScopes.forEach((A=>{if(!IB.has(A)){const B=C.then((B=>null==B?void 0:B.find((B=>B.scopeName===A))));IB.set(A,B)}}));const I=C.then((A=>null==A?void 0:A.find((A=>A.scopeName===Q))));return IB.set(Q,I),I}const sB=30720,eB=16744448,cB=16775168,iB=11,tB=15,MB={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function hB(A,B,Q,g){const{tokens:E,ruleStack:C}=A.tokenizeLine2(Q,B),I=[];let D=Q.length;for(let A=E.length-2;A>=0;A-=2){const B=E[A],g=E[A+1],C=Q.slice(B,D);I.unshift({content:C,metadata:g}),D=B}let w=[];if(null==g?void 0:g.preserveWhitespace)w=I;else for(let A=0;A<I.length;A++){const B=I[A];if(""!==B.content.trim()){const A=w[w.length-1];A&&(A.metadata&cB)==(B.metadata&cB)?A.content+=B.content:w.push(B)}else w.length>0?w[w.length-1].content+=B.content:A<I.length-1?I[A+1].content=B.content+I[A+1].content:w.push(B)}return{rawTokens:w,nextStack:C}}function FB(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=hB(B,g,A,{preserveWhitespace:!0}),I=E.map((({content:A,metadata:B})=>({content:A,style:GB(B,Q)}))),D=function(A,B,Q,g){const{tokens:E}=Q.tokenizeLine(A,B),C=[];for(let B=0;B<E.length;B++){const{startIndex:Q,endIndex:I,scopes:D}=E[B];let w=0;const o=g.find((A=>{if(w+=A.content.length,Q<w)return!0}));C.push(Object.assign(Object.assign({},o),{content:A.slice(Q,I),scopes:D.reverse()}))}return C}(A,g,B,I);return g=C,D}))}function GB(A,B){const Q={color:B[(A&eB)>>>tB]},g=(A&sB)>>>iB;return g&MB.Italic&&(Q.fontStyle="italic"),g&MB.Bold&&(Q.fontWeight="bold"),g&MB.Underline&&(Q.textDecoration="underline"),g&MB.Strikethrough&&(Q.textDecoration="line-through"),Q}var aB=function(A){var B=null;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)B=Buffer.from(A,"base64");else{var Q=globalThis.atob(A),g=Q.length;B=new Uint8Array(new ArrayBuffer(g));for(var E=0;E<g;E++)B[E]=Q.charCodeAt(E)}return B}("AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawB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ACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAA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AgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgC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QQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0P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AUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsi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AmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRA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IQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBK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JyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoA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b2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMg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ALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4A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AKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAAr6cAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADTpwAA06cAANWnAADVpwAA16cAANenAADZpwAA2acAAPanAAD2pwAA+KcAAPqnAAAwqwAAWqsAAFyrAABoqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQCABwEAgAcBAIMHAQCFBwEAhwcBALAHAQCyBwEAugcBAMAMAQDyDAEAwBgBAN8YAQBgbgEAf24BABrUAQAz1AEATtQBAFTUAQBW1AEAZ9QBAILUAQCb1AEAttQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAM/UAQDq1AEAA9UBAB7VAQA31QEAUtUBAGvVAQCG1QEAn9UBALrVAQDT1QEA7tUBAAfWAQAi1gEAO9YBAFbWAQBv1gEAitYBAKXWAQDC1gEA2tYBANzWAQDh1gEA/NYBABTXAQAW1wEAG9cBADbXAQBO1wEAUNcBAFXXAQBw1wEAiNcBAIrXAQCP1wEAqtcBAMLXAQDE1wEAydcBAMvXAQDL1wEAAN8BAAnfAQAL3wEAHt8BACLpAQBD6QEAQdCfAwvjK7wCAAAgAAAAfgAAAKAAAAB3AwAAegMAAH8DAACEAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAALwUAADEFAABWBQAAWQUAAIoFAACNBQAAjwUAAJEFAADHBQAA0AUAAOoFAADvBQAA9AUAAAAGAAANBwAADwcAAEoHAABNBwAAsQcAAMAHAAD6BwAA/QcAAC0IAAAwCAAAPggAAEAIAABbCAAAXggAAF4IAABgCAAAaggAAHAIAACOCAAAkAgAAJEIAACYCAAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAAD+CQAAAQoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAADwKAAA8CgAAPgoAAEIKAABHCgAASAoAAEsKAABNCgAAUQoAAFEKAABZCgAAXAoAAF4KAABeCgAAZgoAAHYKAACBCgAAgwoAAIUKAACNCgAAjwoAAJEKAACTCgAAqAoAAKoKAACwCgAAsgoAALMKAAC1CgAAuQoAALwKAADFCgAAxwoAAMkKAADLCgAAzQoAANAKAADQCgAA4AoAAOMKAADmCgAA8QoAAPkKAAD/CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA8CwAARAsAAEcLAABICwAASwsAAE0LAABVCwAAVwsAAFwLAABdCwAAXwsAAGMLAABmCwAAdwsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAAD6CwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAdwwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABPDQAAVA0AAGMNAABmDQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA9A0AAAEOAAA6DgAAPw4AAFsOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADGDgAAyA4AAM0OAADQDgAA2Q4AANwOAADfDgAAAA8AAEcPAABJDwAAbA8AAHEPAACXDwAAmQ8AALwPAAC+DwAAzA8AAM4PAADaDwAAABAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAEgSAABKEgAATRIAAFASAABWEgAAWBIAAFgSAABaEgAAXRIAAGASAACIEgAAihIAAI0SAACQEgAAsBIAALISAAC1EgAAuBIAAL4SAADAEgAAwBIAAMISAADFEgAAyBIAANYSAADYEgAAEBMAABITAAAVEwAAGBMAAFoTAABdEwAAfBMAAIATAACZEwAAoBMAAPUTAAD4EwAA/RMAAAAUAACcFgAAoBYAAPgWAAAAFwAAFRcAAB8XAAA2FwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAA3RcAAOAXAADpFwAA8BcAAPkXAAAAGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEAZAABAGQAARBkAAG0ZAABwGQAAdBkAAIAZAACrGQAAsBkAAMkZAADQGQAA2hkAAN4ZAAAbGgAAHhoAAF4aAABgGgAAfBoAAH8aAACJGgAAkBoAAJkaAACgGgAArRoAALAaAADOGgAAABsAAEwbAABQGwAAfhsAAIAbAADzGwAA/BsAADccAAA7HAAASRwAAE0cAACIHAAAkBwAALocAAC9HAAAxxwAANAcAAD6HAAAAB0AABUfAAAYHwAAHR8AACAfAABFHwAASB8AAE0fAABQHwAAVx8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAGAKAQCfCgEAwAoBAOYKAQDrCgEA9goBAAALAQA1CwEAOQsBAFULAQBYCwEAcgsBAHgLAQCRCwEAmQsBAJwLAQCpCwEArwsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAPoMAQAnDQEAMA0BADkNAQBgDgEAfg4BAIAOAQCpDgEAqw4BAK0OAQCwDgEAsQ4BAAAPAQAnDwEAMA8BAFkPAQBwDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEATRABAFIQAQB1EAEAfxABAMIQAQDNEAEAzRABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQBHEQEAUBEBAHYRAQCAEQEA3xEBAOERAQD0EQEAABIBABESAQATEgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKkSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAFsUAQBdFAEAYRQBAIAUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDdFQEAABYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBALkWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEARhcBAAAYAQA7GAEAoBgBAPIYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEARhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAABoBAEcaAQBQGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBFHAEAUBwBAGwcAQBwHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD4HgEAsB8BALAfAQDAHwEA8R8BAP8fAQCZIwEAACQBAG4kAQBwJAEAdCQBAIAkAQBDJQEAkC8BAPIvAQAAMAEALjQBADA0AQA4NAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBuagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9WoBAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAmm4BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnLwBAKO8AQAAzwEALc8BADDPAQBGzwEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAOrRAQAA0gEARdIBAODSAQDz0gEAANMBAFbTAQBg0wEAeNMBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEAi9oBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEAT+EBAJDiAQCu4gEAwOIBAPniAQD/4gEA/+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDH6AEA1ugBAADpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAQAOAAEADgAgAA4AfwAOAAABDgDvAQ4AAAAPAP3/DwAAABAA/f8QAEHAywMLwgy9AAAAIQAAACMAAAAlAAAAKgAAACwAAAAvAAAAOgAAADsAAAA/AAAAQAAAAFsAAABdAAAAXwAAAF8AAAB7AAAAewAAAH0AAAB9AAAAoQAAAKEAAACnAAAApwAAAKsAAACrAAAAtgAAALcAAAC7AAAAuwAAAL8AAAC/AAAAfgMAAH4DAACHAwAAhwMAAFoFAABfBQAAiQUAAIoFAAC+BQAAvgUAAMAFAADABQAAwwUAAMMFAADGBQAAxgUAAPMFAAD0BQAACQYAAAoGAAAMBgAADQYAABsGAAAbBgAAHQYAAB8GAABqBgAAbQYAANQGAADUBgAAAAcAAA0HAAD3BwAA+QcAADAIAAA+CAAAXggAAF4IAABkCQAAZQkAAHAJAABwCQAA/QkAAP0JAAB2CgAAdgoAAPAKAADwCgAAdwwAAHcMAACEDAAAhAwAAPQNAAD0DQAATw4AAE8OAABaDgAAWw4AAAQPAAASDwAAFA8AABQPAAA6DwAAPQ8AAIUPAACFDwAA0A8AANQPAADZDwAA2g8AAEoQAABPEAAA+xAAAPsQAABgEwAAaBMAAAAUAAAAFAAAbhYAAG4WAACbFgAAnBYAAOsWAADtFgAANRcAADYXAADUFwAA1hcAANgXAADaFwAAABgAAAoYAABEGQAARRkAAB4aAAAfGgAAoBoAAKYaAACoGgAArRoAAFobAABgGwAAfRsAAH4bAAD8GwAA/xsAADscAAA/HAAAfhwAAH8cAADAHAAAxxwAANMcAADTHAAAECAAACcgAAAwIAAAQyAAAEUgAABRIAAAUyAAAF4gAAB9IAAAfiAAAI0gAACOIAAACCMAAAsjAAApIwAAKiMAAGgnAAB1JwAAxScAAMYnAADmJwAA7ycAAIMpAACYKQAA2CkAANspAAD8KQAA/SkAAPksAAD8LAAA/iwAAP8sAABwLQAAcC0AAAAuAAAuLgAAMC4AAE8uAABSLgAAXS4AAAEwAAADMAAACDAAABEwAAAUMAAAHzAAADAwAAAwMAAAPTAAAD0wAACgMAAAoDAAAPswAAD7MAAA/qQAAP+kAAANpgAAD6YAAHOmAABzpgAAfqYAAH6mAADypgAA96YAAHSoAAB3qAAAzqgAAM+oAAD4qAAA+qgAAPyoAAD8qAAALqkAAC+pAABfqQAAX6kAAMGpAADNqQAA3qkAAN+pAABcqgAAX6oAAN6qAADfqgAA8KoAAPGqAADrqwAA66sAAD79AAA//QAAEP4AABn+AAAw/gAAUv4AAFT+AABh/gAAY/4AAGP+AABo/gAAaP4AAGr+AABr/gAAAf8AAAP/AAAF/wAACv8AAAz/AAAP/wAAGv8AABv/AAAf/wAAIP8AADv/AAA9/wAAP/8AAD//AABb/wAAW/8AAF3/AABd/wAAX/8AAGX/AAAAAQEAAgEBAJ8DAQCfAwEA0AMBANADAQBvBQEAbwUBAFcIAQBXCAEAHwkBAB8JAQA/CQEAPwkBAFAKAQBYCgEAfwoBAH8KAQDwCgEA9goBADkLAQA/CwEAmQsBAJwLAQCtDgEArQ4BAFUPAQBZDwEAhg8BAIkPAQBHEAEATRABALsQAQC8EAEAvhABAMEQAQBAEQEAQxEBAHQRAQB1EQEAxREBAMgRAQDNEQEAzREBANsRAQDbEQEA3REBAN8RAQA4EgEAPRIBAKkSAQCpEgEASxQBAE8UAQBaFAEAWxQBAF0UAQBdFAEAxhQBAMYUAQDBFQEA1xUBAEEWAQBDFgEAYBYBAGwWAQC5FgEAuRYBADwXAQA+FwEAOxgBADsYAQBEGQEARhkBAOIZAQDiGQEAPxoBAEYaAQCaGgEAnBoBAJ4aAQCiGgEAQRwBAEUcAQBwHAEAcRwBAPceAQD4HgEA/x8BAP8fAQBwJAEAdCQBAPEvAQDyLwEAbmoBAG9qAQD1agEA9WoBADdrAQA7awEARGsBAERrAQCXbgEAmm4BAOJvAQDibwEAn7wBAJ+8AQCH2gEAi9oBAF7pAQBf6QEAAAAAAAoAAAAJAAAADQAAACAAAAAgAAAAhQAAAIUAAACgAAAAoAAAAIAWAACAFgAAACAAAAogAAAoIAAAKSAAAC8gAAAvIAAAXyAAAF8gAAAAMAAAADAAQZDYAwuzWIsCAABBAAAAWgAAAMAAAADWAAAA2AAAAN4AAAAAAQAAAAEAAAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcA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AIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwA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AMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4A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AQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh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AABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEan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AAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAA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CQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACa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CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADG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vx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAA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AACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqn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ADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwA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AD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVh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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v////////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACgQBAIkNAQAKLAAALgoBAAoEAAAFBAEACh4AAFoHAQAKHwAAwwgBAAoBAAC6AAEAfQEAAF8BAQB9pwAAQgcBAH2rAABnBgEAhR8AAJoAAgCJHwAAhgACAIkBAABrAgEAhasAAH8GAQCJqwAAiwYBAIUcAAC6AwEAhQwBAMcOAQCJDAEA0w4BAIQsAAC+CgEA8x8AAGAAAgCEHgAAEggBAIQfAACVAAIAhAEAAGgBAQCEpwAAwAwBAISrAAB8BgEA7SwAAFELAQCEHAAAugMBAIQMAQDEDgEATB4AAL0HAQBMHwAAIwkBAEwBAAAXAQEATKcAAHsMAQBXAAAAQQABAEwAAAAfAAEAhKYAABsMAQCQLAAA0AoBAJAEAABUBAEAkB4AACQIAQCQHwAAqQACAJABAAB0AgEAkKcAAMkMAQCQqwAAoAYBAEymAADiCwEAkBwAALYFAQCQDAEA6A4BANsfAABiCQEA2wEAAMIBAQBXbgEA9g8BAExuAQDVDwEA2wAAAJwAAQD7HwAAdAkBAJCmAAAtDAEAsgQBAOkNAQCyLAAAAwsBALIEAACHBAEAsh4AAEgIAQCyHwAA+QACALIBAAC8AgEAsqcAAMUCAQCyqwAABgcBAPWnAAAXDQEAshwAABwGAQCyDAEATg8BALgEAQD7DQEAuCwAAAwLAQC4BAAAkAQBALgeAABRCAEAuB8AAHcJAQC4AQAAmAEBALinAAD2DAEAuKsAABgHAQB3qwAAVQYBALgcAAAuBgEApiwAAPEKAQCmBAAAdQQBAKYeAAA2CAEAph8AAO8AAgCmAQAApwIBAKanAADqDAEApqsAAOIGAQDpHwAAhgkBAKYcAAD4BQEApgwBACoPAQCkLAAA7goBAKQEAAByBAEApB4AADMIAQCkHwAA5QACAKQBAACGAQEApKcAAOcMAQCkqwAA3AYBAPEBAADjAQEApBwAAPIFAQCkDAEAJA8BAKAsAADoCgEAoAQAAGwEAQCgHgAALQgBAKAfAADRAAIAoAEAAIABAQCgpwAA4QwBAKCrAADQBgEA5x8AAC8AAwCgHAAA5gUBAKAMAQAYDwEAriwAAP0KAQCuBAAAgQQBAK4eAABCCAEArh8AAO8AAgCuAQAAswIBAK6nAACPAgEArqsAAPoGAQDjHwAAKQADAK4cAAAQBgEArgwBAEIPAQCsLAAA+goBAKwEAAB+BAEArB4AAD8IAQCsHwAA5QACAKwBAACMAQEArKcAAH0CAQCsqwAA9AYBAPsTAAA5BwEArBwAAAoGAQCsDAEAPA8BAKIsAADrCgEAogQAAG8EAQCiHgAAMAgBAKIfAADbAAIAogEAAIMBAQCipwAA5AwBAKKrAADWBgEAshAAAI0LAQCiHAAA7AUBAKIMAQAeDwEAshgBAIcPAQA9HwAADgkBAD0BAAACAQEAsAQBAOMNAQCwLAAAAAsBALAEAACEBAEAsB4AAEUIAQDdAAAAogABALgQAACfCwEAsKcAAMgCAQCwqwAAAAcBALgYAQCZDwEAsBwAABYGAQCwDAEASA8BANMEAQBMDgEA1x8AAB8AAwDXAQAAvAEBAKYQAABpCwEA0x8AABkAAwDTAQAAtgEBAKYYAQBjDwEAiQMAAOMCAQDTAAAAhwABAKosAAD3CgEAqgQAAHsEAQCqHgAAPAgBAKofAADbAAIApBAAAGMLAQCqpwAAhgIBAKqrAADuBgEApBgBAF0PAQCqHAAABAYBAKoMAQA2DwEAqCwAAPQKAQCoBAAAeAQBAKgeAAA5CAEAqB8AANEAAgCgEAAAVwsBAKinAADtDAEAqKsAAOgGAQCgGAEAUQ8BAKgcAAD+BQEAqAwBADAPAQDQBAEAQw4BANAsAAAwCwEA0AQAALQEAQDQHgAAdQgBAK4QAACBCwEAkAMAABkAAwDQpwAADg0BAK4YAQB7DwEA0AAAAH4AAQC+BAEADQ4BAL4sAAAVCwEAvgQAAJkEAQC+HgAAWggBAL4fAAAFAwEArBAAAHsLAQC+pwAA/wwBAL6rAAAqBwEArBgBAHUPAQC+HAAAOgYBAOssAABOCwEAbywAAFwCAQAKAgAABQIBAOsfAABuCQEAbx8AAEoJAQCiEAAAXQsBAPUDAAD2AgEAZywAAKkKAQCiGAEAVw8BAJgsAADcCgEAmAQAAGAEAQCYHgAAJgACAJgfAACpAAIAmAEAAHcBAQCYpwAA1QwBAJirAAC4BgEA/wMAANoCAQCYHAAAzgUBAJgMAQAADwEAsBAAAIcLAQBzqwAASQYBADf/AABfDQEAsBgBAIEPAQBfHwAAMgkBAKYDAAAwAwEAmKYAADkMAQBMAgAAVgIBAJYsAADZCgEAlgQAAF0EAQCWHgAAEAACAJYfAADHAAIAlgEAAIwCAQCWpwAA0gwBAJarAACyBgEApAMAACoDAQCWHAAAyAUBAJYMAQD6DgEA8QMAACIDAQCqEAAAdQsBAPcfAABDAAMA9wEAAJ4BAQCqGAEAbw8BAF9uAQAOEAEAlqYAADYMAQCgAwAAHgMBAOAsAABICwEA4AQAAMwEAQDgHgAAjQgBAKgQAABvCwEA4AEAAMsBAQBjLAAARQcBAKgYAQBpDwEAvAQBAAcOAQC8LAAAEgsBALwEAACWBAEAvB4AAFcIAQC8HwAAPgACALwBAACbAQEAvKcAAPwMAQC8qwAAJAcBALoEAQABDgEAuiwAAA8LAQC6BAAAkwQBALoeAABUCAEAuh8AAE0JAQDfAAAAGAACALqnAAD5DAEAuqsAAB4HAQC+EAAAsQsBALocAAA0BgEA+R8AAGgJAQC+GAEAqw8BALYEAQD1DQEAtiwAAAkLAQC2BAAAjQQBALYeAABOCAEAth8AADoAAgBlIQAAngkBALanAADzDAEAtqsAABIHAQBvIQAAvAkBALYcAAAoBgEAAgQBAHENAQACLAAAFgoBAAIEAADtAwEAAh4AAE4HAQBnIQAApAkBAAIBAACuAAEAsAMAACkAAwAK6QEALxABAMcEAQAoDgEAYSEAAJIJAQDHBAAApQQBAFkfAAApCQEAxx8AAA8AAwDHAQAApQEBAMenAAAIDQEAWQAAAEcAAQDHAAAAYwABAHUsAAC1CgEAlCwAANYKAQCUBAAAWgQBAJQeAAAqCAEAlB8AAL0AAgCUAQAAgAIBAHWrAABPBgEAlKsAAKwGAQCqAwAAPgMBAJQcAADCBQEAlAwBAPQOAQB9BQEAcw4BAAoFAAALBQEAWW4BAPwPAQBdHwAALwkBAIUFAQCLDgEAiQUBAJcOAQCUpgAAMwwBAKgDAAA3AwEAkiwAANMKAQCSBAAAVwQBAJIeAAAnCAEAkh8AALMAAgD///////8AAJKnAADMDAEAkqsAAKYGAQCEBQEAiA4BAJIcAAC8BQEAkgwBAO4OAQDQAwAA7AIBAGMhAACYCQEAvBAAAKsLAQA9AgAAegEBAF1uAQAIEAEAvBgBAKUPAQCSpgAAMAwBAEwFAACVBQEA////////AAD///////8AALoQAAClCwEA////////AAD5EwAAMwcBALoYAQCfDwEAkAUBAKkOAQCcLAAA4goBAJwEAABmBAEAuCQAAMgJAQCcHwAAvQACAJwBAACYAgEAnKcAANsMAQCcqwAAxAYBALYQAACZCwEAnBwAANoFAQCcDAEADA8BALYYAQCTDwEAhiwAAMEKAQCYAwAAAAMBAIYeAAAVCAEAhh8AAJ8AAgCGAQAAaAIBAIanAADDDAEAhqsAAIIGAQBHAQAAEQEBAIYcAADUAwEAhgwBAMoOAQBHAAAAEgABANkfAACACQEA2QEAAL8BAQD///////8AAMcQAADJCwEA2QAAAJYAAQCGpgAAHgwBAP0TAAA/BwEAdwUBAGQOAQCWAwAA+gIBALQEAQDvDQEAtCwAAAYLAQC0BAAAigQBALQeAABLCAEAtB8AADIAAgBHbgEAxg8BALSnAADwDAEAtKsAAAwHAQD3AwAAegMBALQcAAAiBgEAmiwAAN8KAQCaBAAAYwQBAJoeAAAAAAIAmh8AALMAAgD///////8AAJqnAADYDAEAmqsAAL4GAQDgAwAAXAMBAJocAADUBQEAmgwBAAYPAQA3BQAAVgUBAI4sAADNCgEAjgQAAFEEAQCOHgAAIQgBAI4fAACfAAIAjgEAAMUBAQCapgAAPAwBAI6rAACaBgEAPB4AAKUHAQA8HwAACwkBAI4MAQDiDgEAPKcAAGMMAQCKLAAAxwoBAIoEAABLBAEAih4AABsIAQCKHwAAiwACAIoBAABuAgEAjqYAACoMAQCKqwAAjgYBAPkDAAB0AwEArR8AAOoAAgCKDAEA1g4BAK2nAACVAgEArasAAPcGAQD///////8AAK0cAAANBgEArQwBAD8PAQCCLAAAuwoBAIqmAAAkDAEAgh4AAA8IAQCCHwAAiwACAIIBAABlAQEAgqcAAL0MAQCCqwAAdgYBAG0sAABfAgEAghwAAKwDAQCCDAEAvg4BAG0fAABECQEAcasAAEMGAQCALAAAuAoBAIAEAABIBAEAgB4AAAwIAQCAHwAAgQACAIKmAAAYDAEAgKcAALoMAQCAqwAAcAYBAD0FAABoBQEAgBwAAIYDAQCADAEAuA4BAP///////wAA/QMAANQCAQCNHwAAmgACAJQDAADzAgEAjacAAIMCAQCNqwAAlwYBAICmAAAVDAEAWx8AACwJAQCNDAEA3w4BALQQAACTCwEAxAQBAB8OAQDELAAAHgsBALQYAQCNDwEAxB4AAGMIAQDEHwAANgACAMQBAAChAQEAxKcAAM8MAQD///////8AAMQAAABZAAEAwgQBABkOAQDCLAAAGwsBAJIDAADsAgEAwh4AAGAIAQDCHwAA/QACAL4kAADaCQEAwqcAAAUNAQBbbgEAAhABAMIAAABTAAEAniwAAOUKAQCeBAAAaQQBAJ4eAAAYAAIAnh8AAMcAAgD///////8AAJ6nAADeDAEAnqsAAMoGAQACAgAA+QEBAJ4cAADgBQEAngwBABIPAQCMLAAAygoBAIwEAABOBAEAjB4AAB4IAQCMHwAAlQACADsfAAAICQEAOwEAAP8AAQCMqwAAlAYBAK0QAAB+CwEAnAMAABEDAQCMDAEA3A4BAK0YAQB4DwEA////////AACILAAAxAoBAP///////wAAiB4AABgIAQCIHwAAgQACAIymAAAnDAEA////////AACIqwAAiAYBAIYDAADdAgEAiBwAAN4LAQCIDAEA0A4BAEoeAAC6BwEASh8AAB0JAQBKAQAAFAEBAEqnAAB4DAEAbSEAALYJAQBKAAAAGAABAIimAAAhDAEAHAQBAL8NAQAcLAAAZAoBABwEAACmAwEAHB4AAHUHAQAcHwAA4QgBABwBAADVAAEAcwUBAFgOAQBKpgAA3gsBADX/AABZDQEAFgQBAK0NAQAWLAAAUgoBABYEAACUAwEAFh4AAGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8B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ANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAGQAKABkZGQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAAZABEKGRkZAwoHAAEACQsYAAAJBgsAAAsABhkAAAAZGRkAQeGSEQshDgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAOAEGbkxELAQwAQaeTEQsVEwAAAAATAAAAAAkMAAAAAAAMAAAMAEHVkxELARAAQeGTEQsVDwAAAAQPAAAAAAkQAAAAAAAQAAAQAEGPlBELARIAQZuUEQseEQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoaAEHSlBELDhoAAAAaGhoAAAAAAAAJAEGDlRELARQAQY+VEQsVFwAAAAAXAAAAAAkUAAAAAAAUAAAUAEG9lRELARYAQcmVEQvsARUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRnwtIGRpZCBub3QgbWF0Y2ggYWZ0ZXIgJS4zZiBtcwoACn5+fn5+fn5+fn5+fn5+fn5+fn5+CkVudGVyaW5nIGZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaDolLipzCgAtIHNlYXJjaE9uaWdSZWdFeHA6ICUuKnMKAExlYXZpbmcgZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoCgB8LSBtYXRjaGVkIGFmdGVyICUuM2YgbXMgYXQgYnl0ZSBvZmZzZXQgJWQKAEHAlxELEVbV9//Se+t32yughwAAAABcAEHolxEL2AHASwQAAQAAAAEAAAD/fwAAABAAABEAAAASAAAAEwAAABQAAAAAAAAABwgAAA0AAAAFAAAAZwgAAAEAAAAFAAAA2QgAAAIAAAAFAAAAIAkAAAMAAAAFAAAALgkAAAQAAAAFAAAAYQkAAAUAAAAFAAAAkAkAAAYAAAAFAAAAqAkAAAcAAAAFAAAA0wkAAAgAAAAFAAAAKgoAAAkAAAAFAAAAMAoAAAoAAAAFAAAAdwoAAAsAAAAGAAAAqAoAAA4AAAAFAAAAyAoAAAwAAAAEAAAAAAAAAP////8AQdCZEQsWiAsAAJ4LAAC3CwAA0gsAAPELAAAVDABB8JkRCyU6DAAAOgwAAJ4LAADxCwAA0gsAAGMMAACXDAAAAAAAQICWmAAUAEGgmhELAVQAQcCaEQuwAccEAAANAAAABQAAAIQGAAABAAAABQAAALkGAAACAAAABQAAACcHAAADAAAABQAAAH4HAAAEAAAABQAAAA0IAAAFAAAABQAAAEMIAAAGAAAABQAAALEIAAAHAAAABQAAAPkIAAAIAAAABQAAADoJAAAJAAAABQAAAFsJAAAKAAAABQAAAIkJAAALAAAABgAAALQJAAAOAAAABQAAAN8JAAAMAAAABAAAAAAAAAD/////AEGAnBEL5YMBYQAAAAEAAABBAAAAYgAAAAEAAABCAAAAYwAAAAEAAABDAAAAZAAAAAEAAABEAAAAZQAAAAEAAABFAAAAZgAAAAEAAABGAAAAZwAAAAEAAABHAAAAaAAAAAEAAABIAAAAagAAAAEAAABKAAAAawAAAAIAAABLAAAAKiEAAGwAAAABAAAATAAAAG0AAAABAAAATQAAAG4AAAABAAAATgAAAG8AAAABAAAATwAAAHAAAAABAAAAUAAAAHEAAAABAAAAUQAAAHIAAAABAAAAUgAAAHMAAAACAAAAUwAAAH8BAAB0AAAAAQAAAFQAAAB1AAAAAQAAAFUAAAB2AAAAAQAAAFYAAAB3AAAAAQAAAFcAAAB4AAAAAQAAAFgAAAB5AAAAAQAAAFkAAAB6AAAAAQAAAFoAAADgAAAAAQAAAMAAAADhAAAAAQAAAMEAAADiAAAAAQAAAMIAAADjAAAAAQAAAMMAAADkAAAAAQAAAMQAAADlAAAAAgAAAMUAAAArIQAA5gAAAAEAAADGAAAA5wAAAAEAAADHAAAA6AAAAAEAAADIAAAA6QAAAAEAAADJAAAA6gAAAAEAAADKAAAA6wAAAAEAAADLAAAA7AAAAAEAAADMAAAA7QAAAAEAAADNAAAA7gAAAAEAAADOAAAA7wAAAAEAAADPAAAA8AAAAAEAAADQAAAA8QAAAAEAAADRAAAA8gAAAAEAAADSAAAA8wAAAAEAAADTAAAA9AAAAAEAAADUAAAA9QAAAAEAAADVAAAA9gAAAAEAAADWAAAA+AAAAAEAAADYAAAA+QAAAAEAAADZAAAA+gAAAAEAAADaAAAA+wAAAAEAAADbAAAA/AAAAAEAAADcAAAA/QAAAAEAAADdAAAA/gAAAAEAAADeAAAA/wAAAAEAAAB4AQAAAQEAAAEAAAAAAQAAAwEAAAEAAAACAQAABQEAAAEAAAAEAQAABwEAAAEAAAAGAQAACQEAAAEAAAAIAQAACwEAAAEAAAAKAQAADQEAAAEAAAAMAQAADwEAAAEAAAAOAQAAEQEAAAEAAAAQAQAAEwEAAAEAAAASAQAAFQEAAAEAAAAUAQAAFwEAAAEAAAAWAQAAGQEAAAEAAAAYAQAAGwEAAAEAAAAaAQAAHQEAAAEAAAAcAQAAHwEAAAEAAAAeAQAAIQEAAAEAAAAgAQAAIwEAAAEAAAAiAQAAJQEAAAEAAAAkAQAAJwEAAAEAAAAmAQAAKQEAAAEAAAAoAQAAKwEAAAEAAAAqAQAALQEAAAEAAAAsAQAALwEAAAEAAAAuAQAAMwEAAAEAAAAyAQAANQEAAAEAAAA0AQAANwEAAAEAAAA2AQAAOgEAAAEAAAA5AQAAPAEAAAEAAAA7AQAAPgEAAAEAAAA9AQAAQAEAAAEAAAA/AQAAQgEAAAEAAABBAQAARAEAAAEAAABDAQAARgEAAAEAAABFAQAASAEAAAEAAABHAQAASwEAAAEAAABKAQAATQEAAAEAAABMAQAATwEAAAEAAABOAQAAUQEAAAEAAABQAQAAUwEAAAEAAABSAQAAVQEAAAEAAABUAQAAVwEAAAEAAABWAQAAWQEAAAEAAABYAQAAWwEAAAEAAABaAQAAXQEAAAEAAABcAQAAXwEAAAEAAABeAQAAYQEAAAEAAABgAQAAYwEAAAEAAABiAQAAZQEAAAEAAABkAQAAZwEAAAEAAABmAQAAaQEAAAEAAABoAQAAawEAAAEAAABqAQAAbQEAAAEAAABsAQAAbwEAAAEAAABuAQAAcQEAAAEAAABwAQAAcwEAAAEAAAByAQAAdQEAAAEAAAB0AQAAdwEAAAEAAAB2AQAAegEAAAEAAAB5AQAAfAEAAAEAAAB7AQAAfgEAAAEAAAB9AQAAgAEAAAEAAABDAgAAgwEAAAEAAACCAQAAhQEAAAEAAACEAQAAiAEAAAEAAACHAQAAjAEAAAEAAACLAQAAkgEAAAEAAACRAQAAlQEAAAEAAAD2AQAAmQEAAAEAAACYAQAAmgEAAAEAAAA9AgAAngEAAAEAAAAgAgAAoQEAAAEAAACgAQAAowEAAAEAAACiAQAApQEAAAEAAACkAQAAqAEAAAEAAACnAQAArQEAAAEAAACsAQAAsAEAAAEAAACvAQAAtAEAAAEAAACzAQAAtgEAAAEAAAC1AQAAuQEAAAEAAAC4AQAAvQEAAAEAAAC8AQAAvwEAAAEAAAD3AQAAxgEAAAIAAADEAQAAxQEAAMkBAAACAAAAxwEAAMgBAADMAQAAAgAAAMoBAADLAQAAzgEAAAEAAADNAQAA0AEAAAEAAADPAQAA0gEAAAEAAADRAQAA1AEAAAEAAADTAQAA1gEAAAEAAADVAQAA2AEAAAEAAADXAQAA2gEAAAEAAADZAQAA3AEAAAEAAADbAQAA3QEAAAEAAACOAQAA3wEAAAEAAADeAQAA4QEAAAEAAADgAQAA4wEAAAEAAADiAQAA5QEAAAEAAADkAQAA5wEAAAEAAADmAQAA6QEAAAEAAADoAQAA6wEAAAEAAADqAQAA7QEAAAEAAADsAQAA7wEAAAEAAADuAQAA8wEAAAIAAADxAQAA8gEAAPUBAAABAAAA9AEAAPkBAAABAAAA+AEAAPsBAAABAAAA+gEAAP0BAAABAAAA/AEAAP8BAAABAAAA/gEAAAECAAABAAAAAAIAAAMCAAABAAAAAgIAAAUCAAABAAAABAIAAAcCAAABAAAABgIAAAkCAAABAAAACAIAAAsCAAABAAAACgIAAA0CAAABAAAADAIAAA8CAAABAAAADgIAABECAAABAAAAEAIAABMCAAABAAAAEgIAABUCAAABAAAAFAIAABcCAAABAAAAFgIAABkCAAABAAAAGAIAABsCAAABAAAAGgIAAB0CAAABAAAAHAIAAB8CAAABAAAAHgIAACMCAAABAAAAIgIAACUCAAABAAAAJAIAACcCAAABAAAAJgIAACkCAAABAAAAKAIAACsCAAABAAAAKgIAAC0CAAABAAAALAIAAC8CAAABAAAALgIAADECAAABAAAAMAIAADMCAAABAAAAMgIAADwCAAABAAAAOwIAAD8CAAABAAAAfiwAAEACAAABAAAAfywAAEICAAABAAAAQQIAAEcCAAABAAAARgIAAEkCAAABAAAASAIAAEsCAAABAAAASgIAAE0CAAABAAAATAIAAE8CAAABAAAATgIAAFACAAABAAAAbywAAFECAAABAAAAbSwAAFICAAABAAAAcCwAAFMCAAABAAAAgQEAAFQCAAABAAAAhgEAAFYCAAABAAAAiQEAAFcCAAABAAAAigEAAFkCAAABAAAAjwEAAFsCAAABAAAAkAEAAFwCAAABAAAAq6cAAGACAAABAAAAkwEAAGECAAABAAAArKcAAGMCAAABAAAAlAEAAGUCAAABAAAAjacAAGYCAAABAAAAqqcAAGgCAAABAAAAlwEAAGkCAAABAAAAlgEAAGoCAAABAAAArqcAAGsCAAABAAAAYiwAAGwCAAABAAAAracAAG8CAAABAAAAnAEAAHECAAABAAAAbiwAAHICAAABAAAAnQEAAHUCAAABAAAAnwEAAH0CAAABAAAAZCwAAIACAAABAAAApgEAAIICAAABAAAAxacAAIMCAAABAAAAqQEAAIcCAAABAAAAsacAAIgCAAABAAAArgEAAIkCAAABAAAARAIAAIoCAAABAAAAsQEAAIsCAAABAAAAsgEAAIwCAAABAAAARQIAAJICAAABAAAAtwEAAJ0CAAABAAAAsqcAAJ4CAAABAAAAsKcAAHEDAAABAAAAcAMAAHMDAAABAAAAcgMAAHcDAAABAAAAdgMAAHsDAAABAAAA/QMAAHwDAAABAAAA/gMAAH0DAAABAAAA/wMAAKwDAAABAAAAhgMAAK0DAAABAAAAiAMAAK4DAAABAAAAiQMAAK8DAAABAAAAigMAALEDAAABAAAAkQMAALIDAAACAAAAkgMAANADAACzAwAAAQAAAJMDAAC0AwAAAQAAAJQDAAC1AwAAAgAAAJUDAAD1AwAAtgMAAAEAAACWAwAAtwMAAAEAAACXAwAAuAMAAAMAAACYAwAA0QMAAPQDAAC5AwAAAwAAAEUDAACZAwAAvh8AALoDAAACAAAAmgMAAPADAAC7AwAAAQAAAJsDAAC8AwAAAgAAALUAAACcAwAAvQMAAAEAAACdAwAAvgMAAAEAAACeAwAAvwMAAAEAAACfAwAAwAMAAAIAAACgAwAA1gMAAMEDAAACAAAAoQMAAPEDAADDAwAAAgAAAKMDAADCAwAAxAMAAAEAAACkAwAAxQMAAAEAAAClAwAAxgMAAAIAAACmAwAA1QMAAMcDAAABAAAApwMAAMgDAAABAAAAqAMAAMkDAAACAAAAqQMAACYhAADKAwAAAQAAAKoDAADLAwAAAQAAAKsDAADMAwAAAQAAAIwDAADNAwAAAQAAAI4DAADOAwAAAQAAAI8DAADXAwAAAQAAAM8DAADZAwAAAQAAANgDAADbAwAAAQAAANoDAADdAwAAAQAAANwDAADfAwAAAQAAAN4DAADhAwAAAQAAAOADAADjAwAAAQAAAOIDAADlAwAAAQAAAOQDAADnAwAAAQAAAOYDAADpAwAAAQAAAOgDAADrAwAAAQAAAOoDAADtAwAAAQAAAOwDAADvAwAAAQAAAO4DAADyAwAAAQAAAPkDAADzAwAAAQAAAH8DAAD4AwAAAQAAAPcDAAD7AwAAAQAAAPoDAAAwBAAAAQAAABAEAAAxBAAAAQAAABEEAAAyBAAAAgAAABIEAACAHAAAMwQAAAEAAAATBAAANAQAAAIAAAAUBAAAgRwAADUEAAABAAAAFQQAADYEAAABAAAAFgQAADcEAAABAAAAFwQAADgEAAABAAAAGAQAADkEAAABAAAAGQQAADoEAAABAAAAGgQAADsEAAABAAAAGwQAADwEAAABAAAAHAQAAD0EAAABAAAAHQQAAD4EAAACAAAAHgQAAIIcAAA/BAAAAQAAAB8EAABABAAAAQAAACAEAABBBAAAAgAAACEEAACDHAAAQgQAAAMAAAAiBAAAhBwAAIUcAABDBAAAAQAAACMEAABEBAAAAQAAACQEAABFBAAAAQAAACUEAABGBAAAAQAAACYEAABHBAAAAQAAACcEAABIBAAAAQAAACgEAABJBAAAAQAAACkEAABKBAAAAgAAACoEAACGHAAASwQAAAEAAAArBAAATAQAAAEAAAAsBAAATQQAAAEAAAAtBAAATgQAAAEAAAAuBAAATwQAAAEAAAAvBAAAUAQAAAEAAAAABAAAUQQAAAEAAAABBAAAUgQAAAEAAAACBAAAUwQAAAEAAAADBAAAVAQAAAEAAAAEBAAAVQQAAAEAAAAFBAAAVgQAAAEAAAAGBAAAVwQAAAEAAAAHBAAAWAQAAAEAAAAIBAAAWQQAAAEAAAAJBAAAWgQAAAEAAAAKBAAAWwQAAAEAAAALBAAAXAQAAAEAAAAMBAAAXQQAAAEAAAANBAAAXgQAAAEAAAAOBAAAXwQAAAEAAAAPBAAAYQQAAAEAAABgBAAAYwQAAAIAAABiBAAAhxwAAGUEAAABAAAAZAQAAGcEAAABAAAAZgQAAGkEAAABAAAAaAQAAGsEAAABAAAAagQAAG0EAAABAAAAbAQAAG8EAAABAAAAbgQAAHEEAAABAAAAcAQAAHMEAAABAAAAcgQAAHUEAAABAAAAdAQAAHcEAAABAAAAdgQAAHkEAAABAAAAeAQAAHsEAAABAAAAegQAAH0EAAABAAAAfAQAAH8EAAABAAAAfgQAAIEEAAABAAAAgAQAAIsEAAABAAAAigQAAI0EAAABAAAAjAQAAI8EAAABAAAAjgQAAJEEAAABAAAAkAQAAJMEAAABAAAAkgQAAJUEAAABAAAAlAQAAJcEAAABAAAAlgQAAJkEAAABAAAAmAQAAJsEAAABAAAAmgQAAJ0EAAABAAAAnAQAAJ8EAAABAAAAngQAAKEEAAABAAAAoAQAAKMEAAABAAAAogQAAKUEAAABAAAApAQAAKcEAAABAAAApgQAAKkEAAABAAAAqAQAAKsEAAABAAAAqgQAAK0EAAABAAAArAQAAK8EAAABAAAArgQAALEEAAABAAAAsAQAALMEAAABAAAAsgQAALUEAAABAAAAtAQAALcEAAABAAAAtgQAALkEAAABAAAAuAQAALsEAAABAAAAugQAAL0EAAABAAAAvAQAAL8EAAABAAAAvgQAAMIEAAABAAAAwQQAAMQEAAABAAAAwwQAAMYEAAABAAAAxQQAAMgEAAABAAAAxwQAAMoEAAABAAAAyQQAAMwEAAABAAAAywQAAM4EAAABAAAAzQQAAM8EAAABAAAAwAQAANEEAAABAAAA0AQAANMEAAABAAAA0gQAANUEAAABAAAA1AQAANcEAAABAAAA1gQAANkEAAABAAAA2AQAANsEAAABAAAA2gQAAN0EAAABAAAA3AQAAN8EAAABAAAA3gQAAOEEAAABAAAA4AQAAOMEAAABAAAA4gQAAOUEAAABAAAA5AQAAOcEAAABAAAA5gQAAOkEAAABAAAA6AQAAOsEAAABAAAA6gQAAO0EAAABAAAA7AQAAO8EAAABAAAA7gQAAPEEAAABAAAA8AQAAPMEAAABAAAA8gQAAPUEAAABAAAA9AQAAPcEAAABAAAA9gQAAPkEAAABAAAA+AQAAPsEAAABAAAA+gQAAP0EAAABAAAA/AQAAP8EAAABAAAA/gQAAAEFAAABAAAAAAUAAAMFAAABAAAAAgUAAAUFAAABAAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAAB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LAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADN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AgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q=");let nB=null;function NB(A){return"text"==A||"terminal"==A}function rB(A){if(!nB){const A=QB(aB).then((()=>({createOnigScanner:EB,createOnigString:gB})));nB=new ZA({onigLib:A,loadGrammar:A=>oB(A)})}const B=A.filter((A=>!NB(A))).map((A=>{const B=CB(A);if(!B)throw new LB(A);return nB.loadGrammar(B.scopeName)}));return Promise.all(B)}function HB(A){if(NB(A))return{langId:A,grammar:null};const B=CB(A);if(!B)throw new LB(A);const Q=function(A){const{_syncRegistry:B}=nB;return null==B?void 0:B._grammars.get(A)}(B.scopeName);if(!Q)throw new Error(`Syntax highlighting error: grammar for ${A} not loaded`);return{langId:B.id,grammar:Q}}class LB extends Error{constructor(A){super(`Unknown language: ${A}`),this.alias=A}}function kB(A,B,Q){nB.setTheme(Q);const g=function(A){const B=nB.getColorMap();return A.colorNames?B.map((B=>Object.keys(A.colorNames).find((Q=>A.colorNames[Q].toUpperCase()===B.toUpperCase()))||B)):B}(Q);return function(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=hB(B,g,A);return g=C,E.map((({content:A,metadata:B})=>({content:A,style:GB(B,Q)})))}))}(A,B,g)}function RB(A){return A.split(/\r?\n|\r/g).map((A=>[{content:A,style:{}}]))}function KB(A,B){return UB(A.slice(1,-1)).map((A=>{const{from:Q,to:g}=YB(A);return{lineNumber:B,fromColumn:Q,toColumn:g}}))}function YB(A){const[B,Q]=A.split(":");if(!PB(B))throw new uB(B);const g=Number(B);if(g<1)throw new yB;if(Q){if(!PB(Q))throw new uB(Q);return{from:g,to:+Q}}return{from:g,to:g}}function UB(A){return A.split(/,(?![^\[]*\])/g)}function PB(A){A=A.toString();var B=Math.abs(A),Q=parseInt(A,10);return!isNaN(B)&&Q===B&&B.toString()===A}class uB extends Error{constructor(A){super(`Invalid number "${A}" in range string`),this.number=A,Object.setPrototypeOf(this,new.target.prototype)}}class yB extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const JB="#001",SB="#010",dB={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:JB}},{scope:"comment",settings:{foreground:SB}}]};function lB(A,B,Q,g){const E=B?kB(A,B,dB):RB(A),C=[];let I=1;const D=E.map((A=>{const{annotations:B,lineWithoutComments:E}=function(A,B,Q,g){if(g in pB&&A.some((A=>A.style.color===SB))){const B=pB[g];A=A.flatMap((A=>{if(A.style.color!==SB)return[A];const Q=A.content.trimStart();if(Q.startsWith(B)){const g=Q.slice(B.length),E=[{content:A.content.slice(0,A.content.length-g.length),style:{color:JB}}];return g.length&&E.push({content:g,style:A.style}),E}return[A]}))}if(!A.some((A=>A.style.color===JB)))return{annotations:[],lineWithoutComments:A};const E=[];let C=0;for(;C<A.length;){const g=A[C];if(g.style.color!==SB){C++;continue}const I="function"==typeof B?B(g.content):xB(g.content,B);if(!I){C++;continue}const{name:D,query:w,rangeString:o}=I,s=A[C-1],e=A[C+1],c=[];s&&s.style.color===JB&&c.push(s),c.push(g),e&&e.style.color===JB&&c.push(e),E.push({tokens:c,name:D,query:w,rangeString:o,lineNumber:Q}),C+=2}let I=A;for(const A of E)I=I.filter((B=>!A.tokens.includes(B)));I.every((A=>""===A.content.trim()))&&(I=null);return{annotations:E.map((A=>({name:A.name,query:A.query,lineNumber:A.lineNumber,rangeString:A.rangeString}))),lineWithoutComments:I}}(A,g,I,Q);if(C.push(...B),!E)return null;const D=E.map((A=>A.content)).join("");return["mdx","jsx","tsx"].includes(Q)&&B.length>0&&"{}"===D.trim()?null:(I++,D)})).filter((A=>null!==A)).join("\n"),w=C.map((A=>{var{rangeString:B,lineNumber:Q}=A,g=function(A,B){var Q={};for(var g in A)Object.prototype.hasOwnProperty.call(A,g)&&B.indexOf(g)<0&&(Q[g]=A[g]);if(null!=A&&"function"==typeof Object.getOwnPropertySymbols){var E=0;for(g=Object.getOwnPropertySymbols(A);E<g.length;E++)B.indexOf(g[E])<0&&Object.prototype.propertyIsEnumerable.call(A,g[E])&&(Q[g[E]]=A[g[E]])}return Q}(A,["rangeString","lineNumber"]);return Object.assign(Object.assign({},g),{ranges:fB(B,Q,D)})})).filter((A=>A.ranges.length>0));return{newCode:D,annotations:w}}const pB={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function fB(A,B,Q){return A&&A.startsWith("(/")?function(A,B,Q){const g=B.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);const E=new RegExp(g[1],g[2]),C=A.split(/\r?\n/).slice(Q-1).join("\n");if(!E.global){const A=E.exec(C);if(!A)return[];const B=C.slice(0,A.index).split("\n").length+Q-1;return[{fromLineNumber:B,toLineNumber:B+A[0].split("\n").length-1}]}let I;const D=[];for(;I=E.exec(C);){const A=C.slice(0,I.index).split("\n").length+Q-1,B=A+I[0].split("\n").length-1,g=D[D.length-1];g&&g.fromLineNumber===A||D.push({fromLineNumber:A,toLineNumber:B})}return D}(Q,A,B):A&&A.startsWith("[/")?function(A,B,Q){const g=B.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);let E=g[2]||"";E+="d";const C=new RegExp(g[1],E);let I=A.split(/\r?\n/);I=I.slice(Q-1),C.multiline||(I=[I[0]]);const D=[];return I.forEach(((A,B)=>{if(!C.global){if(D.length>0)return;const g=C.exec(A);if(!g)return;const E=g.indices[1]||g.indices[0];return void D.push({lineNumber:B+Q,fromColumn:E[0]+1,toColumn:E[1]})}let g;for(;g=C.exec(A);){const A=g.indices[1]||g.indices[0];D.push({lineNumber:B+Q,fromColumn:A[0]+1,toColumn:A[1]})}})),D}(Q,A,B):function(A,B){return A?A.startsWith("[")?KB(A,B):UB(A.slice(1,-1)).map((A=>{if(A.includes("[")){const[Q,g]=A.split("["),E=Number(Q),C=B+E-1;if(!PB(C))throw new uB(Q);return KB("["+g,C)}const{from:Q,to:g}=YB(A);return[{fromLineNumber:Q+B-1,toLineNumber:g+B-1}]})).flat():[{fromLineNumber:B,toLineNumber:B}]}(A,B)}function xB(A,B){var Q;const g=A.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),E=g[1],C=g[2],I=null===(Q=g[3])||void 0===Q?void 0:Q.trim();return B.includes(E)?{name:E,rangeString:C,query:I}:null}function OB(A,B){let Q=[],g=1;return A.forEach((A=>{Q.push({fromColumn:g,toColumn:g+A.content.length-1,token:A}),g+=A.content.length})),B.forEach((A=>{Q=function(A,B){const{range:Q}=B,{fromColumn:g,toColumn:E}=Q,C=[];let I=0;for(;I<A.length&&A[I].toColumn<g;)C.push(A[I]),I++;if(I===A.length)return A;const D={annotationName:B.name,annotationQuery:B.query,fromColumn:g,toColumn:E,tokens:[]},w=A[I];if(w.fromColumn<g){const[A,B]=qB(w,g);if(C.push(A),C.push(D),B.toColumn>E){const[A,Q]=qB(B,E+1);D.tokens.push(A),C.push(Q)}else D.tokens.push(B);I++}else C.push(D);for(;I<A.length&&A[I].toColumn<=E;)D.tokens.push(A[I]),I++;if(I===A.length)return C;const o=A[I];if(o.fromColumn<=E){const[A,B]=qB(o,E+1);D.tokens.push(A),C.push(B),I++}for(;I<A.length;)C.push(A[I]),I++;return C}(Q,A)})),Q.map((A=>mB(A)))}function mB(A){return"tokens"in A?{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromColumn:A.fromColumn,toColumn:A.toColumn,tokens:A.tokens.map((A=>mB(A)))}:A.token}function qB(A,B){if("token"in A){const Q=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(0,B-A.fromColumn)}),g=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(B-A.fromColumn)});return[Object.assign(Object.assign({},A),{toColumn:B-1,token:Q}),Object.assign(Object.assign({},A),{fromColumn:B,token:g})]}{const Q=[],g=[];A.tokens.forEach((A=>{if(A.toColumn<B)Q.push(A);else if(A.fromColumn>=B)g.push(A);else{const[E,C]=qB(A,B);Q.push(E),g.push(C)}}));return[Object.assign(Object.assign({},A),{toColumn:B-1,tokens:Q}),Object.assign(Object.assign({},A),{fromColumn:B,tokens:g})]}}function bB(A,B){let Q=A.map(((A,B)=>({fromLineNumber:B+1,toLineNumber:B+1,line:A})));return B.forEach((A=>{Q=function(A,B){const{range:Q,name:g,query:E}=B,{fromLineNumber:C,toLineNumber:I}=Q,D=[];let w=0;for(;w<A.length&&A[w].toLineNumber<C;)D.push(A[w]),w++;if(w===A.length)return D;const o={annotationName:g,annotationQuery:E,fromLineNumber:C,toLineNumber:I,lines:[]},s=A[w];if(s.fromLineNumber<C){const[A,B]=TB(s,C);if(D.push(A),D.push(o),B.toLineNumber>I){const[A,Q]=TB(B,I+1);o.lines.push(A),D.push(Q)}else o.lines.push(B);w++}else D.push(o);for(;w<A.length&&A[w].toLineNumber<=I;)o.lines.push(A[w]),w++;if(w===A.length)return D;const e=A[w];if(e.fromLineNumber<=I){const[A,B]=TB(e,I+1);o.lines.push(A),D.push(B),w++}for(;w<A.length;)D.push(A[w]),w++;return D}(Q,A)})),Q.map((A=>WB(A)))}function WB(A){return"line"in A?{lineNumber:A.fromLineNumber,tokens:A.line.tokens}:{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromLineNumber:A.fromLineNumber,toLineNumber:A.toLineNumber,lines:A.lines.map((A=>WB(A)))}}function TB(A,B){if("line"in A)return[Object.assign(Object.assign({},A),{toLineNumber:B-1}),Object.assign(Object.assign({},A),{fromLineNumber:B})];{const Q=[],g=[];return A.lines.forEach((A=>{if(A.toLineNumber<B)Q.push(A);else if(A.fromLineNumber>=B)g.push(A);else{const[E,C]=TB(A,B);Q.push(E),g.push(C)}})),[Object.assign(Object.assign({},A),{toLineNumber:B-1,lines:Q}),Object.assign(Object.assign({},A),{fromLineNumber:B,lines:g})]}}function XB(A,B){const{inlineAnnotations:Q,multilineAnnotations:g}=function(A){const B=[],Q=[];return A.forEach((A=>{A.ranges.forEach((g=>{"lineNumber"in g?B.push(Object.assign(Object.assign({},A),{range:g})):Q.push(Object.assign(Object.assign({},A),{range:g}))}))})),{inlineAnnotations:B,multilineAnnotations:Q}}(B);return bB(A.map(((A,B)=>{const g=Q.filter((A=>A.range.lineNumber===B+1));return{lineNumber:B+1,tokens:OB(A,g)}})),g)}var vB=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],ZB={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function jB(A,B){const Q=A.indexOf("[",B);if(-1!==Q){const B=A.indexOf("m",Q);return{sequence:A.substring(Q+2,B).split(";"),startPosition:Q,position:B+1}}return{position:A.length}}function VB(A,B){let Q=1;const g=A[B+Q++];let E;if("2"===g){const g=[A[B+Q++],A[B+Q++],A[B+Q]].map((A=>Number.parseInt(A)));3!==g.length||g.some((A=>Number.isNaN(A)))||(E={type:"rgb",rgb:g})}else if("5"===g){const g=Number.parseInt(A[B+Q]);Number.isNaN(g)||(E={type:"table",index:Number(g)})}return[Q,E]}function zB(A){const B=[];for(let Q=0;Q<A.length;Q++){const g=A[Q],E=Number.parseInt(g);if(!Number.isNaN(E))if(0===E)B.push({type:"resetAll"});else if(E<=9){ZB[E]&&B.push({type:"setDecoration",value:ZB[E]})}else if(E<=29){const A=ZB[E-20];A&&B.push({type:"resetDecoration",value:A})}else if(E<=37)B.push({type:"setForegroundColor",value:{type:"named",name:vB[E-30]}});else if(38===E){const[g,E]=VB(A,Q);E&&B.push({type:"setForegroundColor",value:E}),Q+=g}else if(39===E)B.push({type:"resetForegroundColor"});else if(E<=47)B.push({type:"setBackgroundColor",value:{type:"named",name:vB[E-40]}});else if(48===E){const[g,E]=VB(A,Q);E&&B.push({type:"setBackgroundColor",value:E}),Q+=g}else 49===E?B.push({type:"resetBackgroundColor"}):E>=90&&E<=97?B.push({type:"setForegroundColor",value:{type:"named",name:vB[E-90+8]}}):E>=100&&E<=107&&B.push({type:"setBackgroundColor",value:{type:"named",name:vB[E-100+8]}})}return B}function _B(A,B){const Q=function(){let A=null,B=null,Q=new Set;return{parse(g){const E=[];let C=0;do{const I=jB(g,C),D=I.sequence?g.substring(C,I.startPosition):g.substring(C);if(D.length>0&&E.push({value:D,foreground:A,background:B,decorations:new Set(Q)}),I.sequence){const g=zB(I.sequence);for(const E of g)"resetAll"===E.type?(A=null,B=null,Q.clear()):"resetForegroundColor"===E.type?A=null:"resetBackgroundColor"===E.type?B=null:"resetDecoration"===E.type&&Q.delete(E.value);for(const E of g)"setForegroundColor"===E.type?A=E.value:"setBackgroundColor"===E.type?B=E.value:"setDecoration"===E.type&&Q.add(E.value)}C=I.position}while(C<g.length);return E}}}(),g=A.split(/\r?\n|\r/g).map((A=>function(A,B,Q){const g=A.parse(B),E=g.map((({value:A,foreground:B,background:g,decorations:E})=>{const C=$B(B,Q),I={};C&&(I.color=C);const D=$B(g,Q);return D&&(I.background=D),E.has("bold")&&(I.fontWeight="bold"),E.has("italic")&&(I.fontStyle="italic"),E.has("underline")&&(I.textDecoration="underline"),E.has("strikethrough")&&(I.textDecoration="line-through"),E.has("reverse")&&(I.color=D,I.background=C),E.has("dim")&&(I.opacity=.5),{content:A,style:I}}));return E}(Q,A,B)));return g}function $B(A,B){if(A){if("named"===A.type){return D(B,"terminal.ansi"+(A.name[0].toUpperCase()+A.name.slice(1)))}if("rgb"===A.type){const[B,Q,g]=A.rgb;return`rgb(${B}, ${Q}, ${g})`}}}async function AQ(A,B){await Promise.all([rB(A),c(B)])}async function BQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");return await AQ([C],Q),QQ(E,C,Q,g)}function QQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");const{langId:I,grammar:w}=HB(C),o=i(Q),s="text"==I?RB(E):"terminal"==I?_B(E,o):(null==g?void 0:g.scopes)?function(A,B,Q){return nB.setTheme(Q),FB(A,B,nB.getColorMap())}(E,w,o):kB(E,w,o),e="terminal"==I?function(A){return{color:D(A,"terminal.foreground"),background:D(A,"terminal.background")}}(o):{color:o.foreground,background:o.background};if(function(A){return"annotations"in A}(g)){return{lines:XB(s,(null==g?void 0:g.annotations)||[]),lang:I,style:e}}return{lines:s,lang:I,style:e}}async function gQ(A,B,Q){if(!Q)return{code:A,annotations:[]};await rB([B]);const{grammar:g,langId:E}=HB(B),{newCode:C,annotations:I}=lB(A,g,E,Q);return{code:C,annotations:I}}async function EQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");await AQ([],A);return F(i(A))}function CQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");return F(i(A))}export{G as LANG_NAMES,M as THEME_NAMES,LB as UnknownLanguageError,h as UnknownThemeError,gQ as extractAnnotations,EQ as getThemeColors,CQ as getThemeColorsSync,BQ as highlight,QQ as highlightSync,AQ as preload}; diff --git a/lib/dist/grammar/txt.mjs b/lib/dist/grammar/txt.mjs new file mode 100644 index 0000000..4bb83cf --- /dev/null +++ b/lib/dist/grammar/txt.mjs @@ -0,0 +1 @@ +var t="txt",e="source.txt",n=[{include:"#comment"}],a={comment:{begin:"(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.txt"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.txt"}},end:"\\n",name:"comment.line.number-sign.txt"}]}},i={name:"txt",scopeName:e,patterns:n,repository:a};export{i as default,t as name,n as patterns,a as repository,e as scopeName}; diff --git a/lib/dist/index.d.ts b/lib/dist/index.d.ts index d340fcd..28282b4 100644 --- a/lib/dist/index.d.ts +++ b/lib/dist/index.d.ts @@ -41,7 +41,7 @@ declare class UnknownThemeError extends Error { declare const LANG_NAMES: string[]; type NamesTuple = typeof LANG_NAMES; type LanguageAlias = NamesTuple[number]; -type LanguageName = "abap" | "actionscript-3" | "ada" | "apache" | "apex" | "apl" | "applescript" | "ara" | "asm" | "astro" | "awk" | "ballerina" | "bat" | "beancount" | "berry" | "bibtex" | "bicep" | "blade" | "c" | "cadence" | "clarity" | "clojure" | "cmake" | "cobol" | "codeql" | "coffee" | "cpp" | "crystal" | "csharp" | "css" | "cue" | "cypher" | "d" | "dart" | "dax" | "diff" | "docker" | "dream-maker" | "elixir" | "elm" | "erb" | "erlang" | "fish" | "fsharp" | "gdresource" | "gdscript" | "gdshader" | "gherkin" | "git-commit" | "git-rebase" | "glimmer-js" | "glimmer-ts" | "glsl" | "gnuplot" | "go" | "graphql" | "groovy" | "hack" | "haml" | "handlebars" | "haskell" | "hcl" | "hjson" | "hlsl" | "html" | "http" | "imba" | "ini" | "java" | "javascript" | "jinja-html" | "jison" | "json" | "json5" | "jsonc" | "jsonl" | "jsonnet" | "jssm" | "jsx" | "julia" | "kotlin" | "kusto" | "latex" | "less" | "liquid" | "lisp" | "logo" | "lua" | "make" | "markdown" | "marko" | "matlab" | "mdx" | "mermaid" | "narrat" | "nextflow" | "nginx" | "nim" | "nix" | "objective-c" | "objective-cpp" | "ocaml" | "pascal" | "perl" | "php" | "plsql" | "polar" | "postcss" | "powerquery" | "powershell" | "prisma" | "prolog" | "proto" | "pug" | "puppet" | "purescript" | "python" | "r" | "raku" | "razor" | "reg" | "rel" | "riscv" | "rst" | "ruby" | "rust" | "sas" | "sass" | "scala" | "scheme" | "scss" | "shaderlab" | "shellscript" | "shellsession" | "smalltalk" | "solidity" | "sparql" | "sql" | "ssh-config" | "stata" | "stylus" | "svelte" | "swift" | "system-verilog" | "tasl" | "tcl" | "tex" | "toml" | "tsx" | "turtle" | "twig" | "txt" | "typescript" | "v" | "vb" | "verilog" | "vhdl" | "viml" | "vue-html" | "vue" | "vyper" | "wasm" | "wenyan" | "wgsl" | "wolfram" | "xml" | "xsl" | "yaml" | "zenscript"; +type LanguageName = "abap" | "actionscript-3" | "ada" | "angular-html" | "angular-ts" | "apache" | "apex" | "apl" | "applescript" | "ara" | "asciidoc" | "asm" | "astro" | "awk" | "ballerina" | "bat" | "beancount" | "berry" | "bibtex" | "bicep" | "blade" | "c" | "cadence" | "clarity" | "clojure" | "cmake" | "cobol" | "codeowners" | "codeql" | "coffee" | "common-lisp" | "cpp" | "crystal" | "csharp" | "css" | "csv" | "cue" | "cypher" | "d" | "dart" | "dax" | "desktop" | "diff" | "docker" | "dotenv" | "dream-maker" | "edge" | "elixir" | "elm" | "emacs-lisp" | "erb" | "erlang" | "fennel" | "fish" | "fluent" | "fortran-fixed-form" | "fortran-free-form" | "fsharp" | "gdresource" | "gdscript" | "gdshader" | "genie" | "gherkin" | "git-commit" | "git-rebase" | "gleam" | "glimmer-js" | "glimmer-ts" | "glsl" | "gnuplot" | "go" | "graphql" | "groovy" | "hack" | "haml" | "handlebars" | "haskell" | "haxe" | "hcl" | "hjson" | "hlsl" | "html" | "html-derivative" | "http" | "hxml" | "hy" | "imba" | "ini" | "java" | "javascript" | "jinja" | "jison" | "json" | "json5" | "jsonc" | "jsonl" | "jsonnet" | "jssm" | "jsx" | "julia" | "kotlin" | "kusto" | "latex" | "lean" | "less" | "liquid" | "log" | "logo" | "lua" | "luau" | "make" | "markdown" | "marko" | "matlab" | "mdc" | "mdx" | "mermaid" | "mojo" | "move" | "narrat" | "nextflow" | "nginx" | "nim" | "nix" | "nushell" | "objective-c" | "objective-cpp" | "ocaml" | "pascal" | "perl" | "php" | "plsql" | "po" | "postcss" | "powerquery" | "powershell" | "prisma" | "prolog" | "proto" | "pug" | "puppet" | "purescript" | "python" | "qml" | "qmldir" | "qss" | "r" | "racket" | "raku" | "razor" | "reg" | "regexp" | "rel" | "riscv" | "rst" | "ruby" | "rust" | "sas" | "sass" | "scala" | "scheme" | "scss" | "shaderlab" | "shellscript" | "shellsession" | "smalltalk" | "solidity" | "soy" | "sparql" | "splunk" | "sql" | "ssh-config" | "stata" | "stylus" | "svelte" | "swift" | "system-verilog" | "systemd" | "tasl" | "tcl" | "templ" | "terraform" | "tex" | "toml" | "ts-tags" | "tsv" | "tsx" | "turtle" | "twig" | "txt" | "typescript" | "typespec" | "typst" | "v" | "vala" | "vb" | "verilog" | "vhdl" | "viml" | "vue" | "vue-html" | "vyper" | "wasm" | "wenyan" | "wgsl" | "wikitext" | "wolfram" | "xml" | "xsl" | "yaml" | "zenscript" | "zig"; type Annotation = { name: string; diff --git a/lib/dist/index.esm.mjs b/lib/dist/index.esm.mjs index cf9e3a0..581fa25 100644 --- a/lib/dist/index.esm.mjs +++ b/lib/dist/index.esm.mjs @@ -1 +1 @@ -function A(A,B){var Q=require("fs"),g=require("path"),E=g.parse,C=require("os");var I=function(A,B){var Q="/";/^([A-Za-z]:)/.test(A)?Q="":/^\\\\/.test(A)&&(Q="\\\\");for(var C=[A],I=E(A);I.dir!==C[C.length-1];)C.push(I.dir),I=E(I.dir);return C.reduce((function(A,E){return A.concat(B.map((function(A){return g.resolve(Q,E,A)})))}),[])};const D=C.homedir||function(){var A=process.env.HOME,B=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;return"win32"===process.platform?process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||A||null:"darwin"===process.platform?A||(B?"/Users/"+B:null):"linux"===process.platform?A||(0===process.getuid()?"/root":B?"/home/"+B:null):A||null};var w="win32"!==process.platform&&Q.realpathSync&&"function"==typeof Q.realpathSync.native?Q.realpathSync.native:Q.realpathSync,o=D(),s=function(A,B,Q){return Q&&!1===Q.preserveSymlinks?A(B):B},e=function(A,B,Q){for(var E=function(A,B,Q){var g=B&&B.moduleDirectory?[].concat(B.moduleDirectory):["node_modules"];if(B&&"function"==typeof B.paths)return B.paths(Q,A,(function(){return I(A,g)}),B);var E=I(A,g);return B&&B.paths?E.concat(B.paths):E}(B,Q,A),C=0;C<E.length;C++)E[C]=g.join(E[C],A);return E};if("string"!=typeof A)throw new TypeError("Path must be a string.");var c=function(A,B){return B||{}}(0,B),i=c.isFile||function(A){try{var B=Q.statSync(A,{throwIfNoEntry:!1})}catch(A){if(A&&("ENOENT"===A.code||"ENOTDIR"===A.code))return!1;throw A}return!!B&&(B.isFile()||B.isFIFO())},t=c.readFileSync||Q.readFileSync,M=c.isDirectory||function(A){try{var B=Q.statSync(A,{throwIfNoEntry:!1})}catch(A){if(A&&("ENOENT"===A.code||"ENOTDIR"===A.code))return!1;throw A}return!!B&&B.isDirectory()},a=c.realpathSync||function(A){try{return w(A)}catch(A){if("ENOENT"!==A.code)throw A}return A},h=c.readPackageSync||function(A,B){var Q=A(B);try{return JSON.parse(Q)}catch(A){}};if(c.readFileSync&&c.readPackageSync)throw new TypeError("`readFileSync` and `readPackageSync` are mutually exclusive.");var n=c.packageIterator,F=c.extensions||[".js"];c.includeCoreModules;var r=c.basedir||g.dirname(function(){var A=Error.prepareStackTrace;Error.prepareStackTrace=function(A,B){return B};var B=(new Error).stack;return Error.prepareStackTrace=A,B[2].getFileName()}()),G=c.filename||r;c.paths=c.paths||[g.join(o,".node_modules"),g.join(o,".node_libraries")];var N=s(a,g.resolve(r),c);if(/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(A)){var L=g.resolve(N,A);"."!==A&&".."!==A&&"/"!==A.slice(-1)||(L+="/");var H=K(L)||U(L);if(H)return s(a,H,c)}else{var k=function(A,B){for(var Q=function(){return e(A,B,c)},E=n?n(A,B,Q,c):Q(),C=0;C<E.length;C++){var I=E[C];if(M(g.dirname(I))){var D=K(I);if(D)return D;var w=U(I);if(w)return w}}}(A,N);if(k)return s(a,k,c)}var R=new Error("Cannot find module '"+A+"' from '"+G+"'");throw R.code="MODULE_NOT_FOUND",R;function K(A){var B=Y(g.dirname(A));if(B&&B.dir&&B.pkg&&c.pathFilter){var Q=g.relative(B.dir,A),E=c.pathFilter(B.pkg,A,Q);E&&(A=g.resolve(B.dir,E))}if(i(A))return A;for(var C=0;C<F.length;C++){var I=A+F[C];if(i(I))return I}}function Y(A){if(""!==A&&"/"!==A&&!("win32"===process.platform&&/^\w:[/\\]*$/.test(A)||/[/\\]node_modules[/\\]*$/.test(A))){var B=g.join(s(a,A,c),"package.json");if(!i(B))return Y(g.dirname(A));var Q=h(t,B);return Q&&c.packageFilter&&(Q=c.packageFilter(Q,A)),{pkg:Q,dir:A}}}function U(A){var B=g.join(s(a,A,c),"/package.json");if(i(B)){try{var Q=h(t,B)}catch(A){}if(Q&&c.packageFilter&&(Q=c.packageFilter(Q,A)),Q&&Q.main){if("string"!=typeof Q.main){var E=new TypeError("package “"+Q.name+"” `main` must be a string");throw E.code="INVALID_PACKAGE_MAIN",E}"."!==Q.main&&"./"!==Q.main||(Q.main="index");try{var C=K(g.resolve(A,Q.main));if(C)return C;var I=U(g.resolve(A,Q.main));if(I)return I}catch(A){}}}return K(g.join(A,"/index"))}}async function B(B,Q){const g=await import("fs").then((A=>A.promises)),E=await import("path"),{URL:C}=await import("url"),I=new C(".",import.meta.url).pathname;try{let A=E.resolve(I,"..",B),C=E.resolve(A,Q);const D=await g.readFile(C,"utf8");if(!D)throw new Error("no results");return JSON.parse(D)}catch(C){const D=A("@code-hike/lighter",{basedir:I});let w=E.resolve(D,"..","..",B),o=E.resolve(w,Q);return JSON.parse(await g.readFile(o,"utf8"))}}async function Q(A){if("function"==typeof fetch){const B=await fetch(`https://lighter.codehike.org/${A}.json`);return await B.json()}const B=await import("https"),Q={host:"lighter.codehike.org",path:`/${A}.json`,method:"GET"};return new Promise(((A,g)=>{const E=B.request(Q,(B=>{let Q="";B.on("data",(A=>{Q+=A})),B.on("end",(()=>{A(JSON.parse(Q))}))}));E.on("error",(A=>{g(A)})),E.end()}))}const g=A=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(A),E=(A,B)=>A.match(new RegExp(`.{${B}}`,"g")),C=A=>parseInt(A.repeat(2/A.length),16);function I(A,B){return void 0!==A?A/255:"number"!=typeof B||B<0||B>1?1:B}function D(A,B){if(!A)return A;const{r:Q,g:D,b:w,a:o}=function(A){if(!A)return;if(!g(A))throw new Error("Invalid color string, must be a valid hex color");const B=Math.floor((A.length-1)/3),Q=E(A.slice(1),B),[D,w,o,s]=Q.map(C);return{r:D,g:w,b:o,a:I(s,1)}}(A);return function(A){if(!A)return;const{r:B,g:Q,b:g,a:E}=A,C=Math.round(255*E);return`#${B.toString(16).padStart(2,"0")}${Q.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${C.toString(16).padStart(2,"0")}`}({r:Q,g:D,b:w,a:o*B})}function w(A,B){const Q=A.colors||{};if(Q[B])return Q[B];const g=s[B];if(!g)throw new Error(`Unknown theme color key: ${B}`);return"string"==typeof g?w(A,g):function(A,B){const Q=B[A.type];if(Array.isArray(Q)){const[B,g,...E]=Q;return B(w(A,g),...E)}return Q}(A,g)}const o="#6FC3DF",s={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:o},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[D,"tab.activeForeground",.5],light:[D,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:o},"tab.activeBorderTop":{hc:o},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:o},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:o},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:o},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[D,"editor.background",.9],light:[D,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},e=new Map,c=new Map;async function i(A){if("string"==typeof A){const g=A;if(!a.includes(g))throw new h(g);if(!e.has(g)){const A=async function(A){try{return await B("themes",A+".json")}catch(B){return await Q(`themes/${A}`)}}(g).then((A=>(c.set(g,A),A)));e.set(g,A)}return e.get(g)}return A}function t(A){let B=null;if("string"==typeof A){if(B=c.get(A),!B)throw new Error("Syntax highlighting error: theme not loaded")}else B=A;return function(A){if(!A)return;const B=A.settings||A.tokenColors||[],Q={name:A.name||"unknown-theme",type:M(A),foreground:"",background:"",settings:B,colors:A.colors||{},colorNames:A.colorNames},g=B.find((A=>!A.scope));if(g){const{foreground:A,background:B}=(null==g?void 0:g.settings)||{},E={};A&&!Q.colors["editor.foreground"]&&(E["editor.foreground"]=A),B&&!Q.colors["editor.background"]&&(E["editor.background"]=B),Object.keys(E).length>0&&(Q.colors=Object.assign(Object.assign({},Q.colors),E)),Q.foreground=A,Q.background=B}g||(Q.settings=[{settings:{foreground:w(Q,"editor.foreground"),background:w(Q,"editor.background")}},...Q.settings]);if(Q.background=Q.background||w(Q,"editor.background"),Q.foreground=Q.foreground||w(Q,"editor.foreground"),"from-css"===A.type&&!Q.colorNames){const A={};let B=0;Q.settings=Q.settings.map((Q=>{const g=Object.assign(Object.assign({},Q),{settings:Object.assign({},Q.settings)}),{foreground:E,background:C}=g.settings||{};return E&&!A[E]&&(A[E]=`#${B.toString(16).padStart(6,"0")}`,B++),C&&!A[C]&&(A[C]=`#${B.toString(16).padStart(6,"0")}`,B++),E&&(g.settings.foreground=A[E]),C&&(g.settings.background=A[C]),g})),Q.colorNames=A}return Q}(B)}function M(A){var B;if("from-css"===A.type)return"from-css";return"light"===(A.type?A.type:(null===(B=A.name)||void 0===B?void 0:B.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const a=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class h extends Error{constructor(A){super(`Unknown theme: ${A}`),this.theme=A}}function n(A){const B=B=>"colorScheme"===B?function(A){return"from-css"===A.type?"var(--ch-0)":A.type}(A):"foreground"===B?A.foreground:"background"===B?A.background:w(A,B);return{colorScheme:B("colorScheme"),foreground:B("foreground"),background:B("background"),lighter:{inlineBackground:B("lighter.inlineBackground")},editor:{background:B("editor.background"),foreground:B("editor.foreground"),lineHighlightBackground:B("editor.lineHighlightBackground"),rangeHighlightBackground:B("editor.rangeHighlightBackground"),infoForeground:B("editor.infoForeground"),selectionBackground:B("editor.selectionBackground")},focusBorder:B("focusBorder"),tab:{activeBackground:B("tab.activeBackground"),activeForeground:B("tab.activeForeground"),inactiveBackground:B("tab.inactiveBackground"),inactiveForeground:B("tab.inactiveForeground"),border:B("tab.border"),activeBorder:B("tab.activeBorder"),activeBorderTop:B("tab.activeBorderTop")},editorGroup:{border:B("editorGroup.border")},editorGroupHeader:{tabsBackground:B("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:B("editorLineNumber.foreground")},input:{background:B("input.background"),foreground:B("input.foreground"),border:B("input.border")},icon:{foreground:B("icon.foreground")},sideBar:{background:B("sideBar.background"),foreground:B("sideBar.foreground"),border:B("sideBar.border")},list:{activeSelectionBackground:B("list.activeSelectionBackground"),activeSelectionForeground:B("list.activeSelectionForeground"),hoverBackground:B("list.hoverBackground"),hoverForeground:B("list.hoverForeground")}}}const F=["abap","actionscript-3","ada","apache","apex","apl","applescript","ara","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","cadence","cdc","clarity","clj","clojure","cmake","cmd","cobol","codeql","coffee","console","cpp","crystal","cs","csharp","css","cue","cypher","d","dart","dax","diff","docker","dockerfile","dream-maker","elixir","elm","erb","erl","erlang","f#","fish","fs","fsharp","fsl","gdresource","gdscript","gdshader","gherkin","git-commit","git-rebase","glimmer-js","glimmer-ts","glsl","gnuplot","go","graphql","groovy","hack","haml","handlebars","haskell","hbs","hcl","hjson","hlsl","hs","html","http","imba","ini","jade","java","javascript","jinja-html","jison","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kusto","latex","less","liquid","lisp","logo","lua","make","makefile","markdown","marko","matlab","md","mdx","mermaid","narrat","nextflow","nginx","nim","nix","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","polar","postcss","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","r","raku","razor","rb","reg","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","sparql","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","tasl","tcl","terminal","tex","text","toml","ts","tsx","turtle","twig","txt","typescript","v","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vyper","wasm","wenyan","wgsl","wolfram","xml","xsl","yaml","yml","zenscript","zsh","文言"],r={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",cpp:"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",cue:"source.cue",cypher:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile","dream-maker":"source.dm",elixir:"source.elixir",elm:"source.elm",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fish:"source.fish",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase","glimmer-js":"source.gjs","glimmer-ts":"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic",http:"source.http",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js","jinja-html":"text.html.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",kotlin:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",less:"source.css.less",liquid:"text.html.liquid",lisp:"source.lisp",logo:"source.logo",lua:"source.lua",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdx:"source.mdx",mermaid:"source.mermaid",narrat:"source.narrat",nextflow:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",polar:"source.polar",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",r:"source.r",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",console:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",sparql:"source.sparql",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",tasl:"source.tasl",tcl:"source.tcl",tex:"text.tex",toml:"source.toml",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",v:"source.v",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml","vue-html":"text.html.vue-html",vue:"source.vue",vyper:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wolfram:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript"},G={"source.abap":{id:"abap",path:"abap.tmLanguage.json",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",path:"actionscript-3.tmLanguage.json",embeddedScopes:[]},"source.ada":{id:"ada",path:"ada.tmLanguage.json",embeddedScopes:[]},"source.apacheconf":{id:"apache",path:"apache.tmLanguage.json",embeddedScopes:[]},"source.apex":{id:"apex",path:"apex.tmLanguage.json",embeddedScopes:[]},"source.apl":{id:"apl",path:"apl.tmLanguage.json",embeddedScopes:["source.java","source.json","source.js","source.css","text.xml","text.html.basic"]},"source.applescript":{id:"applescript",path:"applescript.tmLanguage.json",embeddedScopes:[]},"source.ara":{id:"ara",path:"ara.tmLanguage.json",embeddedScopes:[]},"source.asm.x86_64":{id:"asm",path:"asm.tmLanguage.json",embeddedScopes:[]},"source.astro":{id:"astro",path:"astro.tmLanguage.json",embeddedScopes:["source.tsx","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.ts","source.js","source.json"]},"source.awk":{id:"awk",path:"awk.tmLanguage.json",embeddedScopes:[]},"source.ballerina":{id:"ballerina",path:"ballerina.tmLanguage.json",embeddedScopes:[]},"source.batchfile":{id:"bat",path:"bat.tmLanguage.json",embeddedScopes:[]},"text.beancount":{id:"beancount",path:"beancount.tmLanguage.json",embeddedScopes:[]},"source.berry":{id:"berry",path:"berry.tmLanguage.json",embeddedScopes:[]},"text.bibtex":{id:"bibtex",path:"bibtex.tmLanguage.json",embeddedScopes:[]},"source.bicep":{id:"bicep",path:"bicep.tmLanguage.json",embeddedScopes:[]},"text.html.php.blade":{id:"blade",path:"blade.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.c":{id:"c",path:"c.tmLanguage.json",embeddedScopes:[]},"source.cadence":{id:"cadence",path:"cadence.tmLanguage.json",embeddedScopes:[]},"source.clar":{id:"clarity",path:"clarity.tmLanguage.json",embeddedScopes:[]},"source.clojure":{id:"clojure",path:"clojure.tmLanguage.json",embeddedScopes:[]},"source.cmake":{id:"cmake",path:"cmake.tmLanguage.json",embeddedScopes:[]},"source.cobol":{id:"cobol",path:"cobol.tmLanguage.json",embeddedScopes:["source.css","source.js","source.java","text.html.basic","source.sql"]},"source.ql":{id:"codeql",path:"codeql.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.coffee":{id:"coffee",path:"coffee.tmLanguage.json",embeddedScopes:["source.js"]},"source.cpp":{id:"cpp",path:"cpp.tmLanguage.json",embeddedScopes:["source.c","source.sql","source.glsl"]},"source.crystal":{id:"crystal",path:"crystal.tmLanguage.json",embeddedScopes:["source.shell","source.js","source.c","source.css","source.sql","text.html.basic"]},"source.cs":{id:"csharp",path:"csharp.tmLanguage.json",embeddedScopes:[]},"source.css":{id:"css",path:"css.tmLanguage.json",embeddedScopes:[]},"source.cue":{id:"cue",path:"cue.tmLanguage.json",embeddedScopes:[]},"source.cypher":{id:"cypher",path:"cypher.tmLanguage.json",embeddedScopes:[]},"source.d":{id:"d",path:"d.tmLanguage.json",embeddedScopes:[]},"source.dart":{id:"dart",path:"dart.tmLanguage.json",embeddedScopes:[]},"source.dax":{id:"dax",path:"dax.tmLanguage.json",embeddedScopes:[]},"source.diff":{id:"diff",path:"diff.tmLanguage.json",embeddedScopes:[]},"source.dockerfile":{id:"docker",path:"docker.tmLanguage.json",embeddedScopes:[]},"source.dm":{id:"dream-maker",path:"dream-maker.tmLanguage.json",embeddedScopes:[]},"source.elixir":{id:"elixir",path:"elixir.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.elm":{id:"elm",path:"elm.tmLanguage.json",embeddedScopes:["source.c","source.glsl"]},"text.html.erb":{id:"erb",path:"erb.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.sql","text.xml","source.css","source.js","source.ruby","text.html.basic"]},"source.erlang":{id:"erlang",path:"erlang.tmLanguage.json",embeddedScopes:[]},"source.fish":{id:"fish",path:"fish.tmLanguage.json",embeddedScopes:[]},"source.fsharp":{id:"fsharp",path:"fsharp.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.gdresource":{id:"gdresource",path:"gdresource.tmLanguage.json",embeddedScopes:["source.gdscript","source.gdshader"]},"source.gdscript":{id:"gdscript",path:"gdscript.tmLanguage.json",embeddedScopes:[]},"source.gdshader":{id:"gdshader",path:"gdshader.tmLanguage.json",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",path:"gherkin.tmLanguage.json",embeddedScopes:[]},"text.git-commit":{id:"git-commit",path:"git-commit.tmLanguage.json",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",path:"git-rebase.tmLanguage.json",embeddedScopes:["source.shell"]},"source.gjs":{id:"glimmer-js",path:"glimmer-js.tmLanguage.json",embeddedScopes:["source.yaml","source.css","text.html.basic","text.html.handlebars","source.js"]},"source.gts":{id:"glimmer-ts",path:"glimmer-ts.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic","text.html.handlebars","source.ts"]},"source.glsl":{id:"glsl",path:"glsl.tmLanguage.json",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",path:"gnuplot.tmLanguage.json",embeddedScopes:[]},"source.go":{id:"go",path:"go.tmLanguage.json",embeddedScopes:[]},"source.graphql":{id:"graphql",path:"graphql.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js"]},"source.groovy":{id:"groovy",path:"groovy.tmLanguage.json",embeddedScopes:[]},"source.hack":{id:"hack",path:"hack.tmLanguage.json",embeddedScopes:["source.css","source.js","source.sql","text.html.basic"]},"text.haml":{id:"haml",path:"haml.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.php","source.r","source.perl","source.makefile","source.java","source.ini","source.lua","source.shell","source.c","source.sql","text.xml","text.html.basic","source.css","text.html.markdown","source.coffee","source.sass","source.js","source.ruby"]},"text.html.handlebars":{id:"handlebars",path:"handlebars.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic"]},"source.haskell":{id:"haskell",path:"haskell.tmLanguage.json",embeddedScopes:[]},"source.hcl":{id:"hcl",path:"hcl.tmLanguage.json",embeddedScopes:[]},"source.hjson":{id:"hjson",path:"hjson.tmLanguage.json",embeddedScopes:[]},"source.hlsl":{id:"hlsl",path:"hlsl.tmLanguage.json",embeddedScopes:[]},"text.html.basic":{id:"html",path:"html.tmLanguage.json",embeddedScopes:["source.css","source.js"]},"source.http":{id:"http",path:"http.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js","source.java","source.graphql","text.xml","source.json","source.shell"]},"source.imba":{id:"imba",path:"imba.tmLanguage.json",embeddedScopes:[]},"source.ini":{id:"ini",path:"ini.tmLanguage.json",embeddedScopes:[]},"source.java":{id:"java",path:"java.tmLanguage.json",embeddedScopes:[]},"source.js":{id:"javascript",path:"javascript.tmLanguage.json",embeddedScopes:[]},"text.html.jinja":{id:"jinja-html",path:"jinja-html.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.jison":{id:"jison",path:"jison.tmLanguage.json",embeddedScopes:["source.js"]},"source.json":{id:"json",path:"json.tmLanguage.json",embeddedScopes:[]},"source.json5":{id:"json5",path:"json5.tmLanguage.json",embeddedScopes:[]},"source.json.comments":{id:"jsonc",path:"jsonc.tmLanguage.json",embeddedScopes:[]},"source.json.lines":{id:"jsonl",path:"jsonl.tmLanguage.json",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",path:"jsonnet.tmLanguage.json",embeddedScopes:[]},"source.jssm":{id:"jssm",path:"jssm.tmLanguage.json",embeddedScopes:[]},"source.js.jsx":{id:"jsx",path:"jsx.tmLanguage.json",embeddedScopes:[]},"source.julia":{id:"julia",path:"julia.tmLanguage.json",embeddedScopes:["source.c","source.glsl","source.sql","source.r","source.js","source.python","source.cpp"]},"source.kotlin":{id:"kotlin",path:"kotlin.tmLanguage.json",embeddedScopes:[]},"source.kusto":{id:"kusto",path:"kusto.tmLanguage.json",embeddedScopes:[]},"text.tex.latex":{id:"latex",path:"latex.tmLanguage.json",embeddedScopes:["source.glsl","source.shell","source.sql","source.cpp","source.c","source.r","source.gnuplot","source.scala","source.rust","source.yaml","source.python","source.ts","source.js","source.ruby","source.julia","source.lua","source.java","text.xml","text.html.basic","source.haskell","source.css","text.tex"]},"source.css.less":{id:"less",path:"less.tmLanguage.json",embeddedScopes:["source.css"]},"text.html.liquid":{id:"liquid",path:"liquid.tmLanguage.json",embeddedScopes:["source.js","source.json","source.css","text.html.basic"]},"source.lisp":{id:"lisp",path:"lisp.tmLanguage.json",embeddedScopes:[]},"source.logo":{id:"logo",path:"logo.tmLanguage.json",embeddedScopes:[]},"source.lua":{id:"lua",path:"lua.tmLanguage.json",embeddedScopes:["source.c"]},"source.makefile":{id:"make",path:"make.tmLanguage.json",embeddedScopes:[]},"text.html.markdown":{id:"markdown",path:"markdown.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css"]},"text.marko":{id:"marko",path:"marko.tmLanguage.json",embeddedScopes:["source.js","source.css.scss","source.css.less","source.css"]},"source.matlab":{id:"matlab",path:"matlab.tmLanguage.json",embeddedScopes:[]},"source.mdx":{id:"mdx",path:"mdx.tmLanguage.json",embeddedScopes:["source.gnuplot","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","text.html.handlebars","source.dart","source.fsharp","source.powershell","source.perl.6","source.json.comments","text.pug","source.groovy","text.git-rebase","text.git-commit","source.batchfile","text.xml.xsl","source.asp.vb.net","source.php","source.js.jsx","source.glsl","source.ts","source.swift","text.xml","source.sql","text.shell-session","source.shell","source.css.scss","source.scala","source.rust","source.ruby","source.r","source.python","source.perl","source.objc","text.html.markdown","source.makefile","source.lua","source.css.less","source.kotlin","source.julia","source.json","source.js","source.java","source.ini","text.html.basic","source.haskell","source.graphql","source.go","source.erlang","source.elm","source.elixir","source.dockerfile","source.diff","source.css","source.cs","source.cpp","source.coffee","source.clojure","source.c","source.yaml","source.toml","source.tsx"]},"source.mermaid":{id:"mermaid",path:"mermaid.tmLanguage.json",embeddedScopes:[]},"source.narrat":{id:"narrat",path:"narrat.tmLanguage.json",embeddedScopes:[]},"source.nextflow":{id:"nextflow",path:"nextflow.tmLanguage.json",embeddedScopes:[]},"source.nginx":{id:"nginx",path:"nginx.tmLanguage.json",embeddedScopes:["source.c","source.lua"]},"source.nim":{id:"nim",path:"nim.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.ini","source.java","text.html.markdown","source.glsl","source.css","source.js","text.xml","text.html.basic","source.c"]},"source.nix":{id:"nix",path:"nix.tmLanguage.json",embeddedScopes:[]},"source.objc":{id:"objective-c",path:"objective-c.tmLanguage.json",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",path:"objective-cpp.tmLanguage.json",embeddedScopes:[]},"source.ocaml":{id:"ocaml",path:"ocaml.tmLanguage.json",embeddedScopes:[]},"source.pascal":{id:"pascal",path:"pascal.tmLanguage.json",embeddedScopes:[]},"source.perl":{id:"perl",path:"perl.tmLanguage.json",embeddedScopes:["source.java","source.sql","source.js","source.css","text.xml","text.html.basic"]},"source.php":{id:"php",path:"php.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.plsql.oracle":{id:"plsql",path:"plsql.tmLanguage.json",embeddedScopes:[]},"source.polar":{id:"polar",path:"polar.tmLanguage.json",embeddedScopes:[]},"source.css.postcss":{id:"postcss",path:"postcss.tmLanguage.json",embeddedScopes:[]},"source.powerquery":{id:"powerquery",path:"powerquery.tmLanguage.json",embeddedScopes:[]},"source.powershell":{id:"powershell",path:"powershell.tmLanguage.json",embeddedScopes:[]},"source.prisma":{id:"prisma",path:"prisma.tmLanguage.json",embeddedScopes:[]},"source.prolog":{id:"prolog",path:"prolog.tmLanguage.json",embeddedScopes:[]},"source.proto":{id:"proto",path:"proto.tmLanguage.json",embeddedScopes:[]},"text.pug":{id:"pug",path:"pug.tmLanguage.json",embeddedScopes:["text.html.basic","source.coffee","source.stylus","source.css.scss","source.sass","source.css","source.js"]},"source.puppet":{id:"puppet",path:"puppet.tmLanguage.json",embeddedScopes:[]},"source.purescript":{id:"purescript",path:"purescript.tmLanguage.json",embeddedScopes:[]},"source.python":{id:"python",path:"python.tmLanguage.json",embeddedScopes:[]},"source.r":{id:"r",path:"r.tmLanguage.json",embeddedScopes:[]},"source.perl.6":{id:"raku",path:"raku.tmLanguage.json",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",path:"razor.tmLanguage.json",embeddedScopes:["source.css","source.js","source.cs","text.html.basic"]},"source.reg":{id:"reg",path:"reg.tmLanguage.json",embeddedScopes:[]},"source.rel":{id:"rel",path:"rel.tmLanguage.json",embeddedScopes:[]},"source.riscv":{id:"riscv",path:"riscv.tmLanguage.json",embeddedScopes:[]},"source.rst":{id:"rst",path:"rst.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.c","source.css","text.xml","text.html.basic","source.sql","source.glsl","source.ruby","source.cmake","source.yaml","source.shell","source.js","source.python","source.cpp"]},"source.ruby":{id:"ruby",path:"ruby.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.js","source.c","source.css","source.sql","text.xml","text.html.basic"]},"source.rust":{id:"rust",path:"rust.tmLanguage.json",embeddedScopes:[]},"source.sas":{id:"sas",path:"sas.tmLanguage.json",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",path:"sass.tmLanguage.json",embeddedScopes:[]},"source.scala":{id:"scala",path:"scala.tmLanguage.json",embeddedScopes:[]},"source.scheme":{id:"scheme",path:"scheme.tmLanguage.json",embeddedScopes:[]},"source.css.scss":{id:"scss",path:"scss.tmLanguage.json",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",path:"shaderlab.tmLanguage.json",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",path:"shellscript.tmLanguage.json",embeddedScopes:[]},"text.shell-session":{id:"shellsession",path:"shellsession.tmLanguage.json",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",path:"smalltalk.tmLanguage.json",embeddedScopes:[]},"source.solidity":{id:"solidity",path:"solidity.tmLanguage.json",embeddedScopes:[]},"source.sparql":{id:"sparql",path:"sparql.tmLanguage.json",embeddedScopes:["source.turtle"]},"source.sql":{id:"sql",path:"sql.tmLanguage.json",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",path:"ssh-config.tmLanguage.json",embeddedScopes:[]},"source.stata":{id:"stata",path:"stata.tmLanguage.json",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",path:"stylus.tmLanguage.json",embeddedScopes:[]},"source.svelte":{id:"svelte",path:"svelte.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.json.comments","source.json","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","text.html.markdown","text.pug","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.coffee","source.ts","source.js"]},"source.swift":{id:"swift",path:"swift.tmLanguage.json",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",path:"system-verilog.tmLanguage.json",embeddedScopes:[]},"source.tasl":{id:"tasl",path:"tasl.tmLanguage.json",embeddedScopes:[]},"source.tcl":{id:"tcl",path:"tcl.tmLanguage.json",embeddedScopes:[]},"text.tex":{id:"tex",path:"tex.tmLanguage.json",embeddedScopes:["source.r"]},"source.toml":{id:"toml",path:"toml.tmLanguage.json",embeddedScopes:[]},"source.tsx":{id:"tsx",path:"tsx.tmLanguage.json",embeddedScopes:[]},"source.turtle":{id:"turtle",path:"turtle.tmLanguage.json",embeddedScopes:[]},"text.html.twig":{id:"twig",path:"twig.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.json","source.sql","text.xml","text.html.basic","source.ruby","source.python","source.php","source.js","source.css"]},"source.txt":{id:"txt",path:"txt.tmLanguage.json",embeddedScopes:[]},"source.ts":{id:"typescript",path:"typescript.tmLanguage.json",embeddedScopes:[]},"source.v":{id:"v",path:"v.tmLanguage.json",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",path:"vb.tmLanguage.json",embeddedScopes:[]},"source.verilog":{id:"verilog",path:"verilog.tmLanguage.json",embeddedScopes:[]},"source.vhdl":{id:"vhdl",path:"vhdl.tmLanguage.json",embeddedScopes:[]},"source.viml":{id:"viml",path:"viml.tmLanguage.json",embeddedScopes:[]},"text.html.vue-html":{id:"vue-html",path:"vue-html.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic","source.js","source.vue"]},"source.vue":{id:"vue",path:"vue.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.js","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic"]},"source.vyper":{id:"vyper",path:"vyper.tmLanguage.json",embeddedScopes:[]},"source.wat":{id:"wasm",path:"wasm.tmLanguage.json",embeddedScopes:[]},"source.wenyan":{id:"wenyan",path:"wenyan.tmLanguage.json",embeddedScopes:[]},"source.wgsl":{id:"wgsl",path:"wgsl.tmLanguage.json",embeddedScopes:[]},"source.wolfram":{id:"wolfram",path:"wolfram.tmLanguage.json",embeddedScopes:[]},"text.xml":{id:"xml",path:"xml.tmLanguage.json",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",path:"xsl.tmLanguage.json",embeddedScopes:["source.java","text.xml"]},"source.yaml":{id:"yaml",path:"yaml.tmLanguage.json",embeddedScopes:[]},"source.zenscript":{id:"zenscript",path:"zenscript.tmLanguage.json",embeddedScopes:[]}};var N={d:(A,B)=>{for(var Q in B)N.o(B,Q)&&!N.o(A,Q)&&Object.defineProperty(A,Q,{enumerable:!0,get:B[Q]})},o:(A,B)=>Object.prototype.hasOwnProperty.call(A,B)},L={};N.d(L,{_X:()=>XA,Bz:()=>vA,ot:()=>TA,u:()=>WA,jG:()=>Y,Pn:()=>ZA});const H="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var k;function R(A,B){const Q=[],g=function(A){let B=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,Q=B.exec(A);return{next:()=>{if(!Q)return null;const g=Q[0];return Q=B.exec(A),g}}}(A);let E=g.next();for(;null!==E;){let A=0;if(2===E.length&&":"===E.charAt(1)){switch(E.charAt(0)){case"R":A=1;break;case"L":A=-1;break;default:console.log(`Unknown priority ${E} in scope selector`)}E=g.next()}let B=I();if(Q.push({matcher:B,priority:A}),","!==E)break;E=g.next()}return Q;function C(){if("-"===E){E=g.next();const A=C();return B=>!!A&&!A(B)}if("("===E){E=g.next();const A=function(){const A=[];let B=I();for(;B&&(A.push(B),"|"===E||","===E);){do{E=g.next()}while("|"===E||","===E);B=I()}return B=>A.some((A=>A(B)))}();return")"===E&&(E=g.next()),A}if(K(E)){const A=[];do{A.push(E),E=g.next()}while(K(E));return Q=>B(A,Q)}return null}function I(){const A=[];let B=C();for(;B;)A.push(B),B=C();return B=>A.every((A=>A(B)))}}function K(A){return!!A&&!!A.match(/[\w\.:]+/)}function Y(A){"function"==typeof A.dispose&&A.dispose()}function U(A){return Array.isArray(A)?function(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=U(A[Q]);return B}(A):"object"==typeof A?function(A){let B={};for(let Q in A)B[Q]=U(A[Q]);return B}(A):A}function u(A,...B){return B.forEach((B=>{for(let Q in B)A[Q]=B[Q]})),A}function P(A){const B=~A.lastIndexOf("/")||~A.lastIndexOf("\\");return 0===B?A:~B==A.length-1?P(A.substring(0,A.length-1)):A.substr(1+~B)}!function(A){A.toBinaryStr=function(A){let B=A.toString(2);for(;B.length<32;)B="0"+B;return B},A.print=function(B){const Q=A.getLanguageId(B),g=A.getTokenType(B),E=A.getFontStyle(B),C=A.getForeground(B),I=A.getBackground(B);console.log({languageId:Q,tokenType:g,fontStyle:E,foreground:C,background:I})},A.getLanguageId=function(A){return(255&A)>>>0},A.getTokenType=function(A){return(768&A)>>>8},A.containsBalancedBrackets=function(A){return 0!=(1024&A)},A.getFontStyle=function(A){return(30720&A)>>>11},A.getForeground=function(A){return(16744448&A)>>>15},A.getBackground=function(A){return(4278190080&A)>>>24},A.set=function(B,Q,g,E,C,I,D){let w=A.getLanguageId(B),o=A.getTokenType(B),s=A.containsBalancedBrackets(B)?1:0,e=A.getFontStyle(B),c=A.getForeground(B),i=A.getBackground(B);return 0!==Q&&(w=Q),8!==g&&(o=g),null!==E&&(s=E?1:0),-1!==C&&(e=C),0!==I&&(c=I),0!==D&&(i=D),(w<<0|o<<8|s<<10|e<<11|c<<15|i<<24)>>>0}}(k||(k={}));let y=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class J{static hasCaptures(A){return null!==A&&(y.lastIndex=0,y.test(A))}static replaceCaptures(A,B,Q){return A.replace(y,((A,g,E,C)=>{let I=Q[parseInt(g||E,10)];if(!I)return A;{let A=B.substring(I.start,I.end);for(;"."===A[0];)A=A.substring(1);switch(C){case"downcase":return A.toLowerCase();case"upcase":return A.toUpperCase();default:return A}}}))}}function S(A,B){return A<B?-1:A>B?1:0}function p(A,B){if(null===A&&null===B)return 0;if(!A)return-1;if(!B)return 1;let Q=A.length,g=B.length;if(Q===g){for(let g=0;g<Q;g++){let Q=S(A[g],B[g]);if(0!==Q)return Q}return 0}return Q-g}function l(A){return!!(/^#[0-9a-f]{6}$/i.test(A)||/^#[0-9a-f]{8}$/i.test(A)||/^#[0-9a-f]{3}$/i.test(A)||/^#[0-9a-f]{4}$/i.test(A))}function d(A){return A.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}class f{constructor(A){this.fn=A,this.cache=new Map}get(A){if(this.cache.has(A))return this.cache.get(A);const B=this.fn(A);return this.cache.set(A,B),B}}const x="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};class m{constructor(A){this.scopeName=A}toKey(){return this.scopeName}}class O{constructor(A,B){this.scopeName=A,this.ruleName=B}toKey(){return`${this.scopeName}#${this.ruleName}`}}class q{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(A){const B=A.toKey();this._seenReferenceKeys.has(B)||(this._seenReferenceKeys.add(B),this._references.push(A))}}class b{constructor(A,B){this.repo=A,this.initialScopeName=B,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new m(this.initialScopeName)]}processQueue(){const A=this.Q;this.Q=[];const B=new q;for(const Q of A)W(Q,this.initialScopeName,this.repo,B);for(const A of B.references)if(A instanceof m){if(this.seenFullScopeRequests.has(A.scopeName))continue;this.seenFullScopeRequests.add(A.scopeName),this.Q.push(A)}else{if(this.seenFullScopeRequests.has(A.scopeName))continue;if(this.seenPartialScopeRequests.has(A.toKey()))continue;this.seenPartialScopeRequests.add(A.toKey()),this.Q.push(A)}}}function W(A,B,Q,g){const E=Q.lookup(A.scopeName);if(!E){if(A.scopeName===B)throw new Error(`No grammar provided for <${B}>`);return}const C=Q.lookup(B);A instanceof m?v({baseGrammar:C,selfGrammar:E},g):T(A.ruleName,{baseGrammar:C,selfGrammar:E,repository:E.repository},g);const I=Q.injections(A.scopeName);if(I)for(const A of I)g.add(new m(A))}function T(A,B,Q){B.repository&&B.repository[A]&&X([B.repository[A]],B,Q)}function v(A,B){A.selfGrammar.patterns&&Array.isArray(A.selfGrammar.patterns)&&X(A.selfGrammar.patterns,{...A,repository:A.selfGrammar.repository},B),A.selfGrammar.injections&&X(Object.values(A.selfGrammar.injections),{...A,repository:A.selfGrammar.repository},B)}function X(A,B,Q){for(const g of A){if(Q.visitedRule.has(g))continue;Q.visitedRule.add(g);const A=g.repository?u({},B.repository,g.repository):B.repository;Array.isArray(g.patterns)&&X(g.patterns,{...B,repository:A},Q);const E=g.include;if(!E)continue;const C=$(E);switch(C.kind){case 0:v({...B,selfGrammar:B.baseGrammar},Q);break;case 1:v(B,Q);break;case 2:T(C.ruleName,{...B,repository:A},Q);break;case 3:case 4:const g=C.scopeName===B.selfGrammar.scopeName?B.selfGrammar:C.scopeName===B.baseGrammar.scopeName?B.baseGrammar:void 0;if(g){const E={baseGrammar:B.baseGrammar,selfGrammar:g,repository:A};4===C.kind?T(C.ruleName,E,Q):v(E,Q)}else 4===C.kind?Q.add(new O(C.scopeName,C.ruleName)):Q.add(new m(C.scopeName))}}}class Z{constructor(){this.kind=0}}class j{constructor(){this.kind=1}}class V{constructor(A){this.ruleName=A,this.kind=2}}class z{constructor(A){this.scopeName=A,this.kind=3}}class _{constructor(A,B){this.scopeName=A,this.ruleName=B,this.kind=4}}function $(A){if("$base"===A)return new Z;if("$self"===A)return new j;const B=A.indexOf("#");if(-1===B)return new z(A);if(0===B)return new V(A.substring(1));{const Q=A.substring(0,B),g=A.substring(B+1);return new _(Q,g)}}const AA=/\\(\d+)/,BA=/\\(\d+)/g;class QA{constructor(A,B,Q,g){this.$location=A,this.id=B,this._name=Q||null,this._nameIsCapturing=J.hasCaptures(this._name),this._contentName=g||null,this._contentNameIsCapturing=J.hasCaptures(this._contentName)}get debugName(){const A=this.$location?`${P(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${A}`}getName(A,B){return this._nameIsCapturing&&null!==this._name&&null!==A&&null!==B?J.replaceCaptures(this._name,A,B):this._name}getContentName(A,B){return this._contentNameIsCapturing&&null!==this._contentName?J.replaceCaptures(this._contentName,A,B):this._contentName}}class gA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.retokenizeCapturedWithRuleId=E}dispose(){}collectPatterns(A,B){throw new Error("Not supported!")}compile(A,B){throw new Error("Not supported!")}compileAG(A,B,Q,g){throw new Error("Not supported!")}}class EA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,null),this._match=new oA(g,this.id),this.captures=E,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(A,B){B.push(this._match)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new sA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class CA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.patterns=E.patterns,this.hasMissingPatterns=E.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(A,B){for(const Q of this.patterns)A.getRule(Q).collectPatterns(A,B)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new sA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class IA extends QA{constructor(A,B,Q,g,E,C,I,D,w,o){super(A,B,Q,g),this._begin=new oA(E,this.id),this.beginCaptures=C,this._end=new oA(I||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=D,this.applyEndPatternLast=w||!1,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(A,B){return this._end.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A,B).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledPatterns(A,B){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new sA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,B):this._cachedCompiledPatterns.setSource(0,B)),this._cachedCompiledPatterns}}class DA extends QA{constructor(A,B,Q,g,E,C,I,D,w){super(A,B,Q,g),this._begin=new oA(E,this.id),this.beginCaptures=C,this.whileCaptures=D,this._while=new oA(I,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=w.patterns,this.hasMissingPatterns=w.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(A,B){return this._while.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new sA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(A,B){return this._getCachedCompiledWhilePatterns(A,B).compile(A)}compileWhileAG(A,B,Q,g){return this._getCachedCompiledWhilePatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledWhilePatterns(A,B){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new sA,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,B||"￿"),this._cachedCompiledWhilePatterns}}class wA{static createCaptureRule(A,B,Q,g,E){return A.registerRule((A=>new gA(B,A,Q,g,E)))}static getCompiledRuleId(A,B,Q){return A.id||B.registerRule((g=>{if(A.id=g,A.match)return new EA(A.$vscodeTextmateLocation,A.id,A.name,A.match,wA._compileCaptures(A.captures,B,Q));if(void 0===A.begin){A.repository&&(Q=u({},Q,A.repository));let g=A.patterns;return void 0===g&&A.include&&(g=[{include:A.include}]),new CA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,wA._compilePatterns(g,B,Q))}return A.while?new DA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,wA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.while,wA._compileCaptures(A.whileCaptures||A.captures,B,Q),wA._compilePatterns(A.patterns,B,Q)):new IA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,wA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.end,wA._compileCaptures(A.endCaptures||A.captures,B,Q),A.applyEndPatternLast,wA._compilePatterns(A.patterns,B,Q))})),A.id}static _compileCaptures(A,B,Q){let g=[];if(A){let E=0;for(const B in A){if("$vscodeTextmateLocation"===B)continue;const A=parseInt(B,10);A>E&&(E=A)}for(let A=0;A<=E;A++)g[A]=null;for(const E in A){if("$vscodeTextmateLocation"===E)continue;const C=parseInt(E,10);let I=0;A[E].patterns&&(I=wA.getCompiledRuleId(A[E],B,Q)),g[C]=wA.createCaptureRule(B,A[E].$vscodeTextmateLocation,A[E].name,A[E].contentName,I)}}return g}static _compilePatterns(A,B,Q){let g=[];if(A)for(let E=0,C=A.length;E<C;E++){const C=A[E];let I=-1;if(C.include){const A=$(C.include);switch(A.kind){case 0:case 1:I=wA.getCompiledRuleId(Q[C.include],B,Q);break;case 2:let g=Q[A.ruleName];g&&(I=wA.getCompiledRuleId(g,B,Q));break;case 3:case 4:const E=A.scopeName,D=4===A.kind?A.ruleName:null,w=B.getExternalGrammar(E,Q);if(w)if(D){let A=w.repository[D];A&&(I=wA.getCompiledRuleId(A,B,w.repository))}else I=wA.getCompiledRuleId(w.repository.$self,B,w.repository)}}else I=wA.getCompiledRuleId(C,B,Q);if(-1!==I){const A=B.getRule(I);let Q=!1;if((A instanceof CA||A instanceof IA||A instanceof DA)&&A.hasMissingPatterns&&0===A.patterns.length&&(Q=!0),Q)continue;g.push(I)}}return{patterns:g,hasMissingPatterns:(A?A.length:0)!==g.length}}}class oA{constructor(A,B){if(A){const B=A.length;let Q=0,g=[],E=!1;for(let C=0;C<B;C++)if("\\"===A.charAt(C)&&C+1<B){const B=A.charAt(C+1);"z"===B?(g.push(A.substring(Q,C)),g.push("$(?!\\n)(?<!\\n)"),Q=C+2):"A"!==B&&"G"!==B||(E=!0),C++}this.hasAnchor=E,0===Q?this.source=A:(g.push(A.substring(Q,B)),this.source=g.join(""))}else this.hasAnchor=!1,this.source=A;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=B,this.hasBackReferences=AA.test(this.source)}clone(){return new oA(this.source,this.ruleId)}setSource(A){this.source!==A&&(this.source=A,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(A,B){let Q=B.map((B=>A.substring(B.start,B.end)));return BA.lastIndex=0,this.source.replace(BA,((A,B)=>d(Q[parseInt(B,10)]||"")))}_buildAnchorCache(){let A,B,Q,g,E=[],C=[],I=[],D=[];for(A=0,B=this.source.length;A<B;A++)Q=this.source.charAt(A),E[A]=Q,C[A]=Q,I[A]=Q,D[A]=Q,"\\"===Q&&A+1<B&&(g=this.source.charAt(A+1),"A"===g?(E[A+1]="￿",C[A+1]="￿",I[A+1]="A",D[A+1]="A"):"G"===g?(E[A+1]="￿",C[A+1]="G",I[A+1]="￿",D[A+1]="G"):(E[A+1]=g,C[A+1]=g,I[A+1]=g,D[A+1]=g),A++);return{A0_G0:E.join(""),A0_G1:C.join(""),A1_G0:I.join(""),A1_G1:D.join("")}}resolveAnchors(A,B){return this.hasAnchor&&this._anchorCache?A?B?this._anchorCache.A1_G1:this._anchorCache.A1_G0:B?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source}}class sA{constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(A){this._items.push(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}unshift(A){this._items.unshift(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}length(){return this._items.length}setSource(A,B){this._items[A].source!==B&&(this._disposeCaches(),this._items[A].setSource(B))}compile(A){if(!this._cached){let B=this._items.map((A=>A.source));this._cached=new eA(A,B,this._items.map((A=>A.ruleId)))}return this._cached}compileAG(A,B,Q){return this._hasAnchors?B?Q?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G0):Q?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G0):this.compile(A)}_resolveAnchors(A,B,Q){let g=this._items.map((A=>A.resolveAnchors(B,Q)));return new eA(A,g,this._items.map((A=>A.ruleId)))}}class eA{constructor(A,B,Q){this.regExps=B,this.rules=Q,this.scanner=A.createOnigScanner(B)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const A=[];for(let B=0,Q=this.rules.length;B<Q;B++)A.push(" - "+this.rules[B]+": "+this.regExps[B]);return A.join("\n")}findNextMatchSync(A,B,Q){const g=this.scanner.findNextMatchSync(A,B,Q);return g?{ruleId:this.rules[g.index],captureIndices:g.captureIndices}:null}}class cA{constructor(A,B,Q){this._colorMap=A,this._defaults=B,this._root=Q,this._cachedMatchRoot=new f((A=>this._root.match(A)))}static createFromRawTheme(A,B){return this.createFromParsedTheme(function(A){if(!A)return[];if(!A.settings||!Array.isArray(A.settings))return[];let B=A.settings,Q=[],g=0;for(let A=0,E=B.length;A<E;A++){let E,C=B[A];if(!C.settings)continue;if("string"==typeof C.scope){let A=C.scope;A=A.replace(/^[,]+/,""),A=A.replace(/[,]+$/,""),E=A.split(",")}else E=Array.isArray(C.scope)?C.scope:[""];let I=-1;if("string"==typeof C.settings.fontStyle){I=0;let A=C.settings.fontStyle.split(" ");for(let B=0,Q=A.length;B<Q;B++)switch(A[B]){case"italic":I|=1;break;case"bold":I|=2;break;case"underline":I|=4;break;case"strikethrough":I|=8}}let D=null;"string"==typeof C.settings.foreground&&l(C.settings.foreground)&&(D=C.settings.foreground);let w=null;"string"==typeof C.settings.background&&l(C.settings.background)&&(w=C.settings.background);for(let B=0,C=E.length;B<C;B++){let C=E[B].trim().split(" "),o=C[C.length-1],s=null;C.length>1&&(s=C.slice(0,C.length-1),s.reverse()),Q[g++]=new aA(o,s,A,I,D,w)}}return Q}(A),B)}static createFromParsedTheme(A,B){return function(A,B){A.sort(((A,B)=>{let Q=S(A.scope,B.scope);return 0!==Q?Q:(Q=p(A.parentScopes,B.parentScopes),0!==Q?Q:A.index-B.index)}));let Q=0,g="#000000",E="#ffffff";for(;A.length>=1&&""===A[0].scope;){let B=A.shift();-1!==B.fontStyle&&(Q=B.fontStyle),null!==B.foreground&&(g=B.foreground),null!==B.background&&(E=B.background)}let C=new hA(B),I=new MA(Q,C.getId(g),C.getId(E)),D=new FA(new nA(0,null,-1,0,0),[]);for(let B=0,Q=A.length;B<Q;B++){let Q=A[B];D.insert(0,Q.scope,Q.parentScopes,Q.fontStyle,C.getId(Q.foreground),C.getId(Q.background))}return new cA(C,I,D)}(A,B)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(A){if(null===A)return this._defaults;const B=A.scopeName,Q=this._cachedMatchRoot.get(B).find((B=>function(A,B){if(null===B)return!0;let Q=0,g=B[Q];for(;A;){if(tA(A.scopeName,g)){if(Q++,Q===B.length)return!0;g=B[Q]}A=A.parent}return!1}(A.parent,B.parentScopes)));return Q?new MA(Q.fontStyle,Q.foreground,Q.background):null}}class iA{constructor(A,B){this.parent=A,this.scopeName=B}static push(A,B){for(const Q of B)A=new iA(A,Q);return A}static from(...A){let B=null;for(let Q=0;Q<A.length;Q++)B=new iA(B,A[Q]);return B}push(A){return new iA(this,A)}getSegments(){let A=this;const B=[];for(;A;)B.push(A.scopeName),A=A.parent;return B.reverse(),B}toString(){return this.getSegments().join(" ")}extends(A){return this===A||null!==this.parent&&this.parent.extends(A)}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push(Q.scopeName),Q=Q.parent;return Q===A?B.reverse():void 0}}function tA(A,B){return B===A||A.startsWith(B)&&"."===A[B.length]}class MA{constructor(A,B,Q){this.fontStyle=A,this.foregroundId=B,this.backgroundId=Q}}class aA{constructor(A,B,Q,g,E,C){this.scope=A,this.parentScopes=B,this.index=Q,this.fontStyle=g,this.foreground=E,this.background=C}}class hA{constructor(A){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(A)){this._isFrozen=!0;for(let B=0,Q=A.length;B<Q;B++)this._color2id[A[B]]=B,this._id2color[B]=A[B]}else this._isFrozen=!1}getId(A){if(null===A)return 0;A=A.toUpperCase();let B=this._color2id[A];if(B)return B;if(this._isFrozen)throw new Error(`Missing color in color map - ${A}`);return B=++this._lastColorId,this._color2id[A]=B,this._id2color[B]=A,B}getColorMap(){return this._id2color.slice(0)}}class nA{constructor(A,B,Q,g,E){this.scopeDepth=A,this.parentScopes=B,this.fontStyle=Q,this.foreground=g,this.background=E}clone(){return new nA(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=A[Q].clone();return B}acceptOverwrite(A,B,Q,g){this.scopeDepth>A?console.log("how did this happen?"):this.scopeDepth=A,-1!==B&&(this.fontStyle=B),0!==Q&&(this.foreground=Q),0!==g&&(this.background=g)}}class FA{constructor(A,B=[],Q={}){this._mainRule=A,this._children=Q,this._rulesWithParentScopes=B}static _sortBySpecificity(A){return 1===A.length||A.sort(this._cmpBySpecificity),A}static _cmpBySpecificity(A,B){if(A.scopeDepth===B.scopeDepth){const Q=A.parentScopes,g=B.parentScopes;let E=null===Q?0:Q.length,C=null===g?0:g.length;if(E===C)for(let A=0;A<E;A++){const B=Q[A].length,E=g[A].length;if(B!==E)return E-B}return C-E}return B.scopeDepth-A.scopeDepth}match(A){if(""===A)return FA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));let B,Q,g=A.indexOf(".");return-1===g?(B=A,Q=""):(B=A.substring(0,g),Q=A.substring(g+1)),this._children.hasOwnProperty(B)?this._children[B].match(Q):FA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))}insert(A,B,Q,g,E,C){if(""===B)return void this._doInsertHere(A,Q,g,E,C);let I,D,w,o=B.indexOf(".");-1===o?(I=B,D=""):(I=B.substring(0,o),D=B.substring(o+1)),this._children.hasOwnProperty(I)?w=this._children[I]:(w=new FA(this._mainRule.clone(),nA.cloneArr(this._rulesWithParentScopes)),this._children[I]=w),w.insert(A+1,D,Q,g,E,C)}_doInsertHere(A,B,Q,g,E){if(null!==B){for(let C=0,I=this._rulesWithParentScopes.length;C<I;C++){let I=this._rulesWithParentScopes[C];if(0===p(I.parentScopes,B))return void I.acceptOverwrite(A,Q,g,E)}-1===Q&&(Q=this._mainRule.fontStyle),0===g&&(g=this._mainRule.foreground),0===E&&(E=this._mainRule.background),this._rulesWithParentScopes.push(new nA(A,B,Q,g,E))}else this._mainRule.acceptOverwrite(A,Q,g,E)}}class rA{constructor(A,B){this.languageId=A,this.tokenType=B}}class GA{constructor(A,B){this._getBasicScopeAttributes=new f((A=>{const B=this._scopeToLanguage(A),Q=this._toStandardTokenType(A);return new rA(B,Q)})),this._defaultAttributes=new rA(A,8),this._embeddedLanguagesMatcher=new NA(Object.entries(B||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(A){return null===A?GA._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(A)}_scopeToLanguage(A){return this._embeddedLanguagesMatcher.match(A)||0}_toStandardTokenType(A){const B=A.match(GA.STANDARD_TOKEN_TYPE_REGEXP);if(!B)return 8;switch(B[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}GA._NULL_SCOPE_METADATA=new rA(0,0),GA.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class NA{constructor(A){if(0===A.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(A);const B=A.map((([A,B])=>d(A)));B.sort(),B.reverse(),this.scopesRegExp=new RegExp(`^((${B.join(")|(")}))($|\\.)`,"")}}match(A){if(!this.scopesRegExp)return;const B=A.match(this.scopesRegExp);return B?this.values.get(B[1]):void 0}}class LA{constructor(A,B){this.stack=A,this.stoppedEarly=B}}function HA(A,B,Q,g,E,C,I,D){const w=B.content.length;let o=!1,s=-1;if(I){const I=function(A,B,Q,g,E,C){let I=E.beginRuleCapturedEOL?0:-1;const D=[];for(let B=E;B;B=B.pop()){const Q=B.getRule(A);Q instanceof DA&&D.push({rule:Q,stack:B})}for(let w=D.pop();w;w=D.pop()){const{ruleScanner:D,findOptions:o}=RA(w.rule,A,w.stack.endRule,Q,g===I),s=D.findNextMatchSync(B,g,o);if(H&&(console.log(" scanning for while rule"),console.log(D.toString())),!s){H&&console.log(" popping "+w.rule.debugName+" - "+w.rule.debugWhileRegExp),E=w.stack.pop();break}if(-2!==s.ruleId){E=w.stack.pop();break}s.captureIndices&&s.captureIndices.length&&(C.produce(w.stack,s.captureIndices[0].start),KA(A,B,Q,w.stack,C,w.rule.whileCaptures,s.captureIndices),C.produce(w.stack,s.captureIndices[0].end),I=s.captureIndices[0].end,s.captureIndices[0].end>g&&(g=s.captureIndices[0].end,Q=!1))}return{stack:E,linePos:g,anchorPosition:I,isFirstLine:Q}}(A,B,Q,g,E,C);E=I.stack,g=I.linePos,Q=I.isFirstLine,s=I.anchorPosition}const e=Date.now();for(;!o;){if(0!==D&&Date.now()-e>D)return new LA(E,!0);c()}return new LA(E,!1);function c(){H&&(console.log(""),console.log(`@@scanNext ${g}: |${B.content.substr(g).replace(/\n$/,"\\n")}|`));const I=function(A,B,Q,g,E,C){const I=function(A,B,Q,g,E,C){const I=E.getRule(A),{ruleScanner:D,findOptions:w}=kA(I,A,E.endRule,Q,g===C);let o=0;H&&(o=x());const s=D.findNextMatchSync(B,g,w);if(H){const A=x()-o;A>5&&console.warn(`Rule ${I.debugName} (${I.id}) matching took ${A} against '${B}'`),console.log(` scanning for (linePos: ${g}, anchorPosition: ${C})`),console.log(D.toString()),s&&console.log(`matched rule id: ${s.ruleId} from ${s.captureIndices[0].start} to ${s.captureIndices[0].end}`)}return s?{captureIndices:s.captureIndices,matchedRuleId:s.ruleId}:null}(A,B,Q,g,E,C),D=A.getInjections();if(0===D.length)return I;const w=function(A,B,Q,g,E,C,I){let D,w=Number.MAX_VALUE,o=null,s=0;const e=C.contentNameScopesList.getScopeNames();for(let C=0,c=A.length;C<c;C++){const c=A[C];if(!c.matcher(e))continue;const i=B.getRule(c.ruleId),{ruleScanner:t,findOptions:M}=kA(i,B,null,g,E===I),a=t.findNextMatchSync(Q,E,M);if(!a)continue;H&&(console.log(` matched injection: ${c.debugSelector}`),console.log(t.toString()));const h=a.captureIndices[0].start;if(!(h>=w)&&(w=h,o=a.captureIndices,D=a.ruleId,s=c.priority,w===E))break}return o?{priorityMatch:-1===s,captureIndices:o,matchedRuleId:D}:null}(D,A,B,Q,g,E,C);if(!w)return I;if(!I)return w;const o=I.captureIndices[0].start,s=w.captureIndices[0].start;return s<o||w.priorityMatch&&s===o?w:I}(A,B,Q,g,E,s);if(!I)return H&&console.log(" no more matches."),C.produce(E,w),void(o=!0);const D=I.captureIndices,e=I.matchedRuleId,c=!!(D&&D.length>0)&&D[0].end>g;if(-1===e){const I=E.getRule(A);H&&console.log(" popping "+I.debugName+" - "+I.debugEndRegExp),C.produce(E,D[0].start),E=E.withContentNameScopesList(E.nameScopesList),KA(A,B,Q,E,C,I.endCaptures,D),C.produce(E,D[0].end);const e=E;if(E=E.parent,s=e.getAnchorPos(),!c&&e.getEnterPos()===g)return H&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),E=e,C.produce(E,w),void(o=!0)}else{const I=A.getRule(e);C.produce(E,D[0].start);const i=E,t=I.getName(B.content,D),M=E.contentNameScopesList.pushAttributed(t,A);if(E=E.push(e,g,s,D[0].end===w,null,M,M),I instanceof IA){const g=I;H&&console.log(" pushing "+g.debugName+" - "+g.debugBeginRegExp),KA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.endHasBackReferences&&(E=E.withEndRule(g.getEndWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return H&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else if(I instanceof DA){const g=I;H&&console.log(" pushing "+g.debugName),KA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=M.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.whileHasBackReferences&&(E=E.withEndRule(g.getWhileWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return H&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else{const g=I;if(H&&console.log(" matched "+g.debugName+" - "+g.debugMatchRegExp),KA(A,B,Q,E,C,g.captures,D),C.produce(E,D[0].end),E=E.pop(),!c)return H&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),E=E.safePop(),C.produce(E,w),void(o=!0)}}D[0].end>g&&(g=D[0].end,Q=!1)}}function kA(A,B,Q,g,E){return{ruleScanner:A.compileAG(B,Q,g,E),findOptions:0}}function RA(A,B,Q,g,E){return{ruleScanner:A.compileWhileAG(B,Q,g,E),findOptions:0}}function KA(A,B,Q,g,E,C,I){if(0===C.length)return;const D=B.content,w=Math.min(C.length,I.length),o=[],s=I[0].end;for(let B=0;B<w;B++){const w=C[B];if(null===w)continue;const e=I[B];if(0===e.length)continue;if(e.start>s)break;for(;o.length>0&&o[o.length-1].endPos<=e.start;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop();if(o.length>0?E.produceFromScopes(o[o.length-1].scopes,e.start):E.produce(g,e.start),w.retokenizeCapturedWithRuleId){const B=w.getName(D,I),C=g.contentNameScopesList.pushAttributed(B,A),o=w.getContentName(D,I),s=C.pushAttributed(o,A),c=g.push(w.retokenizeCapturedWithRuleId,e.start,-1,!1,null,C,s),i=A.createOnigString(D.substring(0,e.end));HA(A,i,Q&&0===e.start,e.start,c,E,!1,0),Y(i);continue}const c=w.getName(D,I);if(null!==c){const B=(o.length>0?o[o.length-1].scopes:g.contentNameScopesList).pushAttributed(c,A);o.push(new YA(B,e.end))}}for(;o.length>0;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop()}class YA{constructor(A,B){this.scopes=A,this.endPos=B}}function UA(A,B,Q,g,E){const C=R(B,uA),I=wA.getCompiledRuleId(Q,g,E.repository);for(const Q of C)A.push({debugSelector:B,matcher:Q.matcher,ruleId:I,grammar:E,priority:Q.priority})}function uA(A,B){if(B.length<A.length)return!1;let Q=0;return A.every((A=>{for(let g=Q;g<B.length;g++)if(PA(B[g],A))return Q=g+1,!0;return!1}))}function PA(A,B){if(!A)return!1;if(A===B)return!0;const Q=B.length;return A.length>Q&&A.substr(0,Q)===B&&"."===A[Q]}class yA{constructor(A,B,Q,g,E,C,I,D){if(this._rootScopeName=A,this.balancedBracketSelectors=C,this._onigLib=D,this._basicScopeAttributesProvider=new GA(Q,g),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=I,this._grammar=JA(B,null),this._injections=null,this._tokenTypeMatchers=[],E)for(const A of Object.keys(E)){const B=R(A,uA);for(const Q of B)this._tokenTypeMatchers.push({matcher:Q.matcher,type:E[A]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const A of this._ruleId2desc)A&&A.dispose()}createOnigScanner(A){return this._onigLib.createOnigScanner(A)}createOnigString(A){return this._onigLib.createOnigString(A)}getMetadataForScope(A){return this._basicScopeAttributesProvider.getBasicScopeAttributes(A)}_collectInjections(){const A=[],B=this._rootScopeName,Q=(A=>A===this._rootScopeName?this._grammar:this.getExternalGrammar(A))(B);if(Q){const g=Q.injections;if(g)for(let B in g)UA(A,B,g[B],this,Q);const E=this._grammarRepository.injections(B);E&&E.forEach((B=>{const Q=this.getExternalGrammar(B);if(Q){const B=Q.injectionSelector;B&&UA(A,B,Q,this,Q)}}))}return A.sort(((A,B)=>A.priority-B.priority)),A}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),H&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const A of this._injections)console.log(` - ${A.debugSelector}`)}return this._injections}registerRule(A){const B=++this._lastRuleId,Q=A(B);return this._ruleId2desc[B]=Q,Q}getRule(A){return this._ruleId2desc[A]}getExternalGrammar(A,B){if(this._includedGrammars[A])return this._includedGrammars[A];if(this._grammarRepository){const Q=this._grammarRepository.lookup(A);if(Q)return this._includedGrammars[A]=JA(Q,B&&B.$base),this._includedGrammars[A]}}tokenizeLine(A,B,Q=0){const g=this._tokenize(A,B,!1,Q);return{tokens:g.lineTokens.getResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}tokenizeLine2(A,B,Q=0){const g=this._tokenize(A,B,!0,Q);return{tokens:g.lineTokens.getBinaryResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}_tokenize(A,B,Q,g){let E;if(-1===this._rootId&&(this._rootId=wA.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),B&&B!==pA.NULL)E=!1,B.reset();else{E=!0;const A=this._basicScopeAttributesProvider.getDefaultAttributes(),Q=this.themeProvider.getDefaults(),g=k.set(0,A.languageId,A.tokenType,null,Q.fontStyle,Q.foregroundId,Q.backgroundId),C=this.getRule(this._rootId).getName(null,null);let I;I=C?SA.createRootAndLookUpScopeName(C,g,this):SA.createRoot("unknown",g),B=new pA(null,this._rootId,-1,-1,!1,null,I,I)}A+="\n";const C=this.createOnigString(A),I=C.content.length,D=new dA(Q,A,this._tokenTypeMatchers,this.balancedBracketSelectors),w=HA(this,C,E,0,B,D,!0,g);return Y(C),{lineLength:I,lineTokens:D,ruleStack:w.stack,stoppedEarly:w.stoppedEarly}}}function JA(A,B){return(A=U(A)).repository=A.repository||{},A.repository.$self={$vscodeTextmateLocation:A.$vscodeTextmateLocation,patterns:A.patterns,name:A.scopeName},A.repository.$base=B||A.repository.$self,A}class SA{constructor(A,B,Q){this.parent=A,this.scopePath=B,this.tokenAttributes=Q}static fromExtension(A,B){let Q=A,g=A?.scopePath??null;for(const A of B)g=iA.push(g,A.scopeNames),Q=new SA(Q,g,A.encodedTokenAttributes);return Q}static createRoot(A,B){return new SA(null,new iA(null,A),B)}static createRootAndLookUpScopeName(A,B,Q){const g=Q.getMetadataForScope(A),E=new iA(null,A),C=Q.themeProvider.themeMatch(E),I=SA.mergeAttributes(B,g,C);return new SA(null,E,I)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(A){return SA.equals(this,A)}static equals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.scopeName!==B.scopeName||A.tokenAttributes!==B.tokenAttributes)return!1;A=A.parent,B=B.parent}}static mergeAttributes(A,B,Q){let g=-1,E=0,C=0;return null!==Q&&(g=Q.fontStyle,E=Q.foregroundId,C=Q.backgroundId),k.set(A,B.languageId,B.tokenType,null,g,E,C)}pushAttributed(A,B){if(null===A)return this;if(-1===A.indexOf(" "))return SA._pushAttributed(this,A,B);const Q=A.split(/ /g);let g=this;for(const A of Q)g=SA._pushAttributed(g,A,B);return g}static _pushAttributed(A,B,Q){const g=Q.getMetadataForScope(B),E=A.scopePath.push(B),C=Q.themeProvider.themeMatch(E),I=SA.mergeAttributes(A.tokenAttributes,g,C);return new SA(A,E,I)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push({encodedTokenAttributes:Q.tokenAttributes,scopeNames:Q.scopePath.getExtensionIfDefined(Q.parent?.scopePath??null)}),Q=Q.parent;return Q===A?B.reverse():void 0}}class pA{constructor(A,B,Q,g,E,C,I,D){this.parent=A,this.ruleId=B,this.beginRuleCapturedEOL=E,this.endRule=C,this.nameScopesList=I,this.contentNameScopesList=D,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=Q,this._anchorPos=g}equals(A){return null!==A&&pA._equals(this,A)}static _equals(A,B){return A===B||!!this._structuralEquals(A,B)&&SA.equals(A.contentNameScopesList,B.contentNameScopesList)}static _structuralEquals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.depth!==B.depth||A.ruleId!==B.ruleId||A.endRule!==B.endRule)return!1;A=A.parent,B=B.parent}}clone(){return this}static _reset(A){for(;A;)A._enterPos=-1,A._anchorPos=-1,A=A.parent}reset(){pA._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(A,B,Q,g,E,C,I){return new pA(this,A,B,Q,g,E,C,I)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(A){return A.getRule(this.ruleId)}toString(){const A=[];return this._writeString(A,0),"["+A.join(",")+"]"}_writeString(A,B){return this.parent&&(B=this.parent._writeString(A,B)),A[B++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,B}withContentNameScopesList(A){return this.contentNameScopesList===A?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,A)}withEndRule(A){return this.endRule===A?this:new pA(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,A,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(A){let B=this;for(;B&&B._enterPos===A._enterPos;){if(B.ruleId===A.ruleId)return!0;B=B.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(A,B){const Q=SA.fromExtension(A?.nameScopesList??null,B.nameScopesList);return new pA(A,B.ruleId,B.enterPos??-1,B.anchorPos??-1,B.beginRuleCapturedEOL,B.endRule,Q,SA.fromExtension(Q,B.contentNameScopesList))}}pA.NULL=new pA(null,0,0,0,!1,null,null,null);class lA{constructor(A,B){this.allowAny=!1,this.balancedBracketScopes=A.flatMap((A=>"*"===A?(this.allowAny=!0,[]):R(A,uA).map((A=>A.matcher)))),this.unbalancedBracketScopes=B.flatMap((A=>R(A,uA).map((A=>A.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(A){for(const B of this.unbalancedBracketScopes)if(B(A))return!1;for(const B of this.balancedBracketScopes)if(B(A))return!0;return this.allowAny}}class dA{constructor(A,B,Q,g){this.balancedBracketSelectors=g,this._emitBinaryTokens=A,this._tokenTypeOverrides=Q,this._lineText=H?B:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(A,B){this.produceFromScopes(A.contentNameScopesList,B)}produceFromScopes(A,B){if(this._lastTokenEndIndex>=B)return;if(this._emitBinaryTokens){let Q=A?.tokenAttributes??0,g=!1;if(this.balancedBracketSelectors?.matchesAlways&&(g=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const B=A?.getScopeNames()??[];for(const A of this._tokenTypeOverrides)A.matcher(B)&&(Q=k.set(Q,0,A.type,null,-1,0,0));this.balancedBracketSelectors&&(g=this.balancedBracketSelectors.match(B))}if(g&&(Q=k.set(Q,0,8,g,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===Q)return void(this._lastTokenEndIndex=B);if(H){const Q=A?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(Q),void(this._lastTokenEndIndex=B)}const Q=A?.getScopeNames()??[];if(H){console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:B,scopes:Q}),this._lastTokenEndIndex=B}getResult(A,B){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===B-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(A,B){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===B-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._binaryTokens[this._binaryTokens.length-2]=0);const Q=new Uint32Array(this._binaryTokens.length);for(let A=0,B=this._binaryTokens.length;A<B;A++)Q[A]=this._binaryTokens[A];return Q}}function fA(A,B,Q){const g=A.length;let E=0,C=1,I=0;function D(B){if(null===Q)E+=B;else for(;B>0;)10===A.charCodeAt(E)?(E++,C++,I=0):(E++,I++),B--}function w(A){null===Q?E=A:D(A-E)}function o(){for(;E<g;){let B=A.charCodeAt(E);if(32!==B&&9!==B&&13!==B&&10!==B)break;D(1)}}function s(B){return A.substr(E,B.length)===B&&(D(B.length),!0)}function e(B){let Q=A.indexOf(B,E);w(-1!==Q?Q+B.length:g)}function c(B){let Q=A.indexOf(B,E);if(-1!==Q){let g=A.substring(E,Q);return w(Q+B.length),g}{let B=A.substr(E);return w(g),B}}g>0&&65279===A.charCodeAt(0)&&(E=1);let i=0,t=null,M=[],a=[],h=null;function n(A,B){M.push(i),a.push(t),i=A,t=B}function F(){if(0===M.length)return r("illegal state stack");i=M.pop(),t=a.pop()}function r(B){throw new Error("Near offset "+E+": "+B+" ~~~"+A.substr(E,50)+"~~~")}const G=function(){if(null===h)return r("missing <key>");let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t[h]=A,h=null,n(1,A)},N=function(){if(null===h)return r("missing <key>");let A=[];t[h]=A,h=null,n(2,A)},L=function(){let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t.push(A),n(1,A)},H=function(){let A=[];t.push(A),n(2,A)};function k(){if(1!==i)return r("unexpected </dict>");F()}function R(){return 1===i||2!==i?r("unexpected </array>"):void F()}function K(A){if(1===i){if(null===h)return r("missing <key>");t[h]=A,h=null}else 2===i?t.push(A):t=A}function Y(A){if(isNaN(A))return r("cannot parse float");if(1===i){if(null===h)return r("missing <key>");t[h]=A,h=null}else 2===i?t.push(A):t=A}function U(A){if(isNaN(A))return r("cannot parse integer");if(1===i){if(null===h)return r("missing <key>");t[h]=A,h=null}else 2===i?t.push(A):t=A}function u(A){if(1===i){if(null===h)return r("missing <key>");t[h]=A,h=null}else 2===i?t.push(A):t=A}function P(A){if(1===i){if(null===h)return r("missing <key>");t[h]=A,h=null}else 2===i?t.push(A):t=A}function y(A){if(1===i){if(null===h)return r("missing <key>");t[h]=A,h=null}else 2===i?t.push(A):t=A}function J(){let A=c(">"),B=!1;return 47===A.charCodeAt(A.length-1)&&(B=!0,A=A.substring(0,A.length-1)),{name:A.trim(),isClosed:B}}function S(A){if(A.isClosed)return"";let B=c("</");return e(">"),B.replace(/&#([0-9]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,10))})).replace(/&#x([0-9a-f]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,16))})).replace(/&|<|>|"|'/g,(function(A){switch(A){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return A}))}for(;E<g&&(o(),!(E>=g));){const w=A.charCodeAt(E);if(D(1),60!==w)return r("expected <");if(E>=g)return r("unexpected end of input");const c=A.charCodeAt(E);if(63===c){D(1),e("?>");continue}if(33===c){if(D(1),s("--")){e("--\x3e");continue}e(">");continue}if(47===c){if(D(1),o(),s("plist")){e(">");continue}if(s("dict")){e(">"),k();continue}if(s("array")){e(">"),R();continue}return r("unexpected closed tag")}let M=J();switch(M.name){case"dict":1===i?G():2===i?L():(t={},null!==Q&&(t[Q]={filename:B,line:C,char:I}),n(1,t)),M.isClosed&&k();continue;case"array":1===i?N():2===i?H():(t=[],n(2,t)),M.isClosed&&R();continue;case"key":p=S(M),1!==i?r("unexpected <key>"):null!==h?r("too many <key>"):h=p;continue;case"string":K(S(M));continue;case"real":Y(parseFloat(S(M)));continue;case"integer":U(parseInt(S(M),10));continue;case"date":u(new Date(S(M)));continue;case"data":P(S(M));continue;case"true":S(M),y(!0);continue;case"false":S(M),y(!1);continue}if(!/^plist/.test(M.name))return r("unexpected opened tag "+M.name)}var p;return t}function xA(A,B){throw new Error("Near offset "+A.pos+": "+B+" ~~~"+A.source.substr(A.pos,50)+"~~~")}class mA{constructor(A){this.source=A,this.pos=0,this.len=A.length,this.line=1,this.char=0}}class OA{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(A){return{filename:A,line:this.line,char:this.char}}}function qA(A,B){B.value=null,B.type=0,B.offset=-1,B.len=-1,B.line=-1,B.char=-1;let Q,g=A.source,E=A.pos,C=A.len,I=A.line,D=A.char;for(;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),32!==Q&&9!==Q&&13!==Q){if(10!==Q)break;E++,I++,D=0}else E++,D++}if(B.offset=E,B.line=I,B.char=D,34===Q){for(B.type=1,E++,D++;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),E++,D++,92!==Q){if(34===Q)break}else E++,D++}B.value=g.substring(B.offset+1,E-1).replace(/\\u([0-9A-Fa-f]{4})/g,((A,B)=>String.fromCodePoint(parseInt(B,16)))).replace(/\\(.)/g,((B,Q)=>{switch(Q){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:xA(A,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===Q)B.type=2,E++,D++;else if(123===Q)B.type=3,E++,D++;else if(93===Q)B.type=4,E++,D++;else if(125===Q)B.type=5,E++,D++;else if(58===Q)B.type=6,E++,D++;else if(44===Q)B.type=7,E++,D++;else if(110===Q){if(B.type=8,E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;E++,D++}else if(116===Q){if(B.type=9,E++,D++,Q=g.charCodeAt(E),114!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else if(102===Q){if(B.type=10,E++,D++,Q=g.charCodeAt(E),97!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),115!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else for(B.type=11;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),!(46===Q||Q>=48&&Q<=57||101===Q||69===Q||45===Q||43===Q))break;E++,D++}return B.len=E-B.offset,null===B.value&&(B.value=g.substr(B.offset,B.len)),A.pos=E,A.line=I,A.char=D,!0}class bA{constructor(A,B){this._onigLibPromise=B,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=A}dispose(){for(const A of this._grammars.values())A.dispose()}setTheme(A){this._theme=A}getColorMap(){return this._theme.getColorMap()}addGrammar(A,B){this._rawGrammars.set(A.scopeName,A),B&&this._injectionGrammars.set(A.scopeName,B)}lookup(A){return this._rawGrammars.get(A)}injections(A){return this._injectionGrammars.get(A)}getDefaults(){return this._theme.getDefaults()}themeMatch(A){return this._theme.match(A)}async grammarForScopeName(A,B,Q,g,E){if(!this._grammars.has(A)){let C=this._rawGrammars.get(A);if(!C)return null;this._grammars.set(A,function(A,B,Q,g,E,C,I,D){return new yA(A,B,Q,g,E,C,I,D)}(A,C,B,Q,g,E,this,await this._onigLibPromise))}return this._grammars.get(A)}}function WA(A,B){let Q=0;const g=[];let E=A,C=B;for(;E!==C;)E&&(!C||E.depth>=C.depth)?(Q++,E=E.parent):(g.push(C.toStateStackFrame()),C=C.parent);return{pops:Q,newFrames:g.reverse()}}function TA(A,B){let Q=A;for(let A=0;A<B.pops;A++)Q=Q.parent;for(const A of B.newFrames)Q=pA.pushFrame(Q,A);return Q}class vA{constructor(A){this._options=A,this._syncRegistry=new bA(cA.createFromRawTheme(A.theme,A.colorMap),A.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(A,B){this._syncRegistry.setTheme(cA.createFromRawTheme(A,B))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(A,B,Q){return this.loadGrammarWithConfiguration(A,B,{embeddedLanguages:Q})}loadGrammarWithConfiguration(A,B,Q){return this._loadGrammar(A,B,Q.embeddedLanguages,Q.tokenTypes,new lA(Q.balancedBracketSelectors||[],Q.unbalancedBracketSelectors||[]))}loadGrammar(A){return this._loadGrammar(A,0,null,null,null)}async _loadGrammar(A,B,Q,g,E){const C=new b(this._syncRegistry,A);for(;C.Q.length>0;)await Promise.all(C.Q.map((A=>this._loadSingleGrammar(A.scopeName)))),C.processQueue();return this._grammarForScopeName(A,B,Q,g,E)}async _loadSingleGrammar(A){return this._ensureGrammarCache.has(A)||this._ensureGrammarCache.set(A,this._doLoadSingleGrammar(A)),this._ensureGrammarCache.get(A)}async _doLoadSingleGrammar(A){const B=await this._options.loadGrammar(A);if(B){const Q="function"==typeof this._options.getInjections?this._options.getInjections(A):void 0;this._syncRegistry.addGrammar(B,Q)}}async addGrammar(A,B=[],Q=0,g=null){return this._syncRegistry.addGrammar(A,B),await this._grammarForScopeName(A.scopeName,Q,g)}_grammarForScopeName(A,B=0,Q=null,g=null,E=null){return this._syncRegistry.grammarForScopeName(A,B,Q,g,E)}}const XA=pA.NULL,ZA=function(A,B=null){return null!==B&&/\.json$/.test(B)?(Q=A,H?function(A,B,Q){let g=new mA(A),E=new OA,C=0,I=null,D=[],w=[];function o(){D.push(C),w.push(I)}function s(){C=D.pop(),I=w.pop()}function e(A){xA(g,A)}for(;qA(g,E);){if(0===C){if(null!==I&&e("too many constructs in root"),3===E.type){I={},I.$vscodeTextmateLocation=E.toLocation(B),o(),C=1;continue}if(2===E.type){I=[],o(),C=4;continue}e("unexpected token in root")}if(2===C){if(5===E.type){s();continue}if(7===E.type){C=3;continue}e("expected , or }")}if(1===C||3===C){if(1===C&&5===E.type){s();continue}if(1===E.type){let A=E.value;if(qA(g,E)&&6===E.type||e("expected colon"),qA(g,E)||e("expected value"),C=2,1===E.type){I[A]=E.value;continue}if(8===E.type){I[A]=null;continue}if(9===E.type){I[A]=!0;continue}if(10===E.type){I[A]=!1;continue}if(11===E.type){I[A]=parseFloat(E.value);continue}if(2===E.type){let B=[];I[A]=B,o(),C=4,I=B;continue}if(3===E.type){let Q={};Q.$vscodeTextmateLocation=E.toLocation(B),I[A]=Q,o(),C=1,I=Q;continue}}e("unexpected token in dict")}if(5===C){if(4===E.type){s();continue}if(7===E.type){C=6;continue}e("expected , or ]")}if(4===C||6===C){if(4===C&&4===E.type){s();continue}if(C=5,1===E.type){I.push(E.value);continue}if(8===E.type){I.push(null);continue}if(9===E.type){I.push(!0);continue}if(10===E.type){I.push(!1);continue}if(11===E.type){I.push(parseFloat(E.value));continue}if(2===E.type){let A=[];I.push(A),o(),C=4,I=A;continue}if(3===E.type){let A={};A.$vscodeTextmateLocation=E.toLocation(B),I.push(A),o(),C=1,I=A;continue}e("unexpected token in array")}e("unknown state")}return 0!==w.length&&e("unclosed constructs"),I}(Q,B):JSON.parse(Q)):function(A,B){return H?function(A,B,Q){return fA(A,B,"$vscodeTextmateLocation")}(A,B):function(A){return fA(A,null,null)}(A)}(A,B);var Q};var jA=L.Bz,VA=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(A){var B,Q,g=void 0!==(A=A||{})?A:{};g.ready=new Promise((function(A,g){B=A,Q=g}));var E,C=Object.assign({},g),I=!1;E=function(A){let B;return"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(B=read(A,"binary"),"object"==typeof B||L(Q),B);var Q},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var D,w,o=g.print||console.log.bind(console),s=g.printErr||console.warn.bind(console);Object.assign(g,C),C=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(D=g.wasmBinary),g.noExitRuntime,"object"!=typeof WebAssembly&&L("no native wasm support detected");var e,c,i,t=!1,M="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(A,B,Q){for(var g=B+Q,E=B;A[E]&&!(E>=g);)++E;if(E-B>16&&A.buffer&&M)return M.decode(A.subarray(B,E));for(var C="";B<E;){var I=A[B++];if(128&I){var D=63&A[B++];if(192!=(224&I)){var w=63&A[B++];if((I=224==(240&I)?(15&I)<<12|D<<6|w:(7&I)<<18|D<<12|w<<6|63&A[B++])<65536)C+=String.fromCharCode(I);else{var o=I-65536;C+=String.fromCharCode(55296|o>>10,56320|1023&o)}}else C+=String.fromCharCode((31&I)<<6|D)}else C+=String.fromCharCode(I)}return C}function h(A){e=A,g.HEAP8=new Int8Array(A),g.HEAP16=new Int16Array(A),g.HEAP32=new Int32Array(A),g.HEAPU8=c=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=i=new Uint32Array(A),g.HEAPF32=new Float32Array(A),g.HEAPF64=new Float64Array(A)}g.INITIAL_MEMORY;var n=[],F=[],r=[],G=0,N=null;function L(A){g.onAbort&&g.onAbort(A),s(A="Aborted("+A+")"),t=!0,A+=". Build with -sASSERTIONS for more info.";var B=new WebAssembly.RuntimeError(A);throw Q(B),B}var H,k,R,K="data:application/octet-stream;base64,";function Y(A){return A.startsWith(K)}function U(A){try{if(A==H&&D)return new Uint8Array(D);if(E)return E(A);throw"both async and sync fetching of the wasm failed"}catch(A){L(A)}}function u(A){for(;A.length>0;)A.shift()(g)}function P(A){try{return w.grow(A-e.byteLength+65535>>>16),h(w.buffer),1}catch(A){}}Y(H="onig.wasm")||(k=H,H=g.locateFile?g.locateFile(k,""):""+k),R="undefined"!=typeof dateNow?dateNow:()=>performance.now();var y=[null,[],[]];function J(A,B){var Q=y[A];0===B||10===B?((1===A?o:s)(a(Q,0)),Q.length=0):Q.push(B)}var S,p={emscripten_get_now:R,emscripten_memcpy_big:function(A,B,Q){c.copyWithin(A,B,B+Q)},emscripten_resize_heap:function(A){var B=c.length,Q=2147483648;if((A>>>=0)>Q)return!1;let g=(A,B)=>A+(B-A%B)%B;for(var E=1;E<=4;E*=2){var C=B*(1+.2/E);if(C=Math.min(C,A+100663296),P(Math.min(Q,g(Math.max(A,C),65536))))return!0}return!1},fd_write:function(A,B,Q,g){for(var E=0,C=0;C<Q;C++){var I=i[B>>2],D=i[B+4>>2];B+=8;for(var w=0;w<D;w++)J(A,c[I+w]);E+=D}return i[g>>2]=E,0}};function l(A){function Q(){S||(S=!0,g.calledRun=!0,t||(u(F),B(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)A=g.postRun.shift(),r.unshift(A);var A;u(r)}()))}G>0||(function(){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)A=g.preRun.shift(),n.unshift(A);var A;u(n)}(),G>0||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),Q()}),1)):Q()))}if(function(){var A={env:p,wasi_snapshot_preview1:p};function B(A,B){var Q,E=A.exports;g.asm=E,h((w=g.asm.memory).buffer),g.asm.__indirect_function_table,Q=g.asm.__wasm_call_ctors,F.unshift(Q),function(A){if(G--,g.monitorRunDependencies&&g.monitorRunDependencies(G),0==G&&N){var B=N;N=null,B()}}()}function E(A){B(A.instance)}function C(B){return(!D&&I&&"function"==typeof fetch?fetch(H,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+H+"'";return A.arrayBuffer()})).catch((function(){return U(H)})):Promise.resolve().then((function(){return U(H)}))).then((function(B){return WebAssembly.instantiate(B,A)})).then((function(A){return A})).then(B,(function(A){s("failed to asynchronously prepare wasm: "+A),L(A)}))}if(G++,g.monitorRunDependencies&&g.monitorRunDependencies(G),g.instantiateWasm)try{return g.instantiateWasm(A,B)}catch(A){s("Module.instantiateWasm callback failed with error: "+A),Q(A)}(D||"function"!=typeof WebAssembly.instantiateStreaming||Y(H)||"function"!=typeof fetch?C(E):fetch(H,{credentials:"same-origin"}).then((function(B){return WebAssembly.instantiateStreaming(B,A).then(E,(function(A){return s("wasm streaming compile failed: "+A),s("falling back to ArrayBuffer instantiation"),C(E)}))}))).catch(Q)}(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.__wasm_call_ctors).apply(null,arguments)},g.___errno_location=function(){return(g.___errno_location=g.asm.__errno_location).apply(null,arguments)},g._omalloc=function(){return(g._omalloc=g.asm.omalloc).apply(null,arguments)},g._ofree=function(){return(g._ofree=g.asm.ofree).apply(null,arguments)},g._getLastOnigError=function(){return(g._getLastOnigError=g.asm.getLastOnigError).apply(null,arguments)},g._createOnigScanner=function(){return(g._createOnigScanner=g.asm.createOnigScanner).apply(null,arguments)},g._freeOnigScanner=function(){return(g._freeOnigScanner=g.asm.freeOnigScanner).apply(null,arguments)},g._findNextOnigScannerMatch=function(){return(g._findNextOnigScannerMatch=g.asm.findNextOnigScannerMatch).apply(null,arguments)},g._findNextOnigScannerMatchDbg=function(){return(g._findNextOnigScannerMatchDbg=g.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},g.stackSave=function(){return(g.stackSave=g.asm.stackSave).apply(null,arguments)},g.stackRestore=function(){return(g.stackRestore=g.asm.stackRestore).apply(null,arguments)},g.stackAlloc=function(){return(g.stackAlloc=g.asm.stackAlloc).apply(null,arguments)},g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.dynCall_jiji).apply(null,arguments)},g.UTF8ToString=function(A,B){return A?a(c,A,B):""},N=function A(){S||l(),S||(N=A)},g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return l(),A.ready});let zA=null;class _A{static _utf8ByteLength(A){let B=0;for(let Q=0,g=A.length;Q<g;Q++){const E=A.charCodeAt(Q);let C=E,I=!1;if(E>=55296&&E<=56319&&Q+1<g){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(C=65536+(E-55296<<10)|B-56320,I=!0)}B+=C<=127?1:C<=2047?2:C<=65535?3:4,I&&Q++}return B}constructor(A){const B=A.length,Q=_A._utf8ByteLength(A),g=Q!==B,E=g?new Uint32Array(B+1):null;g&&(E[B]=Q);const C=g?new Uint32Array(Q+1):null;g&&(C[Q]=B);const I=new Uint8Array(Q);let D=0;for(let Q=0;Q<B;Q++){const w=A.charCodeAt(Q);let o=w,s=!1;if(w>=55296&&w<=56319&&Q+1<B){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(o=65536+(w-55296<<10)|B-56320,s=!0)}g&&(E[Q]=D,s&&(E[Q+1]=D),o<=127?C[D+0]=Q:o<=2047?(C[D+0]=Q,C[D+1]=Q):o<=65535?(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q):(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q,C[D+3]=Q)),o<=127?I[D++]=o:o<=2047?(I[D++]=192|(1984&o)>>>6,I[D++]=128|(63&o)>>>0):o<=65535?(I[D++]=224|(61440&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0):(I[D++]=240|(1835008&o)>>>18,I[D++]=128|(258048&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0),s&&Q++}this.utf16Length=B,this.utf8Length=Q,this.utf16Value=A,this.utf8Value=I,this.utf16OffsetToUtf8=E,this.utf8OffsetToUtf16=C}createString(A){const B=A._omalloc(this.utf8Length);return A.HEAPU8.set(this.utf8Value,B),B}}class $A{constructor(A){if(this.id=++$A.LAST_ID,!zA)throw new Error("Must invoke loadWASM first.");this._onigBinding=zA,this.content=A;const B=new _A(A);this.utf16Length=B.utf16Length,this.utf8Length=B.utf8Length,this.utf16OffsetToUtf8=B.utf16OffsetToUtf8,this.utf8OffsetToUtf16=B.utf8OffsetToUtf16,this.utf8Length<1e4&&!$A._sharedPtrInUse?($A._sharedPtr||($A._sharedPtr=zA._omalloc(1e4)),$A._sharedPtrInUse=!0,zA.HEAPU8.set(B.utf8Value,$A._sharedPtr),this.ptr=$A._sharedPtr):this.ptr=B.createString(zA)}convertUtf8OffsetToUtf16(A){return this.utf8OffsetToUtf16?A<0?0:A>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[A]:A}convertUtf16OffsetToUtf8(A){return this.utf16OffsetToUtf8?A<0?0:A>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[A]:A}dispose(){this.ptr===$A._sharedPtr?$A._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}$A.LAST_ID=0,$A._sharedPtr=0,$A._sharedPtrInUse=!1;class AB{constructor(A){if(!zA)throw new Error("Must invoke loadWASM first.");const B=[],Q=[];for(let g=0,E=A.length;g<E;g++){const E=new _A(A[g]);B[g]=E.createString(zA),Q[g]=E.utf8Length}const g=zA._omalloc(4*A.length);zA.HEAPU32.set(B,g/4);const E=zA._omalloc(4*A.length);zA.HEAPU32.set(Q,E/4);const C=zA._createOnigScanner(g,E,A.length);for(let Q=0,g=A.length;Q<g;Q++)zA._ofree(B[Q]);zA._ofree(E),zA._ofree(g),0===C&&function(A){throw new Error(A.UTF8ToString(A._getLastOnigError()))}(zA),this._onigBinding=zA,this._ptr=C}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(A,B,Q){let g=false,E=0;if("number"==typeof Q?(8&Q&&(g=!0),E=Q):"boolean"==typeof Q&&(g=Q),"string"==typeof A){A=new $A(A);const Q=this._findNextMatchSync(A,B,g,E);return A.dispose(),Q}return this._findNextMatchSync(A,B,g,E)}_findNextMatchSync(A,B,Q,g){const E=this._onigBinding;let C;if(C=Q?E._findNextOnigScannerMatchDbg(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g):E._findNextOnigScannerMatch(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g),0===C)return null;const I=E.HEAPU32;let D=C/4;const w=I[D++],o=I[D++];let s=[];for(let B=0;B<o;B++){const Q=A.convertUtf8OffsetToUtf16(I[D++]),g=A.convertUtf8OffsetToUtf16(I[D++]);s[B]={start:Q,end:g,length:g-Q}}return{index:w,captureIndices:s}}}let BB=!1,QB=null;function gB(A){if(BB)return QB;let B,Q,g,E;if(BB=!0,function(A){return"function"==typeof A.instantiator}(A))B=A.instantiator,Q=A.print;else{let g;!function(A){return void 0!==A.data}(A)?g=A:(g=A.data,Q=A.print),B=function(A){return"undefined"!=typeof Response&&A instanceof Response}(g)?"function"==typeof WebAssembly.instantiateStreaming?function(A){return B=>WebAssembly.instantiateStreaming(A,B)}(g):function(A){return async B=>{const Q=await A.arrayBuffer();return WebAssembly.instantiate(Q,B)}}(g):function(A){return B=>WebAssembly.instantiate(A,B)}(g)}return QB=new Promise(((A,B)=>{g=A,E=B})),function(A,B,Q,g){VA({print:B,instantiateWasm:(B,Q)=>{if("undefined"==typeof performance){const A=()=>Date.now();B.env.emscripten_get_now=A,B.wasi_snapshot_preview1.emscripten_get_now=A}return A(B).then((A=>Q(A.instance)),g),{}}}).then((A=>{zA=A,Q()}))}(B,Q,g,E),QB}function EB(A){return new $A(A)}function CB(A){return new AB(A)}function IB(A){const B=r[A];if(!B)return;const{id:Q}=G[B];return{id:Q,scopeName:B}}const DB=new Map;let wB,oB;async function sB(A){if(DB.has(A))return DB.get(A);const B=function(A){return G[A]}(A);if(!B)return Promise.resolve(void 0);let g;if(void 0===wB&&(g=eB(B.path),wB=g.then((()=>!0)).catch((()=>!1))),void 0===oB&&(oB=await wB),oB){const Q=g||eB(B.path);return DB.set(A,Q),Q}const E=Q(`grammars/${B.id}`);B.embeddedScopes.forEach((A=>{if(!DB.has(A)){const B=E.then((B=>B.find((B=>B.scopeName===A))));DB.set(A,B)}}));const C=E.then((B=>B.find((B=>B.scopeName===A))));return DB.set(A,C),C}async function eB(A){return await B("grammars",A)}const cB=30720,iB=16744448,tB=16775168,MB=11,aB=15,hB={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function nB(A,B,Q,g){const{tokens:E,ruleStack:C}=A.tokenizeLine2(Q,B),I=[];let D=Q.length;for(let A=E.length-2;A>=0;A-=2){const B=E[A],g=E[A+1],C=Q.slice(B,D);I.unshift({content:C,metadata:g}),D=B}let w=[];if(null==g?void 0:g.preserveWhitespace)w=I;else for(let A=0;A<I.length;A++){const B=I[A];if(""!==B.content.trim()){const A=w[w.length-1];A&&(A.metadata&tB)==(B.metadata&tB)?A.content+=B.content:w.push(B)}else w.length>0?w[w.length-1].content+=B.content:A<I.length-1?I[A+1].content=B.content+I[A+1].content:w.push(B)}return{rawTokens:w,nextStack:C}}function FB(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=nB(B,g,A,{preserveWhitespace:!0}),I=E.map((({content:A,metadata:B})=>({content:A,style:rB(B,Q)}))),D=function(A,B,Q,g){const{tokens:E}=Q.tokenizeLine(A,B),C=[];for(let B=0;B<E.length;B++){const{startIndex:Q,endIndex:I,scopes:D}=E[B];let w=0;const o=g.find((A=>{if(w+=A.content.length,Q<w)return!0}));C.push(Object.assign(Object.assign({},o),{content:A.slice(Q,I),scopes:D.reverse()}))}return C}(A,g,B,I);return g=C,D}))}function rB(A,B){const Q={color:B[(A&iB)>>>aB]},g=(A&cB)>>>MB;return g&hB.Italic&&(Q.fontStyle="italic"),g&hB.Bold&&(Q.fontWeight="bold"),g&hB.Underline&&(Q.textDecoration="underline"),g&hB.Strikethrough&&(Q.textDecoration="line-through"),Q}var GB=function(A){var B=null;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)B=Buffer.from(A,"base64");else{var Q=globalThis.atob(A),g=Q.length;B=new Uint8Array(new ArrayBuffer(g));for(var E=0;E<g;E++)B[E]=Q.charCodeAt(E)}return B}("AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawBCuGICtEBFgBB/MsSQYzLEjYCAEG0yxJBKjYCAAsDAAELZgEDf0EBIQICQCAAKAIEIgMgACgCACIAayIEIAEoAgQgASgCACIBa0cNACAAIANJBEAgACAEaiEDA0AgAC0AACABLQAAayICDQIgAUEBaiEBIABBAWoiACADRw0ACwtBACECCyACC+cBAQZ/AkAgACgCACIBIAAoAgQiAE8NACAAIAFrIgJBB3EhAwJAIAFBf3MgAGpBB0kEQEEAIQIgASEADAELIAJBeHEhBkEAIQIDQCABLQAHIAEtAAYgAS0ABSABLQAEIAEtAAMgAS0AAiABLQABIAEtAAAgAkHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGohAiABQQhqIgAhASAFQQhqIgUgBkcNAAsLIANFDQADQCAALQAAIAJB5QdsaiECIABBAWohACAEQQFqIgQgA0cNAAsLIAJBBXYgAmoLgAEBA39BASECAkAgACgCACABKAIARw0AIAAoAgQgASgCBEcNACAAKAIMIgMgACgCCCIAayIEIAEoAgwgASgCCCIBa0cNACAAIANJBEAgACAEaiEDA0AgAC0AACABLQAAayICDQIgAUEBaiEBIABBAWoiACADRw0ACwtBACECCyACC/MBAQd/AkAgACgCCCIBIAAoAgwiA08NACADIAFrIgJBB3EhBAJAIAFBf3MgA2pBB0kEQEEAIQIgASEDDAELIAJBeHEhB0EAIQIDQCABLQAHIAEtAAYgAS0ABSABLQAEIAEtAAMgAS0AAiABLQABIAEtAAAgAkHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGpB5QdsakHlB2xqQeUHbGohAiABQQhqIgMhASAGQQhqIgYgB0cNAAsLIARFDQADQCADLQAAIAJB5QdsaiECIANBAWohAyAFQQFqIgUgBEcNAAsLIAAvAQAgACgCBCACQQV2IAJqamoLJQAgASgCABDMASABKAIUIgIEQCACEMwBCyAAEMwBIAEQzAFBAgtqAQJ/AkAgASgCCCIAQQJOBEAgASgCFCEDQQAhAANAIAMgAEECdGoiBCACIAQoAgBBAnRqKAIANgIAIABBAWoiACABKAIISA0ACwwBCyAAQQFHDQAgASACIAEoAhBBAnRqKAIANgIQC0EAC/0JAQd/IwBBEGsiDiQAQZh+IQkCQCAFQQRLDQAgB0EASA0AIAUgB0gNACADQQNxRQ0AIARFDQAgBQRAIAUgB2shDANAIAYgCkECdGooAgAiC0UNAgJAIAogDE4EQCALQRBLDQRBASALdEGWgARxDQEMBAsgC0EBa0EFSQ0AIAtBEGtBAUsNAwsgCkEBaiIKIAVHDQALCyAAIAEgAhANRQRAQZx+IQkMAQsjAEEgayIJJABB5L8SKAIAIQwgDkEMaiIPQQA2AgACQCACIAFrIg1BAEwEQEGcfiELDAELIAlBADYCDAJAAkAgDARAIAkgAjYCHCAJIAE2AhggCUEANgIUIAkgADYCECAMIAlBEGogCUEMahCPASEKAkAgAEGUvRJGDQAgCg0AIAAtAExBAXFFDQAgCSACNgIcIAkgATYCGCAJQQA2AhQgCUGUvRI2AhAgDCAJQRBqIAlBDGoQjwEaCyAJKAIMIgpFDQEgCigCCCELDAILQYSYERCMASIMRQRAQXshCwwDC0HkvxIgDDYCAAtBeyELQQwQywEiCkUNASAKIAAgASACEHYiATYCACABRQRAIAoQzAEMAgtBEBDLASICRQ0BIAIgATYCCCACQQA2AgQgAiAANgIAIAIgASANajYCDCAMIAIgChCQASILBEAgAhDMASALQQBIDQILQei/EkHovxIoAgBBAWoiCzYCACAKIA02AgQgCiALNgIICyAPIAo2AgALIAlBIGokAAJAIAsiAUEASA0AQeC/EigCACIJRQRAAn9B4L8SQQA2AgBBDBDLASICBH9B+AUQywEiCUUEQCACEMwBQXsMAgsgAiAJNgIIIAJCgICAgKABNwIAQeC/EiACNgIAQQAFQXsLCyIJDQJB4L8SKAIAIQkLIAkoAgAiCiABTARAA0AgCSgCCCELIAkoAgQiAiAKTAR/IAsgAkGYAWwQzQEiC0UEQEF7IQkMBQsgCSALNgIIIAkgAkEBdDYCBCAJKAIABSAKC0HMAGwgC2pBAEHMABCoARogCSAJKAIAIgtBAWoiCjYCACABIAtKDQALCyAJKAIIIgwgAUHMAGxqIgogBzYCFCAKIAU2AhAgCkEANgIMIAogBDYCCCAKIAM2AgRBACEJIApBADYCACAKIA4oAgwoAgA2AkgCQCAFRQ0AIAVBA3EhBCAFQQFrQQNPBEAgBUF8cSECIAwgAUHMAGxqQRhqIQtBACEDA0AgCyAJQQJ0IgpqIAYgCmooAgA2AgAgCyAKQQRyIg1qIAYgDWooAgA2AgAgCyAKQQhyIg1qIAYgDWooAgA2AgAgCyAKQQxyIgpqIAYgCmooAgA2AgAgCUEEaiEJIANBBGoiAyACRw0ACwsgBEUNAEEAIQogDCABQcwAbGohAwNAIAMgCUECdCILaiAGIAtqKAIANgIYIAlBAWohCSAKQQFqIgogBEcNAAsLIAdBAEwNAEFiIQkgCEUNASAFIAdrIQlBACEKIAwgAUHMAGxqIQYDQAJAIAYgCUECdGooAhhBBEYEQCAAIAggCkEDdGoiBygCACAHKAIEEHYiC0UEQEF7IQkMBQsgBiAJQQN0aiIDIAs2AiggAyALIAcoAgQgBygCAGtqNgIsDAELIAYgCUEDdGogCCAKQQN0aikCADcCKAsgCkEBaiEKIAlBAWoiCSAFSA0ACwsgASEJCyAOQRBqJAAgCQtoAQR/AkAgASACTw0AIAEhAwNAIAMgAiAAKAIUEQAAIgVBX3FBwQBrQRpPBEAgBUEwa0EKSSIGIAEgA0ZxDQIgBUHfAEYgBnJFDQILIAMgACgCABEBACADaiIDIAJJDQALQQEhBAsgBAs3AQF/AkAgAUEATA0AIAAoAoQDIgBFDQAgACgCDCABSA0AIAAoAhQgAUHcAGxqQdwAayECCyACCwkAIAAQzAFBAgsQACAABEAgABARIAAQzAELC7cCAQJ/AkAgAEUNAAJAAkACQAJAAkACQAJAAkAgACgCAA4JAAIIBAUDBgEBCAsgACgCMEUNByAAKAIMIgFFDQcgASAAQRhqRw0GDAcLIAAoAgwiAQRAIAEQESABEMwBCyAAKAIQIgBFDQYDQCAAKAIQIQEgACgCDCICBEAgAhARIAIQzAELIAAQzAEgASIADQALDAYLIAAoAjAiAUUNBSABKAIAIgBFDQQgABDMAQwECyAAKAIMIgEEQCABEBEgARDMAQsgACgCEEEDRw0EIAAoAhQiAQRAIAEQESABEMwBCyAAKAIYIgFFDQQgARARDAMLIAAoAigiAUUNAwwCCyAAKAIMIgFFDQIgARARDAELIAAoAgwiAQRAIAEQESABEMwBCyAAKAIgIgFFDQEgARARCyABEMwBCwvlAgIFfwF+IABBADYCAEF6IQMCQCABKAIAIgJBCEsNAEEBIAJ0QccDcUUNAEEBQTgQzwEiAkUEQEF7DwsgAiABKQIAIgc3AgAgAiABKQIwNwIwIAIgASkCKDcCKCACIAEpAiA3AiAgAkEYaiIDIAEpAhg3AgAgAiABKQIQNwIQIAIgASkCCDcCCAJAAkACQAJAIAenDgIAAQILIAEoAhAhBCABKAIMIQEgAkEANgIwIAIgAzYCECACIAM2AgwgAkEANgIUIAIgASAEEBMiA0UNAQwCCyABKAIwIgRFDQAgAkEMEMsBIgE2AjBBeyEDIAFFDQECQCAEKAIIIgZBAEwEQCABQQA2AgBBACEGDAELIAEgBhDLASIFNgIAIAUNACABEMwBIAJBADYCMAwCCyABIAY2AgggASAEKAIEIgM2AgQgBSAEKAIAIAMQpgEaCyAAIAI2AgBBAA8LIAIQESACEMwBCyADC4QCAQV/IAIgAWsiAkEASgRAAkACQCAAKAIQIAAoAgwiBWsiBCACaiIDQRhIIAAoAjAiBkEATHFFBEAgBiADQRBqIgdOBEAgBCAFaiABIAIQpgEgAmpBADoAAAwDCyAAQRhqIAVGBEAgA0ERahDLASIDRQRAQXsPCyAEQQBMDQIgAyAFIAQQpgEgBGpBADoAAAwCCyADQRFqIQMCfyAFBEAgBSADEM0BDAELIAMQywELIgMNAUF7DwsgBCAFaiABIAIQpgEgAmpBADoAAAwBCyADIARqIAEgAhCmASACakEAOgAAIAAgBzYCMCAAIAM2AgwLIAAgACgCDCAEaiACajYCEAtBAAsnAQF/QQFBOBDPASIBBEAgAUEANgIQIAEgADYCDCABQQc2AgALIAELJwEBf0EBQTgQzwEiAQRAIAFBADYCECABIAA2AgwgAUEINgIACyABCz0BAn9BAUE4EM8BIgIEQCACIAJBGGoiAzYCECACIAM2AgwgAiAAIAEQE0UEQCACDwsgAhARIAIQzAELQQALvAUBBX8gACgCECECIAAoAgwhAQJ/AkAgACgCGARAAkACQCACDgIAAQMLQQFBfyAAKAIUIgNBf0YbQQAgA0EBRxsMAwsgACgCFEF/Rw0BQQIMAgsCQAJAIAIOAgABAgtBA0EEQX8gACgCFCIDQX9GGyADQQFGGwwCCyAAKAIUQX9HDQBBBQwBC0F/CyEFIAEoAhAhAwJAAkACQAJAAkACfyABKAIYBEACQAJAIAMOAgABBAtBAUF/IAEoAhQiBEF/RhtBACAEQQFHGwwCCyABKAIUQX9HDQJBAgwBCwJAAkAgAw4CAAEDC0EDQQRBfyABKAIUIgRBf0YbIARBAUYbDAELIAEoAhRBf0cNAUEFCyEEIAVBAEgNACAEQQBODQELIAIgACgCFEcNAyADIAEoAhRHDQNBACEEAkAgAkUNACADRQ0AQX8gAiADbEH/////ByADbSACTBshBAsgBCICQQBODQFBt34PCwJAAkACQAJAAkACQCAEQRhsQYAIaiAFQQJ0aigCAEEBaw4GAAECAwQFCAsgACABKQIANwIAIAAgASkCMDcCMCAAIAEpAig3AiggACABKQIgNwIgIAAgASkCGDcCGCAAIAEpAhA3AhAgACABKQIINwIIDAYLIAEoAgwhAiAAQQE2AhggAEKAgICAcDcCECAAIAI2AgwMBQsgASgCDCECIABBATYCGCAAQoGAgIBwNwIQIAAgAjYCDAwECyABKAIMIQIgAEEANgIYIABCgICAgHA3AhAgACACNgIMDAMLIAEoAgwhAiAAQQA2AhggAEKAgICAEDcCECAAIAI2AgwMAgsgAEEANgIYIABCgICAgBA3AhAgAUEBNgIYIAFCgYCAgHA3AhBBAA8LIAAgAjYCECAAIAI2AhQgACABKAIMNgIMCyABQQA2AgwgARARIAEQzAELQQALsQEBBX8gAEEANgIAQQFBOBDPASIFRQRAQXsPCyAFQQE2AgAgAkEASgRAIAVBMGohBwNAAkACQCABKAIMQQFMBEAgAyAGQQJ0aiIEKAIAIAEoAhgRAQBBAUYNAQsgByADIAZBAnRqKAIAIgQgBBAZGgwBCyAFIAQoAgAiBEEDdkH8////AXFqQRBqIgggCCgCAEEBIAR0cjYCAAsgBkEBaiIGIAJHDQALCyAAIAU2AgBBAAvDBwEJfyABIAIgASACSRshCgJAAkAgACgCACIDRQRAIABBDBDLASIDNgIAQXshBSADRQ0CIANBFBDLASIINgIAIAhFBEAgAxDMASAAQQA2AgBBew8LIANBFDYCCCAIQQA2AAAgA0EENgIEIAhBBGohBkEAIQAMAQsgAygCACIIQQRqIQZBACEAIAgoAgAiCUEATA0AIAkhBANAIAAgBGoiBUEBdSIHQQFqIAAgCiAGIAVBAnRBBHJqKAIASyIFGyIAIAQgByAFGyIESA0ACwsgCSAJIAAgASACIAEgAksbIgtBf0YbIgRKBEAgC0EBaiEBIAkhBQNAIAQgBCAFaiIHQQF1IgJBAWogASAGIAdB/v///wNxQQJ0aigCAEkiBxsiBCACIAUgBxsiBUgNAAsLQbN+IQUgAEEBaiIHIARrIgIgCWoiAUGQzgBLDQAgAkEBRwRAIAsgCCAEQQN0aigCACIFIAUgC0kbIQsgCiAGIABBA3RqKAIAIgUgBSAKSxshCgsCQCAEIAdGDQAgBCAJTw0AIAdBA3RBBHIhBiAEQQN0QQRyIQcgAkEASgRAAkAgCSAEa0EDdCICIAZqIgUgAygCCCIETQ0AA0AgBEEBdCIEIAVJDQALIAMgBDYCCCADIAggBBDNASIINgIAIAgNAEF7DwsgBiAIaiAHIAhqIAIQpwEgBSADKAIETQ0BIAMgBTYCBAwBCyAGIAhqIAcgCGogAygCBCAHaxCnASADIAMoAgQgBiAHa2o2AgQLIABBA3QiB0EMaiEFIAMoAggiBiEEA0AgBCIAQQF0IQQgACAFSQ0ACyAAIAZHBEAgAyADKAIAIAAQzQEiBDYCACAERQRAQXsPCyADIAA2AgggACEGCwJAIAdBCGoiBCAGSwRAA0AgBkEBdCIGIARJDQALIAMgBjYCCCADIAMoAgAgBhDNASIANgIAIAANAUF7DwsgAygCACEACyAAIAdBBHJqIAo2AAAgBCADKAIESwRAIAMgBDYCBAsCQCAFIAMoAggiAEsEQANAIABBAXQiACAFSQ0ACyADIAA2AgggAyADKAIAIAAQzQEiADYCACAADQFBew8LIAMoAgAhAAsgACAEaiALNgAAIAUgAygCBEsEQCADIAU2AgQLAkAgAygCCCIAQQRJBEADQCAAQQJJIQQgAEEBdCIFIQAgBA0ACyADIAU2AgggAyADKAIAIAUQzQEiADYCACAADQFBew8LIAMoAgAhAAsgACABNgAAQQAhBSADKAIEQQNLDQAgA0EENgIECyAFC5ouAQl/IwBBMGsiBSQAIAMoAgwhCCADKAIIIQcgBSABKAIAIgY2AiQCQAJAAkACQCAAKAIEBEAgACgCDCEMQQEhCyAGIQQCQAJAA0ACQAJAAkAgAiAESwRAIAQgAiAHKAIUEQAAIQogBCAHKAIAEQEAIARqIQkgCkEKRg0DIApBIEYNAyAKQf0ARg0BCyAFIAQ2AiwgBUEsaiACIAcgBUEoaiAMEB4iCw0BQQAhCyAFKAIsIQkLIAUgCTYCJCAJIQYLIAsOAgIDCAsgCSIEIAJJDQALQfB8IQsMBgsgAEEENgIAIAAgBSgCKDYCFAwCCyAAQQA2AgQLIAIgBk0NAiAIQQZqIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAA0AgACAGNgIQIABBADYCDCAAQQM2AgAgBiACIAcoAhQRAAAhBCAGIAcoAgARAQAgBmohBgJAIAQgCCgCEEcNACAKLQAAQRBxDQAgBSAGNgIkQZh/IQsgAiAGTQ0TIAAgBjYCECAGIAIgBygCFBEAACEJIAUgBiAHKAIAEQEAIAZqIgo2AiRBASEEIABBATYCCCAAIAk2AhQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAlBJ2sOVh8FBgABLi4uLicmJiYmJiYmJiYuLg0uDgIuGgouEi4uHRQuLhUuLhcYLSwWEC4lLggZDBsuLi4uLh4uCS4RLi4rEy4uKi4uLiAtLi4PLiQuByELHAMELgsgCC0AAEEIcUUNPgw6CyAILQAAQSBxRQ09DDgLQQAhBiAILQAAQYABcUUNPAw5CyAILQABQQJxRQ07IAVBJGogAiAAIAMQHyILQQBIDT4gCw4DOTs1OwsgCC0AAUEIcUUNOiAAQQ02AgAMOgsgCC0AAUEgcUUNOSAAQQ42AgAMOQsgCC0AAUEgcUUNOCAAQQ82AgAMOAsgCC0AAkEEcUUNNyAAQgw3AhQgAEEGNgIADDcLIAgtAAJBBHFFDTYgAEKMgICAEDcCFCAAQQY2AgAMNgsgCC0AAkEQcUUNNSAAQYAINgIUIABBCTYCAAw1CyAILQACQRBxRQ00IABBgBA2AhQgAEEJNgIADDQLIAgtAANBBHFFDTMgAEGAgAQ2AhQgAEEJNgIADDMLIAgtAANBBHFFDTIgAEGAgAg2AhQgAEEJNgIADDILIAgtAAJBCHFFDTEgAEGAIDYCFCAAQQk2AgAMMQsgCC0AAkEIcUUNMCAAQYDAADYCFCAAQQk2AgAMMAsgCC0AAkEgcUUNLyAAQgk3AhQgAEEGNgIADC8LIAgtAAJBIHFFDS4gAEKJgICAEDcCFCAAQQY2AgAMLgsgCC0AAkHAAHFFDS0gAEIENwIUIABBBjYCAAwtCyAILQACQcAAcUUNLCAAQoSAgIAQNwIUIABBBjYCAAwsCyAILQAGQQhxRQ0rIABCCzcCFCAAQQY2AgAMKwsgCC0ABkEIcUUNKiAAQouAgIAQNwIUIABBBjYCAAwqCyAILQAGQcAAcUUNKSAAQRM2AgAMKQsgCC0ABkGAAXFFDSggAEEUNgIADCgLIAgtAAdBAXFFDScgAEEVNgIADCcLIAgtAAdBAXFFDSYgAEEWNgIADCYLIAgtAAdBBHFFDSUgAEEXNgIADCULIAgtAAFBwABxRQ0kDB0LIAgtAAlBEHENGyAILQABQcAAcUUNIyAAQYACNgIUIABBCTYCAAwjC0GrfiELIAgtAAlBEHENJSAILQABQcAAcUUNIgwaCyAILQABQYABcUUNISAAQcAANgIUIABBCTYCAAwhCyAILQAFQYABcQ0ZDCALIAgtAAVBgAFxDRcMHwsgAiAKTQ0eIAogAiAHKAIUEQAAQfsARw0eIAgoAgBBAE4NHiAFIAogBygCABEBACAKajYCJCAFQSRqIAJBCyAHIAVBKGoQICILQQBIDSFBCCEGIAUoAiQiBCACTw0BIAQgAiAHKAIUEQAAQf8ASw0BIAcoAjAhCUGsfiELIAQgAiAHKAIUEQAAQQQgCREAAEUNAQwhCyACIApNDR0gCiACIAcoAhQRAAAhBiAIKAIAIQQgBkH7AEcNASAEQYCAgIAEcUUNASAFIAogBygCABEBACAKajYCJCAFQSRqIAJBAEEIIAcgBUEoahAhIgtBAEgNIEEQIQYgBSgCJCIEIAJPDQAgBCACIAcoAhQRAABB/wBLDQAgBygCMCEJQax+IQsgBCACIAcoAhQRAABBCyAJEQAADSALIAAgBjYCDCAKIAcoAgARAQAgCmogBEkEQEHwfCELIAIgBE0NIAJAIAQgAiAHKAIUEQAAQf0ARgRAIAUgBCAHKAIAEQEAIARqNgIkDAELIAAoAgwhCEEAIQNBACEMIwBBEGsiCiQAAkACQCACIgYgBE0NAANAIAQgBiAHKAIUEQAAIQkgBCAHKAIAEQEAIQICQAJAAkAgCUEKRg0AIAlBIEYNACAJQf0ARw0BIAMhBAwFCwJAIAIgBGoiAiAGTw0AA0AgAiIEIAYgBygCFBEAACEJIAQgBygCABEBACECIAlBIEcgCUEKR3ENASACIARqIgIgBkkNAAsLIAlBCkYNAyAJQSBGDQMMAQsgDEUNACAIQRBGBEAgCUH/AEsNA0GsfiEEIAlBCyAHKAIwEQAARQ0DDAQLIAhBCEcNAiAJQf8ASw0CIAlBBCAHKAIwEQAARQ0CQax+IQQgCUE4Tw0CDAMLIAlB/QBGBEAgAyEEDAMLIAogBDYCDCAKQQxqIAYgByAKQQhqIAgQHiIEDQJBASEMIANBAWohAyAKKAIMIgQgBkkNAAsLQfB8IQQLIApBEGokACAEQQBIBEAgBCELDCILIARFDSEgAEEBNgIECyAAQQQ2AgAgACAFKAIoNgIUDB0LIAUgCjYCJAwcCyAEQYCAgIACcUUNGyAFQSRqIAJBAEECIAcgBUEoahAhIgtBAEgNHiAFLQAoIQQgBSgCJCECIABBEDYCDCAAQQE2AgAgACAEQQAgAiAKRxs6ABQMGwsgAiAKTQ0aQQQhBCAILQAFQcAAcUUNGgwRCyACIApNDRlBCCEEIAgtAAlBEHENEAwZCyAFIAY2AiQCQCAFQSRqIAIgBxAiIgRB6AdLDQAgCC0AAkEBcUUNACADKAI0IgogBEggBEEKT3ENACAILQAIQSBxBEBBsH4hCyAEIApKDR0gBEEDdCADKAKAASICIANBQGsgAhtqKAIARQ0dCyAAQQE2AhQgAEEHNgIAIABCADcCICAAIAQ2AhgMGQsgCUF+cUE4RgRAIAUgBiAHKAIAEQEAIAZqNgIkDBkLIAUgBjYCJCAILQADQRBxRQ0CIAYhCgwBCyAILQADQRBxRQ0XCyAFQSRqIAJBAkEDIAlBMEYbIAcgBUEoahAgQQBIBEBBuH4hCwwaCyAFLQAoIQQgBSgCJCECIABBCDYCDCAAQQE2AgAgACAEQQAgAiAKRxs6ABQMFgsgBSAGIAcoAgARAQAgBmo2AiQMFQsgAiAKTQ0UIAgtAAVBAXFFDRQgCiACIAcoAhQRAAAhBCAFIAogBygCABEBACAKaiIMNgIkQQAhByAEQTxGDQogBEEnRg0KIAUgCjYCJAwUCyACIApNDRMgCC0ABUECcUUNEyAKIAIgBygCFBEAACEEIAUgCiAHKAIAEQEAIApqIgw2AiRBACEHIARBPEYNCCAEQSdGDQggBSAKNgIkDBMLIAgtAARBAXFFDRIgAEERNgIADBILIAIgCk0NESAKIAIgBygCFBEAAEH7AEcNESAILQAGQQFxRQ0RIAUgCiAHKAIAEQEAIApqIgQ2AiQgACAJQdAARjYCGCAAQRI2AgAgAiAETQ0RIAgtAAZBAnFFDREgBCACIAcoAhQRAAAhAiAFIAQgBygCABEBACAEajYCJCACQd4ARgRAIAAgACgCGEU2AhgMEgsgBSAENgIkDBELIAUgBjYCJCAFQSRqIAIgAyAFQSxqECMiC0UEQCAFKAIsIAMoAggoAhgRAQAiBEEfdSAEcSELCyALQQBIDRMgBSgCLCIEIAAoAhRHBEAgACAENgIUIABBBDYCAAwRCyAFIAAoAhAiBCAHKAIAEQEAIARqNgIkDBALIABBADYCCCAAIAQ2AhQCQAJAAkACQAJAIARFDQACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAIKAIAIglBAXFFDQAgBCAIKAIURg0BIAQgCCgCGEYNBCAEIAgoAhxGDQggBCAIKAIgRg0GIAQgCCgCJEcNACAFIAY2AiQgAEEMNgIADCcLAkAgBEEJaw50EhITEhITExMTExMTExMTExMTExMTExMSExMRDhMTEwsMAwUTEwATExMTExMTExMTExMTExMTBxMTExMTExMTExMTExMTExMTExMTExMTExMTEw8TEA0TExMTExMTExMTExMTExMTExMTExMTExMTExMTCQoTCyAFIAY2AiQgCUECcQ0BDCYLIAUgBjYCJAsgAEEFNgIADCQLIAUgBjYCJCAJQQRxDR8MIwsgBSAGNgIkDB4LIAUgBjYCJCAJQRBxDRwMIQsgBSAGNgIkDBsLIAUgBjYCJCAJQcAAcUUNHwwTCyAFIAY2AiQMEgsgBSAGNgIkIAlBgAJxRQ0dIAVBJGogAiAAIAMQHyILQQBIDSACQCALDgMcHgAeCyAILQAJQQJxRQ0bDBwLIAUgBjYCJCAJQYAIcUUNHCAAQQ02AgAMHAsCQCACIAZNDQAgBiACIAcoAhQRAABBP0cNACAILQAEQQJxRQ0AAkAgAiAGIAcoAgARAQAgBmoiBEsEQCAEIAIgBygCFBEAACIJQSNGBEAgBCACIAcoAhQRAAAaIAQgBygCABEBACAEaiIGIAJPDQwDQCAGIAIgBygCFBEAACEEIAYgBygCABEBACAGaiEGAkAgCCgCECAERgRAIAIgBk0NASAGIAIgBygCFBEAABogBiAHKAIAEQEAIAZqIQYMAQsgBEEpRg0QCyACIAZLDQALIAUgBjYCJAwNCyAFIAQ2AiQgCC0AB0EIcQRAAkACQAJAAkAgCUEmaw4IAAICAgIDAgMBCyAFIAQgBygCABEBACAEaiIGNgIkQSggBUEkaiACIAVBBGogAyAFQSxqIAVBABAkIgtBAEgNJSAAQQg2AgAgACAGNgIUIABCADcCHCAFKAIEIQkMFAsgCUHSAEYNEQsgCUEEIAcoAjARAABFDQMLQSggBUEkaiACIAVBBGogAyAFQSxqIAVBARAkIgtBAEgNIkGpfiELAkACQAJAIAUoAgAOAyUBAAELIAMoAjQhAgJAAn8gBSgCLCIHQQBKBEAgAkH/////B3MgB0kNAiACIAdqDAELIAIgB2pBAWoLIgJBAE4NAgsgAyAFKAIENgIoIAMgBDYCJEGmfiELDCQLIAUoAiwhAgsgACAENgIUIABBCDYCACAAIAI2AhwgAEEBNgIgIAUoAgQhCSAGIQQMEQsgCUHQAEcNASADKAIMKAIEQQBODQFBin8hCyAEIAcoAgARAQAgBGoiBCACTw0hIAQgAiAHKAIUEQAAIQkgBSAEIAcoAgARAQAgBGoiDDYCJEEBIQdBKCEEIAlBPWsOAhQTAgsgBSAENgIkCyAFIAY2AiQMDwsgBSAGNgIkDA4LIAUgBjYCJCAJQYAgcUUNGiAAQQ82AgAMGgsgBSAGNgIkIAlBgICABHFFDRkgAEEJNgIAIABBEEEgIAMoAgBBCHEbNgIUDBkLIAUgBjYCJCAJQYCAgARxRQ0YIABBCTYCACAAQYACQYAEIAMoAgBBCHEbNgIUDBgLIAUgBjYCJCAJQYCACHFFDRcgAEEQNgIADBcLIAUgBjYCJCABKAIAIAMoAhxNDRYjAEGQAmsiAiQAAkBB7JcRKAIAQQFGDQAgAygCDC0AC0EBcUUNACADKAIgIQQgAygCHCEGIAMoAgghAyACQd8JNgIAIAJBEGogAyAGIARB1AwgAhCLASACQRBqQeyXESgCABEEAAsgAkGQAmokAAwWCyADLQAAQQJxRQ0BA0AgAiAGTQ0FIAYgAiAHKAIUEQAAIQQgBiAHKAIAEQEAIAZqIQYgBEEAIAcoAjARAABFDQALDAQLIAMtAABBAnENAwsgBSAGNgIkDBMLIAUgBDYCJAtBin8hCwwUCyACIAZNDREMAQsLIABBCDYCACAAIAQ2AhQgAEKAgICAEDcCHCAFIAQgBygCABEBACAEaiIJNgIkQYl/IQsgAiAJTQ0RIAkgAiAHKAIUEQAAQSlHDRELIAAgCTYCGCAFIAQ2AiQLIAgtAAFBEHFFDQwgAEEONgIADAwLQQEhBEEAIQYMCAtBACEGIAQgBUEkaiACIAVBDGogAyAFQRBqIAVBCGpBARAkIgtBAEgNDUEAIQQCQCAFKAIIIgJFDQBBpn4hCyAHDQ5BASEGIAUoAhAhBCACQQJHDQAgAygCNCECAkACfyAEQQBKBEAgAkH/////B3MgBEkNAiACIARqDAELIAIgBGpBAWoLIgRBAE4NAQsgAyAFKAIMNgIoIAMgDDYCJAwOCyAAIAw2AhQgAEEINgIAIAAgBDYCHCAAIAY2AiAgACAFKAIMNgIYDAoLIAVBADYCIAJAIAQgBUEkaiACIAVBIGogAyAFQRhqIABBKGogBUEUahAlIgtBAUYEQCAAQQE2AiQMAQsgAEEANgIkIAtBAEgNDQsgBSgCFCICBEBBsH4hCyAHDQ0CfyAFKAIYIgQgAkECRw0AGkGwfiAEIAMoAjQiAmogAkH/////B3MgBEkbIARBAEoNABogAiAEakEBagsiBEEATA0NIAgtAAhBIHEEQCAEIAMoAjRKDQ4gBEEDdCADKAKAASICIANBQGsgAhtqKAIARQ0OCyAAQQc2AgAgAEEBNgIUIABBADYCICAAIAQ2AhgMCgsgAyAMIAUoAiAgBUEcahAmIgdBAEwEQEGnfiELDA0LIAgtAAhBIHEEQCADQUBrIQggAygCNCEJQQAhBCAFKAIcIQoDQEGwfiELIAogBEECdGooAgAiAiAJSg0OIAJBA3QgAygCgAEiBiAIIAYbaigCAEUNDiAEQQFqIgQgB0cNAAsLIABBBzYCACAAQQE2AiAgB0EBRgRAIABBATYCFCAAIAUoAhwoAgA2AhgMCgsgACAHNgIUIAAgBSgCHDYCHAwJCyAFQSRqIAIgBCAEIAcgBUEoahAhIgtBAEgNCyAFKAIoIQQgBSgCJCECIABBEDYCDCAAQQQ2AgAgACAEQQAgAiAKRxs2AhQMCAsgAEGAATYCFCAAQQk2AgAMBwsgAEEQNgIUIABBCTYCAAwGCyAILQAJQQJxRQ0DDAQLQX8hBEEBIQYMAQtBfyEEQQAhBgsgACAGNgIUIABBCjYCACAAQQA2AiAgACAENgIYCyAFKAIkIgQgAk8NACAEIAIgBygCFBEAAEE/Rw0AIAgtAANBAnFFDQAgACgCIA0AIAQgAiAHKAIUEQAAGiAFIAQgBygCABEBACAEajYCJCAAQgA3AhwMAQsgAEEBNgIcIAUoAiQiBCACTw0AIAQgAiAHKAIUEQAAQStHDQACQCAIKAIEIgZBEHEEQCAAKAIAQQtHDQELIAZBIHFFDQEgACgCAEELRw0BCyAAKAIgDQAgBCACIAcoAhQRAAAaIAUgBCAHKAIAEQEAIARqNgIkIABBATYCIAsgASAFKAIkNgIAIAAoAgAhCwwCCyAFIAY2AiQLQQAhCyAAQQA2AgALIAVBMGokACALC7YDAQV/IwBBEGsiCSQAIABBADYCACAFIAUoApwBQQFqIgc2ApwBQXAhCAJAIAdB+JcRKAIASw0AIAUoAgAhCyAJQQxqIAEgAiADIAQgBSAGECciCEEASARAIAkoAgwiBUUNASAFEBEgBRDMAQwBCwJAAkACQAJAAkAgAiAIRgRAIAAgCSgCDDYCACACIQgMAQsgCSgCDCEHIAhBDUcNAUEBQTgQzwEiBkUNBCAGQQA2AhAgBiAHNgIMIAZBCDYCACAAIAY2AgADQCABIAMgBCAFEBoiCEEASA0GIAlBDGogASACIAMgBCAFQQAQJyEIIAkoAgwhCiAIQQBIBEAgChAQDAcLQQFBOBDPASIHRQ0EIAdBADYCECAHIAo2AgwgB0EINgIAIAYgBzYCECAHIQYgCEENRg0ACyABKAIAIAJHDQILIAUgCzYCACAFIAUoApwBQQFrNgKcAQwECyAHRQ0AIAcQESAHEMwBC0GLf0F1IAJBD0YbIQgMAgsgBkEANgIQIAoQECAAKAIAEBBBeyEIDAELIABBADYCAEF7IQggB0UNACAHEBEgBxDMAQsgCUEQaiQAIAgLIQAgAigCFCABQdwAbGpB3ABrIgEgASgCAEEBcjYCAEEACxAAIAAgAjYCKCAAIAE2AiQL+AIBBn9B8HwhCQJAAkACQAJAIARBCGsOCQEDAwMDAwMDAAMLIAAoAgAiBCABTw0CA0ACQCAEIAEgAigCFBEAACEFIAQgAigCABEBACEKIAVB/wBLDQAgBUELIAIoAjARAABFDQBBUCEIIAcgBUEEIAIoAjARAAAEfyAIBUFJQal/IAVBCiACKAIwEQAAGwsgBWoiBUF/c0EEdksEQEG4fg8LIAUgB0EEdGohByAEIApqIgQgAU8NAyAGQQdJIQUgBkEBaiEGIAUNAQwDCwsgBg0BDAILIAAoAgAiBCABTw0BA0ACQCAEIAEgAigCFBEAACEFIAQgAigCABEBACEIIAVB/wBLDQAgBUEEIAIoAjARAABFDQAgBUE3Sw0AIAdBLyAFa0EDdksEQEG4fg8LIAdBA3QgBWpBMGshByAEIAhqIgQgAU8NAiAGQQpJIQUgBkEBaiEGIAUNAQwCCwsgBkUNAQsgAyAHNgIAIAAgBDYCAEEAIQkLIAkLsQUBDH8gAygCDCgCCEEIcSELIAEgACgCACIETQRAQQFBnH8gCxsPCyADKAIIIgkhBQJAAkAgC0UEQEGcfyEHIAQgASAJKAIUEQAAIgVBKGtBAkkNASAFQfwARg0BIAMoAgghBQsDQAJAIAQgASAFKAIUEQAAIQcgBCAFKAIAEQEAIQYgB0H/AEsNACAHQQQgBSgCMBEAAEUNACAIQa+AgIB4IAdrQQptSgRAQbd+DwsgCEEKbCAHakEwayEIIAQgBmoiBCABSQ0BCwtBt34hByAIQaCNBksNACAEIAAoAgAiBUciDkUEQEEAIQggAygCDC0ACEEQcUUNAgsgASAETQ0BIAQgASAJKAIUEQAAIQYgBCAJKAIAEQEAIQoCQCAGQSxGBEBBACEGIAQgCmoiDCEEIAEgDEsEQCADKAIIIQogDCEEA0ACQCAEIAEgCigCFBEAACEFIAQgCigCABEBACEPIAVB/wBLDQAgBUEEIAooAjARAABFDQBBr4CAgHggBWtBCm0gBkgNBSAGQQpsIAVqQTBrIQYgBCAPaiIEIAFJDQELCyAGQaCNBksNAwsgBkF/IAQgDEciBxshBiAHDQEgDg0BDAMLQQIhDSAIIQYgBCAFRg0CCyABIARNDQEgBCABIAkoAhQRAAAhByAEIAkoAgARAQAgBGohBCADKAIMIgUtAAFBAnEEQCAHIAUoAhBHDQIgASAETQ0CIAQgASAJKAIUEQAAIQcgBCAJKAIAEQEAIARqIQQLIAdB/QBHDQFBACEFAkACQCAGQX9GDQAgBiAITg0AQbZ+IQdBASEFIAghASADKAIMLQAEQSBxDQIMAQsgBiEBIAghBgsgAiAGNgIUIAJBCzYCACACIAE2AhggAiAFNgIgIAAgBDYCACANIQcLIAcPC0EBQYV/IAsbC6oBAQV/AkAgASAAKAIAIgVNDQAgAkEATA0AA0AgBSABIAMoAhQRAAAhBiAFIAMoAgARAQAhCSAGQf8ASw0BIAZBBCADKAIwEQAARQ0BIAZBN0sNASAHQS8gBmtBA3ZLBEBBuH4PCyAIQQFqIQggB0EDdCAGakEwayEHIAUgCWoiBSABTw0BIAIgCEoNAAsLIAhBAE4EfyAEIAc2AgAgACAFNgIAQQAFQfB8CwvVAQEGfwJAIAEgACgCACIJTQRADAELIANBAEwEQAwBCwNAIAkgASAEKAIUEQAAIQYgCSAEKAIAEQEAIQogBkH/AEsNASAGQQsgBCgCMBEAAEUNAUFQIQsgCCAGQQQgBCgCMBEAAAR/IAsFQUlBqX8gBkEKIAQoAjARAAAbCyAGaiIGQX9zQQR2SwRAQbh+DwsgB0EBaiEHIAYgCEEEdGohCCAJIApqIgkgAU8NASADIAdKDQALC0HwfCEGIAIgB0wEfyAFIAg2AgAgACAJNgIAQQAFIAYLC34BBH8CQCAAKAIAIgQgAU8NAANAIAQgASACKAIUEQAAIQUgBCACKAIAEQEAIQYgBUH/AEsNASAFQQQgAigCMBEAAEUNASADQa+AgIB4IAVrQQptSgRAQX8PCyADQQpsIAVqQTBrIQMgBCAGaiIEIAFJDQALCyAAIAQ2AgAgAwudBQEGfyMAQRBrIgYkAEGYfyEFAkAgACgCACIEIAFPDQAgBCABIAIoAggiBygCFBEAACEFIAYgBCAHKAIAEQEAIARqIgQ2AggCQAJAAkACQAJAAkACQAJAIAVBwwBrDgsDAQEBAQEBAQEBAgALIAVB4wBGDQMLIAIoAgwhCAwECyACKAIMIggtAAVBEHFFDQNBl38hBSABIARNDQUgBCABIAcoAhQRAAAhCCAEIAcoAgARAQAhCUGUfyEFIAhBLUcNBUGXfyEFIAQgCWoiBCABTw0FIAYgBCABIAcoAhQRAAAiBTYCDCAGIAQgBygCABEBACAEajYCCCACKAIMKAIQIAVGBH8gBkEIaiABIAIgBkEMahAjIgVBAEgNBiAGKAIMBSAFC0H/AHFBgAFyIQQMBAsgAigCDCIILQAFQQhxRQ0CQZZ/IQUgASAETQ0EIAQgASAHKAIUEQAAIQggBCAHKAIAEQEAIQlBk38hBSAIQS1HDQQgBCAJaiEEDAELIAIoAgwiCC0AA0EIcUUNAQtBln8hBSABIARNDQIgBiAEIAEgBygCFBEAACIFNgIMIAYgBCAHKAIAEQEAIARqNgIIQf8AIQQgBUE/Rg0BIAIoAgwoAhAgBUYEfyAGQQhqIAEgAiAGQQxqECMiBUEASA0DIAYoAgwFIAULQZ8BcSEEDAELAkAgCC0AA0EEcUUNAEEKIQQCQAJAAkACQAJAAkACQCAFQeEAaw4WAwQHBwUCBwcHBwcHBwgHBwcBBwAHBgcLQQkhBAwHC0ENIQQMBgtBDCEEDAULQQchBAwEC0EIIQQMAwtBGyEEDAILQQshBCAILQAFQSBxDQELIAUhBAsgACAGKAIINgIAIAMgBDYCAEEAIQULIAZBEGokACAFC4sGAQd/IAEoAgAhCiAEKAIIIQkgBUEANgIAQT4hCwJAAkACQAJAIABBJ2sOFgABAgICAgICAgICAgICAgICAgICAgMCC0EnIQsMAgtBKSELDAELQQAhCwsgBkEANgIAQap+IQwCQCACIApNDQAgCiACIAkoAhQRAAAhCCAKIAkoAgARAQAhACAIIAtGDQAgACAKaiEAAkACQAJAAkACQCAIQf8ASw0AIAhBBCAJKAIwEQAARQ0AQQEhDkGpfiEMQQEhDSAHQQFHDQMMAQsCQAJAAkAgCEEraw4DAgEAAQtBqX4hDCAHQQFHDQRBfyENQQIhDiAAIQoMAgtBASENIAhBDCAJKAIwEQAADQJBqH4hDAwDC0EBIQ1BqX4hDEECIQ4gACEKIAdBAUcNAgsgBiAONgIACwJAIAAgAk8EQCACIQcMAQsDQCAAIgcgAiAJKAIUEQAAIQggACAJKAIAEQEAIABqIQAgCCALRg0BIAhBKUYNAQJAIAYoAgAEQCAIQf8ATQRAIAhBBCAJKAIwEQAADQILIAhBDCAJKAIwEQAAGiAGQQA2AgAMAQsgCEEMIAkoAjARAAAaCyAAIAJJDQALC0GpfiEMIAggC0cNASAGKAIABEACQAJAIAcgCk0EQCAFQQA2AgAMAQtBACEIA0ACQCAKIAcgCSgCFBEAACECIAogCSgCABEBACELIAJB/wBLDQAgAkEEIAkoAjARAABFDQAgCEGvgICAeCACa0EKbUoEQCAFQX82AgBBuH4PCyAIQQpsIAJqQTBrIQggCiALaiIKIAdJDQELCyAFIAg2AgAgCEEASARAQbh+DwsgCA0BC0EAIQggBigCAEECRg0DCyAFIAggDWw2AgALIAMgBzYCACABIAA2AgBBAA8LAkAgACACTwRAIAIhCAwBCwNAIAAiCCACIAkoAhQRAAAhCiAIIAkoAgARAQAgCGohACAKIAtGDQEgCkEpRg0BIAAgAkkNAAsLIAggAiAAIAJJGyEHCyABKAIAIQkgBCAHNgIoIAQgCTYCJAsgDAuMCAELfyMAQRBrIhAkACAEKAIIIQsgASgCACEMIAVBADYCACAHQQA2AgBBPiENAkACQAJAAkAgAEEnaw4WAAECAgICAgICAgICAgICAgICAgICAwILQSchDQwCC0EpIQ0MAQtBACENC0GqfiEKAkAgAiAMTQ0AIAEoAgAhACAMIAIgCygCFBEAACEIIAwgCygCABEBACEJIAggDUYNACAJIAxqIQkCQAJAAn8CQCAIQf8ASw0AIAhBBCALKAIwEQAARQ0AQQEhDyAHQQE2AgBBAAwBCwJAAkACQCAIQStrDgMBAgACCyAHQQI2AgBBfyERDAMLIAdBAjYCAEEBIREMAgtBAEGofiAIQQwgCygCMBEAABsLIQpBASERDAELIAkhAEEAIQoLAkAgAiAJTQRAIAIhDAwBCwNAIAkiDCACIAsoAhQRAAAhCCAJIAsoAgARAQAgCWohCQJAAkAgCCANRgRAIA0hCAwBCyAIQSlrIg5BBEsNAUEBIA50QRVxRQ0BCyAKQal+IA8bIAogBygCABshCgwCCwJAIAcoAgAEQAJAIAhB/wBLDQAgCEEEIAsoAjARAABFDQAgD0EBaiEPDAILIAdBADYCAEGpfiEKDAELIApBqH4gCEEMIAsoAjARAAAbIQoLIAIgCUsNAAsLQQAhDgJ/AkAgCg0AIAggDUYEQEEAIQoMAQsCQAJAIAhBK2sOAwABAAELIAIgCU0EQEGofiEKDAILIAkgAiALKAIUEQAAIQ8gCSALKAIAEQEAIAlqIRIgD0H/AEsEQCASIQkMAQsgD0EEIAsoAjARAABFBEAgEiEJDAELIBAgCTYCDCAQQQxqIAIgCxAiIglBAEgEQEG4fiEKDAQLIAZBACAJayAJIAhBLUYbNgIAQQEhDiAQKAIMIgkgAk8NACAJIAIgCygCFBEAACEIIAkgCygCABEBACAJaiEJQQAhCiAIIA1GDQELQQAMAQtBAQshCANAIAhFBEBBqX4hCiACIQxBASEIDAELAkAgCkUEQCAHKAIABEACQAJAIAAgDE8EQCAFQQA2AgAMAQtBACEIA0ACQCAAIAwgCygCFBEAACECIAAgCygCABEBACENIAJB/wBLDQAgAkEEIAsoAjARAABFDQAgCEGvgICAeCACa0EKbUoEQCAFQX82AgBBuH4hCgwJCyAIQQpsIAJqQTBrIQggACANaiIAIAxJDQELCyAFIAg2AgAgCEEASARAQbh+IQoMBwsgCA0BCyAHKAIAQQJGBEAgDCECDAQLQQAhCAsgBSAIIBFsNgIACyADIAw2AgAgASAJNgIAIA5BAEchCgwDCyABKAIAIQIgBCAMNgIoIAQgAjYCJAwCC0EAIQgMAAsACyAQQRBqJAAgCguaAQECfyMAQRBrIgQkACAAKAIsKAJUIQUgBEEANgIEAkACQCAFBEAgBCACNgIMIAQgATYCCCAFIARBCGogBEEEahCPARogBCgCBCIFDQELIAAgAjYCKCAAIAE2AiRBp34hAAwBCwJAAkAgBSgCCCIADgICAAELIAMgBUEQajYCAEEBIQAMAQsgAyAFKAIUNgIACyAEQRBqJAAgAAukAwEDfyMAQRBrIgkkACAAQQA2AgAgBSAFKAKcAUEBaiIHNgKcAUFwIQgCQCAHQfiXESgCAEsNACAJQQxqIAEgAiADIAQgBSAGECgiCEEASARAIAkoAgwiB0UNASAHEBEgBxDMAQwBCwJAAkACQAJAAkACQCAIRQ0AIAIgCEYNACAIQQ1HDQELIAAgCSgCDDYCAAwBCyAJKAIMIQdBAUE4EM8BIgZFDQIgBkEANgIQIAYgBzYCDCAGQQc2AgAgACAGNgIAA0AgAiAIRg0BIAhBDUYNASAJQQxqIAEgAiADIAQgBUEAECghCCAJKAIMIQcgCEEASARAIAcQEAwGCwJAIAcoAgBBB0YEQCAGIAc2AhADQCAHIgYoAhAiBw0ACyAJIAY2AgwMAQtBAUE4EM8BIgBFDQMgAEEANgIQIAAgBzYCDCAAQQc2AgAgBiAANgIQIAAhBgsgCA0AC0EAIQgLIAUgBSgCnAFBAWs2ApwBDAMLIAZBADYCEAwBCyAAQQA2AgAgBw0AQXshCAwBCyAHEBEgBxDMAUF7IQgLIAlBEGokACAIC7phARF/IwBBwAJrIgwkACAAQQA2AgACQAJAAkAgASgCACIHIAJGDQAgBUFAayETIAVBDGohEQJ/AkADQCAFKAKcASEWQXUhCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBw4YJxMoEhALDgkIBwYGCicAEQwPDQUEAwIBKAsgDCADKAIAIgc2AjggBSgCCCEKIABBADYCAEGLfyEIIAQgB00NJyAFKAIAIQkgByAEIAooAhQRAAAiCEEqRg0VIAhBP0cNFiARKAIALQAEQQJxRQ0WIAQgByAKKAIAEQEAIAdqIghNBEBBin8hCAwoCyAIIAQgCigCFBEAACELIAwgCCAKKAIAEQEAIAhqIgc2AjhBiX8hCAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkAgC0Ehaw5eATU1NTU1Awg1NTU1DTU1NTU1NTU1NTU1NS01BAACNQk1NQoMNTU1NQo1NQo1NTULNTUMNTU1DDU1NTU1NTU1NQ01NTU1NTU1DTU1NQ01NTU1NQ01NTU1DQw1BzU1BjULQQFBOBDPASIIBEAgCEF/NgIYIAhBATYCECAIQQY2AgALIAAgCDYCAAwrC0EBQTgQzwEiCARAIAhBfzYCGCAIQQI2AhAgCEEGNgIACyAAIAg2AgAMKgtBAUE4EM8BIggEQCAIQQA2AjQgCEECNgIQIAhBBTYCAAsgACAINgIADCkLIBEoAgAtAARBgAFxRQ0xQScMAQtBi38hCCAEIAdNDTAgByAEIAooAhQRAAAhCCAMIAcgCigCABEBACAHajYCOAJAIAhBIUcEQCAIQT1HDQFBAUE4EM8BIggEQCAIQX82AhggCEEENgIQIAhBBjYCAAsgACAINgIADCkLQQFBOBDPASIIBEAgCEF/NgIYIAhBCDYCECAIQQY2AgALIAAgCDYCAAwoC0GJfyEIIBEoAgAtAARBgAFxRQ0wIAwgBzYCOEE8CyEJQQAhCiAHIQ4MIwsgESgCAC0AB0ECcUUNLkGKfyEIIAQgB00NLgJAIAcgBCAKKAIUEQAAQfwARyIJDQAgDCAHIAooAgARAQAgB2oiBzYCOCAEIAdNDS8gByAEIAooAhQRAABBKUcNACAMIAcgCigCABEBACAHajYCOCMAQRBrIgokACAAQQA2AgAgBSAFKAKMASIHQQFqNgKMAUF7IQsCQEEBQTgQzwEiCEUNACAIIAc2AhggCEEKNgIAIAhCgYCAgCA3AgwgCkEBQTgQzwEiDjYCCAJAAkACQAJAIA5FBEBBACEHDAELIA4gBzYCGCAOQQo2AgAgDkKCgICAIDcCDCAKQQFBOBDPASIHNgIMIAdFBEBBACEHDAILIAdBCjYCAEEHQQIgCkEIahAtIglFDQEgCiAJNgIMIApBAUE4EM8BIg42AgggDkUEQCAJIQcMAQsgDkEANgIYIA5CioCAgICAgIABNwIAIA5CgoCAgNAANwIMIAkhB0EIQQIgCkEIahAtIglFDQEgCSAJKAIEQYCAIHI2AgQgCiAJNgIMIAogCDYCCCAJIQcgCCEOQQdBAiAKQQhqEC0iCEUNAiAAIAg2AgBBACELDAQLQQAhDgsgCBARIAgQzAEgDkUNAQsgDhARIA4QzAELIAdFDQAgBxARIAcQzAELIApBEGokACALIggNJEEAIQcMKAsgASAMQThqIAQgBRAaIghBAEgNLiAMQSxqIAFBDyAMQThqIAQgBUEBEBshCCAMKAIsIQogCEEASARAIAoQEAwvC0EAIQcCQCAJBEAgCiEOQQAhCUEAIQgMAQtBASEIQQAhCSAKKAIAQQhHBEAgCiEODAELIAooAhAiC0UEQCAKIQ4MAQsgCigCDCEOIApCADcCDCAKEBEgChDMAUEAIQggCygCEARAIAshCQwBCyALKAIMIQkgC0EANgIMIAsQESALEMwBCyAFIQtBACEPQQAhFyMAQTBrIhAkACAQQRBqIgpCADcDACAQQQA2AhggCiAJNgIAIBBCADcDCCAQQgA3AwAgECAOIhI2AhQCQAJAAkACQAJAAkAgCA0AAkAgCUUEQEEBQTgQzwEiCkUEQEF7IQkMBgsgCkL/////HzcCFCAKQQQ2AgBBAUE4EM8BIg5FBEBBeyEJDAULIA5BfzYCDCAOQoKAgICAgIAgNwIADAELAkACQCAJIgooAgBBBGsOAgEAAwsgCSgCEEECRw0CQQEhFyAJKAIMIgooAgBBBEcNAgsgCigCGEUNAQJAAkAgCigCDCIOKAIADgIAAQMLIA4oAgwiFCAOKAIQTw0CA0AgDyIVQQFqIQ8gFCALKAIIKAIAEQEAIBRqIhQgDigCEEkNAAsgFQ0CCyAJIApHBEAgCUEANgIMIAkQESAJEMwBCyAKQQA2AgwLIABBADYCACAQIBI2AiwgECAONgIoIBBBADYCJCAKKAIUIRQgCigCECEPIAsgCygCjAEiCEEBajYCjAEgEEEBQTgQzwEiCTYCIAJAAkAgCUUEQEF7IQkMAQsgCSAINgIYIAlBCjYCACAJQoGAgIAgNwIMAkAgEEEgakEEciAIIBIgDiAPIBQgF0EAIAsQOSIJDQAgEEEANgIsIBBBAUE4EM8BIgs2AihBeyEJIAtFDQAgCyAINgIYIAtBCjYCACALQoKAgIAgNwIMQQdBAyAQQSBqEC0iC0UNACAAIAs2AgBBACEJDAILIBAoAiAiC0UNACALEBEgCxDMAQsgECgCJCILBEAgCxARIAsQzAELIBAoAigiCwRAIAsQESALEMwBCyAQKAIsIgtFDQAgCxARIAsQzAELIAoQESAKEMwBIAkNAUEAIQkMBQsgCyALKAKMASIKQQFqIhQ2AowBIBBBAUE4EM8BIgk2AgAgCUUEQEF7IQkMBAsgCSAKNgIYIAlBCjYCACAJQoGAgIAgNwIMIAsgCkECajYCjAEgEEEBQTgQzwEiCTYCBCAJRQRAQXshCQwDCyAJIBQ2AhggCUEKNgIAIAlCgYCAgBA3AgxBAUE4EM8BIglFBEBBeyEJDAMLIAlBfzYCDCAJQoKAgICAgIAgNwIAIBAgCTYCDCAQQQhyIAogEiAJQQBBf0EBIAggCxA5IgkNAiAQQQA2AhQgEEEBQTgQzwEiCTYCDCAJRQRAQXshCQwDCyAJIBQ2AhggCUEKNgIAIAlCgoCAgBA3AgwCfyAIBEBBB0EEIBAQLQwBCyMAQRBrIg4kACAQQRhqIhVBADYCACAQQRRqIhRBADYCACALIAsoAowBIglBAWo2AowBQXshEgJAQQFBOBDPASIPRQ0AIA8gCTYCGCAPQQo2AgAgD0KBgICAIDcCDCAOQQFBOBDPASILNgIIAkACQCALRQRAQQAhCQwBCyALIAk2AhggC0EKNgIAIAtCgoCAgCA3AgwgDkEBQTgQzwEiCTYCDCAJRQRAQQAhCQwCCyAJQQo2AgBBB0ECIA5BCGoQLSIIRQ0BIA4gCDYCDCAOQQFBOBDPASILNgIIIAtFBEAgCCEJDAELIAsgCjYCGCALQQo2AgAgC0KCgICAIDcCDCAIIQlBCEECIA5BCGoQLSIKRQ0BIBQgDzYCACAVIAo2AgBBACESDAILQQAhCwsgDxARIA8QzAEgCwRAIAsQESALEMwBCyAJRQ0AIAkQESAJEMwBCyAOQRBqJAAgEiIJDQNBB0EHIBAQLQshC0F7IQkgC0UNAiAAIAs2AgBBACEJDAQLIBBBADYCECAOIQoLIAoQESAKEMwBCyAQKAIAIgtFDQAgCxARIAsQzAELIBAoAgQiCwRAIAsQESALEMwBCyAQKAIIIgsEQCALEBEgCxDMAQsgECgCDCILBEAgCxARIAsQzAELIBAoAhAiCwRAIAsQESALEMwBCyAQKAIUIgsEQCALEBEgCxDMAQsgECgCGCILRQ0AIAsQESALEMwBCyAQQTBqJAAgCSIIRQ0nDCMLIBEoAgAtAAdBEHFFDS0gACAMQThqIAQgBRApIggNIkEAIQcMJgsgESgCAC0ABkEgcUUNLEGKfyEIIAQgB00NISAHIAQgCigCFBEAACEJIAwgByAKKAIAEQEAIAdqIg42AjggBCAOTQ0hAkACQAJAAkAgCUH/AE0EQCAJQQQgCigCMBEAAA0BIAlBLUYNAQsgCUEnaw4ZACAgAgAgICAgICAgICAgICAgICAgACAgASALAkAgCUEnRiILBEAgCSEIDAELIAkiCEE8Rg0AIAwgBzYCOEEoIQggByEOCyAMQQA2AiQgCCAMQThqIAQgDEEkaiAFIAxBIGogDEEoaiAMQRxqECUiCEEASARAIAsgCUE8RnMNJQwgCyAIQQFGIRUCQAJAAkACQAJAIAwoAhwOAwMBAAELIAUoAjQhCCAMKAIgIgdBAEoEQCAMQbB+IAcgCGogCEH/////B3MgB0kbIgc2AiAMAgsgDCAHIAhqQQFqIgc2AiAMAQsgDCgCICEHC0GwfiEIIAdBAEwNJiARKAIALQAIQSBxBEAgByAFKAI0Sg0nIAdBA3QgBSgCgAEiDiATIA4baigCAEUNJwtBASAMQSBqQQAgFSAMKAIoIAUQKiIHRQ0BIAcgBygCBEGAgAhyNgIEDAELIAUgDiAMKAIkIAxBGGoQJiIPQQBMBEBBp34hCAwmCyAMKAIYIRIgESgCAC0ACEEgcQRAIAUoAjQhEEEAIQcDQEGwfiEIIBIgB0ECdGooAgAiDiAQSg0nIA5BA3QgBSgCgAEiCyATIAsbaigCAEUNJyAHQQFqIgcgD0cNAAsLIA8gEkEBIBUgDCgCKCAFECoiB0UNACAHIAcoAgRBgIAIcjYCBAsgDCAHNgIsIAlBPEcgCUEnR3FFBEAgDCgCOCIIIARPDSIgCCAEIAooAhQRAAAhCSAMIAggCigCABEBACAIajYCOCAJQSlHDSILQQAhDgwgCyARKAIALQAHQRBxRQ0eIA4gBCAKKAIUEQAAQfsARw0eIA4gBCAKKAIUEQAAGiAMIA4gCigCABEBACAOajYCOCAMQSxqIAxBOGogBCAFECkiCA0jDAELIBEoAgAtAAdBIHFFDR0gDEEsaiAMQThqIAQgBRArIggNIgtBASEODB0LIBEoAgAoAgQiCUGACHFFDSsgCUGAAXEEQCAHIAQgCigCFBEAACEJIAwgByAKKAIAEQEAIAdqIg42AjhBASEKIAlBJ0YNICAJQTxGDSAgDCAHNgI4C0EBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDCwLIAhBBTYCACAIQv////8fNwIYIAAgCDYCACAMIAUQLCIINgJAIAhBAEgNKyAIQR9LBEBBon4hCAwsCyAAKAIAIAg2AhQgBSAFKAIQQQEgCHRyNgIQDCELIBEoAgAtAAlBIHENAgwqCyARKAIAKAIEQQBODQBBin8hCCAEIAdNDSkgByAEIAooAhQRAAAhCyAMIAcgCigCABEBACAHaiIONgI4QTwhCUEAIQpBiX8hCCALQTxGDR0MKQsgESgCAC0AB0HAAHENAAwoC0EAIQ9BACESA0BBASEOQYl/IQgCQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCALQSlrDlEPPj4+FT4+Pj4+Pj4+Pj4+PhA+Pj4+Pj4+PgwGPj4+Pg0+Pg4+Pj4IPj4HPj4+BT4+Pj4+Pj4+Pgo+Pj4+Pj4+AT4+PgM+Pj4+PgI+Pj4+AAk+CyAPRQ0QIAlBfXEhCQwUCyAPBEAgCUF+cSEJDBQLIAlBAXIMEAsgESgCAC0ABEEEcUUNOyAPRQ0BIAlBe3EhCQwSCyARKAIAKAIEIghBBHEEQCAJQXdxIA9FDQ8aIAlBCHIhCQwSCyAIQYiAgIAEcUUEQEGJfyEIDDsLIA9FDQAgCUF7cSEJDBELIAlBBHIMDQsgESgCAC0AB0HAAHFFDTggDwRAIAlB//97cSEJDBALIAlBgIAEcgwMCyARKAIALQAHQcAAcUUNNyAPBEAgCUH//3dxIQkMDwsgCUGAgAhyDAsLIBEoAgAtAAdBwABxRQ02IA8EQCAJQf//b3EhCQwOCyAJQYCAEHIMCgsgESgCAC0AB0HAAHFFDTUgD0UNAiAJQf//X3EhCQwMCyAPQQFGDTQgESgCACgCBEGAgICABHFFDTQgBCAHTQRAQYp/IQgMNQsgByAEIAooAhQRAABB+wBHDTQgByAEIAooAhQRAAAaIAQgByAKKAIAEQEAIAdqIgdNBEBBin8hCAw1CyAHIAQgCigCFBEAACEOIAcgCigCABEBACELAkACQAJAIA5B5wBrDhEANzc3Nzc3Nzc3Nzc3Nzc3ATcLQYCAwAAhDiAKLQBMQQJxDQEMNgtBgICAASEOIAotAExBAnENAAw1CyAEIAcgC2oiCE0EQEGKfyEIDDULIAggBCAKKAIUEQAAIQcgCCAKKAIAEQEAIQsgB0H9AEcEQEGJfyEIDDULIAggC2ohByAOIAlB//+/fnFyDAgLIBEoAgAtAAlBEHFFDTMgD0UNACAJQf//X3EhCQwKCyAJQYCAIHIMBgsgESgCAC0ACUEgcUUNMSAPQQFGBEBBiH8hCAwyCyAJQYABciEJDAcLIBEoAgAtAAlBIHFFDTAgD0EBRgRAQYh/IQgMMQsgCUGAgAJyIQkMBgsgESgCAC0ACUEgcUUNLyAPQQFGBEBBiH8hCAwwCyAJQRByIQkMBQsgDCAHNgI4QQFBOBDPASIKRQRAIABBADYCAEF7IQgMLwsgCiAJNgIUIApBATYCECAKQQU2AgAgACAKNgIAQQIhByASQQFHDScMAwsgDCAHNgI4IAUoAgAhByAFIAk2AgAgASAMQThqIAQgBRAaIghBAEgNLSAMQTxqIAFBDyAMQThqIAQgBUEAEBshCCAFIAc2AgAgCEEASARAIAwoAjwQEAwuC0EBQTgQzwEiCkUEQCAAQQA2AgBBeyEIDC4LIAogCTYCFCAKQQE2AhAgCkEFNgIAIAAgCjYCACAKIAwoAjw2AgxBACEHIBJBAUYNAiADIAwoAjg2AgAMKQsgCUECcgshCUEAIQ4MAgsgBSgCoAEiDkECcQRAQYh/IQgMKwsgBSAOQQJyNgKgASAKIAooAgRBgICAgAFyNgIEAkAgCUGAAXFFDQAgBSgCLCIKIAooAkhBgAFyNgJIIAlBgANxQYADRw0AQe18IQgMKwsgCUGAgAJxBEAgBSgCLCIKIAooAkhBgIACcjYCSCAKIAooAlBB/v+//3txQQFyNgJQCyAJQRBxRQ0jIAUoAiwiCiAKKAJIQRByNgJIDCMLQQAhDkEBIRILIAQgB00EQEGKfyEIDCkFIAcgBCAKKAIUEQAAIQsgByAKKAIAEQEAIAdqIQcgDiEPDAELAAsACyAFKAIAIQ0CQAJAQQFBOBDPASIHRQ0AIAdBfzYCGCAHQYCACDYCECAHQQY2AgAgDUGAgIABcQRAIAdBgICABDYCBAsgDCAHNgJAAkACQEEBQTgQzwEiDUUEQEEAIQ0MAQsgDUF/NgIMIA1CgoCAgICAgCA3AgAgDCANNgJEQQdBAiAMQUBrEC0iAkUNAEEBQTgQzwEiDUUEQEEAIQ0gAiEHDAELIA1BATYCGCANQoCAgIBwNwIQIA1ChICAgICAEDcCACANIAI2AgwgDCANNgJEQQFBOBDPASIHRQ0BIAdBfzYCDCAHQoKAgICAgIAgNwIAIAwgBzYCQEEHQQIgDEFAaxAtIgJFDQBBAUE4EM8BIgcNA0EAIQ0gAiEHCyAHEBEgBxDMASANRQ0BCyANEBEgDRDMAQtBeyEIDCcLQQAhDSAHQQA2AjQgB0ECNgIQIAdBBTYCACAHIAI2AgwgACAHNgIADCILQQFBOBDPASIHRQRAQXshCAwmCyAHQX82AgwgB0KCgICAgICAIDcCACAAIAc2AgAMIQtBAUE4EM8BIgdFBEBBeyEIDCULIAdBfzYCDCAHQQI2AgAgACAHNgIADCALQQ0gDEFAayAFKAIIKAIcEQAAIgdBAEgEQCAHIQgMJAtBCiAMQUBrIAdqIgogBSgCCCgCHBEAACICQQBIBEAgAiEIDCQLQXshCEEBQTgQzwEiDUUNIyANIA1BGGoiCTYCECANIAk2AgwCQCANIAxBQGsgAiAKahATDQAgDSANKAIUQQFyNgIUQQFBOBDPASICRQ0AIAJBATYCAAJAAkAgB0EBRgRAIAJBgPgANgIQDAELIAJBMGpBCkENEBkNAQsgBSgCCC0ATEECcQRAIAJBMGoiB0GFAUGFARAZDQEgB0GowABBqcAAEBkNAQtBAUE4EM8BIgdFDQAgB0EFNgIAIAdCAzcCECAHIA02AgwgByACNgIYIAAgBzYCAEEAIQ0MIQsgAhARIAIQzAELIA0QESANEMwBDCMLIAUgBSgCjAEiDUEBajYCjAEgAEEBQTgQzwEiBzYCACAHRQRAQXshCAwjCyAHIA02AhggB0EKNgIAIAdBATYCDCAFIAUoAogBQQFqNgKIAUEAIQ0MHgsgESgCACgCCCIHQQFxRQ0LQY9/IQggB0ECcQ0hQQFBOBDPASIHRQRAIABBADYCAEF7IQgMIgsgByAHQRhqIg02AhAgByANNgIMIAAgBzYCAEEAIQ0MHQsgBSgCACECIAEoAhQhDUEBQTgQzwEiBwRAIAdBfzYCGCAHIA02AhAgB0EGNgIAAkAgAkGAgCRxRQRAQQAhCgwBC0EBIQogDUGACEYNACANQYAQRg0AIA1BgCBGDQAgDUGAwABGIQoLIAcgCjYCHAJAIA1BgIAIRyANQYCABEdxDQAgAkGAgIABcUUNACAHQYCAgAQ2AgQLIAAgBzYCAEEAIQ0MHQsgAEEANgIAQXshCAwgCyABKAIgIQogASgCGCEJIAEoAhwhAiABKAIUIQ5BAUE4EM8BIgdFBEAgAEEANgIAQXshCAwgCyAHIAk2AhwgByAONgIYIAcgCjYCECAHQQk2AgAgB0EBNgIgIAcgAjYCFCAAIAc2AgAgBSAFKAIwQQFqNgIwIAINGyABKAIgRQ0bIAUgBSgCoAFBAXI2AqABDBsLAn8gASgCFCIHQQJOBEAgASgCHAwBCyABQRhqCyENIAAgByANIAEoAiAgASgCJCABKAIoIAUQKiIHNgIAQQAhDSAHDRpBeyEIDB4LIAUoAgAhDUEBQTgQzwEiBwRAIAdBfzYCDCAHQQI2AgAgDUEEcQRAIAdBgICAAjYCBAsgACAHNgIAQQFBOBDPASINRQRAQXshCAwfCyANQQE2AhggDUKAgICAcDcCECANQQQ2AgAgDSAHNgIMIAAgDTYCAEEAIQ0MGgsgAEEANgIAQXshCAwdCyAFKAIAIQ1BAUE4EM8BIgcEQCAHQX82AgwgB0ECNgIAIA1BBHEEQCAHQYCAgAI2AgQLIAAgBzYCAEEAIQ0MGQsgAEEANgIAQXshCAwcCyAAIAEgAyAEIAUQLiIIDRsgBS0AAEEBcUUNFyAAKAIAIQggDCAMQcgAajYCTCAMQQA2AkggDCAINgJEIAwgBTYCQCAFKAIEQQYgDEFAayAFKAIIKAIkEQIAIQggDCgCSCEHIAgEQCAHEBAMHAsgBwRAIAAoAgAhAkEBQTgQzwEiDUUEQCAHEBEgBxDMAUF7IQgMHQsgDSAHNgIQIA0gAjYCDCANQQg2AgAgACANNgIAC0EAIQ0MFwsgBSgCCCENIAMoAgAiCSEHA0BBi38hCCAEIAdNDRsgByAEIA0oAhQRAAAhAiAHIA0oAgARAQAgB2ohCgJAAkAgAkH7AGsOAx0dAQALIAohByACQShrQQJPDQEMHAsLIA0gCSAHIA0oAiwRAgAiCEEASARAIAMoAgAhACAFIAc2AiggBSAANgIkDBsLIAMgCjYCAEEBQTgQzwEiB0UEQCAAQQA2AgBBeyEIDBsLIAdBATYCACAAIAc2AgBBACENIAcgCEEAIAUQMCIIDRogASgCGEUNFiAHIAcoAgxBAXI2AgwMFgsCQAJAIAEoAhRBBGsOCQEbGxsbARsBABsLIAEoAhghBiAFKAIAIQdBAUE4EM8BIgIEQCACIAY2AhAgAkEMNgIMIAJBAjYCAEEBIQYCQCAHQYCAIHENACAHQYCAJHENAEEAIQYLIAIgBjYCFAsgACACIgc2AgAgBw0WQXshCAwaC0EBQTgQzwEiB0UEQCAAQQA2AgBBeyEIDBoLIAdBATYCACAAIAc2AgAgByABKAIUQQAgBRAwIggEQCAAKAIAEBAgAEEANgIADBoLIAEoAhhFDRUgByAHKAIMQQFyNgIMDBULAkACQCADKAIAIg4gBE8NACAFKAIIIQIgBSgCDCgCECEJIA4hBwNAAkAgByINIAQgAigCFBEAACEKIAcgAigCABEBACAHaiEHAkAgCSAKRw0AIAQgB00NACAHIAQgAigCFBEAAEHFAEYNAQsgBCAHSw0BDAILCyAHIAIoAgARAQAhAiANRQ0AIAIgB2ohCQwBCyAEIgkhDQsgBSgCACEKQQAhAgJAQQFBOBDPASIHRQ0AIAcgB0EYaiILNgIQIAcgCzYCDCAHIA4gDRATRQRAIAchAgwBCyAHEBEgBxDMAQsCQCAKQQFxBEAgAiACKAIEQYCAgAFyNgIEIAAgAjYCAAwBCyAAIAI2AgAgAg0AQXshCAwZCyADIAk2AgBBACENDBQLIAEoAhQgBSgCCCgCGBEBACIIQQBIDRcgASgCFCAMQUBrIAUoAggoAhwRAAAhCiAFKAIAIQ1BACECAkBBAUE4EM8BIgdFDQAgByAHQRhqIgk2AhAgByAJNgIMIAcgDEFAayAMQUBrIApqEBNFBEAgByECDAELIAcQESAHEMwBCyANQQFxBEAgAiACKAIEQYCAgAFyNgIEIAAgAjYCAEEAIQ0MFAsgACACNgIAQQAhDSACDRNBeyEIDBcLQYx/IQggESgCAC0ACEEEcUUNFiABKAIIDQELIAUoAgAhDSADKAIAIQIgASgCECEKQQAhBwJAQQFBOBDPASIIRQ0AIAggCEEYaiIJNgIQIAggCTYCDCAIIAogAhATRQRAIAghBwwBCyAIEBEgCBDMAQsgDUEBcQRAIAcgBygCBEGAgIABcjYCBCAAIAc2AgAMAgsgACAHNgIAIAcNAUF7IQgMFQsgBSgCACENIAwgAS0AFDoAQEEAIQgCQEEBQTgQzwEiB0UNACAHIAdBGGoiAjYCECAHIAI2AgwgByAMQUBrIAxBwQBqEBNFBEAgByEIDAELIAcQESAHEMwBCwJAAkAgDUEBcQRAIAggCCgCBEGAgIABcjYCBAwBCyAIRQ0BCyAIIAgoAhRBAXI2AhQLIAhCADcAKCAIQgA3ACEgCEIANwAZIAAgCDYCACAMQcEAaiENQQEhBwNAAkACQCAHIAUoAggiCCgCDEgNACAAKAIAKAIMIAgoAgARAQAgB0cNACABIAMgBCAFEBohCCAAKAIAIgcoAgwgBygCECAFKAIIKAJIEQAADQFB8HwhCAwXCyABIAMgBCAFEBoiCEEASA0WIAhBAUcEQEGyfiEIDBcLIAAoAgAhCCAMIAEtABQ6AEAgB0EBaiEHIAggDEFAayANEBMiCEEATg0BDBYLCyAAKAIAIgcgBygCFEF+cTYCFEEAIQ0MAQsDQCABIAMgBCAFEBoiCEEASA0UIAhBA0cEQEEAIQ0MAgsgACgCACABKAIQIAMoAgAQEyIIQQBODQALDBMLQQEMDwsgESgCAC0AB0EgcUUNACAMIAcgCigCABEBACAHajYCOCAAIAxBOGogBCAFECsiCA0GQQAhBwwKCyAFLQAAQYABcQ0IQQFBOBDPASIHRQRAIABBADYCAEF7IQgMEQsgB0EFNgIAIAdC/////x83AhggACAHNgIAAkAgBSgCNCIKQfSXESgCACIISA0AIAhFDQBBrn4hCAwRCyAKQQFqIQgCQCAKQQdOBEAgCCAFKAI8IglIBEAgBSAINgI0IAwgCDYCQAwCCwJ/IAUoAoABIgdFBEBBgAEQywEiB0UEQEF7IQgMFQsgByATKQIANwIAIAcgEykCODcCOCAHIBMpAjA3AjAgByATKQIoNwIoIAcgEykCIDcCICAHIBMpAhg3AhggByATKQIQNwIQIAcgEykCCDcCCEEQDAELIAcgCUEEdBDNASIHRQRAQXshCAwUCyAFKAI0IgpBAWohCCAJQQF0CyEJIAggCUgEQCAKQQN0IAdqQQhqQQAgCSAKQX9zakEDdBCoARoLIAUgCTYCPCAFIAc2AoABCyAFIAg2AjQgDCAINgJAIAhBAEgNESAAKAIAIQcLIAcgCDYCFAwGCyAMIAc2AjggASAMQThqIAQgBRAaIghBAEgNBEEBIQ4gDEEsaiABQQ8gDEE4aiAEIAVBABAbIghBAE4NACAMKAIsEBAMBAtBeyEIIAwoAiwiB0UNAyAMKAI4IgkgBEkNAQsgBxAQQYp/IQgMAgsCQAJAAkAgCSAEIAooAhQRAABBKUYEQCAORQ0BIAcQESAHEMwBQaB+IQgMBQsgCSAEIAooAhQRAAAiDkH8AEYEQCAJIAQgCigCFBEAABogDCAJIAooAgARAQAgCWo2AjgLIAEgDEE4aiAEIAUQGiIIQQBIBEAgBxARIAcQzAEMBQsgDEE8aiABQQ8gDEE4aiAEIAVBARAbIghBAEgEQCAHEBEgBxDMASAMKAI8EBAMBQtBACEJIAwoAjwhCgJAIA5B/ABGBEAgCiEODAELQQAhDiAKKAIAQQhHBEAgCiEJDAELIAooAgwhCQJAIAooAhAiCygCEARAIAshDgwBCyALKAIMIQ4gCxAxCyAKEDELQQFBOBDPASIKDQEgAEEANgIAIAcQESAHEMwBIAkQECAOEBBBeyEIDAQLIAkgBCAKKAIUEQAAGiAMIAkgCigCABEBACAJajYCOAwBCyAKQQM2AhAgCkEFNgIAIAogCTYCFCAKIAc2AgwgCiAONgIYIAohBwsgACAHNgIAQQAhBwwFCyAJIAxBOGogBCAMQTRqIAUgDEFAayAMQTBqQQAQJCIIQQBIDQsgBRAsIgdBAEgEQCAHIQgMDAsgB0EfSyAKcQRAQaJ+IQgMDAsgBSgCLCEVIAwoAjQhCyAFIQkjAEEQayISJAACQCALIA5rIhBBAEwEQEGqfiEJDAELIBUoAlQhDyASQQA2AgQCQAJAAkACQAJAIA8EQCASIAs2AgwgEiAONgIIIA8gEkEIaiASQQRqEI8BGiASKAIEIghFDQEgCCgCCCIPQQBMDQIgCSgCDC0ACUEBcQ0DIAkgCzYCKCAJIA42AiRBpX4hCQwGC0H8lxEQjAEiD0UEQEF7IQkMBgsgFSAPNgJUC0F7IQlBGBDLASIIRQ0EIAggFSgCRCAOIAsQdiIONgIAIA5FBEAgCBDMAQwFC0EIEMsBIgtFDQQgCyAONgIAIAsgDiAQajYCBCAPIAsgCBCQASIJBEAgCxDMASAJQQBIDQULIAhBADYCFCAIIBA2AgQgCEIBNwIIIAggBzYCEAwDCyAIIA9BAWoiDjYCCCAPDQEgCCAHNgIQDAILIAggD0EBaiIONgIIIA5BAkcNACAIQSAQywEiDjYCFCAORQRAQXshCQwDCyAIQQg2AgwgCCgCECELIA4gBzYCBCAOIAs2AgAMAQsgCCgCFCELIAgoAgwiCSAPTARAIAggCyAJQQN0EM0BIgs2AhQgC0UEQEF7IQkMAwsgCCAJQQF0NgIMIAgoAgghDgsgDkECdCALakEEayAHNgIAC0EAIQkLIBJBEGokACAJIggNAEEBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDAwLIAhChYCAgIDAADcCACAIQv////8fNwIYIAAgCDYCACAIIAc2AhQgB0EgSSAKcQRAIAUgBSgCEEEBIAd0cjYCEAsgBSAFKAI4QQFqNgI4DAELIAgiB0EATg0EDAoLIAAoAgAhCAsgCEUEQEF7IQgMCQsgASAMQThqIAQgBRAaIghBAEgNCCAMQTxqIAFBDyAMQThqIAQgBUEAEBshCCAMKAI8IQcgCEEASARAIAcQEAwJCyAAKAIAIAc2AgxBACEHIAAoAgAiCigCAEEFRw0BIAooAhANASAKKAIUIgkgBSgCNEoEQEF1IQgMCQsgCUEDdCAFKAKAASIOIBMgDhtqIAo2AgAMAQsgASAMQThqIAQgBRAaIghBAEgNB0EBIQcgACABQQ8gDEE4aiAEIAVBABAbIghBAEgNBwsgAyAMKAI4NgIACyAHQQJHBEAgB0EBRw0CIAZFBEBBASENDAMLIAAoAgAhDUEBQTgQzwEiB0UEQCAAQQA2AgAgDRAQQXshCAwHCyAHIA02AgwgB0EHNgIAIAAgBzYCAEECIQ0MAgsgESgCAC0ACUEEcQRAIAUgACgCACgCFDYCACABIAMgBCAFEBoiCEEASA0GIAAoAgAiCARAIAgQESAIEMwBCyAAQQA2AgAgASgCACIHIAJGDQQMAQsLIAUoAgAhByAFIAAoAgAoAhQ2AgAgASADIAQgBRAaIghBAEgNBCAMQUBrIAEgAiADIAQgBUEAEBshCCAFIAc2AgAgDCgCQCEFIAhBAEgEQCAFEBAMBQsgACgCACAFNgIMIAEoAgAhCAwEC0EACyEHA0AgB0UEQCABIAMgBCAFEBoiCEEASA0EQQEhBwwBCyAIQX5xQQpHDQMgACgCABAyBEBBjn8hCAwECyAWQQFqIhZB+JcRKAIASwRAQXAhCAwECyABKAIYIQIgASgCFCEKQQFBOBDPASIHRQRAQXshCAwECyAHQQE2AhggByACNgIUIAcgCjYCECAHQQQ2AgAgCEELRgRAIAdBgIABNgIECyAHIAEoAhw2AhggACgCACEIAkAgDUECRwRAIAghAgwBCyAIKAIMIQIgCEEANgIMIAgQESAIEMwBIABBADYCACAHKAIQIQoLQQEhCAJAIApBAUYEQCAHKAIUQQFGDQELQQAhCAJAAkACQAJAIAIiCSgCAA4FAAMDAwEDCyANDQIgAigCDCINIAIoAhBPDQIgDSAFKAIIKAIAEQEAIAIoAhAiDSACKAIMIgprTg0CIAogDU8NAiAFKAIIIAogDRB4Ig1FDQIgAigCDCANTw0CIAIoAhAhCkEBQTgQzwEiCUUEQCACIQkMAwsgCSAJQRhqIg42AhAgCSAONgIMIAkgDSAKEBNFDQEgCRARIAkQzAEgAiEJDAILAkACQCAHKAIYIg4EQAJAAkAgCg4CAAEDC0EBQX8gBygCFCIIQX9GG0EAIAhBAUcbIQ0MAwtBAiENIAcoAhRBf0cNAQwCCwJAAkAgCg4CAAECC0EDQQRBfyAHKAIUIghBf0YbIAhBAUYbIQ0MAgtBBSENIAcoAhRBf0YNAQtBfyENCyACKAIQIQgCQAJAAkAgAigCGARAAkAgCA4CAAIEC0EBQX8gAigCFCIIQX9GG0EAIAhBAUcbIQkMAgsCQAJAIAgOAgABBAtBA0EEQX8gAigCFCIIQX9GGyAIQQFGGyEJDAILQQUhCSACKAIUQX9HDQIMAQtBAiEJIAIoAhRBf0cNAQsCQCAJQQBIIggNACANQQBIDQAgESgCAC0AC0ECcUUNAQJAAkACQCAJQRhsQYAIaiANQQJ0aigCACIIDgIEAAELQfCXESgCAEEBRg0DIAxBQGsgBSgCCCAFKAIcIAUoAiBB/RVBABCLAQwBC0HwlxEoAgBBAUYNAiAFKAIgIQ4gBSgCHCELIAUoAgghDyAMIAhBAnRB8JkRaigCADYCCCAMIA1BAnRB0JkRaigCADYCBCAMIAlBAnRB0JkRaigCADYCACAMQUBrIA8gCyAOQboWIAwQiwELIAxBQGtB8JcRKAIAEQQADAELIAgNACANQQBODQBBACEIIAlBAWtBAUsEQCACIQkMAwsgBygCFEECSARAIAIhCQwDCyAORQRAIAIhCQwDCyAHIApBASAKGzYCFCACIQkMAgsgByACNgIMIAcQFyIIQQBODQIgBxARIAcQzAEgAEEANgIADAYLIAIgDTYCECAJIAIoAhQ2AhQgCSACKAIENgIEQQIhCAsgByAJNgIMCwJAIAEoAiBFBEAgByEKDAELQQFBOBDPASIKRQRAIAcQESAHEMwBQXshCAwFCyAKQQA2AjQgCkECNgIQIApBBTYCACAKIAc2AgwLQQAhDQJAAkACQAJAAkAgCA4DAAECAwsgACAKNgIADAILIAoQESAKEMwBIAAgAjYCAAwBCyAAKAIAIQdBAUE4EM8BIgJFBEAgAEEANgIADAILIAJBADYCECACIAc2AgwgAkEHNgIAIAAgAjYCAEEBQTgQzwEiB0UEQCACQQA2AhAMAgsgB0EANgIQIAcgCjYCDCAHQQc2AgAgACgCACAHNgIQIAdBDGohAAtBACEHDAELCyAKEBEgChDMAUF7IQgMAgsgAiEHC0EBQTgQzwEiCEUEQCAAQQA2AgBBeyEIDAELIAggCEEYaiIFNgIQIAggBTYCDCAAIAg2AgAgByEICyAMQcACaiQAIAgL1wYBCn8jAEEQayIMJABBnX4hCAJAIAEoAgAiCiACTw0AIAMoAgghBQNAIAIgCk0NASAKIAIgBSgCFBEAAEH7AEcEQCAKIQsDQCALIAIgBSgCFBEAACEHIAsgBSgCABEBACALaiEEAkAgB0H9AEcNACAGIQcgBgRAA0AgAiAETQ0GIAQgAiAFKAIUEQAAIQkgBCAFKAIAEQEAIARqIQQgCUH9AEcNAiAHQQFKIQkgB0EBayEHIAkNAAsLQYp/IQggAiAETQ0EIAQgAiAFKAIUEQAAIQcgBCAFKAIAEQEAIARqIQkCfyAHQdsARwRAQQAhBCAJDAELIAIgCU0NBSAJIQYDQAJAIAYiBCACIAUoAhQRAAAhByAEIAUoAgARAQAgBGohBiAHQd0ARg0AIAIgBksNAQsLQYp/QZl+IAUgCSAEEA0iBxshCCAHRQ0FIAIgBk0NBSAGIAIgBSgCFBEAACEHIAkhDSAGIAUoAgARAQAgBmoLIQZBASEJAkACQAJAAkACQCAHQTxrDh0BBAIEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQLQQMhCUGKfyEIIAIgBksNAgwIC0ECIQlBin8hCCACIAZLDQEMBwtBin8hCCACIAZNDQYLIAYgAiAFKAIUEQAAIQcgBiAFKAIAEQEAIAZqIQYLQZ1+IQggB0EpRw0EIAMgDEEMahA6IggNBCADKAIsED0iAkUEQEF7IQgMBQsgAigCAEUEQCADKAIsIAMoAhwgAygCIBA+IggNBQsgBCANRwRAIAMgAygCLCANIAQgDCgCDBA7IggNBQsgBSAKIAsQdiICRQRAQXshCAwFCwJAIAwoAgwiBUEATA0AIAMoAiwoAoQDIgRFDQAgBCgCDCAFSA0AIAQoAhQiB0UNACAAQQFBOBDPASIENgIAIARFDQAgBEF/NgIYIARBCjYCACAEIAU2AhQgBEIDNwIMIAcgBUEBa0HcAGxqIgUgAjYCJCAFQX82AgwgBSAJNgIIQQAhCCAFQQA2AgQgBSACIAsgCmtqNgIoIAEgBjYCAAwFCyACEMwBQXshCAwECyAEIgsgAkkNAAsMAgsgBkEBaiEGIAogBSgCABEBACAKaiIKIAJJDQALCyAMQRBqJAAgCAu0AgEDf0EBQTgQzwEiBkUEQEEADwsgBiAANgIMIAZBAzYCACACBH8gBkGAgAI2AgRBgIACBUEACyEHIAUtAABBAXEEQCAGIAdBgICAAXIiBzYCBAsgAwRAIAYgBDYCLCAGIAdBgMAAciIHNgIECwJAIABBAEwNACAFQUBrIQggBSgCNCEEQQAhAwNAAkACQCABIANBAnRqKAIAIgIgBEoNACACQQN0IAUoAoABIgIgCCACG2ooAgANACAGIAdBwAByNgIEDAELIANBAWoiAyAARw0BCwsgAEEGTARAIABBAEwNASAGQRBqIAEgAEECdBCmARoMAQsgAEECdCICEMsBIgNFBEAgBhARIAYQzAFBAA8LIAYgAzYCKCADIAEgAhCmARoLIAUgBSgChAFBAWo2AoQBIAYL6RMBHX8jAEHQAGsiDSQAAkAgAiABKAIAIg5NBEBBnX4hBwwBCyADKAIIIQUgDiEPA0BBin8hByAPIgkgAk8NASAJIAIgBSgCFBEAACEGIAkgBSgCABEBACAJaiEPAkAgBkEpRg0AIAZB+wBGDQAgBkHbAEcNAQsLIAkgDk0EQEGcfiEHDAELIA4hCgNAAkAgCiAJIAUoAhQRAAAiBEFfcUHBAGtBGkkNACAEQTBrQQpJIgggCiAORnEEQEGcfiEHDAMLIARB3wBGIAhyDQBBnH4hBwwCCyAKIAUoAgARAQAgCmoiCiAJSQ0AC0EAIQoCQCAGQdsARwRAIA8hEEEAIQ8MAQsgAiAPTQ0BIA8hBANAAkAgBCIKIAIgBSgCFBEAACEGIAQgBSgCABEBACAEaiEEIAZB3QBGDQAgAiAESw0BCwsgCiAPTQRAQZl+IQcMAgsgDyEGA0ACQCAGIAogBSgCFBEAACIIQV9xQcEAa0EaSQ0AIAhBMGtBCkkiCyAGIA9GcQRAQZl+IQcMBAsgCEHfAEYgC3INAEGZfiEHDAMLIAYgBSgCABEBACAGaiIGIApJDQALIAIgBE0NASAEIAIgBSgCFBEAACEGIAQgBSgCABEBACAEaiEQCwJAAkAgBkH7AEYEQCACIBBNDQMgAygCCCELIBAhBgNAQQAhB0EAIQggAiAGTQRAQZ1+IQcMBQsCQANAIAYgAiALKAIUEQAAIQQgBiALKAIAEQEAIAZqIQYCfwJAIAcEQCAEQSxGDQEgBEHcAEYNASAEQf0ARg0BIAhBAWohCAwBC0EBIARB3ABGDQEaIARBLEYNAyAEQf0ARg0DCyAIQQFqIQhBAAshByACIAZLDQALQZ1+IQcMBQsgBEH9AEcEQCAMIAhBAEdqIgxBBEkNAQsLQZ1+IQcgBEH9AEcNA0EAIQQgAiAGSwRAIAYgAiAFKAIUEQAAIQQLIA0gEDYCDCAFIARBKUcgDiAJIA1ByABqEDwiBw0DQeC/EigCACgCCCANKAJIIglBzABsaiIGKAIQIg5BAEoEQCANQTBqIAZBGGogDkECdBCmARoLIA1BMGohGSANQRBqIRcgAyEEQQAhCCMAQZABayITJABBnX4hCwJAIA1BDGoiHSgCACIGIAJPDQAgBCgCCCEUAkACQAJAA0BBnX4hCyACIAZNDQEgE0EQaiEVIAYhBEEAIRZBACEQQQAhDEEAIRIDQAJAIAQgAiAUKAIUEQAAIREgBCAUKAIAEQEAIARqIQcCQAJAIAwEQCARQSxGDQEgEUHcAEYNASARQf0ARg0BIBJBAWohEiAQIQQMAQtBASEMIBFB3ABGBEAgBCEQDAILIBFBLEYNAiARQf0ARg0CCyAHIARrIhEgFmoiFkGAAUoEQEGYfiELDAYLIBUgBCAREKYBGiASQQFqIRJBACEMCyATQRBqIBZqIRUgByIEIAJJDQEMBAsLIBIEQAJAIA5BAEgNACAIIA5IDQBBmH4hCwwECwJAIBkgCEECdGoiFigCACIMQQFxRQ0AAkAgFiASQQBKBH8gE0EMaiEeQQAhC0EAIRpBmH4hGwJAIBUgE0EQaiIYTQ0AQQEhHANAIBggFSAUKAIUEQAAIQwgGCAUKAIAEQEAIR8CQCAMQTBrIiBBCU0EQCALQa+AgIB4IAxrQQpuSg0DICAgC0EKbGohCwwBCyAaDQICQCAMQStrDgMBAwADC0F/IRwLQQEhGiAYIB9qIhggFUkNAAsgHiALIBxsNgIAQQAhGwsgG0UNASAWKAIABSAMC0F+cSIMNgIAIAwNAUGYfiELDAULIBcgCEEDdGogEygCDDYCAEEBIQwgFkEBNgIAC0F1IQsCQAJAAkACQCAMQR93DgkHAAEDBwMDAwIDCyASQQFHBEBBmH4hCwwHCyAXIAhBA3RqIBNBEGogFSAUKAIUEQAANgIADAILIBQgE0EQaiAVEHYiDEUEQEF7IQsMBgsgFyAIQQN0aiISIAwgBCAGa2o2AgQgEiAMNgIADAELQZl+IQsgEA0EIBQgBiAEEA1FDQQgFyAIQQN0aiIMIAQ2AgQgDCAGNgIACyAIQQFqIQgLIBFB/QBHBEAgByEGIAhBBEgNAQsLIBFB/QBGDQILQZ1+IQsLIAhBAEwNAUEAIQQDQAJAIBkgBEECdGooAgBBBEcNACAXIARBA3RqKAIAIgdFDQAgBxDMAQsgBEEBaiIEIAhHDQALDAELIB0gBzYCACAIIQsLIBNBkAFqJAAgCyIEQQBIBEAgBCEHDAQLQYp/IQcgDSgCDCIIIAJPDQIgCCACIAUoAhQRAAAhBiAIIAUoAgARAQAgCGohEAwBC0EAIQQgBUEAIA4gCSANQcgAahA8IgcNAkHgvxIoAgAoAgggDSgCSCIJQcwAbGoiBSgCECIOQQBMDQAgDUEwaiAFQRhqIA5BAnQQpgEaC0EAIQJB4L8SKAIAIQUCQCAJQQBIDQAgBSgCACAJTA0AIAUoAgggCUHMAGxqKAIEIQILQZh+IQcgBCAOSg0AIAQgDiAFKAIIIAlBzABsaigCFGtIDQBBnX4hByAGQSlHDQAgAyANQcwAahA6IgcNAEF7IQcgAygCLBA9IgVFDQACQCAFKAIADQAgAygCLCADKAIcIAMoAiAQPiIFRQ0AIAUhBwwBCwJAIAogD0YEQCANKAJMIQUMAQsgAyADKAIsIA8gCiANKAJMIgUQOyIKRQ0AIAohBwwBCyAFQQBMDQAgAygCLCgChAMiCkUNACAKKAIMIAVIDQAgCigCFCIKRQ0AQQFBOBDPASIPRQ0AIA8gCTYCGCAPQQo2AgAgDyAFNgIUIA9Cg4CAgBA3AgwgCiAFQQFrIgZB3ABsaiIFIAk2AgwgBSACNgIIIAVBATYCBEEAIQICQCAJQQBOBEAgCUHgvxIoAgAiBSgCAE4EQCAKIAZB3ABsakIANwIYDAILIAogBkHcAGxqIgIgCUHMAGwiByAFKAIIaiIIKAIANgIYIAIgCCgCCDYCHCAFKAIIIAdqKAIMIQIMAQsgBUIANwIYCyAKIAZB3ABsaiIKIA42AiQgCiACNgIgIAogBDYCKCAOQQBKBEBB4L8SKAIAIQZBACEFIAlBzABsIQIDQCAKIAVBAnQiCWogDUEwaiAJaigCADYCLCAKIAVBA3RqIAQgBUoEfyANQRBqIAVBA3RqBSAGKAIIIAJqIAVBA3RqQShqCykCADcCPCAFQQFqIgUgDkcNAAsLIAAgDzYCACABIBA2AgBBACEHDAELIARFDQBBACEJA0ACQCANQTBqIAlBAnRqKAIAQQRHDQAgDUEQaiAJQQN0aigCACIFRQ0AIAUQzAELIAlBAWoiCSAERw0ACwsgDUHQAGokACAHC5UCAQR/AkAgACgCNCIEQfSXESgCACIBTgRAQa5+IQIgAQ0BCyAEQQFqIQICQCAEQQdIDQAgACgCPCIDIAJKDQACfyAAKAKAASIBRQRAQYABEMsBIgFFBEBBew8LIAEgACkCQDcCACABIAApAng3AjggASAAKQJwNwIwIAEgACkCaDcCKCABIAApAmA3AiAgASAAKQJYNwIYIAEgACkCUDcCECABIAApAkg3AghBEAwBCyABIANBBHQQzQEiAUUEQEF7DwsgACgCNCIEQQFqIQIgA0EBdAshAyACIANIBEAgBEEDdCABakEIakEAIAMgBEF/c2pBA3QQqAEaCyAAIAM2AjwgACABNgKAAQsgACACNgI0CyACC4EBAQJ/AkAgAUEATA0AQQFBOBDPASEDAkAgAUEBRgRAIANFDQIgAyAANgIAIAMgAigCADYCDAwBCyADRQ0BIAAgAUEBayACQQRqEC0iAUUEQCADEBEgAxDMAUEADwsgAyAANgIAIAIoAgAhBCADIAE2AhAgAyAENgIMCyADIQQLIAQLqyUBEn8jAEHQA2siByQAIABBADYCACAEIAQoApwBQQFqIgU2ApwBQXAhBgJAIAVB+JcRKAIASw0AIAdBAzYCSEECIQUCQCABIAIgAyAEQQMQMyIGQQJHIgtFBEBBASESIAEoAhRB3gBHDQEgASgCCA0BIAEgAiADIARBAxAzIQYLIAZBAEgNASAGQRhHBEAgCyESIAYhBQwBC0GafyEGIAIoAgAiBSAEKAIgIghPDQEgBCgCCCEKA0ACQCAJBH9BAAUgBSAIIAooAhQRAAAhCSAFIAooAgARAQAhEiAJQd0ARg0BIAUgEmohBSAJIAQoAgwoAhBGCyEJIAUgCEkNAQwDCwsCQEHslxEoAgBBAUYNACAEKAIMKAIIQYCAgAlxQYCAgAlHDQAgBCgCICEGIAQoAhwhCSAEKAIIIQggB0HfCTYCMCAHQZABaiAIIAkgBkGlDyAHQTBqEIsBIAdBkAFqQeyXESgCABEEAAtBAiEFIAFBAjYCACALIRILQQFBOBDPASIKRQRAIABBADYCAEF7IQYMAQsgCkEBNgIAIAAgCjYCACAHQQA2AkQgByACKAIANgKIASAHQZcBaiEVA0AgBSEJA0ACQEGZfyEFQXUhBgJAAkAgASAHQYgBaiADIAQCfwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCQ4dGAAVGgEaAxoaGhoaGhoaGhoaBBoaGhoaCQUCBwYaCwJAIAQoAggiBigCCCIJQQFGDQAgASgCDCIIRQ0AIAcgAS0AFDoAkAFBASEFIAcoAogBIQsCQAJAAkAgCUECTgRAAkADQCABIAdBiAFqIAMgBEECEDMiBkEASA0gQQEhCSAGQQFHDQEgASgCDCAIRw0BIAdBkAFqIAVqIAEtABQ6AAAgBUEBaiIFIAQoAggoAghIDQALQQAhCQsgBSAEKAIIIgYoAgxODQFBsn4hBgweC0EAIQkgBigCDEEBTA0BQbJ+IQYMHQsgBUEGSw0BCyAHQZABaiAFakEAIAVBB3MQqAEaCyAHQZABaiAGKAIAEQEAIgggBUoEQEGyfiEGDBsLAkAgBSAISgR/IAcgCzYCiAFBACEJQQEhBSAIQQJIDQEDQCABIAdBiAFqIAMgBEECEDMiBkEASA0dIAVBAWoiBSAIRw0ACyAIBSAFC0EBRg0AIAdBkAFqIBUgBCgCCCgCFBEAACEGQQEhCEECDBcLIActAJABIQYMFAsgAS0AFCEGQQAhCQwTCyABKAIUIQZBACEJQQEhCAwRCyAEKAIIIQZBACEJAkAgBygCiAEiBSADTw0AIAUgAyAGKAIUEQAAQd4ARw0AIAUgBigCABEBACAFaiEFQQEhCQtBACEQIAMgBSILSwRAA0AgEEEBaiEQIAsgBigCABEBACALaiILIANJDQALCwJAIBBBB0gNACAGIAUgA0GHEEEFEIYBRQRAQZCYESEIDA8LIAYgBSADQecQQQUQhgFFBEBBnJgRIQgMDwsgBiAFIANB2RFBBRCGAUUEQEGomBEhCAwPCyAGIAUgA0GgEkEFEIYBRQRAQbSYESEIDA8LIAYgBSADQa4SQQUQhgFFBEBBwJgRIQgMDwsgBiAFIANB4RJBBRCGAUUEQEHMmBEhCAwPCyAGIAUgA0GQE0EFEIYBRQRAQdiYESEIDA8LIAYgBSADQagTQQUQhgFFBEBB5JgRIQgMDwsgBiAFIANB0xNBBRCGAUUEQEHwmBEhCAwPCyAGIAUgA0GqFEEFEIYBRQRAQfyYESEIDA8LIAYgBSADQbAUQQUQhgFFBEBBiJkRIQgMDwsgBiAFIANB9xRBBhCGAUUEQEGUmREhCAwPCyAGIAUgA0GoFUEFEIYBRQRAQaCZESEIDA8LIAYgBSADQcgVQQQQhgENAEGsmREhCAwOC0EAIQkDQCADIAVNDQ8CQCAFIAMgBigCFBEAACIIQTpGDQAgCEHdAEYNECAFIAYoAgARAQAhCCAJQRRGDRAgBSAIaiIFIANPDRAgBSADIAYoAhQRAAAiCEE6Rg0AIAhB3QBGDRAgCUECaiEJIAUgBigCABEBACAFaiEFDAELCyAFIAYoAgARAQAgBWoiBSADTw0OIAUgAyAGKAIUEQAAIQkgBSAGKAIAEQEAGiAJQd0ARw0OQYd/IQYMFwsgCiABKAIUIAEoAhggBBAwIgUNFAwOCyAEKAIIIQkgBygCiAEiDSEFA0BBi38hBiADIAVNDRYgBSADIAkoAhQRAAAhCCAFIAkoAgARAQAgBWohCwJAAkAgCEH7AGsOAxgYAQALIAshBSAIQShrQQJPDQEMFwsLIAkgDSAFIAkoAiwRAgAiBkEASARAIAQgBTYCKCAEIA02AiQMFgsgByALNgKIASAKIAYgASgCGCAEEDAiBUUNDQwTCwJAAkACQAJAIAcoAkgOBAACAwEDCyABIAdBiAFqIAMgBEEBEDMiBUEASA0VQQEhCUEAIQhBLSEGAkACQCAFQRhrDgQSAQEAAQsgBEG6DhA0DBELIAcoAkRBA0cNBUGQfyEGDBcLIAEoAhQhBiABIAdBiAFqIAMgBEEAEDMiBUEASA0UQQEhCUEAIQggFkUgBUEZR3END0HslxEoAgBBAUYNDyAEKAIMKAIIQYCAgAlxQYCAgAlHDQ8gBCgCICELIAQoAhwhDSAEKAIIIQ8gB0G6DjYCECAHQZABaiAPIA0gC0GlDyAHQRBqEIsBIAdBkAFqQeyXESgCABEEAAwPC0HslxEoAgBBAUYNECAEKAIMKAIIQYCAgAlxQYCAgAlHDRAgBCgCICEGIAQoAhwhCSAEKAIIIQggB0G6DjYCICAHQZABaiAIIAkgBkGlDyAHQSBqEIsBIAdBkAFqQeyXESgCABEEAAwQCyABIAdBiAFqIAMgBEEAEDMiBUEASA0SQQEhCUEAIQhBLSEGAkACQCAFQRhrDgQPAQEAAQsgBEG6DhA0DA4LIAQoAgwtAApBgAFxRQRAQZB/IQYMFQsgBEG6DhA0DA0LIAcoAkhFBEAgCiAHQYwBakEAIAdBzABqQQAgBygCRCAHQcQAaiAHQcgAaiAEEDUiBg0UCyAHQQI2AkggB0FAayABIAdBiAFqIAMgBBAuIQYgBygCQCEJIAYEQCAJRQ0UIAkQESAJEMwBDBQLIAlBEGohBiAJKAIMQQFxIQ0gCkEQaiIOIQUgCigCDEEBcSILBEAgByAKKAIQQX9zNgKQASAHIAooAhRBf3M2ApQBIAcgCigCGEF/czYCmAEgByAKKAIcQX9zNgKcASAHIAooAiBBf3M2AqABIAcgCigCJEF/czYCpAEgByAKKAIoQX9zNgKoASAHIAooAixBf3M2AqwBIAdBkAFqIQULIAYoAgAhCCANBEAgByAJKAIUQX9zNgKkAyAHIAkoAhhBf3M2AqgDIAcgCSgCHEF/czYCrAMgByAJKAIgQX9zNgKwAyAHIAkoAiRBf3M2ArQDIAcgCSgCKEF/czYCuAMgByAJKAIsQX9zNgK8AyAIQX9zIQggB0GgA2ohBgsgBCgCCCEPIAkoAjAhESAKKAIwIRMgBSAFKAIAIAhyIgg2AgAgBSAFKAIEIAYoAgRyNgIEIAUgBSgCCCAGKAIIcjYCCCAFIAUoAgwgBigCDHI2AgwgBSAFKAIQIAYoAhByNgIQIAUgBSgCFCAGKAIUcjYCFCAFIAUoAhggBigCGHI2AhggBSAFKAIcIAYoAhxyNgIcIAUgDkcEQCAKIAg2AhAgCiAFKAIENgIUIAogBSgCCDYCGCAKIAUoAgw2AhwgCiAFKAIQNgIgIAogBSgCFDYCJCAKIAUoAhg2AiggCiAFKAIcNgIsCyALBEAgCiAKKAIQQX9zNgIQIApBFGoiBSAFKAIAQX9zNgIAIApBGGoiBSAFKAIAQX9zNgIAIApBHGoiBSAFKAIAQX9zNgIAIApBIGoiBSAFKAIAQX9zNgIAIApBJGoiBSAFKAIAQX9zNgIAIApBKGoiBSAFKAIAQX9zNgIAIApBLGoiBSAFKAIAQX9zNgIAC0EAIQYgDygCCEEBRg0HAkACQAJAIAtFDQAgDUUNACAHQQA2AswDIBNFBEAgCkEANgIwDAsLIBFFDQEgEygCACIFKAIAIhRFDQEgBUEEaiEQIBEoAgAiBUEEaiEOIAUoAgAhD0EAIREDQAJAIA9FDQAgECARQQN0aiIFKAIAIQsgBSgCBCEIQQAhBQNAIA4gBUEDdGoiBigCACINIAhLDQEgCyAGKAIEIgZNBEAgB0HMA2ogCyANIAsgDUsbIAggBiAGIAhLGxAZIgYNDQsgBUEBaiIFIA9HDQALCyARQQFqIhEgFEcNAAsMBgsgDyATIAsgESANIAdBzANqEDYiBg0BIAtFDQEgDyAHKALMAyIFIAdBnANqEDciBgRAIAVFDQogBSgCACIIBEAgCBDMAQsgBRDMAQwKCyAFBEAgBSgCACIGBEAgBhDMAQsgBRDMAQsgByAHKAKcAzYCzAMMBQsgCkEANgIwDAULIAZFDQMMBwsgBygCSEUEQCAKIAdBjAFqQQAgB0HMAGpBACAHKAJEIAdBxABqIAdByABqIAQQNSIFDRELIAdBAzYCSAJ/IAxFBEAgCiEMIAdB0ABqDAELIAwgCiAEKAIIEDgiBQ0RIAooAjAiBQRAIAUoAgAiBgRAIAYQzAELIAUQzAELIAoLIgZCADcCDCAGQgA3AiwgBkIANwIkIAZCADcCHCAGQgA3AhRBASEWIAYhCkEDDA8LIAdBATYCSAwQCyAHKAJIRQRAIAogB0GMAWpBACAHQcwAakEAIAcoAkQgB0HEAGogB0HIAGogBBA1IgYNEQsCQCAMRQRAIAohDAwBCyAMIAogBCgCCBA4IgYNESAKKAIwIgAEQCAAKAIAIgEEQCABEMwBCyAAEMwBCwsgDCAMKAIMQX5xIBJBAXNyNgIMAkAgEg0AIAQoAgwtAApBEHFFDQACQCAMKAIwDQAgDCgCEA0AIAwoAhQNACAMKAIYDQAgDCgCHA0AIAwoAiANACAMKAIkDQAgDCgCKA0AIAwoAixFDQELQQpBACAEKAIIKAIwEQAARQ0AQQogBCgCCCgCGBEBAEEBRgRAIAwgDCgCEEGACHI2AhAMAQsgDEEwakEKQQoQGRoLIAIgBygCiAE2AgAgBCAEKAKcAUEBazYCnAFBACEGDBMLIAogBygCzAM2AjAgE0UNAQsgEygCACIFBEAgBRDMAQsgExDMAQtBACEGCyAJRQ0BCyAJEBEgCRDMAQsgBg0KQQIMBwtBACEUAkAgCC4BCCIOQQBMDQAgDkEBayEQIA5BA3EiCwRAA0AgDkEBayEOIAUgBigCABEBACAFaiEFIBRBAWoiFCALRw0ACwsgEEEDSQ0AA0AgBSAGKAIAEQEAIAVqIgUgBigCABEBACAFaiIFIAYoAgARAQAgBWoiBSAGKAIAEQEAIAVqIQUgDkEFayEUIA5BBGshDiAUQX5JDQALCyAGIAVBACADIAVPGyINIANB6RVBAhCGAQRAQYd/IQYMCgsgCiAIKAIEIAkgBBAwIgVFBEAgByANIAYoAgARAQAgDWoiBSAGKAIAEQEAIAVqNgKIAQwCCyAFQQBIDQcgBUEBRw0BCwJAQeyXESgCAEEBRg0AIAQoAgwoAghBgICACXFBgICACUcNACAEKAIgIQYgBCgCHCEJIAQoAgghCCAHQckNNgIAIAdBkAFqIAggCSAGQaUPIAcQiwEgB0GQAWpB7JcRKAIAEQQACyAHIAEoAhA2AogBIAEoAhQhBkEAIQhBACEJDAELQZJ/IQUCQAJAIAcoAkgOAgAHAQsCQAJAIAcoAkRBAWsOAgEAAgsgCkEwaiAHKAKMASIFIAUQGSIFQQBODQEMBwsgCiAHKAKMASIFQQN2Qfz///8BcWpBEGoiBiAGKAIAQQEgBXRyNgIACyAHQQM2AkQgB0EANgJIQQAMBAsgBiAEKAIIKAIYEQEAIgVBAEgEQCAHKAJIQQFHDQUgBkGAAkkNBSAEKAIMKAIIQYCAgCBxRQ0FIAQoAggoAghBAUYNBQtBAUECIAVBAUYbDAILQQEhCEEBDAELIAEoAhQgBCgCCCgCGBEBACIFQQBIDQIgASgCFCEGQQAhCEEAIQlBAUECIAVBAUYbCyEFIAogB0GMAWogBiAHQcwAaiAIIAUgB0HEAGogB0HIAGogBBA1IgUNASAJDQIgBygCSAsQMyIFQQBODQQLIAUhBgwBCyABKAIAIQkMAQsLCyAKIAAoAgBGDQAgCigCMCIERQ0AIAQoAgAiBQRAIAUQzAELIAQQzAELIAdB0ANqJAAgBguaBwELfyMAQSBrIgYkACADKAIEIQQgAygCACgCCCEHAkACQAJAAkACfwJAAkACQCACQQFGBEAgByAAIAQQVCEAIAQoAgxBAXEhBQJAIAAEQEEAIQAgBUUNAQwKC0EAIQAgBUUNCQsgBygCDEEBTARAIAEoAgAgBygCGBEBAEEBRg0CCyAEQTBqIAEoAgAiBCAEEBkaDAcLIAcgACAEEFRFDQYgBC0ADEEBcQ0GIAJBAEwEQAwDCwNAQQAhBAJAAkACQAJAIActAExBAnFFDQAgASAJQQJ0aiIKEJoBIgRBAEgNAEEBQTgQzwEiBUUNBiAFQQE2AgAgBEECdCIEQYCcEWooAgQiC0EASgRAIAVBMGohDCAEQYicEWohDUEAIQADQCANIABBAnRqKAIAIQQCQAJAIAcoAgxBAUwEQCAEIAcoAhgRAQBBAUYNAQsgDCAEIAQQGRoMAQsgBSAEQQN2Qfz///8BcWpBEGoiDiAOKAIAQQEgBHRyNgIACyAAQQFqIgAgC0cNAAsLIAcoAgxBAUwEQCAKKAIAIAcoAhgRAQBBAUYNAgsgBUEwaiAKKAIAIgQgBBAZGgwCCyABIAlBAnRqKAIAIAZBGWogBygCHBEAACEAAkAgCARAIAhBAnQgBmooAggiBSgCAEUNAQtBAUE4EM8BIgVFDQYgBSAFQRhqIgs2AhAgBSALNgIMIAUgBkEZaiAGQRlqIABqEBMEQCAFEBEgBRDMAQwHCyAFQRRBBCAEG2oiACAAKAIAQQJBgICAASAEG3I2AgAMAgsgBSAGQRlqIAZBGWogAGoQE0EASA0FDAILIAUgCigCACIEQQN2Qfz///8BcWpBEGoiACAAKAIAQQEgBHRyNgIACyAGQQxqIAhBAnRqIAU2AgAgCEEBaiEICyAJQQFqIgkgAkcNAAsgCEEBRw0CIAYoAgwMAwsgBCABKAIAIgBBA3ZB/P///wFxakEQaiIEIAQoAgBBASAAdHI2AgAMBQsgCEEATA0CQQAhBANAIAZBDGogBEECdGooAgAiAARAIAAQESAAEMwBCyAEQQFqIgQgCEcNAAsMAgtBByAIIAZBDGoQLQshAEEBQTgQzwEiBARAIARBADYCECAEIAA2AgwgBEEINgIACyADKAIMIAQ2AgAgAygCDCgCACIEDQEgAEUNACAAEBEgABDMAQtBeyEADAILIAMgBEEQajYCDAtBACEACyAGQSBqJAAgAAuYFAEKfyMAQRBrIgokACADKAIIIQUCQCABQQBIDQAgAUENTQRAQQEhByADLQACQQhxDQELQYCAJCEEQQAhBwJAAkACQCABQQRrDgkAAwMDAwEDAwIDC0GAgCghBAwBC0GAgDAhBAsgAygCACAEcUEARyEHCwJAAkACQAJAAkACQCABIApBCGogCkEMaiAFKAI0EQIAIgZBAmoOAwEFAAULIAooAgwiASgCACEIIAooAgghBSAHRQRAAkACQCACBEBBACEDAkAgCEEASgRAQQAhAgNAIAEgAkEDdGpBBGoiBigCACADSwRAIAMgBSADIAVLGyEHA0AgAyAHRg0EIAAgA0EDdkH8////AXFqQRBqIgQgBCgCAEEBIAN0cjYCACADQQFqIgMgBigCAEkNAAsLIAJBA3QgAWooAghBAWohAyACQQFqIgIgCEcNAAsLIAMgBU8NACADQQFqIQQgBSADa0EBcQRAIAAgA0EDdkH8////AXFqQRBqIgYgBigCAEEBIAN0cjYCACAEIQMLIAQgBUYNACAAQRBqIQQDQCAEIANBA3ZB/P///wFxaiIGIAYoAgBBASADdHI2AgAgBCADQQFqIgZBA3ZB/P///wFxaiIHIAcoAgBBASAGdHI2AgAgA0ECaiIDIAVHDQALCyAIQQBMDQIgAEEwaiEHQQAhAwwBC0EAIQZBACEHIAhBAEwNBQNAAkAgASAHQQN0aiIEQQRqIgsoAgAiAyAEQQhqIgIoAgAiBEsNACADIAUgAyAFSxshCSADIAVJBH8DQCAAIANBA3ZB/P///wFxakEQaiIEIAQoAgBBASADdHI2AgAgAyACKAIAIgRPDQIgA0EBaiIDIAlHDQALIAsoAgAFIAMLIAlPDQcgAEEwaiAJIAQQGSIGDQkgB0EBaiEHDAcLIAdBAWoiByAIRw0ACwwHCwNAIAEgA0EDdGooAgQiBCAFSwRAIAcgBSAEQQFrEBkiBg0ICyADQQN0IAFqKAIIQQFqIgVFDQYgA0EBaiIDIAhHDQALCyAAQTBqIAVBfxAZIgYNBQwECwJAAkAgAgRAQQAhAyAIQQBKBEBBACECA0AgASACQQN0aigCBCIGQf8ASw0DIAMgBkkEQCADIAUgAyAFSxshBwNAIAMgB0YNBiAAIANBA3ZB/P///wFxakEQaiIEIAQoAgBBASADdHI2AgAgA0EBaiIDIAZHDQALC0H/ACACQQN0IAFqKAIIIgMgA0H/AE8bQQFqIQMgAkEBaiICIAhHDQALCyADIAVPDQIgA0EBaiEEIAUgA2tBAXEEQCAAIANBA3ZB/P///wFxakEQaiIGIAYoAgBBASADdHI2AgAgBCEDCyAEIAVGDQIgAEEQaiEEA0AgBCADQQN2Qfz///8BcWoiBiAGKAIAQQEgA3RyNgIAIAQgA0EBaiIGQQN2Qfz///8BcWoiByAHKAIAQQEgBnRyNgIAIANBAmoiAyAFRw0ACwwCC0EAIQZBACEEIAhBAEwNAwNAIAEgBEEDdGoiB0EEaiIMKAIAIgMgB0EIaiIJKAIAIgJNBEAgAyAFIAMgBUsbIQtBgAEgAyADQYABTRshDQNAIAMgDUYNCCADIAtGBEAgCyAMKAIATQ0HIABBMGogC0H/ACACIAJB/wBPGxAZIgYNCiAEQQFqIQQMBwsgACADQQN2Qfz///8BcWpBEGoiByAHKAIAQQEgA3RyNgIAIAMgCSgCACICSSEHIANBAWohAyAHDQALCyAEQQFqIgQgCEcNAAsMBgsgAyAFTw0AIANBAWohBCAFIANrQQFxBEAgACADQQN2Qfz///8BcWpBEGoiBiAGKAIAQQEgA3RyNgIAIAQhAwsgBCAFRg0AIABBEGohBANAIAQgA0EDdkH8////AXFqIgYgBigCAEEBIAN0cjYCACAEIANBAWoiBkEDdkH8////AXFqIgcgBygCAEEBIAZ0cjYCACADQQJqIgMgBUcNAAsLAkAgCEEATA0AIABBMGohB0EAIQMDQCABIANBA3RqKAIEIgRB/wBLDQEgBCAFSwRAIAcgBSAEQQFrEBkiBg0HC0H/ACADQQN0IAFqKAIIIgUgBUH/AE8bQQFqIQUgA0EBaiIDIAhHDQALCyAAQTBqIAVBfxAZIgYNBAwDC0F1IQYgAUEOSw0DQf8AQYACIAcbIQQgBSgCCCEJAkACQEEBIAF0IgNB3t4BcUUEQCADQaAhcUUNBkEAIQMgAg0BIAlBAUYhBgNAAkAgBkUEQCADIAUoAhgRAQBBAUcNAQsgAyABIAUoAjARAABFDQAgACADQQN2Qfz///8BcWpBEGoiCCAIKAIAQQEgA3RyNgIACyADQQFqIgMgBEcNAAsgByAJQQFGcg0FIAUoAghBAUYNBSAAQTBqIAUoAgxBAkhBB3RBfxAZIgZFDQUMBgtBACEDIAJFBEAgCUEBRiEGA0ACQCAGRQRAIAMgBSgCGBEBAEEBRw0BCyADIAEgBSgCMBEAAEUNACAAIANBA3ZB/P///wFxakEQaiIIIAgoAgBBASADdHI2AgALIANBAWoiAyAERw0ACwwFCyAJQQFGIQYDQAJAIAZFBEAgAyAFKAIYEQEAQQFHDQELIAMgASAFKAIwEQAADQAgACADQQN2Qfz///8BcWpBEGoiCCAIKAIAQQEgA3RyNgIACyAEIANBAWoiA0cNAAsMAQsgCUEBRiEGA0ACQCAGRQRAIAMgBSgCGBEBAEEBRw0BCyADIAEgBSgCMBEAAA0AIAAgA0EDdkH8////AXFqQRBqIgggCCgCAEEBIAN0cjYCAAsgA0EBaiIDIARHDQALIAdFDQNB/wEgBCAEQf8BTRshBEH/ACEDIAlBAUYhBgNAAkAgBkUEQCADIAUoAhgRAQBBAUcNAQsgACADQQN2Qfz///8BcWpBEGoiASABKAIAQQEgA3RyNgIACyADIARHIQEgA0EBaiEDIAENAAsgByAJQQFHcUUNAyAFKAIIQQFGDQMgAEEwaiAFKAIMQQJIQQd0QX8QGSIGDQQMAwsgBwRAQf8BIAQgBEH/AU0bIQRB/wAhAyAJQQFGIQYDQAJAIAZFBEAgAyAFKAIYEQEAQQFHDQELIAAgA0EDdkH8////AXFqQRBqIgEgASgCAEEBIAN0cjYCAAsgAyAERyEBIANBAWohAyABDQALCyAJQQFGDQIgBSgCCEEBRg0CIABBMGogBSgCDEECSEEHdEF/EBkiBg0DDAILIAQgCE4NASAAQTBqIQADQCABIARBA3RqKAIEIgNB/wBLDQIgACADQf8AIARBA3QgAWooAggiBSAFQf8ATxsQGSIGDQMgCCAEQQFqIgRHDQALDAELIAcgCE4NACAAQTBqIQUDQCAFIAEgB0EDdGoiAygCBCADKAIIEBkiBg0CIAdBAWoiByAIRw0ACwtBACEGCyAKQRBqJAAgBgsSACAAQgA3AgwgABARIAAQzAELWwEBf0EBIQECQAJAAkACQCAAKAIAQQZrDgUDAAECAwILA0BBACEBIAAoAgwQMkUNAyAAKAIQIgANAAsMAgsDQCAAKAIMEDINAiAAKAIQIgANAAsLQQAhAQsgAQurFAEJfyMAQRBrIgYkACAGIAEoAgAiCzYCCCADKAIMIQwgAygCCCEHAkACQCAAKAIEBEAgACgCDCENIAshBQJAAkACQANAAkACQCACIAVNDQAgBSACIAcoAhQRAAAhCSAFIAcoAgARAQAgBWohCEECIQoCQCAJQSBrDg4CAQEBAQEBAQEBAQEBBQALIAlBCkYNASAJQf0ARg0DCyAGIAU2AgAgBiACIAcgBkEMaiANEB4iCg0EQQAhCiAGKAIAIQgMAwsgCCIFIAJJDQALQfB8IQoMBQtBASEKCyAGIAg2AgggCCELCwJAAkACQCAKDgMBAgAFCyAAQRk2AgAMAwsgAEEENgIAIAAgBigCDDYCFAwCCyAAQQA2AgQLIAIgC00EQEEAIQogAEEANgIADAILIAsgAiAHKAIUEQAAIQUgBiALIAcoAgARAQAgC2oiCDYCCCAAIAU2AhQgAEECNgIAIABCADcCCAJAIAVBLUcEQCAFQd0ARw0BIABBGDYCAAwCCyAAQRk2AgAMAQsCQCAMKAIQIAVGBEAgDC0ACkEgcUUNAkGYfyEKIAIgCE0NAyAIIAIgBygCFBEAACEFIAYgCCAHKAIAEQEAIAhqIgk2AgggACAFNgIUIABBATYCCAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBUEwaw5JDw8PDw8PDw8QEBAQEBAQEBAQEBADEBAQBxAQEBAQEBAIEBAFEA4QARAQEBAQEBAQEBAQEAIQEBAGEBAQEBAQCQgQEAQQDRAAChALIABCDDcCFCAAQQY2AgAMEgsgAEKMgICAEDcCFCAAQQY2AgAMEQsgAEIENwIUIABBBjYCAAwQCyAAQoSAgIAQNwIUIABBBjYCAAwPCyAAQgk3AhQgAEEGNgIADA4LIABCiYCAgBA3AhQgAEEGNgIADA0LIAwtAAZBCHFFDQwgAEILNwIUIABBBjYCAAwMCyAMLQAGQQhxRQ0LIABCi4CAgBA3AhQgAEEGNgIADAsLIAIgCU0NCiAJIAIgBygCFBEAAEH7AEcNCiAMLQAGQQFxRQ0KIAYgCSAHKAIAEQEAIAlqIgg2AgggACAFQdAARjYCGCAAQRI2AgAgAiAITQ0KIAwtAAZBAnFFDQogCCACIAcoAhQRAAAhBSAGIAggBygCABEBACAIajYCCCAFQd4ARgRAIAAgACgCGEU2AhgMCwsgBiAINgIIDAoLIAIgCU0NCSAJIAIgBygCFBEAAEH7AEcNCSAMKAIAQQBODQkgBiAJIAcoAgARAQAgCWo2AgggBkEIaiACQQsgByAGQQxqECAiCkEASA0KQQghCCAGKAIIIgUgAk8NASAFIAIgBygCFBEAACILQf8ASw0BQax+IQogC0EEIAcoAjARAABFDQEMCgsgAiAJTQ0IIAkgAiAHKAIUEQAAIQggDCgCACEFIAhB+wBHDQEgBUGAgICABHFFDQEgBiAJIAcoAgARAQAgCWo2AgggBkEIaiACQQBBCCAHIAZBDGoQISIKQQBIDQlBECEIIAYoAggiBSACTw0AIAUgAiAHKAIUEQAAIgtB/wBLDQBBrH4hCiALQQsgBygCMBEAAA0JCyAAIAg2AgwgCSAHKAIAEQEAIAlqIAVJBEBB8HwhCiACIAVNDQkCQCAFIAIgBygCFBEAAEH9AEYEQCAGIAUgBygCABEBACAFajYCCAwBCyAAKAIMIQwgBEEBRyEIQQAhCUEAIQ0jAEEQayILJAACQAJAAkAgAiIDIAVNDQADQCAFIAMgBygCFBEAACEEIAUgBygCABEBACAFaiECAkACQAJAAkACQAJAIARBIGsODgECAgICAgICAgICAgIEAAsgBEEKRg0AIARB/QBHDQEMBwsCQCACIANPDQADQCACIgUgAyAHKAIUEQAAIQQgBSAHKAIAEQEAIAVqIQIgBEEgRyAEQQpHcQ0BIAIgA0kNAAsLIARBCkYNBSAEQSBGDQUMAQsgCUUNACAMQRBGBEAgBEH/AEsNBUGsfiEFIARBCyAHKAIwEQAARQ0FDAcLIAxBCEcNBCAEQf8ASw0EIARBBCAHKAIwEQAARQ0EQax+IQUgBEE4Tw0EDAYLIARBLUcNAQsgCEEBRw0CQQAhCUECIQggAiIFIANJDQEMAgsgBEH9AEYNAiALIAU2AgwgC0EMaiADIAcgC0EIaiAMEB4iBQ0DIAhBAkchCEEBIQkgDUEBaiENIAsoAgwiBSADSQ0ACwtB8HwhBQwBC0HwfCANIAhBAkYbIQULIAtBEGokACAFQQBIBEAgBSEKDAsLIAVFDQogAEEBNgIECyAAQQQ2AgAgACAGKAIMNgIUDAgLIAYgCTYCCAwHCyAFQYCAgIACcUUNBiAGQQhqIAJBAEECIAcgBkEMahAhIgpBAEgNByAGLQAMIQUgBigCCCECIABBEDYCDCAAQQE2AgAgACAFQQAgAiAJRxs6ABQMBgsgAiAJTQ0FQQQhBSAMLQAFQcAAcUUNBQwECyACIAlNDQRBCCEFIAwtAAlBEHENAwwECyAMLQADQRBxRQ0DIAYgCDYCCCAGQQhqIAJBAyAHIAZBDGoQICIKQQBIDQRBuH4hCiAGKAIMIgVB/wFLDQQgBigCCCECIABBCDYCDCAAQQE2AgAgACAFQQAgAiAIRxs6ABQMAwsgBiAINgIIIAZBCGogAiADIAYQIyIKRQRAIAYoAgAgAygCCCgCGBEBACIFQR91IAVxIQoLIApBAEgNAyAGKAIAIgUgACgCFEYNAiAAQQQ2AgAgACAFNgIUDAILIAVBJkcEQCAFQdsARw0CAkAgDC0AA0EBcUUNACACIAhNDQAgCCACIAcoAhQRAABBOkcNACAGQrqAgIDQCzcDACAAIAg2AhAgBiAIIAcoAgARAQAgCGoiBTYCCAJ/QQAhBCACIAVLBH8DQAJAIAICfyAEBEBBACEEIAUgBygCABEBACAFagwBCyAFIAIgBygCFBEAACEEIAUgBygCABEBACAFaiELIAYoAgAgBEYEQAJAIAIgC00NACALIAIgBygCFBEAACAGKAIERw0AIAsgBygCABEBABpBAQwGC0EAIQQgBSAHKAIAEQEAIAVqDAELIAUgAiAHKAIUEQAAIgVB3QBGDQEgBSAMKAIQRiEEIAsLIgVLDQELC0EABUEACwsEQCAAQRo2AgAMBAsgBiAINgIICyAMLQAEQcAAcQRAIABBHDYCAAwDCyADQckNEDQMAgsgDC0ABEHAAHFFDQEgAiAITQ0BIAggAiAHKAIUEQAAQSZHDQEgBiAIIAcoAgARAQAgCGo2AgggAEEbNgIADAELIAZBCGogAiAFIAUgByAGQQxqECEiCkEASA0BIAYoAgwhBSAGKAIIIQIgAEEQNgIMIABBBDYCACAAIAVBACACIAlHGzYCFAsgASAGKAIINgIAIAAoAgAhCgsgBkEQaiQAIAoLgQEBA38jAEGQAmsiAiQAAkBB7JcRKAIAQQFGDQAgACgCDCgCCEGAgIAJcUGAgIAJRw0AIAAoAiAhAyAAKAIcIQQgACgCCCEAIAIgATYCACACQRBqIAAgBCADQQAiAUGlD2ogAhCLASACQRBqIAFB7JcRaigCABEEAAsgAkGQAmokAAuoBAEEfwJAAkACQAJAAkAgBygCAA4EAAECAgMLAkACQCAGKAIAQQFrDgIAAQQLQfB8IQogASgCACIJQf8BSw0EIAAgCUEDdkH8////AXFqQRBqIgcgBygCAEEBIAl0cjYCAAwDCyAAQTBqIAEoAgAiCSAJEBkiCkEATg0CDAMLAkAgBSAGKAIARgRAIAEoAgAhCSAFQQFGBEBB8HwhCiACIAlyQf8BSw0FIAIgCUkEQEG1fiEKIAgoAgwtAApBwABxDQMMBgsgAEEQaiEAA0AgACAJQQN2Qfz///8BcWoiCiAKKAIAQQEgCXRyNgIAIAIgCUwNAyAJQf8BSCEKIAlBAWohCSAKDQALDAILIAIgCUkEQEG1fiEKIAgoAgwtAApBwABxDQIMBQsgAEEwaiAJIAIQGSIKQQBODQEMBAsgAiABKAIAIglJBEBBtX4hCiAIKAIMLQAKQcAAcQ0BDAQLAkAgCUH/ASACIAJB/wFPGyILSg0AIAlB/wFKDQAgAEEQaiEMA0ACQCAMIAlBA3ZB/P///wFxaiIKIAooAgBBASAJdHI2AgAgCSALTg0AIAlB/wFIIQogCUEBaiEJIAoNAQsLIAEoAgAhCQsgAiAJSQRAQbV+IQogCCgCDC0ACkHAAHENAQwECyAAQTBqIAkgAhAZIgpBAEgNAwsgB0ECNgIADAELIAdBADYCAAsgAyAENgIAIAEgAjYCACAGIAU2AgBBACEKCyAKC+wDAQJ/IAVBADYCAAJAAkAgASADckUEQCACIARyRQ0BIAUgACgCDEECSEEHdEF/EBkPCyADQQAgARtFBEAgAiAEIAMbBEAgBSAAKAIMQQJIQQd0QX8QGQ8LIAMgASADGyEBIAQgAiADG0UEQCAFQQwQywEiAzYCAEF7IQYgA0UNAkEAIQYgASgCCCICQQBMBEAgA0EANgIAQQAhAgwECyADIAIQywEiBjYCACAGDQMgAxDMASAFQQA2AgBBew8LIAAgASAFEDcPCwJAAkACQCACRQRAIAEoAgAiBkEEaiEHIAYoAgAhAiAEBEAgAyEBDAILIAVBDBDLASIBNgIAQXshBiABRQ0EQQAhBiADKAIIIgRBAEwEQCABQQA2AgBBACEEDAMLIAEgBBDLASIGNgIAIAYNAiABEMwBIAVBADYCAEF7DwsgAygCACIDQQRqIQcgAygCACECIAQNAgsgACABIAUQNyIGDQIMAQsgASAENgIIIAEgAygCBCIENgIEIAYgAygCACAEEKYBGgsgAkUEQEEADwtBACEDA0AgBSAHIANBA3RqIgYoAgAgBigCBBAZIgYNASADQQFqIgMgAkcNAAtBAA8LIAYPCyADIAI2AgggAyABKAIEIgU2AgQgBiABKAIAIAUQpgEaQQAL9QEBBH8gAkEANgIAAkAgAUUNACABKAIAIgEoAgAiBUEATA0AIAFBBGohBiAAKAIMQQJIQQd0IQRBACEBAkADQCAGIAFBA3RqIgMoAgQhAAJAIAQgAygCAEEBayIDSw0AIAIgBCADEBkiA0UNACACKAIAIgFFDQIgASgCACIABEAgABDMAQsgARDMASADDwtBACEDIABBf0YNASAAQQFqIQQgAUEBaiIBIAVHDQALIAIgAEEBakF/EBkiAUUNACACKAIAIgAEQCAAKAIAIgQEQCAEEMwBCyAAEMwBCyABIQMLIAMPCyACIAAoAgxBAkhBB3RBfxAZC6sMAQ1/IwBB4ABrIgUkACABQRBqIQQgASgCDEEBcSEHIABBEGoiCSEDIAAoAgxBAXEiCwRAIAUgACgCEEF/czYCMCAFIAAoAhRBf3M2AjQgBSAAKAIYQX9zNgI4IAUgACgCHEF/czYCPCAFIAAoAiBBf3M2AkAgBSAAKAIkQX9zNgJEIAUgACgCKEF/czYCSCAFIAAoAixBf3M2AkwgBUEwaiEDCyAEKAIAIQYgBwRAIAUgBkF/cyIGNgIQIAUgASgCFEF/czYCFCAFIAEoAhhBf3M2AhggBSABKAIcQX9zNgIcIAUgASgCIEF/czYCICAFIAEoAiRBf3M2AiQgBSABKAIoQX9zNgIoIAUgASgCLEF/czYCLCAFQRBqIQQLIAEoAjAhASAAKAIwIQggAyADKAIAIAZxIgY2AgAgAyADKAIEIAQoAgRxNgIEIAMgAygCCCAEKAIIcTYCCCADIAMoAgwgBCgCDHE2AgwgAyADKAIQIAQoAhBxNgIQIAMgAygCFCAEKAIUcTYCFCADIAMoAhggBCgCGHE2AhggAyADKAIcIAQoAhxxNgIcIAMgCUcEQCAAIAY2AhAgACADKAIENgIUIAAgAygCCDYCGCAAIAMoAgw2AhwgACADKAIQNgIgIAAgAygCFDYCJCAAIAMoAhg2AiggACADKAIcNgIsCyALBEAgACAAKAIQQX9zNgIQIABBFGoiAyADKAIAQX9zNgIAIABBGGoiAyADKAIAQX9zNgIAIABBHGoiAyADKAIAQX9zNgIAIABBIGoiAyADKAIAQX9zNgIAIABBJGoiAyADKAIAQX9zNgIAIABBKGoiAyADKAIAQX9zNgIAIABBLGoiAyADKAIAQX9zNgIACwJAAkAgAigCCEEBRg0AAkACQAJAAkACQAJAAkACQCALQQAgBxtFBEAgBUEANgJcIAhFBEAgC0UNBCABRQ0EIAVBDBDLASIENgJcQXshAyAERQ0LQQAhBiABKAIIIgdBAEwEQCAEQQA2AgBBACEHDAYLIAQgBxDLASIGNgIAIAYNBSAEEMwBDAsLIAFFBEAgB0UNBCAFQQwQywEiBDYCXEF7IQMgBEUNC0EAIQEgCCgCCCIGQQBMBEAgBEEANgIAQQAhBgwECyAEIAYQywEiATYCACABDQMgBBDMAQwLCyABKAIAIgNBBGohDCADKAIAIQoCfyALBEAgBw0HIAgoAgAiA0EEaiEJIAohDSAMIQ4gAygCAAwBCyAIKAIAIgNBBGohDiADKAIAIQ0gB0UNAiAMIQkgCgshDyANRQ0DQQAhCiAPQQBMIQwDQCAOIApBA3RqIgQoAgAhAyAEKAIEIQdBACEEAkAgDA0AA0AgCSAEQQN0aiIGKAIEIQECQAJAAkAgAyAGKAIAIgZLBEAgASADTw0BDAMLIAYgB0sEQCAGIQMMAgsgBkEBayEGIAEgB08EQCAGIQcMAgsgAyAGSw0AIAVB3ABqIAMgBhAZIgMNEAsgAUEBaiEDCyADIAdLDQILIARBAWoiBCAPRw0ACwsgAyAHTQRAIAVB3ABqIAMgBxAZIgMNDAsgCkEBaiIKIA1HDQALDAMLIAIgCEEAIAFBACAFQdwAahA2IgMNCQwFCyANRQRAIABBADYCMAwGC0EAIQkDQAJAIApFDQAgDiAJQQN0aiIDKAIAIQYgAygCBCEBQQAhBANAIAwgBEEDdGoiAygCACIHIAFLDQEgBiADKAIEIgNNBEAgBUHcAGogBiAHIAYgB0sbIAEgAyABIANJGxAZIgMNDAsgBEEBaiIEIApHDQALCyAJQQFqIgkgDUcNAAsMAQsgBCAGNgIIIAQgCCgCBCIDNgIEIAEgCCgCACADEKYBGgsgC0UNAgwBCyAEIAc2AgggBCABKAIEIgM2AgQgBiABKAIAIAMQpgEaCyACIAUoAlwiBCAFQQxqEDciAwRAIARFDQUgBCgCACIABEAgABDMAQsgBBDMAQwFCyAEBEAgBCgCACIDBEAgAxDMAQsgBBDMAQsgBSAFKAIMNgJcCyAAIAUoAlw2AjAgCEUNAiAIKAIAIgNFDQELIAMQzAELIAgQzAELQQAhAwsgBUHgAGokACADC5kFAQR/IwBBEGsiCSQAIAlCADcDACAJQgA3AwggCSACNgIEIAggCCgCjAEiC0EBajYCjAEgCUEBQTgQzwEiCjYCAAJAAkAgCkUEQEEAIQggAyELDAELIAogCzYCGCAKQQo2AgAgCkKBgICAEDcCDCAJQQFBOBDPASIINgIIAkAgCEUEQEEAIQggAyELDAELIAggCzYCGCAIQQo2AgAgCEKCgICAMDcCDCAHBEAgCEGAgIAINgIECyAJQQFBOBDPASILNgIMIAtFBEBBACELDAELIAtBCjYCAEEHQQQgCRAtIgxFDQAgCSADNgIEIAkgDDYCACAJQgA3AwhBACELQQhBAiAJEC0iCkUEQEEAIQggAyECIAwhCgwBC0EBQTgQzwEiDEUEQEEAIQggAyECDAELIAxBATYCGCAMIAU2AhQgDCAENgIQIAxBBDYCACAMIAo2AgwgCSAMNgIAAkAgBkUEQCAMIQoMAQtBAUE4EM8BIgpFBEBBACEIIAMhAiAMIQoMAgsgCkEANgI0IApBAjYCECAKQQU2AgAgCiAMNgIMIAkgCjYCAAsgCUEBQTgQzwEiAzYCBCADRQRAQQAhCEEAIQIMAQsgAyABNgIYIANBCjYCACADQoKAgIAgNwIMIAlBAUE4EM8BIgg2AgggCEUEQEEAIQggAyECDAELIAhBCjYCAEEHQQIgCUEEchAtIgJFBEAgAyECDAELIAlBADYCCCAJIAI2AgRBACEIQQhBAiAJEC0iA0UNACAHBEAgAyADKAIEQYCAIHI2AgQLIAAgAzYCAAwCCyAKEBEgChDMAQsgAgRAIAIQESACEMwBCyAIBEAgCBARIAgQzAELQXshCCALRQ0AIAsQESALEMwBCyAJQRBqJAAgCAvEAQEFf0F7IQUCQCAAKAIsED0iAEUNAAJAIAAoAhQiAkUEQEGUAhDLASICRQ0CIABBAzYCECAAIAI2AhRBASEEDAELIAAoAgwiA0EBaiEEIAMgACgCECIGSA0AIAIgBkG4AWwQzQEiAkUNASAAIAI2AhQgACAGQQF0NgIQCyACIANB3ABsaiICQgA3AhBBACEFIAJBADYCCCACQgA3AgAgAkIANwIYIAJCADcCICACQQA2AiggACAENgIMIAEgBDYCAAsgBQu8AgEEfyMAQRBrIgYkAEF7IQgCQCABED0iBUUNACAFKAIIRQRAQfyXERCMASIHRQ0BIAUgBzYCCAsgARA9IgVFDQACQCADIAJrQQBMBEBBmX4hBwwBCyAFKAIIIQUgBkF/NgIEAkAgBUUNACAGIAM2AgwgBiACNgIIIAUgBkEIaiAGQQRqEI8BGiAGKAIEQQBIDQAgACADNgIoIAAgAjYCJEGlfiEHDAELAkBBCBDLASIARQRAQXshBQwBCyAAIAM2AgQgACACNgIAQQAhByAFIAAgBBCQASIFRQ0BIAAQzAEgBUEATg0BCyAFIQcLIARBAEwNACABKAKEAyIBRQ0AIAEoAgwgBEgNACABKAIUIgFFDQAgBEHcAGwgAWpB3ABrIgEgAzYCFCABIAI2AhAgByEICyAGQRBqJAAgCAuqAgEFfyMAQSBrIgUkAEGcfiEHAkAgAiADTw0AIAIhBgNAIAYgAyAAKAIUEQAAIglBX3FBwQBrQRpPBEAgCUEwa0EKSSIIIAIgBkZxDQIgCUHfAEYgCHJFDQILIAYgACgCABEBACAGaiIGIANJDQALIAVBADYCDEHkvxIoAgAiBkUEQEGbfiEHDAELIAUgAzYCHCAFIAI2AhggBSABNgIUIAUgADYCECAGIAVBEGogBUEMahCPASEIAkAgAEGUvRJGDQAgCA0AIAAtAExBAXFFDQAgBSADNgIcIAUgAjYCGCAFIAE2AhQgBUGUvRI2AhAgBiAFQRBqIAVBDGoQjwEaCyAFKAIMIgZFBEBBm34hBwwBCyAEIAYoAgg2AgBBACEHCyAFQSBqJAAgBws9AQF/IAAoAoQDIgFFBEBBGBDLASIBRQRAQQAPCyABQgA3AgAgAUIANwIQIAFCADcCCCAAIAE2AoQDCyABC2UBAX8gACgChAMiA0UEQEEYEMsBIgNFBEBBew8LIANCADcCACADQgA3AhAgA0IANwIIIAAgAzYChAMLIAAoAkQgASACEHYiAEUEQEF7DwsgAyAANgIAIAMgACACIAFrajYCBEEAC6YFAQh/IAAEQCAAKAIAIgIEQCAAKAIMIgNBAEoEf0EAIQIDQCAAKAIAIQECQAJAAn8CQAJAAkACQAJAAkAgACgCBCACQQJ0aigCAEEHaw4sAQgICAEBAAIDBAIDBAgICAgICAgICAgICAgICAgICAgICAgICAgFBQUFBQUICyABIAJBFGxqKAIEIgEgACgCFEkNBiAAKAIYIAFNDQYMBwsgASACQRRsaigCBCIBIAAoAhRJDQUgACgCGCABTQ0FDAYLIAEgAkEUbGpBBGoMAwsgASACQRRsakEEagwCCyABIAJBFGxqIgEoAgQQzAEgAUEIagwBCyABIAJBFGxqIgEoAghBAUYNAiABQQRqCygCACEBCyABEMwBIAAoAgwhAwsgAkEBaiICIANIDQALIAAoAgAFIAILEMwBIAAoAgQQzAEgAEEANgIQIABCADcCCCAAQgA3AgALIAAoAhQiAgRAIAIQzAEgAEIANwIUCyAAKAJwIgIEQCACEMwBCyAAKAJAIgIEQCACEMwBCyAAKAKEAyICBEAgAigCACIBBEAgARDMAQsgAigCCCIBBEAgAUEEQQAQkQEgARCOAQsgAigCFCIBBEAgAigCDCEGIAEEQCAGQQBKBEADQCABIAVB3ABsaiIDQSRqIQQCQCADKAIEQQFGBEBBACEDIAQoAgQiB0EATA0BA0ACQCAEIANBAnRqKAIIQQRHDQAgBCADQQN0aigCGCIIRQ0AIAgQzAEgBCgCBCEHCyADQQFqIgMgB0gNAAsMAQsgBCgCACIDRQ0AIAMQzAELIAVBAWoiBSAGRw0ACwsgARDMAQsLIAIQzAEgAEEANgKEAwsCQCAAKAJUIgFFDQAgAUECQQAQkQEgACgCVCIBRQ0AIAEQjgELIABBADYCVAsLoBgBC38jAEHQA2siBSQAIAIoAgghByABQQA6AFggAUIANwJQIAFCADcCSCABQgA3AkAgAUIANwJwIAFCADcCeCABQgA3AoABIAFBADoAiAEgAUGgAWpBAEGUAhCoASEGIAFBADoAKCABQgA3AiAgAUIANwIYIAFBEGoiA0IANwIAIAFCADcCCCABQgA3AgAgAyACKAIANgIAIAEgAigCBDYCFCABIAIoAgA2AnAgASACKAIENgJ0IAEgAigCADYCoAEgASACKAIENgKkAQJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAIgMoAgAOCwIKCQcFBAgAAQYLAwsgBSACKAIQNgIQIAUgAikCCDcDCCAFIAIpAgA3AwADQCAAKAIMIAVBGGogBRBAIgQNCyAFQX9Bf0F/IAUoAhgiAyAFKAIAIgJqIANBf0YbIAJBf0YbIAIgA0F/c0sbNgIAIAVBf0F/QX8gBSgCHCIDIAUoAgQiAmogA0F/RhsgAkF/RhsgAiADQX9zSxs2AgQgByABIAVBGGoQYiAAKAIQIgANAAsMCgsDQCADKAIMIAVBGGogAhBAIgQNCgJAIAAgA0YEQCABIAVBGGpBtAMQpgEaDAELIAEgBUEYaiACEGMLIAMoAhAiAw0AC0EAIQQMCQsgACgCECIGIAAoAgwiA2shCgJAIAMgBkkEQANAIAMgBygCABEBACIIIARqQRlOBEAgASAENgIkDAMLAkAgAyAGTw0AQQAhAiAIQQBMDQADQCABIARqIAMtAAA6ACggBEEBaiEEIANBAWohAyACQQFqIgIgCE4NASADIAZJDQALCyADIAZJIARBF0xxDQALIAEgBDYCJCADIAZJDQELIAFBATYCIAsCQCAKQQBMDQAgASAAKAIMLQAAIgNqQbQBaiIELQAADQAgBEEBOgAAAn9BBCADQRh0QRh1IgRBAEgNABogBEUEQEEUIAcoAgxBAUoNARoLIANBAXRBgBtqLgEACyEEIAFBsAFqIgMgAygCACAEajYCAAsgASAKNgIEIAEgCjYCAEEAIQQMCAtBeiEEDAcLAkACQAJAIAAoAhAOBAEAAAIJCyAAKAIMIAEgAhBAIQQMCAsgACAAKAI0IgNBAWo2AjQgA0EFTgRAQQAhAyAAKAIEIgJBAXEEQCAAKAIkIQMLQX8hBCABIAJBAnEEfyAAKAIoBSAECzYCBCABIAM2AgBBACEEDAgLIAAoAgwgASACEEAhBCABKAIIIgZBgIADcUUEQCABLQANQcABcUUNCAsgAigCECgCGCEDAkAgACgCFCICQQFrQR5NBEAgAyACdkEBcQ0BDAkLIANBAXFFDQgLIAEgBkH//3xxNgIIDAcLIAAoAhhFDQYgBSACKAIQNgIQIAUgAikCCDcDCCAFIAIpAgA3AwAgACgCDCAFQRhqIAUQQCIEDQYgBUF/QX9BfyAFKAIYIgMgBSgCACIEaiADQX9GGyAEQX9GGyAEIANBf3NLGzYCACAFQX9Bf0F/IAUoAhwiAyAFKAIEIgRqIANBf0YbIARBf0YbIAQgA0F/c0sbNgIEIAcgASAFQRhqEGICQCAAKAIUIgNFDQAgAyAFQRhqIAUQQA0AIAcgASAFQRhqEGILIAAoAhggBUEYaiACEEAiBA0GIAEgBUEYaiACEGNBACEEDAYLIAAoAhRFBEAgAUIANwIADAYLIAAoAgwgBUEYaiACEEAiBA0FAkAgACgCECIDQQBMBEAgACgCFCEGDAELIAEgBUEYakG0AxCmASEJAkACQCAFKAI8QQBMDQAgBSgCOCIIRQ0AQQIhBgJAIAAoAhAiA0ECSA0AQQIhCyAJKAIkIgRBF0oEQAwBCyAFQUBrIQwDQCAMIAUoAjwiBmohCiAMIQNBACENIAZBAEoEQANAIAMgBygCABEBACIIIARqQRhKIg1FBEACQCAIQQBMDQBBACEGIAMgCk8NAANAIAQgCWogAy0AADoAKCAEQQFqIQQgA0EBaiEDIAZBAWoiBiAITg0BIAMgCkkNAAsLIAMgCkkNAQsLIAUoAjghCAsgCSAENgIkIAkgCEEAIAMgCkYbIgM2AiAgCSAJNQIYIAUoAjQgCSgCHEECcXJBACADG61CIIaENwIYIA0EQCAAKAIQIQMgCyEGDAILIAtBAWohBiALIAAoAhAiA04NASAGIQsgBEEYSA0ACwsgAyAGTA0BIAlBADYCIAwBCyAAKAIQIQMLIAAoAhQiBiADRwRAIAlBADYCUCAJQQA2AiALIANBAkgNACAJQQA2AlALAkACQAJAIAZBAWoOAgACAQsCQCACKAIEDQAgACgCDCIDKAIAQQJHDQAgAygCDEF/Rw0AIAAoAhhFDQAgASABKAIIQYCAAkGAgAEgAygCBEGAgIACcRtyNgIIC0F/QQAgBSgCHBshBiAAKAIQIQMMAQtBfyAFKAIcIgQgBmxBfyAGbiAETRshBgtBACEEQQAhAiADBEBBfyAFKAIYIgIgA2xBfyADbiACTRshAgsgASAGNgIEIAEgAjYCAAwFCyAALQAEQcAAcQRAIAFCgICAgHA3AgAMBQsgACgCDCABIAIQQCEEDAQLIAAtAAZBAnEEQAwECyAAIAIoAhAQXyEDIAEgACACKAIQEGQ2AgQgASADNgIADAMLAkACfwJAAkAgACgCECIDQT9MBEAgA0EBayIIQR9LBEAMCAtBASAIdEGKgIKAeHENASAIDQcgACgCDCAFQRhqIAIQQCIEDQcgBSgCPEEATA0CIAVBKGoMAwsgA0H/AUwEQCADQcAARg0BIANBgAFGDQEMBwsgA0GABEYNACADQYACRg0ADAYLIAFBCGohBAJAAkAgA0H/AUwEQCADQQJGDQEgA0GAAUYNAQwCCyADQYAERg0AIANBgAJHDQELIAFBDGohBAsgBCADNgIAQQAhBAwFCyAFKAJsQQBMDQEgBUHYAGoLIQMgAUHwAGoiBCADKQIANwIAIAQgAykCKDcCKCAEIAMpAiA3AiAgBCADKQIYNwIYIAQgAykCEDcCECAEIAMpAgg3AggLQQAhBCABQQA2AoABIAUoAsgBQQBMDQIgBiAFQbgBakGUAhCmARoMAgtBASEEAkACQCAHKAIIIghBAUYEQCAAKAIMQQxHDQJBgAFBgAIgACgCFCIKGyECQQAhAyAAKAIQDQEDQAJAIANBDCAHKAIwEQAARQ0AIAEgA0H/AXEiBGpBtAFqIgYtAAANACAGQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiAERQRAQRQgBygCDEEBSg0BGgsgBEEBdEGAG2ouAQALIAEoArABajYCsAELQQEhBCADQQFqIgMgAkcNAAsMAgsgBygCDCEEDAELA0ACQCADQQwgBygCMBEAAA0AIAEgA0H/AXEiBGpBtAFqIgYtAAANACAGQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiAERQRAQRQgBygCDEEBSg0BGgsgBEEBdEGAG2ouAQALIAEoArABajYCsAELIANBAWoiAyACRw0ACyAKRQRAQQEhBAwBC0H/ASACIAJB/wFNGyEGQYABIQMDQCABIANB/wFxIgRqQbQBaiICLQAARQRAIAJBAToAACABAn9BBCADQRh0QRh1QQBIDQAaIARFBEBBFCAHKAIMQQFKDQEaCyAEQQF0QYAbai4BAAsgASgCsAFqNgKwAQtBASEEIAMgBkYhAiADQQFqIQMgAkUNAAsLIAEgCDYCBCABIAQ2AgBBACEEDAELAkACQCAAKAIwDQAgAC0ADEEBcQ0AQQAhAiAALQAQQQFxRQ0BIAFBAToAtAEgAUEUQQUgBygCDEEBShsiAjYCsAEMAQsgASAHKQIIQiCJNwIADAELQQEhAwNAIAAoAgxBAXEhBAJAAkAgACADQQN2Qfz///8BcWooAhAgA3ZBAXEEQCAERQ0BDAILIARFDQELIAEgA2pBtAFqIgQtAAANACAEQQE6AAAgAQJ/QQQgA0EYdEEYdUEASA0AGiADQf8BcUUEQEEUIAcoAgxBAUoNARoLIANBAXRBgBtqLgEACyACaiICNgKwAQsgA0EBaiIDQYACRw0ACyABQoGAgIAQNwIAQQAhBAsgBUHQA2okACAEC6wDAQZ/AkAgAigCFCIERQ0AAkAgASgCFCIDRQ0AAkAgA0ECSg0AIARBAkoNAEEEIQYCf0EEIAEtABgiB0EYdEEYdSIIQQBIDQAaIAhFBEBBFCAAKAIMQQFKDQEaCyAHQQF0QYAbai4BAAshBQJAIAItABgiB0EYdEEYdSIIQQBIDQAgCEUEQEEUIQYgACgCDEEBSg0BCyAHQQF0QYAbai4BACEGCyAFQQVqIAUgBEEBShshBCAGQQVqIAYgA0EBShshAwsgBEEATA0BIANBAEwNACADQQF0IQZBACEDAn9BACABKAIEIgVBf0YNABpBASAFIAEoAgBrIgVB4wBLDQAaIAVBAXRBsBlqLgEACyEAIARBAXQhBSAAIAZsIQQCQCACKAIEIgBBf0YNAEEBIQMgACACKAIAayIAQeMASw0AIABBAXRBsBlqLgEAIQMLIAMgBWwiAyAESg0AIAMgBEgNASACKAIAIAEoAgBPDQELIAEgAikCADcCACABIAIpAig3AiggASACKQIgNwIgIAEgAikCGDcCGCABIAIpAhA3AhAgASACKQIINwIICwv/fQEOfyABQQRqIQsgAUEQaiEHIAFBDGohBSABQQhqIQ0CQAJAA0ACQEEAIQQCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAAiAygCAA4LAgMEBQcICQABBgoTCwNAIAAoAgwgASACEEIiBA0TIAAoAhAiAA0ACwwTCwNAIAMoAgwgARBPIAZqIgRBAmohBiADKAIQIgMNAAsgBSgCACAEaiEKA0AgACgCDCABEE8hAyAAKAIQBEAgAC0ABiEIAkAgBSgCACIEIAcoAgAiBkkNACAGRQ0AIAZBAXQiCUEATARAQXUPC0F7IQQgASgCACAGQShsEM0BIgxFDRQgASAMNgIAIAEoAgQgBkEDdBDNASIGRQ0UIAsgBjYCACAHIAk2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE8QTsgCEEIcRs2AgAgASgCCCADQQJqNgIECyAAKAIMIAEgAhBCIgQNEiAAKAIQRQRAQQAPCyAFKAIAIgYhBAJAIAYgBygCACIDSQ0AIAYhBCADRQ0AIANBAXQiCEEATARAQXUPC0F7IQQgASgCACADQShsEM0BIglFDRMgASAJNgIAIAEoAgQgA0EDdBDNASIDRQ0TIAsgAzYCACAHIAg2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgM2AghBACEEIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIIAogBms2AgQgACgCECIADQALDBELIAAtABRBAXEEQCAAKAIQIgMgACgCDCIATQ0RIABBASADIABrIAEQUA8LIAAoAhAiBiAAKAIMIgJNDRBBASEHIAYgAiACIAEoAkQiCCgCABEBACIFaiIASwRAA0ACQCAFIAAgCCgCABEBACIDRgRAIAdBAWohBwwBCyACIAUgByABEFAhBCAAIQJBASEHIAMhBSAEDRMLIAAgA2oiACAGSQ0ACwsgAiAFIAcgARBQDwsgACgCMEUEQCAALQAMIQICQCAFKAIAIgQgBygCACIDSQ0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNESABIAg2AgAgASgCBCADQQN0EM0BIgNFDREgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRFBDiACQQFxGzYCAEEgEMsBIQQgASgCCCAENgIEIAEoAggoAgQiAUUEQEF7DwsgASAAKQIQNwIAIAEgACkCKDcCGCABIAApAiA3AhAgASAAKQIYNwIIQQAPCwJAIAEoAkQoAgxBAUwEQCAAKAIQDQEgACgCFA0BIAAoAhgNASAAKAIcDQEgACgCIA0BIAAoAiQNASAAKAIoDQEgACgCLA0BCyAALQAMIQICQCAFKAIAIgQgBygCACIDSQ0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNESABIAg2AgAgASgCBCADQQN0EM0BIgNFDREgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRJBDyACQQFxGzYCACAAKAIwIgEoAgQiABDLASIERQRAQXsPCyAEIAEoAgAgABCmASEBIA0oAgAgATYCBEEADwsgAC0ADCECAkAgBSgCACIEIAcoAgAiA0kNACADRQ0AIANBAXQiBkEATARAQXUPC0F7IQQgASgCACADQShsEM0BIghFDRAgASAINgIAIAEoAgQgA0EDdBDNASIDRQ0QIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akETQRAgAkEBcRs2AgBBIBDLASEEIAEoAgggBDYCCEF7IQQgASgCCCgCCCIBRQ0PIAEgAEEQaiIDKQIANwIAIAEgAykCGDcCGCABIAMpAhA3AhAgASADKQIINwIIIAAoAjAiASgCBCIAEMsBIgNFDQ8gAyABKAIAIAAQpgEhASANKAIAIAE2AgRBAA8LQXohBAJAAkAgACgCDEEBag4OABAQEBAQEBAQEBAQEAEQCyAALQAGIQICQCAFKAIAIgAgBygCACIDSQ0AIANFDQAgA0EBdCIAQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiBkUNECABIAY2AgAgASgCBCADQQN0EM0BIgNFDRAgCyADNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQRVBFCACQcAAcRs2AgBBAA8LIAAoAhAhAyAAKAIUIQYCQCAFKAIAIgAgBygCACICSQ0AIAJFDQAgAkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIAJBKGwQzQEiCEUNDyABIAg2AgAgASgCBCACQQN0EM0BIgJFDQ8gCyACNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQR1BGyADG0EcQRogAxsgBhs2AgBBAA8LIAAoAgQiBEGAwABxIQMCQCAEQYCACHEEQCAHKAIAIQIgBSgCACEEIAMEQAJAIAIgBEsNACACRQ0AIAJBAXQiA0EATARAQXUPC0F7IQQgASgCACACQShsEM0BIgZFDREgASAGNgIAIAEoAgQgAkEDdBDNASICRQ0RIAsgAjYCACAHIAM2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akEyNgIAIAEoAgggACgCLDYCDAwCCwJAIAIgBEsNACACRQ0AIAJBAXQiA0EATARAQXUPC0F7IQQgASgCACACQShsEM0BIgZFDRAgASAGNgIAIAEoAgQgAkEDdBDNASICRQ0QIAsgAjYCACAHIAM2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akExNgIADAELIAMEQCABQTBBLyAEQYCAgAFxGxBRIgQNDyANKAIAIAAoAiw2AgwMAQsgACgCDEEBRgRAIAAoAhAhACAEQYCAgAFxBEAgAUEsEFEiBA0QIA0oAgAgADYCBEEADwsCQAJAAkAgAEEBaw4CAAECCyABQSkQUQ8LIAFBKhBRDwsgAUErEFEiBA0PIA0oAgAgADYCBEEADwsgAUEuQS0gBEGAgIABcRsQUSIEDQ4LIA0oAgAgACgCDCIDNgIIIANBAUYEQCANKAIAIAAoAhA2AgRBAA8LIANBAnQQywEiBUUEQEF7DwsgDSgCACAFNgIEQQAhBCADQQBMDQ0gACgCKCIBIABBEGogARshBCADQQNxIQYCQCADQQFrQQNJBEBBACEBDAELIANBfHEhCEEAIQFBACECA0AgBSABQQJ0IgBqIANBAnQgBGoiB0EEaygCADYCACAFIABBBHJqIAdBCGsoAgA2AgAgBSAAQQhyaiAHQQxrKAIANgIAIAUgAEEMcmogBCADQQRrIgNBAnRqKAIANgIAIAFBBGohASACQQRqIgIgCEcNAAsLIAZFDQ5BACEAA0AgBSABQQJ0aiAEIANBAWsiA0ECdGooAgA2AgAgAUEBaiEBIABBAWoiACAGRw0ACwwOCwJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0NIAEgCDYCACABKAIEIANBA3QQzQEiA0UNDSALIAM2AgAgByAGNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0AA2AgAgASgCCEEANgIEIAEoAgAhAyABKAIIIQUgACgCDCEHIAIoApgBIgEoAgghACABKAIAIgQgASgCBCICTgRAIAAgAkEEdBDNASIARQRAQXsPCyABIAA2AgggASACQQF0NgIEIAEoAgAhBAsgACAEQQN0aiIAIAc2AgQgACAFIANrQQRqNgIAIAEgBEEBajYCAEEADwsgACgCHCEMIAAoAhQhBCAAKAIMIAEQTyIDQQBIBEAgAw8LIANFDQwgAEEMaiEIAkACQAJAAkACQAJAAkACQAJAIAAoAhgiCkUNACAAKAIUQX9HDQAgCCgCACIJKAIAQQJHDQAgCSgCDEF/Rw0AIAAoAhAiDkECSA0BQX8gDm4hDyADIA5sQQpLDQAgAyAPSQ0CCyAEQX9HDQUgACgCECIJQQJIDQNBfyAJbiEEIAMgCWxBCksNBiADIARPDQYgA0ECaiADIAwbIQYgAEEYaiEHDAQLIA5BAUcNAQtBACEDA0AgCSABIAIQQiIEDRIgA0EBaiIDIA5HDQALIAgoAgAhCQsgCSgCBEGAgIACcSEEIAAoAiQEQCABQRlBGCAEGxBRIgQNESANKAIAIAAoAiQoAgwtAAA6AARBAA8LIAFBF0EWIAQbEFEPCyADQQJqIAMgDBshBiAAQRhqIQcCQCAJQQFHDQAgA0ELSQ0AIAFBOhBRIgQNECANKAIAQQI2AgQMDgsgCUEATA0NCyAIKAIAIQVBACEDA0AgBSABIAIQQiIEDQ8gCSADQQFqIgNHDQALDAwLIAAoAhQiCUUNCiAKRQ0BIAlBAUcEQEF/IAluIQRBwQAhCiAJIANBAWoiBmxBCksNCiAEIAZNDQoLQQAhBiAAKAIQIgpBAEoEQCAAKAIMIQADQCAAIAEgAhBCIgQNDyAGQQFqIgYgCkcNAAsLIAkgCmsiDEEATARAQQAPCyADQQFqIQlBACEDA0BBACEGIAkEQEG3fiEEIAwgA2siAEH/////ByAJbU4NDyAAIAlsIgZBAEgNDwsCQCAFKAIAIgAgBygCACIKSQ0AIApFDQAgCkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIApBKGwQzQEiDkUNDyABIA42AgAgASgCBCAKQQN0EM0BIgpFDQ8gCyAKNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAGNgIEIAgoAgAgASACEEIiBA0OQQAhBCAMIANBAWoiA0cNAAsMDQsgACgCFCIJRQ0JIApFDQBBwQAhCgwIC0HCACEKIAlBAUcNByAAKAIQDQcCQCAFKAIAIgAgBygCACIKSQ0AIApFDQAgCkEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIApBKGwQzQEiCUUNDCABIAk2AgAgASgCBCAKQQN0EM0BIgpFDQwgCyAKNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCEECNgIEAkAgASgCDCIAIAEoAhAiCkkNACAKRQ0AIApBAXQiAEEATARAQXUPC0F7IQQgASgCACAKQShsEM0BIglFDQwgASAJNgIAIAEoAgQgCkEDdBDNASIKRQ0MIAsgCjYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0EBajYCBCAIKAIAIQAMCgsCQAJAAkACQCAAKAIQDgQAAQIDDgsgAC0ABEGAAXEEQAJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0PIAEgCDYCACABKAIEIANBA3QQzQEiA0UNDyALIAM2AgAgByAGNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0AA2AgAgACABKAIMQQFqIgQ2AhggACAAKAIEQYACcjYCBCABKAIIIAQ2AgQgACgCFCEGIAAoAgwgARBPIQggASgCECEDIAEoAgwhBCAGRQRAAkAgAyAESw0AIANFDQAgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCkUNECABIAo2AgAgASgCBCADQQN0EM0BIgNFDRAgCyADNgIAIAcgBjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTo2AgAgASgCCCAIQQJqNgIEIAAoAgwgASACEEIiBEUNCgwPCwJAIAMgBEsNACADRQ0AIANBAXQiBkEATARAQXUPC0F7IQQgASgCACADQShsEM0BIgpFDQ8gASAKNgIAIAEoAgQgA0EDdBDNASIDRQ0PIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggCEEEajYCBAsgASgCMCEEAkAgACgCFCIDQQFrQR5NBEAgBCADdkEBcQ0BDAcLIARBAXFFDQYLQTQhAyAFKAIAIgQgBygCACIGSQ0HIAZFDQcgBkEBdCIIQQBMBEBBdQ8LQXshBCABKAIAIAZBKGwQzQEiA0UNDSABIAM2AgBBNCEDIAEoAgQgBkEDdBDNASIGDQYMDQsgACgCDCEADAsLIAAtAARBIHEEQEEAIQMgACgCDCIHKAIMIQAgBygCECIFQQBKBH8DQCAAIAEgAhBCIgQNDiADQQFqIgMgBUcNAAsgBygCDAUgAAsgARBPIgBBAEgEQCAADwsgAUE7EFEiBA0MIAEoAgggAEEDajYCBCAHKAIMIAEgAhBCIgQNDCABQT0QUSIEDQwgAUE6EFEiBA0MIA0oAgBBfiAAazYCBEEADwsgAiACKAKMASIDQQFqNgKMASABQc0AEFEiBA0LIAEoAgggAzYCBCABKAIIQQA2AgggACgCDCABIAIQQiIEDQsgAUHMABBRIgQNCyANKAIAIAM2AgQgDSgCAEEANgIIQQAPCyAAKAIYIQggACgCFCEDIAAoAgwhCSACIAIoAowBIgpBAWo2AowBAkAgBSgCACIAIAcoAgAiDEkNACAMRQ0AIAxBAXQiAEEATARAQXUPC0F7IQQgASgCACAMQShsEM0BIg5FDQsgASAONgIAIAEoAgQgDEEDdBDNASIMRQ0LIAsgDDYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAo2AgQgASgCCEEANgIIIAkgARBPIg9BAEgEQCAPDwsCQCADRQRAQQAhDAwBCyADIAEQTyIMIQQgDEEASA0LCwJAIAUoAgAiACAHKAIAIg5JDQAgDkUNACAOQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgDkEobBDNASIQRQ0LIAEgEDYCACABKAIEIA5BA3QQzQEiDkUNCyALIA42AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAwgD2pBA2o2AgQgCSABIAIQQiIEDQoCQCAFKAIAIgAgBygCACIJSQ0AIAlFDQAgCUEBdCIAQQBMBEBBdQ8LQXshBCABKAIAIAlBKGwQzQEiDEUNCyABIAw2AgAgASgCBCAJQQN0EM0BIglFDQsgCyAJNgIAIAcgADYCACAFKAIAIQALIAEgAEEBajYCDCABIAEoAgAgAEEUbGoiADYCCCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggCjYCBCABKAIIQQA2AgggAwRAIAMgASACEEIiBA0LCwJAIAhFBEBBACEDDAELIAggARBPIgMhBCADQQBIDQsLAkAgBSgCACIAIAcoAgAiCUkNACAJRQ0AIAlBAXQiAEEATARAQXUPC0F7IQQgASgCACAJQShsEM0BIgxFDQsgASAMNgIAIAEoAgQgCUEDdBDNASIJRQ0LIAsgCTYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0ECajYCBAJAIAEoAgwiACABKAIQIgNJDQAgA0UNACADQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIJRQ0LIAEgCTYCACABKAIEIANBA3QQzQEiA0UNCyALIAM2AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhBCAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggCjYCBCABKAIIQQA2AgggCCIADQkMCgtBeiEEAkACQAJAAkAgAQJ/AkACQAJAAkACQAJAIAAoAhAiA0H/AUwEQCADQQFrDkAICRUKFRUVCxUVFRUVFRUBFRUVFRUVFRUVFRUVFRUVAxUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUFAgsgA0H/H0wEQCADQf8HTARAIANBgAJGDQUgA0GABEcNFiABQSYQUQ8LQR4gA0GACEYNBxogA0GAEEcNFUEfDAcLIANB//8DTARAIANBgCBGDQYgA0GAwABHDRVBIQwHCyADQYCABEcgA0GAgAhHcQ0UIAFBIhBRIgQNFCANKAIAIAAoAgRBF3ZBAXE2AgQgDSgCACAAKAIQQYCACEY2AghBAA8LIAFBIxBRDwsgA0GAAUcNEiABQSQQUQ8LIAFBJRBRDwsgAUEnEFEPCyABQSgQUSIEDQ8gDSgCAEEANgIEQQAPC0EgCxBRIgQNDSANKAIAIAAoAhw2AgRBAA8LIAIgAigCjAEiA0EBajYCjAEgAUHNABBRIgQNDCABKAIIIAM2AgQgASgCCEEBNgIIIAAoAgwgASACEEIiBA0MIAFBzAAQUSIEDQwgDSgCACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAA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AgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgC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QQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0PC0GxLQ8LQdEtDwtB7y0PC0GOLg8LQaouDwtBzi4PC0HlLg8LQZEvDwtBti8PC0HNLw8LQeovDwtBkTAPC0GpMA8LQb4wDwtB1TAPC0HqMA8LQYMxDwtBlzEPC0G6MQ8LQdkxDwtB8jEPC0GNMiEBCyABC8UJAQV/IwBBIGsiByQAIAcgBTYCFCAAQYACIAQgBRC8ASADIAJrQQJ0akEEakGAAkgEQCAAEK0BIABqQbrAvAE2AABBlL0SIAAQeiAAaiEAIAIgA0kEQCAHQRlqIQoDQAJAIAIgASgCABEBAEEBRwRAIAIgASgCABEBACEFAkAgASgCDEEBRwRAIAVBAEoNAQwDCyAFQQBMDQIgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAgNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAgsDQCAFIQggByACLQAANgIQIAdBGmpBBUGrMiAHQRBqEKkBAkBBlL0SIAdBGmoQeiIJQQBMDQAgB0EaaiEFIAlBB3EiBARAQQAhBgNAIAAgBS0AADoAACAAQQFqIQAgBUEBaiEFIAZBAWoiBiAERw0ACwsgCUEBa0EHSQ0AIAkgCmohBANAIAAgBS0AADoAACAAIAUtAAE6AAEgACAFLQACOgACIAAgBS0AAzoAAyAAIAUtAAQ6AAQgACAFLQAFOgAFIAAgBS0ABjoABiAAIAUtAAc6AAcgAEEIaiEAIAVBB2ohBiAFQQhqIQUgBCAGRw0ACwsgAkEBaiECIAhBAWshBSAIQQJODQALDAELAn8gAi0AACIFQS9HBEAgBUHcAEYEQCAAQdwAOgAAIABBAWohACACQQFqIgIgASgCABEBACIFQQBMDQMgBUEBayEIQQAhBiAFQQdxIgQEQANAIAAgAi0AADoAACAAQQFqIQAgAkEBaiECIAVBAWshBSAGQQFqIgYgBEcNAAsLIAhBB0kNAwNAIAAgAi0AADoAACAAIAItAAE6AAEgACACLQACOgACIAAgAi0AAzoAAyAAIAItAAQ6AAQgACACLQAFOgAFIAAgAi0ABjoABiAAIAItAAc6AAcgAEEIaiEAIAJBCGohAiAFQQlrIQYgBUEIayEFIAZBfkkNAAsMAwtBASEGIAAgBUEHIAEoAjARAAANARogACACLQAAQQkgASgCMBEAAA0BGiAHIAItAAA2AgAgB0EaakEFQasyIAcQqQEgAkEBaiECQZS9EiAHQRpqEHoiCEEATA0CIAhBAWshCSAHQRpqIQUgCEEHcSIEBEBBACEGA0AgACAFLQAAOgAAIABBAWohACAFQQFqIQUgBkEBaiIGIARHDQALCyAJQQdJDQIgCCAKaiEEA0AgACAFLQAAOgAAIAAgBS0AAToAASAAIAUtAAI6AAIgACAFLQADOgADIAAgBS0ABDoABCAAIAUtAAU6AAUgACAFLQAGOgAGIAAgBS0ABzoAByAAQQhqIQAgBUEHaiEGIAVBCGohBSAEIAZHDQALDAILIABB3AA6AABBAiEGIABBAWoLIAItAAA6AAAgACAGaiEAIAJBAWohAgsgAiADSQ0ACwsgAEEvOwAACyAHQSBqJAALTwECfwJAQQUQjQEiAkEATA0AQRAQywEiAUUNACABQQA2AgggASAANgIAIAEgAjYCBCABIAJBBBDPASICNgIMIAIEQCABDwsgARDMAQtBAAuAAwEBfwJAIABBB0wNAEEBIQEgAEEQSQ0AQQIhASAAQSBJDQBBAyEBIABBwABJDQBBBCEBIABBgAFJDQBBBSEBIABBgAJJDQBBBiEBIABBgARJDQBBByEBIABBgAhJDQBBCCEBIABBgBBJDQBBCSEBIABBgCBJDQBBCiEBIABBgMAASQ0AQQshASAAQYCAAUkNAEEMIQEgAEGAgAJJDQBBDSEBIABBgIAESQ0AQQ4hASAAQYCACEkNAEEPIQEgAEGAgBBJDQBBECEBIABBgIAgSQ0AQREhASAAQYCAwABJDQBBEiEBIABBgICAAUkNAEETIQEgAEGAgIACSQ0AQRQhASAAQYCAgARJDQBBFSEBIABBgICACEkNAEEWIQEgAEGAgIAQSQ0AQRchASAAQYCAgCBJDQBBGCEBIABBgICAwABJDQBBGSEBIABBgICAgAFJDQBBGiEBIABBgICAgAJJDQBBGyEBIABBgICAgARJDQBBfw8LIAFBAnRB4DJqKAIAC14BA38gACgCBCIBQQBKBEADQCAAKAIMIAJBAnRqKAIAIgMEQANAIAMoAgwhASADEMwBIAEhAyABDQALIAAoAgQhAQsgAkEBaiICIAFIDQALCyAAKAIMEMwBIAAQzAEL4AEBBX8gASAAKAIAKAIEEQEAIQUCQCAAKAIMIAUgACgCBHBBAnRqKAIAIgRFDQACQAJAIAQoAgAgBUcNACABIAQoAgQiA0YEQCAEIQMMAgsgASADIAAoAgAoAgARAAANACAEIQMMAQsgBCgCDCIDRQ0BIARBDGohBANAAkAgBSADKAIARgRAIAMoAgQiBiABRg0DIAEgBiAAKAIAKAIAEQAAIQYgBCgCACEDIAZFDQELIANBDGohBCADKAIMIgMNAQwDCwsgA0UNAQtBASEHIAJFDQAgAiADKAIINgIACyAHC9MDAQl/IAEgACgCACgCBBEBACEGAkACQAJAIAAoAgwgBiAAKAIEcCIFQQJ0aigCACIERQ0AIAYgBCgCAEYEQCAEKAIEIgMgAUYNAiABIAMgACgCACgCABEAAEUNAgsgBCgCDCIDRQ0AIARBDGohBANAAkAgBiADKAIARgRAIAMoAgQiByABRg0FIAEgByAAKAIAKAIAEQAAIQcgBCgCACEDIAdFDQELIANBDGohBCADKAIMIgMNAQwCCwsgAw0CCyAAKAIIIAAoAgQiCG1BBk4EQAJAIAhBAWoQjQEiBUEATARAIAghBQwBCyAFQQQQzwEiCkUEQCAIIQUMAQsgACgCDCELIAhBAEoEQANAIAsgCUECdGooAgAiAwRAA0AgAygCDCEEIAMgCiADKAIAIAVwQQJ0aiIHKAIANgIMIAcgAzYCACAEIgMNAAsLIAlBAWoiCSAIRw0ACwsgCxDMASAAIAo2AgwgACAFNgIECyAGIAVwIQULQRAQywEiA0UEQEF7DwsgAyACNgIIIAMgATYCBCADIAY2AgAgAyAAKAIMIAVBAnRqIgQoAgA2AgwgBCADNgIAIAAgACgCCEEBajYCCEEADwsgBCEDCyADIAI2AghBAQvtAQEFfyAAKAIEIgNBAEoEQANAAkBBACEFIAZBAnQiByAAKAIMaigCACIEBEADQCAEIQMCQAJAAkACQCAEKAIEIAQoAgggAiABEQIADgQBBgIAAwsgBiAAKAIETg0FIAAoAgwgB2ooAgAiA0UNBQNAIAMgBEYNASADKAIMIgMNAAsMBQsgBCgCDCEDIAQhBQwBCyAEKAIMIQMCfyAFRQRAIAAoAgwgB2oMAQsgBUEMagsgAzYCACAEKAIMIQMgBBDMASAAIAAoAghBAWs2AggLIAMiBA0ACyAAKAIEIQMLIAZBAWoiBiADSA0BCwsLC48DAQp/AkAgAEEAQfcgIAEgAhCTASIDDQAgAEH3IEH6ICABIAIQkwEiAw0AQQAhAyAAQYCAgIAEcUUNAEEAQYUCIAEgAhCUASIDDQBBhQJBiQIgASACEJQBIgMNACMAQRBrIgQkAEGgqBIiB0EMaiEIQbCoEiEJQQEhAAJ/A0AgAEEBcyEMAkADQEEBIQpBACEDIAgoAgAiBUEATA0BA0AgBCAJIANBAnRqKAIAIgA2AgwCQAJAIAAgB0EDIAIgAREDACILDQBBACEAIANFDQEDQCAEIAkgAEECdGooAgA2AgggBCgCDCAEQQhqQQEgAiABEQMAIgsNASAEKAIIIARBDGpBASACIAERAwAiCw0BIAMgAEEBaiIARw0ACwwBCyAKIAxyQQFxRQ0CIAtBACAKGwwFCyADQQFqIgMgBUghCiADIAVHDQALCyAIKAIAIQULIAUgBmpBBGoiBkECdEGgqBJqIgdBEGohCSAHQQxqIQggBkHIAEgiAA0AC0EACyEAIARBEGokACAAIQMLIAMLygIBBn8jAEEQayIFJAACQAJAIAEgAk4NACAAQQFxIQgDQCAFIAFBAnQiAEGAnBFqIgYoAgAiBzYCDCAHQYABTyAIcQ0BIAEgAEGEnBFqIgooAgAiAUEASgR/IAZBCGohCUEAIQcDQCAFIAkgB0ECdGooAgAiADYCCAJAIABB/wBLIAhxDQAgBSgCDCAFQQhqQQEgBCADEQMAIgYNBSAFKAIIIAVBDGpBASAEIAMRAwAiBg0FQQAhACAHRQ0AA0AgBSAJIABBAnRqKAIAIgY2AgQgBkH/AEsgCHFFBEAgBSgCCCAFQQRqQQEgBCADEQMAIgYNByAFKAIEIAVBCGpBASAEIAMRAwAiBg0HCyAAQQFqIgAgB0cNAAsLIAdBAWoiByABRw0ACyAKKAIABSABC2pBAmoiASACSA0ACwtBACEGCyAFQRBqJAAgBgutAgEKfyMAQRBrIgUkAAJ/QQAgACABTg0AGiAAIAFIIQQDQCAEQQFzIQ0gAEECdEHwnxJqIgpBDGohCyAKQQhqIQwCQANAQQEhCEEAIQYgDCgCACIHQQBMDQEDQCAFIAsgBkECdGooAgAiBDYCDAJAAkAgBCAKQQIgAyACEQMAIgkNAEEAIQQgBkUNAQNAIAUgCyAEQQJ0aigCADYCCCAFKAIMIAVBCGpBASADIAIRAwAiCQ0BIAUoAgggBUEMakEBIAMgAhEDACIJDQEgBiAEQQFqIgRHDQALDAELIAggDXJBAXFFDQIgCUEAIAgbDAULIAZBAWoiBiAHSCEIIAYgB0cNAAsLIAwoAgAhBwsgACAHakEDaiIAIAFIIgQNAAtBAAshBCAFQRBqJAAgBAtqAQR/QYcIIQIDQCABIAJqQQF2IgNBAWogASADQQxsQeA3aigCBCAASSIEGyIBIAIgAyAEGyICSQ0AC0EAIQICQCABQYYISw0AIAFBDGwiAUHgN2ooAgAgAEsNACABQeA3aigCCCECCyACC84BAQV/IAIgASAAKAIAEQEAIAFqIgZLBH8CQANAQYcIIQVBACEBIAYgAiAAKAIUEQAAIQcDQCABIAVqQQF2IghBAWogASAIQQxsQeA3aigCBCAHSSIJGyIBIAUgCCAJGyIFSQ0AC0EAIQUgAUGGCEsNASABQQxsIgFB4DdqKAIAIAdLDQEgAUHgN2ooAggiBUESSw0BQQEgBXRB0IAQcUUNASAGIAAoAgARAQAgBmoiBiACSQ0AC0EADwsgAyAHNgIAIAQgBTYCAEEBBSAFCwtrAAJAIABB/wFLDQAgAUEOSw0AIABBAXRB4DNqLwEAIAF2QQFxDwsCfyABQdUETwRAQXogAUHVBGsiAUGwwRIoAgBODQEaIAFBA3RBwMESaigCBCAAEFMPCyABQQJ0QcCqEmooAgAgABBTCwu7BQEIfyMAQdAAayIDJAACQCABIAJJBEADQEGhfiEIIAEgAiAAKAIUEQAAIgVB/wBLDQICQAJAAkAgBUEgaw4OAgEBAQEBAQEBAQEBAQIACyAFQd8ARg0BCyADQRBqIARqIAU6AAAgBEE7Sg0DIARBAWohBAsgASAAKAIAEQEAIAFqIgEgAkkNAAsLIANBEGogBGoiAUEAOgAAAkBBtMESKAIAIgVFDQAgA0EANgIMIwBBEGsiACQAIAAgATYCDCAAIANBEGo2AgggBSAAQQhqIANBDGoQjwEaIABBEGokACADKAIMIgFFDQAgASgCACEIDAELQaF+IQggBEEBayIBQSxLDQAgBCEGIAQhCSAEIQcgBCEAIAQhAiAEIQUCQAJAAkACQAJAAkACQCABDg8GBQQEAwICAgICAgEBAQEACyAEIAMtAB9BAXRBgNsPai8BAGohBgsgBiADLQAbQQF0QYDbD2ovAQBqIQkLIAkgAy0AFUEBdEGA2w9qLwEAaiEHCyAHIAMtABRBAXRBgNsPai8BAGohAAsgACADLQASQQF0QYDbD2ovAQBqIQILIAIgAy0AEUEBdEGA2w9qLwEAaiEFCyADQRBqIAFqLQAAQQF0QYDbD2ovAQAgBSADLQAQIgBBAXRBgNsPai8BBGpqIgZBoDBLDQAgBkECdEHwzQ1qLgEAIgFBAEgNACABQf//A3FB9I4PaiIKLQAAIABzQd8BcQ0AIANBEGohBSAKIQIgBCEBAkADQCABRQ0BIAItAABB8O8Pai0AACEAIAUtAAAiCUHw7w9qLQAAIQcgCQRAIAFBAWshASACQQFqIQIgBUEBaiEFIAdB/wFxIABB/wFxRg0BCwsgB0H/AXEgAEH/AXFHDQELIAQgCmotAAANACAGQQJ0QfDNDWouAQIhCAsgA0HQAGokACAIC6QBAQN/IwBBEGsiASQAIAEgADYCDCABQQxqQQIQiQEhAwJAQZDfDyIAIAFBDGpBARCJAUH/AXFBAXRqLwECIANB/wFxQQF0IABqLwFGaiAAIAFBDGpBABCJAUH/AXFBAXRqLwEAaiIAQZsPSw0AIAEoAgwgAEEDdCIAQfDxD2oiAigCAEYEQCAAQfDxD2ouAQRBAE4NAQtBACECCyABQRBqJAAgAguPAQEDfyAAQQIQiQEhA0F/IQICQEHg4w8iASAAQQEQiQFB/wFxQQF0ai8BACADQf8BcUEBdCABai8BBmogASAAQQAQiQFB/wFxQQF0ai8BAGoiAUHMDksNACABQQF0QdDrEGouAQAiAUEATgRAIAAgAUH//wNxIgJBAnRBgJwRakEBEIgBRQ0BC0F/IQILIAILIgEBfyAAQf8ATQR/IABBAXRB0CFqLwEAIAF2QQFxBSACCwuOAwEDfyMAQTBrIgEkAAJAQZS9EiICQZENIgAgAiAAEHogAGpBAUEHQQBBAEEAQQAQDCIAQQBIDQBBlL0SQcsNIgAgAiAAEHogAGpBAUEIQQBBAEEAQQAQDCIAQQBIDQAgAUHYADYCACABQpGAgIAgNwMgQZS9EkG2DiIAIAIgABB6IABqQQNBCUECIAFBIGpBASABEAwiAEEASA0AIAFBfTYCACABQQE2AiBBlL0SQc0PIgAgAiAAEHogAGpBAUEKQQEgAUEgakEBIAEQDCIAQQBIDQAgAUE+NgIAIAFBAjYCIEGUvRJBnBAiACACIAAQeiAAakEDQQtBASABQSBqQQEgARAMIgBBAEgNACABQT42AgAgAUECNgIgQZS9EkHtECIAIAIgABB6IABqQQNBDEEBIAFBIGpBASABEAwiAEEASA0AIAFBETYCKCABQpGAgIDAADcDIEGUvRJB3xEiACACIAAQeiAAakEBQQ1BAyABQSBqQQBBABAMIgBBH3UgAHEhAAsgAUEwaiQAIAALEgAgAC0AAEECdEGQihFqKAIAC9YBAQR/AkAgAC0AACICQQJ0QZCKEWooAgAiAyABIABrIgEgASADShsiAUECSA0AIAFBAmshBEF/QQcgAWt0QX9zIAJxIQIgAUEBayIBQQNxIgUEQEEAIQMDQCAALQABQT9xIAJBBnRyIQIgAUEBayEBIABBAWohACADQQFqIgMgBUcNAAsLIARBA0kNAANAIAAtAARBP3EgAC0AAkE/cSACQQx0IAAtAAFBP3FBBnRyckEMdCAALQADQT9xQQZ0cnIhAiAAQQRqIQAgAUEEayIBDQALCyACCzUAAn9BASAAQYABSQ0AGkECIABBgBBJDQAaQQMgAEGAgARJDQAaQQRB8HwgAEGAgIABSRsLC8QBAQF/IABB/wBNBEAgASAAOgAAQQEPCwJ/An8gAEH/D00EQCABIABBBnZBwAFyOgAAIAFBAWoMAQsgAEH//wNNBEAgASAAQQx2QeABcjoAACABIABBBnZBP3FBgAFyOgABIAFBAmoMAQtB73wgAEH///8ASw0BGiABIABBEnZB8AFyOgAAIAEgAEEGdkE/cUGAAXI6AAIgASAAQQx2QT9xQYABcjoAASABQQNqCyICIABBP3FBgAFyOgAAIAIgAWtBAWoLC/IDAQN/IAEoAgAsAAAiBUEATgRAIAMgBUH/AXFB0B9qLQAAOgAAIAEgASgCAEEBajYCAEEBDwsCfyABKAIAIgQgAkGAvhIoAgARAAAhAiABIARB7L0SKAIAEQEAIgUgASgCAGo2AgACQAJAIABBAXEiBiACQf8AS3ENACACEJkBIgBFDQBB8J8SIQJB8HwhAQJAAkACQCAALwEGQQFrDgMAAgEECyAALgEEQQJ0QYCcEWooAgAiAUH/AEsgBnENAiABIANBiL4SKAIAEQAADAQLQaCoEiECCyACIAAuAQRBAnRqIQVBACEBQQAhBANAIAUgBEECdGooAgAgA0GIvhIoAgARAAAiAiABaiEBIAIgA2ohAyAEQQFqIgQgAC4BBkgNAAsMAQsCQCAFQQBMDQAgBUEHcSECIAVBAWtBB08EQCAFQXhxIQBBACEBA0AgAyAELQAAOgAAIAMgBC0AAToAASADIAQtAAI6AAIgAyAELQADOgADIAMgBC0ABDoABCADIAQtAAU6AAUgAyAELQAGOgAGIAMgBC0ABzoAByADQQhqIQMgBEEIaiEEIAFBCGoiASAARw0ACwsgAkUNAEEAIQEDQCADIAQtAAA6AAAgA0EBaiEDIARBAWohBCABQQFqIgEgAkcNAAsLIAUhAQsgAQsL7h4BEH8gAyEKQQAhAyMAQdAAayIFJAACQCAAIgZBAXEiCCABIAJBgL4SKAIAEQAAIgxB/wBLcQ0AIAFB7L0SKAIAEQEAIQAgBSAMNgIIIAUCfyAMIAwQmQEiB0UNABogDCAHLwEGQQFHDQAaIAcuAQRBAnRBgJwRaigCAAs2AhQCQCAGQYCAgIAEcSINRQ0AIAAgAWoiASACTw0AIAUgASACQYC+EigCABEAACIONgIMIAFB7L0SKAIAEQEAIQkCQCAOIgsQmQEiBkUNACAGLwEGQQFHDQAgBi4BBEECdEGAnBFqKAIAIQsLIAAgCWohBiAFIAs2AhgCQCABIAlqIgEgAk8NACAFIAEgAkGAvhIoAgARAAAiCzYCECABQey9EigCABEBACEBAkAgCyIDEJkBIgJFDQAgAi8BBkEBRw0AIAIuAQRBAnRBgJwRaigCACEDCyAFIAM2AhxBACEDIAVBFGoiCUEIEIkBIQICQCAJQQUQiQFB/wFxQfDpD2otAAAgAkH/AXFB8OkPai0AAGogCUECEIkBQf8BcUHw6Q9qLQAAaiICQQ1NBEAgCSACQQF0QfCJEWouAQAiAkECdEGgqBJqQQMQiAFFDQELQX8hAgsgAkEASA0AIAEgBmohCUEBIRAgAkECdCIHQaCoEmooAgwiBkEASgRAIAZBAXEhDSAHQbCoEmohBCAGQQFHBEAgBkF+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgCTYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAk2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAk2AgAgAiAEIANBAnRqKAIANgIICyAGIQMLIAUgB0GgqBJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIRALIAUgAigCBDYCMEEBIQhBASEPIAVBMGoQmgEiBEEATgRAIARBAnQiAEGAnBFqKAIEIgRBAEoEQCAFQTRqIABBiJwRaiAEQQJ0EKYBGgsgBEEBaiEPCyAFIAIoAgg2AkAgBUFAaxCaASICQQBOBEAgAkECdCIEQYCcEWooAgQiAkEASgRAIAVBxABqIARBiJwRaiACQQJ0EKYBGgsgAkEBaiEICyAQQQBMBEAgAyEEDAMLIA9BAEwhESADIQQDQCARRQRAIAVBIGogEkECdGohE0EAIQ0DQCAIQQBKBEAgEygCACIHIAxGIA1BAnQgBWooAjAiASAORnEhBkEAIQIDQCABIQACQCAGBEAgDiEAIAJBAnQgBWpBQGsoAgAgC0YNAQsgCiAEQRRsaiIDIAc2AgggA0EDNgIEIAMgCTYCACADIAA2AgwgAyACQQJ0IAVqQUBrKAIANgIQIARBAWohBAsgAkEBaiICIAhHDQALCyANQQFqIg0gD0cNAAsLIBJBAWoiEiAQRw0ACwwCCyAFQRRqIgJBBRCJASEBAkAgAkECEIkBQf8BcUHw5w9qLQAAIAFB/wFxQfDnD2otAABqIgFBOk0EQCACIAFBAXRB8IgRai4BACIBQQJ0QfCfEmpBAhCIAUUNAQtBfyEBCyABIgJBAEgNAEEBIQkgAkECdCILQfCfEmooAggiB0EASgRAIAdBAXEhDSALQfyfEmohBCAHQQFHBEAgB0F+cSEBQQAhAANAIAogA0EUbGoiAkEBNgIEIAIgBjYCACACIAQgA0ECdGooAgA2AgggCiADQQFyIghBFGxqIgJBATYCBCACIAY2AgAgAiAEIAhBAnRqKAIANgIIIANBAmohAyAAQQJqIgAgAUcNAAsLIA0EQCAKIANBFGxqIgJBATYCBCACIAY2AgAgAiAEIANBAnRqKAIANgIICyAHIQMLIAUgC0HwnxJqIgIoAgA2AiAgBUEgahCaASIEQQBOBEAgBEECdCIAQYCcEWooAgQiBEEASgRAIAVBIGpBBHIgAEGInBFqIARBAnQQpgEaCyAEQQFqIQkLIAUgAigCBDYCMCAFQTBqEJoBIgJBAEgEf0EBBSACQQJ0IgRBgJwRaigCBCICQQBKBEAgBUE0aiAEQYicEWogAkECdBCmARoLIAJBAWoLIQEgCUEATARAIAMhBAwCC0EAIQcgAUEATCELIAMhBANAIAtFBEAgBUEgaiAHQQJ0aigCACEIQQAhAwNAIAggDEYgDiADQQJ0IAVqKAIwIgJGcUUEQCAKIARBFGxqIgAgCDYCCCAAQQI2AgQgACAGNgIAIAAgAjYCDCAEQQFqIQQLIANBAWoiAyABRw0ACwsgB0EBaiIHIAlHDQALDAELAkACQAJAAkAgBwRAIAcvAQYiA0EBRgRAIAcuAQQhAwJ/IAgEQEEAIANBAnRBgJwRaigCAEH/AEsNARoLIApBATYCBCAKIAA2AgAgCiADQQJ0QYCcEWooAgA2AghBAQshBCADQQJ0IgNBgJwRaigCBCIGQQBMDQYgA0GInBFqIQdBACEDA0ACQCAHIANBAnRqKAIAIgIgDEYNACAIRSACQYABSXJFDQAgCiAEQRRsaiIBIAI2AgggAUEBNgIEIAEgADYCACAEQQFqIQQLIANBAWoiAyAGRw0ACwwGCyANRQ0FIAcuAQQhCyADQQJGBEBBASEPIAtBAnRB8J8SaigCCCIDQQBMDQUgA0EBcSENIAtBAnRB/J8SaiECIANBAUYEQEEAIQMMBQsgA0F+cSEOQQAhA0EAIQgDQCAMIAIgA0ECdCIBaigCACIGRwRAIAogBEEUbGoiCSAGNgIIIAlBATYCBCAJIAA2AgAgBEEBaiEECyAMIAIgAUEEcmooAgAiAUcEQCAKIARBFGxqIgYgATYCCCAGQQE2AgQgBiAANgIAIARBAWohBAsgA0ECaiEDIA4gCEECaiIIRw0ACwwEC0EBIREgC0ECdEGgqBJqKAIMIgNBAEwNAiADQQFxIQ0gC0ECdEGwqBJqIQIgA0EBRgRAQQAhAwwCCyADQX5xIQ5BACEDQQAhCANAIAwgAiADQQJ0IgFqKAIAIgZHBEAgCiAEQRRsaiIJIAY2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAwgAiABQQRyaigCACIBRwRAIAogBEEUbGoiBiABNgIIIAZBATYCBCAGIAA2AgAgBEEBaiEECyADQQJqIQMgDiAIQQJqIghHDQALDAELIAVBCGoQmgEiA0EASA0EIANBAnQiAkGAnBFqKAIEIgNBAEwNBCADQQFxIQsgAkGInBFqIQECQCADQQFGBEBBACEDDAELIANBfnEhDkEAIQNBACEGA0AgCEEAIAEgA0ECdCIHaigCACICQf8ASxtFBEAgCiAEQRRsaiIJIAI2AgggCUEBNgIEIAkgADYCACAEQQFqIQQLIAhBACABIAdBBHJqKAIAIgJB/wBLG0UEQCAKIARBFGxqIgcgAjYCCCAHQQE2AgQgByAANgIAIARBAWohBAsgA0ECaiEDIAZBAmoiBiAORw0ACwsgC0UNBCAIQQAgASADQQJ0aigCACIDQf8ASxsNBCAKIARBFGxqIgIgAzYCCCACQQE2AgQgAiAANgIAIARBAWohBAwECyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRBoKgSaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIRELIAUgBy4BBEECdEGgqBJqKAIENgIwQQEhDEEBIQ8gBUEwahCaASIDQQBOBEAgA0ECdCICQYCcEWooAgQiA0EASgRAIAVBNGogAkGInBFqIANBAnQQpgEaCyADQQFqIQ8LIAUgBy4BBEECdEGgqBJqKAIINgJAIAVBQGsQmgEiA0EATgRAIANBAnRBgJwRaigCBCICQQBKBEAgBUHEAGogA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQwLIBFBAEwNAiAMQX5xIQsgDEEBcSESA0AgD0EASgRAIAVBIGogEEECdGohE0EAIQ0DQAJAIAxBAEwNACANQQJ0IAVqKAIwIQggEygCACEBQQAhAkEAIQYgDEEBRwRAA0AgCiAEQRRsaiIDIAE2AgggA0EDNgIEIAMgADYCACADIAg2AgwgBUFAayIHIAJBAnQiCWooAgAhDiADIAA2AhQgAyAONgIQIAMgATYCHCADIAg2AiAgA0EDNgIYIAMgByAJQQRyaigCADYCJCACQQJqIQIgBEECaiEEIAZBAmoiBiALRw0ACwsgEkUNACAKIARBFGxqIgMgATYCCCADQQM2AgQgAyAANgIAIAMgCDYCDCADIAJBAnQgBWpBQGsoAgA2AhAgBEEBaiEECyANQQFqIg0gD0cNAAsLIBBBAWoiECARRw0ACwwCCyANRQ0AIAIgA0ECdGooAgAiAyAMRg0AIAogBEEUbGoiAiADNgIIIAJBATYCBCACIAA2AgAgBEEBaiEECyAFIAtBAnRB8J8SaigCADYCICAFQSBqEJoBIgNBAE4EQCADQQJ0QYCcEWooAgQiAkEASgRAIAVBIGpBBHIgA0ECdEGInBFqIAJBAnQQpgEaCyACQQFqIQ8LIAUgBy4BBEECdEHwnxJqKAIENgIwIAVBMGoQmgEiA0EASAR/QQEFIANBAnQiAkGAnBFqKAIEIgNBAEoEQCAFQTRqIAJBiJwRaiADQQJ0EKYBGgsgA0EBagshDSAPQQBMDQAgDUF+cSEOIA1BAXEhDEEAIQsDQAJAIA1BAEwNACAFQSBqIAtBAnRqKAIAIQhBACECQQAhASANQQFHBEADQCAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAVBMGoiBiACQQJ0IgdqKAIAIQkgAyAANgIUIAMgCTYCDCADIAg2AhwgA0ECNgIYIAMgBiAHQQRyaigCADYCICACQQJqIQIgBEECaiEEIAFBAmoiASAORw0ACwsgDEUNACAKIARBFGxqIgMgCDYCCCADQQI2AgQgAyAANgIAIAMgAkECdCAFaigCMDYCDCAEQQFqIQQLIAtBAWoiCyAPRw0ACwsgBUHQAGokACAEC04AIAFBgAE2AgACfyACAn8gAEHVBE8EQEF6IABB1QRrIgBBsMESKAIATg0CGiAAQQN0QcTBEmoMAQsgAEECdEHAqhJqCygCADYCAEEACwszAQF/IAAgAU8EQCABDwsDQCAAIAEiAkkEQCACQQFrIQEgAi0AAEFAcUGAAUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsi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AmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRA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IQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBK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JyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoA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b2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMg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ALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4A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AKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacA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XR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEA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AAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcA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AIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4AADoOAAA/DgAAWw4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAARw8AAEkPAABsDwAAcQ8AAJcPAACZDwAAvA8AAL4PAADMDwAAzg8AANoPAAAAEAAAxRAAAMcQAADHEAAAzRAAAM0QAADQEAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAAB8EwAAgBMAAJkTAACgEwAA9RMAAPgTAAD9EwAAABQAAJwWAACgFgAA+BYAAAAXAAAVFwAAHxcAADYXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADdFwAA4BcAAOkXAADwFwAA+RcAAAAYAAAZGAAAIBgAAHgYAACAGAAAqhgAALAYAAD1GAAAABkAAB4ZAAAgGQAAKxkAADAZAAA7GQAAQBkAAEAZAABEGQAAbRkAAHAZAAB0GQAAgBkAAKsZAACwGQAAyRkAANAZAADaGQAA3hkAABsaAAAeGgAAXhoAAGAaAAB8GgAAfxoAAIkaAACQGgAAmRoAAKAaAACtGgAAsBoAAM4aAAAAGwAATBsAAFAbAAB+GwAAgBsAAPMbAAD8GwAANxwAADscAABJHAAATRwAAIgcAACQHAAAuhwAAL0cAADHHAAA0BwAAPocAAAAHQAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAADEHwAAxh8AANMfAADWHwAA2x8AAN0fAADvHwAA8h8AAPQfAAD2HwAA/h8AAAAgAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADYAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQAAAQEAAgEBAAcBAQAzAQEANwEBAI4BAQCQAQEAnAEBAKABAQCgAQEA0AEBAP0BAQCAAgEAnAIBAKACAQDQAgEA4AIBAPsCAQAAAwEAIwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAJ8DAQDDAwEAyAMBANUDAQAABAEAnQQBAKAEAQCpBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBvBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAVwgBAJ4IAQCnCAEArwgBAOAIAQDyCAEA9AgBAPUIAQD7CAEAGwkBAB8JAQA5CQEAPwkBAD8JAQCACQEAtwkBALwJAQDPCQEA0gkBAAMKAQAFCgEABgoBAAwKAQATCgEAFQoBABcKAQAZCgEANQoBADgKAQA6CgEAPwoBAEgKAQBQCgEAWAoBAGAKAQCfCgEAwAoBAOYKAQDrCgEA9goBAAALAQA1CwEAOQsBAFULAQBYCwEAcgsBAHgLAQCRCwEAmQsBAJwLAQCpCwEArwsBAAAMAQBIDAEAgAwBALIMAQDADAEA8gwBAPoMAQAnDQEAMA0BADkNAQBgDgEAfg4BAIAOAQCpDgEAqw4BAK0OAQCwDgEAsQ4BAAAPAQAnDwEAMA8BAFkPAQBwDwEAiQ8BALAPAQDLDwEA4A8BAPYPAQAAEAEATRABAFIQAQB1EAEAfxABAMIQAQDNEAEAzRABANAQAQDoEAEA8BABAPkQAQAAEQEANBEBADYRAQBHEQEAUBEBAHYRAQCAEQEA3xEBAOERAQD0EQEAABIBABESAQATEgEAPhIBAIASAQCGEgEAiBIBAIgSAQCKEgEAjRIBAI8SAQCdEgEAnxIBAKkSAQCwEgEA6hIBAPASAQD5EgEAABMBAAMTAQAFEwEADBMBAA8TAQAQEwEAExMBACgTAQAqEwEAMBMBADITAQAzEwEANRMBADkTAQA7EwEARBMBAEcTAQBIEwEASxMBAE0TAQBQEwEAUBMBAFcTAQBXEwEAXRMBAGMTAQBmEwEAbBMBAHATAQB0EwEAABQBAFsUAQBdFAEAYRQBAIAUAQDHFAEA0BQBANkUAQCAFQEAtRUBALgVAQDdFQEAABYBAEQWAQBQFgEAWRYBAGAWAQBsFgEAgBYBALkWAQDAFgEAyRYBAAAXAQAaFwEAHRcBACsXAQAwFwEARhcBAAAYAQA7GAEAoBgBAPIYAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEARhkBAFAZAQBZGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDkGQEAABoBAEcaAQBQGgEAohoBALAaAQD4GgEAABwBAAgcAQAKHAEANhwBADgcAQBFHAEAUBwBAGwcAQBwHAEAjxwBAJIcAQCnHAEAqRwBALYcAQAAHQEABh0BAAgdAQAJHQEACx0BADYdAQA6HQEAOh0BADwdAQA9HQEAPx0BAEcdAQBQHQEAWR0BAGAdAQBlHQEAZx0BAGgdAQBqHQEAjh0BAJAdAQCRHQEAkx0BAJgdAQCgHQEAqR0BAOAeAQD4HgEAsB8BALAfAQDAHwEA8R8BAP8fAQCZIwEAACQBAG4kAQBwJAEAdCQBAIAkAQBDJQEAkC8BAPIvAQAAMAEALjQBADA0AQA4NAEAAEQBAEZGAQAAaAEAOGoBAEBqAQBeagEAYGoBAGlqAQBuagEAvmoBAMBqAQDJagEA0GoBAO1qAQDwagEA9WoBAABrAQBFawEAUGsBAFlrAQBbawEAYWsBAGNrAQB3awEAfWsBAI9rAQBAbgEAmm4BAABvAQBKbwEAT28BAIdvAQCPbwEAn28BAOBvAQDkbwEA8G8BAPFvAQAAcAEA94cBAACIAQDVjAEAAI0BAAiNAQDwrwEA868BAPWvAQD7rwEA/a8BAP6vAQAAsAEAIrEBAFCxAQBSsQEAZLEBAGexAQBwsQEA+7IBAAC8AQBqvAEAcLwBAHy8AQCAvAEAiLwBAJC8AQCZvAEAnLwBAKO8AQAAzwEALc8BADDPAQBGzwEAUM8BAMPPAQAA0AEA9dABAADRAQAm0QEAKdEBAOrRAQAA0gEARdIBAODSAQDz0gEAANMBAFbTAQBg0wEAeNMBAADUAQBU1AEAVtQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC51AEAu9QBALvUAQC91AEAw9QBAMXUAQAF1QEAB9UBAArVAQAN1QEAFNUBABbVAQAc1QEAHtUBADnVAQA71QEAPtUBAEDVAQBE1QEARtUBAEbVAQBK1QEAUNUBAFLVAQCl1gEAqNYBAMvXAQDO1wEAi9oBAJvaAQCf2gEAodoBAK/aAQAA3wEAHt8BAADgAQAG4AEACOABABjgAQAb4AEAIeABACPgAQAk4AEAJuABACrgAQAA4QEALOEBADDhAQA94QEAQOEBAEnhAQBO4QEAT+EBAJDiAQCu4gEAwOIBAPniAQD/4gEA/+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQDH6AEA1ugBAADpAQBL6QEAUOkBAFnpAQBe6QEAX+kBAHHsAQC07AEAAe0BAD3tAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQDw7gEA8e4BAADwAQAr8AEAMPABAJPwAQCg8AEArvABALHwAQC/8AEAwfABAM/wAQDR8AEA9fABAADxAQCt8QEA5vEBAALyAQAQ8gEAO/IBAEDyAQBI8gEAUPIBAFHyAQBg8gEAZfIBAADzAQDX9gEA3fYBAOz2AQDw9gEA/PYBAAD3AQBz9wEAgPcBANj3AQDg9wEA6/cBAPD3AQDw9wEAAPgBAAv4AQAQ+AEAR/gBAFD4AQBZ+AEAYPgBAIf4AQCQ+AEArfgBALD4AQCx+AEAAPkBAFP6AQBg+gEAbfoBAHD6AQB0+gEAePoBAHz6AQCA+gEAhvoBAJD6AQCs+gEAsPoBALr6AQDA+gEAxfoBAND6AQDZ+gEA4PoBAOf6AQDw+gEA9voBAAD7AQCS+wEAlPsBAMr7AQDw+wEA+fsBAAAAAgDfpgIAAKcCADi3AgBAtwIAHbgCACC4AgChzgIAsM4CAODrAgAA+AIAHfoCAAAAAwBKEwMAAQAOAAEADgAgAA4AfwAOAAABDgDvAQ4AAAAPAP3/DwAAABAA/f8QAEHgkAULEwIAAAAACwEANQsBADkLAQA/CwEAQYCRBQsSAgAAAAAbAABMGwAAUBsAAH4bAEGgkQULEwIAAACgpgAA96YAAABoAQA4agEAQcCRBQsTAgAAANBqAQDtagEA8GoBAPVqAQBB4JEFCxICAAAAwBsAAPMbAAD8GwAA/xsAQYCSBQtyDgAAAIAJAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAEGAkwULIwQAAAAAHAEACBwBAAocAQA2HAEAOBwBAEUcAQBQHAEAbBwBAEGwkwULIgQAAAAcBgAAHAYAAA4gAAAPIAAAKiAAAC4gAABmIAAAaSAAQeCTBQtGAwAAAOoCAADrAgAABTEAAC8xAACgMQAAvzEAAAAAAAADAAAAABABAE0QAQBSEAEAdRABAH8QAQB/EAEAAQAAAAAoAAD/KABBsJQFC7csAgAAAAAaAAAbGgAAHhoAAB8aAAABAAAAQBcAAFMXAAC9AgAAAAAAAB8AAAB/AAAAnwAAAK0AAACtAAAAeAMAAHkDAACAAwAAgwMAAIsDAACLAwAAjQMAAI0DAACiAwAAogMAADAFAAAwBQAAVwUAAFgFAACLBQAAjAUAAJAFAACQBQAAyAUAAM8FAADrBQAA7gUAAPUFAAAFBgAAHAYAABwGAADdBgAA3QYAAA4HAAAPBwAASwcAAEwHAACyBwAAvwcAAPsHAAD8BwAALggAAC8IAAA/CAAAPwgAAFwIAABdCAAAXwgAAF8IAABrCAAAbwgAAI8IAACXCAAA4ggAAOIIAACECQAAhAkAAI0JAACOCQAAkQkAAJIJAACpCQAAqQkAALEJAACxCQAAswkAALUJAAC6CQAAuwkAAMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4A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AQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh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AABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAAOkBACHpAQAAAAAAcgIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxAEAAMQBAADGAQAAxwEAAMkBAADKAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADxAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADMCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAABUAgAAVgIAAFcCAABZAgAAWQIAAFsCAABcAgAAYAIAAGECAABjAgAAYwIAAGUCAABmAgAAaAIAAGwCAABvAgAAbwIAAHECAAByAgAAdQIAAHUCAAB9AgAAfQIAAIACAACAAgAAggIAAIMCAACHAgAAjAIAAJICAACSAgAAnQIAAJ4CAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHsDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPsDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGEFAACHBQAA+BMAAP0TAACAHAAAiBwAAHkdAAB5HQAAfR0AAH0dAACOHQAAjh0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAmx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAA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CQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACa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CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADG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vx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAA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AACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqn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ADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwA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AD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVh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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v////////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACgQBAIkNAQAKLAAALgoBAAoEAAAFBAEACh4AAFoHAQAKHwAAwwgBAAoBAAC6AAEAfQEAAF8BAQB9pwAAQgcBAH2rAABnBgEAhR8AAJoAAgCJHwAAhgACAIkBAABrAgEAhasAAH8GAQCJqwAAiwYBAIUcAAC6AwEAhQwBAMcOAQCJDAEA0w4BAIQsAAC+CgEA8x8AAGAAAgCEHgAAEggBAIQfAACVAAIAhAEAAGgBAQCEpwAAwAwBAISrAAB8BgEA7SwAAFELAQCEHAAAugMBAIQMAQDEDgEATB4AAL0HAQBMHwAAIwkBAEwBAAAXAQEATKcAAHsMAQBXAAAAQQABAEwAAAAfAAEAhKYAABsMAQCQLAAA0AoBAJAEAABUBAEAkB4AACQIAQCQHwAAqQACAJABAAB0AgEAkKcAAMkMAQCQqwAAoAYBAEymAADiCwEAkBwAALYFAQCQDAEA6A4BANsfAABiCQEA2wEAAMIBAQBXbgEA9g8BAExuAQDVDwEA2wAAAJwAAQD7HwAAdAkBAJCmAAAtDAEAsgQBAOkNAQCyLAAAAwsBALIEAACHBAEAsh4AAEgIAQCyHwAA+QACALIBAAC8AgEAsqcAAMUCAQCyqwAABgcBAPWnAAAXDQEAshwAABwGAQCyDAEATg8BALgEAQD7DQEAuCwAAAwLAQC4BAAAkAQBALgeAABRCAEAuB8AAHcJAQC4AQAAmAEBALinAAD2DAEAuKsAABgHAQB3qwAAVQYBALgcAAAuBgEApiwAAPEKAQCmBAAAdQQBAKYeAAA2CAEAph8AAO8AAgCmAQAApwIBAKanAADqDAEApqsAAOIGAQDpHwAAhgkBAKYcAAD4BQEApgwBACoPAQCkLAAA7goBAKQEAAByBAEApB4AADMIAQCkHwAA5QACAKQBAACGAQEApKcAAOcMAQCkqwAA3AYBAPEBAADjAQEApBwAAPIFAQCkDAEAJA8BAKAsAADoCgEAoAQAAGwEAQCgHgAALQgBAKAfAADRAAIAoAEAAIABAQCgpwAA4QwBAKCrAADQBgEA5x8AAC8AAwCgHAAA5gUBAKAMAQAYDwEAriwAAP0KAQCuBAAAgQQBAK4eAABCCAEArh8AAO8AAgCuAQAAswIBAK6nAACPAgEArqsAAPoGAQDjHwAAKQADAK4cAAAQBgEArgwBAEIPAQCsLAAA+goBAKwEAAB+BAEArB4AAD8IAQCsHwAA5QACAKwBAACMAQEArKcAAH0CAQCsqwAA9AYBAPsTAAA5BwEArBwAAAoGAQCsDAEAPA8BAKIsAADrCgEAogQAAG8EAQCiHgAAMAgBAKIfAADbAAIAogEAAIMBAQCipwAA5AwBAKKrAADWBgEAshAAAI0LAQCiHAAA7AUBAKIMAQAeDwEAshgBAIcPAQA9HwAADgkBAD0BAAACAQEAsAQBAOMNAQCwLAAAAAsBALAEAACEBAEAsB4AAEUIAQDdAAAAogABALgQAACfCwEAsKcAAMgCAQCwqwAAAAcBALgYAQCZDwEAsBwAABYGAQCwDAEASA8BANMEAQBMDgEA1x8AAB8AAwDXAQAAvAEBAKYQAABpCwEA0x8AABkAAwDTAQAAtgEBAKYYAQBjDwEAiQMAAOMCAQDTAAAAhwABAKosAAD3CgEAqgQAAHsEAQCqHgAAPAgBAKofAADbAAIApBAAAGMLAQCqpwAAhgIBAKqrAADuBgEApBgBAF0PAQCqHAAABAYBAKoMAQA2DwEAqCwAAPQKAQCoBAAAeAQBAKgeAAA5CAEAqB8AANEAAgCgEAAAVwsBAKinAADtDAEAqKsAAOgGAQCgGAEAUQ8BAKgcAAD+BQEAqAwBADAPAQDQBAEAQw4BANAsAAAwCwEA0AQAALQEAQDQHgAAdQgBAK4QAACBCwEAkAMAABkAAwDQpwAADg0BAK4YAQB7DwEA0AAAAH4AAQC+BAEADQ4BAL4sAAAVCwEAvgQAAJkEAQC+HgAAWggBAL4fAAAFAwEArBAAAHsLAQC+pwAA/wwBAL6rAAAqBwEArBgBAHUPAQC+HAAAOgYBAOssAABOCwEAbywAAFwCAQAKAgAABQIBAOsfAABuCQEAbx8AAEoJAQCiEAAAXQsBAPUDAAD2AgEAZywAAKkKAQCiGAEAVw8BAJgsAADcCgEAmAQAAGAEAQCYHgAAJgACAJgfAACpAAIAmAEAAHcBAQCYpwAA1QwBAJirAAC4BgEA/wMAANoCAQCYHAAAzgUBAJgMAQAADwEAsBAAAIcLAQBzqwAASQYBADf/AABfDQEAsBgBAIEPAQBfHwAAMgkBAKYDAAAwAwEAmKYAADkMAQBMAgAAVgIBAJYsAADZCgEAlgQAAF0EAQCWHgAAEAACAJYfAADHAAIAlgEAAIwCAQCWpwAA0gwBAJarAACyBgEApAMAACoDAQCWHAAAyAUBAJYMAQD6DgEA8QMAACIDAQCqEAAAdQsBAPcfAABDAAMA9wEAAJ4BAQCqGAEAbw8BAF9uAQAOEAEAlqYAADYMAQCgAwAAHgMBAOAsAABICwEA4AQAAMwEAQDgHgAAjQgBAKgQAABvCwEA4AEAAMsBAQBjLAAARQcBAKgYAQBpDwEAvAQBAAcOAQC8LAAAEgsBALwEAACWBAEAvB4AAFcIAQC8HwAAPgACALwBAACbAQEAvKcAAPwMAQC8qwAAJAcBALoEAQABDgEAuiwAAA8LAQC6BAAAkwQBALoeAABUCAEAuh8AAE0JAQDfAAAAGAACALqnAAD5DAEAuqsAAB4HAQC+EAAAsQsBALocAAA0BgEA+R8AAGgJAQC+GAEAqw8BALYEAQD1DQEAtiwAAAkLAQC2BAAAjQQBALYeAABOCAEAth8AADoAAgBlIQAAngkBALanAADzDAEAtqsAABIHAQBvIQAAvAkBALYcAAAoBgEAAgQBAHENAQACLAAAFgoBAAIEAADtAwEAAh4AAE4HAQBnIQAApAkBAAIBAACuAAEAsAMAACkAAwAK6QEALxABAMcEAQAoDgEAYSEAAJIJAQDHBAAApQQBAFkfAAApCQEAxx8AAA8AAwDHAQAApQEBAMenAAAIDQEAWQAAAEcAAQDHAAAAYwABAHUsAAC1CgEAlCwAANYKAQCUBAAAWgQBAJQeAAAqCAEAlB8AAL0AAgCUAQAAgAIBAHWrAABPBgEAlKsAAKwGAQCqAwAAPgMBAJQcAADCBQEAlAwBAPQOAQB9BQEAcw4BAAoFAAALBQEAWW4BAPwPAQBdHwAALwkBAIUFAQCLDgEAiQUBAJcOAQCUpgAAMwwBAKgDAAA3AwEAkiwAANMKAQCSBAAAVwQBAJIeAAAnCAEAkh8AALMAAgD///////8AAJKnAADMDAEAkqsAAKYGAQCEBQEAiA4BAJIcAAC8BQEAkgwBAO4OAQDQAwAA7AIBAGMhAACYCQEAvBAAAKsLAQA9AgAAegEBAF1uAQAIEAEAvBgBAKUPAQCSpgAAMAwBAEwFAACVBQEA////////AAD///////8AALoQAAClCwEA////////AAD5EwAAMwcBALoYAQCfDwEAkAUBAKkOAQCcLAAA4goBAJwEAABmBAEAuCQAAMgJAQCcHwAAvQACAJwBAACYAgEAnKcAANsMAQCcqwAAxAYBALYQAACZCwEAnBwAANoFAQCcDAEADA8BALYYAQCTDwEAhiwAAMEKAQCYAwAAAAMBAIYeAAAVCAEAhh8AAJ8AAgCGAQAAaAIBAIanAADDDAEAhqsAAIIGAQBHAQAAEQEBAIYcAADUAwEAhgwBAMoOAQBHAAAAEgABANkfAACACQEA2QEAAL8BAQD///////8AAMcQAADJCwEA2QAAAJYAAQCGpgAAHgwBAP0TAAA/BwEAdwUBAGQOAQCWAwAA+gIBALQEAQDvDQEAtCwAAAYLAQC0BAAAigQBALQeAABLCAEAtB8AADIAAgBHbgEAxg8BALSnAADwDAEAtKsAAAwHAQD3AwAAegMBALQcAAAiBgEAmiwAAN8KAQCaBAAAYwQBAJoeAAAAAAIAmh8AALMAAgD///////8AAJqnAADYDAEAmqsAAL4GAQDgAwAAXAMBAJocAADUBQEAmgwBAAYPAQA3BQAAVgUBAI4sAADNCgEAjgQAAFEEAQCOHgAAIQgBAI4fAACfAAIAjgEAAMUBAQCapgAAPAwBAI6rAACaBgEAPB4AAKUHAQA8HwAACwkBAI4MAQDiDgEAPKcAAGMMAQCKLAAAxwoBAIoEAABLBAEAih4AABsIAQCKHwAAiwACAIoBAABuAgEAjqYAACoMAQCKqwAAjgYBAPkDAAB0AwEArR8AAOoAAgCKDAEA1g4BAK2nAACVAgEArasAAPcGAQD///////8AAK0cAAANBgEArQwBAD8PAQCCLAAAuwoBAIqmAAAkDAEAgh4AAA8IAQCCHwAAiwACAIIBAABlAQEAgqcAAL0MAQCCqwAAdgYBAG0sAABfAgEAghwAAKwDAQCCDAEAvg4BAG0fAABECQEAcasAAEMGAQCALAAAuAoBAIAEAABIBAEAgB4AAAwIAQCAHwAAgQACAIKmAAAYDAEAgKcAALoMAQCAqwAAcAYBAD0FAABoBQEAgBwAAIYDAQCADAEAuA4BAP///////wAA/QMAANQCAQCNHwAAmgACAJQDAADzAgEAjacAAIMCAQCNqwAAlwYBAICmAAAVDAEAWx8AACwJAQCNDAEA3w4BALQQAACTCwEAxAQBAB8OAQDELAAAHgsBALQYAQCNDwEAxB4AAGMIAQDEHwAANgACAMQBAAChAQEAxKcAAM8MAQD///////8AAMQAAABZAAEAwgQBABkOAQDCLAAAGwsBAJIDAADsAgEAwh4AAGAIAQDCHwAA/QACAL4kAADaCQEAwqcAAAUNAQBbbgEAAhABAMIAAABTAAEAniwAAOUKAQCeBAAAaQQBAJ4eAAAYAAIAnh8AAMcAAgD///////8AAJ6nAADeDAEAnqsAAMoGAQACAgAA+QEBAJ4cAADgBQEAngwBABIPAQCMLAAAygoBAIwEAABOBAEAjB4AAB4IAQCMHwAAlQACADsfAAAICQEAOwEAAP8AAQCMqwAAlAYBAK0QAAB+CwEAnAMAABEDAQCMDAEA3A4BAK0YAQB4DwEA////////AACILAAAxAoBAP///////wAAiB4AABgIAQCIHwAAgQACAIymAAAnDAEA////////AACIqwAAiAYBAIYDAADdAgEAiBwAAN4LAQCIDAEA0A4BAEoeAAC6BwEASh8AAB0JAQBKAQAAFAEBAEqnAAB4DAEAbSEAALYJAQBKAAAAGAABAIimAAAhDAEAHAQBAL8NAQAcLAAAZAoBABwEAACmAwEAHB4AAHUHAQAcHwAA4QgBABwBAADVAAEAcwUBAFgOAQBKpgAA3gsBADX/AABZDQEAFgQBAK0NAQAWLAAAUgoBABYEAACUAwEAFh4AAGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8B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ANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMA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AAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAAB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LAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADN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AgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q=");let NB=null;function LB(A){return"text"==A||"terminal"==A}function HB(A){if(!NB){const A=gB(GB).then((()=>({createOnigScanner:CB,createOnigString:EB})));NB=new jA({onigLib:A,loadGrammar:A=>sB(A)})}const B=A.filter((A=>!LB(A))).map((A=>{const B=IB(A);if(!B)throw new RB(A);return NB.loadGrammar(B.scopeName)}));return Promise.all(B)}function kB(A){if(LB(A))return{langId:A,grammar:null};const B=IB(A);if(!B)throw new RB(A);const Q=function(A){const{_syncRegistry:B}=NB;return null==B?void 0:B._grammars.get(A)}(B.scopeName);if(!Q)throw new Error(`Syntax highlighting error: grammar for ${A} not loaded`);return{langId:B.id,grammar:Q}}class RB extends Error{constructor(A){super(`Unknown language: ${A}`),this.alias=A}}function KB(A,B,Q){NB.setTheme(Q);const g=function(A){const B=NB.getColorMap();return A.colorNames?B.map((B=>Object.keys(A.colorNames).find((Q=>A.colorNames[Q].toUpperCase()===B.toUpperCase()))||B)):B}(Q);return function(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=nB(B,g,A);return g=C,E.map((({content:A,metadata:B})=>({content:A,style:rB(B,Q)})))}))}(A,B,g)}function YB(A){return A.split(/\r?\n|\r/g).map((A=>[{content:A,style:{}}]))}function UB(A,B){return PB(A.slice(1,-1)).map((A=>{const{from:Q,to:g}=uB(A);return{lineNumber:B,fromColumn:Q,toColumn:g}}))}function uB(A){const[B,Q]=A.split(":");if(!yB(B))throw new JB(B);const g=Number(B);if(g<1)throw new SB;if(Q){if(!yB(Q))throw new JB(Q);return{from:g,to:+Q}}return{from:g,to:g}}function PB(A){return A.split(/,(?![^\[]*\])/g)}function yB(A){A=A.toString();var B=Math.abs(A),Q=parseInt(A,10);return!isNaN(B)&&Q===B&&B.toString()===A}class JB extends Error{constructor(A){super(`Invalid number "${A}" in range string`),this.number=A,Object.setPrototypeOf(this,new.target.prototype)}}class SB extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const pB="#001",lB="#010",dB={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:pB}},{scope:"comment",settings:{foreground:lB}}]};function fB(A,B,Q,g){const E=B?KB(A,B,dB):YB(A),C=[];let I=1;const D=E.map((A=>{const{annotations:B,lineWithoutComments:E}=function(A,B,Q,g){if(g in xB&&A.some((A=>A.style.color===lB))){const B=xB[g];A=A.flatMap((A=>{if(A.style.color!==lB)return[A];const Q=A.content.trimStart();if(Q.startsWith(B)){const g=Q.slice(B.length),E=[{content:A.content.slice(0,A.content.length-g.length),style:{color:pB}}];return g.length&&E.push({content:g,style:A.style}),E}return[A]}))}if(!A.some((A=>A.style.color===pB)))return{annotations:[],lineWithoutComments:A};const E=[];let C=0;for(;C<A.length;){const g=A[C];if(g.style.color!==lB){C++;continue}const I="function"==typeof B?B(g.content):OB(g.content,B);if(!I){C++;continue}const{name:D,query:w,rangeString:o}=I,s=A[C-1],e=A[C+1],c=[];s&&s.style.color===pB&&c.push(s),c.push(g),e&&e.style.color===pB&&c.push(e),E.push({tokens:c,name:D,query:w,rangeString:o,lineNumber:Q}),C+=2}let I=A;for(const A of E)I=I.filter((B=>!A.tokens.includes(B)));I.every((A=>""===A.content.trim()))&&(I=null);return{annotations:E.map((A=>({name:A.name,query:A.query,lineNumber:A.lineNumber,rangeString:A.rangeString}))),lineWithoutComments:I}}(A,g,I,Q);if(C.push(...B),!E)return null;const D=E.map((A=>A.content)).join("");return["mdx","jsx","tsx"].includes(Q)&&B.length>0&&"{}"===D.trim()?null:(I++,D)})).filter((A=>null!==A)).join("\n"),w=C.map((A=>{var{rangeString:B,lineNumber:Q}=A,g=function(A,B){var Q={};for(var g in A)Object.prototype.hasOwnProperty.call(A,g)&&B.indexOf(g)<0&&(Q[g]=A[g]);if(null!=A&&"function"==typeof Object.getOwnPropertySymbols){var E=0;for(g=Object.getOwnPropertySymbols(A);E<g.length;E++)B.indexOf(g[E])<0&&Object.prototype.propertyIsEnumerable.call(A,g[E])&&(Q[g[E]]=A[g[E]])}return Q}(A,["rangeString","lineNumber"]);return Object.assign(Object.assign({},g),{ranges:mB(B,Q,D)})})).filter((A=>A.ranges.length>0));return{newCode:D,annotations:w}}const xB={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function mB(A,B,Q){return A&&A.startsWith("(/")?function(A,B,Q){const g=B.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);const E=new RegExp(g[1],g[2]),C=A.split(/\r?\n/).slice(Q-1).join("\n");if(!E.global){const A=E.exec(C);if(!A)return[];const B=C.slice(0,A.index).split("\n").length+Q-1;return[{fromLineNumber:B,toLineNumber:B+A[0].split("\n").length-1}]}let I;const D=[];for(;I=E.exec(C);){const A=C.slice(0,I.index).split("\n").length+Q-1,B=A+I[0].split("\n").length-1,g=D[D.length-1];g&&g.fromLineNumber===A||D.push({fromLineNumber:A,toLineNumber:B})}return D}(Q,A,B):A&&A.startsWith("[/")?function(A,B,Q){const g=B.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);let E=g[2]||"";E+="d";const C=new RegExp(g[1],E);let I=A.split(/\r?\n/);I=I.slice(Q-1),C.multiline||(I=[I[0]]);const D=[];return I.forEach(((A,B)=>{if(!C.global){if(D.length>0)return;const g=C.exec(A);if(!g)return;const E=g.indices[1]||g.indices[0];return void D.push({lineNumber:B+Q,fromColumn:E[0]+1,toColumn:E[1]})}let g;for(;g=C.exec(A);){const A=g.indices[1]||g.indices[0];D.push({lineNumber:B+Q,fromColumn:A[0]+1,toColumn:A[1]})}})),D}(Q,A,B):function(A,B){return A?A.startsWith("[")?UB(A,B):PB(A.slice(1,-1)).map((A=>{if(A.includes("[")){const[Q,g]=A.split("["),E=Number(Q),C=B+E-1;if(!yB(C))throw new JB(Q);return UB("["+g,C)}const{from:Q,to:g}=uB(A);return[{fromLineNumber:Q+B-1,toLineNumber:g+B-1}]})).flat():[{fromLineNumber:B,toLineNumber:B}]}(A,B)}function OB(A,B){var Q;const g=A.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),E=g[1],C=g[2],I=null===(Q=g[3])||void 0===Q?void 0:Q.trim();return B.includes(E)?{name:E,rangeString:C,query:I}:null}function qB(A,B){let Q=[],g=1;return A.forEach((A=>{Q.push({fromColumn:g,toColumn:g+A.content.length-1,token:A}),g+=A.content.length})),B.forEach((A=>{Q=function(A,B){const{range:Q}=B,{fromColumn:g,toColumn:E}=Q,C=[];let I=0;for(;I<A.length&&A[I].toColumn<g;)C.push(A[I]),I++;if(I===A.length)return A;const D={annotationName:B.name,annotationQuery:B.query,fromColumn:g,toColumn:E,tokens:[]},w=A[I];if(w.fromColumn<g){const[A,B]=WB(w,g);if(C.push(A),C.push(D),B.toColumn>E){const[A,Q]=WB(B,E+1);D.tokens.push(A),C.push(Q)}else D.tokens.push(B);I++}else C.push(D);for(;I<A.length&&A[I].toColumn<=E;)D.tokens.push(A[I]),I++;if(I===A.length)return C;const o=A[I];if(o.fromColumn<=E){const[A,B]=WB(o,E+1);D.tokens.push(A),C.push(B),I++}for(;I<A.length;)C.push(A[I]),I++;return C}(Q,A)})),Q.map((A=>bB(A)))}function bB(A){return"tokens"in A?{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromColumn:A.fromColumn,toColumn:A.toColumn,tokens:A.tokens.map((A=>bB(A)))}:A.token}function WB(A,B){if("token"in A){const Q=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(0,B-A.fromColumn)}),g=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(B-A.fromColumn)});return[Object.assign(Object.assign({},A),{toColumn:B-1,token:Q}),Object.assign(Object.assign({},A),{fromColumn:B,token:g})]}{const Q=[],g=[];A.tokens.forEach((A=>{if(A.toColumn<B)Q.push(A);else if(A.fromColumn>=B)g.push(A);else{const[E,C]=WB(A,B);Q.push(E),g.push(C)}}));return[Object.assign(Object.assign({},A),{toColumn:B-1,tokens:Q}),Object.assign(Object.assign({},A),{fromColumn:B,tokens:g})]}}function TB(A,B){let Q=A.map(((A,B)=>({fromLineNumber:B+1,toLineNumber:B+1,line:A})));return B.forEach((A=>{Q=function(A,B){const{range:Q,name:g,query:E}=B,{fromLineNumber:C,toLineNumber:I}=Q,D=[];let w=0;for(;w<A.length&&A[w].toLineNumber<C;)D.push(A[w]),w++;if(w===A.length)return D;const o={annotationName:g,annotationQuery:E,fromLineNumber:C,toLineNumber:I,lines:[]},s=A[w];if(s.fromLineNumber<C){const[A,B]=XB(s,C);if(D.push(A),D.push(o),B.toLineNumber>I){const[A,Q]=XB(B,I+1);o.lines.push(A),D.push(Q)}else o.lines.push(B);w++}else D.push(o);for(;w<A.length&&A[w].toLineNumber<=I;)o.lines.push(A[w]),w++;if(w===A.length)return D;const e=A[w];if(e.fromLineNumber<=I){const[A,B]=XB(e,I+1);o.lines.push(A),D.push(B),w++}for(;w<A.length;)D.push(A[w]),w++;return D}(Q,A)})),Q.map((A=>vB(A)))}function vB(A){return"line"in A?{lineNumber:A.fromLineNumber,tokens:A.line.tokens}:{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromLineNumber:A.fromLineNumber,toLineNumber:A.toLineNumber,lines:A.lines.map((A=>vB(A)))}}function XB(A,B){if("line"in A)return[Object.assign(Object.assign({},A),{toLineNumber:B-1}),Object.assign(Object.assign({},A),{fromLineNumber:B})];{const Q=[],g=[];return A.lines.forEach((A=>{if(A.toLineNumber<B)Q.push(A);else if(A.fromLineNumber>=B)g.push(A);else{const[E,C]=XB(A,B);Q.push(E),g.push(C)}})),[Object.assign(Object.assign({},A),{toLineNumber:B-1,lines:Q}),Object.assign(Object.assign({},A),{fromLineNumber:B,lines:g})]}}function ZB(A,B){const{inlineAnnotations:Q,multilineAnnotations:g}=function(A){const B=[],Q=[];return A.forEach((A=>{A.ranges.forEach((g=>{"lineNumber"in g?B.push(Object.assign(Object.assign({},A),{range:g})):Q.push(Object.assign(Object.assign({},A),{range:g}))}))})),{inlineAnnotations:B,multilineAnnotations:Q}}(B);return TB(A.map(((A,B)=>{const g=Q.filter((A=>A.range.lineNumber===B+1));return{lineNumber:B+1,tokens:qB(A,g)}})),g)}var jB=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],VB={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function zB(A,B){const Q=A.indexOf("[",B);if(-1!==Q){const B=A.indexOf("m",Q);return{sequence:A.substring(Q+2,B).split(";"),startPosition:Q,position:B+1}}return{position:A.length}}function _B(A,B){let Q=1;const g=A[B+Q++];let E;if("2"===g){const g=[A[B+Q++],A[B+Q++],A[B+Q]].map((A=>Number.parseInt(A)));3!==g.length||g.some((A=>Number.isNaN(A)))||(E={type:"rgb",rgb:g})}else if("5"===g){const g=Number.parseInt(A[B+Q]);Number.isNaN(g)||(E={type:"table",index:Number(g)})}return[Q,E]}function $B(A){const B=[];for(let Q=0;Q<A.length;Q++){const g=A[Q],E=Number.parseInt(g);if(!Number.isNaN(E))if(0===E)B.push({type:"resetAll"});else if(E<=9){VB[E]&&B.push({type:"setDecoration",value:VB[E]})}else if(E<=29){const A=VB[E-20];A&&B.push({type:"resetDecoration",value:A})}else if(E<=37)B.push({type:"setForegroundColor",value:{type:"named",name:jB[E-30]}});else if(38===E){const[g,E]=_B(A,Q);E&&B.push({type:"setForegroundColor",value:E}),Q+=g}else if(39===E)B.push({type:"resetForegroundColor"});else if(E<=47)B.push({type:"setBackgroundColor",value:{type:"named",name:jB[E-40]}});else if(48===E){const[g,E]=_B(A,Q);E&&B.push({type:"setBackgroundColor",value:E}),Q+=g}else 49===E?B.push({type:"resetBackgroundColor"}):E>=90&&E<=97?B.push({type:"setForegroundColor",value:{type:"named",name:jB[E-90+8]}}):E>=100&&E<=107&&B.push({type:"setBackgroundColor",value:{type:"named",name:jB[E-100+8]}})}return B}function AQ(A,B){const Q=function(){let A=null,B=null,Q=new Set;return{parse(g){const E=[];let C=0;do{const I=zB(g,C),D=I.sequence?g.substring(C,I.startPosition):g.substring(C);if(D.length>0&&E.push({value:D,foreground:A,background:B,decorations:new Set(Q)}),I.sequence){const g=$B(I.sequence);for(const E of g)"resetAll"===E.type?(A=null,B=null,Q.clear()):"resetForegroundColor"===E.type?A=null:"resetBackgroundColor"===E.type?B=null:"resetDecoration"===E.type&&Q.delete(E.value);for(const E of g)"setForegroundColor"===E.type?A=E.value:"setBackgroundColor"===E.type?B=E.value:"setDecoration"===E.type&&Q.add(E.value)}C=I.position}while(C<g.length);return E}}}(),g=A.split(/\r?\n|\r/g).map((A=>function(A,B,Q){const g=A.parse(B),E=g.map((({value:A,foreground:B,background:g,decorations:E})=>{const C=BQ(B,Q),I={};C&&(I.color=C);const D=BQ(g,Q);return D&&(I.background=D),E.has("bold")&&(I.fontWeight="bold"),E.has("italic")&&(I.fontStyle="italic"),E.has("underline")&&(I.textDecoration="underline"),E.has("strikethrough")&&(I.textDecoration="line-through"),E.has("reverse")&&(I.color=D,I.background=C),E.has("dim")&&(I.opacity=.5),{content:A,style:I}}));return E}(Q,A,B)));return g}function BQ(A,B){if(A){if("named"===A.type){return w(B,"terminal.ansi"+(A.name[0].toUpperCase()+A.name.slice(1)))}if("rgb"===A.type){const[B,Q,g]=A.rgb;return`rgb(${B}, ${Q}, ${g})`}}}async function QQ(A,B){await Promise.all([HB(A),i(B)])}async function gQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");return await QQ([C],Q),EQ(E,C,Q,g)}function EQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");const{langId:I,grammar:D}=kB(C),o=t(Q),s="text"==I?YB(E):"terminal"==I?AQ(E,o):(null==g?void 0:g.scopes)?function(A,B,Q){return NB.setTheme(Q),FB(A,B,NB.getColorMap())}(E,D,o):KB(E,D,o),e="terminal"==I?function(A){return{color:w(A,"terminal.foreground"),background:w(A,"terminal.background")}}(o):{color:o.foreground,background:o.background};if(function(A){return"annotations"in A}(g)){return{lines:ZB(s,(null==g?void 0:g.annotations)||[]),lang:I,style:e}}return{lines:s,lang:I,style:e}}async function CQ(A,B,Q){if(!Q)return{code:A,annotations:[]};await HB([B]);const{grammar:g,langId:E}=kB(B),{newCode:C,annotations:I}=fB(A,g,E,Q);return{code:C,annotations:I}}async function IQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");await QQ([],A);return n(t(A))}function DQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");return n(t(A))}export{F as LANG_NAMES,a as THEME_NAMES,RB as UnknownLanguageError,h as UnknownThemeError,CQ as extractAnnotations,IQ as getThemeColors,DQ as getThemeColorsSync,gQ as highlight,EQ as highlightSync,QQ as preload}; +async function A(A){return async function(A){switch(A){case"abap":return import("./grammar/abap.mjs");case"actionscript-3":return import("./grammar/actionscript-3.mjs");case"ada":return import("./grammar/ada.mjs");case"angular-html":return import("./grammar/angular-html.mjs");case"angular-ts":return import("./grammar/angular-ts.mjs");case"apache":return import("./grammar/apache.mjs");case"apex":return import("./grammar/apex.mjs");case"apl":return import("./grammar/apl.mjs");case"applescript":return import("./grammar/applescript.mjs");case"ara":return import("./grammar/ara.mjs");case"asciidoc":return import("./grammar/asciidoc.mjs");case"asm":return import("./grammar/asm.mjs");case"astro":return import("./grammar/astro.mjs");case"awk":return import("./grammar/awk.mjs");case"ballerina":return import("./grammar/ballerina.mjs");case"bat":return import("./grammar/bat.mjs");case"beancount":return import("./grammar/beancount.mjs");case"berry":return import("./grammar/berry.mjs");case"bibtex":return import("./grammar/bibtex.mjs");case"bicep":return import("./grammar/bicep.mjs");case"blade":return import("./grammar/blade.mjs");case"c":return import("./grammar/c.mjs");case"cadence":return import("./grammar/cadence.mjs");case"clarity":return import("./grammar/clarity.mjs");case"clojure":return import("./grammar/clojure.mjs");case"cmake":return import("./grammar/cmake.mjs");case"cobol":return import("./grammar/cobol.mjs");case"codeowners":return import("./grammar/codeowners.mjs");case"codeql":return import("./grammar/codeql.mjs");case"coffee":return import("./grammar/coffee.mjs");case"common-lisp":return import("./grammar/common-lisp.mjs");case"cpp":return import("./grammar/cpp.mjs");case"crystal":return import("./grammar/crystal.mjs");case"csharp":return import("./grammar/csharp.mjs");case"css":return import("./grammar/css.mjs");case"csv":return import("./grammar/csv.mjs");case"cue":return import("./grammar/cue.mjs");case"cypher":return import("./grammar/cypher.mjs");case"d":return import("./grammar/d.mjs");case"dart":return import("./grammar/dart.mjs");case"dax":return import("./grammar/dax.mjs");case"desktop":return import("./grammar/desktop.mjs");case"diff":return import("./grammar/diff.mjs");case"docker":return import("./grammar/docker.mjs");case"dotenv":return import("./grammar/dotenv.mjs");case"dream-maker":return import("./grammar/dream-maker.mjs");case"edge":return import("./grammar/edge.mjs");case"elixir":return import("./grammar/elixir.mjs");case"elm":return import("./grammar/elm.mjs");case"emacs-lisp":return import("./grammar/emacs-lisp.mjs");case"erb":return import("./grammar/erb.mjs");case"erlang":return import("./grammar/erlang.mjs");case"fennel":return import("./grammar/fennel.mjs");case"fish":return import("./grammar/fish.mjs");case"fluent":return import("./grammar/fluent.mjs");case"fortran-fixed-form":return import("./grammar/fortran-fixed-form.mjs");case"fortran-free-form":return import("./grammar/fortran-free-form.mjs");case"fsharp":return import("./grammar/fsharp.mjs");case"gdresource":return import("./grammar/gdresource.mjs");case"gdscript":return import("./grammar/gdscript.mjs");case"gdshader":return import("./grammar/gdshader.mjs");case"genie":return import("./grammar/genie.mjs");case"gherkin":return import("./grammar/gherkin.mjs");case"git-commit":return import("./grammar/git-commit.mjs");case"git-rebase":return import("./grammar/git-rebase.mjs");case"gleam":return import("./grammar/gleam.mjs");case"glimmer-js":return import("./grammar/glimmer-js.mjs");case"glimmer-ts":return import("./grammar/glimmer-ts.mjs");case"glsl":return import("./grammar/glsl.mjs");case"gnuplot":return import("./grammar/gnuplot.mjs");case"go":return import("./grammar/go.mjs");case"graphql":return import("./grammar/graphql.mjs");case"groovy":return import("./grammar/groovy.mjs");case"hack":return import("./grammar/hack.mjs");case"haml":return import("./grammar/haml.mjs");case"handlebars":return import("./grammar/handlebars.mjs");case"haskell":return import("./grammar/haskell.mjs");case"haxe":return import("./grammar/haxe.mjs");case"hcl":return import("./grammar/hcl.mjs");case"hjson":return import("./grammar/hjson.mjs");case"hlsl":return import("./grammar/hlsl.mjs");case"html":return import("./grammar/html.mjs");case"html-derivative":return import("./grammar/html-derivative.mjs");case"http":return import("./grammar/http.mjs");case"hxml":return import("./grammar/hxml.mjs");case"hy":return import("./grammar/hy.mjs");case"imba":return import("./grammar/imba.mjs");case"ini":return import("./grammar/ini.mjs");case"java":return import("./grammar/java.mjs");case"javascript":return import("./grammar/javascript.mjs");case"jinja":return import("./grammar/jinja.mjs");case"jison":return import("./grammar/jison.mjs");case"json":return import("./grammar/json.mjs");case"json5":return import("./grammar/json5.mjs");case"jsonc":return import("./grammar/jsonc.mjs");case"jsonl":return import("./grammar/jsonl.mjs");case"jsonnet":return import("./grammar/jsonnet.mjs");case"jssm":return import("./grammar/jssm.mjs");case"jsx":return import("./grammar/jsx.mjs");case"julia":return import("./grammar/julia.mjs");case"kotlin":return import("./grammar/kotlin.mjs");case"kusto":return import("./grammar/kusto.mjs");case"latex":return import("./grammar/latex.mjs");case"lean":return import("./grammar/lean.mjs");case"less":return import("./grammar/less.mjs");case"liquid":return import("./grammar/liquid.mjs");case"log":return import("./grammar/log.mjs");case"logo":return import("./grammar/logo.mjs");case"lua":return import("./grammar/lua.mjs");case"luau":return import("./grammar/luau.mjs");case"make":return import("./grammar/make.mjs");case"markdown":return import("./grammar/markdown.mjs");case"marko":return import("./grammar/marko.mjs");case"matlab":return import("./grammar/matlab.mjs");case"mdc":return import("./grammar/mdc.mjs");case"mdx":return import("./grammar/mdx.mjs");case"mermaid":return import("./grammar/mermaid.mjs");case"mojo":return import("./grammar/mojo.mjs");case"move":return import("./grammar/move.mjs");case"narrat":return import("./grammar/narrat.mjs");case"nextflow":return import("./grammar/nextflow.mjs");case"nginx":return import("./grammar/nginx.mjs");case"nim":return import("./grammar/nim.mjs");case"nix":return import("./grammar/nix.mjs");case"nushell":return import("./grammar/nushell.mjs");case"objective-c":return import("./grammar/objective-c.mjs");case"objective-cpp":return import("./grammar/objective-cpp.mjs");case"ocaml":return import("./grammar/ocaml.mjs");case"pascal":return import("./grammar/pascal.mjs");case"perl":return import("./grammar/perl.mjs");case"php":return import("./grammar/php.mjs");case"plsql":return import("./grammar/plsql.mjs");case"po":return import("./grammar/po.mjs");case"postcss":return import("./grammar/postcss.mjs");case"powerquery":return import("./grammar/powerquery.mjs");case"powershell":return import("./grammar/powershell.mjs");case"prisma":return import("./grammar/prisma.mjs");case"prolog":return import("./grammar/prolog.mjs");case"proto":return import("./grammar/proto.mjs");case"pug":return import("./grammar/pug.mjs");case"puppet":return import("./grammar/puppet.mjs");case"purescript":return import("./grammar/purescript.mjs");case"python":return import("./grammar/python.mjs");case"qml":return import("./grammar/qml.mjs");case"qmldir":return import("./grammar/qmldir.mjs");case"qss":return import("./grammar/qss.mjs");case"r":return import("./grammar/r.mjs");case"racket":return import("./grammar/racket.mjs");case"raku":return import("./grammar/raku.mjs");case"razor":return import("./grammar/razor.mjs");case"reg":return import("./grammar/reg.mjs");case"regexp":return import("./grammar/regexp.mjs");case"rel":return import("./grammar/rel.mjs");case"riscv":return import("./grammar/riscv.mjs");case"rst":return import("./grammar/rst.mjs");case"ruby":return import("./grammar/ruby.mjs");case"rust":return import("./grammar/rust.mjs");case"sas":return import("./grammar/sas.mjs");case"sass":return import("./grammar/sass.mjs");case"scala":return import("./grammar/scala.mjs");case"scheme":return import("./grammar/scheme.mjs");case"scss":return import("./grammar/scss.mjs");case"shaderlab":return import("./grammar/shaderlab.mjs");case"shellscript":return import("./grammar/shellscript.mjs");case"shellsession":return import("./grammar/shellsession.mjs");case"smalltalk":return import("./grammar/smalltalk.mjs");case"solidity":return import("./grammar/solidity.mjs");case"soy":return import("./grammar/soy.mjs");case"sparql":return import("./grammar/sparql.mjs");case"splunk":return import("./grammar/splunk.mjs");case"sql":return import("./grammar/sql.mjs");case"ssh-config":return import("./grammar/ssh-config.mjs");case"stata":return import("./grammar/stata.mjs");case"stylus":return import("./grammar/stylus.mjs");case"svelte":return import("./grammar/svelte.mjs");case"swift":return import("./grammar/swift.mjs");case"system-verilog":return import("./grammar/system-verilog.mjs");case"systemd":return import("./grammar/systemd.mjs");case"tasl":return import("./grammar/tasl.mjs");case"tcl":return import("./grammar/tcl.mjs");case"templ":return import("./grammar/templ.mjs");case"terraform":return import("./grammar/terraform.mjs");case"tex":return import("./grammar/tex.mjs");case"toml":return import("./grammar/toml.mjs");case"ts-tags":return import("./grammar/ts-tags.mjs");case"tsv":return import("./grammar/tsv.mjs");case"tsx":return import("./grammar/tsx.mjs");case"turtle":return import("./grammar/turtle.mjs");case"twig":return import("./grammar/twig.mjs");case"txt":return import("./grammar/txt.mjs");case"typescript":return import("./grammar/typescript.mjs");case"typespec":return import("./grammar/typespec.mjs");case"typst":return import("./grammar/typst.mjs");case"v":return import("./grammar/v.mjs");case"vala":return import("./grammar/vala.mjs");case"vb":return import("./grammar/vb.mjs");case"verilog":return import("./grammar/verilog.mjs");case"vhdl":return import("./grammar/vhdl.mjs");case"viml":return import("./grammar/viml.mjs");case"vue":return import("./grammar/vue.mjs");case"vue-html":return import("./grammar/vue-html.mjs");case"vyper":return import("./grammar/vyper.mjs");case"wasm":return import("./grammar/wasm.mjs");case"wenyan":return import("./grammar/wenyan.mjs");case"wgsl":return import("./grammar/wgsl.mjs");case"wikitext":return import("./grammar/wikitext.mjs");case"wolfram":return import("./grammar/wolfram.mjs");case"xml":return import("./grammar/xml.mjs");case"xsl":return import("./grammar/xsl.mjs");case"yaml":return import("./grammar/yaml.mjs");case"zenscript":return import("./grammar/zenscript.mjs");case"zig":return import("./grammar/zig.mjs");default:throw new Error("no grammar for "+A)}}(A)}async function B(A){return async function(A){switch(A){case"dark-plus":return import("./theme/dark-plus.mjs");case"dracula-soft":return import("./theme/dracula-soft.mjs");case"dracula":return import("./theme/dracula.mjs");case"github-dark-dimmed":return import("./theme/github-dark-dimmed.mjs");case"github-dark":return import("./theme/github-dark.mjs");case"github-from-css":return import("./theme/github-from-css.mjs");case"github-light":return import("./theme/github-light.mjs");case"light-plus":return import("./theme/light-plus.mjs");case"material-darker":return import("./theme/material-darker.mjs");case"material-default":return import("./theme/material-default.mjs");case"material-from-css":return import("./theme/material-from-css.mjs");case"material-lighter":return import("./theme/material-lighter.mjs");case"material-ocean":return import("./theme/material-ocean.mjs");case"material-palenight":return import("./theme/material-palenight.mjs");case"min-dark":return import("./theme/min-dark.mjs");case"min-light":return import("./theme/min-light.mjs");case"monokai":return import("./theme/monokai.mjs");case"nord":return import("./theme/nord.mjs");case"one-dark-pro":return import("./theme/one-dark-pro.mjs");case"poimandres":return import("./theme/poimandres.mjs");case"rose-pine-dawn":return import("./theme/rose-pine-dawn.mjs");case"rose-pine-moon":return import("./theme/rose-pine-moon.mjs");case"rose-pine":return import("./theme/rose-pine.mjs");case"slack-dark":return import("./theme/slack-dark.mjs");case"slack-ochin":return import("./theme/slack-ochin.mjs");case"solarized-dark":return import("./theme/solarized-dark.mjs");case"solarized-light":return import("./theme/solarized-light.mjs");default:throw new Error("no theme for "+A)}}(A)}async function Q(A){if(console.warn("[WARN] Code Hike:","fetching resource from network",A),"function"==typeof fetch){const B=await fetch(`https://lighter.codehike.org/${A}.json`);return await B.json()}const B=await import("https"),Q={host:"lighter.codehike.org",path:`/${A}.json`,method:"GET"};return new Promise(((A,g)=>{const E=B.request(Q,(B=>{let Q="";B.on("data",(A=>{Q+=A})),B.on("end",(()=>{A(JSON.parse(Q))}))}));E.on("error",(A=>{g(A)})),E.end()}))}const g=A=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(A),E=(A,B)=>A.match(new RegExp(`.{${B}}`,"g")),C=A=>parseInt(A.repeat(2/A.length),16);function I(A,B){return void 0!==A?A/255:"number"!=typeof B||B<0||B>1?1:B}function D(A,B){if(!A)return A;const{r:Q,g:D,b:w,a:o}=function(A){if(!A)return;if(!g(A))throw new Error("Invalid color string, must be a valid hex color");const B=Math.floor((A.length-1)/3),Q=E(A.slice(1),B),[D,w,o,s]=Q.map(C);return{r:D,g:w,b:o,a:I(s,1)}}(A);return function(A){if(!A)return;const{r:B,g:Q,b:g,a:E}=A,C=Math.round(255*E);return`#${B.toString(16).padStart(2,"0")}${Q.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${C.toString(16).padStart(2,"0")}`}({r:Q,g:D,b:w,a:o*B})}function w(A,B){const Q=A.colors||{};if(Q[B])return Q[B];const g=s[B];if(!g)throw new Error(`Unknown theme color key: ${B}`);return"string"==typeof g?w(A,g):function(A,B){const Q=B[A.type];if(Array.isArray(Q)){const[B,g,...E]=Q;return B(w(A,g),...E)}return Q}(A,g)}const o="#6FC3DF",s={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:o},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[D,"tab.activeForeground",.5],light:[D,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:o},"tab.activeBorderTop":{hc:o},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:o},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:o},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:o},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[D,"editor.background",.9],light:[D,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},e=new Map,c=new Map;async function i(A){if("string"==typeof A){const g=A;if(!a.includes(g))throw new M(g);if(!e.has(g)){const A=async function(A){try{return await B(A)}catch(B){return await Q(`themes/${A}`)}}(g).then((A=>(c.set(g,A),A)));e.set(g,A)}return e.get(g)}return A}function t(A){let B=null;if("string"==typeof A){if(B=c.get(A),!B)throw new Error("Syntax highlighting error: theme not loaded")}else B=A;return function(A){if(!A)return;const B=A.settings||A.tokenColors||[],Q={name:A.name||"unknown-theme",type:r(A),foreground:"",background:"",settings:B,colors:A.colors||{},colorNames:A.colorNames},g=B.find((A=>!A.scope));if(g){const{foreground:A,background:B}=(null==g?void 0:g.settings)||{},E={};A&&!Q.colors["editor.foreground"]&&(E["editor.foreground"]=A),B&&!Q.colors["editor.background"]&&(E["editor.background"]=B),Object.keys(E).length>0&&(Q.colors=Object.assign(Object.assign({},Q.colors),E)),Q.foreground=A,Q.background=B}g||(Q.settings=[{settings:{foreground:w(Q,"editor.foreground"),background:w(Q,"editor.background")}},...Q.settings]);if(Q.background=Q.background||w(Q,"editor.background"),Q.foreground=Q.foreground||w(Q,"editor.foreground"),"from-css"===A.type&&!Q.colorNames){const A={};let B=0;Q.settings=Q.settings.map((Q=>{const g=Object.assign(Object.assign({},Q),{settings:Object.assign({},Q.settings)}),{foreground:E,background:C}=g.settings||{};return E&&!A[E]&&(A[E]=`#${B.toString(16).padStart(6,"0")}`,B++),C&&!A[C]&&(A[C]=`#${B.toString(16).padStart(6,"0")}`,B++),E&&(g.settings.foreground=A[E]),C&&(g.settings.background=A[C]),g})),Q.colorNames=A}return Q}(B)}function r(A){var B;if("from-css"===A.type)return"from-css";return"light"===(A.type?A.type:(null===(B=A.name)||void 0===B?void 0:B.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const a=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class M extends Error{constructor(A){super(`Unknown theme: ${A}`),this.theme=A}}function h(A){const B=B=>"colorScheme"===B?function(A){return"from-css"===A.type?"var(--ch-0)":A.type}(A):"foreground"===B?A.foreground:"background"===B?A.background:w(A,B);return{colorScheme:B("colorScheme"),foreground:B("foreground"),background:B("background"),lighter:{inlineBackground:B("lighter.inlineBackground")},editor:{background:B("editor.background"),foreground:B("editor.foreground"),lineHighlightBackground:B("editor.lineHighlightBackground"),rangeHighlightBackground:B("editor.rangeHighlightBackground"),infoForeground:B("editor.infoForeground"),selectionBackground:B("editor.selectionBackground")},focusBorder:B("focusBorder"),tab:{activeBackground:B("tab.activeBackground"),activeForeground:B("tab.activeForeground"),inactiveBackground:B("tab.inactiveBackground"),inactiveForeground:B("tab.inactiveForeground"),border:B("tab.border"),activeBorder:B("tab.activeBorder"),activeBorderTop:B("tab.activeBorderTop")},editorGroup:{border:B("editorGroup.border")},editorGroupHeader:{tabsBackground:B("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:B("editorLineNumber.foreground")},input:{background:B("input.background"),foreground:B("input.foreground"),border:B("input.border")},icon:{foreground:B("icon.foreground")},sideBar:{background:B("sideBar.background"),foreground:B("sideBar.foreground"),border:B("sideBar.border")},list:{activeSelectionBackground:B("list.activeSelectionBackground"),activeSelectionForeground:B("list.activeSelectionForeground"),hoverBackground:B("list.hoverBackground"),hoverForeground:B("list.hoverForeground")}}}const n=["abap","actionscript-3","ada","adoc","angular-html","angular-ts","apache","apex","apl","applescript","ara","asciidoc","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","c++","cadence","cdc","clarity","clj","clojure","closure-templates","cmake","cmd","cobol","codeowners","codeql","coffee","coffeescript","common-lisp","console","cpp","cql","crystal","cs","csharp","css","csv","cue","cypher","d","dart","dax","desktop","diff","docker","dockerfile","dotenv","dream-maker","edge","elisp","elixir","elm","emacs-lisp","erb","erl","erlang","f","f#","f03","f08","f18","f77","f90","f95","fennel","fish","fluent","for","fortran-fixed-form","fortran-free-form","fs","fsharp","fsl","ftl","gdresource","gdscript","gdshader","genie","gherkin","git-commit","git-rebase","gjs","gleam","glimmer-js","glimmer-ts","glsl","gnuplot","go","gql","graphql","groovy","gts","hack","haml","handlebars","haskell","haxe","hbs","hcl","hjson","hlsl","hs","html","html-derivative","http","hxml","hy","imba","ini","jade","java","javascript","jinja","jison","jl","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kt","kts","kusto","latex","lean","lean4","less","liquid","lisp","lit","log","logo","lua","luau","make","makefile","markdown","marko","matlab","md","mdc","mdx","mediawiki","mermaid","mojo","move","nar","narrat","nextflow","nf","nginx","nim","nix","nu","nushell","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","po","postcss","pot","potx","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","qml","qmldir","qss","r","racket","raku","razor","rb","reg","regex","regexp","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","soy","sparql","spl","splunk","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","systemd","tasl","tcl","templ","terminal","terraform","tex","text","tf","tfvars","toml","ts","ts-tags","tsp","tsv","tsx","turtle","twig","txt","typ","typescript","typespec","typst","v","vala","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vy","vyper","wasm","wenyan","wgsl","wiki","wikitext","wl","wolfram","xml","xsl","yaml","yml","zenscript","zig","zsh","文言"],F={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada","angular-html":"text.html.derivative.ng","angular-ts":"source.ts.ng",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asciidoc:"text.asciidoc",adoc:"text.asciidoc",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeowners:"text.codeowners",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",coffeescript:"source.coffee","common-lisp":"source.commonlisp",lisp:"source.commonlisp",cpp:"source.cpp","c++":"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",csv:"text.csv",cue:"source.cue",cypher:"source.cypher",cql:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",desktop:"source.desktop",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile",dotenv:"source.dotenv","dream-maker":"source.dm",edge:"text.html.edge",elixir:"source.elixir",elm:"source.elm","emacs-lisp":"source.emacs.lisp",elisp:"source.emacs.lisp",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fennel:"source.fnl",fish:"source.fish",fluent:"source.ftl",ftl:"source.ftl","fortran-fixed-form":"source.fortran.fixed",f:"source.fortran.fixed",for:"source.fortran.fixed",f77:"source.fortran.fixed","fortran-free-form":"source.fortran.free",f90:"source.fortran.free",f95:"source.fortran.free",f03:"source.fortran.free",f08:"source.fortran.free",f18:"source.fortran.free",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",genie:"source.genie",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase",gleam:"source.gleam","glimmer-js":"source.gjs",gjs:"source.gjs","glimmer-ts":"source.gts",gts:"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",gql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",haxe:"source.hx",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic","html-derivative":"text.html.derivative",http:"source.http",hxml:"source.hxml",hy:"source.hy",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js",jinja:"source.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",jl:"source.julia",kotlin:"source.kotlin",kt:"source.kotlin",kts:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",lean:"source.lean4",lean4:"source.lean4",less:"source.css.less",liquid:"text.html.liquid",log:"text.log",logo:"source.logo",lua:"source.lua",luau:"source.luau",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdc:"text.markdown.mdc",mdx:"source.mdx",mermaid:"markdown.mermaid.codeblock",mojo:"source.mojo",move:"source.move",narrat:"source.narrat",nar:"source.narrat",nextflow:"source.nextflow",nf:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix",nushell:"source.nushell",nu:"source.nushell","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",po:"source.po",pot:"source.po",potx:"source.po",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",qml:"source.qml",qmldir:"source.qmldir",qss:"source.qss",r:"source.r",racket:"source.racket",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",regexp:"source.regexp.python",regex:"source.regexp.python",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",console:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",soy:"text.html.soy","closure-templates":"text.html.soy",sparql:"source.sparql",splunk:"source.splunk_search",spl:"source.splunk_search",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",systemd:"source.systemd",tasl:"source.tasl",tcl:"source.tcl",templ:"source.templ",terraform:"source.hcl.terraform",tf:"source.hcl.terraform",tfvars:"source.hcl.terraform",tex:"text.tex",toml:"source.toml","ts-tags":"source.ts.tags",lit:"source.ts.tags",tsv:"text.tsv",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",typespec:"source.tsp",tsp:"source.tsp",typst:"source.typst",typ:"source.typst",v:"source.v",vala:"source.vala",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml",vue:"source.vue","vue-html":"text.html.vue-html",vyper:"source.vyper",vy:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wikitext:"source.wikitext",mediawiki:"source.wikitext",wiki:"source.wikitext",wolfram:"source.wolfram",wl:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript",zig:"source.zig"},G={"source.abap":{id:"abap",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",embeddedScopes:[]},"source.ada":{id:"ada",embeddedScopes:[]},"text.html.derivative.ng":{id:"angular-html",embeddedScopes:["text.html.basic"]},"source.ts.ng":{id:"angular-ts",embeddedScopes:[]},"source.apacheconf":{id:"apache",embeddedScopes:[]},"source.apex":{id:"apex",embeddedScopes:[]},"source.apl":{id:"apl",embeddedScopes:["text.html.basic","text.xml","source.css","source.js","source.json"]},"source.applescript":{id:"applescript",embeddedScopes:[]},"source.ara":{id:"ara",embeddedScopes:[]},"text.asciidoc":{id:"asciidoc",embeddedScopes:["text.html.basic","source.yaml","text.csv","source.c","source.clojure","source.coffee","source.cpp","source.css","source.cs","source.diff","source.dockerfile","source.elixir","source.elm","source.erlang","source.go","source.groovy","source.haskell","source.java","source.js","source.json","source.js.jsx","source.julia","source.kotlin","source.css.less","source.makefile","source.objc","source.ocaml","source.perl","source.python","source.r","source.ruby","source.rust","source.sass","source.scala","source.css.scss","source.shell","source.sql","source.swift","source.toml","source.ts","text.xml"]},"source.asm.x86_64":{id:"asm",embeddedScopes:[]},"source.astro":{id:"astro",embeddedScopes:["source.json","source.js","source.ts","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.css.postcss","source.tsx"]},"source.awk":{id:"awk",embeddedScopes:[]},"source.ballerina":{id:"ballerina",embeddedScopes:[]},"source.batchfile":{id:"bat",embeddedScopes:[]},"text.beancount":{id:"beancount",embeddedScopes:[]},"source.berry":{id:"berry",embeddedScopes:[]},"text.bibtex":{id:"bibtex",embeddedScopes:[]},"source.bicep":{id:"bicep",embeddedScopes:[]},"text.html.php.blade":{id:"blade",embeddedScopes:["text.html.basic","text.xml","source.sql","source.js","source.json","source.css"]},"source.c":{id:"c",embeddedScopes:[]},"source.cadence":{id:"cadence",embeddedScopes:[]},"source.clar":{id:"clarity",embeddedScopes:[]},"source.clojure":{id:"clojure",embeddedScopes:[]},"source.cmake":{id:"cmake",embeddedScopes:[]},"source.cobol":{id:"cobol",embeddedScopes:["source.sql","text.html.basic","source.java"]},"text.codeowners":{id:"codeowners",embeddedScopes:[]},"source.ql":{id:"codeql",embeddedScopes:[]},"source.coffee":{id:"coffee",embeddedScopes:["source.js"]},"source.commonlisp":{id:"common-lisp",embeddedScopes:[]},"source.cpp":{id:"cpp",embeddedScopes:["source.regexp.python","source.glsl","source.sql"]},"source.crystal":{id:"crystal",embeddedScopes:["text.html.basic","source.sql","source.css","source.c","source.js","source.shell"]},"source.cs":{id:"csharp",embeddedScopes:[]},"source.css":{id:"css",embeddedScopes:[]},"text.csv":{id:"csv",embeddedScopes:[]},"source.cue":{id:"cue",embeddedScopes:[]},"source.cypher":{id:"cypher",embeddedScopes:[]},"source.d":{id:"d",embeddedScopes:[]},"source.dart":{id:"dart",embeddedScopes:[]},"source.dax":{id:"dax",embeddedScopes:[]},"source.desktop":{id:"desktop",embeddedScopes:[]},"source.diff":{id:"diff",embeddedScopes:[]},"source.dockerfile":{id:"docker",embeddedScopes:[]},"source.dotenv":{id:"dotenv",embeddedScopes:[]},"source.dm":{id:"dream-maker",embeddedScopes:[]},"text.html.edge":{id:"edge",embeddedScopes:["source.ts","text.html.basic","text.html.derivative"]},"source.elixir":{id:"elixir",embeddedScopes:["text.html.basic"]},"source.elm":{id:"elm",embeddedScopes:["source.glsl"]},"source.emacs.lisp":{id:"emacs-lisp",embeddedScopes:[]},"text.html.erb":{id:"erb",embeddedScopes:["text.html.basic","source.ruby"]},"source.erlang":{id:"erlang",embeddedScopes:[]},"source.fnl":{id:"fennel",embeddedScopes:[]},"source.fish":{id:"fish",embeddedScopes:[]},"source.ftl":{id:"fluent",embeddedScopes:[]},"source.fortran.fixed":{id:"fortran-fixed-form",embeddedScopes:["source.fortran.free"]},"source.fortran.free":{id:"fortran-free-form",embeddedScopes:[]},"source.fsharp":{id:"fsharp",embeddedScopes:["text.html.markdown"]},"source.gdresource":{id:"gdresource",embeddedScopes:["source.gdshader","source.gdscript"]},"source.gdscript":{id:"gdscript",embeddedScopes:[]},"source.gdshader":{id:"gdshader",embeddedScopes:[]},"source.genie":{id:"genie",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",embeddedScopes:[]},"text.git-commit":{id:"git-commit",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",embeddedScopes:["source.shell"]},"source.gleam":{id:"gleam",embeddedScopes:[]},"source.gjs":{id:"glimmer-js",embeddedScopes:["source.js","source.ts","source.css","text.html.basic"]},"source.gts":{id:"glimmer-ts",embeddedScopes:["source.ts","source.css","source.js","text.html.basic"]},"source.glsl":{id:"glsl",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",embeddedScopes:[]},"source.go":{id:"go",embeddedScopes:[]},"source.graphql":{id:"graphql",embeddedScopes:["source.js","source.ts","source.js.jsx","source.tsx"]},"source.groovy":{id:"groovy",embeddedScopes:[]},"source.hack":{id:"hack",embeddedScopes:["text.html.basic","source.sql"]},"text.haml":{id:"haml",embeddedScopes:["source.ruby","source.js","source.sass","source.coffee","text.html.markdown","source.css"]},"text.html.handlebars":{id:"handlebars",embeddedScopes:["text.html.basic","source.css","source.js","source.yaml"]},"source.haskell":{id:"haskell",embeddedScopes:[]},"source.hx":{id:"haxe",embeddedScopes:[]},"source.hcl":{id:"hcl",embeddedScopes:[]},"source.hjson":{id:"hjson",embeddedScopes:[]},"source.hlsl":{id:"hlsl",embeddedScopes:[]},"text.html.basic":{id:"html",embeddedScopes:["source.js","source.css"]},"text.html.derivative":{id:"html-derivative",embeddedScopes:["text.html.basic"]},"source.http":{id:"http",embeddedScopes:["source.shell","source.json","text.xml","source.graphql"]},"source.hxml":{id:"hxml",embeddedScopes:["source.hx"]},"source.hy":{id:"hy",embeddedScopes:[]},"source.imba":{id:"imba",embeddedScopes:["source.ts"]},"source.ini":{id:"ini",embeddedScopes:[]},"source.java":{id:"java",embeddedScopes:[]},"source.js":{id:"javascript",embeddedScopes:[]},"source.jinja":{id:"jinja",embeddedScopes:[]},"source.jison":{id:"jison",embeddedScopes:["source.js"]},"source.json":{id:"json",embeddedScopes:[]},"source.json5":{id:"json5",embeddedScopes:[]},"source.json.comments":{id:"jsonc",embeddedScopes:[]},"source.json.lines":{id:"jsonl",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",embeddedScopes:[]},"source.jssm":{id:"jssm",embeddedScopes:[]},"source.js.jsx":{id:"jsx",embeddedScopes:[]},"source.julia":{id:"julia",embeddedScopes:["source.cpp","source.python","source.js","source.r","source.sql"]},"source.kotlin":{id:"kotlin",embeddedScopes:[]},"source.kusto":{id:"kusto",embeddedScopes:[]},"text.tex.latex":{id:"latex",embeddedScopes:["text.tex","source.shell","source.css","source.gnuplot","source.haskell","text.html.basic","source.java","source.julia","source.js","source.lua","source.python","source.ruby","source.rust","source.ts","text.xml","source.yaml","source.scala"]},"source.lean4":{id:"lean",embeddedScopes:[]},"source.css.less":{id:"less",embeddedScopes:[]},"text.html.liquid":{id:"liquid",embeddedScopes:["text.html.basic","source.css","source.json","source.js"]},"text.log":{id:"log",embeddedScopes:[]},"source.logo":{id:"logo",embeddedScopes:[]},"source.lua":{id:"lua",embeddedScopes:["source.c"]},"source.luau":{id:"luau",embeddedScopes:[]},"source.makefile":{id:"make",embeddedScopes:[]},"text.html.markdown":{id:"markdown",embeddedScopes:["source.css","text.html.basic","source.ini","source.java","source.lua","source.makefile","source.perl","source.r","source.ruby","source.php","source.sql","source.asp.vb.net","text.xml","text.xml.xsl","source.yaml","source.batchfile","source.clojure","source.coffee","source.c","source.cpp","source.diff","source.dockerfile","text.git-commit","text.git-rebase","source.go","source.groovy","text.pug","source.js","source.json","source.json.comments","source.css.less","source.objc","source.swift","source.css.scss","source.perl.6","source.powershell","source.python","source.julia","source.regexp.python","source.rust","source.scala","source.shell","source.ts","source.tsx","source.cs","source.fsharp","source.dart","text.html.handlebars","text.log","source.erlang","source.elixir","text.tex.latex","text.bibtex","text.html.derivative"]},"text.marko":{id:"marko",embeddedScopes:["source.css","source.css.less","source.css.scss","source.js"]},"source.matlab":{id:"matlab",embeddedScopes:[]},"text.markdown.mdc":{id:"mdc",embeddedScopes:["text.html.markdown","source.yaml","text.html.derivative"]},"source.mdx":{id:"mdx",embeddedScopes:["source.tsx","source.toml","source.yaml","source.c","source.clojure","source.coffee","source.cpp","source.cs","source.css","source.diff","source.dockerfile","source.elixir","source.elm","source.erlang","source.go","source.graphql","source.haskell","text.html.basic","source.ini","source.java","source.js","source.json","source.julia","source.kotlin","source.css.less","source.lua","source.makefile","text.html.markdown","source.objc","source.perl","source.python","source.r","source.ruby","source.rust","source.scala","source.css.scss","source.shell","text.shell-session","source.sql","text.xml","source.swift","source.ts"]},"markdown.mermaid.codeblock":{id:"mermaid",embeddedScopes:[]},"source.mojo":{id:"mojo",embeddedScopes:[]},"source.move":{id:"move",embeddedScopes:[]},"source.narrat":{id:"narrat",embeddedScopes:[]},"source.nextflow":{id:"nextflow",embeddedScopes:[]},"source.nginx":{id:"nginx",embeddedScopes:["source.lua"]},"source.nim":{id:"nim",embeddedScopes:["source.c","text.html.basic","text.xml","source.js","source.css","source.glsl","text.html.markdown"]},"source.nix":{id:"nix",embeddedScopes:[]},"source.nushell":{id:"nushell",embeddedScopes:[]},"source.objc":{id:"objective-c",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",embeddedScopes:[]},"source.ocaml":{id:"ocaml",embeddedScopes:[]},"source.pascal":{id:"pascal",embeddedScopes:[]},"source.perl":{id:"perl",embeddedScopes:["text.html.basic","text.xml","source.css","source.js","source.sql"]},"source.php":{id:"php",embeddedScopes:["text.html.basic","text.xml","source.sql","source.js","source.json","source.css"]},"source.plsql.oracle":{id:"plsql",embeddedScopes:[]},"source.po":{id:"po",embeddedScopes:[]},"source.css.postcss":{id:"postcss",embeddedScopes:[]},"source.powerquery":{id:"powerquery",embeddedScopes:[]},"source.powershell":{id:"powershell",embeddedScopes:[]},"source.prisma":{id:"prisma",embeddedScopes:[]},"source.prolog":{id:"prolog",embeddedScopes:[]},"source.proto":{id:"proto",embeddedScopes:[]},"text.pug":{id:"pug",embeddedScopes:["source.js","source.css","source.sass","source.css.scss","source.stylus","source.coffee","text.html.basic"]},"source.puppet":{id:"puppet",embeddedScopes:[]},"source.purescript":{id:"purescript",embeddedScopes:[]},"source.python":{id:"python",embeddedScopes:[]},"source.qml":{id:"qml",embeddedScopes:["source.js"]},"source.qmldir":{id:"qmldir",embeddedScopes:[]},"source.qss":{id:"qss",embeddedScopes:[]},"source.r":{id:"r",embeddedScopes:[]},"source.racket":{id:"racket",embeddedScopes:[]},"source.perl.6":{id:"raku",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",embeddedScopes:["text.html.basic","source.cs"]},"source.reg":{id:"reg",embeddedScopes:[]},"source.regexp.python":{id:"regexp",embeddedScopes:[]},"source.rel":{id:"rel",embeddedScopes:[]},"source.riscv":{id:"riscv",embeddedScopes:[]},"source.rst":{id:"rst",embeddedScopes:["text.html.derivative","source.cpp","source.python","source.js","source.shell","source.yaml","source.cmake","source.ruby"]},"source.ruby":{id:"ruby",embeddedScopes:["text.html.basic","text.xml","source.sql","source.css","source.c","source.js","source.shell","source.lua"]},"source.rust":{id:"rust",embeddedScopes:[]},"source.sas":{id:"sas",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",embeddedScopes:[]},"source.scala":{id:"scala",embeddedScopes:[]},"source.scheme":{id:"scheme",embeddedScopes:[]},"source.css.scss":{id:"scss",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",embeddedScopes:[]},"text.shell-session":{id:"shellsession",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",embeddedScopes:[]},"source.solidity":{id:"solidity",embeddedScopes:[]},"text.html.soy":{id:"soy",embeddedScopes:["text.html.basic"]},"source.sparql":{id:"sparql",embeddedScopes:["source.turtle"]},"source.splunk_search":{id:"splunk",embeddedScopes:[]},"source.sql":{id:"sql",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",embeddedScopes:[]},"source.stata":{id:"stata",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",embeddedScopes:[]},"source.svelte":{id:"svelte",embeddedScopes:["source.js","source.ts","source.coffee","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.css.postcss","text.pug","text.html.markdown"]},"source.swift":{id:"swift",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",embeddedScopes:[]},"source.systemd":{id:"systemd",embeddedScopes:[]},"source.tasl":{id:"tasl",embeddedScopes:[]},"source.tcl":{id:"tcl",embeddedScopes:[]},"source.templ":{id:"templ",embeddedScopes:["source.go","source.js","source.css"]},"source.hcl.terraform":{id:"terraform",embeddedScopes:[]},"text.tex":{id:"tex",embeddedScopes:["source.r"]},"source.toml":{id:"toml",embeddedScopes:[]},"source.ts.tags":{id:"ts-tags",embeddedScopes:["source.ts"]},"text.tsv":{id:"tsv",embeddedScopes:[]},"source.tsx":{id:"tsx",embeddedScopes:[]},"source.turtle":{id:"turtle",embeddedScopes:[]},"text.html.twig":{id:"twig",embeddedScopes:["source.css","source.js","source.css.scss","source.php","source.python","source.ruby"]},"source.txt":{id:"txt",embeddedScopes:[]},"source.ts":{id:"typescript",embeddedScopes:[]},"source.tsp":{id:"typespec",embeddedScopes:[]},"source.typst":{id:"typst",embeddedScopes:[]},"source.v":{id:"v",embeddedScopes:[]},"source.vala":{id:"vala",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",embeddedScopes:[]},"source.verilog":{id:"verilog",embeddedScopes:[]},"source.vhdl":{id:"vhdl",embeddedScopes:[]},"source.viml":{id:"viml",embeddedScopes:[]},"source.vue":{id:"vue",embeddedScopes:["text.html.basic","text.html.markdown","text.pug","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.js","source.ts","source.js.jsx","source.tsx","source.coffee","source.json","source.json.comments","source.json5","source.yaml","source.toml","source.graphql","text.html.derivative"]},"text.html.vue-html":{id:"vue-html",embeddedScopes:["source.vue","source.js"]},"source.vyper":{id:"vyper",embeddedScopes:[]},"source.wat":{id:"wasm",embeddedScopes:[]},"source.wenyan":{id:"wenyan",embeddedScopes:[]},"source.wgsl":{id:"wgsl",embeddedScopes:[]},"source.wikitext":{id:"wikitext",embeddedScopes:["text.html.basic","source.css","source.ini","source.java","source.lua","source.makefile","source.perl","source.r","source.ruby","source.php","source.sql","source.asp.vb.net","text.xml","text.xml.xsl","source.yaml","source.batchfile","source.clojure","source.coffee","source.c","source.cpp","source.diff","source.dockerfile","source.go","source.groovy","text.pug","source.js","source.json.comments","source.css.less","source.objc","source.swift","source.css.scss","source.perl.6","source.powershell","source.python","source.julia","source.rust","source.scala","source.shell","source.ts","source.cs","source.fsharp","source.dart","text.html.handlebars","text.html.markdown","source.erlang","source.elixir","text.tex.latex","text.bibtex","source.json"]},"source.wolfram":{id:"wolfram",embeddedScopes:[]},"text.xml":{id:"xml",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",embeddedScopes:["text.xml"]},"source.yaml":{id:"yaml",embeddedScopes:[]},"source.zenscript":{id:"zenscript",embeddedScopes:[]},"source.zig":{id:"zig",embeddedScopes:[]}};var N={d:(A,B)=>{for(var Q in B)N.o(B,Q)&&!N.o(A,Q)&&Object.defineProperty(A,Q,{enumerable:!0,get:B[Q]})},o:(A,B)=>Object.prototype.hasOwnProperty.call(A,B)},H={};N.d(H,{_X:()=>XA,Bz:()=>vA,ot:()=>TA,u:()=>WA,jG:()=>Y,Pn:()=>ZA});const L="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var k;function R(A,B){const Q=[],g=function(A){let B=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,Q=B.exec(A);return{next:()=>{if(!Q)return null;const g=Q[0];return Q=B.exec(A),g}}}(A);let E=g.next();for(;null!==E;){let A=0;if(2===E.length&&":"===E.charAt(1)){switch(E.charAt(0)){case"R":A=1;break;case"L":A=-1;break;default:console.log(`Unknown priority ${E} in scope selector`)}E=g.next()}let B=I();if(Q.push({matcher:B,priority:A}),","!==E)break;E=g.next()}return Q;function C(){if("-"===E){E=g.next();const A=C();return B=>!!A&&!A(B)}if("("===E){E=g.next();const A=function(){const A=[];let B=I();for(;B&&(A.push(B),"|"===E||","===E);){do{E=g.next()}while("|"===E||","===E);B=I()}return B=>A.some((A=>A(B)))}();return")"===E&&(E=g.next()),A}if(K(E)){const A=[];do{A.push(E),E=g.next()}while(K(E));return Q=>B(A,Q)}return null}function I(){const A=[];let B=C();for(;B;)A.push(B),B=C();return B=>A.every((A=>A(B)))}}function K(A){return!!A&&!!A.match(/[\w\.:]+/)}function Y(A){"function"==typeof A.dispose&&A.dispose()}function U(A){return Array.isArray(A)?function(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=U(A[Q]);return B}(A):"object"==typeof A?function(A){let B={};for(let Q in A)B[Q]=U(A[Q]);return B}(A):A}function P(A,...B){return B.forEach((B=>{for(let Q in B)A[Q]=B[Q]})),A}function u(A){const B=~A.lastIndexOf("/")||~A.lastIndexOf("\\");return 0===B?A:~B==A.length-1?u(A.substring(0,A.length-1)):A.substr(1+~B)}!function(A){A.toBinaryStr=function(A){let B=A.toString(2);for(;B.length<32;)B="0"+B;return B},A.print=function(B){const Q=A.getLanguageId(B),g=A.getTokenType(B),E=A.getFontStyle(B),C=A.getForeground(B),I=A.getBackground(B);console.log({languageId:Q,tokenType:g,fontStyle:E,foreground:C,background:I})},A.getLanguageId=function(A){return(255&A)>>>0},A.getTokenType=function(A){return(768&A)>>>8},A.containsBalancedBrackets=function(A){return 0!=(1024&A)},A.getFontStyle=function(A){return(30720&A)>>>11},A.getForeground=function(A){return(16744448&A)>>>15},A.getBackground=function(A){return(4278190080&A)>>>24},A.set=function(B,Q,g,E,C,I,D){let w=A.getLanguageId(B),o=A.getTokenType(B),s=A.containsBalancedBrackets(B)?1:0,e=A.getFontStyle(B),c=A.getForeground(B),i=A.getBackground(B);return 0!==Q&&(w=Q),8!==g&&(o=g),null!==E&&(s=E?1:0),-1!==C&&(e=C),0!==I&&(c=I),0!==D&&(i=D),(w<<0|o<<8|s<<10|e<<11|c<<15|i<<24)>>>0}}(k||(k={}));let y=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class J{static hasCaptures(A){return null!==A&&(y.lastIndex=0,y.test(A))}static replaceCaptures(A,B,Q){return A.replace(y,((A,g,E,C)=>{let I=Q[parseInt(g||E,10)];if(!I)return A;{let A=B.substring(I.start,I.end);for(;"."===A[0];)A=A.substring(1);switch(C){case"downcase":return A.toLowerCase();case"upcase":return A.toUpperCase();default:return A}}}))}}function p(A,B){return A<B?-1:A>B?1:0}function d(A,B){if(null===A&&null===B)return 0;if(!A)return-1;if(!B)return 1;let Q=A.length,g=B.length;if(Q===g){for(let g=0;g<Q;g++){let Q=p(A[g],B[g]);if(0!==Q)return Q}return 0}return Q-g}function S(A){return!!(/^#[0-9a-f]{6}$/i.test(A)||/^#[0-9a-f]{8}$/i.test(A)||/^#[0-9a-f]{3}$/i.test(A)||/^#[0-9a-f]{4}$/i.test(A))}function l(A){return A.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}class m{constructor(A){this.fn=A,this.cache=new Map}get(A){if(this.cache.has(A))return this.cache.get(A);const B=this.fn(A);return this.cache.set(A,B),B}}const f="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};class x{constructor(A){this.scopeName=A}toKey(){return this.scopeName}}class O{constructor(A,B){this.scopeName=A,this.ruleName=B}toKey(){return`${this.scopeName}#${this.ruleName}`}}class q{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(A){const B=A.toKey();this._seenReferenceKeys.has(B)||(this._seenReferenceKeys.add(B),this._references.push(A))}}class b{constructor(A,B){this.repo=A,this.initialScopeName=B,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new x(this.initialScopeName)]}processQueue(){const A=this.Q;this.Q=[];const B=new q;for(const Q of A)W(Q,this.initialScopeName,this.repo,B);for(const A of B.references)if(A instanceof x){if(this.seenFullScopeRequests.has(A.scopeName))continue;this.seenFullScopeRequests.add(A.scopeName),this.Q.push(A)}else{if(this.seenFullScopeRequests.has(A.scopeName))continue;if(this.seenPartialScopeRequests.has(A.toKey()))continue;this.seenPartialScopeRequests.add(A.toKey()),this.Q.push(A)}}}function W(A,B,Q,g){const E=Q.lookup(A.scopeName);if(!E){if(A.scopeName===B)throw new Error(`No grammar provided for <${B}>`);return}const C=Q.lookup(B);A instanceof x?v({baseGrammar:C,selfGrammar:E},g):T(A.ruleName,{baseGrammar:C,selfGrammar:E,repository:E.repository},g);const I=Q.injections(A.scopeName);if(I)for(const A of I)g.add(new x(A))}function T(A,B,Q){B.repository&&B.repository[A]&&X([B.repository[A]],B,Q)}function v(A,B){A.selfGrammar.patterns&&Array.isArray(A.selfGrammar.patterns)&&X(A.selfGrammar.patterns,{...A,repository:A.selfGrammar.repository},B),A.selfGrammar.injections&&X(Object.values(A.selfGrammar.injections),{...A,repository:A.selfGrammar.repository},B)}function X(A,B,Q){for(const g of A){if(Q.visitedRule.has(g))continue;Q.visitedRule.add(g);const A=g.repository?P({},B.repository,g.repository):B.repository;Array.isArray(g.patterns)&&X(g.patterns,{...B,repository:A},Q);const E=g.include;if(!E)continue;const C=$(E);switch(C.kind){case 0:v({...B,selfGrammar:B.baseGrammar},Q);break;case 1:v(B,Q);break;case 2:T(C.ruleName,{...B,repository:A},Q);break;case 3:case 4:const g=C.scopeName===B.selfGrammar.scopeName?B.selfGrammar:C.scopeName===B.baseGrammar.scopeName?B.baseGrammar:void 0;if(g){const E={baseGrammar:B.baseGrammar,selfGrammar:g,repository:A};4===C.kind?T(C.ruleName,E,Q):v(E,Q)}else 4===C.kind?Q.add(new O(C.scopeName,C.ruleName)):Q.add(new x(C.scopeName))}}}class Z{constructor(){this.kind=0}}class j{constructor(){this.kind=1}}class V{constructor(A){this.ruleName=A,this.kind=2}}class z{constructor(A){this.scopeName=A,this.kind=3}}class _{constructor(A,B){this.scopeName=A,this.ruleName=B,this.kind=4}}function $(A){if("$base"===A)return new Z;if("$self"===A)return new j;const B=A.indexOf("#");if(-1===B)return new z(A);if(0===B)return new V(A.substring(1));{const Q=A.substring(0,B),g=A.substring(B+1);return new _(Q,g)}}const AA=/\\(\d+)/,BA=/\\(\d+)/g;class QA{constructor(A,B,Q,g){this.$location=A,this.id=B,this._name=Q||null,this._nameIsCapturing=J.hasCaptures(this._name),this._contentName=g||null,this._contentNameIsCapturing=J.hasCaptures(this._contentName)}get debugName(){const A=this.$location?`${u(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${A}`}getName(A,B){return this._nameIsCapturing&&null!==this._name&&null!==A&&null!==B?J.replaceCaptures(this._name,A,B):this._name}getContentName(A,B){return this._contentNameIsCapturing&&null!==this._contentName?J.replaceCaptures(this._contentName,A,B):this._contentName}}class gA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.retokenizeCapturedWithRuleId=E}dispose(){}collectPatterns(A,B){throw new Error("Not supported!")}compile(A,B){throw new Error("Not supported!")}compileAG(A,B,Q,g){throw new Error("Not supported!")}}class EA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,null),this._match=new oA(g,this.id),this.captures=E,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(A,B){B.push(this._match)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new sA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class CA extends QA{constructor(A,B,Q,g,E){super(A,B,Q,g),this.patterns=E.patterns,this.hasMissingPatterns=E.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(A,B){for(const Q of this.patterns)A.getRule(Q).collectPatterns(A,B)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new sA,this.collectPatterns(A,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class IA extends QA{constructor(A,B,Q,g,E,C,I,D,w,o){super(A,B,Q,g),this._begin=new oA(E,this.id),this.beginCaptures=C,this._end=new oA(I||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=D,this.applyEndPatternLast=w||!1,this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(A,B){return this._end.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A,B).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledPatterns(A,B){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new sA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,B):this._cachedCompiledPatterns.setSource(0,B)),this._cachedCompiledPatterns}}class DA extends QA{constructor(A,B,Q,g,E,C,I,D,w){super(A,B,Q,g),this._begin=new oA(E,this.id),this.beginCaptures=C,this.whileCaptures=D,this._while=new oA(I,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=w.patterns,this.hasMissingPatterns=w.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(A,B){return this._while.resolveBackReferences(A,B)}collectPatterns(A,B){B.push(this._begin)}compile(A,B){return this._getCachedCompiledPatterns(A).compile(A)}compileAG(A,B,Q,g){return this._getCachedCompiledPatterns(A).compileAG(A,Q,g)}_getCachedCompiledPatterns(A){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new sA;for(const B of this.patterns)A.getRule(B).collectPatterns(A,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(A,B){return this._getCachedCompiledWhilePatterns(A,B).compile(A)}compileWhileAG(A,B,Q,g){return this._getCachedCompiledWhilePatterns(A,B).compileAG(A,Q,g)}_getCachedCompiledWhilePatterns(A,B){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new sA,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,B||"￿"),this._cachedCompiledWhilePatterns}}class wA{static createCaptureRule(A,B,Q,g,E){return A.registerRule((A=>new gA(B,A,Q,g,E)))}static getCompiledRuleId(A,B,Q){return A.id||B.registerRule((g=>{if(A.id=g,A.match)return new EA(A.$vscodeTextmateLocation,A.id,A.name,A.match,wA._compileCaptures(A.captures,B,Q));if(void 0===A.begin){A.repository&&(Q=P({},Q,A.repository));let g=A.patterns;return void 0===g&&A.include&&(g=[{include:A.include}]),new CA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,wA._compilePatterns(g,B,Q))}return A.while?new DA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,wA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.while,wA._compileCaptures(A.whileCaptures||A.captures,B,Q),wA._compilePatterns(A.patterns,B,Q)):new IA(A.$vscodeTextmateLocation,A.id,A.name,A.contentName,A.begin,wA._compileCaptures(A.beginCaptures||A.captures,B,Q),A.end,wA._compileCaptures(A.endCaptures||A.captures,B,Q),A.applyEndPatternLast,wA._compilePatterns(A.patterns,B,Q))})),A.id}static _compileCaptures(A,B,Q){let g=[];if(A){let E=0;for(const B in A){if("$vscodeTextmateLocation"===B)continue;const A=parseInt(B,10);A>E&&(E=A)}for(let A=0;A<=E;A++)g[A]=null;for(const E in A){if("$vscodeTextmateLocation"===E)continue;const C=parseInt(E,10);let I=0;A[E].patterns&&(I=wA.getCompiledRuleId(A[E],B,Q)),g[C]=wA.createCaptureRule(B,A[E].$vscodeTextmateLocation,A[E].name,A[E].contentName,I)}}return g}static _compilePatterns(A,B,Q){let g=[];if(A)for(let E=0,C=A.length;E<C;E++){const C=A[E];let I=-1;if(C.include){const A=$(C.include);switch(A.kind){case 0:case 1:I=wA.getCompiledRuleId(Q[C.include],B,Q);break;case 2:let g=Q[A.ruleName];g&&(I=wA.getCompiledRuleId(g,B,Q));break;case 3:case 4:const E=A.scopeName,D=4===A.kind?A.ruleName:null,w=B.getExternalGrammar(E,Q);if(w)if(D){let A=w.repository[D];A&&(I=wA.getCompiledRuleId(A,B,w.repository))}else I=wA.getCompiledRuleId(w.repository.$self,B,w.repository)}}else I=wA.getCompiledRuleId(C,B,Q);if(-1!==I){const A=B.getRule(I);let Q=!1;if((A instanceof CA||A instanceof IA||A instanceof DA)&&A.hasMissingPatterns&&0===A.patterns.length&&(Q=!0),Q)continue;g.push(I)}}return{patterns:g,hasMissingPatterns:(A?A.length:0)!==g.length}}}class oA{constructor(A,B){if(A){const B=A.length;let Q=0,g=[],E=!1;for(let C=0;C<B;C++)if("\\"===A.charAt(C)&&C+1<B){const B=A.charAt(C+1);"z"===B?(g.push(A.substring(Q,C)),g.push("$(?!\\n)(?<!\\n)"),Q=C+2):"A"!==B&&"G"!==B||(E=!0),C++}this.hasAnchor=E,0===Q?this.source=A:(g.push(A.substring(Q,B)),this.source=g.join(""))}else this.hasAnchor=!1,this.source=A;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=B,this.hasBackReferences=AA.test(this.source)}clone(){return new oA(this.source,this.ruleId)}setSource(A){this.source!==A&&(this.source=A,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(A,B){let Q=B.map((B=>A.substring(B.start,B.end)));return BA.lastIndex=0,this.source.replace(BA,((A,B)=>l(Q[parseInt(B,10)]||"")))}_buildAnchorCache(){let A,B,Q,g,E=[],C=[],I=[],D=[];for(A=0,B=this.source.length;A<B;A++)Q=this.source.charAt(A),E[A]=Q,C[A]=Q,I[A]=Q,D[A]=Q,"\\"===Q&&A+1<B&&(g=this.source.charAt(A+1),"A"===g?(E[A+1]="￿",C[A+1]="￿",I[A+1]="A",D[A+1]="A"):"G"===g?(E[A+1]="￿",C[A+1]="G",I[A+1]="￿",D[A+1]="G"):(E[A+1]=g,C[A+1]=g,I[A+1]=g,D[A+1]=g),A++);return{A0_G0:E.join(""),A0_G1:C.join(""),A1_G0:I.join(""),A1_G1:D.join("")}}resolveAnchors(A,B){return this.hasAnchor&&this._anchorCache?A?B?this._anchorCache.A1_G1:this._anchorCache.A1_G0:B?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source}}class sA{constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(A){this._items.push(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}unshift(A){this._items.unshift(A),this._hasAnchors=this._hasAnchors||A.hasAnchor}length(){return this._items.length}setSource(A,B){this._items[A].source!==B&&(this._disposeCaches(),this._items[A].setSource(B))}compile(A){if(!this._cached){let B=this._items.map((A=>A.source));this._cached=new eA(A,B,this._items.map((A=>A.ruleId)))}return this._cached}compileAG(A,B,Q){return this._hasAnchors?B?Q?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A1_G0):Q?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(A,B,Q)),this._anchorCache.A0_G0):this.compile(A)}_resolveAnchors(A,B,Q){let g=this._items.map((A=>A.resolveAnchors(B,Q)));return new eA(A,g,this._items.map((A=>A.ruleId)))}}class eA{constructor(A,B,Q){this.regExps=B,this.rules=Q,this.scanner=A.createOnigScanner(B)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const A=[];for(let B=0,Q=this.rules.length;B<Q;B++)A.push(" - "+this.rules[B]+": "+this.regExps[B]);return A.join("\n")}findNextMatchSync(A,B,Q){const g=this.scanner.findNextMatchSync(A,B,Q);return g?{ruleId:this.rules[g.index],captureIndices:g.captureIndices}:null}}class cA{constructor(A,B,Q){this._colorMap=A,this._defaults=B,this._root=Q,this._cachedMatchRoot=new m((A=>this._root.match(A)))}static createFromRawTheme(A,B){return this.createFromParsedTheme(function(A){if(!A)return[];if(!A.settings||!Array.isArray(A.settings))return[];let B=A.settings,Q=[],g=0;for(let A=0,E=B.length;A<E;A++){let E,C=B[A];if(!C.settings)continue;if("string"==typeof C.scope){let A=C.scope;A=A.replace(/^[,]+/,""),A=A.replace(/[,]+$/,""),E=A.split(",")}else E=Array.isArray(C.scope)?C.scope:[""];let I=-1;if("string"==typeof C.settings.fontStyle){I=0;let A=C.settings.fontStyle.split(" ");for(let B=0,Q=A.length;B<Q;B++)switch(A[B]){case"italic":I|=1;break;case"bold":I|=2;break;case"underline":I|=4;break;case"strikethrough":I|=8}}let D=null;"string"==typeof C.settings.foreground&&S(C.settings.foreground)&&(D=C.settings.foreground);let w=null;"string"==typeof C.settings.background&&S(C.settings.background)&&(w=C.settings.background);for(let B=0,C=E.length;B<C;B++){let C=E[B].trim().split(" "),o=C[C.length-1],s=null;C.length>1&&(s=C.slice(0,C.length-1),s.reverse()),Q[g++]=new aA(o,s,A,I,D,w)}}return Q}(A),B)}static createFromParsedTheme(A,B){return function(A,B){A.sort(((A,B)=>{let Q=p(A.scope,B.scope);return 0!==Q?Q:(Q=d(A.parentScopes,B.parentScopes),0!==Q?Q:A.index-B.index)}));let Q=0,g="#000000",E="#ffffff";for(;A.length>=1&&""===A[0].scope;){let B=A.shift();-1!==B.fontStyle&&(Q=B.fontStyle),null!==B.foreground&&(g=B.foreground),null!==B.background&&(E=B.background)}let C=new MA(B),I=new rA(Q,C.getId(g),C.getId(E)),D=new nA(new hA(0,null,-1,0,0),[]);for(let B=0,Q=A.length;B<Q;B++){let Q=A[B];D.insert(0,Q.scope,Q.parentScopes,Q.fontStyle,C.getId(Q.foreground),C.getId(Q.background))}return new cA(C,I,D)}(A,B)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(A){if(null===A)return this._defaults;const B=A.scopeName,Q=this._cachedMatchRoot.get(B).find((B=>function(A,B){if(null===B)return!0;let Q=0,g=B[Q];for(;A;){if(tA(A.scopeName,g)){if(Q++,Q===B.length)return!0;g=B[Q]}A=A.parent}return!1}(A.parent,B.parentScopes)));return Q?new rA(Q.fontStyle,Q.foreground,Q.background):null}}class iA{constructor(A,B){this.parent=A,this.scopeName=B}static push(A,B){for(const Q of B)A=new iA(A,Q);return A}static from(...A){let B=null;for(let Q=0;Q<A.length;Q++)B=new iA(B,A[Q]);return B}push(A){return new iA(this,A)}getSegments(){let A=this;const B=[];for(;A;)B.push(A.scopeName),A=A.parent;return B.reverse(),B}toString(){return this.getSegments().join(" ")}extends(A){return this===A||null!==this.parent&&this.parent.extends(A)}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push(Q.scopeName),Q=Q.parent;return Q===A?B.reverse():void 0}}function tA(A,B){return B===A||A.startsWith(B)&&"."===A[B.length]}class rA{constructor(A,B,Q){this.fontStyle=A,this.foregroundId=B,this.backgroundId=Q}}class aA{constructor(A,B,Q,g,E,C){this.scope=A,this.parentScopes=B,this.index=Q,this.fontStyle=g,this.foreground=E,this.background=C}}class MA{constructor(A){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(A)){this._isFrozen=!0;for(let B=0,Q=A.length;B<Q;B++)this._color2id[A[B]]=B,this._id2color[B]=A[B]}else this._isFrozen=!1}getId(A){if(null===A)return 0;A=A.toUpperCase();let B=this._color2id[A];if(B)return B;if(this._isFrozen)throw new Error(`Missing color in color map - ${A}`);return B=++this._lastColorId,this._color2id[A]=B,this._id2color[B]=A,B}getColorMap(){return this._id2color.slice(0)}}class hA{constructor(A,B,Q,g,E){this.scopeDepth=A,this.parentScopes=B,this.fontStyle=Q,this.foreground=g,this.background=E}clone(){return new hA(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(A){let B=[];for(let Q=0,g=A.length;Q<g;Q++)B[Q]=A[Q].clone();return B}acceptOverwrite(A,B,Q,g){this.scopeDepth>A?console.log("how did this happen?"):this.scopeDepth=A,-1!==B&&(this.fontStyle=B),0!==Q&&(this.foreground=Q),0!==g&&(this.background=g)}}class nA{constructor(A,B=[],Q={}){this._mainRule=A,this._children=Q,this._rulesWithParentScopes=B}static _sortBySpecificity(A){return 1===A.length||A.sort(this._cmpBySpecificity),A}static _cmpBySpecificity(A,B){if(A.scopeDepth===B.scopeDepth){const Q=A.parentScopes,g=B.parentScopes;let E=null===Q?0:Q.length,C=null===g?0:g.length;if(E===C)for(let A=0;A<E;A++){const B=Q[A].length,E=g[A].length;if(B!==E)return E-B}return C-E}return B.scopeDepth-A.scopeDepth}match(A){if(""===A)return nA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));let B,Q,g=A.indexOf(".");return-1===g?(B=A,Q=""):(B=A.substring(0,g),Q=A.substring(g+1)),this._children.hasOwnProperty(B)?this._children[B].match(Q):nA._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))}insert(A,B,Q,g,E,C){if(""===B)return void this._doInsertHere(A,Q,g,E,C);let I,D,w,o=B.indexOf(".");-1===o?(I=B,D=""):(I=B.substring(0,o),D=B.substring(o+1)),this._children.hasOwnProperty(I)?w=this._children[I]:(w=new nA(this._mainRule.clone(),hA.cloneArr(this._rulesWithParentScopes)),this._children[I]=w),w.insert(A+1,D,Q,g,E,C)}_doInsertHere(A,B,Q,g,E){if(null!==B){for(let C=0,I=this._rulesWithParentScopes.length;C<I;C++){let I=this._rulesWithParentScopes[C];if(0===d(I.parentScopes,B))return void I.acceptOverwrite(A,Q,g,E)}-1===Q&&(Q=this._mainRule.fontStyle),0===g&&(g=this._mainRule.foreground),0===E&&(E=this._mainRule.background),this._rulesWithParentScopes.push(new hA(A,B,Q,g,E))}else this._mainRule.acceptOverwrite(A,Q,g,E)}}class FA{constructor(A,B){this.languageId=A,this.tokenType=B}}class GA{constructor(A,B){this._getBasicScopeAttributes=new m((A=>{const B=this._scopeToLanguage(A),Q=this._toStandardTokenType(A);return new FA(B,Q)})),this._defaultAttributes=new FA(A,8),this._embeddedLanguagesMatcher=new NA(Object.entries(B||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(A){return null===A?GA._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(A)}_scopeToLanguage(A){return this._embeddedLanguagesMatcher.match(A)||0}_toStandardTokenType(A){const B=A.match(GA.STANDARD_TOKEN_TYPE_REGEXP);if(!B)return 8;switch(B[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}GA._NULL_SCOPE_METADATA=new FA(0,0),GA.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class NA{constructor(A){if(0===A.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(A);const B=A.map((([A,B])=>l(A)));B.sort(),B.reverse(),this.scopesRegExp=new RegExp(`^((${B.join(")|(")}))($|\\.)`,"")}}match(A){if(!this.scopesRegExp)return;const B=A.match(this.scopesRegExp);return B?this.values.get(B[1]):void 0}}class HA{constructor(A,B){this.stack=A,this.stoppedEarly=B}}function LA(A,B,Q,g,E,C,I,D){const w=B.content.length;let o=!1,s=-1;if(I){const I=function(A,B,Q,g,E,C){let I=E.beginRuleCapturedEOL?0:-1;const D=[];for(let B=E;B;B=B.pop()){const Q=B.getRule(A);Q instanceof DA&&D.push({rule:Q,stack:B})}for(let w=D.pop();w;w=D.pop()){const{ruleScanner:D,findOptions:o}=RA(w.rule,A,w.stack.endRule,Q,g===I),s=D.findNextMatchSync(B,g,o);if(L&&(console.log(" scanning for while rule"),console.log(D.toString())),!s){L&&console.log(" popping "+w.rule.debugName+" - "+w.rule.debugWhileRegExp),E=w.stack.pop();break}if(-2!==s.ruleId){E=w.stack.pop();break}s.captureIndices&&s.captureIndices.length&&(C.produce(w.stack,s.captureIndices[0].start),KA(A,B,Q,w.stack,C,w.rule.whileCaptures,s.captureIndices),C.produce(w.stack,s.captureIndices[0].end),I=s.captureIndices[0].end,s.captureIndices[0].end>g&&(g=s.captureIndices[0].end,Q=!1))}return{stack:E,linePos:g,anchorPosition:I,isFirstLine:Q}}(A,B,Q,g,E,C);E=I.stack,g=I.linePos,Q=I.isFirstLine,s=I.anchorPosition}const e=Date.now();for(;!o;){if(0!==D&&Date.now()-e>D)return new HA(E,!0);c()}return new HA(E,!1);function c(){L&&(console.log(""),console.log(`@@scanNext ${g}: |${B.content.substr(g).replace(/\n$/,"\\n")}|`));const I=function(A,B,Q,g,E,C){const I=function(A,B,Q,g,E,C){const I=E.getRule(A),{ruleScanner:D,findOptions:w}=kA(I,A,E.endRule,Q,g===C);let o=0;L&&(o=f());const s=D.findNextMatchSync(B,g,w);if(L){const A=f()-o;A>5&&console.warn(`Rule ${I.debugName} (${I.id}) matching took ${A} against '${B}'`),console.log(` scanning for (linePos: ${g}, anchorPosition: ${C})`),console.log(D.toString()),s&&console.log(`matched rule id: ${s.ruleId} from ${s.captureIndices[0].start} to ${s.captureIndices[0].end}`)}return s?{captureIndices:s.captureIndices,matchedRuleId:s.ruleId}:null}(A,B,Q,g,E,C),D=A.getInjections();if(0===D.length)return I;const w=function(A,B,Q,g,E,C,I){let D,w=Number.MAX_VALUE,o=null,s=0;const e=C.contentNameScopesList.getScopeNames();for(let C=0,c=A.length;C<c;C++){const c=A[C];if(!c.matcher(e))continue;const i=B.getRule(c.ruleId),{ruleScanner:t,findOptions:r}=kA(i,B,null,g,E===I),a=t.findNextMatchSync(Q,E,r);if(!a)continue;L&&(console.log(` matched injection: ${c.debugSelector}`),console.log(t.toString()));const M=a.captureIndices[0].start;if(!(M>=w)&&(w=M,o=a.captureIndices,D=a.ruleId,s=c.priority,w===E))break}return o?{priorityMatch:-1===s,captureIndices:o,matchedRuleId:D}:null}(D,A,B,Q,g,E,C);if(!w)return I;if(!I)return w;const o=I.captureIndices[0].start,s=w.captureIndices[0].start;return s<o||w.priorityMatch&&s===o?w:I}(A,B,Q,g,E,s);if(!I)return L&&console.log(" no more matches."),C.produce(E,w),void(o=!0);const D=I.captureIndices,e=I.matchedRuleId,c=!!(D&&D.length>0)&&D[0].end>g;if(-1===e){const I=E.getRule(A);L&&console.log(" popping "+I.debugName+" - "+I.debugEndRegExp),C.produce(E,D[0].start),E=E.withContentNameScopesList(E.nameScopesList),KA(A,B,Q,E,C,I.endCaptures,D),C.produce(E,D[0].end);const e=E;if(E=E.parent,s=e.getAnchorPos(),!c&&e.getEnterPos()===g)return L&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),E=e,C.produce(E,w),void(o=!0)}else{const I=A.getRule(e);C.produce(E,D[0].start);const i=E,t=I.getName(B.content,D),r=E.contentNameScopesList.pushAttributed(t,A);if(E=E.push(e,g,s,D[0].end===w,null,r,r),I instanceof IA){const g=I;L&&console.log(" pushing "+g.debugName+" - "+g.debugBeginRegExp),KA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=r.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.endHasBackReferences&&(E=E.withEndRule(g.getEndWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return L&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else if(I instanceof DA){const g=I;L&&console.log(" pushing "+g.debugName),KA(A,B,Q,E,C,g.beginCaptures,D),C.produce(E,D[0].end),s=D[0].end;const e=g.getContentName(B.content,D),t=r.pushAttributed(e,A);if(E=E.withContentNameScopesList(t),g.whileHasBackReferences&&(E=E.withEndRule(g.getWhileWithResolvedBackReferences(B.content,D))),!c&&i.hasSameRuleAs(E))return L&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),E=E.pop(),C.produce(E,w),void(o=!0)}else{const g=I;if(L&&console.log(" matched "+g.debugName+" - "+g.debugMatchRegExp),KA(A,B,Q,E,C,g.captures,D),C.produce(E,D[0].end),E=E.pop(),!c)return L&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),E=E.safePop(),C.produce(E,w),void(o=!0)}}D[0].end>g&&(g=D[0].end,Q=!1)}}function kA(A,B,Q,g,E){return{ruleScanner:A.compileAG(B,Q,g,E),findOptions:0}}function RA(A,B,Q,g,E){return{ruleScanner:A.compileWhileAG(B,Q,g,E),findOptions:0}}function KA(A,B,Q,g,E,C,I){if(0===C.length)return;const D=B.content,w=Math.min(C.length,I.length),o=[],s=I[0].end;for(let B=0;B<w;B++){const w=C[B];if(null===w)continue;const e=I[B];if(0===e.length)continue;if(e.start>s)break;for(;o.length>0&&o[o.length-1].endPos<=e.start;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop();if(o.length>0?E.produceFromScopes(o[o.length-1].scopes,e.start):E.produce(g,e.start),w.retokenizeCapturedWithRuleId){const B=w.getName(D,I),C=g.contentNameScopesList.pushAttributed(B,A),o=w.getContentName(D,I),s=C.pushAttributed(o,A),c=g.push(w.retokenizeCapturedWithRuleId,e.start,-1,!1,null,C,s),i=A.createOnigString(D.substring(0,e.end));LA(A,i,Q&&0===e.start,e.start,c,E,!1,0),Y(i);continue}const c=w.getName(D,I);if(null!==c){const B=(o.length>0?o[o.length-1].scopes:g.contentNameScopesList).pushAttributed(c,A);o.push(new YA(B,e.end))}}for(;o.length>0;)E.produceFromScopes(o[o.length-1].scopes,o[o.length-1].endPos),o.pop()}class YA{constructor(A,B){this.scopes=A,this.endPos=B}}function UA(A,B,Q,g,E){const C=R(B,PA),I=wA.getCompiledRuleId(Q,g,E.repository);for(const Q of C)A.push({debugSelector:B,matcher:Q.matcher,ruleId:I,grammar:E,priority:Q.priority})}function PA(A,B){if(B.length<A.length)return!1;let Q=0;return A.every((A=>{for(let g=Q;g<B.length;g++)if(uA(B[g],A))return Q=g+1,!0;return!1}))}function uA(A,B){if(!A)return!1;if(A===B)return!0;const Q=B.length;return A.length>Q&&A.substr(0,Q)===B&&"."===A[Q]}class yA{constructor(A,B,Q,g,E,C,I,D){if(this._rootScopeName=A,this.balancedBracketSelectors=C,this._onigLib=D,this._basicScopeAttributesProvider=new GA(Q,g),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=I,this._grammar=JA(B,null),this._injections=null,this._tokenTypeMatchers=[],E)for(const A of Object.keys(E)){const B=R(A,PA);for(const Q of B)this._tokenTypeMatchers.push({matcher:Q.matcher,type:E[A]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const A of this._ruleId2desc)A&&A.dispose()}createOnigScanner(A){return this._onigLib.createOnigScanner(A)}createOnigString(A){return this._onigLib.createOnigString(A)}getMetadataForScope(A){return this._basicScopeAttributesProvider.getBasicScopeAttributes(A)}_collectInjections(){const A=[],B=this._rootScopeName,Q=(A=>A===this._rootScopeName?this._grammar:this.getExternalGrammar(A))(B);if(Q){const g=Q.injections;if(g)for(let B in g)UA(A,B,g[B],this,Q);const E=this._grammarRepository.injections(B);E&&E.forEach((B=>{const Q=this.getExternalGrammar(B);if(Q){const B=Q.injectionSelector;B&&UA(A,B,Q,this,Q)}}))}return A.sort(((A,B)=>A.priority-B.priority)),A}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),L&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const A of this._injections)console.log(` - ${A.debugSelector}`)}return this._injections}registerRule(A){const B=++this._lastRuleId,Q=A(B);return this._ruleId2desc[B]=Q,Q}getRule(A){return this._ruleId2desc[A]}getExternalGrammar(A,B){if(this._includedGrammars[A])return this._includedGrammars[A];if(this._grammarRepository){const Q=this._grammarRepository.lookup(A);if(Q)return this._includedGrammars[A]=JA(Q,B&&B.$base),this._includedGrammars[A]}}tokenizeLine(A,B,Q=0){const g=this._tokenize(A,B,!1,Q);return{tokens:g.lineTokens.getResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}tokenizeLine2(A,B,Q=0){const g=this._tokenize(A,B,!0,Q);return{tokens:g.lineTokens.getBinaryResult(g.ruleStack,g.lineLength),ruleStack:g.ruleStack,stoppedEarly:g.stoppedEarly}}_tokenize(A,B,Q,g){let E;if(-1===this._rootId&&(this._rootId=wA.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),B&&B!==dA.NULL)E=!1,B.reset();else{E=!0;const A=this._basicScopeAttributesProvider.getDefaultAttributes(),Q=this.themeProvider.getDefaults(),g=k.set(0,A.languageId,A.tokenType,null,Q.fontStyle,Q.foregroundId,Q.backgroundId),C=this.getRule(this._rootId).getName(null,null);let I;I=C?pA.createRootAndLookUpScopeName(C,g,this):pA.createRoot("unknown",g),B=new dA(null,this._rootId,-1,-1,!1,null,I,I)}A+="\n";const C=this.createOnigString(A),I=C.content.length,D=new lA(Q,A,this._tokenTypeMatchers,this.balancedBracketSelectors),w=LA(this,C,E,0,B,D,!0,g);return Y(C),{lineLength:I,lineTokens:D,ruleStack:w.stack,stoppedEarly:w.stoppedEarly}}}function JA(A,B){return(A=U(A)).repository=A.repository||{},A.repository.$self={$vscodeTextmateLocation:A.$vscodeTextmateLocation,patterns:A.patterns,name:A.scopeName},A.repository.$base=B||A.repository.$self,A}class pA{constructor(A,B,Q){this.parent=A,this.scopePath=B,this.tokenAttributes=Q}static fromExtension(A,B){let Q=A,g=A?.scopePath??null;for(const A of B)g=iA.push(g,A.scopeNames),Q=new pA(Q,g,A.encodedTokenAttributes);return Q}static createRoot(A,B){return new pA(null,new iA(null,A),B)}static createRootAndLookUpScopeName(A,B,Q){const g=Q.getMetadataForScope(A),E=new iA(null,A),C=Q.themeProvider.themeMatch(E),I=pA.mergeAttributes(B,g,C);return new pA(null,E,I)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(A){return pA.equals(this,A)}static equals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.scopeName!==B.scopeName||A.tokenAttributes!==B.tokenAttributes)return!1;A=A.parent,B=B.parent}}static mergeAttributes(A,B,Q){let g=-1,E=0,C=0;return null!==Q&&(g=Q.fontStyle,E=Q.foregroundId,C=Q.backgroundId),k.set(A,B.languageId,B.tokenType,null,g,E,C)}pushAttributed(A,B){if(null===A)return this;if(-1===A.indexOf(" "))return pA._pushAttributed(this,A,B);const Q=A.split(/ /g);let g=this;for(const A of Q)g=pA._pushAttributed(g,A,B);return g}static _pushAttributed(A,B,Q){const g=Q.getMetadataForScope(B),E=A.scopePath.push(B),C=Q.themeProvider.themeMatch(E),I=pA.mergeAttributes(A.tokenAttributes,g,C);return new pA(A,E,I)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(A){const B=[];let Q=this;for(;Q&&Q!==A;)B.push({encodedTokenAttributes:Q.tokenAttributes,scopeNames:Q.scopePath.getExtensionIfDefined(Q.parent?.scopePath??null)}),Q=Q.parent;return Q===A?B.reverse():void 0}}class dA{constructor(A,B,Q,g,E,C,I,D){this.parent=A,this.ruleId=B,this.beginRuleCapturedEOL=E,this.endRule=C,this.nameScopesList=I,this.contentNameScopesList=D,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=Q,this._anchorPos=g}equals(A){return null!==A&&dA._equals(this,A)}static _equals(A,B){return A===B||!!this._structuralEquals(A,B)&&pA.equals(A.contentNameScopesList,B.contentNameScopesList)}static _structuralEquals(A,B){for(;;){if(A===B)return!0;if(!A&&!B)return!0;if(!A||!B)return!1;if(A.depth!==B.depth||A.ruleId!==B.ruleId||A.endRule!==B.endRule)return!1;A=A.parent,B=B.parent}}clone(){return this}static _reset(A){for(;A;)A._enterPos=-1,A._anchorPos=-1,A=A.parent}reset(){dA._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(A,B,Q,g,E,C,I){return new dA(this,A,B,Q,g,E,C,I)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(A){return A.getRule(this.ruleId)}toString(){const A=[];return this._writeString(A,0),"["+A.join(",")+"]"}_writeString(A,B){return this.parent&&(B=this.parent._writeString(A,B)),A[B++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,B}withContentNameScopesList(A){return this.contentNameScopesList===A?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,A)}withEndRule(A){return this.endRule===A?this:new dA(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,A,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(A){let B=this;for(;B&&B._enterPos===A._enterPos;){if(B.ruleId===A.ruleId)return!0;B=B.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(A,B){const Q=pA.fromExtension(A?.nameScopesList??null,B.nameScopesList);return new dA(A,B.ruleId,B.enterPos??-1,B.anchorPos??-1,B.beginRuleCapturedEOL,B.endRule,Q,pA.fromExtension(Q,B.contentNameScopesList))}}dA.NULL=new dA(null,0,0,0,!1,null,null,null);class SA{constructor(A,B){this.allowAny=!1,this.balancedBracketScopes=A.flatMap((A=>"*"===A?(this.allowAny=!0,[]):R(A,PA).map((A=>A.matcher)))),this.unbalancedBracketScopes=B.flatMap((A=>R(A,PA).map((A=>A.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(A){for(const B of this.unbalancedBracketScopes)if(B(A))return!1;for(const B of this.balancedBracketScopes)if(B(A))return!0;return this.allowAny}}class lA{constructor(A,B,Q,g){this.balancedBracketSelectors=g,this._emitBinaryTokens=A,this._tokenTypeOverrides=Q,this._lineText=L?B:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(A,B){this.produceFromScopes(A.contentNameScopesList,B)}produceFromScopes(A,B){if(this._lastTokenEndIndex>=B)return;if(this._emitBinaryTokens){let Q=A?.tokenAttributes??0,g=!1;if(this.balancedBracketSelectors?.matchesAlways&&(g=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const B=A?.getScopeNames()??[];for(const A of this._tokenTypeOverrides)A.matcher(B)&&(Q=k.set(Q,0,A.type,null,-1,0,0));this.balancedBracketSelectors&&(g=this.balancedBracketSelectors.match(B))}if(g&&(Q=k.set(Q,0,8,g,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===Q)return void(this._lastTokenEndIndex=B);if(L){const Q=A?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(Q),void(this._lastTokenEndIndex=B)}const Q=A?.getScopeNames()??[];if(L){console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,B).replace(/\n$/,"\\n")+"|");for(let A=0;A<Q.length;A++)console.log(" * "+Q[A])}this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:B,scopes:Q}),this._lastTokenEndIndex=B}getResult(A,B){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===B-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(A,B){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===B-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(A,B),this._binaryTokens[this._binaryTokens.length-2]=0);const Q=new Uint32Array(this._binaryTokens.length);for(let A=0,B=this._binaryTokens.length;A<B;A++)Q[A]=this._binaryTokens[A];return Q}}function mA(A,B,Q){const g=A.length;let E=0,C=1,I=0;function D(B){if(null===Q)E+=B;else for(;B>0;)10===A.charCodeAt(E)?(E++,C++,I=0):(E++,I++),B--}function w(A){null===Q?E=A:D(A-E)}function o(){for(;E<g;){let B=A.charCodeAt(E);if(32!==B&&9!==B&&13!==B&&10!==B)break;D(1)}}function s(B){return A.substr(E,B.length)===B&&(D(B.length),!0)}function e(B){let Q=A.indexOf(B,E);w(-1!==Q?Q+B.length:g)}function c(B){let Q=A.indexOf(B,E);if(-1!==Q){let g=A.substring(E,Q);return w(Q+B.length),g}{let B=A.substr(E);return w(g),B}}g>0&&65279===A.charCodeAt(0)&&(E=1);let i=0,t=null,r=[],a=[],M=null;function h(A,B){r.push(i),a.push(t),i=A,t=B}function n(){if(0===r.length)return F("illegal state stack");i=r.pop(),t=a.pop()}function F(B){throw new Error("Near offset "+E+": "+B+" ~~~"+A.substr(E,50)+"~~~")}const G=function(){if(null===M)return F("missing <key>");let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t[M]=A,M=null,h(1,A)},N=function(){if(null===M)return F("missing <key>");let A=[];t[M]=A,M=null,h(2,A)},H=function(){let A={};null!==Q&&(A[Q]={filename:B,line:C,char:I}),t.push(A),h(1,A)},L=function(){let A=[];t.push(A),h(2,A)};function k(){if(1!==i)return F("unexpected </dict>");n()}function R(){return 1===i||2!==i?F("unexpected </array>"):void n()}function K(A){if(1===i){if(null===M)return F("missing <key>");t[M]=A,M=null}else 2===i?t.push(A):t=A}function Y(A){if(isNaN(A))return F("cannot parse float");if(1===i){if(null===M)return F("missing <key>");t[M]=A,M=null}else 2===i?t.push(A):t=A}function U(A){if(isNaN(A))return F("cannot parse integer");if(1===i){if(null===M)return F("missing <key>");t[M]=A,M=null}else 2===i?t.push(A):t=A}function P(A){if(1===i){if(null===M)return F("missing <key>");t[M]=A,M=null}else 2===i?t.push(A):t=A}function u(A){if(1===i){if(null===M)return F("missing <key>");t[M]=A,M=null}else 2===i?t.push(A):t=A}function y(A){if(1===i){if(null===M)return F("missing <key>");t[M]=A,M=null}else 2===i?t.push(A):t=A}function J(){let A=c(">"),B=!1;return 47===A.charCodeAt(A.length-1)&&(B=!0,A=A.substring(0,A.length-1)),{name:A.trim(),isClosed:B}}function p(A){if(A.isClosed)return"";let B=c("</");return e(">"),B.replace(/&#([0-9]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,10))})).replace(/&#x([0-9a-f]+);/g,(function(A,B){return String.fromCodePoint(parseInt(B,16))})).replace(/&|<|>|"|'/g,(function(A){switch(A){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return A}))}for(;E<g&&(o(),!(E>=g));){const w=A.charCodeAt(E);if(D(1),60!==w)return F("expected <");if(E>=g)return F("unexpected end of input");const c=A.charCodeAt(E);if(63===c){D(1),e("?>");continue}if(33===c){if(D(1),s("--")){e("--\x3e");continue}e(">");continue}if(47===c){if(D(1),o(),s("plist")){e(">");continue}if(s("dict")){e(">"),k();continue}if(s("array")){e(">"),R();continue}return F("unexpected closed tag")}let r=J();switch(r.name){case"dict":1===i?G():2===i?H():(t={},null!==Q&&(t[Q]={filename:B,line:C,char:I}),h(1,t)),r.isClosed&&k();continue;case"array":1===i?N():2===i?L():(t=[],h(2,t)),r.isClosed&&R();continue;case"key":d=p(r),1!==i?F("unexpected <key>"):null!==M?F("too many <key>"):M=d;continue;case"string":K(p(r));continue;case"real":Y(parseFloat(p(r)));continue;case"integer":U(parseInt(p(r),10));continue;case"date":P(new Date(p(r)));continue;case"data":u(p(r));continue;case"true":p(r),y(!0);continue;case"false":p(r),y(!1);continue}if(!/^plist/.test(r.name))return F("unexpected opened tag "+r.name)}var d;return t}function fA(A,B){throw new Error("Near offset "+A.pos+": "+B+" ~~~"+A.source.substr(A.pos,50)+"~~~")}class xA{constructor(A){this.source=A,this.pos=0,this.len=A.length,this.line=1,this.char=0}}class OA{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(A){return{filename:A,line:this.line,char:this.char}}}function qA(A,B){B.value=null,B.type=0,B.offset=-1,B.len=-1,B.line=-1,B.char=-1;let Q,g=A.source,E=A.pos,C=A.len,I=A.line,D=A.char;for(;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),32!==Q&&9!==Q&&13!==Q){if(10!==Q)break;E++,I++,D=0}else E++,D++}if(B.offset=E,B.line=I,B.char=D,34===Q){for(B.type=1,E++,D++;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),E++,D++,92!==Q){if(34===Q)break}else E++,D++}B.value=g.substring(B.offset+1,E-1).replace(/\\u([0-9A-Fa-f]{4})/g,((A,B)=>String.fromCodePoint(parseInt(B,16)))).replace(/\\(.)/g,((B,Q)=>{switch(Q){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:fA(A,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===Q)B.type=2,E++,D++;else if(123===Q)B.type=3,E++,D++;else if(93===Q)B.type=4,E++,D++;else if(125===Q)B.type=5,E++,D++;else if(58===Q)B.type=6,E++,D++;else if(44===Q)B.type=7,E++,D++;else if(110===Q){if(B.type=8,E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;E++,D++}else if(116===Q){if(B.type=9,E++,D++,Q=g.charCodeAt(E),114!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),117!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else if(102===Q){if(B.type=10,E++,D++,Q=g.charCodeAt(E),97!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),108!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),115!==Q)return!1;if(E++,D++,Q=g.charCodeAt(E),101!==Q)return!1;E++,D++}else for(B.type=11;;){if(E>=C)return!1;if(Q=g.charCodeAt(E),!(46===Q||Q>=48&&Q<=57||101===Q||69===Q||45===Q||43===Q))break;E++,D++}return B.len=E-B.offset,null===B.value&&(B.value=g.substr(B.offset,B.len)),A.pos=E,A.line=I,A.char=D,!0}class bA{constructor(A,B){this._onigLibPromise=B,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=A}dispose(){for(const A of this._grammars.values())A.dispose()}setTheme(A){this._theme=A}getColorMap(){return this._theme.getColorMap()}addGrammar(A,B){this._rawGrammars.set(A.scopeName,A),B&&this._injectionGrammars.set(A.scopeName,B)}lookup(A){return this._rawGrammars.get(A)}injections(A){return this._injectionGrammars.get(A)}getDefaults(){return this._theme.getDefaults()}themeMatch(A){return this._theme.match(A)}async grammarForScopeName(A,B,Q,g,E){if(!this._grammars.has(A)){let C=this._rawGrammars.get(A);if(!C)return null;this._grammars.set(A,function(A,B,Q,g,E,C,I,D){return new yA(A,B,Q,g,E,C,I,D)}(A,C,B,Q,g,E,this,await this._onigLibPromise))}return this._grammars.get(A)}}function WA(A,B){let Q=0;const g=[];let E=A,C=B;for(;E!==C;)E&&(!C||E.depth>=C.depth)?(Q++,E=E.parent):(g.push(C.toStateStackFrame()),C=C.parent);return{pops:Q,newFrames:g.reverse()}}function TA(A,B){let Q=A;for(let A=0;A<B.pops;A++)Q=Q.parent;for(const A of B.newFrames)Q=dA.pushFrame(Q,A);return Q}class vA{constructor(A){this._options=A,this._syncRegistry=new bA(cA.createFromRawTheme(A.theme,A.colorMap),A.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(A,B){this._syncRegistry.setTheme(cA.createFromRawTheme(A,B))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(A,B,Q){return this.loadGrammarWithConfiguration(A,B,{embeddedLanguages:Q})}loadGrammarWithConfiguration(A,B,Q){return this._loadGrammar(A,B,Q.embeddedLanguages,Q.tokenTypes,new SA(Q.balancedBracketSelectors||[],Q.unbalancedBracketSelectors||[]))}loadGrammar(A){return this._loadGrammar(A,0,null,null,null)}async _loadGrammar(A,B,Q,g,E){const C=new b(this._syncRegistry,A);for(;C.Q.length>0;)await Promise.all(C.Q.map((A=>this._loadSingleGrammar(A.scopeName)))),C.processQueue();return this._grammarForScopeName(A,B,Q,g,E)}async _loadSingleGrammar(A){return this._ensureGrammarCache.has(A)||this._ensureGrammarCache.set(A,this._doLoadSingleGrammar(A)),this._ensureGrammarCache.get(A)}async _doLoadSingleGrammar(A){const B=await this._options.loadGrammar(A);if(B){const Q="function"==typeof this._options.getInjections?this._options.getInjections(A):void 0;this._syncRegistry.addGrammar(B,Q)}}async addGrammar(A,B=[],Q=0,g=null){return this._syncRegistry.addGrammar(A,B),await this._grammarForScopeName(A.scopeName,Q,g)}_grammarForScopeName(A,B=0,Q=null,g=null,E=null){return this._syncRegistry.grammarForScopeName(A,B,Q,g,E)}}const XA=dA.NULL,ZA=function(A,B=null){return null!==B&&/\.json$/.test(B)?(Q=A,L?function(A,B,Q){let g=new xA(A),E=new OA,C=0,I=null,D=[],w=[];function o(){D.push(C),w.push(I)}function s(){C=D.pop(),I=w.pop()}function e(A){fA(g,A)}for(;qA(g,E);){if(0===C){if(null!==I&&e("too many constructs in root"),3===E.type){I={},I.$vscodeTextmateLocation=E.toLocation(B),o(),C=1;continue}if(2===E.type){I=[],o(),C=4;continue}e("unexpected token in root")}if(2===C){if(5===E.type){s();continue}if(7===E.type){C=3;continue}e("expected , or }")}if(1===C||3===C){if(1===C&&5===E.type){s();continue}if(1===E.type){let A=E.value;if(qA(g,E)&&6===E.type||e("expected colon"),qA(g,E)||e("expected value"),C=2,1===E.type){I[A]=E.value;continue}if(8===E.type){I[A]=null;continue}if(9===E.type){I[A]=!0;continue}if(10===E.type){I[A]=!1;continue}if(11===E.type){I[A]=parseFloat(E.value);continue}if(2===E.type){let B=[];I[A]=B,o(),C=4,I=B;continue}if(3===E.type){let Q={};Q.$vscodeTextmateLocation=E.toLocation(B),I[A]=Q,o(),C=1,I=Q;continue}}e("unexpected token in dict")}if(5===C){if(4===E.type){s();continue}if(7===E.type){C=6;continue}e("expected , or ]")}if(4===C||6===C){if(4===C&&4===E.type){s();continue}if(C=5,1===E.type){I.push(E.value);continue}if(8===E.type){I.push(null);continue}if(9===E.type){I.push(!0);continue}if(10===E.type){I.push(!1);continue}if(11===E.type){I.push(parseFloat(E.value));continue}if(2===E.type){let A=[];I.push(A),o(),C=4,I=A;continue}if(3===E.type){let A={};A.$vscodeTextmateLocation=E.toLocation(B),I.push(A),o(),C=1,I=A;continue}e("unexpected token in array")}e("unknown state")}return 0!==w.length&&e("unclosed constructs"),I}(Q,B):JSON.parse(Q)):function(A,B){return L?function(A,B,Q){return mA(A,B,"$vscodeTextmateLocation")}(A,B):function(A){return mA(A,null,null)}(A)}(A,B);var Q};var jA=H.Bz,VA=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(A){var B,Q,g=void 0!==(A=A||{})?A:{};g.ready=new Promise((function(A,g){B=A,Q=g}));var E,C=Object.assign({},g),I=!1;E=function(A){let B;return"function"==typeof readbuffer?new Uint8Array(readbuffer(A)):(B=read(A,"binary"),"object"==typeof B||H(Q),B);var Q},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var D,w,o=g.print||console.log.bind(console),s=g.printErr||console.warn.bind(console);Object.assign(g,C),C=null,g.arguments&&g.arguments,g.thisProgram&&g.thisProgram,g.quit&&g.quit,g.wasmBinary&&(D=g.wasmBinary),g.noExitRuntime,"object"!=typeof WebAssembly&&H("no native wasm support detected");var e,c,i,t=!1,r="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(A,B,Q){for(var g=B+Q,E=B;A[E]&&!(E>=g);)++E;if(E-B>16&&A.buffer&&r)return r.decode(A.subarray(B,E));for(var C="";B<E;){var I=A[B++];if(128&I){var D=63&A[B++];if(192!=(224&I)){var w=63&A[B++];if((I=224==(240&I)?(15&I)<<12|D<<6|w:(7&I)<<18|D<<12|w<<6|63&A[B++])<65536)C+=String.fromCharCode(I);else{var o=I-65536;C+=String.fromCharCode(55296|o>>10,56320|1023&o)}}else C+=String.fromCharCode((31&I)<<6|D)}else C+=String.fromCharCode(I)}return C}function M(A){e=A,g.HEAP8=new Int8Array(A),g.HEAP16=new Int16Array(A),g.HEAP32=new Int32Array(A),g.HEAPU8=c=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=i=new Uint32Array(A),g.HEAPF32=new Float32Array(A),g.HEAPF64=new Float64Array(A)}g.INITIAL_MEMORY;var h=[],n=[],F=[],G=0,N=null;function H(A){g.onAbort&&g.onAbort(A),s(A="Aborted("+A+")"),t=!0,A+=". Build with -sASSERTIONS for more info.";var B=new WebAssembly.RuntimeError(A);throw Q(B),B}var L,k,R,K="data:application/octet-stream;base64,";function Y(A){return A.startsWith(K)}function U(A){try{if(A==L&&D)return new Uint8Array(D);if(E)return E(A);throw"both async and sync fetching of the wasm failed"}catch(A){H(A)}}function P(A){for(;A.length>0;)A.shift()(g)}function u(A){try{return w.grow(A-e.byteLength+65535>>>16),M(w.buffer),1}catch(A){}}Y(L="onig.wasm")||(k=L,L=g.locateFile?g.locateFile(k,""):""+k),R="undefined"!=typeof dateNow?dateNow:()=>performance.now();var y=[null,[],[]];function J(A,B){var Q=y[A];0===B||10===B?((1===A?o:s)(a(Q,0)),Q.length=0):Q.push(B)}var p,d={emscripten_get_now:R,emscripten_memcpy_big:function(A,B,Q){c.copyWithin(A,B,B+Q)},emscripten_resize_heap:function(A){var B=c.length,Q=2147483648;if((A>>>=0)>Q)return!1;let g=(A,B)=>A+(B-A%B)%B;for(var E=1;E<=4;E*=2){var C=B*(1+.2/E);if(C=Math.min(C,A+100663296),u(Math.min(Q,g(Math.max(A,C),65536))))return!0}return!1},fd_write:function(A,B,Q,g){for(var E=0,C=0;C<Q;C++){var I=i[B>>2],D=i[B+4>>2];B+=8;for(var w=0;w<D;w++)J(A,c[I+w]);E+=D}return i[g>>2]=E,0}};function S(A){function Q(){p||(p=!0,g.calledRun=!0,t||(P(n),B(g),g.onRuntimeInitialized&&g.onRuntimeInitialized(),function(){if(g.postRun)for("function"==typeof g.postRun&&(g.postRun=[g.postRun]);g.postRun.length;)A=g.postRun.shift(),F.unshift(A);var A;P(F)}()))}G>0||(function(){if(g.preRun)for("function"==typeof g.preRun&&(g.preRun=[g.preRun]);g.preRun.length;)A=g.preRun.shift(),h.unshift(A);var A;P(h)}(),G>0||(g.setStatus?(g.setStatus("Running..."),setTimeout((function(){setTimeout((function(){g.setStatus("")}),1),Q()}),1)):Q()))}if(function(){var A={env:d,wasi_snapshot_preview1:d};function B(A,B){var Q,E=A.exports;g.asm=E,M((w=g.asm.memory).buffer),g.asm.__indirect_function_table,Q=g.asm.__wasm_call_ctors,n.unshift(Q),function(A){if(G--,g.monitorRunDependencies&&g.monitorRunDependencies(G),0==G&&N){var B=N;N=null,B()}}()}function E(A){B(A.instance)}function C(B){return(!D&&I&&"function"==typeof fetch?fetch(L,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+L+"'";return A.arrayBuffer()})).catch((function(){return U(L)})):Promise.resolve().then((function(){return U(L)}))).then((function(B){return WebAssembly.instantiate(B,A)})).then((function(A){return A})).then(B,(function(A){s("failed to asynchronously prepare wasm: "+A),H(A)}))}if(G++,g.monitorRunDependencies&&g.monitorRunDependencies(G),g.instantiateWasm)try{return g.instantiateWasm(A,B)}catch(A){s("Module.instantiateWasm callback failed with error: "+A),Q(A)}(D||"function"!=typeof WebAssembly.instantiateStreaming||Y(L)||"function"!=typeof fetch?C(E):fetch(L,{credentials:"same-origin"}).then((function(B){return WebAssembly.instantiateStreaming(B,A).then(E,(function(A){return s("wasm streaming compile failed: "+A),s("falling back to ArrayBuffer instantiation"),C(E)}))}))).catch(Q)}(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.__wasm_call_ctors).apply(null,arguments)},g.___errno_location=function(){return(g.___errno_location=g.asm.__errno_location).apply(null,arguments)},g._omalloc=function(){return(g._omalloc=g.asm.omalloc).apply(null,arguments)},g._ofree=function(){return(g._ofree=g.asm.ofree).apply(null,arguments)},g._getLastOnigError=function(){return(g._getLastOnigError=g.asm.getLastOnigError).apply(null,arguments)},g._createOnigScanner=function(){return(g._createOnigScanner=g.asm.createOnigScanner).apply(null,arguments)},g._freeOnigScanner=function(){return(g._freeOnigScanner=g.asm.freeOnigScanner).apply(null,arguments)},g._findNextOnigScannerMatch=function(){return(g._findNextOnigScannerMatch=g.asm.findNextOnigScannerMatch).apply(null,arguments)},g._findNextOnigScannerMatchDbg=function(){return(g._findNextOnigScannerMatchDbg=g.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},g.stackSave=function(){return(g.stackSave=g.asm.stackSave).apply(null,arguments)},g.stackRestore=function(){return(g.stackRestore=g.asm.stackRestore).apply(null,arguments)},g.stackAlloc=function(){return(g.stackAlloc=g.asm.stackAlloc).apply(null,arguments)},g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.dynCall_jiji).apply(null,arguments)},g.UTF8ToString=function(A,B){return A?a(c,A,B):""},N=function A(){p||S(),p||(N=A)},g.preInit)for("function"==typeof g.preInit&&(g.preInit=[g.preInit]);g.preInit.length>0;)g.preInit.pop()();return S(),A.ready});let zA=null;class _A{static _utf8ByteLength(A){let B=0;for(let Q=0,g=A.length;Q<g;Q++){const E=A.charCodeAt(Q);let C=E,I=!1;if(E>=55296&&E<=56319&&Q+1<g){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(C=65536+(E-55296<<10)|B-56320,I=!0)}B+=C<=127?1:C<=2047?2:C<=65535?3:4,I&&Q++}return B}constructor(A){const B=A.length,Q=_A._utf8ByteLength(A),g=Q!==B,E=g?new Uint32Array(B+1):null;g&&(E[B]=Q);const C=g?new Uint32Array(Q+1):null;g&&(C[Q]=B);const I=new Uint8Array(Q);let D=0;for(let Q=0;Q<B;Q++){const w=A.charCodeAt(Q);let o=w,s=!1;if(w>=55296&&w<=56319&&Q+1<B){const B=A.charCodeAt(Q+1);B>=56320&&B<=57343&&(o=65536+(w-55296<<10)|B-56320,s=!0)}g&&(E[Q]=D,s&&(E[Q+1]=D),o<=127?C[D+0]=Q:o<=2047?(C[D+0]=Q,C[D+1]=Q):o<=65535?(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q):(C[D+0]=Q,C[D+1]=Q,C[D+2]=Q,C[D+3]=Q)),o<=127?I[D++]=o:o<=2047?(I[D++]=192|(1984&o)>>>6,I[D++]=128|(63&o)>>>0):o<=65535?(I[D++]=224|(61440&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0):(I[D++]=240|(1835008&o)>>>18,I[D++]=128|(258048&o)>>>12,I[D++]=128|(4032&o)>>>6,I[D++]=128|(63&o)>>>0),s&&Q++}this.utf16Length=B,this.utf8Length=Q,this.utf16Value=A,this.utf8Value=I,this.utf16OffsetToUtf8=E,this.utf8OffsetToUtf16=C}createString(A){const B=A._omalloc(this.utf8Length);return A.HEAPU8.set(this.utf8Value,B),B}}class $A{constructor(A){if(this.id=++$A.LAST_ID,!zA)throw new Error("Must invoke loadWASM first.");this._onigBinding=zA,this.content=A;const B=new _A(A);this.utf16Length=B.utf16Length,this.utf8Length=B.utf8Length,this.utf16OffsetToUtf8=B.utf16OffsetToUtf8,this.utf8OffsetToUtf16=B.utf8OffsetToUtf16,this.utf8Length<1e4&&!$A._sharedPtrInUse?($A._sharedPtr||($A._sharedPtr=zA._omalloc(1e4)),$A._sharedPtrInUse=!0,zA.HEAPU8.set(B.utf8Value,$A._sharedPtr),this.ptr=$A._sharedPtr):this.ptr=B.createString(zA)}convertUtf8OffsetToUtf16(A){return this.utf8OffsetToUtf16?A<0?0:A>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[A]:A}convertUtf16OffsetToUtf8(A){return this.utf16OffsetToUtf8?A<0?0:A>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[A]:A}dispose(){this.ptr===$A._sharedPtr?$A._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}$A.LAST_ID=0,$A._sharedPtr=0,$A._sharedPtrInUse=!1;class AB{constructor(A){if(!zA)throw new Error("Must invoke loadWASM first.");const B=[],Q=[];for(let g=0,E=A.length;g<E;g++){const E=new _A(A[g]);B[g]=E.createString(zA),Q[g]=E.utf8Length}const g=zA._omalloc(4*A.length);zA.HEAPU32.set(B,g/4);const E=zA._omalloc(4*A.length);zA.HEAPU32.set(Q,E/4);const C=zA._createOnigScanner(g,E,A.length);for(let Q=0,g=A.length;Q<g;Q++)zA._ofree(B[Q]);zA._ofree(E),zA._ofree(g),0===C&&function(A){throw new Error(A.UTF8ToString(A._getLastOnigError()))}(zA),this._onigBinding=zA,this._ptr=C}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(A,B,Q){let g=false,E=0;if("number"==typeof Q?(8&Q&&(g=!0),E=Q):"boolean"==typeof Q&&(g=Q),"string"==typeof A){A=new $A(A);const Q=this._findNextMatchSync(A,B,g,E);return A.dispose(),Q}return this._findNextMatchSync(A,B,g,E)}_findNextMatchSync(A,B,Q,g){const E=this._onigBinding;let C;if(C=Q?E._findNextOnigScannerMatchDbg(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g):E._findNextOnigScannerMatch(this._ptr,A.id,A.ptr,A.utf8Length,A.convertUtf16OffsetToUtf8(B),g),0===C)return null;const I=E.HEAPU32;let D=C/4;const w=I[D++],o=I[D++];let s=[];for(let B=0;B<o;B++){const Q=A.convertUtf8OffsetToUtf16(I[D++]),g=A.convertUtf8OffsetToUtf16(I[D++]);s[B]={start:Q,end:g,length:g-Q}}return{index:w,captureIndices:s}}}let BB=!1,QB=null;function gB(A){if(BB)return QB;let B,Q,g,E;if(BB=!0,function(A){return"function"==typeof A.instantiator}(A))B=A.instantiator,Q=A.print;else{let g;!function(A){return void 0!==A.data}(A)?g=A:(g=A.data,Q=A.print),B=function(A){return"undefined"!=typeof Response&&A instanceof Response}(g)?"function"==typeof WebAssembly.instantiateStreaming?function(A){return B=>WebAssembly.instantiateStreaming(A,B)}(g):function(A){return async B=>{const Q=await A.arrayBuffer();return WebAssembly.instantiate(Q,B)}}(g):function(A){return B=>WebAssembly.instantiate(A,B)}(g)}return QB=new Promise(((A,B)=>{g=A,E=B})),function(A,B,Q,g){VA({print:B,instantiateWasm:(B,Q)=>{if("undefined"==typeof performance){const A=()=>Date.now();B.env.emscripten_get_now=A,B.wasi_snapshot_preview1.emscripten_get_now=A}return A(B).then((A=>Q(A.instance)),g),{}}}).then((A=>{zA=A,Q()}))}(B,Q,g,E),QB}function EB(A){return new $A(A)}function CB(A){return new AB(A)}function IB(A){const B=F[A];if(!B)return;const{id:Q}=G[B];return{id:Q,scopeName:B}}const DB=new Map;let wB,oB;async function sB(B){if(DB.has(B))return DB.get(B);const g=function(A){return G[A]}(B);if(!g)return Promise.resolve(void 0);let E;if(void 0===wB&&(E=A(g.id),wB=E.then((()=>!0)).catch((()=>!1))),void 0===oB&&(oB=await wB),oB){const Q=E||A(g.id);return DB.set(B,Q),Q}const C=Q(`grammars/${g.id}`);g.embeddedScopes.forEach((A=>{if(!DB.has(A)){const B=C.then((B=>null==B?void 0:B.find((B=>B.scopeName===A))));DB.set(A,B)}}));const I=C.then((A=>null==A?void 0:A.find((A=>A.scopeName===B))));return DB.set(B,I),I}const eB=30720,cB=16744448,iB=16775168,tB=11,rB=15,aB={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function MB(A,B,Q,g){const{tokens:E,ruleStack:C}=A.tokenizeLine2(Q,B),I=[];let D=Q.length;for(let A=E.length-2;A>=0;A-=2){const B=E[A],g=E[A+1],C=Q.slice(B,D);I.unshift({content:C,metadata:g}),D=B}let w=[];if(null==g?void 0:g.preserveWhitespace)w=I;else for(let A=0;A<I.length;A++){const B=I[A];if(""!==B.content.trim()){const A=w[w.length-1];A&&(A.metadata&iB)==(B.metadata&iB)?A.content+=B.content:w.push(B)}else w.length>0?w[w.length-1].content+=B.content:A<I.length-1?I[A+1].content=B.content+I[A+1].content:w.push(B)}return{rawTokens:w,nextStack:C}}function hB(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=MB(B,g,A,{preserveWhitespace:!0}),I=E.map((({content:A,metadata:B})=>({content:A,style:nB(B,Q)}))),D=function(A,B,Q,g){const{tokens:E}=Q.tokenizeLine(A,B),C=[];for(let B=0;B<E.length;B++){const{startIndex:Q,endIndex:I,scopes:D}=E[B];let w=0;const o=g.find((A=>{if(w+=A.content.length,Q<w)return!0}));C.push(Object.assign(Object.assign({},o),{content:A.slice(Q,I),scopes:D.reverse()}))}return C}(A,g,B,I);return g=C,D}))}function nB(A,B){const Q={color:B[(A&cB)>>>rB]},g=(A&eB)>>>tB;return g&aB.Italic&&(Q.fontStyle="italic"),g&aB.Bold&&(Q.fontWeight="bold"),g&aB.Underline&&(Q.textDecoration="underline"),g&aB.Strikethrough&&(Q.textDecoration="line-through"),Q}var FB=function(A){var B=null;if("undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node)B=Buffer.from(A,"base64");else{var Q=globalThis.atob(A),g=Q.length;B=new Uint8Array(new ArrayBuffer(g));for(var E=0;E<g;E++)B[E]=Q.charCodeAt(E)}return B}("AGFzbQEAAAABoQEWYAJ/fwF/YAF/AX9gA39/fwF/YAR/f39/AX9gAX8AYAV/f39/fwF/YAN/f38AYAJ/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAAF/YAl/f39/f39/f38Bf2AIf39/f39/f38Bf2AAAGAEf39/fwBgA39+fwF+YAZ/fH9/f38Bf2AAAXxgBn9/f39/fwBgAnx/AXxgAn5/AX9gBX9/f39/AAJ1BANlbnYVZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAYDZW52EmVtc2NyaXB0ZW5fZ2V0X25vdwARFndhc2lfc25hcHNob3RfcHJldmlldzEIZmRfd3JpdGUAAwNlbnYWZW1zY3JpcHRlbl9yZXNpemVfaGVhcAABA9MB0QENBAABAAECAgsCAAIEBAACAQEAAQMCAwkCBgUDBQgCAwwMAwkJAwgDAQIFAwMEAQUHCwgCAgsABQUBAgQCBgIAAQACBAIABwMHBgcAAwACAAICAAQBAgcAAgUCAAEBBgYABgQACAUICQsJDAAAAAAAAAACAgIDAAIDAgADAQABAAACBQICAAESAQEEAgIGAgUDAQUAAgEBAAoBAAEAAwMCAAACBgIOAgEPAQEBChMCBQkGAQ4UFRAHAwIBAAEECggCAQgIBwcNAQQABwABCgQBBQQFAXABMzMFBwEBgAKAgAIGDgJ/AUHQj9MCC38BQQALB5QCDwZtZW1vcnkCABFfX3dhc21fY2FsbF9jdG9ycwAEGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBABBfX2Vycm5vX2xvY2F0aW9uALABB29tYWxsb2MAwAEFb2ZyZWUAwQEQZ2V0TGFzdE9uaWdFcnJvcgDCARFjcmVhdGVPbmlnU2Nhbm5lcgDEAQ9mcmVlT25pZ1NjYW5uZXIAxQEYZmluZE5leHRPbmlnU2Nhbm5lck1hdGNoAMYBG2ZpbmROZXh0T25pZ1NjYW5uZXJNYXRjaERiZwDHAQlzdGFja1NhdmUA0QEMc3RhY2tSZXN0b3JlANIBCnN0YWNrQWxsb2MA0wEMZHluQ2FsbF9qaWppANQBCVIBAEEBCzIFCgsPHC9vcHRxcnN1ugG7Ab0BBgcICYABfoEBggGDAX97fIUBmwF9hAFvnAFvnQGeAZ8BoAGhAZIBogGYAZcBowGkAaUBqwGqAawB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ACADNgIEIA0oAgBBATYCCEEADwsgACgCDCABEE8iA0EASARAIAMPCyACIAIoAowBIgVBAWo2AowBIAFBOxBRIgQNCyABKAIIIANBBWo2AgQgAUHNABBRIgQNCyABKAIIIAU2AgQgASgCCEEANgIIIAAoAgwgASACEEIiBA0LIAFBPhBRIgAhBCAADQsgASgCCCAFNgIEIAFBPRBRIgAhBCAADQsgAUE5EFEPCyMAQRBrIgkkAAJAIAAoAhQgACgCGEYEQCACIAIoAowBIgdBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAc2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBkEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgVFDQIgASAFNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBjYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACABKAIIIAAoAhQ2AgQgASgCCEEANgIIIAEoAghBATYCDCAAKAIMIAEgAhBCIgMNAQJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcwANgIAIAEoAgggBzYCBCABKAIIQQA2AggMAQsgACgCICIDBEAgAyABIAkgAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiB0EATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIgZFDQIgASAGNgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBzYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCSgCAGs2AgQgACgCICABIAIQQiIDDQELIAIgAigCjAEiB0EBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAghBAjYCBCABKAIIIAc2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiBUUNASABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBBDYCBCACIAIoAowBIgZBAWo2AowBAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHNADYCACABKAIIIAY2AgQgASgCCEEANgIIAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE7NgIAIAEoAghBAjYCBAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgVBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIIRQ0BIAEgCDYCACABKAIEIARBA3QQzQEiBEUNASABIAU2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOjYCACABKAIIQQM2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCEUNASABIAg2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc8ANgIAIAEoAghBAjYCBCABKAIIIAc2AgggASgCCEEANgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAIAFBygAQUSIDDQAgACgCGCEDIAEoAgggACgCFCIENgIEIAEoAghBfyADIARrIANBf0YbNgIIIAEoAghBAjYCDCABQcsAEFEiAw0AIAAoAgwgASACEEIiAw0AIAFBKBBRIgMNACABKAIIQQE2AgQgAUHMABBRIgMNACABKAIIIAY2AgQgASgCCEEANgIIIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQE2AgxBACEDCyAJQRBqJAAgAw8LIwBBEGsiCiQAIAAoAgwgARBPIQggACgCGCEGIAAoAhQhBSACIAIoAowBIgdBAWo2AowBIAEoAhAhBCABKAIMIQMCQCAFIAZGBEACQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzQA2AgAgASgCCCAHNgIEIAEoAghBADYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAwtBeyEDIAEoAgAgBEEobBDNASIFRQ0CIAEgBTYCACABKAIEIARBA3QQzQEiBEUNAiABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOzYCACABKAIIIAhBBGo2AgQCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIGQQBMBEBBdSEDDAMLQXshAyABKAIAIARBKGwQzQEiBUUNAiABIAU2AgAgASgCBCAEQQN0EM0BIgRFDQIgASAGNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQcoANgIAIAEoAgggACgCFDYCBCABKAIIQQA2AgggASgCCEEBNgIMIAAoAgwgASACEEIiAw0BAkAgASgCDCIAIAEoAhAiAkkNACACRQ0AIAJBAXQiAEEATARAQXUhAwwDC0F7IQMgASgCACACQShsEM0BIgRFDQIgASAENgIAIAEoAgQgAkEDdBDNASICRQ0CIAEgADYCECABIAI2AgQgASgCDCEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE+NgIAIAEoAgggBzYCBAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBOTYCAAJAIAEoAgwiACABKAIQIgJJDQAgAkUNACACQQF0IgBBAEwEQEF1IQMMAwtBeyEDIAEoAgAgAkEobBDNASIERQ0CIAEgBDYCACABKAIEIAJBA3QQzQEiAkUNAiABIAA2AhAgASACNgIEIAEoAgwhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIQQAhAyAAQQA2AhAgAEIANwIIIABCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQT02AgAMAQsCQCADIARJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzgA2AgAgASgCCEECNgIEIAEoAgggBzYCCAJAIAEoAgwiAyABKAIQIgRJDQAgBEUNACAEQQF0IgZBAEwEQEF1IQMMAgtBeyEDIAEoAgAgBEEobBDNASIFRQ0BIAEgBTYCACABKAIEIARBA3QQzQEiBEUNASABIAY2AhAgASAENgIEIAEoAgwhAwsgASADQQFqNgIMIAEgASgCACADQRRsaiIDNgIIIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCEEENgIEIAIgAigCjAEiBkEBajYCjAECQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc0ANgIAIAEoAgggBjYCBCABKAIIQQA2AggCQCABKAIMIgMgASgCECIESQ0AIARFDQAgBEEBdCIFQQBMBEBBdSEDDAILQXshAyABKAIAIARBKGwQzQEiCUUNASABIAk2AgAgASgCBCAEQQN0EM0BIgRFDQEgASAFNgIQIAEgBDYCBCABKAIMIQMLIAEgA0EBajYCDCABIAEoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQTs2AgAgASgCCCAIQQhqNgIEIAAoAiAiAwRAIAMgARBPIQMgASgCCCIEIAMgBCgCBGpBAWo2AgQgACgCICABIAogAkEAEF0iA0EASA0BAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwDC0F7IQMgASgCACAEQShsEM0BIghFDQIgASAINgIAIAEoAgQgBEEDdBDNASIERQ0CIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHJADYCACABKAIIQQAgCigCAGs2AgQgACgCICABIAIQQiIDDQELAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHKADYCACAAKAIYIQMgASgCCCAAKAIUIgQ2AgQgASgCCEF/IAMgBGsgA0F/Rhs2AgggASgCCEECNgIMAkAgASgCDCIDIAEoAhAiBEkNACAERQ0AIARBAXQiBUEATARAQXUhAwwCC0F7IQMgASgCACAEQShsEM0BIghFDQEgASAINgIAIAEoAgQgBEEDdBDNASIERQ0BIAEgBTYCECABIAQ2AgQgASgCDCEDCyABIANBAWo2AgwgASABKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHLADYCACAAKAIMIAEgAhBCIgMNACABQSgQUSIDDQAgASgCCEEBNgIEIAFBPhBRIgMNACABKAIIIAY2AgQgAUHPABBRIgMNACABKAIIQQI2AgQgASgCCCAHNgIIIAEoAghBADYCDCABQT0QUSIDDQAgAUE5EFEiAw0AIAFBzwAQUSIDDQAgASgCCEECNgIEIAEoAgggBzYCCCABKAIIQQA2AgwgAUE9EFEiAw0AIAFBPRBRIQMLIApBEGokACADDwsCQAJAAkACQCAAKAIMDgQAAQIDDAsCQCAFKAIAIgAgBygCACIDSQ0AIANFDQAgA0EBdCIAQQBMBEBBdQ8LIAEoAgAgA0EobBDNASIERQRAQXsPCyABIAQ2AgBBeyEEIAEoAgQgA0EDdBDNASIDRQ0MIAsgAzYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE5NgIAQQAPCwJAIAUoAgAiBCAHKAIAIgNJDQAgA0UNACADQQF0IgJBAEwEQEF1DwsgASgCACADQShsEM0BIgRFBEBBew8LIAEgBDYCAEF7IQQgASgCBCADQQN0EM0BIgNFDQsgCyADNgIAIAcgAjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiBDYCCCAEQQA2AhAgBEIANwIIIARCADcCACABKAIEIAEoAgggASgCAGtBFG1BAnRqQc4ANgIAIAEoAgggACgCEDYCBCABKAIIIAAoAhg2AghBAA8LAkAgBSgCACIEIAcoAgAiA0kNACADRQ0AIANBAXQiAkEATARAQXUPCyABKAIAIANBKGwQzQEiBEUEQEF7DwsgASAENgIAQXshBCABKAIEIANBA3QQzQEiA0UNCiALIAM2AgAgByACNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBzwA2AgAgASgCCCAAKAIQNgIEIAEoAgggACgCGDYCCCABKAIIQQA2AgxBAA8LQXohBCAAKAIQIgJBAUsNCCAHKAIAIQMgBSgCACEEIAJBAUYEQAJAIAMgBEsNACADRQ0AIANBAXQiAkEATARAQXUPCyABKAIAIANBKGwQzQEiBEUEQEF7DwsgASAENgIAQXshBCABKAIEIANBA3QQzQEiA0UNCiALIAM2AgAgByACNgIAIAUoAgAhBAsgASAEQQFqNgIMIAEgASgCACAEQRRsaiIENgIIIARBADYCECAEQgA3AgggBEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpB0wA2AgAgASgCCCAAKAIYNgIIIAEoAgggACgCFDYCBEEADwsCQCADIARLDQAgA0UNACADQQF0IgJBAEwEQEF1DwsgASgCACADQShsEM0BIgRFBEBBew8LIAEgBDYCAEF7IQQgASgCBCADQQN0EM0BIgNFDQkgCyADNgIAIAcgAjYCACAFKAIAIQQLIAEgBEEBajYCDCABIAEoAgAgBEEUbGoiAzYCCEEAIQQgA0EANgIQIANCADcCCCADQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akHSADYCACABKAIIIAAoAhQ2AgQMCAtBMyEDIAUoAgAiBCAHKAIAIgZJDQEgBkUNASAGQQF0IghBAEwEQEF1DwtBeyEEIAEoAgAgBkEobBDNASIDRQ0HIAEgAzYCAEEzIQMgASgCBCAGQQN0EM0BIgZFDQcLIAsgBjYCACAHIAg2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0aiADNgIAIAEoAgggACgCFDYCBCAAKAIMIAEgAhBCIgQNBSABKAI0IQQCQAJAAkACQCAAKAIUIgNBAWtBHk0EQCAEIAN2QQFxDQEMAgsgBEEBcUUNAQtBNkE1IAAtAARBwABxGyECIAUoAgAiBCAHKAIAIgNJDQIgA0UNAiADQQF0IgZBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0IIAEgCDYCACABKAIEIANBA3QQzQEiAw0BDAgLQThBNyAALQAEQcAAcRshAiAFKAIAIgQgBygCACIDSQ0BIANFDQEgA0EBdCIGQQBMBEBBdQ8LQXshBCABKAIAIANBKGwQzQEiCEUNByABIAg2AgAgASgCBCADQQN0EM0BIgNFDQcLIAsgAzYCACAHIAY2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgM2AghBACEEIANBADYCECADQgA3AgggA0IANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGogAjYCACABKAIIIAAoAhQ2AgQgAC0ABEGAAXFFDQULIAFB0QAQUQ8LIAEgASgCICIGQQFqNgIgAkAgASgCDCIEIAEoAhAiCEkNACAIRQ0AIAhBAXQiCUEATARAQXUPC0F7IQQgASgCACAIQShsEM0BIg5FDQQgASAONgIAIAEoAgQgCEEDdBDNASIIRQ0EIAsgCDYCACAHIAk2AgAgBSgCACEECyABIARBAWo2AgwgASABKAIAIARBFGxqIgQ2AgggBEEANgIQIARCADcCCCAEQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0aiAKNgIAIAEoAgggBjYCBCABKAIIIANBAmogAyAMG0ECajYCCCABKAIMIQggACgCFCEEIAAoAhAhCgJAIAEoAjwiA0UEQEEwEMsBIgNFBEBBew8LIAFBBDYCPCABIAM2AkAMAQsgAyAGTARAIAEoAkAgA0EEaiIJQQxsEM0BIgNFBEBBew8LIAEgCTYCPCABIAM2AkAMAQsgASgCQCEDCyADIAZBDGxqIgMgCDYCCCADQf////8HIAQgBEF/Rhs2AgQgAyAKNgIAIAAgASACEFIiBA0DIAAoAhghAgJAIAUoAgAiACAHKAIAIgNJDQAgA0UNACADQQF0IgBBAEwEQEF1DwtBeyEEIAEoAgAgA0EobBDNASIIRQ0EIAEgCDYCACABKAIEIANBA3QQzQEiA0UNBCALIAM2AgAgByAANgIAIAUoAgAhAAsgASAAQQFqNgIMIAEgASgCACAAQRRsaiIANgIIIABBADYCECAAQgA3AgggAEIANwIAIAEoAgQgASgCCCABKAIAa0EUbUECdGpBwwBBxAAgAhs2AgAgASgCCCAGNgIEQQAPCyAAKAIoRQ0DAkAgBSgCACIAIAcoAgAiCkkNACAKRQ0AIApBAXQiAEEATARAQXUPC0F7IQQgASgCACAKQShsEM0BIglFDQMgASAJNgIAIAEoAgQgCkEDdBDNASIKRQ0DIAsgCjYCACAHIAA2AgAgBSgCACEACyABIABBAWo2AgwgASABKAIAIABBFGxqIgA2AgggAEEANgIQIABCADcCCCAAQgA3AgAgASgCBCABKAIIIAEoAgBrQRRtQQJ0akE6NgIAIAEoAgggA0EBajYCBCAIKAIAIQAMAQsLIAcoAgAEQAJAIAAoAiAEQCABQT8QUSIEDQMgASgCCCAGQQJqNgIEIAEoAgggACgCICgCDC0AADoACAwBCyAAKAIkBEAgAUHAABBRIgQNAyABKAIIIAZBAmo2AgQgASgCCCAAKAIkKAIMLQAAOgAIDAELIAFBOxBRIgQNAiABKAIIIAZBAmo2AgQLIAAgASACEFIiBA0BIAFBOhBRIgQNASANKAIAIAZBf3M2AgRBAA8LIAFBOhBRIgQNACABKAIIIAZBAWo2AgQgACABIAIQUiIEDQAgAUE7EFEiBA0AIA0oAgBBACAGazYCBEEADwsgBA8LQQALswMBBH8CQAJAAkACQAJAAkACQAJAIAAoAgAOCQQGBgYAAgMBBQYLIAAoAgwgARBDIQIMBQsDQCAAIgQoAhAhAAJAAkAgBCgCDCIDKAIARQRAIAJFDQEgAygCFCACKAIURw0BIAMoAgQgAigCBEcNASACIAMoAgwgAygCEBATIgMNCSAEIAUoAhBGBEAgBSAEKAIQNgIQIARBADYCEAsgBBAQDAILAkAgAkUNACACKAIMIAIoAhAgASgCSBEAAA0AQfB8DwsgAyABEEMiAw0IQQAhAiAEIQUgAA0CDAcLIAQhBSADIQILIAANAAsgAigCECEAIAIoAgwhBEEAIQIgBCAAIAEoAkgRAAANBEHwfA8LIAAoAgwgARBDIgMNBCAAKAIQQQNHBEAMBAsgACgCFCICBEAgAiABEEMiAw0FCyAAKAIYIgBFBEBBACECDAQLQQAhAiAAIAEQQyIDDQQMAwsgACgCDCIARQ0CIAAgARBDIQIMAgsgACgCDCAAKAIQIAEoAkgRAAANAUHwfA8LA0AgACgCDCABEEMiAg0BIAAoAhAiAA0AC0EAIQILIAIhAwsgAwvFAQECfwJAAkACQAJAAkACQAJAIAAoAgBBA2sOBgQAAwIBAQULIAAoAgwQRCEBDAQLA0AgACgCDBBEIgENBCAAKAIQIgANAAtBACEBDAMLIAAoAgwiAEUNAiAAEEQhAQwCCyAAKAIMEEQiAg0CIAAoAhBBA0cEQAwCCyAAKAIUIgEEQCABEEQiAg0DCyAAKAIYIgBFBEBBACEBDAILQQAhASAAEEQiAkUNAQwCC0GvfiECIAAtAAVBgAFxRQ0BCyABIQILIAILlAIBBH8CQAJAA0ACQAJAAkACQAJAIAAoAgBBA2sOBgQCAwEAAAcLA0AgACgCDCABEEUiAg0HIAAoAhAiAA0ACwwFCyAAKAIQQQ9KDQULIAAoAgwhAAwCCyAAKAIMIAEQRSECIAAoAhBBA0cNAyACDQMgACgCFCICBEAgAiABEEUiAg0EC0EAIQIgACgCGCIADQEMAwsLIAAoAgxBAEwNASABKAKAASICIAFBQGsgAhshBCAAKAIoIgIgAEEQaiACGyEFQQAhAgNAIAUgAkECdGooAgAiAyABKAI0SgRAQbB+DwsgBCADQQN0aigCACIDIAMoAgRBgIAEcjYCBCACQQFqIgIgACgCDEgNAAsLQQAhAgsgAgvHBQEGfyMAQRBrIgYkAANAIAJBEHEhBANAQQAhAwJAAkACQAJAAkACQAJAAkAgACgCAEEEaw4GAQMCAAAEBgsDQCAAKAIMIAEgAhBGIgMNBiAAKAIQIgANAAsMBAsgAiACQRByIAAoAhQbIQIgACgCDCEADAcLIAAoAhBBD0oNAwwECwJAAkAgACgCEA4EAAUFAQULIARFDQQgACAAKAIEQYAQcjYCBCAAQRxqIgMgAygCAEEBazYCACAAKAIMIQAMBQsgACgCDCABIAIQRiIDDQIgACgCFCIDBEAgAyABIAIQRiIDDQMLQQAhAyAAKAIYIgANBAwCCyAEBEAgACAAKAIEQYAQcjYCBCAAIAAoAiBBAWs2AiALIAEoAoABIQICQCAAKAIQBEAgACgCFCEEAkAgASgCOEEATA0AIAEoAgwtAAhBgAFxRQ0AQa9+IQMgAS0AAUEBcUUNBAsgBCABKAI0TA0BQaZ+IQMgASAAKAIYIAAoAhwQHQwDCyABKAIsIQMgACgCGCEIIAAoAhwhBSAGQQxqIQcjAEEQayIEJAAgAygCVCEDIARBADYCBAJAIANFBEBBp34hAwwBCyAEIAU2AgwgBCAINgIIIAMgBEEIaiAEQQRqEI8BGiAEKAIEIgVFBEBBp34hAwwBCwJAAkAgBSgCCCIDDgICAAELIAcgBUEQajYCAEEBIQMMAQsgByAFKAIUNgIACyAEQRBqJAACQAJAIAMiBEEATARAQad+IQMMAQtBpH4hAyAEQQFGDQELIAEgACgCGCAAKAIcEB0MAwsgACAGKAIMKAIAIgQ2AhQLIAAgBEEDdCACIAFBQGsgAhtqKAIAIgM2AgwgA0UEQEGnfiEDIAEgACgCGCAAKAIcEB0MAgsgAyADKAIEQYCAgCByNgIEC0EAIQMLIAZBEGokACADDwsgACgCDCEADAALAAsAC6cBAQF/A0ACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYBAwIAAAQFCwNAIAAoAgwQRyAAKAIQIgANAAsMBAsgACgCFEUNAwwECyAAKAIQQRBIDQMMAgsgAC0ABUEIcUUEQCAAKAIMEEcLIAAoAhBBA0cNASAAKAIUIgEEQCABEEcLIAAoAhgiAA0DDAELIAAtAAVBCHENACAAEFcLDwsgACgCDCEADAALAAuRAwEDfwJAA0ACQCAAKAIAIgRBBkcEQAJAAkAgBEEEaw4FAQMFAAAFCwNAQQEhBCAAKAIMIAEgAhBIIgNBAUcEQCAFIQQgA0EASA0GCyAEIQUgBCEDIAAoAhAiAA0ACwwECyAAKAIMIAEgAhBIIQMgACgCFA0DIANBAUcNAyAAQQE2AihBAQ8LIAAoAhBBD0oNAiAAKAIMIQAMAQsLIAAoAgQhBAJAIAAoAhANAEEBIQMgBEGAAXFFBEBBACEDIAJBAXFFDQELIARBwABxDQAgACAEQQhyNgIEAkAgACgCDBBYRQ0AIAAgACgCBEHAAHI2AgRBASEEIAEgACgCFCIFQR9MBH8gBUUNAUEBIAV0BSAECyABKAIUcjYCFAsgACAAKAIEQXdxIgQ2AgQLQQEgAyAAKAIMIAFBASACIARBwABxGyIEEEhBAUYbIQMgACgCEEEDRw0AIAAoAhQiBQRAQQEgAyAFIAEgBBBIQQFGGyEDCyAAKAIYIgBFDQBBASADIAAgASAEEEhBAUYbIQMLIAML4wEBAX8DQEEAIQICQAJAAkACQAJAIAAoAgBBBGsOBQQCAQAAAwsDQCAAKAIMIAEQSSICDQMgACgCECIADQALQQAPCyAAKAIQQQ9MDQJBAA8LAkACQCAAKAIQDgQAAwMBAwsgACgCBCICQcABcUHAAUcNAiAAIAJBCHI2AgQgACgCDCABQQEQWSICQQBIDQEgAkEGcQRAQaN+DwsgACAAKAIEQXdxNgIEDAILIAAoAhQiAgRAIAIgARBJIgINAQsgACgCGCICRQ0BIAIgARBJIgJFDQELIAIPCyAAKAIMIQAMAAsAC/UCAQF/A0ACQAJAAkACQAJAAkACQCAAKAIAQQRrDgYEAwUBAAIGCyABQQFyIQELA0AgACgCDCABEEogACgCECIADQALDAQLIAFBgAJxBEAgACAAKAIEQYCAgMAAcjYCBAsgAUEEcQRAIAAgACgCBEGACHI2AgQLIAAgARBaDwsCQAJAAkAgACgCEA4EAAEBAgULIABBIGoiAiABQSByIAEgACgCHEEBShsiASACKAIAcjYCAAsgACgCDCEADAQLIAAoAgwgAUEBciIBEEogACgCFCICBEAgAiABEEoLIAAoAhgiAA0DDAILIAFBBHIiAiACIAEgACgCFCICQQFKGyACQX9GGyIBIAFBCHIgACgCECACRhsiAUGAAnEEQCAAIAAoAgRBgICAwAByNgIECyAAKAIMIQAMAgsCQAJAIAAoAhBBAWsOCAEAAgECAgIAAgsgAUGCAnIhASAAKAIMIQAMAgsgAUGAAnIhASAAKAIMIQAMAQsLC547ARN/IwBB0AJrIgYkAAJAAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkAgACgCAA4JCg0NCQMBAgALDQsDQCAAIgkoAgwgASACIAMQSyEAAkACQCAFRQ0AIAANACAJKAIMIQtBACEAA0AgBSgCACIEQQVHBEAgBEEERw0DIAUoAhhFDQMgBSgCFEF/Rw0DIAshBAJAIAANAAJAA0ACQAJAAkACQAJAAkAgBCgCAA4IAQgICAIDBAAICyAEKAIMIQQMBQsgBCgCDCIHIAQoAhBPDQYgBC0ABkEgcUUNBSAELQAUQQFxDQUMBgsgBCgCEEEATA0FIAQoAiAiAA0CIAQoAgwhBAwDCyAEKAIQQQNLDQQgBCgCDCEEDAILIAQoAhBBAUcNAyAEKAIMIQQMAQsLIAAoAgwhByAAIQQLIActAABFDQAgBSAENgIkCyAFKAIQQQFKDQMCQAJAIAUoAgwiACgCACIEDgMAAQEFCyAAKAIQIAAoAgxGDQQLA0AgACEHAkACQAJAAkACQAJAAkAgBA4IAAUECwECAwYLCyAAKAIQIAAoAgxLDQQMCgsgACgCEEEATA0JIAAoAiAiBw0DDAQLIAAoAhBBA00NAwwICyAAKAIQQQFGDQIMBwsgACgCDEF/Rg0GCyALQQAQWyIARQ0FAn8gASENIAAoAgAhCAJAAkADQCAHIQQgACEHIAghCkEAIQACQAJAIAQoAgAiCA4DAwEABAtBACAEKAIMIhFBf0YNBBpBACAHKAIMIhRBf0YNBBogBCEAIApBAkkNAUEAIApBAkcNBBoCQCARIBRHDQAgBygCECAEKAIQRg0AQQEhACAHKAIUIAQoAhRGDQQLQQAMBAsgBCEAIApFDQALQQAhAAJAAkAgCkEBaw4CAQADC0EAIAcoAgxBDEcNAxogBCgCMCEAIAcoAhBFBEBBACAADQQaQQAhACAELQAMQQFxDQNBgAFBgAIgBygCFBshCEEAIQcDQAJAIAQgB0EDdkH8////AXFqKAIQIAd2QQFxRQ0AIAdBDCANKAJEKAIwEQAARQ0AQQAMBgtBASEAIAdBAWoiByAIRw0ACwwDC0EAIAANAxpBACEAIAQtAAxBAXENAkGAAUGAAiAHKAIUIggbIQBBACEHA0ACQCAHQQwgDSgCRCgCMBEAAA0AIAQgB0EDdkH8////AXFqKAIQIAd2QQFxRQ0AQQAMBQsgB0EBaiIHIABHDQALQQEgCEUNAxpB/wEgACAAQf8BTRshCkGAASEHA0AgBCAHQQN2Qfz///8BcWooAhAgB3ZBAXFFBEBBASEAIAcgCkYhCCAHQQFqIQcgCEUNAQwECwtBAAwDCyAEKAIMIg1BAXEhEQNAAkACQEEBIAB0IgogBCAAQQV2QQJ0IghqKAIQcQRAIBFFDQEMAgsgEUUNAQsgBygCDEEBcSEUIAcgCGooAhAgCnEEQCAUDQFBAAwFCyAURQ0AQQAMBAsgAEEBaiIAQYACRw0ACyAEKAIwRQRAQQEhACANQQFxRQ0CCyAHKAIwRQRAQQEhACAHLQAMQQFxRQ0CC0EADAILQQAgBCgCECIIIAQoAgwiBEYNARoCQAJAAkAgCg4DAgEAAwsgBygCDEEMRw0CIA0oAkQhACAHKAIURQRAIAAoAjAhCiAEIAggACgCFBEAAEEMIAoRAAAhBCAHKAIQIQAgBA0DIABFDAQLIAAgBCAIEIcBIQQgBygCECEAIAQNAiAARQwDCyAEIAQgDSgCRCIAKAIIaiAAKAIUEQAAIRFBASEAAkACQAJAIA0oAkQiBCgCDEEBSg0AIBEgBCgCGBEBACIEQQBIDQQgEUH/AUsNACAEQQJJDQELIAcoAjAiBEUEQEEAIQ0MAgsgBCgCACIAQQRqIRRBACENQQAhBCAAKAIAIgsEQCALIQADQCAAIARqIghBAXYiCkEBaiAEIBQgCEECdEEEcmooAgAgEUkiCBsiBCAAIAogCBsiAEkNAAsLIAQgC08NASAUIARBA3RqKAIAIBFNIQ0MAQsgByARQQN2Qfz///8BcWooAhAgEXZBAXEhDQsgDSAHKAIMQQFxc0EBcwwCCyAIIARrIgggBygCECAHKAIMIgdrIgogCCAKSBsiCkEATA0AQQAhCANAQQEgBy0AACAELQAARw0CGiAEQQFqIQQgB0EBaiEHIAhBAWoiCCAKRw0ACwsgAAtFDQVBAUE4EM8BIgAEQCAAQQI2AhAgAEEFNgIAIABBADYCNAsgAEUEQEF7IQUMFAsgACAAKAIEQSByNgIEIwBBQGoiD0E4aiIMIAUiBEEwaiIOKQIANwMAIA9BMGoiESAEQShqIhApAgA3AwAgD0EoaiIUIARBIGoiEikCADcDACAPQSBqIgggBEEYaiIVKQIANwMAIA9BGGoiCiAEQRBqIhYpAgA3AwAgD0EQaiINIARBCGoiCykCADcDACAPIAQpAgA3AwggDiAAQTBqIgcpAgA3AgAgECAAQShqIg4pAgA3AgAgEiAAQSBqIhApAgA3AgAgFSAAQRhqIhIpAgA3AgAgFiAAQRBqIhUpAgA3AgAgCyAAQQhqIhYpAgA3AgAgBCAAKQIANwIAIAcgDCkDADcCACAOIBEpAwA3AgAgECAUKQMANwIAIBIgCCkDADcCACAVIAopAwA3AgAgFiANKQMANwIAIAAgDykDCDcCAAJAIAQoAgANACAEKAIwDQAgBCgCDCEPIAQgBEEYaiIMNgIMIAQgDCAEKAIQIA9rajYCEAsCQCAAKAIADQAgACgCMA0AIAAoAgwhBCAAIABBGGoiDzYCDCAAIA8gACgCECAEa2o2AhALIAUgADYCDAwFCyAAKAIMIgAoAgAhBAwACwALIAUoAhANAkEBIAAgBS0ABEGAAXEbIQAgBSgCDCEFDAALAAsgACEFIAANDgsgCSgCDCEFIAkoAhAiAA0ACwwLCyAAKAIQDgQEBQMCCwsCQAJAAkAgACgCECIEQQFrDggAAQ0CDQ0NAg0LIAJBwAByIQIgACgCDCEADAcLIAJBwgByIQIgACgCDCEADAYLIAZBADYCkAIgACgCDCAEQQhGIAZBkAJqEFxBAEoEQEGGfyEFDAsLIAAoAgwiByABIAJBAnIgAiAAKAIQQQhGG0GAAXIgAxBLIgUNCgJAAkACQAJAIAciCyIEKAIAQQRrDgUCAwMBAAMLA0ACQAJAAkAgCygCDCIEKAIAQQRrDgQAAgIBAgsgBCgCDCgCAEEDSw0BIAQgBCgCEDYCFAwBCwNAIAQoAgwiBSgCAEEERw0BIAUoAgwoAgBBA0sNASAFIAUoAhAiCTYCFCAJDQEgBCgCECIEDQALQQEhBQwPCyALKAIQIgsNAAsMAgsDQCAEKAIMIgUoAgBBBEcNAiAFKAIMKAIAQQNLDQIgBSAFKAIQIgk2AhQgCQ0CQQEhBSAEKAIQIgQNAAsMDAsgBygCDCgCAEEDSw0AIAcgBygCEDYCFAsgByABIAYgA0EAEF0iBUEASA0KIAYoAgQiCUGAgARrQf//e0kEQEGGfyEFDAsLIAYoAgAiBEH//wNLBEBBhn8hBQwLCwJAIAQNACAGKAIIRQ0AIAYoApACDQAgACgCEEEIRgRAIAAQESAAQQA2AgwgAEEKNgIAQQAhBQwMCyAAEBEgAEEANgIUIABBADYCACAAQQA2AjAgACAAQRhqIgE2AhAgACABNgIMQQAhBQwLCwJAIAVBAUcNACADKAIMKAIIIgVBwABxBEAjAEFAaiIPJAAgACIFQRBqIgwoAgAhFCAAKAIMIhMoAgwhDiAPQThqIhAgAEEwaiISKQIANwMAIA9BMGoiCSAAQShqIhUpAgA3AwAgD0EoaiIIIABBIGoiFikCADcDACAPQSBqIgogAEEYaiIRKQIANwMAIA9BGGoiDSAMKQIANwMAIA9BEGoiCyAAQQhqIgcpAgA3AwAgDyAAKQIANwMIIBIgE0EwaiIEKQIANwIAIBUgE0EoaiISKQIANwIAIBYgE0EgaiIVKQIANwIAIBEgE0EYaiIWKQIANwIAIAwgE0EQaiIRKQIANwIAIAcgE0EIaiIMKQIANwIAIAAgEykCADcCACAEIBApAwA3AgAgEiAJKQMANwIAIBUgCCkDADcCACAWIAopAwA3AgAgESANKQMANwIAIAwgCykDADcCACATIA8pAwg3AgACQCAAKAIADQAgBSgCMA0AIAUoAgwhDCAFIAVBGGoiEDYCDCAFIBAgBSgCECAMa2o2AhALAkAgEygCAA0AIBMoAjANACATIBMgEygCECATKAIMa2pBGGo2AhALIAUgEzYCDCATIA42AgwCQCAFKAIQIgwEQANAIA9BCGogExASIg4NAiAPKAIIIg5FBEBBeyEODAMLIA4gDCgCDDYCDCAMIA42AgwgDCgCECIMDQALC0EAIQ4gFEEIRw0AA0AgBUEHNgIAIAUoAhAiBQ0ACwsgD0FAayQAIA4iBQ0MIAAgASACIAMQSyEFDAwLIAVBgBBxDQBBhn8hBQwLCyAEIAlHBEBBhn8hBSADKAIMLQAJQQhxRQ0LCyAAKAIgDQkgACAJNgIYIAAgBDYCFCAHIAZBzAJqQQAQXkEBRw0JIABBIGogBigCzAIQEiIFRQ0JDAoLIAJBwAFxBEAgACAAKAIEQYCAgMAAcjYCBAsgAkEEcQRAIAAgACgCBEGACHI2AgQLIAJBIHEEQCAAIAAoAgRBgCByNgIECyAAKAIMIQQCQCAAKAIUIgVBf0cgBUEATHENACAEIAMQXw0AIAAgBBBgNgIcCyAEIAEgAkEEciIJIAkgAiAAKAIUIgVBAUobIAVBf0YbIgIgAkEIciAAKAIQIAVGGyADEEsiBQ0JAkAgBCgCAA0AIAAoAhAiAkF/Rg0AIAJBAmtB4gBLDQAgAiAAKAIURw0AIAQoAhAgBCgCDGsgAmxB5ABKDQAgAEIANwIAIABBMGoiAUIANwIAIABCADcCKCAAQgA3AiAgAEEYaiIFQgA3AgAgAEEQaiIJQgA3AgAgAEIANwIIIAAgBCgCBDYCBCAEKAIUIQtBACEDIAFBADYCACAJIAU2AgAgACAFNgIMIAAgCzYCFANAQXohBSAAKAIEIAQoAgRHDQsgACgCFCAEKAIURw0LIAAgBCgCDCAEKAIQEBMiBQ0LIANBAWoiAyACRw0ACyAEEBAMCQtBACEFIAAoAhhFDQkgACgCHA0JIAQoAgBBBEYEQCAEKAIgIgJFDQogACACNgIgIARBADYCIAwKCyAAIAAoAgxBARBbNgIgDAkLIAAoAgwgASACQQFyIgIgAxBLIgUNCCAAKAIUIgUEQCAFIAEgAiADEEsiBQ0JC0EAIQUgACgCGCIADQMMCAsgACgCDCIEIAEgAiADEEshBSAEKAIAQQRHDQcgBCgCFEF/Rw0HIAQoAhBBAUoNByAEKAIYRQ0HAkACQCAEKAIMIgIoAgAOAwABAQkLIAIoAhAgAigCDEYNCAsgACAAKAIEQSByNgIEDAcLAkAgACgCICACciICQStxRQRAIAAtAARBwABxRQ0BCyADIAAoAhQiBEEfTAR/IARFDQFBASAEdAVBAQsgAygCFHI2AhQLIAAoAgwhAAwBCwsgASgCSCEEIAEgACgCFDYCSCAAKAIMIAEgAiADEEshBSABIAQ2AkgMBAsgACgCDCIBQQBMDQIgACgCKCIFIABBEGogBRshCSADKAI0IQtBACEFA0AgCyAJIAVBAnRqIgQoAgAiAEgEQEGwfiEFDAULAkAgAyAAQR9MBH8gAEUNAUEBIAB0BUEBCyADKAIYcjYCGAsCQCADIAQoAgAiAkEfTAR/IAJFDQFBASACdAVBAQsgAygCFHI2AhQLIAVBAWoiBSABRw0ACwwCCyAAKAIEIgRBgICAAXFFDQIgACgCFCIDQQFxDQIgA0ECcQ0CIAAgBEH///9+cTYCBCAAKAIMIgwgACgCECIWTw0CIAEoAkQhEiAGQQA2AowCIAJBgAFxIRECQAJAA0AgASgCUCAMIBYgBiASKAIoEQMAIgpBAEgEQCAKIQUMAgsgDCASKAIAEQEAIQQgFgJ/IApFBEAgBiAGKAKMAiICNgKQAiAWIAQgDGoiBSAFIBZLGyEDAkACQCAIBEAgCCgCFEUNAQtBeyEFIAwgAxAWIgRFDQUgBEEANgIUIAQQFCEJAn8gAkUEQCAGQZACaiAJDQEaDAcLIAlFDQYDQCACIgUoAhAiAg0ACyAFQRBqCyAJNgIAIAYoApACIQIgBCEIDAELIAggDCADEBMiBQ0ECyAGIAI2AowCIAMMAQsCQAJAAkACQAJAAkAgEUUEQCAKQQNxIRBBfyECQQAhDkEAIQVBACEEIApBAWtBA0kiFEUEQCAKQXxxIRVBACENA0AgBiAFQQNyQRRsaigCACIDIAYgBUECckEUbGooAgAiCSAGIAVBAXJBFGxqKAIAIgsgBiAFQRRsaigCACIHIAQgBCAHSRsiBCAEIAtJGyIEIAQgCUkbIgQgAyAESxshBCADIAkgCyAHIAIgAiAHSxsiAiACIAtLGyICIAIgCUsbIgIgAiADSxshAiAFQQRqIQUgDUEEaiINIBVHDQALCyAQBEADQCAGIAVBFGxqKAIAIgMgBCADIARLGyEEIAMgAiACIANLGyECIAVBAWohBSAOQQFqIg4gEEcNAAsLIAIgBEYNAUF1IQUMCQsgBCAMaiEJAkACQCAEIAYoAgBHBEAgASgCUCAMIAkgBiASKAIoEQMAIgpBAEgEQCAKIQUMDAsgCkUNAQtBACEFA0AgBCAGIAVBFGxqIgIoAgBGBEAgAigCBEEBRg0DCyAFQQFqIgUgCkcNAAsLIAYgBigCjAIiAjYCkAICQCAIBEAgCCgCFEUNAQtBeyEFIAwgCRAWIgRFDQogBEEANgIUIAQQFCEDAkAgAkUEQCAGQZACaiECIANFDQwMAQsgA0UNCwNAIAIiBSgCECICDQALIAVBEGohAgsgAiADNgIAIAYoApACIQIgBCEIDAcLIAggDCAJEBMiBQ0JDAYLIAYgDCAJIBIoAhQRAAA2ApACQQAhBUEBIQMDQAJAIAYgBUEUbGoiAigCACAERw0AIAIoAgRBAUcNACAGQZACaiADQQJ0aiACKAIINgIAIANBAWohAwsgBUEBaiIFIApHDQALIAZBzAJqIBIgAyAGQZACahAYIgUNCCAGKAKMAiECIAYoAswCEBQhBCACRQRAIARFDQIgBiAENgKMAgwFCyAERQ0CA0AgAiIFKAIQIgINAAsgBSAENgIQDAQLIAIgDGohDkEAIQUCQAJAAkADQCAGIAVBFGxqKAIEQQFGBEAgCiAFQQFqIgVHDQEMAgsLQXshBSAMIA4QFiICRQ0KQQAhByAGIAIQFSILNgLMAiALIQ0gCw0BIAIQEAwKCyAGIAwgDiASKAIUEQAANgKQAkEAIQJBACEFIBRFBEAgCkF8cSELQQAhBANAIAZBkAJqIAVBAXIiA0ECdGogBiAFQRRsaigCCDYCACAGQZACaiAFQQJyIglBAnRqIAYgA0EUbGooAgg2AgAgBkGQAmogBUEDciIDQQJ0aiAGIAlBFGxqKAIINgIAIAZBkAJqIAVBBGoiBUECdGogBiADQRRsaigCCDYCACAEQQRqIgQgC0cNAAsLIBAEQANAIAVBFGwhBCAGQZACaiAFQQFqIgVBAnRqIAQgBmooAgg2AgAgAkEBaiICIBBHDQALCyAGQcwCaiASIApBAWogBkGQAmoQGCIFDQkgBigCzAIhCwwBCwNAIAYgB0EUbGoiBSgCBCEDQQBBABAWIgRFBEBBeyEFIAsQEAwKC0EAIQICQCADQQBMDQAgBUEIaiEJA0ACQCAJIAJBAnRqKAIAIAZBkAJqIBIoAhwRAAAiBUEASA0AIAQgBkGQAmogBkGQAmogBWoQEyIFDQAgAyACQQFqIgJHDQEMAgsLIAQQECALEBAMCgsgBBAVIgVFBEAgBBAQIAsQEEF7IQUMCgsgDSAFNgIQIAUhDSAHQQFqIgcgCkcNAAsLIAYoAowCIQUgCxAUIQQCfyAFRQRAIAZBjAJqIAQNARoMBAsgBEUNAwNAIAUiAigCECIFDQALIAJBEGoLIAQ2AgBBACEIIA4MBQsgBigCzAIQEEF7IQUMCgsgBigCzAIQEEF7IQUMBgsgBigCzAIQEEF7IQUMBAtBACEIIAkMAQsgBiACNgKMAiAJCyIMSw0ACyAGKAKMAiIDBEBBASEFIAMhAgNAIAUiBEEBaiEFIAIoAhAiAg0ACwJAIARBAUYEQCADKAIMIQUgBkHAAmoiAiAAQTBqIgQpAgA3AwAgBkG4AmoiASAAQShqIgkpAgA3AwAgBkGwAmoiCyAAQSBqIgcpAgA3AwAgBkGoAmoiCiAAQRhqIg4pAgA3AwAgBkGgAmoiDSAAQRBqIhApAgA3AwAgBkGYAmoiDCAAQQhqIhUpAgA3AwAgBiAAKQIANwOQAiAEIAVBMGoiEikCADcCACAJIAVBKGoiBCkCADcCACAHIAVBIGoiCSkCADcCACAOIAVBGGoiBykCADcCACAQIAVBEGoiDikCADcCACAVIAVBCGoiECkCADcCACAAIAUpAgA3AgAgEiACKQMANwIAIAQgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAQIAwpAwA3AgAgBSAGKQOQAjcCAAJAIAAoAgANACAAKAIwDQAgACgCDCECIAAgAEEYaiIENgIMIAAgBCAAKAIQIAJrajYCEAsgBSgCAA0BIAUoAjANASAFKAIMIQAgBSAFQRhqIgI2AgwgBSACIAUoAhAgAGtqNgIQIAMQEAwGCyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiASkCADcDACAGQbACaiIJIABBIGoiCykCADcDACAGQagCaiIHIABBGGoiCikCADcDACAGQaACaiIOIABBEGoiDSkCADcDACAGQZgCaiIQIABBCGoiDCkCADcDACAGIAApAgA3A5ACIAIgA0EwaiIVKQIANwIAIAEgA0EoaiICKQIANwIAIAsgA0EgaiIBKQIANwIAIAogA0EYaiILKQIANwIAIA0gA0EQaiIKKQIANwIAIAwgA0EIaiINKQIANwIAIAAgAykCADcCACAVIAUpAwA3AgAgAiAEKQMANwIAIAEgCSkDADcCACALIAcpAwA3AgAgCiAOKQMANwIAIA0gECkDADcCACADIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCyADKAIADQAgAygCMA0AIAMoAgwhBSADIANBGGoiADYCDCADIAAgAygCECAFa2o2AhALIAMQEAwECyAGQcACaiIFIABBMGoiAikCADcDACAGQbgCaiIEIABBKGoiAykCADcDACAGQbACaiIBIABBIGoiCSkCADcDACAGQagCaiILIABBGGoiBykCADcDACAGQaACaiIKIABBEGoiDikCADcDACAGQZgCaiINIABBCGoiECkCADcDACAGIAApAgA3A5ACIAIgCEEwaiIMKQIANwIAIAMgCEEoaiICKQIANwIAIAkgCEEgaiIDKQIANwIAIAcgCEEYaiIJKQIANwIAIA4gCEEQaiIHKQIANwIAIBAgCEEIaiIOKQIANwIAIAAgCCkCADcCACAMIAUpAwA3AgAgAiAEKQMANwIAIAMgASkDADcCACAJIAspAwA3AgAgByAKKQMANwIAIA4gDSkDADcCACAIIAYpA5ACNwIAAkAgACgCAA0AIAAoAjANACAAKAIMIQUgACAAQRhqIgI2AgwgACACIAAoAhAgBWtqNgIQCwJAIAgoAgANACAIKAIwDQAgCCgC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QQFrQQZ0aiIBKAIAIAUoAhhHBEAgAUIANwIAIAFCADcCOCABQgA3AjAgAUIANwIoIAFCADcCICABQgA3AhggAUIANwIQIAFCADcCCCABIAUoAhg2AgALIAEoAghBACABKAIEGyECCyAAKAIIIgFBAEwNACAAKAIoKAIoIgUoAhwiBiABQQFrIghBBnRqIgEoAgAgBSgCGEcEQCABQgA3AgAgAUIANwI4IAFCADcCMCABQgA3AiggAUIANwIgIAFCADcCGCABQgA3AhAgAUIANwIIIAEgBSgCGDYCAAsCQCABKAIERQRAIAAoAgwgACgCCBAOIgFFDQIgASgCBEEBRw0CIAEoAkQiAyABKAJIIgUgBygCRCgCFBEAACEIQQAhBiAFIAMgBygCRCgCABEBACADaiIBSwRAIAEgBSAHKAJEKAIUEQAAIQZBmH4hAyABIAcoAkQoAgARAQAgAWogBUcNAwtBmH4hAwJ/AkACQAJAAkAgCEEhaw4eAQcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHAgADBwtBACAGQT1GDQMaDAYLQQEgBkE9Rg0CGgwFC0EEIAZBPUYNARogBg0EQQIMAQtBBSAGQT1GDQAaIAYNA0EDCyEBQWIhAyAAKAIIIgdBAEwNAiAAKAIoKAIoIgMoAhwgB0EGdGpBQGoiAEEBNgIEIAAgBTYCDCAAIAE2AgggACADKAIYNgIADAELIAYgCEEGdGooAgghAQtBACEAAkACQAJAAkACQAJAAkAgAQ4GAAECAwQFBgsgAiAERiEADAULIAIgBEchAAwECyACIARKIQAMAwsgAiAESCEADAILIAIgBE4hAAwBCyACIARMIQALIABBAXMhAwsgAws/AQF/AkAgACgCDCIAIAIgAWsiA2oQywEiAkUNACACIAEgAxCmASEBIABBAEwNACABIANqQQAgABCoARoLIAILJgAgAiABIAIgACgCOBEAACIBSwR/IAEgACgCABEBACABagUgAQsLHgEBfyABIAJJBH8gASACQQFrIAAoAjgRAAAFIAMLCzsAAkAgAkUNAANAIANBAEwEQCACDwsgASACTw0BIANBAWshAyABIAJBAWsgACgCOBEAACICDQALC0EAC2gBBH8gASECA0ACQCACLQAADQAgACgCDCIDQQFHBEAgAiEEIANBAkgNAQNAIAQtAAENAiAEQQFqIQQgA0ECSiEFIANBAWshAyAFDQALCyACIAFrDwsgAiAAKAIAEQEAIAJqIQIMAAsAC3UBBH8jAEEQayIAJAACQANAIAAgBEEDdEHQJWoiAygCBCIFNgIMIAMoAgAiBiAAQQxqQQEgAiABEQMAIgMNASAAIAY2AgwgBSAAQQxqQQEgAiABEQMAIgMNASAEQQFqIgRBGkcNAAtBACEDCyAAQRBqJAAgAwtOAEEgIQACfyABLQAAIgJBwQBrQf8BcUEaTwRAQWAhAEEAIAJB4QBrQf8BcUEZSw0BGgsgA0KBgICAEDcCACADIAAgAS0AAGo2AghBAQsLBABBfgscAAJ/IAAgAUkEQEEBIAAtAABBCkYNARoLQQALCyUAIAMgASgCAC0AAEHQH2otAAA6AAAgASABKAIAQQFqNgIAQQELBABBAQsHACAALQAACw4AQQFB8HwgAEGAAkkbCwsAIAEgADoAAEEBCwQAIAELzgEBBn8gASACSQRAIAEhAwNAIAVBAWohBSADIAAoAgARAQAgA2oiAyACSQ0ACwtBAEHAmhFqIQMgBEHHCWohBANAAkAgBSADIgYuAQgiB0cNACAFIQggASEDAkAgB0EATA0AA0AgAiADSwRAIAMgAiAAKAIUEQAAIAQtAABHDQMgBEEBaiEEIAMgACgCABEBACADaiEDIAhBAUshByAIQQFrIQggBw0BDAILCyAELQAADQELIAYoAgQPCyAGQQxqIQMgBigCDCIEDQALQaF+C2gBAX8CQCAEQQBKBEADQCABIAJPBEAgAy0AAA8LIAEgAiAAKAIUEQAAIQUgAy0AACAFayIFDQIgA0EBaiEDIAEgACgCABEBACABaiEBIARBAUshBSAEQQFrIQQgBQ0ACwtBACEFCyAFCy4BAX8gASACIAAoAhQRAAAiAEH/AE0EfyAAQQF0QdAhai8BAEEMdkEBcQUgAwsLPgEDfwJAIAJBAEwNAANAIAAgA0ECdCIFaigCACABIAVqKAIARgRAIAIgA0EBaiIDRw0BDAILC0F/IQQLIAQLJwEBfyAAIAFBA20iAkECdGooAgBBECABIAJBA2xrQQN0a3ZB/wFxC7YIAQF/Qc0JIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB9ANqDvQDTU5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkxOTktKMzZOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTklIR0ZFRENCQUA/Pj08Ozo5ODc1NE4yMTAvLi0sKyopKE5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4nJiUkIyIhIB8eHRwbGhkYThcWFRQTEhFOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4QTk5OTk5ODw4NTgcGBQQDDAsKCU5OTk4IAk4BAE9OC0GzDA8LQbMNDwtBjQ4PC0GEDw8LQfAPDwtByRAPC0G+EQ8LQf8RDwtBwBIPC0HnEg8LQZYTDwtBuhMPC0HkEw8LQf4TDwtBvBQPC0GEFQ8LQZcVDwtBrhUPC0HNFQ8LQewVDwtBnhYPC0HyFg8LQYoXDwtBoBcPC0G5Fw8LQdUXDwtB9BcPC0GYGA8LQbsYDwtB7BgPC0GgJw8LQcUnDwtB3CcPC0H4Jw8LQZ8oDwtBtCgPC0HLKA8LQeAoDwtB+ygPC0GaKQ8LQb0pDwtBzCkPC0HsKQ8LQZgqDwtBsioPC0HlKg8LQZIrDwtBsisPC0HJKw8LQeUrDwtBliwPC0GoLA8LQcAsDwtB2SwPC0HsLA8LQYUtDwtBmS0P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AUYNAQsLIAILoQEBBH9BASEEAkAgACABTw0AA0BBACEEIAAtAAAiAkHAAXFBgAFGDQEgAEEBaiEDAkAgAkHAAWtBNEsEQCADIQAMAQsgAEECIAJBAnRBkIoRaigCACICIAJBAkwbIgVqIQBBASECA0AgASADRg0DIAMtAABBwAFxQYABRw0DIANBAWohAyACQQFqIgIgBUcNAAsLIAAgAUkNAAtBASEECyAEC4AEAQN/IAJBgARPBEAgACABIAIQACAADwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgACADQQRrIgRLBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAvoAgECfwJAIAAgAUYNACABIAAgAmoiA2tBACACQQF0a00EQCAAIAEgAhCmARoPCyAAIAFzQQNxIQQCQAJAIAAgAUkEQCAEBEAgACEDDAMLIABBA3FFBEAgACEDDAILIAAhAwNAIAJFDQQgAyABLQAAOgAAIAFBAWohASACQQFrIQIgA0EBaiIDQQNxDQALDAELAkAgBA0AIANBA3EEQANAIAJFDQUgACACQQFrIgJqIgMgASACai0AADoAACADQQNxDQALCyACQQNNDQADQCAAIAJBBGsi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AmogASACQf////8Hc0obIQELIAAgA0EBajYCACABIQIgAywAARCvAQ0ACyABC7YEAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAFBCWsOEgABAgUDBAYHCAkKCwwNDg8QERILIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAiADEQcACwuDAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBaciAgRAA0AgAUEBayIBIAIgAkEKbiIDQQpsa0EwcjoAACACQQlLIQQgAyECIAQNAAsLIAELcgEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgNBgAIgA0GAAkkiAhsQqAEaIAJFBEADQCAAIAVBgAIQtQEgA0GAAmsiA0H/AUsNAAsLIAAgBSADELUBCyAFQYACaiQAC8kYAxJ/AXwCfiMAQbAEayIKJAAgCkEANgIsAkAgAb0iGUIAUwRAQQEhEUH6DSETIAGaIgG9IRkMAQsgBEGAEHEEQEEBIRFB/Q0hEwwBC0GADkH7DSAEQQFxIhEbIRMgEUUhFwsCQCAZQoCAgICAgID4/wCDQoCAgICAgID4/wBRBEAgAEEgIAIgEUEDaiIGIARB//97cRC5ASAAIBMgERC1ASAAQeMQQeMRIAVBIHEiBxtBoQ9BohAgBxsgASABYhtBAxC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQwBCyAKQRBqIRICQAJ/AkAgASAKQSxqELEBIgEgAaAiAUQAAAAAAAAAAGIEQCAKIAooAiwiBkEBazYCLCAFQSByIhVB4QBHDQEMAwsgBUEgciIVQeEARg0CIAooAiwhFEEGIAMgA0EASBsMAQsgCiAGQR1rIhQ2AiwgAUQAAAAAAACwQaIhAUEGIAMgA0EASBsLIQwgCkEwakGgAkEAIBRBAE4baiIPIQcDQCAHAn8gAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxBEAgAasMAQtBAAsiBjYCACAHQQRqIQcgASAGuKFEAAAAAGXNzUGiIgFEAAAAAAAAAABiDQALAkAgFEEATARAIBQhAyAHIQYgDyEIDAELIA8hCCAUIQMDQEEdIAMgA0EdThshAwJAIAdBBGsiBiAISQ0AIAOtIRpCACEZA0AgBiAZQv////8PgyAGNQIAIBqGfCIZIBlCgJTr3AOAIhlCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgGaciBkUNACAIQQRrIgggBjYCAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyAKIAooAiwgA2siAzYCLCAGIQcgA0EASg0ACwsgA0EASARAIAxBGWpBCW5BAWohECAVQeYARiEWA0BBCUEAIANrIgcgB0EJThshCwJAIAYgCE0EQCAIKAIAIQcMAQtBgJTr3AMgC3YhDUF/IAt0QX9zIQ5BACEDIAghBwNAIAcgBygCACIJIAt2IANqNgIAIAkgDnEgDWwhAyAHQQRqIgcgBkkNAAsgCCgCACEHIANFDQAgBiADNgIAIAZBBGohBgsgCiAKKAIsIAtqIgM2AiwgDyAIIAdFQQJ0aiIIIBYbIgcgEEECdGogBiAGIAdrQQJ1IBBKGyEGIANBAEgNAAsLQQAhAwJAIAYgCE0NACAPIAhrQQJ1QQlsIQNBCiEHIAgoAgAiCUEKSQ0AA0AgA0EBaiEDIAkgB0EKbCIHTw0ACwsgDCADQQAgFUHmAEcbayAVQecARiAMQQBHcWsiByAGIA9rQQJ1QQlsQQlrSARAQQRBpAIgFEEASBsgCmogB0GAyABqIglBCW0iDUECdGpB0B9rIQtBCiEHIAkgDUEJbGsiCUEHTARAA0AgB0EKbCEHIAlBAWoiCUEIRw0ACwsCQCALKAIAIgkgCSAHbiIQIAdsayINRSALQQRqIg4gBkZxDQACQCAQQQFxRQRARAAAAAAAAEBDIQEgB0GAlOvcA0cNASAIIAtPDQEgC0EEay0AAEEBcUUNAQtEAQAAAAAAQEMhAQtEAAAAAAAA4D9EAAAAAAAA8D9EAAAAAAAA+D8gBiAORhtEAAAAAAAA+D8gDSAHQQF2Ig5GGyANIA5JGyEYAkAgFw0AIBMtAABBLUcNACAYmiEYIAGaIQELIAsgCSANayIJNgIAIAEgGKAgAWENACALIAcgCWoiBzYCACAHQYCU69wDTwRAA0AgC0EANgIAIAggC0EEayILSwRAIAhBBGsiCEEANgIACyALIAsoAgBBAWoiBzYCACAHQf+T69wDSw0ACwsgDyAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAtBBGoiByAGIAYgB0sbIQYLA0AgBiIHIAhNIglFBEAgB0EEayIGKAIARQ0BCwsCQCAVQecARwRAIARBCHEhCwwBCyADQX9zQX8gDEEBIAwbIgYgA0ogA0F7SnEiCxsgBmohDEF/QX4gCxsgBWohBSAEQQhxIgsNAEF3IQYCQCAJDQAgB0EEaygCACILRQ0AQQohCUEAIQYgC0EKcA0AA0AgBiINQQFqIQYgCyAJQQpsIglwRQ0ACyANQX9zIQYLIAcgD2tBAnVBCWwhCSAFQV9xQcYARgRAQQAhCyAMIAYgCWpBCWsiBkEAIAZBAEobIgYgBiAMShshDAwBC0EAIQsgDCADIAlqIAZqQQlrIgZBACAGQQBKGyIGIAYgDEobIQwLQX8hCSAMQf3///8HQf7///8HIAsgDHIiDRtKDQEgDCANQQBHakEBaiEOAkAgBUFfcSIWQcYARgRAIAMgDkH/////B3NKDQMgA0EAIANBAEobIQYMAQsgEiADIANBH3UiBnMgBmutIBIQuAEiBmtBAUwEQANAIAZBAWsiBkEwOgAAIBIgBmtBAkgNAAsLIAZBAmsiECAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBIgEGsiBiAOQf////8Hc0oNAgsgBiAOaiIGIBFB/////wdzSg0BIABBICACIAYgEWoiDiAEELkBIAAgEyARELUBIABBMCACIA4gBEGAgARzELkBAkACQAJAIBZBxgBGBEAgCkEQakEIciELIApBEGpBCXIhAyAPIAggCCAPSxsiCSEIA0AgCDUCACADELgBIQYCQCAIIAlHBEAgBiAKQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiAKQRBqSw0ACwwBCyADIAZHDQAgCkEwOgAYIAshBgsgACAGIAMgBmsQtQEgCEEEaiIIIA9NDQALIA0EQCAAQawSQQEQtQELIAcgCE0NASAMQQBMDQEDQCAINQIAIAMQuAEiBiAKQRBqSwRAA0AgBkEBayIGQTA6AAAgBiAKQRBqSw0ACwsgACAGQQkgDCAMQQlOGxC1ASAMQQlrIQYgCEEEaiIIIAdPDQMgDEEJSiEJIAYhDCAJDQALDAILAkAgDEEASA0AIAcgCEEEaiAHIAhLGyENIApBEGpBCHIhDyAKQRBqQQlyIQMgCCEHA0AgAyAHNQIAIAMQuAEiBkYEQCAKQTA6ABggDyEGCwJAIAcgCEcEQCAGIApBEGpNDQEDQCAGQQFrIgZBMDoAACAGIApBEGpLDQALDAELIAAgBkEBELUBIAZBAWohBiALIAxyRQ0AIABBrBJBARC1AQsgACAGIAwgAyAGayIJIAkgDEobELUBIAwgCWshDCAHQQRqIgcgDU8NASAMQQBODQALCyAAQTAgDEESakESQQAQuQEgACAQIBIgEGsQtQEMAgsgDCEGCyAAQTAgBkEJakEJQQAQuQELIABBICACIA4gBEGAwABzELkBIA4gAiACIA5IGyEJDAELIBMgBUEadEEfdUEJcWohDgJAIANBC0sNAEEMIANrIQZEAAAAAAAAMEAhGANAIBhEAAAAAAAAMECiIRggBkEBayIGDQALIA4tAABBLUYEQCAYIAGaIBihoJohAQwBCyABIBigIBihIQELIBIgCigCLCIGIAZBH3UiBnMgBmutIBIQuAEiBkYEQCAKQTA6AA8gCkEPaiEGCyARQQJyIQsgBUEgcSEIIAooAiwhByAGQQJrIg0gBUEPajoAACAGQQFrQS1BKyAHQQBIGzoAACAEQQhxIQkgCkEQaiEHA0AgByIGAn8gAZlEAAAAAAAA4EFjBEAgAaoMAQtBgICAgHgLIgdB4JURai0AACAIcjoAACABIAe3oUQAAAAAAAAwQKIhAQJAIAZBAWoiByAKQRBqa0EBRw0AAkAgCQ0AIANBAEoNACABRAAAAAAAAAAAYQ0BCyAGQS46AAEgBkECaiEHCyABRAAAAAAAAAAAYg0AC0F/IQlB/f///wcgCyASIA1rIhBqIgZrIANIDQAgAEEgIAICfwJAIANFDQAgByAKQRBqayIIQQJrIANODQAgA0ECagwBCyAHIApBEGprIggLIgcgBmoiBiAEELkBIAAgDiALELUBIABBMCACIAYgBEGAgARzELkBIAAgCkEQaiAIELUBIABBMCAHIAhrQQBBABC5ASAAIA0gEBC1ASAAQSAgAiAGIARBgMAAcxC5ASAGIAIgAiAGSBshCQsgCkGwBGokACAJC40FAgZ+An8gASABKAIAQQdqQXhxIgFBEGo2AgAgACABKQMAIQQgASkDCCEFIwBBIGsiACQAAkAgBUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCAFQgSGIARCPIiEIQMgBEL//////////w+DIgRCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAEQoCAgICAgICACFINASACIANCAYN8IQIMAQsgBFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCAFQgSGIARCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgFBkfcASQ0AIABBEGohCSAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAkgAjcDACAJIAY3AwgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiA0I8iIQhAiAAKQMQIAApAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvzkDAAugAQECfyMAQaABayIEJABBfyEFIAQgAUEBa0EAIAEbNgKUASAEIAAgBEGeAWogARsiADYCkAEgBEEAQZABEKgBIgRBfzYCTCAEQRA2AiQgBEF/NgJQIAQgBEGfAWo2AiwgBCAEQZABajYCVAJAIAFBAEgEQEHoyhJBPTYCAAwBCyAAQQA6AAAgBCACIANBDkEPELMBIQULIARBoAFqJAAgBQurAQEEfyAAKAJUIgMoAgQiBSAAKAIUIAAoAhwiBmsiBCAEIAVLGyIEBEAgAygCACAGIAQQpgEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQpgEaIAMgAygCACAFaiIENgIAIAMgAygCBCAFazYCBAsgBEEAOgAAIAAgACgCLCIDNgIcIAAgAzYCFCACCxYAIABFBEBBAA8LQejKEiAANgIAQX8LogIAIABFBEBBAA8LAn8CQCAABH8gAUH/AE0NAQJAQfzLEigCACgCAEUEQCABQYB/cUGAvwNGDQNB6MoSQRk2AgAMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYBAcUGAwANHIAFBgLADT3FFBEAgACABQT9xQYABcjoAAiAAIAFBDHZB4AFyOgAAIAAgAUEGdkE/cUGAAXI6AAFBAwwECyABQYCABGtB//8/TQRAIAAgAUE/cUGAAXI6AAMgACABQRJ2QfABcjoAACAAIAFBBnZBP3FBgAFyOgACIAAgAUEMdkE/cUGAAXI6AAFBBAwEC0HoyhJBGTYCAAtBfwVBAQsMAQsgACABOgAAQQELCwcAIAAQywELBwAgABDMAQu9BQEJfyMAQRBrIggkACAIQZjMEjYCAEGUzBIoAgAhByMAQYABayIBJAAgASAINgJcAkAgB0GhfkcgB0HcAWpBBk9xRQRAIAEgASgCXCICQQRqNgJcAn9BACACKAIAIgAoAgQiAkUNABogACgCCCEEIAAoAgAiBigCDEECTgRAA0ACQCACIARPDQACfyACIAQgBigCFBEAACIAQYABTwRAAkAgAEGAgARJDQAgA0ERSg0AIAEgAEEYdjYCMCABQeAAaiADaiIFQQVBqzIgAUEwahCpASABIABBEHZB/wFxNgIgIAVBBGpBA0GmMiABQSBqEKkBIAEgAEEIdkH/AXE2AhAgBUEGakEDQaYyIAFBEGoQqQEgASAAQf8BcTYCACAFQQhqQQNBpjIgARCpASADQQpqDAILIANBFUoNAiABIABBCHZB/wFxNgJQIAFB4ABqIANqIgVBBUGrMiABQdAAahCpASABIABB/wFxNgJAIAVBBGpBA0GmMiABQUBrEKkBIANBBmoMAQsgAUHgAGogA2ogADoAACADQQFqCyEDIAIgBigCABEBACACaiECIANBG0gNAQsLIAIgBEkMAQsgAUHgAGogAkEbIAQgAmsiACAAQRtOGyIDEKYBGiAAQRtKCyEFIAcQigEhAkGwzBIhAANAAkACQCACLQAAIgRBJUcEQCAERQ0BDAILIAJBAWohBiACLQABIgRB7gBHBEAgBiECDAILIAAgAUHgAGogAxCmASADaiEAIAUEQCAAQaIyLwAAOwAAIABBpDItAAA6AAIgAEEDaiEACyAGQQFqIQIMAgsgAEEAOgAADAMLIAAgBDoAACAAQQFqIQAgAkEBaiECDAALAAtBlL0SIAcQigEiABB6IQJBsMwSIAAgAhCmASACakEAOgAACyABQYABaiQAIAhBEGokAEGwzBIL4wEBAX8CQAJAAkACfyAALQAQBEBBACEBIABBDGogACgCCCACIAIgA2oiBiACIARqIAYgACgCDCAFEG1BAE4NARpBACEGDAMLAkAgACgCFCABRw0AIAAoAhwgBUcNACAAKAIYIARKDQAgAC0AIEUEQEEADwsgACgCDCIGKAIIKAIAIARODQQLIAAgBTYCHCAAIAQ2AhggACABNgIUQQAhASAAKAIIIAIgAiADaiIGIAIgBGogBiAAKAIMIAUQbUEASA0BIABBDGoLKAIAIQZBASEBDAELQQAhBgsgACABOgAgCyAGC7gzARp/IwBBEGsiGCQAIAJBAnQiChDLASEbIAoQywEhGSACQQBKBEADQCAbIA1BAnQiCmogACAKaigCACEVIAEgCmooAgAhE0EAIQVBACEWQQAhFCMAQRBrIhokAEGUzBICf0HolxEoAgAhCCAaQQxqIhdBAUGIAxDPASIDNgIAQXsgA0UNABogEyAVaiEGQYyaESgCACEJAkACQAJAAkBB7L8SLQAARQRAQYjAEi0AAEUEQEGIwBJBAToAAAtB7L8SQQE6AABBaSEQAkACQEG4vhItAABBAXFFDQBB1L0SKAIAIgdFDQACQEGMwBIoAgAiBEEATA0AA0AgBUEDdEGQwBJqKAIAQZS9EkcEQCAFQQFqIgUgBEcNAQwCCwsgBUEDdEGQwBJqKAIEDQELIAcRCgAiBA0BQYzAEigCACIEQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQZS9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgBEcNAAsgBEESSg0BC0GMwBIgBEEBajYCACAEQQN0QZDAEmoiBUEBNgIEIAVBlL0SNgIACwJAQay+EigCACIHRQ0AAkBBjMASKAIAIgRBAEwNAEEAIQUDQCAFQQN0QZDAEmooAgBB7L0SRwRAIAVBAWoiBSAERw0BDAILC0EAIQQgBUEDdEGQwBJqKAIEDQILIAcRCgAiBA0BQYzAEigCACIHQQBKBEBBACEFA0AgBUEDdEGQwBJqKAIAQey9EkYEQCAFQQN0QZDAEmpBATYCBAwDCyAFQQFqIgUgB0cNAAtBACEEIAdBEkoNAgtBjMASIAdBAWo2AgAgB0EDdEGQwBJqIgVBATYCBCAFQey9EjYCAAtBACEECyAEDQFB7JcRKAIAIhBBAUcEQEGQCSAQEQQACwsMAQsgFygCABDMAQwBCyAIKAIMIQVBACEQIANBADYChAMgA0EANgJwIAMgCDYCTCADQey9EjYCRCADQgA3AlQgA0EANgIQIANCADcCCCADQQA2AgAgAyAFQYACciIINgJIIAMgCUH+/7//e3FBAXIgCSAIQYCAAnEbNgJQIBcoAgAhBCAVIQUgBiEDIwBBkAVrIggkACAIQQA2AhAgCEIANwMIAkACQAJAAkAgBCgCEEUEQCAEKAIAQaABEM0BIglFDQEgBCAJNgIAIAQoAgRBIBDNASIJRQ0BIARBCDYCECAEQQA2AgggBCAJNgIECyAEQQA2AgwgCEG8AWohEiAIQQhqIQwjAEEQayIJJAAgCUEANgIMIAQoAkQhC0GczBJBADYCAEGYzBIgCzYCACAJQQxqIREgCEEYaiIHIQYjAEFAaiILJAAgBEIANwIUIARCADcCPCAEQgA3AhwgBEEANgIkIAQoAlQiDwRAIA9BAkEAEJEBCyAGQgA3AiQgBkEANgIYIAZCADcCECAGQTBqQQBB9AAQqAEaIAYgBCgCSDYCACAGIAQoAlA2AgQgBiAEKAJENgIIIAQoAkwhDyAGIAQ2AiwgBiADNgIgIAYgBTYCHCAGIA82AgwgEUEANgIAAkAgBSADIAYoAggoAkgRAABFBEBB8HwhBQwBCyALIAU2AgwgC0EANgIUIAtBEGogC0EMaiADIAYQGiIFQQBIDQAgESALQRBqQQAgC0EMaiADIAZBABAbIgNBAEgEQCADQR91IANxIQUMAQsCQCAGLQCgAUEBcUUEQCAGKAI0IQUMAQsgESgCACEFQQFBOBDPASIDRQRAQXshBQwCCyADQQU2AgAgAyAFNgIMIANC/////x83AhggBigCNCIFQQBIBEAgAxARIAMQzAFBdSEFDAILIAYoAoABIg8gBkFAayAPGyADNgIAIBEgAzYCAAsgBCAFNgIcQQAhBSAEKAKEAyIORQ0AIA4oAgwiA0EATA0AIA4oAggiBgRAIAZBBSAOEJEBIA4oAgwiA0EATA0BCwNAAkAgDigCFCAWQdwAbGoiBigCBEEBRw0AIAYoAiQiBUEATA0AIAZBJGohA0EAIQYDQCADIAZBAnRqKAIIQRBGBEACQAJAIAQoAoQDIgVFDQAgBSgCCCIFRQ0AIAMgBkEDdGoiEUEYaiIcKAIAIQ8gCyARKAIcNgIUIAsgDzYCECAFIAtBEGogC0E8ahCPAQ0BC0GZfiEFDAULIAsoAjwiBUEASA0EIBwgBTYCACADKAIAIQULIAZBAWoiBiAFSA0ACyAOKAIMIQMLQQAhBSAWQQFqIhYgA0gNAAsLIAtBQGskAAJAAkAgBSIGDQACQCAHLQCgAUECcUUNAEEAIQUgCUEMaiEDQYh/IQYDQCADKAIAIgMoAgAiC0EHRwRAIAtBBUcNAyADKAIQQQFHDQMgAy0AB0EQcUUNAyAFQQFHDQIgAygCDA0DBUEBIAUgAygCEBshBSADQQxqIQMMAQsLCyAJKAIMIAQoAkQQQyIGDQACQCAHKAI4IgNBAEwNACAHKAIMLQAIQYABcUUNACAELQBJQQFxDQACfyAHKAI0IANHBEAgCUEMaiEGIAQhBSMAQRBrIgMhFiADJAAgAyAHKAI0IgtBAnQiDkETakFwcWsiDyQAIAtBAEoEQCAPQQRqQQAgDhCoARoLIBZBADYCDAJAIAYgDyAWQQxqEFUiA0EASA0AIAYoAgAgDxBWIgMNACAHKAI0Ig5BAEoEQCAHQUBrIRFBASELQQEhAwNAIA8gA0ECdGooAgBBAEoEQCAHKAKAASIGIBEgBhsiBiALQQN0aiAGIANBA3RqKQIANwIAIAcoAjQhDiALQQFqIQsLIAMgDkghBiADQQFqIQMgBg0ACwsgBygCECERQQAhDiAHQQA2AhBBASEDA0ACQCARIAN2IgZBAXFFDQAgDyADQQJ0aigCACILQR9KDQAgByAOQQEgC3RyIg42AhALIANBAWoiC0EgRwRAAkAgBkECcUUNACAPIAtBAnRqKAIAIgZBH0oNACAHIA5BASAGdHIiDjYCEAsgA0ECaiEDDAELCyAHIAcoAjgiAzYCNCAFIAM2AhwgBSgCVCIFBEAgBUEDIA8QkQELQQAhAwsgFkEQaiQAIAMMAQsgCSgCDBBECyIGDQELIAkoAgwgBxBFIgYNAAJAIAQgBygCMCIDQQBKBH8gA0EDdBDLASIFRQRAQXshBgwDCyAMIAU2AgggDCADNgIEIAxBADYCACAHIAw2ApgBIAkoAgwgB0EAEEYiBg0BIAkoAgwQRyAJKAIMIAdBABBIIgZBAEgNASAJKAIMIAcQSSIGDQEgCSgCDEEAEEogBygCMAUgAws2AiggCSgCDCAEQQAgBxBLIgYNACAHKAKEAQRAIAkoAgxBABBMIAkoAgxBACAHEE0gCSgCDCAHEE4LQQAhBiAJKAIMIQMMAgsgBygCMEEATA0AIAwoAggiA0UNACADEMwBCyAHKAIkIgMEQEGczBIgAzYCAEGgzBIgBygCKDYCAAsgCSgCDBAQQQAhAyAHKAKAASIFRQ0AIAUQzAELIBIgAzYCACAJQRBqJAAgBiIDDQMgBCAIKAIoIgU2AiwgBCAFIAgoAiwiB3IiAzYCMCAEKAKEAyIJBEAgCSgCDA0DCyAIKAIwIQkgA0EBcUUNASAFIAlyIQMMAgtBeyEDIAQoAkQhBEGczBJBADYCAEGYzBIgBDYCAAwCCyAHIAlxIAVyIQMLIARBADYC+AIgBEEANgJ0IAQgAzYCNCAEQgA3AlggBEIANwJgIARCADcCaCAEKAJwIgMEQCADEMwBIARBADYCcAsgCCgCvAEhDiAIIAQoAkQ2AsgBIAggBCgCUDYCzAEgCEIANwPAASAIIAhBGGo2AtABAkACQAJ/AkACQAJAIA4gCEHYAWogCEHAAWoQQCIDRQRAIARB1IABQdSAAyAIKALgASIFQQZxGyAFcSAIKALkASIDQYIDcXI2AmAgA0GAA3EEQCAEIAgoAtgBNgJkIAQgCCgC3AE2AmgLIAgoAvwBQQBMBEAgCCgCrAJBAEwNAgsgBCgCRCIHIAhB6AFqIAhBmAJqEEECQCAIKAKIAyIFQQBMBEAgCCgC/AEhAwwBC0HIASAFbiEJIAgoAvwBIQMgBUHIAUsNACADQTxsIgxBAEwNA0EAIQUCf0EAIAgoAuwBIhJBf0YNABpBASASIAgoAugBayISQeMASw0AGiASQQF0QbAZai4BAAsgDGwhBgJAIAgoAvwCIgxBf0YNAEEBIQUgDCAIKAL4AmsiDEHjAEsNACAMQQF0QbAZai4BACEFCyAFIAlsIgUgBkoNAyAFIAZIDQAgCCgC+AIgCCgC6AFJDQMLAkAgA0UEQEEAIQNBASEJDAELIAQgAxDLASIFNgJwQQAhCSAFRQRAQXshAwwBCyAEIAUgCEGAAmogAxCmASIFIANqIgM2AnRBASEGIAUgAyAHKAI8EQAAIQ8CQCAIKAL8ASIDQQFMBEAgA0EBRw0BIA9FDQELIAQoAnQhCyAEKAJwIQcgBCgCRCIRKAJMQQJ2QQdxIgVBB0YEQCAHIQMDQCADIAMgESgCABEBACIFaiIDIAtJDQALIAVBAUYhBQtBdSEDIAUgCyAHa2oiBkH+AUoNASAEIAU2AvgCIARB+ABqIAZBgAIQqAEhEiAHIAtJBEAgBSALakEBayEMA0BBACEDAkAgCyAHayAHIBEoAgARAQAiBSAFIAdqIAtLGyIGQQBMDQADQCAMIAMgB2oiBWsiCUEATA0BIBIgBS0AAGogCToAACADQQFqIgMgBkgNAAsLIAYgB2oiByALSQ0ACwtBAkEDIA8bIQYLIAQgBjYCWCAEIAgoAugBIgU2AvwCIAQgCCgC7AE2AoADQQAhA0EBIQkgBUF/Rg0AIAQgBSAEKAJ0aiAEKAJwazYCXAsgBCAIKAL0AUGABHEgBCgCbCAIKALwAUEgcXJyNgJsIAkNBQsgCCgCSEEATA0FIAgoAhAiBEUNBSAEEMwBDAULIAgoAogDQQBMDQELIARB+ABqIAhBjANqQYACEKYBGiAEQQQ2AlggBCAIKAL4AiIDNgL8AiAEIAgoAvwCNgKAAyADQX9HBEAgBCAEKAJEKAIMIANqNgJcCyAEKAJsIAgoAoADQSBxciEFIAgoAoQDIQMgBEHsAGoMAQsgBCAEKAJsIAVBIHFyIgU2AmwgCCgC3AENASAEQewAagsgBSADQYAEcXI2AgALIAgoApgBIgMEQCADEMwBIAhBADYCmAELAkACQAJAIA4gBCAIQRhqEEIiA0UEQCAIKAKgAUEASgRAAkAgBCgCDCIDIAQoAhAiBUkNACAFRQ0AIAVBAXQiCUEATARAQXUhAwwHC0F7IQMgBCgCACAFQShsEM0BIgdFDQYgBCAHNgIAIAQoAgQgBUEDdBDNASIFRQ0GIAQgCTYCECAEIAU2AgQgBCgCDCEDCyAEIANBAWo2AgwgBCAEKAIAIANBFGxqIgM2AgggA0EANgIQIANCADcCCCADQgA3AgAgBCgCBCAEKAIIIAQoAgBrQRRtQQJ0akHPADYCACAEKAIIQQA2AgQgBCgCCEEANgIIIAQoAghBADYCDAsCQCAEKAIMIgMgBCgCECIFSQ0AIAVFDQAgBUEBdCIJQQBMBEBBdSEDDAYLQXshAyAEKAIAIAVBKGwQzQEiB0UNBSAEIAc2AgAgBCgCBCAFQQN0EM0BIgVFDQUgBCAJNgIQIAQgBTYCBCAEKAIMIQMLIAQgA0EBajYCDCAEIAQoAgAgA0EUbGoiAzYCCCADQQA2AhAgA0IANwIIIANCADcCACAEKAIEIAQoAgggBCgCAGtBFG1BAnRqQQE2AgAgCCgCSEEASgRAAn9BACEFIAhBCGoiDCgCACILQQBKBEAgDCgCCCEDA0ACQCADIAVBA3RqIgcoAgQiCSgCBCIGQYACcUUEQCAGQYABcUUNAUF1DAQLIAQoAgAgBygCAGogCSgCGDYCACAMKAIAIQsLIAVBAWoiBSALSA0ACwtBAAshAyAIKAIQIgUEQCAFEMwBCyADDQULAn9BACEHAkAgBCgCDCIDIAQoAhBGDQBBdSADQQBMDQEaQXshByAEKAIAIANBFGwQzQEiBUUNACAEIAU2AgAgBCgCBCADQQJ0EM0BIgVFDQAgBCADNgIQIAQgBTYCBEEAIQcgBCAEKAIMIgUEfyAEKAIAIAVBFGxqQRRrBUEACzYCCAsgBwsiAw0EIAQoAiBBAEoEQEEAIQMDQCAEKAJAIANBDGxqIgUgBCgCACAFKAIIQRRsajYCCCADQQFqIgMgBCgCIEgNAAsLAkAgBCgCNA0AIAQoAoQDIgMEQCADKAIMDQEgCCgCSEEASg0BDAMLIAgoAkhBAEwNAgsgBEECNgI4DAILIAgoAkhBAEwNAiAIKAIQIgVFDQIgBRDMAQwCCyAEKAIwBEAgBEEBNgI4DAELIARBADYCOAsCf0EAIQdBACEGAkAgBCgCACIMRQ0AIAQoAgwiCUEATA0AIAQoAgQhBQNAAkACQAJAAkAgBSAHQQJ0aigCAEEHaw4HAQMDAwECAAMLIAwgB0EUbGoiAygCCCADKAIMbCAGaiEGDAILIAwgB0EUbGooAghBAXQgBmohBgwBCyAMIAdBFGxqKAIIQQNsIAZqIQYLIAdBAWoiByAJRw0ACyAGQQBKBEBBeyAGEMsBIgNFDQIaQQAhByADIQUDQCAEKAIAIQkCQCAFAn8CQAJAAkACQAJAIAQoAgQgB0ECdGooAgBBB2sOBwAGBgYBAgMGCyAJIAdBFGxqKAIIIQwMAwsgCSAHQRRsaigCCEEBdCEMDAILIAkgB0EUbGooAghBA2whDAwBCyAJIAdBFGxqIgkoAgggCSgCDGwhDCAJQQRqDAELIAkgB0EUbGpBBGoLIgkoAgAgDBCmASEFIAkoAgAQzAEgCSAFNgIAIAUgDGohBQsgB0EBaiIHIAQoAgxIDQALIAQgAzYCFCAEIAMgBmo2AhgLC0EACyIDDQFBACEDCyAOEBBBACELQQAhEgJAIAQoAgwiBUUNACAFQQNxIQYgBCgCBCEHIAQoAgAhBAJAIAVBAWtBA0kEQEEAIQUMAQsgBUF8cSEMQQAhBQNAIAQgByAFQQJ0IglqKAIAQQJ0QYAdaigCADYCACAEIAcgCUEEcmooAgBBAnRBgB1qKAIANgIUIAQgByAJQQhyaigCAEECdEGAHWooAgA2AiggBCAHIAlBDHJqKAIAQQJ0QYAdaigCADYCPCAFQQRqIQUgBEHQAGohBCALQQRqIgsgDEcNAAsLIAZFDQADQCAEIAcgBUECdGooAgBBAnRBgB1qKAIANgIAIAVBAWohBSAEQRRqIQQgEkEBaiISIAZHDQALCwwBCyAIKAI8IgQEQEGczBIgBDYCAEGgzBIgCCgCQDYCAAsgDhAQIAgoApgBIgRFDQAgBBDMAQsgCEGQBWokACADRQ0BIBcoAgAiCARAIAgQPyAIEMwBCyADIRALIBdBADYCAAsgEAsiAzYCACADRQRAQSQQywEiFCATNgIEIBQgExDLASIDNgIAIAMgFSATEKYBGiAUIBooAgw2AghBFBDLASIQBEAgEEIANwIAIBBBADYCECAQQgA3AggLIBQgEDYCDEEBIQVBACEDAkAgE0EATARAQQAhBQwBCwNAIAMiEEEBaiEDAkAgECAVai0AAEHcAEcNACADIBNODQAgAyAVai0AAEHHAEYNAgsgAyATSCEFIAMgE0cNAAsLIBRCADcCFCAUIAU6ABAgFEIANwAZCyAaQRBqJAAgFCIDNgIAIAogGWogAygCCDYCACANQQFqIg0gAkcNAAsLIAIhASAZIQAgGEEMaiIVQQA2AgACQAJAQSQQywEiCgR/QQogASABQQpMGyIFQQN0EMsBIgRFDQEgCiAFNgIIQQAhBSAKQQA2AgQgCiAENgIAIAFBAEoEQANAAn9BYiEDAkAgACAFQQJ0aigCACINLQBIQRBxDQAgCigCBCIGBEAgDSgCRCAKKAIMRw0BCyAKKAIIIgMgBkwEQEF7IAooAgAgA0EEdBDNASIGRQ0CGiAKIAY2AgAgCiADQQF0NgIIC0F7QRQQywEiA0UNARogA0IANwIAIANBADYCECADQgA3AgggCigCACAKKAIEIgZBA3RqIhAgAzYCBCAQIA02AgAgCiAGQQFqNgIEAkAgBkUEQCAKIA0oAkQ2AgwgCiANKAJgIgM2AhAgCiANKAJkNgIUIAogDSgCaDYCGCAKIA0oAlgEfyANKAKAA0F/RwVBAAs2AhwgA0EOdkEBcSENDAELIA0oAmAiBiAKKAIQcSIDBEAgDSgCZCEQIAogCigCGCIHIA0oAmgiBCAEIAdJGzYCGCAKIAooAhQiByAQIAcgEEkbNgIUCyAKIAM2AhACQCANKAJYBEAgDSgCgANBf0cNAQsgCkEANgIcC0EBIQ1BACEDIAZBgIABcUUNAQsgCiANNgIgQQAhAwsgAwsEQCAKKAIEIgBBAEoEQEEAIQEDQCAKKAIAIAFBA3RqKAIEIgUEQCAFKAIAQQBKBEAgBSgCCCIABEAgABDMAQsgBSgCDCIABEAgABDMAQsgBUEANgIACyAFKAIQIgAEQCAAEGYLIAUQzAEgCigCBCEACyABQQFqIgEgAEgNAAsLIAooAgAQzAEMBAsgBUEBaiIFIAFIDQALCyAVIAo2AgBBAAVBewsaDAELIAoQzAELIBkQzAFBDBDLASEKIBgoAgwhDSAKIAI2AgggCiAbNgIEIAogDTYCACAYQRBqJAAgCgu/AgEEfyAAKAIIQQBKBEADQCAAKAIEIANBAnRqKAIAIgQoAgAQzAEgBCgCDCIBBEAgASgCAEEASgRAIAEoAggiAgRAIAIQzAELIAEoAgwiAgRAIAIQzAELIAFBADYCAAsgASgCECICBEAgAhBmIAFBADYCEAsgARDMAQsgBBDMASADQQFqIgMgACgCCEgNAAsLIAAoAgQQzAFBACEEIAAoAgAiAygCBEEASgRAA0AgAygCACAEQQN0aiIBKAIEIQIgASgCACIBBEAgARA/IAEQzAELIAIEQCACKAIAQQBKBEAgAigCCCIBBEAgARDMAQsgAigCDCIBBEAgARDMAQsgAkEANgIACyACKAIQIgEEQCABEGYLIAIQzAELIARBAWoiBCADKAIESA0ACwsgAygCABDMASADEMwBIAAQzAFBAAvKHQETfyMAQRBrIhUkACAVQQA2AgwgBUEWdEGAgIAOcSEQAkACQCADQegHTgRAIAAoAghBAEwNAkEAIQUDQAJAIAAoAgQgBUECdGooAgAgASACIAMgBCAQEMMBIgZFDQAgBigCBEEATA0AIAUgESAMRSAGKAIIKAIAIhQgE0hyIggbIREgBiAMIAgbIQwgBCAURg0DIBQgEyAIGyETCyAFQQFqIgUgACgCCEgNAAsgDA0BQQAhEwwCCwJ/IAIgA2ohBUEAIQNBeyAAKAIAIgsoAgQiAUEobBDLASIRRQ0AGiACIARqIQogFUEMaiEWIBEgAUECdGohFAJAIAFBAEwNACABQQFxIQdBhMASKAIAIQRBgMASKAIAIQZB+L8SKAIAIQxBkJoRKAIAIQhB9L8SKAIAIQkgAUEBRwRAIAFBfnEhDQNAIBQgA0EkbGoiAUEANgIgIAFCADcCGCABIAQ2AhQgASAGNgIQIAFBADYCDCABIAw2AgggASAINgIEIAEgCTYCACARIANBAnRqIAE2AgAgFCADQQFyIg5BJGxqIgFBADYCICABQgA3AhggASAENgIUIAEgBjYCECABQQA2AgwgASAMNgIIIAEgCDYCBCABIAk2AgAgESAOQQJ0aiABNgIAIANBAmohAyAPQQJqIg8gDUcNAAsLIAdFDQAgFCADQSRsaiIBQQA2AiAgAUIANwIYIAEgBDYCFCABIAY2AhAgAUEANgIMIAEgDDYCCCABIAg2AgQgASAJNgIAIBEgA0ECdGogATYCAAsCfyACIQMgCiEBIAUhDCARIQlBACEOQX8gCygCBCIGRQ0AGkFiIQoCQCAQQYCQgBBxDQAgCygCDCESIAZBAEoEQANAIAsoAgAgDkEDdGoiBigCBCEHIAYoAgAiCigChAMhBiAJIA5BAnRqKAIAIghBADYCGAJAIAZFDQAgBigCDCINRQ0AAkAgCCgCICIPIA1OBEAgCCgCHCENDAELIA1BBnQhDUF7An8gCCgCHCIPBEAgDyANEM0BDAELIA0QywELIg1FDQUaIAggDTYCHCAIIAYoAgwiDzYCIAsgDUEAIA9BBnQQqAEaCwJAIAdFDQAgByAKKAIcQQFqEGciCg0DIAcoAgRBAEoEQCAHKAIIIQogBygCDCENQQAhBgNAIA0gBkECdCIIakF/NgIAIAggCmpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAOQQFqIg4gCygCBEgNAAsLQX8gASAFSw0BGkF/IAEgA0kNARogAyAFTyIGRQRAQWIhCiABIAxLDQELAkAgEEGAIHFFDQAgAyAFIBIoAkgRAAANAEHwfAwCCwJAAkACQAJAAkACQAJAAkACQCAGDQAgCygCECIGRQ0AIAZBwABxDQQgBkEQcQRAQX8hCiABIANHDQogAUEBaiEEIAEhAgwGCyAFIQggBkGAAXENAyAGQYACcUUNASASIAMgBUEBEHkiBiAFIAYgBSASKAIQEQAAIgcbIQggAyAGSSABIAZNcQ0DIAwhBCABIQIgB0UNAwwFCyAMIQQgASECIAMgBUcNBEF7IAsoAgQiDkE4bBDLASIPRQ0JGiAOQQBMBEBBfyEKDAYLIAsoAgAhAUEAIQgDQCABIAhBA3RqIgcoAgAhCiAPIAhBOGxqIgZBADYCACAGIAooAkggEHI2AgggBygCBCEHIAYgBTYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsMAQsgDCEEIAEhAiAGQYCAAnENAgwDC0EAIQogDkEATARAQX8hCgwECwJAA0AgCygCACAKQQN0aigCACIGKAJcRQRAIAYgBSAFIAUgBSAPIApBOGxqEGgiBkF/Rw0CIAsoAgQhDgsgCkEBaiIKIA5IDQALQX8hCgwECyAGQQBIBEAgBiEKDAQLIBZBADYCAAwEC0F/IAsoAhQiBiAFIANrSw0GGgJAIAsoAhgiByAIIAFrTwRAIAEhAgwBCyAIIAdrIgIgBU8NACASIAMgAhB3IQIgCygCFCEGC0F/IQogAiAFIAZrQQFqIAwgBSAMa0EBaiAGSRsiBE0NAQwFCyABQQFqIQQgASECC0F7IAsoAgQiDkE4bBDLASIPRQ0EGiAOQQBKBEAgCygCACESQQAhCANAIA8gCEE4bGoiBkEANgIAIAYgEiAIQQN0aiIHKAIAIgooAkggEHI2AgggBygCBCEHIAYgATYCFCAGIAc2AgwgBiAJIAhBAnRqKAIAIgcoAgA2AhggBiAHKAIENgIcIAcoAgghDSAGQQA2AjQgBkEANgIkIAYgDTYCICAGQX82AiwgBiAHNgIoIAYgCigCHEEBdEECajYCECAIQQFqIgggDkcNAAsLIAMhECAFIQFBACEFIwBBEGsiBiQAIAsoAgwhFwJAIAsoAgQiCEEEdBDLASIHRQRAQXshAwwBCyAIQQBKBEAgASAEayENA0AgCygCACAFQQN0aigCACEJIAcgBUEEdGoiA0EANgIAAkAgCSgCWARAIAkoAoADIgpBf0cEQCAJIBAgASACIAQgCmogASAKIA1JGyIKIAZBDGogBkEIahBrRQ0CIANBATYCACADIAYoAgw2AgQgBigCCCEJIAMgCjYCDCADIAk2AggMAgsgCSAQIAEgAiABIAZBDGogBkEIahBrRQ0BCyADQQI2AgAgAyAENgIIIAMgAjYCBAsgBUEBaiIFIAhHDQALCwJAAkACQAJAIAQgAmtB9QNIDQAgCygCHEUNACAIQQBMIg4NAiAIQX5xIQ0gCEEBcSESIAhBAEohGANAQQAhCUEAIQUDQAJAIAcgBUEEdGoiAygCAEUNACACIAMoAgRJDQACQCADKAIIIAJNBEAgCygCACAFQQN0aigCACAQIAEgAiADKAIMIAZBDGogBkEIahBrRQ0BIAMgBigCDCIKNgIEIAMgBigCCDYCCCACIApJDQILIAsoAgAgBUEDdGooAgAgECABIAwgAiAPIAVBOGxqEGgiA0F/RwRAIANBAEgNBgwICyAJQQFqIQkMAQsgA0EANgIACyAFQQFqIgUgCEcNAAsgAiAETw0DAkAgCUUEQCAODQVBACEFIAQhAkEAIQMgCEEBRwRAA0AgByAFQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgByAFQQFyQQR0aiIJKAIAQQFGBEAgCSgCBCIJIAIgAiAJSxshAgsgBUECaiEFIANBAmoiAyANRw0ACwsCQCASRQ0AIAcgBUEEdGoiBSgCAEEBRw0AIAUoAgQiBSACIAIgBUsbIQILIAYgAjYCDCACIARHDQEMBQsgAiAXKAIAEQEAIAJqIQILIBgNAAsMAgsgCEEATCENQQEhCQNAIA1FBEBBACEFA0ACQAJAAkACQCAHIAVBBHRqIgMoAgAOAgMAAQsgAiADKAIESQ0CIAIgAygCCEkNACALKAIAIAVBA3RqKAIAIBAgASACIAMoAgwgBkEMaiAGQQhqEGtFDQEgAyAGKAIMIgo2AgQgAyAGKAIINgIIIAIgCkkNAgtBACALKAIAIAVBA3RqKAIAIgMtAGFBwABxIAkbDQEgAyAQIAEgDCACIA8gBUE4bGoQaCIDQX9GDQEgA0EATg0HDAULIANBADYCAAsgBUEBaiIFIAhHDQALCyACIARPDQIgCygCIARAIAIgASALKAIMKAIQEQAAIQkLIAIgFygCABEBACACaiECDAALAAsgBxDMAQwCCyAHEMwBQX8hAwwBCyAHEMwBIBYgAiAQazYCACAFIQMLIAZBEGokACADIgpBAE4NAQsgCygCBEEASgRAQQAhCQNAAkAgD0UNACAPIAlBOGxqKAIAIgZFDQAgBhDMAQsCQCALKAIAIAlBA3RqIgYoAgAtAEhBIHFFDQAgBigCBCIHRQ0AIAcoAgRBAEoEQCAHKAIIIQ0gBygCDCEOQQAhBgNAIA4gBkECdCIIakF/NgIAIAggDWpBfzYCACAGQQFqIgYgBygCBEgNAAsLIAcoAhAiBkUNACAGEGYgB0EANgIQCyAJQQFqIgkgCygCBEgNAAsLIA8NAQwCCyALKAIEQQBKBEBBACEJA0ACQCAPRQ0AIA8gCUE4bGooAgAiBkUNACAGEMwBCwJAIAsoAgAgCUEDdGoiBigCAC0ASEEgcUUNACAGKAIEIgdFDQAgBygCBEEASgRAIAcoAgghDSAHKAIMIQ5BACEGA0AgDiAGQQJ0IghqQX82AgAgCCANakF/NgIAIAZBAWoiBiAHKAIESA0ACwsgBygCECIGRQ0AIAYQZiAHQQA2AhALIAlBAWoiCSALKAIESA0ACwsgD0UNAQsgDxDMAQsgCgshDCALKAIEIgNBAEoEQEEAIQEDQCAUIAFBJGxqIgQoAhwiBgRAIAYQzAEgBEEANgIcIAsoAgQhAwsgAUEBaiIBIANIDQALCyAREMwBIAwLIgZBAEgNASAAKAIAIQBBACEBAkAgBkEASA0AIAAoAgQgBkwNACAAKAIAIAZBA3RqKAIEIQELIAEiDEUNASAMKAIEIgBB6AdKDQFBACEFQZTNEiAANgIAQZDNEiAGNgIAQZDNEiETIAwoAgRBAEwNASAMKAIMIQQgDCgCCCEDA0AgBUEDdCIGQZjNEmogAyAFQQJ0IgBqKAIANgIAIAZBnM0SaiAAIARqKAIANgIAIAVBAWoiBSAMKAIESA0ACwwBC0EAIRMgDCgCBCIGQegHSg0AQQAhBUGUzRIgBjYCAEGQzRIgETYCAEGQzRIhEyAMKAIEQQBMDQAgDCgCDCEEIAwoAgghAwNAIAVBA3QiBkGYzRJqIAMgBUECdCIAaigCADYCACAGQZzNEmogACAEaigCADYCACAFQQFqIgUgDCgCBEgNAAsLIBVBEGokACATC8MDAgh/AXwjAEFAaiIGJAAgBiACNgI0IAYgAzYCMEGQlhEgBkEwahDIAQJAIAAoAghBAEwEQBDKAQwBCyAFQRZ0QYCAgA5xIQ1BACEFAkACQANAIAYgBUECdCIHIAAoAgRqKAIAKQIAQiCJNwMgQc6WESAGQSBqEMgBEAEhDiAAKAIEIAdqKAIAIAEgAiADIAQgDRDDASEHEAEgDqEhDgJAAkAgB0UNACAHKAIEQQBMDQAgBiAHKAIIKAIAIgo2AhggBiAOOQMQQYqXESAGQRBqEMkBIAUgCyAIRSAJIApKciIMGyELIAcgCCAMGyEIIAQgCkYNAyAKIAkgDBshCQwBCyAGIA45AwBB8JURIAYQyQELIAVBAWoiBSAAKAIISA0ACxDKASAIDQFBACEJDAILEMoBC0EAIQkgCCgCBCIHQegHSg0AQQAhBUGUzRIgBzYCAEGQzRIgCzYCAEGQzRIhCSAIKAIEQQBMDQAgCCgCDCEKIAgoAgghBANAIAVBA3QiB0GYzRJqIAQgBUECdCIAaigCADYCACAHQZzNEmogACAKaigCADYCACAFQQFqIgUgCCgCBEgNAAsLIAZBQGskACAJCysBAX8jAEEQayICJAAgAiABNgIMQci+EiAAIAFBAEEAELMBGiACQRBqJAALKwEBfyMAQRBrIgIkACACIAE2AgxByL4SIAAgAUEOQQAQswEaIAJBEGokAAueAgECf0GUvxIoAgAaAkBBf0EAAn9B6JYREK0BIgACf0GUvxIoAgBBAEgEQEHolhEgAEHIvhIQsgEMAQtB6JYRIABByL4SELIBCyIBIABGDQAaIAELIABHG0EASA0AAkBBmL8SKAIAQQpGDQBB3L4SKAIAIgBB2L4SKAIARg0AQdy+EiAAQQFqNgIAIABBCjoAAAwBCyMAQRBrIgAkACAAQQo6AA8CQAJAQdi+EigCACIBBH8gAQVByL4SEK4BDQJB2L4SKAIAC0HcvhIoAgAiAUYNAEGYvxIoAgBBCkYNAEHcvhIgAUEBajYCACABQQo6AAAMAQtByL4SIABBD2pBAUHsvhIoAgARAgBBAUcNACAALQAPGgsgAEEQaiQACwugLgELfyMAQRBrIgskAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEHYixMoAgAiBkEQIABBC2pBeHEgAEELSRsiBEEDdiIBdiIAQQNxBEACQCAAQX9zQQFxIAFqIgJBA3QiAUGAjBNqIgAgAUGIjBNqKAIAIgEoAggiBEYEQEHYixMgBkF+IAJ3cTYCAAwBCyAEIAA2AgwgACAENgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDAsgBEHgixMoAgAiCE0NASAABEACQCAAIAF0QQIgAXQiAEEAIABrcnEiAEEBayAAQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqIgFBA3QiAEGAjBNqIgIgAEGIjBNqKAIAIgAoAggiA0YEQEHYixMgBkF+IAF3cSIGNgIADAELIAMgAjYCDCACIAM2AggLIAAgBEEDcjYCBCAAIARqIgMgAUEDdCIBIARrIgJBAXI2AgQgACABaiACNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAQJ/IAZBASAIQQN2dCIFcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCABNgIIIAUgATYCDCABIAQ2AgwgASAFNgIICyAAQQhqIQBB7IsTIAM2AgBB4IsTIAI2AgAMDAtB3IsTKAIAIglFDQEgCUEBayAJQX9zcSIAIABBDHZBEHEiAHYiAUEFdkEIcSICIAByIAEgAnYiAEECdkEEcSIBciAAIAF2IgBBAXZBAnEiAXIgACABdiIAQQF2QQFxIgFyIAAgAXZqQQJ0QYiOE2ooAgAiAygCBEF4cSAEayEBIAMhAgNAAkAgAigCECIARQRAIAIoAhQiAEUNAQsgACgCBEF4cSAEayICIAEgASACSyICGyEBIAAgAyACGyEDIAAhAgwBCwsgAygCGCEKIAMgAygCDCIFRwRAIAMoAggiAEHoixMoAgBJGiAAIAU2AgwgBSAANgIIDAsLIANBFGoiAigCACIARQRAIAMoAhAiAEUNAyADQRBqIQILA0AgAiEHIAAiBUEUaiICKAIAIgANACAFQRBqIQIgBSgCECIADQALIAdBADYCAAwKC0F/IQQgAEG/f0sNACAAQQtqIgBBeHEhBEHcixMoAgAiCEUNAAJ/QQAgBEGAAkkNABpBHyAEQf///wdLDQAaIABBCHYiACAAQYD+P2pBEHZBCHEiAHQiASABQYDgH2pBEHZBBHEiAXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgACABciACcmsiAEEBdCAEIABBFWp2QQFxckEcagshB0EAIARrIQECQAJAAkAgB0ECdEGIjhNqKAIAIgJFBEBBACEADAELQQAhACAEQRkgB0EBdmtBACAHQR9HG3QhAwNAAkAgAigCBEF4cSAEayIGIAFPDQAgAiEFIAYiAQ0AQQAhASACIQAMAwsgACACKAIUIgYgBiACIANBHXZBBHFqKAIQIgJGGyAAIAYbIQAgA0EBdCEDIAINAAsLIAAgBXJFBEBBACEFQQIgB3QiAEEAIABrciAIcSIARQ0DIABBAWsgAEF/c3EiACAAQQx2QRBxIgB2IgJBBXZBCHEiAyAAciACIAN2IgBBAnZBBHEiAnIgACACdiIAQQF2QQJxIgJyIAAgAnYiAEEBdkEBcSICciAAIAJ2akECdEGIjhNqKAIAIQALIABFDQELA0AgACgCBEF4cSAEayIGIAFJIQMgBiABIAMbIQEgACAFIAMbIQUgACgCECICBH8gAgUgACgCFAsiAA0ACwsgBUUNACABQeCLEygCACAEa08NACAFKAIYIQcgBSAFKAIMIgNHBEAgBSgCCCIAQeiLEygCAEkaIAAgAzYCDCADIAA2AggMCQsgBUEUaiICKAIAIgBFBEAgBSgCECIARQ0DIAVBEGohAgsDQCACIQYgACIDQRRqIgIoAgAiAA0AIANBEGohAiADKAIQIgANAAsgBkEANgIADAgLIARB4IsTKAIAIgBNBEBB7IsTKAIAIQECQCAAIARrIgJBEE8EQEHgixMgAjYCAEHsixMgASAEaiIDNgIAIAMgAkEBcjYCBCAAIAFqIAI2AgAgASAEQQNyNgIEDAELQeyLE0EANgIAQeCLE0EANgIAIAEgAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsgAUEIaiEADAoLIARB5IsTKAIAIgNJBEBB5IsTIAMgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwKC0EAIQAgBEEvaiIIAn9BsI8TKAIABEBBuI8TKAIADAELQbyPE0J/NwIAQbSPE0KAoICAgIAENwIAQbCPEyALQQxqQXBxQdiq1aoFczYCAEHEjxNBADYCAEGUjxNBADYCAEGAIAsiAWoiBkEAIAFrIgdxIgUgBE0NCUGQjxMoAgAiAQRAQYiPEygCACICIAVqIgkgAk0NCiABIAlJDQoLQZSPEy0AAEEEcQ0EAkACQEHwixMoAgAiAQRAQZiPEyEAA0AgASAAKAIAIgJPBEAgAiAAKAIEaiABSw0DCyAAKAIIIgANAAsLQQAQ0AEiA0F/Rg0FIAUhBkG0jxMoAgAiAEEBayIBIANxBEAgBSADayABIANqQQAgAGtxaiEGCyAEIAZPDQUgBkH+////B0sNBUGQjxMoAgAiAARAQYiPEygCACIBIAZqIgIgAU0NBiAAIAJJDQYLIAYQ0AEiACADRw0BDAcLIAYgA2sgB3EiBkH+////B0sNBCAGENABIgMgACgCACAAKAIEakYNAyADIQALAkAgAEF/Rg0AIARBMGogBk0NAEG4jxMoAgAiASAIIAZrakEAIAFrcSIBQf7///8HSwRAIAAhAwwHCyABENABQX9HBEAgASAGaiEGIAAhAwwHC0EAIAZrENABGgwECyAAIQMgAEF/Rw0FDAMLQQAhBQwHC0EAIQMMBQsgA0F/Rw0CC0GUjxNBlI8TKAIAQQRyNgIACyAFQf7///8HSw0BIAUQ0AEhA0EAENABIQAgA0F/Rg0BIABBf0YNASAAIANNDQEgACADayIGIARBKGpNDQELQYiPE0GIjxMoAgAgBmoiADYCAEGMjxMoAgAgAEkEQEGMjxMgADYCAAsCQAJAAkBB8IsTKAIAIgEEQEGYjxMhAANAIAMgACgCACICIAAoAgQiBWpGDQIgACgCCCIADQALDAILQeiLEygCACIAQQAgACADTRtFBEBB6IsTIAM2AgALQQAhAEGcjxMgBjYCAEGYjxMgAzYCAEH4ixNBfzYCAEH8ixNBsI8TKAIANgIAQaSPE0EANgIAA0AgAEEDdCIBQYiME2ogAUGAjBNqIgI2AgAgAUGMjBNqIAI2AgAgAEEBaiIAQSBHDQALQeSLEyAGQShrIgBBeCADa0EHcUEAIANBCGpBB3EbIgFrIgI2AgBB8IsTIAEgA2oiATYCACABIAJBAXI2AgQgACADakEoNgIEQfSLE0HAjxMoAgA2AgAMAgsgAC0ADEEIcQ0AIAEgAkkNACABIANPDQAgACAFIAZqNgIEQfCLEyABQXggAWtBB3FBACABQQhqQQdxGyIAaiICNgIAQeSLE0HkixMoAgAgBmoiAyAAayIANgIAIAIgAEEBcjYCBCABIANqQSg2AgRB9IsTQcCPEygCADYCAAwBC0HoixMoAgAgA0sEQEHoixMgAzYCAAsgAyAGaiECQZiPEyEAAkACQAJAAkACQAJAA0AgAiAAKAIARwRAIAAoAggiAA0BDAILCyAALQAMQQhxRQ0BC0GYjxMhAANAIAEgACgCACICTwRAIAIgACgCBGoiAiABSw0DCyAAKAIIIQAMAAsACyAAIAM2AgAgACAAKAIEIAZqNgIEIANBeCADa0EHcUEAIANBCGpBB3EbaiIHIARBA3I2AgQgAkF4IAJrQQdxQQAgAkEIakEHcRtqIgYgBCAHaiIEayEAIAEgBkYEQEHwixMgBDYCAEHkixNB5IsTKAIAIABqIgA2AgAgBCAAQQFyNgIEDAMLQeyLEygCACAGRgRAQeyLEyAENgIAQeCLE0HgixMoAgAgAGoiADYCACAEIABBAXI2AgQgACAEaiAANgIADAMLIAYoAgQiAUEDcUEBRgRAIAFBeHEhCAJAIAFB/wFNBEAgBigCCCICIAFBA3YiBUEDdEGAjBNqRhogAiAGKAIMIgFGBEBB2IsTQdiLEygCAEF+IAV3cTYCAAwCCyACIAE2AgwgASACNgIIDAELIAYoAhghCQJAIAYgBigCDCIDRwRAIAYoAggiASADNgIMIAMgATYCCAwBCwJAIAZBFGoiASgCACICDQAgBkEQaiIBKAIAIgINAEEAIQMMAQsDQCABIQUgAiIDQRRqIgEoAgAiAg0AIANBEGohASADKAIQIgINAAsgBUEANgIACyAJRQ0AAkAgBigCHCICQQJ0QYiOE2oiASgCACAGRgRAIAEgAzYCACADDQFB3IsTQdyLEygCAEF+IAJ3cTYCAAwCCyAJQRBBFCAJKAIQIAZGG2ogAzYCACADRQ0BCyADIAk2AhggBigCECIBBEAgAyABNgIQIAEgAzYCGAsgBigCFCIBRQ0AIAMgATYCFCABIAM2AhgLIAYgCGoiBigCBCEBIAAgCGohAAsgBiABQX5xNgIEIAQgAEEBcjYCBCAAIARqIAA2AgAgAEH/AU0EQCAAQXhxQYCME2ohAQJ/QdiLEygCACICQQEgAEEDdnQiAHFFBEBB2IsTIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgBDYCCCAAIAQ2AgwgBCABNgIMIAQgADYCCAwDC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASACciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyAEIAE2AhwgBEIANwIQIAFBAnRBiI4TaiECAkBB3IsTKAIAIgNBASABdCIFcUUEQEHcixMgAyAFcjYCACACIAQ2AgAgBCACNgIYDAELIABBGSABQQF2a0EAIAFBH0cbdCEBIAIoAgAhAwNAIAMiAigCBEF4cSAARg0DIAFBHXYhAyABQQF0IQEgAiADQQRxakEQaiIFKAIAIgMNAAsgBSAENgIAIAQgAjYCGAsgBCAENgIMIAQgBDYCCAwCC0HkixMgBkEoayIAQXggA2tBB3FBACADQQhqQQdxGyIFayIHNgIAQfCLEyADIAVqIgU2AgAgBSAHQQFyNgIEIAAgA2pBKDYCBEH0ixNBwI8TKAIANgIAIAEgAkEnIAJrQQdxQQAgAkEna0EHcRtqQS9rIgAgACABQRBqSRsiBUEbNgIEIAVBoI8TKQIANwIQIAVBmI8TKQIANwIIQaCPEyAFQQhqNgIAQZyPEyAGNgIAQZiPEyADNgIAQaSPE0EANgIAIAVBGGohAANAIABBBzYCBCAAQQhqIQMgAEEEaiEAIAIgA0sNAAsgASAFRg0DIAUgBSgCBEF+cTYCBCABIAUgAWsiA0EBcjYCBCAFIAM2AgAgA0H/AU0EQCADQXhxQYCME2ohAAJ/QdiLEygCACICQQEgA0EDdnQiA3FFBEBB2IsTIAIgA3I2AgAgAAwBCyAAKAIICyECIAAgATYCCCACIAE2AgwgASAANgIMIAEgAjYCCAwEC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgACACciAFcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyABIAA2AhwgAUIANwIQIABBAnRBiI4TaiECAkBB3IsTKAIAIgVBASAAdCIGcUUEQEHcixMgBSAGcjYCACACIAE2AgAgASACNgIYDAELIANBGSAAQQF2a0EAIABBH0cbdCEAIAIoAgAhBQNAIAUiAigCBEF4cSADRg0EIABBHXYhBSAAQQF0IQAgAiAFQQRxakEQaiIGKAIAIgUNAAsgBiABNgIAIAEgAjYCGAsgASABNgIMIAEgATYCCAwDCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAdBCGohAAwFCyACKAIIIgAgATYCDCACIAE2AgggAUEANgIYIAEgAjYCDCABIAA2AggLQeSLEygCACIAIARNDQBB5IsTIAAgBGsiATYCAEHwixNB8IsTKAIAIgAgBGoiAjYCACACIAFBAXI2AgQgACAEQQNyNgIEIABBCGohAAwDC0HoyhJBMDYCAEEAIQAMAgsCQCAHRQ0AAkAgBSgCHCICQQJ0QYiOE2oiACgCACAFRgRAIAAgAzYCACADDQFB3IsTIAhBfiACd3EiCDYCAAwCCyAHQRBBFCAHKAIQIAVGG2ogAzYCACADRQ0BCyADIAc2AhggBSgCECIABEAgAyAANgIQIAAgAzYCGAsgBSgCFCIARQ0AIAMgADYCFCAAIAM2AhgLAkAgAUEPTQRAIAUgASAEaiIAQQNyNgIEIAAgBWoiACAAKAIEQQFyNgIEDAELIAUgBEEDcjYCBCAEIAVqIgMgAUEBcjYCBCABIANqIAE2AgAgAUH/AU0EQCABQXhxQYCME2ohAAJ/QdiLEygCACICQQEgAUEDdnQiAXFFBEBB2IsTIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQAgAUH///8HTQRAIAFBCHYiACAAQYD+P2pBEHZBCHEiAHQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgACACciAEcmsiAEEBdCABIABBFWp2QQFxckEcaiEACyADIAA2AhwgA0IANwIQIABBAnRBiI4TaiECAkACQCAIQQEgAHQiBHFFBEBB3IsTIAQgCHI2AgAgAiADNgIAIAMgAjYCGAwBCyABQRkgAEEBdmtBACAAQR9HG3QhACACKAIAIQQDQCAEIgIoAgRBeHEgAUYNAiAAQR12IQQgAEEBdCEAIAIgBEEEcWpBEGoiBigCACIEDQALIAYgAzYCACADIAI2AhgLIAMgAzYCDCADIAM2AggMAQsgAigCCCIAIAM2AgwgAiADNgIIIANBADYCGCADIAI2AgwgAyAANgIICyAFQQhqIQAMAQsCQCAKRQ0AAkAgAygCHCICQQJ0QYiOE2oiACgCACADRgRAIAAgBTYCACAFDQFB3IsTIAlBfiACd3E2AgAMAgsgCkEQQRQgCigCECADRhtqIAU2AgAgBUUNAQsgBSAKNgIYIAMoAhAiAARAIAUgADYCECAAIAU2AhgLIAMoAhQiAEUNACAFIAA2AhQgACAFNgIYCwJAIAFBD00EQCADIAEgBGoiAEEDcjYCBCAAIANqIgAgACgCBEEBcjYCBAwBCyADIARBA3I2AgQgAyAEaiICIAFBAXI2AgQgASACaiABNgIAIAgEQCAIQXhxQYCME2ohBEHsixMoAgAhAAJ/QQEgCEEDdnQiBSAGcUUEQEHYixMgBSAGcjYCACAEDAELIAQoAggLIQUgBCAANgIIIAUgADYCDCAAIAQ2AgwgACAFNgIIC0HsixMgAjYCAEHgixMgATYCAAsgA0EIaiEACyALQRBqJAAgAAvKDAEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJB6IsTKAIASQ0BIAAgAWohAEHsixMoAgAgAkcEQCABQf8BTQRAIAIoAggiBCABQQN2IgdBA3RBgIwTakYaIAQgAigCDCIBRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAwsgBCABNgIMIAEgBDYCCAwCCyACKAIYIQYCQCACIAIoAgwiA0cEQCACKAIIIgEgAzYCDCADIAE2AggMAQsCQCACQRRqIgEoAgAiBA0AIAJBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAQJAIAIoAhwiBEECdEGIjhNqIgEoAgAgAkYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAwsgBkEQQRQgBigCECACRhtqIAM2AgAgA0UNAgsgAyAGNgIYIAIoAhAiAQRAIAMgATYCECABIAM2AhgLIAIoAhQiAUUNASADIAE2AhQgASADNgIYDAELIAUoAgQiAUEDcUEDRw0AQeCLEyAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADwsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEBB8IsTKAIAIAVGBEBB8IsTIAI2AgBB5IsTQeSLEygCACAAaiIANgIAIAIgAEEBcjYCBCACQeyLEygCAEcNA0HgixNBADYCAEHsixNBADYCAA8LQeyLEygCACAFRgRAQeyLEyACNgIAQeCLE0HgixMoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgQgAUEDdiIHQQN0QYCME2pGGiAEIAUoAgwiAUYEQEHYixNB2IsTKAIAQX4gB3dxNgIADAILIAQgATYCDCABIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgNHBEAgBSgCCCIBQeiLEygCAEkaIAEgAzYCDCADIAE2AggMAQsCQCAFQRRqIgEoAgAiBA0AIAVBEGoiASgCACIEDQBBACEDDAELA0AgASEHIAQiA0EUaiIBKAIAIgQNACADQRBqIQEgAygCECIEDQALIAdBADYCAAsgBkUNAAJAIAUoAhwiBEECdEGIjhNqIgEoAgAgBUYEQCABIAM2AgAgAw0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAM2AgAgA0UNAQsgAyAGNgIYIAUoAhAiAQRAIAMgATYCECABIAM2AhgLIAUoAhQiAUUNACADIAE2AhQgASADNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJB7IsTKAIARw0BQeCLEyAANgIADwsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgALIABB/wFNBEAgAEF4cUGAjBNqIQECf0HYixMoAgAiBEEBIABBA3Z0IgBxRQRAQdiLEyAAIARyNgIAIAEMAQsgASgCCAshACABIAI2AgggACACNgIMIAIgATYCDCACIAA2AggPC0EfIQEgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiBCAEQYDgH2pBEHZBBHEiBHQiAyADQYCAD2pBEHZBAnEiA3RBD3YgASAEciADcmsiAUEBdCAAIAFBFWp2QQFxckEcaiEBCyACIAE2AhwgAkIANwIQIAFBAnRBiI4TaiEEAkACQAJAQdyLEygCACIDQQEgAXQiBXFFBEBB3IsTIAMgBXI2AgAgBCACNgIAIAIgBDYCGAwBCyAAQRkgAUEBdmtBACABQR9HG3QhASAEKAIAIQMDQCADIgQoAgRBeHEgAEYNAiABQR12IQMgAUEBdCEBIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgAjYCACACIAQ2AhgLIAIgAjYCDCACIAI2AggMAQsgBCgCCCIAIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiAANgIIC0H4ixNB+IsTKAIAQQFrIgJBfyACGzYCAAsLoAgBC38gAEUEQCABEMsBDwsgAUFATwRAQejKEkEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEDIABBCGsiBSgCBCIIQXhxIQICQCAIQQNxRQRAQQAgA0GAAkkNAhogA0EEaiACTQRAIAUhBCACIANrQbiPEygCAEEBdE0NAgtBAAwCCyACIAVqIQcCQCACIANPBEAgAiADayICQRBJDQEgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyACQQNyNgIEIAcgBygCBEEBcjYCBCADIAIQzgEMAQtB8IsTKAIAIAdGBEBB5IsTKAIAIAJqIgIgA00NAiAFIAhBAXEgA3JBAnI2AgQgAyAFaiIIIAIgA2siA0EBcjYCBEHkixMgAzYCAEHwixMgCDYCAAwBC0HsixMoAgAgB0YEQEHgixMoAgAgAmoiAiADSQ0CAkAgAiADayIEQRBPBEAgBSAIQQFxIANyQQJyNgIEIAMgBWoiAyAEQQFyNgIEIAIgBWoiAiAENgIAIAIgAigCBEF+cTYCBAwBCyAFIAhBAXEgAnJBAnI2AgQgAiAFaiIDIAMoAgRBAXI2AgRBACEEQQAhAwtB7IsTIAM2AgBB4IsTIAQ2AgAMAQsgBygCBCIGQQJxDQEgBkF4cSACaiIJIANJDQEgCSADayELAkAgBkH/AU0EQCAHKAIIIgIgBkEDdiIMQQN0QYCME2pGGiACIAcoAgwiBEYEQEHYixNB2IsTKAIAQX4gDHdxNgIADAILIAIgBDYCDCAEIAI2AggMAQsgBygCGCEKAkAgByAHKAIMIgZHBEAgBygCCCICQeiLEygCAEkaIAIgBjYCDCAGIAI2AggMAQsCQCAHQRRqIgIoAgAiBA0AIAdBEGoiAigCACIEDQBBACEGDAELA0AgAiEMIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAxBADYCAAsgCkUNAAJAIAcoAhwiBEECdEGIjhNqIgIoAgAgB0YEQCACIAY2AgAgBg0BQdyLE0HcixMoAgBBfiAEd3E2AgAMAgsgCkEQQRQgCigCECAHRhtqIAY2AgAgBkUNAQsgBiAKNgIYIAcoAhAiAgRAIAYgAjYCECACIAY2AhgLIAcoAhQiAkUNACAGIAI2AhQgAiAGNgIYCyALQQ9NBEAgBSAIQQFxIAlyQQJyNgIEIAUgCWoiAyADKAIEQQFyNgIEDAELIAUgCEEBcSADckECcjYCBCADIAVqIgMgC0EDcjYCBCAFIAlqIgIgAigCBEEBcjYCBCADIAsQzgELIAUhBAsgBAsiBARAIARBCGoPCyABEMsBIgRFBEBBAA8LIAQgAEF8QXggAEEEaygCACIFQQNxGyAFQXhxaiIFIAEgASAFSxsQpgEaIAAQzAEgBAuJDAEGfyAAIAFqIQUCQAJAIAAoAgQiAkEBcQ0AIAJBA3FFDQEgACgCACICIAFqIQECQCAAIAJrIgBB7IsTKAIARwRAIAJB/wFNBEAgACgCCCIEIAJBA3YiB0EDdEGAjBNqRhogACgCDCICIARHDQJB2IsTQdiLEygCAEF+IAd3cTYCAAwDCyAAKAIYIQYCQCAAIAAoAgwiA0cEQCAAKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIABBFGoiAigCACIEDQAgAEEQaiICKAIAIgQNAEEAIQMMAQsDQCACIQcgBCIDQRRqIgIoAgAiBA0AIANBEGohAiADKAIQIgQNAAsgB0EANgIACyAGRQ0CAkAgACgCHCIEQQJ0QYiOE2oiAigCACAARgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwECyAGQRBBFCAGKAIQIABGG2ogAzYCACADRQ0DCyADIAY2AhggACgCECICBEAgAyACNgIQIAIgAzYCGAsgACgCFCICRQ0CIAMgAjYCFCACIAM2AhgMAgsgBSgCBCICQQNxQQNHDQFB4IsTIAE2AgAgBSACQX5xNgIEIAAgAUEBcjYCBCAFIAE2AgAPCyAEIAI2AgwgAiAENgIICwJAIAUoAgQiAkECcUUEQEHwixMoAgAgBUYEQEHwixMgADYCAEHkixNB5IsTKAIAIAFqIgE2AgAgACABQQFyNgIEIABB7IsTKAIARw0DQeCLE0EANgIAQeyLE0EANgIADwtB7IsTKAIAIAVGBEBB7IsTIAA2AgBB4IsTQeCLEygCACABaiIBNgIAIAAgAUEBcjYCBCAAIAFqIAE2AgAPCyACQXhxIAFqIQECQCACQf8BTQRAIAUoAggiBCACQQN2IgdBA3RBgIwTakYaIAQgBSgCDCICRgRAQdiLE0HYixMoAgBBfiAHd3E2AgAMAgsgBCACNgIMIAIgBDYCCAwBCyAFKAIYIQYCQCAFIAUoAgwiA0cEQCAFKAIIIgJB6IsTKAIASRogAiADNgIMIAMgAjYCCAwBCwJAIAVBFGoiBCgCACICDQAgBUEQaiIEKAIAIgINAEEAIQMMAQsDQCAEIQcgAiIDQRRqIgQoAgAiAg0AIANBEGohBCADKAIQIgINAAsgB0EANgIACyAGRQ0AAkAgBSgCHCIEQQJ0QYiOE2oiAigCACAFRgRAIAIgAzYCACADDQFB3IsTQdyLEygCAEF+IAR3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogAzYCACADRQ0BCyADIAY2AhggBSgCECICBEAgAyACNgIQIAIgAzYCGAsgBSgCFCICRQ0AIAMgAjYCFCACIAM2AhgLIAAgAUEBcjYCBCAAIAFqIAE2AgAgAEHsixMoAgBHDQFB4IsTIAE2AgAPCyAFIAJBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsgAUH/AU0EQCABQXhxQYCME2ohAgJ/QdiLEygCACIEQQEgAUEDdnQiAXFFBEBB2IsTIAEgBHI2AgAgAgwBCyACKAIICyEBIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQR8hAiABQf///wdNBEAgAUEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIDIANBgIAPakEQdkECcSIDdEEPdiACIARyIANyayICQQF0IAEgAkEVanZBAXFyQRxqIQILIAAgAjYCHCAAQgA3AhAgAkECdEGIjhNqIQQCQAJAQdyLEygCACIDQQEgAnQiBXFFBEBB3IsTIAMgBXI2AgAgBCAANgIAIAAgBDYCGAwBCyABQRkgAkEBdmtBACACQR9HG3QhAiAEKAIAIQMDQCADIgQoAgRBeHEgAUYNAiACQR12IQMgAkEBdCECIAQgA0EEcWpBEGoiBSgCACIDDQALIAUgADYCACAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC1wCAX8BfgJAAn9BACAARQ0AGiAArSABrX4iA6ciAiAAIAFyQYCABEkNABpBfyACIANCIIinGwsiAhDLASIARQ0AIABBBGstAABBA3FFDQAgAEEAIAIQqAEaCyAAC1IBAn9B2L8SKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQA0UNAQtB2L8SIAA2AgAgAQ8LQejKEkEwNgIAQX8LBAAjAAsGACAAJAALEAAjACAAa0FwcSIAJAAgAAsiAQF+IAEgAq0gA61CIIaEIAQgABEPACIFQiCIpyQBIAWnCwvFrRKnAQBBgAgL9xIBAAAAAgAAAAIAAAAFAAAABAAAAAAAAAABAAAAAQAAAAEAAAAGAAAABgAAAAEAAAACAAAAAgAAAAEAAAAAAAAABgAAAAEAAAABAAAABAAAAAQAAAABAAAABAAAAAQAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAgAAAAMAAAAEAAAABAAAAAEAAABZb3UgZGlkbid0IGNhbGwgb25pZ19pbml0aWFsaXplKCkgZXhwbGljaXRseQAtKyAgIDBYMHgAQWxudW0AbWlzbWF0Y2gAJWQuJWQuJWQAXQBFVUMtVFcAU2hpZnRfSklTAEVVQy1LUgBLT0k4LVIARVVDLUpQAE1PTgBVUy1BU0NJSQBVVEYtMTZMRQBVVEYtMzJMRQBVVEYtMTZCRQBVVEYtMzJCRQBJU08tODg1OS05AFVURi04AElTTy04ODU5LTgASVNPLTg4NTktNwBJU08tODg1OS0xNgBJU08tODg1OS02AEJpZzUASVNPLTg4NTktMTUASVNPLTg4NTktNQBJU08tODg1OS0xNABJU08tODg1OS00AElTTy04ODU5LTEzAElTTy04ODU5LTMASVNPLTg4NTktMgBDUDEyNTEASVNPLTg4NTktMTEASVNPLTg4NTktMQBHQjE4MDMwAElTTy04ODU5LTEwAE9uaWd1cnVtYSAlZC4lZC4lZCA6IENvcHlyaWdodCAoQykgMjAwMi0yMDE4IEsuS29zYWtvAG5vIHN1cHBvcnQgaW4gdGhpcyBjb25maWd1cmF0aW9uAHJlZ3VsYXIgZXhwcmVzc2lvbiBoYXMgJyVzJyB3aXRob3V0IGVzY2FwZQBXb3JkAEFscGhhAEVVQy1DTgBGQUlMAChudWxsKQAARgBBAEkATAAAAEYAQQBJAEwAAAAAYWJvcnQAQmxhbmsAIyVkAEFscGhhAFsATUlTTUFUQ0gAAE0ASQBTAE0AQQBUAEMASAAAAE0ASQBTAE0AQQBUAEMASAAAAAAtMFgrMFggMFgtMHgrMHggMHgAZmFpbCB0byBtZW1vcnkgYWxsb2NhdGlvbgBDbnRybABIaXJhZ2FuYQBNQVgALQBPTklHLU1PTklUT1I6ICUtNHMgJXMgYXQ6ICVkIFslZCAtICVkXSBsZW46ICVkCgAATQBBAFgAAABNAEEAWAAAAABEaWdpdABtYXRjaC1zdGFjayBsaW1pdCBvdmVyAEFsbnVtAGluZgBjaGFyYWN0ZXIgY2xhc3MgaGFzICclcycgd2l0aG91dCBlc2NhcGUARVJST1IAPT4AAEUAUgBSAE8AUgAAAEUAUgBSAE8AUgAAAABwYXJzZSBkZXB0aCBsaW1pdCBvdmVyAGFsbnVtAEdyYXBoAEthdGFrYW5hAENPVU5UAElORgA8PQAAQwBPAFUATgBUAAAAQwBPAFUATgBUAAAAAExvd2VyAHJldHJ5LWxpbWl0LWluLW1hdGNoIG92ZXIAbmFuAGFscGhhAFRPVEFMX0NPVU5UAEFTQ0lJAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAABUAE8AVABBAEwAXwBDAE8AVQBOAFQAAAAAUHJpbnQAWERpZ2l0AHJldHJ5LWxpbWl0LWluLXNlYXJjaCBvdmVyAGJsYW5rAENNUABOQU4AAEMATQBQAAAAQwBNAFAAAAAAUHVuY3QAc3ViZXhwLWNhbGwtbGltaXQtaW4tc2VhcmNoIG92ZXIAY250cmwAQ250cmwALgBkaWdpdABCbGFuawBTcGFjZQB1bmRlZmluZWQgdHlwZSAoYnVnKQBQdW5jdABVcHBlcgBncmFwaABpbnRlcm5hbCBwYXJzZXIgZXJyb3IgKGJ1ZykAUHJpbnQAWERpZ2l0AGxvd2VyAHN0YWNrIGVycm9yIChidWcpAHByaW50AFVwcGVyAEFTQ0lJAHVuZGVmaW5lZCBieXRlY29kZSAoYnVnKQBwdW5jdABTcGFjZQBXb3JkAHVuZXhwZWN0ZWQgYnl0ZWNvZGUgKGJ1ZykAZGVmYXVsdCBtdWx0aWJ5dGUtZW5jb2RpbmcgaXMgbm90IHNldABMb3dlcgBzcGFjZQB1cHBlcgBHcmFwaABjYW4ndCBjb252ZXJ0IHRvIHdpZGUtY2hhciBvbiBzcGVjaWZpZWQgbXVsdGlieXRlLWVuY29kaW5nAHhkaWdpdABEaWdpdABmYWlsIHRvIGluaXRpYWxpemUAaW52YWxpZCBhcmd1bWVudABhc2NpaQBlbmQgcGF0dGVybiBhdCBsZWZ0IGJyYWNlAHdvcmQAZW5kIHBhdHRlcm4gYXQgbGVmdCBicmFja2V0ADpdAGVtcHR5IGNoYXItY2xhc3MAcmVkdW5kYW50IG5lc3RlZCByZXBlYXQgb3BlcmF0b3IAcHJlbWF0dXJlIGVuZCBvZiBjaGFyLWNsYXNzAG5lc3RlZCByZXBlYXQgb3BlcmF0b3IgJXMgYW5kICVzIHdhcyByZXBsYWNlZCB3aXRoICclcycAZW5kIHBhdHRlcm4gYXQgZXNjYXBlAD8AZW5kIHBhdHRlcm4gYXQgbWV0YQAqAGVuZCBwYXR0ZXJuIGF0IGNvbnRyb2wAKwBpbnZhbGlkIG1ldGEtY29kZSBzeW50YXgAPz8AaW52YWxpZCBjb250cm9sLWNvZGUgc3ludGF4ACo/AGNoYXItY2xhc3MgdmFsdWUgYXQgZW5kIG9mIHJhbmdlACs/AGNoYXItY2xhc3MgdmFsdWUgYXQgc3RhcnQgb2YgcmFuZ2UAdW5tYXRjaGVkIHJhbmdlIHNwZWNpZmllciBpbiBjaGFyLWNsYXNzACsgYW5kID8/AHRhcmdldCBvZiByZXBlYXQgb3BlcmF0b3IgaXMgbm90IHNwZWNpZmllZAArPyBhbmQgPwAPAAAADgAAAHQ+AwB8PgMA6AP0AU0B+gDIAKcAjwB9AG8AZABbAFMATQBHAEMAPwA7ADgANQAyADAALQArACoAKAAmACUAJAAiACEAIAAfAB4AHQAdABwAGwAaABoAGQAYABgAFwAXABYAFgAVABUAFAAUABQAEwATABMAEgASABIAEQARABEAEAAQABAAEAAPAA8ADwAPAA4ADgAOAA4ADgAOAA0ADQANAA0ADQANAAwADAAMAAwADAAMAAsACwALAAsACwALAAsACwALAAoACgAKAAoA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b2RlIHJhbmdlcyBhcmUgc3BlY2lmaWVkAHRvbyBzaG9ydCBtdWx0aWJ5dGUgY29kZSBzdHJpbmcAdG9vIGJpZyBiYWNrcmVmIG51bWJlcgBpbnZhbGlkIGJhY2tyZWYgbnVtYmVyL25hbWUAbnVtYmVyZWQgYmFja3JlZi9jYWxsIGlzIG5vdCBhbGxvd2VkLiAodXNlIG5hbWUpAHRvbyBtYW55IGNhcHR1cmVzAHRvbyBiaWcgd2lkZS1jaGFyIHZhbHVlAHRvbyBsb25nIHdpZGUtY2hhciB2YWx1ZQB1bmRlZmluZWQgb3BlcmF0b3IAaW52YWxpZCBjb2RlIHBvaW50IHZhbHVlAGdyb3VwIG5hbWUgaXMgZW1wdHkAaW52YWxpZCBncm91cCBuYW1lIDwlbj4AaW52YWxpZCBjaGFyIGluIGdyb3VwIG5hbWUgPCVuPgB1bmRlZmluZWQgbmFtZSA8JW4+IHJlZmVyZW5jZQB1bmRlZmluZWQgZ3JvdXAgPCVuPiByZWZlcmVuY2UAbXVsdGlwbGV4IGRlZmluZWQgbmFtZSA8JW4+AG11bHRpcGxleCBkZWZpbml0aW9uIG5hbWUgPCVuPiBjYWxsAG5ldmVyIGVuZGluZyByZWN1cnNpb24AZ3JvdXAgbnVtYmVyIGlzIHRvbyBiaWcgZm9yIGNhcHR1cmUgaGlzdG9yeQBpbnZhbGlkIGNoYXJhY3RlciBwcm9wZXJ0eSBuYW1lIHslbn0AaW52YWxpZCBpZi1lbHNlIHN5bnRheABpbnZhbGlkIGFic2VudCBncm91cCBwYXR0ZXJuAGludmFsaWQgYWJzZW50IGdyb3VwIGdlbmVyYXRvciBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBwYXR0ZXJuAGludmFsaWQgY2FsbG91dCBuYW1lAHVuZGVmaW5lZCBjYWxsb3V0IG5hbWUAaW52YWxpZCBjYWxsb3V0IGJvZHkAaW52YWxpZCBjYWxsb3V0IHRhZyBuYW1lAGludmFsaWQgY2FsbG91dCBhcmcAbm90IHN1cHBvcnRlZCBlbmNvZGluZyBjb21iaW5hdGlvbgBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIG9wdGlvbnMAdmVyeSBpbmVmZmljaWVudCBwYXR0ZXJuAGxpYnJhcnkgaXMgbm90IGluaXRpYWxpemVkAHVuZGVmaW5lZCBlcnJvciBjb2RlAC4uLgAlMDJ4AFx4JTAyeAAAAAEAQcAyCxUBAAAAAQAAAAEAAAABAAAAAQAAAAEAQeAyC3ALAAAAEwAAACUAAABDAAAAgwAAABsBAAAJAgAACQQAAAUIAAADEAAAGyAAACtAAAADgAAALQABAB0AAgADAAQAFQAIAAcAEAARACAADwBAAAkAgAArAAABIwAAAg8AAAQdAAAIAwAAEAsAACBVAABAAEHgMwvRZAhACEAIQAhACEAIQAhACEAIQIxCiUKIQohCiEIIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACEAIQAhACECEQqBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQaBBoEGgQbB4sHiweLB4sHiweLB4sHiweLB4oEGgQaBBoEGgQaBBoEGifKJ8onyifKJ8onyidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0onSidKJ0oEGgQaBBoEGgUaBB4njieOJ44njieOJ44nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicOJw4nDicKBBoEGgQaBBCEAIAAgACAAIAAgAiAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAhAKgAaAAoACgAKAAoACgAKAAoADiMKABoACoAKAAoACgAKAAoBCgEKAA4jCgAKABoACgEOIwoAGgEKAQoBCgAaI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSiNKI0ojSgAKI0ojSiNKI0ojSiNKI04jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIw4jDiMOIwoADiMOIw4jDiMOIw4jDiMOIwCgAAAAoAAAAJAAAACwAAAAwAAAANAAAADQAAAA0AAAACAAAAIAAAACAAAAARAAAAIgAAACIAAAADAAAAJwAAACcAAAAQAAAALAAAACwAAAALAAAALgAAAC4AAAAMAAAAMAAAADkAAAAOAAAAOgAAADoAAAAKAAAAOwAAADsAAAALAAAAQQAAAFoAAAABAAAAXwAAAF8AAAAFAAAAYQAAAHoAAAABAAAAhQAAAIUAAAANAAAAqgAAAKoAAAABAAAArQAAAK0AAAAGAAAAtQAAALUAAAABAAAAtwAAALcAAAAKAAAAugAAALoAAAABAAAAwAAAANYAAAABAAAA2AAAAPYAAAABAAAA+AAAANcCAAABAAAA3gIAAP8CAAABAAAAAAMAAG8DAAAEAAAAcAMAAHQDAAABAAAAdgMAAHcDAAABAAAAegMAAH0DAAABAAAAfgMAAH4DAAALAAAAfwMAAH8DAAABAAAAhgMAAIYDAAABAAAAhwMAAIcDAAAKAAAAiAMAAIoDAAABAAAAjAMAAIwDAAABAAAAjgMAAKEDAAABAAAAowMAAPUDAAABAAAA9wMAAIEEAAABAAAAgwQAAIkEAAAEAAAAigQAAC8FAAABAAAAMQUAAFYFAAABAAAAWQUAAFwFAAABAAAAXgUAAF4FAAABAAAAXwUAAF8FAAAKAAAAYAUAAIgFAAABAAAAiQUAAIkFAAALAAAAigUAAIoFAAABAAAAkQUAAL0FAAAEAAAAvwUAAL8FAAAEAAAAwQUAAMIFAAAEAAAAxAUAAMUFAAAEAAAAxwUAAMcFAAAEAAAA0AUAAOoFAAAHAAAA7wUAAPIFAAAHAAAA8wUAAPMFAAABAAAA9AUAAPQFAAAKAAAAAAYAAAUGAAAGAAAADAYAAA0GAAALAAAAEAYAABoGAAAEAAAAHAYAABwGAAAGAAAAIAYAAEoGAAABAAAASwYAAF8GAAAEAAAAYAYAAGkGAAAOAAAAawYAAGsGAAAOAAAAbAYAAGwGAAALAAAAbgYAAG8GAAABAAAAcAYAAHAGAAAEAAAAcQYAANMGAAABAAAA1QYAANUGAAABAAAA1gYAANwGAAAEAAAA3QYAAN0GAAAGAAAA3wYAAOQGAAAEAAAA5QYAAOYGAAABAAAA5wYAAOgGAAAEAAAA6gYAAO0GAAAEAAAA7gYAAO8GAAABAAAA8AYAAPkGAAAOAAAA+gYAAPwGAAABAAAA/wYAAP8GAAABAAAADwcAAA8HAAAGAAAAEAcAABAHAAABAAAAEQcAABEHAAAEAAAAEgcAAC8HAAABAAAAMAcAAEoHAAAEAAAATQcAAKUHAAABAAAApgcAALAHAAAEAAAAsQcAALEHAAABAAAAwAcAAMkHAAAOAAAAygcAAOoHAAABAAAA6wcAAPMHAAAEAAAA9AcAAPUHAAABAAAA+AcAAPgHAAALAAAA+gcAAPoHAAABAAAA/QcAAP0HAAAEAAAAAAgAABUIAAABAAAAFggAABkIAAAEAAAAGggAABoIAAABAAAAGwgAACMIAAAEAAAAJAgAACQIAAABAAAAJQgAACcIAAAEAAAAKAgAACgIAAABAAAAKQgAAC0IAAAEAAAAQAgAAFgIAAABAAAAWQgAAFsIAAAEAAAAYAgAAGoIAAABAAAAcAgAAIcIAAABAAAAiQgAAI4IAAABAAAAkAgAAJEIAAAGAAAAmAgAAJ8IAAAEAAAAoAgAAMkIAAABAAAAyggAAOEIAAAEAAAA4ggAAOIIAAAGAAAA4wgAAAMJAAAEAAAABAkAADkJAAABAAAAOgkAADwJAAAEAAAAPQkAAD0JAAABAAAAPgkAAE8JAAAEAAAAUAkAAFAJAAABAAAAUQkAAFcJAAAEAAAAWAkAAGEJAAABAAAAYgkAAGMJAAAEAAAAZgkAAG8JAAAOAAAAcQkAAIAJAAABAAAAgQkAAIMJAAAEAAAAhQkAAIwJAAABAAAAjwkAAJAJAAABAAAAkwkAAKgJAAABAAAAqgkAALAJAAABAAAAsgkAALIJAAABAAAAtgkAALkJAAABAAAAvAkAALwJAAAEAAAAvQkAAL0JAAABAAAAvgkAAMQJAAAEAAAAxwkAAMgJAAAEAAAAywkAAM0JAAAEAAAAzgkAAM4JAAABAAAA1wkAANcJAAAEAAAA3AkAAN0JAAABAAAA3wkAAOEJAAABAAAA4gkAAOMJAAAEAAAA5gkAAO8JAAAOAAAA8AkAAPEJAAABAAAA/AkAAPwJAAABAAAA/gkAAP4JAAAEAAAAAQoAAAMKAAAEAAAABQoAAAoKAAABAAAADwoAABAKAAABAAAAEwoAACgKAAABAAAAKgoAADAKAAABAAAAMgoAADMKAAABAAAANQoAADYKAAABAAAAOAoAADkKAAABAAAAPAoAADwKAAAEAAAAPgoAAEIKAAAEAAAARwoAAEgKAAAEAAAASwoAAE0KAAAEAAAAUQoAAFEKAAAEAAAAWQoAAFwKAAABAAAAXgoAAF4KAAABAAAAZgoAAG8KAAAOAAAAcAoAAHEKAAAEAAAAcgoAAHQKAAABAAAAdQoAAHUKAAAEAAAAgQoAAIMKAAAEAAAAhQoAAI0KAAABAAAAjwoAAJEKAAABAAAAkwoAAKgKAAABAAAAqgoAALAKAAABAAAAsgoAALMKAAABAAAAtQoAALkKAAABAAAAvAoAALwKAAAEAAAAvQoAAL0KAAABAAAAvgoAAMUKAAAEAAAAxwoAAMkKAAAEAAAAywoAAM0KAAAEAAAA0AoAANAKAAABAAAA4AoAAOEKAAABAAAA4goAAOMKAAAEAAAA5goAAO8KAAAOAAAA+QoAAPkKAAABAAAA+goAAP8KAAAEAAAAAQsAAAMLAAAEAAAABQsAAAwLAAABAAAADwsAABALAAABAAAAEwsAACgLAAABAAAAKgsAADALAAABAAAAMgsAADMLAAABAAAANQsAADkLAAABAAAAPAsAADwLAAAEAAAAPQsAAD0LAAABAAAAPgsAAEQLAAAEAAAARwsAAEgLAAAEAAAASwsAAE0LAAAEAAAAVQsAAFcLAAAEAAAAXAsAAF0LAAABAAAAXwsAAGELAAABAAAAYgsAAGMLAAAEAAAAZgsAAG8LAAAOAAAAcQsAAHELAAABAAAAggsAAIILAAAEAAAAgwsAAIMLAAABAAAAhQsAAIoLAAABAAAAjgsAAJALAAABAAAAkgsAAJULAAABAAAAmQsAAJoLAAABAAAAnAsAAJwLAAABAAAAngsAAJ8LAAABAAAAowsAAKQLAAABAAAAqAsAAKoLAAABAAAArgsAALkLAAABAAAAvgsAAMILAAAEAAAAxgsAAMgLAAAEAAAAygsAAM0LAAAEAAAA0AsAANALAAABAAAA1wsAANcLAAAEAAAA5gsAAO8LAAAOAAAAAAwAAAQMAAAEAAAABQwAAAwMAAABAAAADgwAABAMAAABAAAAEgwAACgMAAABAAAAKgwAADkMAAABAAAAPAwAADwMAAAEAAAAPQwAAD0MAAABAAAAPgwAAEQMAAAEAAAARgwAAEgMAAAEAAAASgwAAE0MAAAEAAAAVQwAAFYMAAAEAAAAWAwAAFoMAAABAAAAXQwAAF0MAAABAAAAYAwAAGEMAAABAAAAYgwAAGMMAAAEAAAAZgwAAG8MAAAOAAAAgAwAAIAMAAABAAAAgQwAAIMMAAAEAAAAhQwAAIwMAAABAAAAjgwAAJAMAAABAAAAkgwAAKgMAAABAAAAqgwAALMMAAABAAAAtQwAALkMAAABAAAAvAwAALwMAAAEAAAAvQwAAL0MAAABAAAAvgwAAMQMAAAEAAAAxgwAAMgMAAAEAAAAygwAAM0MAAAEAAAA1QwAANYMAAAEAAAA3QwAAN4MAAABAAAA4AwAAOEMAAABAAAA4gwAAOMMAAAEAAAA5gwAAO8MAAAOAAAA8QwAAPIMAAABAAAAAA0AAAMNAAAEAAAABA0AAAwNAAABAAAADg0AABANAAABAAAAEg0AADoNAAABAAAAOw0AADwNAAAEAAAAPQ0AAD0NAAABAAAAPg0AAEQNAAAEAAAARg0AAEgNAAAEAAAASg0AAE0NAAAEAAAATg0AAE4NAAABAAAAVA0AAFYNAAABAAAAVw0AAFcNAAAEAAAAXw0AAGENAAABAAAAYg0AAGMNAAAEAAAAZg0AAG8NAAAOAAAAeg0AAH8NAAABAAAAgQ0AAIMNAAAEAAAAhQ0AAJYNAAABAAAAmg0AALENAAABAAAAsw0AALsNAAABAAAAvQ0AAL0NAAABAAAAwA0AAMYNAAABAAAAyg0AAMoNAAAEAAAAzw0AANQNAAAEAAAA1g0AANYNAAAEAAAA2A0AAN8NAAAEAAAA5g0AAO8NAAAOAAAA8g0AAPMNAAAEAAAAMQ4AADEOAAAEAAAANA4AADoOAAAEAAAARw4AAE4OAAAEAAAAUA4AAFkOAAAOAAAAsQ4AALEOAAAEAAAAtA4AALwOAAAEAAAAyA4AAM0OAAAEAAAA0A4AANkOAAAOAAAAAA8AAAAPAAABAAAAGA8AABkPAAAEAAAAIA8AACkPAAAOAAAANQ8AADUPAAAEAAAANw8AADcPAAAEAAAAOQ8AADkPAAAEAAAAPg8AAD8PAAAEAAAAQA8AAEcPAAABAAAASQ8AAGwPAAABAAAAcQ8AAIQPAAAEAAAAhg8AAIcPAAAEAAAAiA8AAIwPAAABAAAAjQ8AAJcPAAAEAAAAmQ8AALwPAAAEAAAAxg8AAMYPAAAEAAAAKxAAAD4QAAAEAAAAQBAAAEkQAAAOAAAAVhAAAFkQAAAEAAAAXhAAAGAQAAAEAAAAYhAAAGQQAAAEAAAAZxAAAG0QAAAEAAAAcRAAAHQQAAAEAAAAghAAAI0QAAAEAAAAjxAAAI8QAAAEAAAAkBAAAJkQAAAOAAAAmhAAAJ0QAAAEAAAAoBAAAMUQAAABAAAAxxAAAMcQAAABAAAAzRAAAM0QAAABAAAA0BAAAPoQAAABAAAA/BAAAEgSAAABAAAAShIAAE0SAAABAAAAUBIAAFYSAAABAAAAWBIAAFgSAAABAAAAWhIAAF0SAAABAAAAYBIAAIgSAAABAAAAihIAAI0SAAABAAAAkBIAALASAAABAAAAshIAALUSAAABAAAAuBIAAL4SAAABAAAAwBIAAMASAAABAAAAwhIAAMUSAAABAAAAyBIAANYSAAABAAAA2BIAABATAAABAAAAEhMAABUTAAABAAAAGBMAAFoTAAABAAAAXRMAAF8TAAAEAAAAgBMAAI8TAAABAAAAoBMAAPUTAAABAAAA+BMAAP0TAAABAAAAARQAAGwWAAABAAAAbxYAAH8WAAABAAAAgBYAAIAWAAARAAAAgRYAAJoWAAABAAAAoBYAAOoWAAABAAAA7hYAAPgWAAABAAAAABcAABEXAAABAAAAEhcAABUXAAAEAAAAHxcAADEXAAABAAAAMhcAADQXAAAEAAAAQBcAAFEXAAABAAAAUhcAAFMXAAAEAAAAYBcAAGwXAAABAAAAbhcAAHAXAAABAAAAchcAAHMXAAAEAAAAtBcAANMXAAAEAAAA3RcAAN0XAAAEAAAA4BcAAOkXAAAOAAAACxgAAA0YAAAEAAAADhgAAA4YAAAGAAAADxgAAA8YAAAEAAAAEBgAABkYAAAOAAAAIBgAAHgYAAABAAAAgBgAAIQYAAABAAAAhRgAAIYYAAAEAAAAhxgAAKgYAAABAAAAqRgAAKkYAAAEAAAAqhgAAKoYAAABAAAAsBgAAPUYAAABAAAAABkAAB4ZAAABAAAAIBkAACsZAAAEAAAAMBkAADsZAAAEAAAARhkAAE8ZAAAOAAAA0BkAANkZAAAOAAAAABoAABYaAAABAAAAFxoAABsaAAAEAAAAVRoAAF4aAAAEAAAAYBoAAHwaAAAEAAAAfxoAAH8aAAAEAAAAgBoAAIkaAAAOAAAAkBoAAJkaAAAOAAAAsBoAAM4aAAAEAAAAABsAAAQbAAAEAAAABRsAADMbAAABAAAANBsAAEQbAAAEAAAARRsAAEwbAAABAAAAUBsAAFkbAAAOAAAAaxsAAHMbAAAEAAAAgBsAAIIbAAAEAAAAgxsAAKAbAAABAAAAoRsAAK0bAAAEAAAArhsAAK8bAAABAAAAsBsAALkbAAAOAAAAuhsAAOUbAAABAAAA5hsAAPMbAAAEAAAAABwAACMcAAABAAAAJBwAADccAAAEAAAAQBwAAEkcAAAOAAAATRwAAE8cAAABAAAAUBwAAFkcAAAOAAAAWhwAAH0cAAABAAAAgBwAAIgcAAABAAAAkBwAALocAAABAAAAvRwAAL8cAAABAAAA0BwAANIcAAAEAAAA1BwAAOgcAAAEAAAA6RwAAOwcAAABAAAA7RwAAO0cAAAEAAAA7hwAAPMcAAABAAAA9BwAAPQcAAAEAAAA9RwAAPYcAAABAAAA9xwAAPkcAAAEAAAA+hwAAPocAAABAAAAAB0AAL8dAAABAAAAwB0AAP8dAAAEAAAAAB4AABUfAAABAAAAGB8AAB0fAAABAAAAIB8AAEUfAAABAAAASB8AAE0fAAABAAAAUB8AAFcfAAABAAAAWR8AAFkfAAABAAAAWx8AAFsfAAABAAAAXR8AAF0fAAABAAAAXx8AAH0fAAABAAAAgB8AALQfAAABAAAAth8AALwfAAABAAAAvh8AAL4fAAABAAAAwh8AAMQfAAABAAAAxh8AAMwfAAABAAAA0B8AANMfAAABAAAA1h8AANsfAAABAAAA4B8AAOwfAAABAAAA8h8AAPQfAAABAAAA9h8AAPwfAAABAAAAACAAAAYgAAARAAAACCAAAAogAAARAAAADCAAAAwgAAAEAAAADSAAAA0gAAASAAAADiAAAA8gAAAGAAAAGCAAABkgAAAMAAAAJCAAACQgAAAMAAAAJyAAACcgAAAKAAAAKCAAACkgAAANAAAAKiAAAC4gAAAGAAAALyAAAC8gAAAFAAAAPyAAAEAgAAAFAAAARCAAAEQgAAALAAAAVCAAAFQgAAAFAAAAXyAAAF8gAAARAAAAYCAAAGQgAAAGAAAAZiAAAG8gAAAGAAAAcSAAAHEgAAABAAAAfyAAAH8gAAABAAAAkCAAAJwgAAABAAAA0CAAAPAgAAAEAAAAAiEAAAIhAAABAAAAByEAAAchAAABAAAACiEAABMhAAABAAAAFSEAABUhAAABAAAAGSEAAB0hAAABAAAAJCEAACQhAAABAAAAJiEAACYhAAABAAAAKCEAACghAAABAAAAKiEAAC0hAAABAAAALyEAADkhAAABAAAAPCEAAD8hAAABAAAARSEAAEkhAAABAAAATiEAAE4hAAABAAAAYCEAAIghAAABAAAAtiQAAOkkAAABAAAAACwAAOQsAAABAAAA6ywAAO4sAAABAAAA7ywAAPEsAAAEAAAA8iwAAPMsAAABAAAAAC0AACUtAAABAAAAJy0AACctAAABAAAALS0AAC0tAAABAAAAMC0AAGctAAABAAAAby0AAG8tAAABAAAAfy0AAH8tAAAEAAAAgC0AAJYtAAABAAAAoC0AAKYtAAABAAAAqC0AAK4tAAABAAAAsC0AALYtAAABAAAAuC0AAL4tAAABAAAAwC0AAMYtAAABAAAAyC0AAM4tAAABAAAA0C0AANYtAAABAAAA2C0AAN4tAAABAAAA4C0AAP8tAAAEAAAALy4AAC8uAAABAAAAADAAAAAwAAARAAAABTAAAAUwAAABAAAAKjAAAC8wAAAEAAAAMTAAADUwAAAIAAAAOzAAADwwAAABAAAAmTAAAJowAAAEAAAAmzAAAJwwAAAIAAAAoDAAAPowAAAIAAAA/DAAAP8wAAAIAAAABTEAAC8xAAABAAAAMTEAAI4xAAABAAAAoDEAAL8xAAABAAAA8DEAAP8xAAAIAAAA0DIAAP4yAAAIAAAAADMAAFczAAAIAAAAAKAAAIykAAABAAAA0KQAAP2kAAABAAAAAKUAAAymAAABAAAAEKYAAB+mAAABAAAAIKYAACmmAAAOAAAAKqYAACumAAABAAAAQKYAAG6mAAABAAAAb6YAAHKmAAAEAAAAdKYAAH2mAAAEAAAAf6YAAJ2mAAABAAAAnqYAAJ+mAAAEAAAAoKYAAO+mAAABAAAA8KYAAPGmAAAEAAAACKcAAMqnAAABAAAA0KcAANGnAAABAAAA06cAANOnAAABAAAA1acAANmnAAABAAAA8qcAAAGoAAABAAAAAqgAAAKoAAAEAAAAA6gAAAWoAAABAAAABqgAAAaoAAAEAAAAB6gAAAqoAAABAAAAC6gAAAuoAAAEAAAADKgAACKoAAABAAAAI6gAACeoAAAEAAAALKgAACyoAAAEAAAAQKgAAHOoAAABAAAAgKgAAIGoAAAEAAAAgqgAALOoAAABAAAAtKgAAMWoAAAEAAAA0KgAANmoAAAOAAAA4KgAAPGoAAAEAAAA8qgAAPeoAAABAAAA+6gAAPuoAAABAAAA/agAAP6oAAABAAAA/6gAAP+oAAAEAAAAAKkAAAmpAAAOAAAACqkAACWpAAABAAAAJqkAAC2pAAAEAAAAMKkAAEapAAABAAAAR6kAAFOpAAAEAAAAYKkAAHypAAABAAAAgKkAAIOpAAAEAAAAhKkAALKpAAABAAAAs6kAAMCpAAAEAAAAz6kAAM+pAAABAAAA0KkAANmpAAAOAAAA5akAAOWpAAAEAAAA8KkAAPmpAAAOAAAAAKoAACiqAAABAAAAKaoAADaqAAAEAAAAQKoAAEKqAAABAAAAQ6oAAEOqAAAEAAAARKoAAEuqAAABAAAATKoAAE2qAAAEAAAAUKoAAFmqAAAOAAAAe6oAAH2qAAAEAAAAsKoAALCqAAAEAAAAsqoAALSqAAAEAAAAt6oAALiqAAAEAAAAvqoAAL+qAAAEAAAAwaoAAMGqAAAEAAAA4KoAAOqqAAABAAAA66oAAO+qAAAEAAAA8qoAAPSqAAABAAAA9aoAAPaqAAAEAAAAAasAAAarAAABAAAACasAAA6rAAABAAAAEasAABarAAABAAAAIKsAACarAAABAAAAKKsAAC6rAAABAAAAMKsAAGmrAAABAAAAcKsAAOKrAAABAAAA46sAAOqrAAAEAAAA7KsAAO2rAAAEAAAA8KsAAPmrAAAOAAAAAKwAAKPXAAABAAAAsNcAAMbXAAABAAAAy9cAAPvXAAABAAAAAPsAAAb7AAABAAAAE/sAABf7AAABAAAAHfsAAB37AAAHAAAAHvsAAB77AAAEAAAAH/sAACj7AAAHAAAAKvsAADb7AAAHAAAAOPsAADz7AAAHAAAAPvsAAD77AAAHAAAAQPsAAEH7AAAHAAAAQ/sAAET7AAAHAAAARvsAAE/7AAAHAAAAUPsAALH7AAABAAAA0/sAAD39AAABAAAAUP0AAI/9AAABAAAAkv0AAMf9AAABAAAA8P0AAPv9AAABAAAAAP4AAA/+AAAEAAAAEP4AABD+AAALAAAAE/4AABP+AAAKAAAAFP4AABT+AAALAAAAIP4AAC/+AAAEAAAAM/4AADT+AAAFAAAATf4AAE/+AAAFAAAAUP4AAFD+AAALAAAAUv4AAFL+AAAMAAAAVP4AAFT+AAALAAAAVf4AAFX+AAAKAAAAcP4AAHT+AAABAAAAdv4AAPz+AAABAAAA//4AAP/+AAAGAAAAB/8AAAf/AAAMAAAADP8AAAz/AAALAAAADv8AAA7/AAAMAAAAEP8AABn/AAAOAAAAGv8AABr/AAAKAAAAG/8AABv/AAALAAAAIf8AADr/AAABAAAAP/8AAD//AAAFAAAAQf8AAFr/AAABAAAAZv8AAJ3/AAAIAAAAnv8AAJ//AAAEAAAAoP8AAL7/AAABAAAAwv8AAMf/AAABAAAAyv8AAM//AAABAAAA0v8AANf/AAABAAAA2v8AANz/AAABAAAA+f8AAPv/AAAGAAAAAAABAAsAAQABAAAADQABACYAAQABAAAAKAABADoAAQABAAAAPAABAD0AAQABAAAAPwABAE0AAQABAAAAUAABAF0AAQABAAAAgAABAPoAAQABAAAAQAEBAHQBAQABAAAA/QEBAP0BAQAEAAAAgAIBAJwCAQABAAAAoAIBANACAQABAAAA4AIBAOACAQAEAAAAAAMBAB8DAQABAAAALQMBAEoDAQABAAAAUAMBAHUDAQABAAAAdgMBAHoDAQAEAAAAgAMBAJ0DAQABAAAAoAMBAMMDAQABAAAAyAMBAM8DAQABAAAA0QMBANUDAQABAAAAAAQBAJ0EAQABAAAAoAQBAKkEAQAOAAAAsAQBANMEAQABAAAA2AQBAPsEAQABAAAAAAUBACcFAQABAAAAMAUBAGMFAQABAAAAcAUBAHoFAQABAAAAfAUBAIoFAQABAAAAjAUBAJIFAQABAAAAlAUBAJUFAQABAAAAlwUBAKEFAQABAAAAowUBALEFAQABAAAAswUBALkFAQABAAAAuwUBALwFAQABAAAAAAYBADYHAQABAAAAQAcBAFUHAQABAAAAYAcBAGcHAQABAAAAgAcBAIUHAQABAAAAhwcBALAHAQABAAAAsgcBALoHAQABAAAAAAgBAAUIAQABAAAACAgBAAgIAQABAAAACggBADUIAQABAAAANwgBADgIAQABAAAAPAgBADwIAQABAAAAPwgBAFUIAQABAAAAYAgBAHYIAQABAAAAgAgBAJ4IAQABAAAA4AgBAPIIAQABAAAA9AgBAPUIAQABAAAAAAkBABUJAQABAAAAIAkBADkJAQABAAAAgAkBALcJAQABAAAAvgkBAL8JAQABAAAAAAoBAAAKAQABAAAAAQoBAAMKAQAEAAAABQoBAAYKAQAEAAAADAoBAA8KAQAEAAAAEAoBABMKAQABAAAAFQoBABcKAQABAAAAGQoBADUKAQABAAAAOAoBADoKAQAEAAAAPwoBAD8KAQAEAAAAYAoBAHwKAQABAAAAgAoBAJwKAQABAAAAwAoBAMcKAQABAAAAyQoBAOQKAQABAAAA5QoBAOYKAQAEAAAAAAsBADULAQABAAAAQAsBAFULAQABAAAAYAsBAHILAQABAAAAgAsBAJELAQABAAAAAAwBAEgMAQABAAAAgAwBALIMAQABAAAAwAwBAPIMAQABAAAAAA0BACMNAQABAAAAJA0BACcNAQAEAAAAMA0BADkNAQAOAAAAgA4BAKkOAQABAAAAqw4BAKwOAQAEAAAAsA4BALEOAQABAAAAAA8BABwPAQABAAAAJw8BACcPAQABAAAAMA8BAEUPAQABAAAARg8BAFAPAQAEAAAAcA8BAIEPAQABAAAAgg8BAIUPAQAEAAAAsA8BAMQPAQABAAAA4A8BAPYPAQABAAAAABABAAIQAQAEAAAAAxABADcQAQABAAAAOBABAEYQAQAEAAAAZhABAG8QAQAOAAAAcBABAHAQAQAEAAAAcRABAHIQAQABAAAAcxABAHQQAQAEAAAAdRABAHUQAQABAAAAfxABAIIQAQAEAAAAgxABAK8QAQABAAAAsBABALoQAQAEAAAAvRABAL0QAQAGAAAAwhABAMIQAQAEAAAAzRABAM0QAQAGAAAA0BABAOgQAQABAAAA8BABAPkQAQAOAAAAABEBAAIRAQAEAAAAAxEBACYRAQABAAAAJxEBADQRAQAEAAAANhEBAD8RAQAOAAAARBEBAEQRAQABAAAARREBAEYRAQAEAAAARxEBAEcRAQABAAAAUBEBAHIRAQABAAAAcxEBAHMRAQAEAAAAdhEBAHYRAQABAAAAgBEBAIIRAQAEAAAAgxEBALIRAQABAAAAsxEBAMARAQAEAAAAwREBAMQRAQABAAAAyREBAMwRAQAEAAAAzhEBAM8RAQAEAAAA0BEBANkRAQAOAAAA2hEBANoRAQABAAAA3BEBANwRAQABAAAAABIBABESAQABAAAAExIBACsSAQABAAAALBIBADcSAQAEAAAAPhIBAD4SAQAEAAAAgBIBAIYSAQABAAAAiBIBAIgSAQABAAAAihIBAI0SAQABAAAAjxIBAJ0SAQABAAAAnxIBAKgSAQABAAAAsBIBAN4SAQABAAAA3xIBAOoSAQAEAAAA8BIBAPkSAQAOAAAAABMBAAMTAQAEAAAABRMBAAwTAQABAAAADxMBABATAQABAAAAExMBACgTAQABAAAAKhMBADATAQABAAAAMhMBADMTAQABAAAANRMBADkTAQABAAAAOxMBADwTAQAEAAAAPRMBAD0TAQABAAAAPhMBAEQTAQAEAAAARxMBAEgTAQAEAAAASxMBAE0TAQAEAAAAUBMBAFATAQABAAAAVxMBAFcTAQAEAAAAXRMBAGETAQABAAAAYhMBAGMTAQAEAAAAZhMBAGwTAQAEAAAAcBMBAHQTAQAEAAAAABQBADQUAQABAAAANRQBAEYUAQAEAAAARxQBAEoUAQABAAAAUBQBAFkUAQAOAAAAXhQBAF4UAQAEAAAAXxQBAGEUAQABAAAAgBQBAK8UAQABAAAAsBQBAMMUAQAEAAAAxBQBAMUUAQABAAAAxxQBAMcUAQABAAAA0BQBANkUAQAOAAAAgBUBAK4VAQABAAAArxUBALUVAQAEAAAAuBUBAMAVAQAEAAAA2BUBANsVAQABAAAA3BUBAN0VAQAEAAAAABYBAC8WAQABAAAAMBYBAEAWAQAEAAAARBYBAEQWAQABAAAAUBYBAFkWAQAOAAAAgBYBAKoWAQABAAAAqxYBALcWAQAEAAAAuBYBALgWAQABAAAAwBYBAMkWAQAOAAAAHRcBACsXAQAEAAAAMBcBADkXAQAOAAAAABgBACsYAQABAAAALBgBADoYAQAEAAAAoBgBAN8YAQABAAAA4BgBAOkYAQAOAAAA/xgBAAYZAQABAAAACRkBAAkZAQABAAAADBkBABMZAQABAAAAFRkBABYZAQABAAAAGBkBAC8ZAQABAAAAMBkBADUZAQAEAAAANxkBADgZAQAEAAAAOxkBAD4ZAQAEAAAAPxkBAD8ZAQABAAAAQBkBAEAZAQAEAAAAQRkBAEEZAQABAAAAQhkBAEMZAQAEAAAAUBkBAFkZAQAOAAAAoBkBAKcZAQABAAAAqhkBANAZAQABAAAA0RkBANcZAQAEAAAA2hkBAOAZAQAEAAAA4RkBAOEZAQABAAAA4xkBAOMZAQABAAAA5BkBAOQZAQAEAAAAABoBAAAaAQABAAAAARoBAAoaAQAEAAAACxoBADIaAQABAAAAMxoBADkaAQAEAAAAOhoBADoaAQABAAAAOxoBAD4aAQAEAAAARxoBAEcaAQAEAAAAUBoBAFAaAQABAAAAURoBAFsaAQAEAAAAXBoBAIkaAQABAAAAihoBAJkaAQAEAAAAnRoBAJ0aAQABAAAAsBoBAPgaAQABAAAAABwBAAgcAQABAAAAChwBAC4cAQABAAAALxwBADYcAQAEAAAAOBwBAD8cAQAEAAAAQBwBAEAcAQABAAAAUBwBAFkcAQAOAAAAchwBAI8cAQABAAAAkhwBAKccAQAEAAAAqRwBALYcAQAEAAAAAB0BAAYdAQABAAAACB0BAAkdAQABAAAACx0BADAdAQABAAAAMR0BADYdAQAEAAAAOh0BADodAQAEAAAAPB0BAD0dAQAEAAAAPx0BAEUdAQAEAAAARh0BAEYdAQABAAAARx0BAEcdAQAEAAAAUB0BAFkdAQAOAAAAYB0BAGUdAQABAAAAZx0BAGgdAQABAAAAah0BAIkdAQABAAAAih0BAI4dAQAEAAAAkB0BAJEdAQAEAAAAkx0BAJcdAQAEAAAAmB0BAJgdAQABAAAAoB0BAKkdAQAOAAAA4B4BAPIeAQABAAAA8x4BAPYeAQAEAAAAsB8BALAfAQABAAAAACABAJkjAQABAAAAACQBAG4kAQABAAAAgCQBAEMlAQABAAAAkC8BAPAvAQABAAAAADABAC40AQABAAAAMDQBADg0AQAGAAAAAEQBAEZGAQABAAAAAGgBADhqAQABAAAAQGoBAF5qAQABAAAAYGoBAGlqAQAOAAAAcGoBAL5qAQABAAAAwGoBAMlqAQAOAAAA0GoBAO1qAQABAAAA8GoBAPRqAQAEAAAAAGsBAC9rAQABAAAAMGsBADZrAQAEAAAAQGsBAENrAQABAAAAUGsBAFlrAQAOAAAAY2sBAHdrAQABAAAAfWsBAI9rAQABAAAAQG4BAH9uAQABAAAAAG8BAEpvAQABAAAAT28BAE9vAQAEAAAAUG8BAFBvAQABAAAAUW8BAIdvAQAEAAAAj28BAJJvAQAEAAAAk28BAJ9vAQABAAAA4G8BAOFvAQABAAAA428BAONvAQABAAAA5G8BAORvAQAEAAAA8G8BAPFvAQAEAAAA8K8BAPOvAQAIAAAA9a8BAPuvAQAIAAAA/a8BAP6vAQAIAAAAALABAACwAQAIAAAAILEBACKxAQAIAAAAZLEBAGexAQAIAAAAALwBAGq8AQABAAAAcLwBAHy8AQABAAAAgLwBAIi8AQABAAAAkLwBAJm8AQABAAAAnbwBAJ68AQAEAAAAoLwBAKO8AQAGAAAAAM8BAC3PAQAEAAAAMM8BAEbPAQAEAAAAZdEBAGnRAQAEAAAAbdEBAHLRAQAEAAAAc9EBAHrRAQAGAAAAe9EBAILRAQAEAAAAhdEBAIvRAQAEAAAAqtEBAK3RAQAEAAAAQtIBAETSAQAEAAAAANQBAFTUAQABAAAAVtQBAJzUAQABAAAAntQBAJ/UAQABAAAAotQBAKLUAQABAAAApdQBAKbUAQABAAAAqdQBAKzUAQABAAAArtQBALnUAQABAAAAu9QBALvUAQABAAAAvdQBAMPUAQABAAAAxdQBAAXVAQABAAAAB9UBAArVAQABAAAADdUBABTVAQABAAAAFtUBABzVAQABAAAAHtUBADnVAQABAAAAO9UBAD7VAQABAAAAQNUBAETVAQABAAAARtUBAEbVAQABAAAAStUBAFDVAQABAAAAUtUBAKXWAQABAAAAqNYBAMDWAQABAAAAwtYBANrWAQABAAAA3NYBAPrWAQABAAAA/NYBABTXAQABAAAAFtcBADTXAQABAAAANtcBAE7XAQABAAAAUNcBAG7XAQABAAAAcNcBAIjXAQABAAAAitcBAKjXAQABAAAAqtcBAMLXAQABAAAAxNcBAMvXAQABAAAAztcBAP/XAQAOAAAAANoBADbaAQAEAAAAO9oBAGzaAQAEAAAAddoBAHXaAQAEAAAAhNoBAITaAQAEAAAAm9oBAJ/aAQAEAAAAodoBAK/aAQAEAAAAAN8BAB7fAQABAAAAAOABAAbgAQAEAAAACOABABjgAQAEAAAAG+ABACHgAQAEAAAAI+ABACTgAQAEAAAAJuABACrgAQAEAAAAAOEBACzhAQABAAAAMOEBADbhAQAEAAAAN+EBAD3hAQABAAAAQOEBAEnhAQAOAAAATuEBAE7hAQABAAAAkOIBAK3iAQABAAAAruIBAK7iAQAEAAAAwOIBAOviAQABAAAA7OIBAO/iAQAEAAAA8OIBAPniAQAOAAAA4OcBAObnAQABAAAA6OcBAOvnAQABAAAA7ecBAO7nAQABAAAA8OcBAP7nAQABAAAAAOgBAMToAQABAAAA0OgBANboAQAEAAAAAOkBAEPpAQABAAAAROkBAErpAQAEAAAAS+kBAEvpAQABAAAAUOkBAFnpAQAOAAAAAO4BAAPuAQABAAAABe4BAB/uAQABAAAAIe4BACLuAQABAAAAJO4BACTuAQABAAAAJ+4BACfuAQABAAAAKe4BADLuAQABAAAANO4BADfuAQABAAAAOe4BADnuAQABAAAAO+4BADvuAQABAAAAQu4BAELuAQABAAAAR+4BAEfuAQABAAAASe4BAEnuAQABAAAAS+4BAEvuAQABAAAATe4BAE/uAQABAAAAUe4BAFLuAQABAAAAVO4BAFTuAQABAAAAV+4BAFfuAQABAAAAWe4BAFnuAQABAAAAW+4BAFvuAQABAAAAXe4BAF3uAQABAAAAX+4BAF/uAQABAAAAYe4BAGLuAQABAAAAZO4BAGTuAQABAAAAZ+4BAGruAQABAAAAbO4BAHLuAQABAAAAdO4BAHfuAQABAAAAee4BAHzuAQABAAAAfu4BAH7uAQABAAAAgO4BAInuAQABAAAAi+4BAJvuAQABAAAAoe4BAKPuAQABAAAApe4BAKnuAQABAAAAq+4BALvuAQABAAAAMPEBAEnxAQABAAAAUPEBAGnxAQABAAAAcPEBAInxAQABAAAA5vEBAP/xAQAPAAAA+/MBAP/zAQAEAAAA8PsBAPn7AQAOAAAAAQAOAAEADgAGAAAAIAAOAH8ADgAEAAAAAAEOAO8BDgAEAEHEmAELn6wBCQAAAAMAAAAKAAAACgAAAAIAAAALAAAADAAAAAMAAAANAAAADQAAAAEAAAAOAAAAHwAAAAMAAAB/AAAAnwAAAAMAAACtAAAArQAAAAMAAAAAAwAAbwMAAAQAAACDBAAAiQQAAAQAAACRBQAAvQUAAAQAAAC/BQAAvwUAAAQAAADBBQAAwgUAAAQAAADEBQAAxQUAAAQAAADHBQAAxwUAAAQAAAAABgAABQYAAAUAAAAQBgAAGgYAAAQAAAAcBgAAHAYAAAMAAABLBgAAXwYAAAQAAABwBgAAcAYAAAQAAADWBgAA3AYAAAQAAADdBgAA3QYAAAUAAADfBgAA5AYAAAQAAADnBgAA6AYAAAQAAADqBgAA7QYAAAQAAAAPBwAADwcAAAUAAAARBwAAEQcAAAQAAAAwBwAASgcAAAQAAACmBwAAsAcAAAQAAADrBwAA8wcAAAQAAAD9BwAA/QcAAAQAAAAWCAAAGQgAAAQAAAAbCAAAIwgAAAQAAAAlCAAAJwgAAAQAAAApCAAALQgAAAQAAABZCAAAWwgAAAQAAACQCAAAkQgAAAUAAACYCAAAnwgAAAQAAADKCAAA4QgAAAQAAADiCAAA4ggAAAUAAADjCAAAAgkAAAQAAAADCQAAAwkAAAcAAAA6CQAAOgkAAAQAAAA7CQAAOwkAAAcAAAA8CQAAPAkAAAQAAAA+CQAAQAkAAAcAAABBCQAASAkAAAQAAABJCQAATAkAAAcAAABNCQAATQkAAAQAAABOCQAATwkAAAcAAABRCQAAVwkAAAQAAABiCQAAYwkAAAQAAACBCQAAgQkAAAQAAACCCQAAgwkAAAcAAAC8CQAAvAkAAAQAAAC+CQAAvgkAAAQAAAC/CQAAwAkAAAcAAADBCQAAxAkAAAQAAADHCQAAyAkAAAcAAADLCQAAzAkAAAcAAADNCQAAzQkAAAQAAADXCQAA1wkAAAQAAADiCQAA4wkAAAQAAAD+CQAA/gkAAAQAAAABCgAAAgoAAAQAAAADCgAAAwoAAAcAAAA8CgAAPAoAAAQAAAA+CgAAQAoAAAcAAABBCgAAQgoAAAQAAABHCgAASAoAAAQAAABLCgAATQoAAAQAAABRCgAAUQoAAAQAAABwCgAAcQoAAAQAAAB1CgAAdQoAAAQAAACBCgAAggoAAAQAAACDCgAAgwoAAAcAAAC8CgAAvAoAAAQAAAC+CgAAwAoAAAcAAADBCgAAxQoAAAQAAADHCgAAyAoAAAQAAADJCgAAyQoAAAcAAADLCgAAzAoAAAcAAADNCgAAzQoAAAQAAADiCgAA4woAAAQAAAD6CgAA/woAAAQAAAABCwAAAQsAAAQAAAACCwAAAwsAAAcAAAA8CwAAPAsAAAQAAAA+CwAAPwsAAAQAAABACwAAQAsAAAcAAABBCwAARAsAAAQAAABHCwAASAsAAAcAAABLCwAATAsAAAcAAABNCwAATQsAAAQAAABVCwAAVwsAAAQAAABiCwAAYwsAAAQAAACCCwAAggsAAAQAAAC+CwAAvgsAAAQAAAC/CwAAvwsAAAcAAADACwAAwAsAAAQAAADBCwAAwgsAAAcAAADGCwAAyAsAAAcAAADKCwAAzAsAAAcAAADNCwAAzQsAAAQAAADXCwAA1wsAAAQAAAAADAAAAAwAAAQAAAABDAAAAwwAAAcAAAAEDAAABAwAAAQAAAA8DAAAPAwAAAQAAAA+DAAAQAwAAAQAAABBDAAARAwAAAcAAABGDAAASAwAAAQAAABKDAAATQwAAAQAAABVDAAAVgwAAAQAAABiDAAAYwwAAAQAAACBDAAAgQwAAAQAAACCDAAAgwwAAAcAAAC8DAAAvAwAAAQAAAC+DAAAvgwAAAcAAAC/DAAAvwwAAAQAAADADAAAwQwAAAcAAADCDAAAwgwAAAQAAADDDAAAxAwAAAcAAADGDAAAxgwAAAQAAADHDAAAyAwAAAcAAADKDAAAywwAAAcAAADMDAAAzQwAAAQAAADVDAAA1gwAAAQAAADiDAAA4wwAAAQAAAAADQAAAQ0AAAQAAAACDQAAAw0AAAcAAAA7DQAAPA0AAAQAAAA+DQAAPg0AAAQAAAA/DQAAQA0AAAcAAABBDQAARA0AAAQAAABGDQAASA0AAAcAAABKDQAATA0AAAcAAABNDQAATQ0AAAQAAABODQAATg0AAAUAAABXDQAAVw0AAAQAAABiDQAAYw0AAAQAAACBDQAAgQ0AAAQAAACCDQAAgw0AAAcAAADKDQAAyg0AAAQAAADPDQAAzw0AAAQAAADQDQAA0Q0AAAcAAADSDQAA1A0AAAQAAADWDQAA1g0AAAQAAADYDQAA3g0AAAcAAADfDQAA3w0AAAQAAADyDQAA8w0AAAcAAAAxDgAAMQ4AAAQAAAAzDgAAMw4AAAcAAAA0DgAAOg4AAAQAAABHDgAATg4AAAQAAACxDgAAsQ4AAAQAAACzDgAAsw4AAAcAAAC0DgAAvA4AAAQAAADIDgAAzQ4AAAQAAAAYDwAAGQ8AAAQAAAA1DwAANQ8AAAQAAAA3DwAANw8AAAQAAAA5DwAAOQ8AAAQAAAA+DwAAPw8AAAcAAABxDwAAfg8AAAQAAAB/DwAAfw8AAAcAAACADwAAhA8AAAQAAACGDwAAhw8AAAQAAACNDwAAlw8AAAQAAACZDwAAvA8AAAQAAADGDwAAxg8AAAQAAAAtEAAAMBAAAAQAAAAxEAAAMRAAAAcAAAAyEAAANxAAAAQAAAA5EAAAOhAAAAQAAAA7EAAAPBAAAAcAAAA9EAAAPhAAAAQAAABWEAAAVxAAAAcAAABYEAAAWRAAAAQAAABeEAAAYBAAAAQAAABxEAAAdBAAAAQAAACCEAAAghAAAAQAAACEEAAAhBAAAAcAAACFEAAAhhAAAAQAAACNEAAAjRAAAAQAAACdEAAAnRAAAAQAAAAAEQAAXxEAAA0AAABgEQAApxEAABEAAACoEQAA/xEAABAAAABdEwAAXxMAAAQAAAASFwAAFBcAAAQAAAAVFwAAFRcAAAcAAAAyFwAAMxcAAAQAAAA0FwAANBcAAAcAAABSFwAAUxcAAAQAAAByFwAAcxcAAAQAAAC0FwAAtRcAAAQAAAC2FwAAthcAAAcAAAC3FwAAvRcAAAQAAAC+FwAAxRcAAAcAAADGFwAAxhcAAAQAAADHFwAAyBcAAAcAAADJFwAA0xcAAAQAAADdFwAA3RcAAAQAAAALGAAADRgAAAQAAAAOGAAADhgAAAMAAAAPGAAADxgAAAQAAACFGAAAhhgAAAQAAACpGAAAqRgAAAQAAAAgGQAAIhkAAAQAAAAjGQAAJhkAAAcAAAAnGQAAKBkAAAQAAAApGQAAKxkAAAcAAAAwGQAAMRkAAAcAAAAyGQAAMhkAAAQAAAAzGQAAOBkAAAcAAAA5GQAAOxkAAAQAAAAXGgAAGBoAAAQAAAAZGgAAGhoAAAcAAAAbGgAAGxoAAAQAAABVGgAAVRoAAAcAAABWGgAAVhoAAAQAAABXGgAAVxoAAAcAAABYGgAAXhoAAAQAAABgGgAAYBoAAAQAAABiGgAAYhoAAAQAAABlGgAAbBoAAAQAAABtGgAAchoAAAcAAABzGgAAfBoAAAQAAAB/GgAAfxoAAAQAAACwGgAAzhoAAAQAAAAAGwAAAxsAAAQAAAAEGwAABBsAAAcAAAA0GwAAOhsAAAQAAAA7GwAAOxsAAAcAAAA8GwAAPBsAAAQAAAA9GwAAQRsAAAcAAABCGwAAQhsAAAQAAABDGwAARBsAAAcAAABrGwAAcxsAAAQAAACAGwAAgRsAAAQAAACCGwAAghsAAAcAAAChGwAAoRsAAAcAAACiGwAApRsAAAQAAACmGwAApxsAAAcAAACoGwAAqRsAAAQAAACqGwAAqhsAAAcAAACrGwAArRsAAAQAAADmGwAA5hsAAAQAAADnGwAA5xsAAAcAAADoGwAA6RsAAAQAAADqGwAA7BsAAAcAAADtGwAA7RsAAAQAAADuGwAA7hsAAAcAAADvGwAA8RsAAAQAAADyGwAA8xsAAAcAAAAkHAAAKxwAAAcAAAAsHAAAMxwAAAQAAAA0HAAANRwAAAcAAAA2HAAANxwAAAQAAADQHAAA0hwAAAQAAADUHAAA4BwAAAQAAADhHAAA4RwAAAcAAADiHAAA6BwAAAQAAADtHAAA7RwAAAQAAAD0HAAA9BwAAAQAAAD3HAAA9xwAAAcAAAD4HAAA+RwAAAQAAADAHQAA/x0AAAQAAAALIAAACyAAAAMAAAAMIAAADCAAAAQAAAANIAAADSAAAAgAAAAOIAAADyAAAAMAAAAoIAAALiAAAAMAAABgIAAAbyAAAAMAAADQIAAA8CAAAAQAAADvLAAA8SwAAAQAAAB/LQAAfy0AAAQAAADgLQAA/y0AAAQAAAAqMAAALzAAAAQAAACZMAAAmjAAAAQAAABvpgAAcqYAAAQAAAB0pgAAfaYAAAQAAACepgAAn6YAAAQAAADwpgAA8aYAAAQAAAACqAAAAqgAAAQAAAAGqAAABqgAAAQAAAALqAAAC6gAAAQAAAAjqAAAJKgAAAcAAAAlqAAAJqgAAAQAAAAnqAAAJ6gAAAcAAAAsqAAALKgAAAQAAACAqAAAgagAAAcAAAC0qAAAw6gAAAcAAADEqAAAxagAAAQAAADgqAAA8agAAAQAAAD/qAAA/6gAAAQAAAAmqQAALakAAAQAAABHqQAAUakAAAQAAABSqQAAU6kAAAcAAABgqQAAfKkAAA0AAACAqQAAgqkAAAQAAACDqQAAg6kAAAcAAACzqQAAs6kAAAQAAAC0qQAAtakAAAcAAAC2qQAAuakAAAQAAAC6qQAAu6kAAAcAAAC8qQAAvakAAAQAAAC+qQAAwKkAAAcAAADlqQAA5akAAAQAAAApqgAALqoAAAQAAAAvqgAAMKoAAAcAAAAxqgAAMqoAAAQAAAAzqgAANKoAAAcAAAA1qgAANqoAAAQAAABDqgAAQ6oAAAQAAABMqgAATKoAAAQAAABNqgAATaoAAAcAAAB8qgAAfKoAAAQAAACwqgAAsKoAAAQAAACyqgAAtKoAAAQAAAC3qgAAuKoAAAQAAAC+qgAAv6oAAAQAAADBqgAAwaoAAAQAAADrqgAA66oAAAcAAADsqgAA7aoAAAQAAADuqgAA76oAAAcAAAD1qgAA9aoAAAcAAAD2qgAA9qoAAAQAAADjqwAA5KsAAAcAAADlqwAA5asAAAQAAADmqwAA56sAAAcAAADoqwAA6KsAAAQAAADpqwAA6qsAAAcAAADsqwAA7KsAAAcAAADtqwAA7asAAAQAAAAArAAAAKwAAA4AAAABrAAAG6wAAA8AAAAcrAAAHKwAAA4AAAAdrAAAN6wAAA8AAAA4rAAAOKwAAA4AAAA5rAAAU6wAAA8AAABUrAAAVKwAAA4AAABVrAAAb6wAAA8AAABwrAAAcKwAAA4AAABxrAAAi6wAAA8AAACMrAAAjKwAAA4AAACNrAAAp6wAAA8AAACorAAAqKwAAA4AAACprAAAw6wAAA8AAADErAAAxKwAAA4AAADFrAAA36wAAA8AAADgrAAA4KwAAA4AAADhrAAA+6wAAA8AAAD8rAAA/KwAAA4AAAD9rAAAF60AAA8AAAAYrQAAGK0AAA4AAAAZrQAAM60AAA8AAAA0rQAANK0AAA4AAAA1rQAAT60AAA8AAABQrQAAUK0AAA4AAABRrQAAa60AAA8AAABsrQAAbK0AAA4AAABtrQAAh60AAA8AAACIrQAAiK0AAA4AAACJrQAAo60AAA8AAACkrQAApK0AAA4AAAClrQAAv60AAA8AAADArQAAwK0AAA4AAADBrQAA260AAA8AAADcrQAA3K0AAA4AAADdrQAA960AAA8AAAD4rQAA+K0AAA4AAAD5rQAAE64AAA8AAAAUrgAAFK4AAA4AAAAVrgAAL64AAA8AAAAwrgAAMK4AAA4AAAAxrgAAS64AAA8AAABMrgAATK4AAA4AAABNrgAAZ64AAA8AAABorgAAaK4AAA4AAABprgAAg64AAA8AAACErgAAhK4AAA4AAACFrgAAn64AAA8AAACgrgAAoK4AAA4AAAChrgAAu64AAA8AAAC8rgAAvK4AAA4AAAC9rgAA164AAA8AAADYrgAA2K4AAA4AAADZrgAA864AAA8AAAD0rgAA9K4AAA4AAAD1rgAAD68AAA8AAAAQrwAAEK8AAA4AAAARrwAAK68AAA8AAAAsrwAALK8AAA4AAAAtrwAAR68AAA8AAABIrwAASK8AAA4AAABJrwAAY68AAA8AAABkrwAAZK8AAA4AAABlrwAAf68AAA8AAACArwAAgK8AAA4AAACBrwAAm68AAA8AAACcrwAAnK8AAA4AAACdrwAAt68AAA8AAAC4rwAAuK8AAA4AAAC5rwAA068AAA8AAADUrwAA1K8AAA4AAADVrwAA768AAA8AAADwrwAA8K8AAA4AAADxrwAAC7AAAA8AAAAMsAAADLAAAA4AAAANsAAAJ7AAAA8AAAAosAAAKLAAAA4AAAApsAAAQ7AAAA8AAABEsAAARLAAAA4AAABFsAAAX7AAAA8AAABgsAAAYLAAAA4AAABhsAAAe7AAAA8AAAB8sAAAfLAAAA4AAAB9sAAAl7AAAA8AAACYsAAAmLAAAA4AAACZsAAAs7AAAA8AAAC0sAAAtLAAAA4AAAC1sAAAz7AAAA8AAADQsAAA0LAAAA4AAADRsAAA67AAAA8AAADssAAA7LAAAA4AAADtsAAAB7EAAA8AAAAIsQAACLEAAA4AAAAJsQAAI7EAAA8AAAAksQAAJLEAAA4AAAAlsQAAP7EAAA8AAABAsQAAQLEAAA4AAABBsQAAW7EAAA8AAABcsQAAXLEAAA4AAABdsQAAd7EAAA8AAAB4sQAAeLEAAA4AAAB5sQAAk7EAAA8AAACUsQAAlLEAAA4AAACVsQAAr7EAAA8AAACwsQAAsLEAAA4AAACxsQAAy7EAAA8AAADMsQAAzLEAAA4AAADNsQAA57EAAA8AAADosQAA6LEAAA4AAADpsQAAA7IAAA8AAAAEsgAABLIAAA4AAAAFsgAAH7IAAA8AAAAgsgAAILIAAA4AAAAhsgAAO7IAAA8AAAA8sgAAPLIAAA4AAAA9sgAAV7IAAA8AAABYsgAAWLIAAA4AAABZsgAAc7IAAA8AAAB0sgAAdLIAAA4AAAB1sgAAj7IAAA8AAACQsgAAkLIAAA4AAACRsgAAq7IAAA8AAACssgAArLIAAA4AAACtsgAAx7IAAA8AAADIsgAAyLIAAA4AAADJsgAA47IAAA8AAADksgAA5LIAAA4AAADlsgAA/7IAAA8AAAAAswAAALMAAA4AAAABswAAG7MAAA8AAAAcswAAHLMAAA4AAAAdswAAN7MAAA8AAAA4swAAOLMAAA4AAAA5swAAU7MAAA8AAABUswAAVLMAAA4AAABVswAAb7MAAA8AAABwswAAcLMAAA4AAABxswAAi7MAAA8AAACMswAAjLMAAA4AAACNswAAp7MAAA8AAACoswAAqLMAAA4AAACpswAAw7MAAA8AAADEswAAxLMAAA4AAADFswAA37MAAA8AAADgswAA4LMAAA4AAADhswAA+7MAAA8AAAD8swAA/LMAAA4AAAD9swAAF7QAAA8AAAAYtAAAGLQAAA4AAAAZtAAAM7QAAA8AAAA0tAAANLQAAA4AAAA1tAAAT7QAAA8AAABQtAAAULQAAA4AAABRtAAAa7QAAA8AAABstAAAbLQAAA4AAABttAAAh7QAAA8AAACItAAAiLQAAA4AAACJtAAAo7QAAA8AAACktAAApLQAAA4AAACltAAAv7QAAA8AAADAtAAAwLQAAA4AAADBtAAA27QAAA8AAADctAAA3LQAAA4AAADdtAAA97QAAA8AAAD4tAAA+LQAAA4AAAD5tAAAE7UAAA8AAAAUtQAAFLUAAA4AAAAVtQAAL7UAAA8AAAAwtQAAMLUAAA4AAAAxtQAAS7UAAA8AAABMtQAATLUAAA4AAABNtQAAZ7UAAA8AAABotQAAaLUAAA4AAABptQAAg7UAAA8AAACEtQAAhLUAAA4AAACFtQAAn7UAAA8AAACgtQAAoLUAAA4AAAChtQAAu7UAAA8AAAC8tQAAvLUAAA4AAAC9tQAA17UAAA8AAADYtQAA2LUAAA4AAADZtQAA87UAAA8AAAD0tQAA9LUAAA4AAAD1tQAAD7YAAA8AAAAQtgAAELYAAA4AAAARtgAAK7YAAA8AAAAstgAALLYAAA4AAAAttgAAR7YAAA8AAABItgAASLYAAA4AAABJtgAAY7YAAA8AAABktgAAZLYAAA4AAABltgAAf7YAAA8AAACAtgAAgLYAAA4AAACBtgAAm7YAAA8AAACctgAAnLYAAA4AAACdtgAAt7YAAA8AAAC4tgAAuLYAAA4AAAC5tgAA07YAAA8AAADUtgAA1LYAAA4AAADVtgAA77YAAA8AAADwtgAA8LYAAA4AAADxtgAAC7cAAA8AAAAMtwAADLcAAA4AAAANtwAAJ7cAAA8AAAAotwAAKLcAAA4AAAAptwAAQ7cAAA8AAABEtwAARLcAAA4AAABFtwAAX7cAAA8AAABgtwAAYLcAAA4AAABhtwAAe7cAAA8AAAB8twAAfLcAAA4AAAB9twAAl7cAAA8AAACYtwAAmLcAAA4AAACZtwAAs7cAAA8AAAC0twAAtLcAAA4AAAC1twAAz7cAAA8AAADQtwAA0LcAAA4AAADRtwAA67cAAA8AAADstwAA7LcAAA4AAADttwAAB7gAAA8AAAAIuAAACLgAAA4AAAAJuAAAI7gAAA8AAAAkuAAAJLgAAA4AAAAluAAAP7gAAA8AAABAuAAAQLgAAA4AAABBuAAAW7gAAA8AAABcuAAAXLgAAA4AAABduAAAd7gAAA8AAAB4uAAAeLgAAA4AAAB5uAAAk7gAAA8AAACUuAAAlLgAAA4AAACVuAAAr7gAAA8AAACwuAAAsLgAAA4AAACxuAAAy7gAAA8AAADMuAAAzLgAAA4AAADNuAAA57gAAA8AAADouAAA6LgAAA4AAADpuAAAA7kAAA8AAAAEuQAABLkAAA4AAAAFuQAAH7kAAA8AAAAguQAAILkAAA4AAAAhuQAAO7kAAA8AAAA8uQAAPLkAAA4AAAA9uQAAV7kAAA8AAABYuQAAWLkAAA4AAABZuQAAc7kAAA8AAAB0uQAAdLkAAA4AAAB1uQAAj7kAAA8AAACQuQAAkLkAAA4AAACRuQAAq7kAAA8AAACsuQAArLkAAA4AAACtuQAAx7kAAA8AAADIuQAAyLkAAA4AAADJuQAA47kAAA8AAADkuQAA5LkAAA4AAADluQAA/7kAAA8AAAAAugAAALoAAA4AAAABugAAG7oAAA8AAAAcugAAHLoAAA4AAAAdugAAN7oAAA8AAAA4ugAAOLoAAA4AAAA5ugAAU7oAAA8AAABUugAAVLoAAA4AAABVugAAb7oAAA8AAABwugAAcLoAAA4AAABxugAAi7oAAA8AAACMugAAjLoAAA4AAACNugAAp7oAAA8AAACougAAqLoAAA4AAACpugAAw7oAAA8AAADEugAAxLoAAA4AAADFugAA37oAAA8AAADgugAA4LoAAA4AAADhugAA+7oAAA8AAAD8ugAA/LoAAA4AAAD9ugAAF7sAAA8AAAAYuwAAGLsAAA4AAAAZuwAAM7sAAA8AAAA0uwAANLsAAA4AAAA1uwAAT7sAAA8AAABQuwAAULsAAA4AAABRuwAAa7sAAA8AAABsuwAAbLsAAA4AAABtuwAAh7sAAA8AAACIuwAAiLsAAA4AAACJuwAAo7sAAA8AAACkuwAApLsAAA4AAACluwAAv7sAAA8AAADAuwAAwLsAAA4AAADBuwAA27sAAA8AAADcuwAA3LsAAA4AAADduwAA97sAAA8AAAD4uwAA+LsAAA4AAAD5uwAAE7wAAA8AAAAUvAAAFLwAAA4AAAAVvAAAL7wAAA8AAAAwvAAAMLwAAA4AAAAxvAAAS7wAAA8AAABMvAAATLwAAA4AAABNvAAAZ7wAAA8AAABovAAAaLwAAA4AAABpvAAAg7wAAA8AAACEvAAAhLwAAA4AAACFvAAAn7wAAA8AAACgvAAAoLwAAA4AAAChvAAAu7wAAA8AAAC8vAAAvLwAAA4AAAC9vAAA17wAAA8AAADYvAAA2LwAAA4AAADZvAAA87wAAA8AAAD0vAAA9LwAAA4AAAD1vAAAD70AAA8AAAAQvQAAEL0AAA4AAAARvQAAK70AAA8AAAAsvQAALL0AAA4AAAAtvQAAR70AAA8AAABIvQAASL0AAA4AAABJvQAAY70AAA8AAABkvQAAZL0AAA4AAABlvQAAf70AAA8AAACAvQAAgL0AAA4AAACBvQAAm70AAA8AAACcvQAAnL0AAA4AAACdvQAAt70AAA8AAAC4vQAAuL0AAA4AAAC5vQAA070AAA8AAADUvQAA1L0AAA4AAADVvQAA770AAA8AAADwvQAA8L0AAA4AAADxvQAAC74AAA8AAAAMvgAADL4AAA4AAAANvgAAJ74AAA8AAAAovgAAKL4AAA4AAAApvgAAQ74AAA8AAABEvgAARL4AAA4AAABFvgAAX74AAA8AAABgvgAAYL4AAA4AAABhvgAAe74AAA8AAAB8vgAAfL4AAA4AAAB9vgAAl74AAA8AAACYvgAAmL4AAA4AAACZvgAAs74AAA8AAAC0vgAAtL4AAA4AAAC1vgAAz74AAA8AAADQvgAA0L4AAA4AAADRvgAA674AAA8AAADsvgAA7L4AAA4AAADtvgAAB78AAA8AAAAIvwAACL8AAA4AAAAJvwAAI78AAA8AAAAkvwAAJL8AAA4AAAAlvwAAP78AAA8AAABAvwAAQL8AAA4AAABBvwAAW78AAA8AAABcvwAAXL8AAA4AAABdvwAAd78AAA8AAAB4vwAAeL8AAA4AAAB5vwAAk78AAA8AAACUvwAAlL8AAA4AAACVvwAAr78AAA8AAACwvwAAsL8AAA4AAACxvwAAy78AAA8AAADMvwAAzL8AAA4AAADNvwAA578AAA8AAADovwAA6L8AAA4AAADpvwAAA8AAAA8AAAAEwAAABMAAAA4AAAAFwAAAH8AAAA8AAAAgwAAAIMAAAA4AAAAhwAAAO8AAAA8AAAA8wAAAPMAAAA4AAAA9wAAAV8AAAA8AAABYwAAAWMAAAA4AAABZwAAAc8AAAA8AAAB0wAAAdMAAAA4AAAB1wAAAj8AAAA8AAACQwAAAkMAAAA4AAACRwAAAq8AAAA8AAACswAAArMAAAA4AAACtwAAAx8AAAA8AAADIwAAAyMAAAA4AAADJwAAA48AAAA8AAADkwAAA5MAAAA4AAADlwAAA/8AAAA8AAAAAwQAAAMEAAA4AAAABwQAAG8EAAA8AAAAcwQAAHMEAAA4AAAAdwQAAN8EAAA8AAAA4wQAAOMEAAA4AAAA5wQAAU8EAAA8AAABUwQAAVMEAAA4AAABVwQAAb8EAAA8AAABwwQAAcMEAAA4AAABxwQAAi8EAAA8AAACMwQAAjMEAAA4AAACNwQAAp8EAAA8AAACowQAAqMEAAA4AAACpwQAAw8EAAA8AAADEwQAAxMEAAA4AAADFwQAA38EAAA8AAADgwQAA4MEAAA4AAADhwQAA+8EAAA8AAAD8wQAA/MEAAA4AAAD9wQAAF8IAAA8AAAAYwgAAGMIAAA4AAAAZwgAAM8IAAA8AAAA0wgAANMIAAA4AAAA1wgAAT8IAAA8AAABQwgAAUMIAAA4AAABRwgAAa8IAAA8AAABswgAAbMIAAA4AAABtwgAAh8IAAA8AAACIwgAAiMIAAA4AAACJwgAAo8IAAA8AAACkwgAApMIAAA4AAAClwgAAv8IAAA8AAADAwgAAwMIAAA4AAADBwgAA28IAAA8AAADcwgAA3MIAAA4AAADdwgAA98IAAA8AAAD4wgAA+MIAAA4AAAD5wgAAE8MAAA8AAAAUwwAAFMMAAA4AAAAVwwAAL8MAAA8AAAAwwwAAMMMAAA4AAAAxwwAAS8MAAA8AAABMwwAATMMAAA4AAABNwwAAZ8MAAA8AAABowwAAaMMAAA4AAABpwwAAg8MAAA8AAACEwwAAhMMAAA4AAACFwwAAn8MAAA8AAACgwwAAoMMAAA4AAAChwwAAu8MAAA8AAAC8wwAAvMMAAA4AAAC9wwAA18MAAA8AAADYwwAA2MMAAA4AAADZwwAA88MAAA8AAAD0wwAA9MMAAA4AAAD1wwAAD8QAAA8AAAAQxAAAEMQAAA4AAAARxAAAK8QAAA8AAAAsxAAALMQAAA4AAAAtxAAAR8QAAA8AAABIxAAASMQAAA4AAABJxAAAY8QAAA8AAABkxAAAZMQAAA4AAABlxAAAf8QAAA8AAACAxAAAgMQAAA4AAACBxAAAm8QAAA8AAACcxAAAnMQAAA4AAACdxAAAt8QAAA8AAAC4xAAAuMQAAA4AAAC5xAAA08QAAA8AAADUxAAA1MQAAA4AAADVxAAA78QAAA8AAADwxAAA8MQAAA4AAADxxAAAC8UAAA8AAAAMxQAADMUAAA4AAAANxQAAJ8UAAA8AAAAoxQAAKMUAAA4AAAApxQAAQ8UAAA8AAABExQAARMUAAA4AAABFxQAAX8UAAA8AAABgxQAAYMUAAA4AAABhxQAAe8UAAA8AAAB8xQAAfMUAAA4AAAB9xQAAl8UAAA8AAACYxQAAmMUAAA4AAACZxQAAs8UAAA8AAAC0xQAAtMUAAA4AAAC1xQAAz8UAAA8AAADQxQAA0MUAAA4AAADRxQAA68UAAA8AAADsxQAA7MUAAA4AAADtxQAAB8YAAA8AAAAIxgAACMYAAA4AAAAJxgAAI8YAAA8AAAAkxgAAJMYAAA4AAAAlxgAAP8YAAA8AAABAxgAAQMYAAA4AAABBxgAAW8YAAA8AAABcxgAAXMYAAA4AAABdxgAAd8YAAA8AAAB4xgAAeMYAAA4AAAB5xgAAk8YAAA8AAACUxgAAlMYAAA4AAACVxgAAr8YAAA8AAACwxgAAsMYAAA4AAACxxgAAy8YAAA8AAADMxgAAzMYAAA4AAADNxgAA58YAAA8AAADoxgAA6MYAAA4AAADpxgAAA8cAAA8AAAAExwAABMcAAA4AAAAFxwAAH8cAAA8AAAAgxwAAIMcAAA4AAAAhxwAAO8cAAA8AAAA8xwAAPMcAAA4AAAA9xwAAV8cAAA8AAABYxwAAWMcAAA4AAABZxwAAc8cAAA8AAAB0xwAAdMcAAA4AAAB1xwAAj8cAAA8AAACQxwAAkMcAAA4AAACRxwAAq8cAAA8AAACsxwAArMcAAA4AAACtxwAAx8cAAA8AAADIxwAAyMcAAA4AAADJxwAA48cAAA8AAADkxwAA5McAAA4AAADlxwAA/8cAAA8AAAAAyAAAAMgAAA4AAAAByAAAG8gAAA8AAAAcyAAAHMgAAA4AAAAdyAAAN8gAAA8AAAA4yAAAOMgAAA4AAAA5yAAAU8gAAA8AAABUyAAAVMgAAA4AAABVyAAAb8gAAA8AAABwyAAAcMgAAA4AAABxyAAAi8gAAA8AAACMyAAAjMgAAA4AAACNyAAAp8gAAA8AAACoyAAAqMgAAA4AAACpyAAAw8gAAA8AAADEyAAAxMgAAA4AAADFyAAA38gAAA8AAADgyAAA4MgAAA4AAADhyAAA+8gAAA8AAAD8yAAA/MgAAA4AAAD9yAAAF8kAAA8AAAAYyQAAGMkAAA4AAAAZyQAAM8kAAA8AAAA0yQAANMkAAA4AAAA1yQAAT8kAAA8AAABQyQAAUMkAAA4AAABRyQAAa8kAAA8AAABsyQAAbMkAAA4AAABtyQAAh8kAAA8AAACIyQAAiMkAAA4AAACJyQAAo8kAAA8AAACkyQAApMkAAA4AAAClyQAAv8kAAA8AAADAyQAAwMkAAA4AAADByQAA28kAAA8AAADcyQAA3MkAAA4AAADdyQAA98kAAA8AAAD4yQAA+MkAAA4AAAD5yQAAE8oAAA8AAAAUygAAFMoAAA4AAAAVygAAL8oAAA8AAAAwygAAMMoAAA4AAAAxygAAS8oAAA8AAABMygAATMoAAA4AAABNygAAZ8oAAA8AAABoygAAaMoAAA4AAABpygAAg8oAAA8AAACEygAAhMoAAA4AAACFygAAn8oAAA8AAACgygAAoMoAAA4AAAChygAAu8oAAA8AAAC8ygAAvMoAAA4AAAC9ygAA18oAAA8AAADYygAA2MoAAA4AAADZygAA88oAAA8AAAD0ygAA9MoAAA4AAAD1ygAAD8sAAA8AAAAQywAAEMsAAA4AAAARywAAK8sAAA8AAAAsywAALMsAAA4AAAAtywAAR8sAAA8AAABIywAASMsAAA4AAABJywAAY8sAAA8AAABkywAAZMsAAA4AAABlywAAf8sAAA8AAACAywAAgMsAAA4AAACBywAAm8sAAA8AAACcywAAnMsAAA4AAACdywAAt8sAAA8AAAC4ywAAuMsAAA4AAAC5ywAA08sAAA8AAADUywAA1MsAAA4AAADVywAA78sAAA8AAADwywAA8MsAAA4AAADxywAAC8wAAA8AAAAMzAAADMwAAA4AAAANzAAAJ8wAAA8AAAAozAAAKMwAAA4AAAApzAAAQ8wAAA8AAABEzAAARMwAAA4AAABFzAAAX8wAAA8AAABgzAAAYMwAAA4AAABhzAAAe8wAAA8AAAB8zAAAfMwAAA4AAAB9zAAAl8wAAA8AAACYzAAAmMwAAA4AAACZzAAAs8wAAA8AAAC0zAAAtMwAAA4AAAC1zAAAz8wAAA8AAADQzAAA0MwAAA4AAADRzAAA68wAAA8AAADszAAA7MwAAA4AAADtzAAAB80AAA8AAAAIzQAACM0AAA4AAAAJzQAAI80AAA8AAAAkzQAAJM0AAA4AAAAlzQAAP80AAA8AAABAzQAAQM0AAA4AAABBzQAAW80AAA8AAABczQAAXM0AAA4AAABdzQAAd80AAA8AAAB4zQAAeM0AAA4AAAB5zQAAk80AAA8AAACUzQAAlM0AAA4AAACVzQAAr80AAA8AAACwzQAAsM0AAA4AAACxzQAAy80AAA8AAADMzQAAzM0AAA4AAADNzQAA580AAA8AAADozQAA6M0AAA4AAADpzQAAA84AAA8AAAAEzgAABM4AAA4AAAAFzgAAH84AAA8AAAAgzgAAIM4AAA4AAAAhzgAAO84AAA8AAAA8zgAAPM4AAA4AAAA9zgAAV84AAA8AAABYzgAAWM4AAA4AAABZzgAAc84AAA8AAAB0zgAAdM4AAA4AAAB1zgAAj84AAA8AAACQzgAAkM4AAA4AAACRzgAAq84AAA8AAACszgAArM4AAA4AAACtzgAAx84AAA8AAADIzgAAyM4AAA4AAADJzgAA484AAA8AAADkzgAA5M4AAA4AAADlzgAA/84AAA8AAAAAzwAAAM8AAA4AAAABzwAAG88AAA8AAAAczwAAHM8AAA4AAAAdzwAAN88AAA8AAAA4zwAAOM8AAA4AAAA5zwAAU88AAA8AAABUzwAAVM8AAA4AAABVzwAAb88AAA8AAABwzwAAcM8AAA4AAABxzwAAi88AAA8AAACMzwAAjM8AAA4AAACNzwAAp88AAA8AAACozwAAqM8AAA4AAACpzwAAw88AAA8AAADEzwAAxM8AAA4AAADFzwAA388AAA8AAADgzwAA4M8AAA4AAADhzwAA+88AAA8AAAD8zwAA/M8AAA4AAAD9zwAAF9AAAA8AAAAY0AAAGNAAAA4AAAAZ0AAAM9AAAA8AAAA00AAANNAAAA4AAAA10AAAT9AAAA8AAABQ0AAAUNAAAA4AAABR0AAAa9AAAA8AAABs0AAAbNAAAA4AAABt0AAAh9AAAA8AAACI0AAAiNAAAA4AAACJ0AAAo9AAAA8AAACk0AAApNAAAA4AAACl0AAAv9AAAA8AAADA0AAAwNAAAA4AAADB0AAA29AAAA8AAADc0AAA3NAAAA4AAADd0AAA99AAAA8AAAD40AAA+NAAAA4AAAD50AAAE9EAAA8AAAAU0QAAFNEAAA4AAAAV0QAAL9EAAA8AAAAw0QAAMNEAAA4AAAAx0QAAS9EAAA8AAABM0QAATNEAAA4AAABN0QAAZ9EAAA8AAABo0QAAaNEAAA4AAABp0QAAg9EAAA8AAACE0QAAhNEAAA4AAACF0QAAn9EAAA8AAACg0QAAoNEAAA4AAACh0QAAu9EAAA8AAAC80QAAvNEAAA4AAAC90QAA19EAAA8AAADY0QAA2NEAAA4AAADZ0QAA89EAAA8AAAD00QAA9NEAAA4AAAD10QAAD9IAAA8AAAAQ0gAAENIAAA4AAAAR0gAAK9IAAA8AAAAs0gAALNIAAA4AAAAt0gAAR9IAAA8AAABI0gAASNIAAA4AAABJ0gAAY9IAAA8AAABk0gAAZNIAAA4AAABl0gAAf9IAAA8AAACA0gAAgNIAAA4AAACB0gAAm9IAAA8AAACc0gAAnNIAAA4AAACd0gAAt9IAAA8AAAC40gAAuNIAAA4AAAC50gAA09IAAA8AAADU0gAA1NIAAA4AAADV0gAA79IAAA8AAADw0gAA8NIAAA4AAADx0gAAC9MAAA8AAAAM0wAADNMAAA4AAAAN0wAAJ9MAAA8AAAAo0wAAKNMAAA4AAAAp0wAAQ9MAAA8AAABE0wAARNMAAA4AAABF0wAAX9MAAA8AAABg0wAAYNMAAA4AAABh0wAAe9MAAA8AAAB80wAAfNMAAA4AAAB90wAAl9MAAA8AAACY0wAAmNMAAA4AAACZ0wAAs9MAAA8AAAC00wAAtNMAAA4AAAC10wAAz9MAAA8AAADQ0wAA0NMAAA4AAADR0wAA69MAAA8AAADs0wAA7NMAAA4AAADt0wAAB9QAAA8AAAAI1AAACNQAAA4AAAAJ1AAAI9QAAA8AAAAk1AAAJNQAAA4AAAAl1AAAP9QAAA8AAABA1AAAQNQAAA4AAABB1AAAW9QAAA8AAABc1AAAXNQAAA4AAABd1AAAd9QAAA8AAAB41AAAeNQAAA4AAAB51AAAk9QAAA8AAACU1AAAlNQAAA4AAACV1AAAr9QAAA8AAACw1AAAsNQAAA4AAACx1AAAy9QAAA8AAADM1AAAzNQAAA4AAADN1AAA59QAAA8AAADo1AAA6NQAAA4AAADp1AAAA9UAAA8AAAAE1QAABNUAAA4AAAAF1QAAH9UAAA8AAAAg1QAAINUAAA4AAAAh1QAAO9UAAA8AAAA81QAAPNUAAA4AAAA91QAAV9UAAA8AAABY1QAAWNUAAA4AAABZ1QAAc9UAAA8AAAB01QAAdNUAAA4AAAB11QAAj9UAAA8AAACQ1QAAkNUAAA4AAACR1QAAq9UAAA8AAACs1QAArNUAAA4AAACt1QAAx9UAAA8AAADI1QAAyNUAAA4AAADJ1QAA49UAAA8AAADk1QAA5NUAAA4AAADl1QAA/9UAAA8AAAAA1gAAANYAAA4AAAAB1gAAG9YAAA8AAAAc1gAAHNYAAA4AAAAd1gAAN9YAAA8AAAA41gAAONYAAA4AAAA51gAAU9YAAA8AAABU1gAAVNYAAA4AAABV1gAAb9YAAA8AAABw1gAAcNYAAA4AAABx1gAAi9YAAA8AAACM1gAAjNYAAA4AAACN1gAAp9YAAA8AAACo1gAAqNYAAA4AAACp1gAAw9YAAA8AAADE1gAAxNYAAA4AAADF1gAA39YAAA8AAADg1gAA4NYAAA4AAADh1gAA+9YAAA8AAAD81gAA/NYAAA4AAAD91gAAF9cAAA8AAAAY1wAAGNcAAA4AAAAZ1wAAM9cAAA8AAAA01wAANNcAAA4AAAA11wAAT9cAAA8AAABQ1wAAUNcAAA4AAABR1wAAa9cAAA8AAABs1wAAbNcAAA4AAABt1wAAh9cAAA8AAACI1wAAiNcAAA4AAACJ1wAAo9cAAA8AAACw1wAAxtcAABEAAADL1wAA+9cAABAAAAAe+wAAHvsAAAQAAAAA/gAAD/4AAAQAAAAg/gAAL/4AAAQAAAD//gAA//4AAAMAAACe/wAAn/8AAAQAAADw/wAA+/8AAAMAAAD9AQEA/QEBAAQAAADgAgEA4AIBAAQAAAB2AwEAegMBAAQAAAABCgEAAwoBAAQAAAAFCgEABgoBAAQAAAAMCgEADwoBAAQAAAA4CgEAOgoBAAQAAAA/CgEAPwoBAAQAAADlCgEA5goBAAQAAAAkDQEAJw0BAAQAAACrDgEArA4BAAQAAABGDwEAUA8BAAQAAACCDwEAhQ8BAAQAAAAAEAEAABABAAcAAAABEAEAARABAAQAAAACEAEAAhABAAcAAAA4EAEARhABAAQAAABwEAEAcBABAAQAAABzEAEAdBABAAQAAAB/EAEAgRABAAQAAACCEAEAghABAAcAAACwEAEAshABAAcAAACzEAEAthABAAQAAAC3EAEAuBABAAcAAAC5EAEAuhABAAQAAAC9EAEAvRABAAUAAADCEAEAwhABAAQAAADNEAEAzRABAAUAAAAAEQEAAhEBAAQAAAAnEQEAKxEBAAQAAAAsEQEALBEBAAcAAAAtEQEANBEBAAQAAABFEQEARhEBAAcAAABzEQEAcxEBAAQAAACAEQEAgREBAAQAAACCEQEAghEBAAcAAACzEQEAtREBAAcAAAC2EQEAvhEBAAQAAAC/EQEAwBEBAAcAAADCEQEAwxEBAAUAAADJEQEAzBEBAAQAAADOEQEAzhEBAAcAAADPEQEAzxEBAAQAAAAsEgEALhIBAAcAAAAvEgEAMRIBAAQAAAAyEgEAMxIBAAcAAAA0EgEANBIBAAQAAAA1EgEANRIBAAcAAAA2EgEANxIBAAQAAAA+EgEAPhIBAAQAAADfEgEA3xIBAAQAAADgEgEA4hIBAAcAAADjEgEA6hIBAAQAAAAAEwEAARMBAAQAAAACEwEAAxMBAAcAAAA7EwEAPBMBAAQAAAA+EwEAPhMBAAQAAAA/EwEAPxMBAAcAAABAEwEAQBMBAAQAAABBEwEARBMBAAcAAABHEwEASBMBAAcAAABLEwEATRMBAAcAAABXEwEAVxMBAAQAAABiEwEAYxMBAAcAAABmEwEAbBMBAAQAAABwEwEAdBMBAAQAAAA1FAEANxQBAAcAAAA4FAEAPxQBAAQAAABAFAEAQRQBAAcAAABCFAEARBQBAAQAAABFFAEARRQBAAcAAABGFAEARhQBAAQAAABeFAEAXhQBAAQAAACwFAEAsBQBAAQAAACxFAEAshQBAAcAAACzFAEAuBQBAAQAAAC5FAEAuRQBAAcAAAC6FAEAuhQBAAQAAAC7FAEAvBQBAAcAAAC9FAEAvRQBAAQAAAC+FAEAvhQBAAcAAAC/FAEAwBQBAAQAAADBFAEAwRQBAAcAAADCFAEAwxQBAAQAAACvFQEArxUBAAQAAACwFQEAsRUBAAcAAACyFQEAtRUBAAQAAAC4FQEAuxUBAAcAAAC8FQEAvRUBAAQAAAC+FQEAvhUBAAcAAAC/FQEAwBUBAAQAAADcFQEA3RUBAAQAAAAwFgEAMhYBAAcAAAAzFgEAOhYBAAQAAAA7FgEAPBYBAAcAAAA9FgEAPRYBAAQAAAA+FgEAPhYBAAcAAAA/FgEAQBYBAAQAAACrFgEAqxYBAAQAAACsFgEArBYBAAcAAACtFgEArRYBAAQAAACuFgEArxYBAAcAAACwFgEAtRYBAAQAAAC2FgEAthYBAAcAAAC3FgEAtxYBAAQAAAAdFwEAHxcBAAQAAAAiFwEAJRcBAAQAAAAmFwEAJhcBAAcAAAAnFwEAKxcBAAQAAAAsGAEALhgBAAcAAAAvGAEANxgBAAQAAAA4GAEAOBgBAAcAAAA5GAEAOhgBAAQAAAAwGQEAMBkBAAQAAAAxGQEANRkBAAcAAAA3GQEAOBkBAAcAAAA7GQEAPBkBAAQAAAA9GQEAPRkBAAcAAAA+GQEAPhkBAAQAAAA/GQEAPxkBAAUAAABAGQEAQBkBAAcAAABBGQEAQRkBAAUAAABCGQEAQhkBAAcAAABDGQEAQxkBAAQAAADRGQEA0xkBAAcAAADUGQEA1xkBAAQAAADaGQEA2xkBAAQAAADcGQEA3xkBAAcAAADgGQEA4BkBAAQAAADkGQEA5BkBAAcAAAABGgEAChoBAAQAAAAzGgEAOBoBAAQAAAA5GgEAORoBAAcAAAA6GgEAOhoBAAUAAAA7GgEAPhoBAAQAAABHGgEARxoBAAQAAABRGgEAVhoBAAQAAABXGgEAWBoBAAcAAABZGgEAWxoBAAQAAACEGgEAiRoBAAUAAACKGgEAlhoBAAQAAACXGgEAlxoBAAcAAACYGgEAmRoBAAQAAAAvHAEALxwBAAcAAAAwHAEANhwBAAQAAAA4HAEAPRwBAAQAAAA+HAEAPhwBAAcAAAA/HAEAPxwBAAQAAACSHAEApxwBAAQAAACpHAEAqRwBAAcAAACqHAEAsBwBAAQAAACxHAEAsRwBAAcAAACyHAEAsxwBAAQAAAC0HAEAtBwBAAcAAAC1HAEAthwBAAQAAAAxHQEANh0BAAQAAAA6HQEAOh0BAAQAAAA8HQEAPR0BAAQAAAA/HQEARR0BAAQAAABGHQEARh0BAAUAAABHHQEARx0BAAQAAACKHQEAjh0BAAcAAACQHQEAkR0BAAQAAACTHQEAlB0BAAcAAACVHQEAlR0BAAQAAACWHQEAlh0BAAcAAACXHQEAlx0BAAQAAADzHgEA9B4BAAQAAAD1HgEA9h4BAAcAAAAwNAEAODQBAAMAAADwagEA9GoBAAQAAAAwawEANmsBAAQAAABPbwEAT28BAAQAAABRbwEAh28BAAcAAACPbwEAkm8BAAQAAADkbwEA5G8BAAQAAADwbwEA8W8BAAcAAACdvAEAnrwBAAQAAACgvAEAo7wBAAMAAAAAzwEALc8BAAQAAAAwzwEARs8BAAQAAABl0QEAZdEBAAQAAABm0QEAZtEBAAcAAABn0QEAadEBAAQAAABt0QEAbdEBAAcAAABu0QEActEBAAQAAABz0QEAetEBAAMAAAB70QEAgtEBAAQAAACF0QEAi9EBAAQAAACq0QEArdEBAAQAAABC0gEARNIBAAQAAAAA2gEANtoBAAQAAAA72gEAbNoBAAQAAAB12gEAddoBAAQAAACE2gEAhNoBAAQAAACb2gEAn9oBAAQAAACh2gEAr9oBAAQAAAAA4AEABuABAAQAAAAI4AEAGOABAAQAAAAb4AEAIeABAAQAAAAj4AEAJOABAAQAAAAm4AEAKuABAAQAAAAw4QEANuEBAAQAAACu4gEAruIBAAQAAADs4gEA7+IBAAQAAADQ6AEA1ugBAAQAAABE6QEASukBAAQAAADm8QEA//EBAAYAAAD78wEA//MBAAQAAAAAAA4AHwAOAAMAAAAgAA4AfwAOAAQAAACAAA4A/wAOAAMAAAAAAQ4A7wEOAAQAAADwAQ4A/w8OAAMAAAABAAAACgAAAAoAAADSAgAAQQAAAFoAAABhAAAAegAAAKoAAACqAAAAtQAAALUAAAC6AAAAugAAAMAAAADWAAAA2AAAAPYAAAD4AAAAwQIAAMYCAADRAgAA4AIAAOQCAADsAgAA7AIAAO4CAADuAgAARQMAAEUDAABwAwAAdAMAAHYDAAB3AwAAegMAAH0DAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAAChAwAAowMAAPUDAAD3AwAAgQQAAIoEAAAvBQAAMQUAAFYFAABZBQAAWQUAAGAFAACIBQAAsAUAAL0FAAC/BQAAvwUAAMEFAADCBQAAxAUAAMUFAADHBQAAxwUAANAFAADqBQAA7wUAAPIFAAAQBgAAGgYAACAGAABXBgAAWQYAAF8GAABuBgAA0wYAANUGAADcBgAA4QYAAOgGAADtBgAA7wYAAPoGAAD8BgAA/wYAAP8GAAAQBwAAPwcAAE0HAACxBwAAygcAAOoHAAD0BwAA9QcAAPoHAAD6BwAAAAgAABcIAAAaCAAALAgAAEAIAABYCAAAYAgAAGoIAABwCAAAhwgAAIkIAACOCAAAoAgAAMkIAADUCAAA3wgAAOMIAADpCAAA8AgAADsJAAA9CQAATAkAAE4JAABQCQAAVQkAAGMJAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAAL0JAADECQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA8AkAAPEJAAD8CQAA/AkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA+CgAAQgoAAEcKAABICgAASwoAAEwKAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABwCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMUKAADHCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4woAAPkKAAD8CgAAAQsAAAMLAAAFCwAADAsAAA8LAAAQCwAAEwsAACgLAAAqCwAAMAsAADILAAAzCwAANQsAADkLAAA9CwAARAsAAEcLAABICwAASwsAAEwLAABWCwAAVwsAAFwLAABdCwAAXwsAAGMLAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADMCwAA0AsAANALAADXCwAA1wsAAAAMAAADDAAABQwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA9DAAARAwAAEYMAABIDAAASgwAAEwMAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAAL0MAADEDAAAxgwAAMgMAADKDAAAzAwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAPEMAADyDAAAAA0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAEQNAABGDQAASA0AAEoNAABMDQAATg0AAE4NAABUDQAAVw0AAF8NAABjDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAEYOAABNDgAATQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAuQ4AALsOAAC9DgAAwA4AAMQOAADGDgAAxg4AAM0OAADNDgAA3A4AAN8OAAAADwAAAA8AAEAPAABHDwAASQ8AAGwPAABxDwAAgQ8AAIgPAACXDwAAmQ8AALwPAAAAEAAANhAAADgQAAA4EAAAOxAAAD8QAABQEAAAjxAAAJoQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAIATAACPEwAAoBMAAPUTAAD4EwAA/RMAAAEUAABsFgAAbxYAAH8WAACBFgAAmhYAAKAWAADqFgAA7hYAAPgWAAAAFwAAExcAAB8XAAAzFwAAQBcAAFMXAABgFwAAbBcAAG4XAABwFwAAchcAAHMXAACAFwAAsxcAALYXAADIFwAA1xcAANcXAADcFwAA3BcAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOBkAAFAZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAAABoAABsaAAAgGgAAXhoAAGEaAAB0GgAApxoAAKcaAAC/GgAAwBoAAMwaAADOGgAAABsAADMbAAA1GwAAQxsAAEUbAABMGwAAgBsAAKkbAACsGwAArxsAALobAADlGwAA5xsAAPEbAAAAHAAANhwAAE0cAABPHAAAWhwAAH0cAACAHAAAiBwAAJAcAAC6HAAAvRwAAL8cAADpHAAA7BwAAO4cAADzHAAA9RwAAPYcAAD6HAAA+hwAAAAdAAC/HQAA5x0AAPQdAAAAHgAAFR8AABgfAAAdHwAAIB8AAEUfAABIHwAATR8AAFAfAABXHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAH0fAACAHwAAtB8AALYfAAC8HwAAvh8AAL4fAADCHwAAxB8AAMYfAADMHwAA0B8AANMfAADWHwAA2x8AAOAfAADsHwAA8h8AAPQfAAD2HwAA/B8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAIhAAACIQAAByEAAAchAAAKIQAAEyEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAAC8hAAA5IQAAPCEAAD8hAABFIQAASSEAAE4hAABOIQAAYCEAAIghAAC2JAAA6SQAAAAsAADkLAAA6ywAAO4sAADyLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAACALQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAAKTAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJ0wAACfMAAAoTAAAPowAAD8MAAA/zAAAAUxAAAvMQAAMTEAAI4xAACgMQAAvzEAAPAxAAD/MQAAADQAAL9NAAAATgAAjKQAANCkAAD9pAAAAKUAAAymAAAQpgAAH6YAACqmAAArpgAAQKYAAG6mAAB0pgAAe6YAAH+mAADvpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAAAWoAAAHqAAAJ6gAAECoAABzqAAAgKgAAMOoAADFqAAAxagAAPKoAAD3qAAA+6gAAPuoAAD9qAAA/6gAAAqpAAAqqQAAMKkAAFKpAABgqQAAfKkAAICpAACyqQAAtKkAAL+pAADPqQAAz6kAAOCpAADvqQAA+qkAAP6pAAAAqgAANqoAAECqAABNqgAAYKoAAHaqAAB6qgAAvqoAAMCqAADAqgAAwqoAAMKqAADbqgAA3aoAAOCqAADvqgAA8qoAAPWqAAABqwAABqsAAAmrAAAOqwAAEasAABarAAAgqwAAJqsAACirAAAuqwAAMKsAAFqrAABcqwAAaasAAHCrAADqqwAAAKwAAKPXAACw1wAAxtcAAMvXAAD71wAAAPkAAG36AABw+gAA2foAAAD7AAAG+wAAE/sAABf7AAAd+wAAKPsAACr7AAA2+wAAOPsAADz7AAA++wAAPvsAAED7AABB+wAAQ/sAAET7AABG+wAAsfsAANP7AAA9/QAAUP0AAI/9AACS/QAAx/0AAPD9AAD7/QAAcP4AAHT+AAB2/gAA/P4AACH/AAA6/wAAQf8AAFr/AABm/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEAPAABAD0AAQA/AAEATQABAFAAAQBdAAEAgAABAPoAAQBAAQEAdAEBAIACAQCcAgEAoAIBANACAQAAAwEAHwMBAC0DAQBKAwEAUAMBAHoDAQCAAwEAnQMBAKADAQDDAwEAyAMBAM8DAQDRAwEA1QMBAAAEAQCdBAEAsAQBANMEAQDYBAEA+wQBAAAFAQAnBQEAMAUBAGMFAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAAAYBADYHAQBABwEAVQcBAGAHAQBnBwEAgAcBAIUHAQCHBwEAsAcBALIHAQC6BwEAAAgBAAUIAQAICAEACAgBAAoIAQA1CAEANwgBADgIAQA8CAEAPAgBAD8IAQBVCAEAYAgBAHYIAQCACAEAnggBAOAIAQDyCAEA9AgBAPUIAQAACQEAFQkBACAJAQA5CQEAgAkBALcJAQC+CQEAvwkBAAAKAQADCgEABQoBAAYKAQAMCgEAEwoBABUKAQAXCgEAGQoBADUKAQBgCgEAfAoBAIAKAQCcCgEAwAoBAMcKAQDJCgEA5AoBAAALAQA1CwEAQAsBAFULAQBgCwEAcgsBAIALAQCRCwEAAAwBAEgMAQCADAEAsgwBAMAMAQDyDAEAAA0BACcNAQCADgEAqQ4BAKsOAQCsDgEAsA4BALEOAQAADwEAHA8BACcPAQAnDwEAMA8BAEUPAQBwDwEAgQ8BALAPAQDEDwEA4A8BAPYPAQAAEAEARRABAHEQAQB1EAEAghABALgQAQDCEAEAwhABANAQAQDoEAEAABEBADIRAQBEEQEARxEBAFARAQByEQEAdhEBAHYRAQCAEQEAvxEBAMERAQDEEQEAzhEBAM8RAQDaEQEA2hEBANwRAQDcEQEAABIBABESAQATEgEANBIBADcSAQA3EgEAPhIBAD4SAQCAEgEAhhIBAIgSAQCIEgEAihIBAI0SAQCPEgEAnRIBAJ8SAQCoEgEAsBIBAOgSAQAAEwEAAxMBAAUTAQAMEwEADxMBABATAQATEwEAKBMBACoTAQAwEwEAMhMBADMTAQA1EwEAORMBAD0TAQBEEwEARxMBAEgTAQBLEwEATBMBAFATAQBQEwEAVxMBAFcTAQBdEwEAYxMBAAAUAQBBFAEAQxQBAEUUAQBHFAEAShQBAF8UAQBhFAEAgBQBAMEUAQDEFAEAxRQBAMcUAQDHFAEAgBUBALUVAQC4FQEAvhUBANgVAQDdFQEAABYBAD4WAQBAFgEAQBYBAEQWAQBEFgEAgBYBALUWAQC4FgEAuBYBAAAXAQAaFwEAHRcBACoXAQBAFwEARhcBAAAYAQA4GAEAoBgBAN8YAQD/GAEABhkBAAkZAQAJGQEADBkBABMZAQAVGQEAFhkBABgZAQA1GQEANxkBADgZAQA7GQEAPBkBAD8ZAQBCGQEAoBkBAKcZAQCqGQEA1xkBANoZAQDfGQEA4RkBAOEZAQDjGQEA5BkBAAAaAQAyGgEANRoBAD4aAQBQGgEAlxoBAJ0aAQCdGgEAsBoBAPgaAQAAHAEACBwBAAocAQA2HAEAOBwBAD4cAQBAHAEAQBwBAHIcAQCPHAEAkhwBAKccAQCpHAEAthwBAAAdAQAGHQEACB0BAAkdAQALHQEANh0BADodAQA6HQEAPB0BAD0dAQA/HQEAQR0BAEMdAQBDHQEARh0BAEcdAQBgHQEAZR0BAGcdAQBoHQEAah0BAI4dAQCQHQEAkR0BAJMdAQCWHQEAmB0BAJgdAQDgHgEA9h4BALAfAQCwHwEAACABAJkjAQAAJAEAbiQBAIAkAQBDJQEAkC8BAPAvAQAAMAEALjQBAABEAQBGRgEAAGgBADhqAQBAagEAXmoBAHBqAQC+agEA0GoBAO1qAQAAawEAL2sBAEBrAQBDawEAY2sBAHdrAQB9awEAj2sBAEBuAQB/bgEAAG8BAEpvAQBPbwEAh28BAI9vAQCfbwEA4G8BAOFvAQDjbwEA428BAPBvAQDxbwEAAHABAPeHAQAAiAEA1YwBAACNAQAIjQEA8K8BAPOvAQD1rwEA+68BAP2vAQD+rwEAALABACKxAQBQsQEAUrEBAGSxAQBnsQEAcLEBAPuyAQAAvAEAarwBAHC8AQB8vAEAgLwBAIi8AQCQvAEAmbwBAJ68AQCevAEAANQBAFTUAQBW1AEAnNQBAJ7UAQCf1AEAotQBAKLUAQCl1AEAptQBAKnUAQCs1AEArtQBALnUAQC71AEAu9QBAL3UAQDD1AEAxdQBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQAe1QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAUtUBAKXWAQCo1gEAwNYBAMLWAQDa1gEA3NYBAPrWAQD81gEAFNcBABbXAQA01wEANtcBAE7XAQBQ1wEAbtcBAHDXAQCI1wEAitcBAKjXAQCq1wEAwtcBAMTXAQDL1wEAAN8BAB7fAQAA4AEABuABAAjgAQAY4AEAG+ABACHgAQAj4AEAJOABACbgAQAq4AEAAOEBACzhAQA34QEAPeEBAE7hAQBO4QEAkOIBAK3iAQDA4gEA6+IBAODnAQDm5wEA6OcBAOvnAQDt5wEA7ucBAPDnAQD+5wEAAOgBAMToAQAA6QEAQ+kBAEfpAQBH6QEAS+kBAEvpAQAA7gEAA+4BAAXuAQAf7gEAIe4BACLuAQAk7gEAJO4BACfuAQAn7gEAKe4BADLuAQA07gEAN+4BADnuAQA57gEAO+4BADvuAQBC7gEAQu4BAEfuAQBH7gEASe4BAEnuAQBL7gEAS+4BAE3uAQBP7gEAUe4BAFLuAQBU7gEAVO4BAFfuAQBX7gEAWe4BAFnuAQBb7gEAW+4BAF3uAQBd7gEAX+4BAF/uAQBh7gEAYu4BAGTuAQBk7gEAZ+4BAGruAQBs7gEAcu4BAHTuAQB37gEAee4BAHzuAQB+7gEAfu4BAIDuAQCJ7gEAi+4BAJvuAQCh7gEAo+4BAKXuAQCp7gEAq+4BALvuAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAIA36YCAACnAgA4twIAQLcCAB24AgAguAIAoc4CALDOAgDg6wIAAPgCAB36AgAAAAMAShMDAEHwxAILQggAAAAJAAAACQAAACAAAAAgAAAAoAAAAKAAAACAFgAAgBYAAAAgAAAKIAAALyAAAC8gAABfIAAAXyAAAAAwAAAAMABBwMUCCxECAAAAAAAAAB8AAAB/AAAAnwBB4MUCC/MDPgAAADAAAAA5AAAAYAYAAGkGAADwBgAA+QYAAMAHAADJBwAAZgkAAG8JAADmCQAA7wkAAGYKAABvCgAA5goAAO8KAABmCwAAbwsAAOYLAADvCwAAZgwAAG8MAADmDAAA7wwAAGYNAABvDQAA5g0AAO8NAABQDgAAWQ4AANAOAADZDgAAIA8AACkPAABAEAAASRAAAJAQAACZEAAA4BcAAOkXAAAQGAAAGRgAAEYZAABPGQAA0BkAANkZAACAGgAAiRoAAJAaAACZGgAAUBsAAFkbAACwGwAAuRsAAEAcAABJHAAAUBwAAFkcAAAgpgAAKaYAANCoAADZqAAAAKkAAAmpAADQqQAA2akAAPCpAAD5qQAAUKoAAFmqAADwqwAA+asAABD/AAAZ/wAAoAQBAKkEAQAwDQEAOQ0BAGYQAQBvEAEA8BABAPkQAQA2EQEAPxEBANARAQDZEQEA8BIBAPkSAQBQFAEAWRQBANAUAQDZFAEAUBYBAFkWAQDAFgEAyRYBADAXAQA5FwEA4BgBAOkYAQBQGQEAWRkBAFAcAQBZHAEAUB0BAFkdAQCgHQEAqR0BAGBqAQBpagEAwGoBAMlqAQBQawEAWWsBAM7XAQD/1wEAQOEBAEnhAQDw4gEA+eIBAFDpAQBZ6QEA8PsBAPn7AQBB4MkCC+NVvwIAACEAAAB+AAAAoQAAAHcDAAB6AwAAfwMAAIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE8NAABUDQAAYw0AAGYNAAB/DQAAgQ0AAIMNAACFDQAAlg0AAJoNAACxDQAAsw0AALsNAAC9DQAAvQ0AAMANAADGDQAAyg0AAMoNAADPDQAA1A0AANYNAADWDQAA2A0AAN8NAADmDQAA7w0AAPINAAD0DQAAAQ4A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AKoAAACqAAAAtQAAALUAAAC6AAAAugAAAN8AAAD2AAAA+AAAAP8AAAABAQAAAQEAAAMBAAADAQAABQEAAAUBAAAHAQAABwEAAAkBAAAJAQAACwEAAAsBAAANAQAADQEAAA8BAAAPAQAAEQEAABEBAAATAQAAEwEAABUBAAAVAQAAFwEAABcBAAAZAQAAGQEAABsBAAAbAQAAHQEAAB0BAAAfAQAAHwEAACEBAAAhAQAAIwEAACMBAAAlAQAAJQEAACcBAAAnAQAAKQEAACkBAAArAQAAKwEAAC0BAAAtAQAALwEAAC8BAAAxAQAAMQEAADMBAAAzAQAANQEAADUBAAA3AQAAOAEAADoBAAA6AQAAPAEAADwBAAA+AQAAPgEAAEABAABAAQAAQgEAAEIBAABEAQAARAEAAEYBAABGAQAASAEAAEkBAABLAQAASwEAAE0BAABNAQAATwEAAE8BAABRAQAAUQEAAFMBAABTAQAAVQEAAFUBAABXAQAAVwEAAFkBAABZAQAAWwEAAFsBAABdAQAAXQEAAF8BAABfAQAAYQEAAGEBAABjAQAAYwEAAGUBAABlAQAAZwEAAGcBAABpAQAAaQEAAGsBAABrAQAAbQEAAG0BAABvAQAAbwEAAHEBAABxAQAAcwEAAHMBAAB1AQAAdQEAAHcBAAB3AQAAegEAAHoBAAB8AQAAfAEAAH4BAACAAQAAgwEAAIMBAACFAQAAhQEAAIgBAACIAQAAjAEAAI0BAACSAQAAkgEAAJUBAACVAQAAmQEAAJsBAACeAQAAngEAAKEBAAChAQAAowEAAKMBAAClAQAApQEAAKgBAACoAQAAqgEAAKsBAACtAQAArQEAALABAACwAQAAtAEAALQBAAC2AQAAtgEAALkBAAC6AQAAvQEAAL8BAADGAQAAxgEAAMkBAADJAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADwAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAhAgAAIQIAACMCAAAjAgAAJQIAACUCAAAnAgAAJwIAACkCAAApAgAAKwIAACsCAAAtAgAALQIAAC8CAAAvAgAAMQIAADECAAAzAgAAOQIAADwCAAA8AgAAPwIAAEACAABCAgAAQgIAAEcCAABHAgAASQIAAEkCAABLAgAASwIAAE0CAABNAgAATwIAAJMCAACVAgAAuAIAAMACAADBAgAA4AIAAOQCAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHoDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPwDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGAFAACIBQAA0BAAAPoQAAD9EAAA/xAAAPgTAAD9EwAAgBwAAIgcAAAAHQAAvx0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAnR4AAJ8eAACfHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAhx8AAJAfAACXHwAAoB8AAKcfAACwHwAAtB8AALYfAAC3HwAAvh8AAL4fAADCHwAAxB8AAMYfAADHHwAA0B8AANMfAADWHwAA1x8AAOAfAADnHwAA8h8AAPQfAAD2HwAA9x8AAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAAAohAAAKIQAADiEAAA8hAAATIQAAEyEAAC8hAAAvIQAANCEAADQhAAA5IQAAOSEAADwhAAA9IQAARiEAAEkhAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHEsAABxLAAAcywAAHQsAAB2LAAAfSwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOQsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAnaYAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAxpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacA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XR8AAF8fAAB9HwAAgB8AALQfAAC2HwAAxB8AAMYfAADTHwAA1h8AANsfAADdHwAA7x8AAPIfAAD0HwAA9h8AAP4fAAAAIAAAJyAAACogAABkIAAAZiAAAHEgAAB0IAAAjiAAAJAgAACcIAAAoCAAAMAgAADQIAAA8CAAAAAhAACLIQAAkCEAACYkAABAJAAASiQAAGAkAABzKwAAdisAAJUrAACXKwAA8ywAAPksAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAHAtAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAAXS4AAIAuAACZLgAAmy4AAPMuAAAALwAA1S8AAPAvAAD7LwAAADAAAD8wAABBMAAAljAAAJkwAAD/MAAABTEAAC8xAAAxMQAAjjEAAJAxAADjMQAA8DEAAB4yAAAgMgAAjKQAAJCkAADGpAAA0KQAACumAABApgAA96YAAACnAADKpwAA0KcAANGnAADTpwAA06cAANWnAADZpwAA8qcAACyoAAAwqAAAOagAAECoAAB3qAAAgKgAAMWoAADOqAAA2agAAOCoAABTqQAAX6kAAHypAACAqQAAzakAAM+pAADZqQAA3qkAAP6pAAAAqgAANqoAAECqAABNqgAAUKoAAFmqAABcqgAAwqoAANuqAAD2qgAAAasAAAarAAAJqwAADqsAABGrAAAWqwAAIKsAACarAAAoqwAALqsAADCrAABrqwAAcKsAAO2rAADwqwAA+asAAACsAACj1wAAsNcAAMbXAADL1wAA+9cAAADgAABt+gAAcPoAANn6AAAA+wAABvsAABP7AAAX+wAAHfsAADb7AAA4+wAAPPsAAD77AAA++wAAQPsAAEH7AABD+wAARPsAAEb7AADC+wAA0/sAAI/9AACS/QAAx/0AAM/9AADP/QAA8P0AABn+AAAg/gAAUv4AAFT+AABm/gAAaP4AAGv+AABw/gAAdP4AAHb+AAD8/gAA//4AAP/+AAAB/wAAvv8AAML/AADH/wAAyv8AAM//AADS/wAA1/8AANr/AADc/wAA4P8AAOb/AADo/wAA7v8AAPn/AAD9/wAAAAABAAsAAQANAAEAJgABACgAAQA6AAEA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AAIBAAACAQAABAEAAAQBAAAGAQAABgEAAAgBAAAIAQAACgEAAAoBAAAMAQAADAEAAA4BAAAOAQAAEAEAABABAAASAQAAEgEAABQBAAAUAQAAFgEAABYBAAAYAQAAGAEAABoBAAAaAQAAHAEAABwBAAAeAQAAHgEAACABAAAgAQAAIgEAACIBAAAkAQAAJAEAACYBAAAmAQAAKAEAACgBAAAqAQAAKgEAACwBAAAsAQAALgEAAC4BAAAwAQAAMAEAADIBAAAyAQAANAEAADQBAAA2AQAANgEAADkBAAA5AQAAOwEAADsBAAA9AQAAPQEAAD8BAAA/AQAAQQEAAEEBAABDAQAAQwEAAEUBAABFAQAARwEAAEcBAABKAQAASgEAAEwBAABMAQAATgEAAE4BAABQAQAAUAEAAFIBAABSAQAAVAEAAFQBAABWAQAAVgEAAFgBAABYAQAAWgEAAFoBAABcAQAAXAEAAF4BAABeAQAAYAEAAGABAABiAQAAYgEAAGQBAABkAQAAZgEAAGYBAABoAQAAaAEAAGoBAABqAQAAbAEAAGwBAABuAQAAbgEAAHABAABwAQAAcgEAAHIBAAB0AQAAdAEAAHYBAAB2AQAAeAEAAHkBAAB7AQAAewEAAH0BAAB9AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxAEAAMcBAADHAQAAygEAAMoBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPEBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABwAwAAcAMAAHIDAAByAwAAdgMAAHYDAAB/AwAAfwMAAIYDAACGAwAAiAMAAIoDAACMAwAAjAMAAI4DAACPAwAAkQMAAKEDAACjAwAAqwMAAM8DAADPAwAA0gMAANQDAADYAwAA2AMAANoDAADaAwAA3AMAANwDAADeAwAA3gMAAOADAADgAwAA4gMAAOIDAADkAwAA5AMAAOYDAADmAwAA6AMAAOgDAADqAwAA6gMAAOwDAADsAwAA7gMAAO4DAAD0AwAA9AMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAAoBMAAPUTAACQHAAAuhwAAL0cAAC/HAAAAB4AAAAeAAACHgAAAh4AAAQeAAAEHgAABh4AAAYeAAAIHgAACB4AAAoeAAAKHgAADB4AAAweAAAOHgAADh4AABAeAAAQHgAAEh4AABIeAAAUHgAAFB4AABYeAAAWHgAAGB4AABgeAAAaHgAAGh4AABweAAAcHgAAHh4AAB4eAAAgHgAAIB4AACIeAAAiHgAAJB4AACQeAAAmHgAAJh4AACgeAAAoHgAAKh4AACoeAAAsHgAALB4AAC4eAAAuHgAAMB4AADAeAAAyHgAAMh4AADQeAAA0HgAANh4AADYeAAA4HgAAOB4AADoeAAA6HgAAPB4AADweAAA+HgAAPh4AAEAeAABAHgAAQh4AAEIeAABEHgAARB4AAEYeAABGHgAASB4AAEgeAABKHgAASh4AAEweAABMHgAATh4AAE4eAABQHgAAUB4AAFIeAABSHgAAVB4AAFQeAABWHgAAVh4AAFgeAABYHgAAWh4AAFoeAABcHgAAXB4AAF4eAABeHgAAYB4AAGAeAABiHgAAYh4AAGQeAABkHgAAZh4AAGYeAABoHgAAaB4AAGoeAABqHgAAbB4AAGweAABuHgAAbh4AAHAeAABwHgAAch4AAHIeAAB0HgAAdB4AAHYeAAB2HgAAeB4AAHgeAAB6HgAAeh4AAHweAAB8HgAAfh4AAH4eAACAHgAAgB4AAIIeAACCHgAAhB4AAIQeAACGHgAAhh4AAIgeAACIHgAAih4AAIoeAACMHgAAjB4AAI4eAACOHgAAkB4AAJAeAACSHgAAkh4AAJQeAACUHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADUAQAZ1AEANNQBAE3UAQBo1AEAgdQBAJzUAQCc1AEAntQBAJ/UAQCi1AEAotQBAKXUAQCm1AEAqdQBAKzUAQCu1AEAtdQBANDUAQDp1AEABNUBAAXVAQAH1QEACtUBAA3VAQAU1QEAFtUBABzVAQA41QEAOdUBADvVAQA+1QEAQNUBAETVAQBG1QEARtUBAErVAQBQ1QEAbNUBAIXVAQCg1QEAudUBANTVAQDt1QEACNYBACHWAQA81gEAVdYBAHDWAQCJ1gEAqNYBAMDWAQDi1gEA+tYBABzXAQA01wEAVtcBAG7XAQCQ1wEAqNcBAMrXAQDK1wEAAOkBACHpAQAw8QEASfEBAFDxAQBp8QEAcPEBAInxAQAAAAAAAwAAADAAAAA5AAAAQQAAAEYAAABhAAAAZgAAAAAAAAD2AgAAMAAAADkAAABBAAAAWgAAAF8AAABfAAAAYQAAAHoAAACqAAAAqgAAALUAAAC1AAAAugAAALoAAADAAAAA1gAAANgAAAD2AAAA+AAAAMECAADGAgAA0QIAAOACAADkAgAA7AIAAOwCAADuAgAA7gIAAAADAAB0AwAAdgMAAHcDAAB6AwAAfQMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAKEDAACjAwAA9QMAAPcDAACBBAAAgwQAAC8FAAAxBQAAVgUAAFkFAABZBQAAYAUAAIgFAACRBQAAvQUAAL8FAAC/BQAAwQUAAMIFAADEBQAAxQUAAMcFAADHBQAA0AUAAOoFAADvBQAA8gUAABAGAAAaBgAAIAYAAGkGAABuBgAA0wYAANUGAADcBgAA3wYAAOgGAADqBgAA/AYAAP8GAAD/BgAAEAcAAEoHAABNBwAAsQcAAMAHAAD1BwAA+gcAAPoHAAD9BwAA/QcAAAAIAAAtCAAAQAgAAFsIAABgCAAAaggAAHAIAACHCAAAiQgAAI4IAACYCAAA4QgAAOMIAABjCQAAZgkAAG8JAABxCQAAgwkAAIUJAACMCQAAjwkAAJAJAACTCQAAqAkAAKoJAACwCQAAsgkAALIJAAC2CQAAuQkAALwJAADECQAAxwkAAMgJAADLCQAAzgkAANcJAADXCQAA3AkAAN0JAADfCQAA4wkAAOYJAADxCQAA/AkAAPwJAAD+CQAA/gkAAAEKAAADCgAABQoAAAoKAAAPCgAAEAoAABMKAAAoCgAAKgoAADAKAAAyCgAAMwoAADUKAAA2CgAAOAoAADkKAAA8CgAAPAoAAD4KAABCCgAARwoAAEgKAABLCgAATQoAAFEKAABRCgAAWQoAAFwKAABeCgAAXgoAAGYKAAB1CgAAgQoAAIMKAACFCgAAjQoAAI8KAACRCgAAkwoAAKgKAACqCgAAsAoAALIKAACzCgAAtQoAALkKAAC8CgAAxQoAAMcKAADJCgAAywoAAM0KAADQCgAA0AoAAOAKAADjCgAA5goAAO8KAAD5CgAA/woAAAELAAADCwAABQsAAAwLAAAPCwAAEAsAABMLAAAoCwAAKgsAADALAAAyCwAAMwsAADULAAA5CwAAPAsAAEQLAABHCwAASAsAAEsLAABNCwAAVQsAAFcLAABcCwAAXQsAAF8LAABjCwAAZgsAAG8LAABxCwAAcQsAAIILAACDCwAAhQsAAIoLAACOCwAAkAsAAJILAACVCwAAmQsAAJoLAACcCwAAnAsAAJ4LAACfCwAAowsAAKQLAACoCwAAqgsAAK4LAAC5CwAAvgsAAMILAADGCwAAyAsAAMoLAADNCwAA0AsAANALAADXCwAA1wsAAOYLAADvCwAAAAwAAAwMAAAODAAAEAwAABIMAAAoDAAAKgwAADkMAAA8DAAARAwAAEYMAABIDAAASgwAAE0MAABVDAAAVgwAAFgMAABaDAAAXQwAAF0MAABgDAAAYwwAAGYMAABvDAAAgAwAAIMMAACFDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwAAMQMAADGDAAAyAwAAMoMAADNDAAA1QwAANYMAADdDAAA3gwAAOAMAADjDAAA5gwAAO8MAADxDAAA8gwAAAANAAAMDQAADg0AABANAAASDQAARA0AAEYNAABIDQAASg0AAE4NAABUDQAAVw0AAF8NAABjDQAAZg0AAG8NAAB6DQAAfw0AAIENAACDDQAAhQ0AAJYNAACaDQAAsQ0AALMNAAC7DQAAvQ0AAL0NAADADQAAxg0AAMoNAADKDQAAzw0AANQNAADWDQAA1g0AANgNAADfDQAA5g0AAO8NAADyDQAA8w0AAAEOAAA6DgAAQA4AAE4OAABQDgAAWQ4AAIEOAACCDgAAhA4AAIQOAACGDgAAig4AAIwOAACjDgAApQ4AAKUOAACnDgAAvQ4AAMAOAADEDgAAxg4AAMYOAADIDgAAzQ4AANAOAADZDgAA3A4AAN8OAAAADwAAAA8AABgPAAAZDwAAIA8AACkPAAA1DwAANQ8AADcPAAA3DwAAOQ8AADkPAAA+DwAARw8AAEkPAABsDwAAcQ8AAIQPAACGDwAAlw8AAJkPAAC8DwAAxg8AAMYPAAAAEAAASRAAAFAQAACdEAAAoBAAAMUQAADHEAAAxxAAAM0QAADNEAAA0BAAAPoQAAD8EAAASBIAAEoSAABNEgAAUBIAAFYSAABYEgAAWBIAAFoSAABdEgAAYBIAAIgSAACKEgAAjRIAAJASAACwEgAAshIAALUSAAC4EgAAvhIAAMASAADAEgAAwhIAAMUSAADIEgAA1hIAANgSAAAQEwAAEhMAABUTAAAYEwAAWhMAAF0TAABfEwAAgBMAAI8TAACgEwAA9RMAAPgTAAD9EwAAARQAAGwWAABvFgAAfxYAAIEWAACaFgAAoBYAAOoWAADuFgAA+BYAAAAXAAAVFwAAHxcAADQXAABAFwAAUxcAAGAXAABsFwAAbhcAAHAXAAByFwAAcxcAAIAXAADTFwAA1xcAANcXAADcFwAA3RcAAOAXAADpFwAACxgAAA0YAAAPGAAAGRgAACAYAAB4GAAAgBgAAKoYAACwGAAA9RgAAAAZAAAeGQAAIBkAACsZAAAwGQAAOxkAAEYZAABtGQAAcBkAAHQZAACAGQAAqxkAALAZAADJGQAA0BkAANkZAAAAGgAAGxoAACAaAABeGgAAYBoAAHwaAAB/GgAAiRoAAJAaAACZGgAApxoAAKcaAACwGgAAzhoAAAAbAABMGwAAUBsAAFkbAABrGwAAcxsAAIAbAADzGwAAABwAADccAABAHAAASRwAAE0cAAB9HAAAgBwAAIgcAACQHAAAuhwAAL0cAAC/HAAA0BwAANIcAADUHAAA+hwAAAAdAAAVHwAAGB8AAB0fAAAgHwAARR8AAEgfAABNHwAAUB8AAFcfAABZHwAAWR8AAFsfAABbHwAAXR8AAF0fAABfHwAAfR8AAIAfAAC0HwAAth8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMwfAADQHwAA0x8AANYfAADbHwAA4B8AAOwfAADyHwAA9B8AAPYfAAD8HwAAPyAAAEAgAABUIAAAVCAAAHEgAABxIAAAfyAAAH8gAACQIAAAnCAAANAgAADwIAAAAiEAAAIhAAAHIQAAByEAAAohAAATIQAAFSEAABUhAAAZIQAAHSEAACQhAAAkIQAAJiEAACYhAAAoIQAAKCEAACohAAAtIQAALyEAADkhAAA8IQAAPyEAAEUhAABJIQAATiEAAE4hAABgIQAAiCEAALYkAADpJAAAACwAAOQsAADrLAAA8ywAAAAtAAAlLQAAJy0AACctAAAtLQAALS0AADAtAABnLQAAby0AAG8tAAB/LQAAli0AAKAtAACmLQAAqC0AAK4tAACwLQAAti0AALgtAAC+LQAAwC0AAMYtAADILQAAzi0AANAtAADWLQAA2C0AAN4tAADgLQAA/y0AAC8uAAAvLgAABTAAAAcwAAAhMAAALzAAADEwAAA1MAAAODAAADwwAABBMAAAljAAAJkwAACaMAAAnTAAAJ8wAAChMAAA+jAAAPwwAAD/MAAABTEAAC8xAAAxMQAAjjEAAKAxAAC/MQAA8DEAAP8xAAAANAAAv00AAABOAACMpAAA0KQAAP2kAAAApQAADKYAABCmAAArpgAAQKYAAHKmAAB0pgAAfaYAAH+mAADxpgAAF6cAAB+nAAAipwAAiKcAAIunAADKpwAA0KcA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AIQDAACKAwAAjAMAAIwDAACOAwAAoQMAAKMDAAAvBQAAMQUAAFYFAABZBQAAigUAAI0FAACPBQAAkQUAAMcFAADQBQAA6gUAAO8FAAD0BQAAAAYAAA0HAAAPBwAASgcAAE0HAACxBwAAwAcAAPoHAAD9BwAALQgAADAIAAA+CAAAQAgAAFsIAABeCAAAXggAAGAIAABqCAAAcAgAAI4IAACQCAAAkQgAAJgIAACDCQAAhQkAAIwJAACPCQAAkAkAAJMJAACoCQAAqgkAALAJAACyCQAAsgkAALYJAAC5CQAAvAkAAMQJAADHCQAAyAkAAMsJAADOCQAA1wkAANcJAADcCQAA3QkAAN8JAADjCQAA5gkAAP4JAAABCgAAAwoAAAUKAAAKCgAADwoAABAKAAATCgAAKAoAACoKAAAwCgAAMgoAADMKAAA1CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdgoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADxCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAAB3CwAAggsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC+CwAAwgsAAMYLAADICwAAygsAAM0LAADQCwAA0AsAANcLAADXCwAA5gsAAPoLAAAADAAADAwAAA4MAAAQDAAAEgwAACgMAAAqDAAAOQwAADwMAABEDAAARgwAAEgMAABKDAAATQwAAFUMAABWDAAAWAwAAFoMAABdDAAAXQwAAGAMAABjDAAAZgwAAG8MAAB3DAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvAwA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AMUJAADGCQAAyQkAAMoJAADPCQAA1gkAANgJAADbCQAA3gkAAN4JAADkCQAA5QkAAP8JAAAACgAABAoAAAQKAAALCgAADgoAABEKAAASCgAAKQoAACkKAAAxCgAAMQoAADQKAAA0CgAANwoAADcKAAA6CgAAOwoAAD0KAAA9CgAAQwoAAEYKAABJCgAASgoAAE4KAABQCgAAUgoAAFgKAABdCgAAXQoAAF8KAABlCgAAdwoAAIAKAACECgAAhAoAAI4KAACOCgAAkgoAAJIKAACpCgAAqQoAALEKAACxCgAAtAoAALQKAAC6CgAAuwoAAMYKAADGCgAAygoAAMoKAADOCgAAzwoAANEKAADfCgAA5AoAAOUKAADyCgAA+AoAAAALAAAACwAABAsAAAQLAAANCwAADgsAABELAAASCwAAKQsAACkLAAAxCwAAMQsAADQLAAA0CwAAOgsAADsLAABFCwAARgsAAEkLAABKCwAATgsAAFQLAABYCwAAWwsAAF4LAABeCwAAZAsAAGULAAB4CwAAgQsAAIQLAACECwAAiwsAAI0LAACRCwAAkQsAAJYLAACYCwAAmwsAAJsLAACdCwAAnQsAAKALAACiCwAApQsAAKcLAACrCwAArQsAALoLAAC9CwAAwwsAAMULAADJCwAAyQsAAM4LAADPCwAA0QsAANYLAADYCwAA5QsAAPsLAAD/CwAADQwAAA0MAAARDAAAEQwAACkMAAApDAAAOgwAADsMAABFDAAARQwAAEkMAABJDAAATgwAAFQMAABXDAAAVwwAAFsMAABcDAAAXgwAAF8MAABkDAAAZQwAAHAMAAB2DAAAjQwAAI0MAACRDAAAkQwAAKkMAACpDAAAtAwAALQMAAC6DAAAuwwAAMUMAADFDAAAyQwAAMkMAADODAAA1AwAANcMAADcDAAA3wwAAN8MAADkDAAA5QwAAPAMAADwDAAA8wwAAP8MAAANDQAADQ0AABENAAARDQAARQ0AAEUNAABJDQAASQ0AAFANAABTDQAAZA0AAGUNAACADQAAgA0AAIQNAACEDQAAlw0AAJkNAACyDQAAsg0AALwNAAC8DQAAvg0AAL8NAADHDQAAyQ0AAMsNAADODQAA1Q0AANUNAADXDQAA1w0AAOANAADlDQAA8A0AAPENAAD1DQAAAA4AADsOAAA+DgAAXA4A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AQAAcAEAAHIBAAByAQAAdAEAAHQBAAB2AQAAdgEAAHgBAAB5AQAAewEAAHsBAAB9AQAAfQEAAH8BAAB/AQAAgQEAAIIBAACEAQAAhAEAAIYBAACHAQAAiQEAAIsBAACOAQAAkQEAAJMBAACUAQAAlgEAAJgBAACcAQAAnQEAAJ8BAACgAQAAogEAAKIBAACkAQAApAEAAKYBAACnAQAAqQEAAKkBAACsAQAArAEAAK4BAACvAQAAsQEAALMBAAC1AQAAtQEAALcBAAC4AQAAvAEAALwBAADEAQAAxQEAAMcBAADIAQAAygEAAMsBAADNAQAAzQEAAM8BAADPAQAA0QEAANEBAADTAQAA0wEAANUBAADVAQAA1wEAANcBAADZAQAA2QEAANsBAADbAQAA3gEAAN4BAADgAQAA4AEAAOIBAADiAQAA5AEAAOQBAADmAQAA5gEAAOgBAADoAQAA6gEAAOoBAADsAQAA7AEAAO4BAADuAQAA8QEAAPIBAAD0AQAA9AEAAPYBAAD4AQAA+gEAAPoBAAD8AQAA/AEAAP4BAAD+AQAAAAIAAAACAAACAgAAAgIAAAQCAAAEAgAABgIAAAYCAAAIAgAACAIAAAoCAAAKAgAADAIAAAwCAAAOAgAADgIAABACAAAQAgAAEgIAABICAAAUAgAAFAIAABYCAAAWAgAAGAIAABgCAAAaAgAAGgIAABwCAAAcAgAAHgIAAB4CAAAgAgAAIAIAACICAAAiAgAAJAIAACQCAAAmAgAAJgIAACgCAAAoAgAAKgIAACoCAAAsAgAALAIAAC4CAAAuAgAAMAIAADACAAAyAgAAMgIAADoCAAA7AgAAPQIAAD4CAABBAgAAQQIAAEMCAABGAgAASAIAAEgCAABKAgAASgIAAEwCAABMAgAATgIAAE4CAABFAwAARQMAAHADAABwAwAAcgMAAHIDAAB2AwAAdgMAAH8DAAB/AwAAhgMAAIYDAACIAwAAigMAAIwDAACMAwAAjgMAAI8DAACRAwAAoQMAAKMDAACrAwAAwgMAAMIDAADPAwAA0QMAANUDAADWAwAA2AMAANgDAADaAwAA2gMAANwDAADcAwAA3gMAAN4DAADgAwAA4AMAAOIDAADiAwAA5AMAAOQDAADmAwAA5gMAAOgDAADoAwAA6gMAAOoDAADsAwAA7AMAAO4DAADuAwAA8AMAAPEDAAD0AwAA9QMAAPcDAAD3AwAA+QMAAPoDAAD9AwAALwQAAGAEAABgBAAAYgQAAGIEAABkBAAAZAQAAGYEAABmBAAAaAQAAGgEAABqBAAAagQAAGwEAABsBAAAbgQAAG4EAABwBAAAcAQAAHIEAAByBAAAdAQAAHQEAAB2BAAAdgQAAHgEAAB4BAAAegQAAHoEAAB8BAAAfAQAAH4EAAB+BAAAgAQAAIAEAACKBAAAigQAAIwEAACMBAAAjgQAAI4EAACQBAAAkAQAAJIEAACSBAAAlAQAAJQEAACWBAAAlgQAAJgEAACYBAAAmgQAAJoEAACcBAAAnAQAAJ4EAACeBAAAoAQAAKAEAACiBAAAogQAAKQEAACkBAAApgQAAKYEAACoBAAAqAQAAKoEAACqBAAArAQAAKwEAACuBAAArgQAALAEAACwBAAAsgQAALIEAAC0BAAAtAQAALYEAAC2BAAAuAQAALgEAAC6BAAAugQAALwEAAC8BAAAvgQAAL4EAADABAAAwQQAAMMEAADDBAAAxQQAAMUEAADHBAAAxwQAAMkEAADJBAAAywQAAMsEAADNBAAAzQQAANAEAADQBAAA0gQAANIEAADUBAAA1AQAANYEAADWBAAA2AQAANgEAADaBAAA2gQAANwEAADcBAAA3gQAAN4EAADgBAAA4AQAAOIEAADiBAAA5AQAAOQEAADmBAAA5gQAAOgEAADoBAAA6gQAAOoEAADsBAAA7AQAAO4EAADuBAAA8AQAAPAEAADyBAAA8gQAAPQEAAD0BAAA9gQAAPYEAAD4BAAA+AQAAPoEAAD6BAAA/AQAAPwEAAD+BAAA/gQAAAAFAAAABQAAAgUAAAIFAAAEBQAABAUAAAYFAAAGBQAACAUAAAgFAAAKBQAACgUAAAwFAAAMBQAADgUAAA4FAAAQBQAAEAUAABIFAAASBQAAFAUAABQFAAAWBQAAFgUAABgFAAAYBQAAGgUAABoFAAAcBQAAHAUAAB4FAAAeBQAAIAUAACAFAAAiBQAAIgUAACQFAAAkBQAAJgUAACYFAAAoBQAAKAUAACoFAAAqBQAALAUAACwFAAAuBQAALgUAADEFAABWBQAAhwUAAIcFAACgEAAAxRAAAMcQAADHEAAAzRAAAM0QAAD4EwAA/RMAAIAcAACIHAAAkBwAALocAAC9HAAAvxwAAAAeAAAAHgAAAh4AAAIeAAAEHgAABB4AAAYeAAAGHgAACB4AAAgeAAAKHgAACh4AAAweAAAMHgAADh4AAA4eAAAQHgAAEB4AABIeAAASHgAAFB4AABQeAAAWHgAAFh4AABgeAAAYHgAAGh4AABoeAAAcHgAAHB4AAB4eAAAeHgAAIB4AACAeAAAiHgAAIh4AACQeAAAkHgAAJh4AACYeAAAoHgAAKB4AACoeAAAqHgAALB4AACweAAAuHgAALh4AADAeAAAwHgAAMh4AADIeAAA0HgAANB4AADYeAAA2HgAAOB4AADgeAAA6HgAAOh4AADweAAA8HgAAPh4AAD4eAABAHgAAQB4AAEIeAABCHgAARB4AAEQeAABGHgAARh4AAEgeAABIHgAASh4AAEoeAABMHgAATB4AAE4eAABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJoeAACbHgAAnh4AAJ4eAACgHgAAoB4AAKIeAACiHgAApB4AAKQeAACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AAIAfAACvHwAAsh8AALQfAAC3HwAAvB8AAMIfAADEHwAAxx8AAMwfAADYHwAA2x8AAOgfAADsHwAA8h8AAPQfAAD3HwAA/B8AACYhAAAmIQAAKiEAACshAAAyIQAAMiEAAGAhAABvIQAAgyEAAIMhAAC2JAAAzyQAAAAsAAAvLAAAYCwAAGAsAABiLAAAZCwAAGcsAABnLAAAaSwAAGksAABrLAAAaywAAG0sAABwLAAAciwAAHIsAAB1LAAAdSwAAH4sAACALAAAgiwAAIIsAACELAAAhCwAAIYsAACGLAAAiCwAAIgsAACKLAAAiiwAAIwsAACMLAAAjiwAAI4sAACQLAAAkCwAAJIsAACSLAAAlCwAAJQsAACWLAAAliwAAJgsAACYLAAAmiwAAJosAACcLAAAnCwAAJ4sAACeLAAAoCwAAKAsAACiLAAAoiwAAKQsAACkLAAApiwAAKYsAACoLAAAqCwAAKosAACqLAAArCwAAKwsAACuLAAAriwAALAsAACwLAAAsiwAALIsAAC0LAAAtCwAALYsAAC2LAAAuCwAALgsAAC6LAAAuiwAALwsAAC8LAAAviwAAL4sAADALAAAwCwAAMIsAADCLAAAxCwAAMQsAADGLAAAxiwAAMgsAADILAAAyiwAAMosAADMLAAAzCwAAM4sAADOLAAA0CwAANAsAADSLAAA0iwAANQsAADULAAA1iwAANYsAADYLAAA2CwAANosAADaLAAA3CwAANwsAADeLAAA3iwAAOAsAADgLAAA4iwAAOIsAADrLAAA6ywAAO0sAADtLAAA8iwAAPIsAABApgAAQKYAAEKmAABCpgAARKYAAESmAABGpgAARqYAAEimAABIpgAASqYAAEqmAABMpgAATKYAAE6mAABOpgAAUKYAAFCmAABSpgAAUqYAAFSmAABUpgAAVqYAAFamAABYpgAAWKYAAFqmAABapgAAXKYAAFymAABepgAAXqYAAGCmAABgpgAAYqYAAGKmAABkpgAAZKYAAGamAABmpgAAaKYAAGimAABqpgAAaqYAAGymAABspgAAgKYAAICmAACCpgAAgqYAAISmAACEpgAAhqYAAIamAACIpgAAiKYAAIqmAACKpgAAjKYAAIymAACOpgAAjqYAAJCmAACQpgAAkqYAAJKmAACUpgAAlKYAAJamAACWpgAAmKYAAJimAACapgAAmqYAACKnAAAipwAAJKcAACSnAAAmpwAAJqcAACinAAAopwAAKqcAACqnAAAspwAALKcAAC6nAAAupwAAMqcAADKnAAA0pwAANKcAADanAAA2pwAAOKcAADinAAA6pwAAOqcAADynAAA8pwAAPqcAAD6nAABApwAAQKcAAEKnAABCpwAARKcAAESnAABGpwAARqcAAEinAABIpwAASqcAAEqnAABMpwAATKcAAE6nAABOpwAAUKcAAFCnAABSpwAAUqcAAFSnAABUpwAAVqcAAFanAABYpwAAWKcAAFqnAABapwAAXKcAAFynAABepwAAXqcAAGCnAABgpwAAYqcAAGKnAABkpwAAZKcAAGanAABmpwAAaKcAAGinAABqpwAAaqcAAGynAABspwAAbqcAAG6nAAB5pwAAeacAAHunAAB7pwAAfacAAH6nAACApwAAgKcAAIKnAACCpwAAhKcAAISnAACGpwAAhqcAAIunAACLpwAAjacAAI2nAACQpwAAkKcAAJKnAACSpwAAlqcAAJanAACYpwAAmKcAAJqnAACapwAAnKcAAJynAACepwAAnqcAAKCnAACgpwAAoqcAAKKnAACkpwAApKcAAKanAACmpwAAqKcAAKinAACqpwAArqcAALCnAAC0pwAAtqcAALanAAC4pwAAuKcAALqnAAC6pwAAvKcAALynAAC+pwAAvqcAAMCnAADApwAAwqcAAMKnAADEpwAAx6cAAMmnAADJpwAA0KcAANCnAADWpwAA1qcAANinAADYpwAA9acAAPWnAABwqwAAv6sAAAD7AAAG+wAAE/sAABf7AAAh/wAAOv8AAAAEAQAnBAEAsAQBANMEAQBwBQEAegUBAHwFAQCKBQEAjAUBAJIFAQCUBQEAlQUBAIAMAQCyDAEAoBgBAL8YAQBAbgEAX24BAADpAQAh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AABOHgAAUB4AAFAeAABSHgAAUh4AAFQeAABUHgAAVh4AAFYeAABYHgAAWB4AAFoeAABaHgAAXB4AAFweAABeHgAAXh4AAGAeAABgHgAAYh4AAGIeAABkHgAAZB4AAGYeAABmHgAAaB4AAGgeAABqHgAAah4AAGweAABsHgAAbh4AAG4eAABwHgAAcB4AAHIeAAByHgAAdB4AAHQeAAB2HgAAdh4AAHgeAAB4HgAAeh4AAHoeAAB8HgAAfB4AAH4eAAB+HgAAgB4AAIAeAACCHgAAgh4AAIQeAACEHgAAhh4AAIYeAACIHgAAiB4AAIoeAACKHgAAjB4AAIweAACOHgAAjh4AAJAeAACQHgAAkh4AAJIeAACUHgAAlB4AAJ4eAACeHgAAoB4AAKAeAACiHgAAoh4AAKQeAACkHgAAph4AAKYeAACoHgAAqB4AAKoeAACqHgAArB4AAKweAACuHgAArh4AALAeAACwHgAAsh4AALIeAAC0HgAAtB4AALYeAAC2HgAAuB4AALgeAAC6HgAAuh4AALweAAC8HgAAvh4AAL4eAADAHgAAwB4AAMIeAADCHgAAxB4AAMQeAADGHgAAxh4AAMgeAADIHgAAyh4AAMoeAADMHgAAzB4AAM4eAADOHgAA0B4AANAeAADSHgAA0h4AANQeAADUHgAA1h4AANYeAADYHgAA2B4AANoeAADaHgAA3B4AANweAADeHgAA3h4AAOAeAADgHgAA4h4AAOIeAADkHgAA5B4AAOYeAADmHgAA6B4AAOgeAADqHgAA6h4AAOweAADsHgAA7h4AAO4eAADwHgAA8B4AAPIeAADyHgAA9B4AAPQeAAD2HgAA9h4AAPgeAAD4HgAA+h4AAPoeAAD8HgAA/B4AAP4eAAD+HgAACB8AAA8fAAAYHwAAHR8AACgfAAAvHwAAOB8AAD8fAABIHwAATR8AAFkfAABZHwAAWx8AAFsfAABdHwAAXR8AAF8fAABfHwAAaB8AAG8fAACIHwAAjx8AAJgfAACfHwAAqB8AAK8fAAC4HwAAvB8AAMgfAADMHwAA2B8AANsfAADoHwAA7B8AAPgfAAD8HwAAJiEAACYhAAAqIQAAKyEAADIhAAAyIQAAYCEAAG8hAACDIQAAgyEAALYkAADPJAAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqnAACcpwAAnKcAAJ6nAACepwAAoKcAAKCnAACipwAAoqcAAKSnAACkpwAApqcAAKanAACopwAAqKcAAKqnAACupwAAsKcAALSnAAC2pwAAtqcAALinAAC4pwAAuqcAALqnAAC8pwAAvKcAAL6nAAC+pwAAwKcAAMCnAADCpwAAwqcAAMSnAADHpwAAyacAAMmnAADQpwAA0KcAANanAADWpwAA2KcAANinAAD1pwAA9acAACH/AAA6/wAAAAQBACcEAQCwBAEA0wQBAHAFAQB6BQEAfAUBAIoFAQCMBQEAkgUBAJQFAQCVBQEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAAOkBACHpAQAAAAAAcgIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxAEAAMQBAADGAQAAxwEAAMkBAADKAQAAzAEAAMwBAADOAQAAzgEAANABAADQAQAA0gEAANIBAADUAQAA1AEAANYBAADWAQAA2AEAANgBAADaAQAA2gEAANwBAADdAQAA3wEAAN8BAADhAQAA4QEAAOMBAADjAQAA5QEAAOUBAADnAQAA5wEAAOkBAADpAQAA6wEAAOsBAADtAQAA7QEAAO8BAADxAQAA8wEAAPMBAAD1AQAA9QEAAPkBAAD5AQAA+wEAAPsBAAD9AQAA/QEAAP8BAAD/AQAAAQIAAAECAAADAgAAAwIAAAUCAAAFAgAABwIAAAcCAAAJAgAACQIAAAsCAAALAgAADQIAAA0CAAAPAgAADwIAABECAAARAgAAEwIAABMCAAAVAgAAFQIAABcCAAAXAgAAGQIAABkCAAAbAgAAGwIAAB0CAAAdAgAAHwIAAB8CAAAjAgAAIwIAACUCAAAlAgAAJwIAACcCAAApAgAAKQIAACsCAAArAgAALQIAAC0CAAAvAgAALwIAADECAAAxAgAAMwIAADMCAAA8AgAAPAIAAD8CAABAAgAAQgIAAEICAABHAgAARwIAAEkCAABJAgAASwIAAEsCAABNAgAATQIAAE8CAABUAgAAVgIAAFcCAABZAgAAWQIAAFsCAABcAgAAYAIAAGECAABjAgAAYwIAAGUCAABmAgAAaAIAAGwCAABvAgAAbwIAAHECAAByAgAAdQIAAHUCAAB9AgAAfQIAAIACAACAAgAAggIAAIMCAACHAgAAjAIAAJICAACSAgAAnQIAAJ4CAABFAwAARQMAAHEDAABxAwAAcwMAAHMDAAB3AwAAdwMAAHsDAAB9AwAAkAMAAJADAACsAwAAzgMAANADAADRAwAA1QMAANcDAADZAwAA2QMAANsDAADbAwAA3QMAAN0DAADfAwAA3wMAAOEDAADhAwAA4wMAAOMDAADlAwAA5QMAAOcDAADnAwAA6QMAAOkDAADrAwAA6wMAAO0DAADtAwAA7wMAAPMDAAD1AwAA9QMAAPgDAAD4AwAA+wMAAPsDAAAwBAAAXwQAAGEEAABhBAAAYwQAAGMEAABlBAAAZQQAAGcEAABnBAAAaQQAAGkEAABrBAAAawQAAG0EAABtBAAAbwQAAG8EAABxBAAAcQQAAHMEAABzBAAAdQQAAHUEAAB3BAAAdwQAAHkEAAB5BAAAewQAAHsEAAB9BAAAfQQAAH8EAAB/BAAAgQQAAIEEAACLBAAAiwQAAI0EAACNBAAAjwQAAI8EAACRBAAAkQQAAJMEAACTBAAAlQQAAJUEAACXBAAAlwQAAJkEAACZBAAAmwQAAJsEAACdBAAAnQQAAJ8EAACfBAAAoQQAAKEEAACjBAAAowQAAKUEAAClBAAApwQAAKcEAACpBAAAqQQAAKsEAACrBAAArQQAAK0EAACvBAAArwQAALEEAACxBAAAswQAALMEAAC1BAAAtQQAALcEAAC3BAAAuQQAALkEAAC7BAAAuwQAAL0EAAC9BAAAvwQAAL8EAADCBAAAwgQAAMQEAADEBAAAxgQAAMYEAADIBAAAyAQAAMoEAADKBAAAzAQAAMwEAADOBAAAzwQAANEEAADRBAAA0wQAANMEAADVBAAA1QQAANcEAADXBAAA2QQAANkEAADbBAAA2wQAAN0EAADdBAAA3wQAAN8EAADhBAAA4QQAAOMEAADjBAAA5QQAAOUEAADnBAAA5wQAAOkEAADpBAAA6wQAAOsEAADtBAAA7QQAAO8EAADvBAAA8QQAAPEEAADzBAAA8wQAAPUEAAD1BAAA9wQAAPcEAAD5BAAA+QQAAPsEAAD7BAAA/QQAAP0EAAD/BAAA/wQAAAEFAAABBQAAAwUAAAMFAAAFBQAABQUAAAcFAAAHBQAACQUAAAkFAAALBQAACwUAAA0FAAANBQAADwUAAA8FAAARBQAAEQUAABMFAAATBQAAFQUAABUFAAAXBQAAFwUAABkFAAAZBQAAGwUAABsFAAAdBQAAHQUAAB8FAAAfBQAAIQUAACEFAAAjBQAAIwUAACUFAAAlBQAAJwUAACcFAAApBQAAKQUAACsFAAArBQAALQUAAC0FAAAvBQAALwUAAGEFAACHBQAA+BMAAP0TAACAHAAAiBwAAHkdAAB5HQAAfR0AAH0dAACOHQAAjh0AAAEeAAABHgAAAx4AAAMeAAAFHgAABR4AAAceAAAHHgAACR4AAAkeAAALHgAACx4AAA0eAAANHgAADx4AAA8eAAARHgAAER4AABMeAAATHgAAFR4AABUeAAAXHgAAFx4AABkeAAAZHgAAGx4AABseAAAdHgAAHR4AAB8eAAAfHgAAIR4AACEeAAAjHgAAIx4AACUeAAAlHgAAJx4AACceAAApHgAAKR4AACseAAArHgAALR4AAC0eAAAvHgAALx4AADEeAAAxHgAAMx4AADMeAAA1HgAANR4AADceAAA3HgAAOR4AADkeAAA7HgAAOx4AAD0eAAA9HgAAPx4AAD8eAABBHgAAQR4AAEMeAABDHgAARR4AAEUeAABHHgAARx4AAEkeAABJHgAASx4AAEseAABNHgAATR4AAE8eAABPHgAAUR4AAFEeAABTHgAAUx4AAFUeAABVHgAAVx4AAFceAABZHgAAWR4AAFseAABbHgAAXR4AAF0eAABfHgAAXx4AAGEeAABhHgAAYx4AAGMeAABlHgAAZR4AAGceAABnHgAAaR4AAGkeAABrHgAAax4AAG0eAABtHgAAbx4AAG8eAABxHgAAcR4AAHMeAABzHgAAdR4AAHUeAAB3HgAAdx4AAHkeAAB5HgAAex4AAHseAAB9HgAAfR4AAH8eAAB/HgAAgR4AAIEeAACDHgAAgx4AAIUeAACFHgAAhx4AAIceAACJHgAAiR4AAIseAACLHgAAjR4AAI0eAACPHgAAjx4AAJEeAACRHgAAkx4AAJMeAACVHgAAmx4AAKEeAAChHgAAox4AAKMeAAClHgAApR4AAKceAACnHgAAqR4AAKkeAACrHgAAqx4AAK0eAACtHgAArx4AAK8eAACxHgAAsR4AALMeAACzHgAAtR4AALUeAAC3HgAAtx4AALkeAAC5HgAAux4AALseAAC9HgAAvR4AAL8eAAC/HgAAwR4AAMEeAADDHgAAwx4AAMUeAADFHgAAxx4AAMceAADJHgAAyR4AAMseAADLHgAAzR4AAM0eAADPHgAAzx4AANEeAADRHgAA0x4AANMeAADVHgAA1R4AANceAADXHgAA2R4AANkeAADbHgAA2x4AAN0eAADdHgAA3x4AAN8eAADhHgAA4R4AAOMeAADjHgAA5R4AAOUeAADnHgAA5x4AAOkeAADpHgAA6x4AAOseAADtHgAA7R4AAO8eAADvHgAA8R4AAPEeAADzHgAA8x4AAPUeAAD1HgAA9x4AAPceAAD5HgAA+R4AAPseAAD7HgAA/R4AAP0eAAD/HgAABx8AABAfAAAVHwAAIB8AACcfAAAwHwAANx8AAEAfAABFHwAAUB8AAFcfAABgHwAAZx8AAHAfAAB9HwAAgB8AAIcfAACQHwAAlx8AAKAfAACnHwAAsB8AALQfAAC2HwAAtx8AAL4fAAC+HwAAwh8AAMQfAADGHwAAxx8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAABOIQAATiEAAHAhAAB/IQAAhCEAAIQhAADQJAAA6SQAADAsAABfLAAAYSwAAGEsAABlLAAAZiwAAGgsAABoLAAAaiwAAGosAABsLAAAbCwAAHMsAABzLAAAdiwAAHYsAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADjLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAL6cAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAeqcAAHqnAAB8pwAAfKcAAH+nAAB/pwAAgacAAIGnAACDpwAAg6cAAIWnAACFpwAAh6cAAIenAACMpwAAjKcAAJGnAACRpwAAk6cAAJSnAACXpwAAl6cAAJmnAACZpwAAm6cAAJunAACdpwAAnacAAJ+nAACfpwAAoacAAKGnAACjpwAAo6cAAKWnAAClpwAAp6cAAKenAACppwAAqacAALWnAAC1pwAAt6cAALenAAC5pwAAuacAALunAAC7pwAAvacAAL2nAAC/pwAAv6cAAMGnAADBpwAAw6cAAMOnAADIpwAAyKcAAMqnAADKpwAA0acAANGnAADXpwAA16cAANmnAADZpwAA9qcAAPanAABTqwAAU6sAAHCrAAC/qwAAAPsAAAb7AAAT+wAAF/sAAEH/AABa/wAAKAQBAE8EAQDYBAEA+wQBAJcFAQChBQEAowUBALEFAQCzBQEAuQUBALsFAQC8BQEAwAwBAPIMAQDAGAEA3xgBAGBuAQB/bgEAIukBAEPpAQBBoOQGC8cncwIAAGEAAAB6AAAAtQAAALUAAADfAAAA9gAAAPgAAAD/AAAAAQEAAAEBAAADAQAAAwEAAAUBAAAFAQAABwEAAAcBAAAJAQAACQEAAAsBAAALAQAADQEAAA0BAAAPAQAADwEAABEBAAARAQAAEwEAABMBAAAVAQAAFQEAABcBAAAXAQAAGQEAABkBAAAbAQAAGwEAAB0BAAAdAQAAHwEAAB8BAAAhAQAAIQEAACMBAAAjAQAAJQEAACUBAAAnAQAAJwEAACkBAAApAQAAKwEAACsBAAAtAQAALQEAAC8BAAAvAQAAMQEAADEBAAAzAQAAMwEAADUBAAA1AQAANwEAADcBAAA6AQAAOgEAADwBAAA8AQAAPgEAAD4BAABAAQAAQAEAAEIBAABCAQAARAEAAEQBAABGAQAARgEAAEgBAABJAQAASwEAAEsBAABNAQAATQEAAE8BAABPAQAAUQEAAFEBAABTAQAAUwEAAFUBAABVAQAAVwEAAFcBAABZAQAAWQEAAFsBAABbAQAAXQEAAF0BAABfAQAAXwEAAGEBAABhAQAAYwEAAGMBAABlAQAAZQEAAGcBAABnAQAAaQEAAGkBAABrAQAAawEAAG0BAABtAQAAbwEAAG8BAABxAQAAcQEAAHMBAABzAQAAdQEAAHUBAAB3AQAAdwEAAHoBAAB6AQAAfAEAAHwBAAB+AQAAgAEAAIMBAACDAQAAhQEAAIUBAACIAQAAiAEAAIwBAACMAQAAkgEAAJIBAACVAQAAlQEAAJkBAACaAQAAngEAAJ4BAAChAQAAoQEAAKMBAACjAQAApQEAAKUBAACoAQAAqAEAAK0BAACtAQAAsAEAALABAAC0AQAAtAEAALYBAAC2AQAAuQEAALkBAAC9AQAAvQEAAL8BAAC/AQAAxQEAAMYBAADIAQAAyQEAAMsBAADMAQAAzgEAAM4BAADQAQAA0AEAANIBAADSAQAA1AEAANQBAADWAQAA1gEAANgBAADYAQAA2gEAANoBAADcAQAA3QEAAN8BAADfAQAA4QEAAOEBAADjAQAA4wEAAOUBAADlAQAA5wEAAOcBAADpAQAA6QEAAOsBAADrAQAA7QEAAO0BAADvAQAA8AEAAPIBAADzAQAA9QEAAPUBAAD5AQAA+QEAAPsBAAD7AQAA/QEAAP0BAAD/AQAA/wEAAAECAAABAgAAAwIAAAMCAAAFAgAABQIAAAcCAAAHAgAACQIAAAkCAAALAgAACwIAAA0CAAANAgAADwIAAA8CAAARAgAAEQIAABMCAAATAgAAFQIAABUCAAAXAgAAFwIAABkCAAAZAgAAGwIAABsCAAAdAgAAHQIAAB8CAAAfAgAAIwIAACMCAAAlAgAAJQIAACcCAAAnAgAAKQIAACkCAAArAgAAKwIAAC0CAAAtAgAALwIAAC8CAAAxAgAAMQIAADMCAAAzAgAAPAIAADwCAAA/AgAAQAIAAEICAABCAgAARwIAAEcCAABJAgAASQIAAEsCAABLAgAATQIAAE0CAABPAgAAVAIAAFYCAABXAgAAWQIAAFkCAABbAgAAXAIAAGACAABhAgAAYwIAAGMCAABlAgAAZgIAAGgCAABsAgAAbwIAAG8CAABxAgAAcgIAAHUCAAB1AgAAfQIAAH0CAACAAgAAgAIAAIICAACDAgAAhwIAAIwCAACSAgAAkgIAAJ0CAACeAgAARQMAAEUDAABxAwAAcQMAAHMDAABzAwAAdwMAAHcDAAB7AwAAfQMAAJADAACQAwAArAMAAM4DAADQAwAA0QMAANUDAADXAwAA2QMAANkDAADbAwAA2wMAAN0DAADdAwAA3wMAAN8DAADhAwAA4QMAAOMDAADjAwAA5QMAAOUDAADnAwAA5wMAAOkDAADpAwAA6wMAAOsDAADtAwAA7QMAAO8DAADzAwAA9QMAAPUDAAD4AwAA+AMAAPsDAAD7AwAAMAQAAF8EAABhBAAAYQQAAGMEAABjBAAAZQQAAGUEAABnBAAAZwQAAGkEAABpBAAAawQAAGsEAABtBAAAbQQAAG8EAABvBAAAcQQAAHEEAABzBAAAcwQAAHUEAAB1BAAAdwQAAHcEAAB5BAAAeQQAAHsEAAB7BAAAfQQAAH0EAAB/BAAAfwQAAIEEAACBBAAAiwQAAIsEAACNBAAAjQQAAI8EAACPBAAAkQQAAJEEAACTBAAAkwQAAJUEAACVBAAAlwQAAJcEAACZBAAAmQQAAJsEAACbBAAAnQQAAJ0EAACfBAAAnwQAAKEEAAChBAAAowQAAKMEAAClBAAApQQAAKcEAACnBAAAqQQAAKkEAACrBAAAqwQAAK0EAACtBAAArwQAAK8EAACxBAAAsQQAALMEAACzBAAAtQQAALUEAAC3BAAAtwQAALkEAAC5BAAAuwQAALsEAAC9BAAAvQQAAL8EAAC/BAAAwgQAAMIEAADEBAAAxAQAAMYEAADGBAAAyAQAAMgEAADKBAAAygQAAMwEAADMBAAAzgQAAM8EAADRBAAA0QQAANMEAADTBAAA1QQAANUEAADXBAAA1wQAANkEAADZBAAA2wQAANsEAADdBAAA3QQAAN8EAADfBAAA4QQAAOEEAADjBAAA4wQAAOUEAADlBAAA5wQAAOcEAADpBAAA6QQAAOsEAADrBAAA7QQAAO0EAADvBAAA7wQAAPEEAADxBAAA8wQAAPMEAAD1BAAA9QQAAPcEAAD3BAAA+QQAAPkEAAD7BAAA+wQAAP0EAAD9BAAA/wQAAP8EAAABBQAAAQUAAAMFAAADBQAABQUAAAUFAAAHBQAABwUAAAkFAAAJBQAACwUAAAsFAAANBQAADQUAAA8FAAAPBQAAEQUAABEFAAATBQAAEwUAABUFAAAVBQAAFwUAABcFAAAZBQAAGQUAABsFAAAbBQAAHQUAAB0FAAAfBQAAHwUAACEFAAAhBQAAIwUAACMFAAAlBQAAJQUAACcFAAAnBQAAKQUAACkFAAArBQAAKwUAAC0FAAAtBQAALwUAAC8FAABhBQAAhwUAANAQAAD6EAAA/RAAAP8QAAD4EwAA/RMAAIAcAACIHAAAeR0AAHkdAAB9HQAAfR0AAI4dAACOHQAAAR4AAAEeAAADHgAAAx4AAAUeAAAFHgAABx4AAAceAAAJHgAACR4AAAseAAALHgAADR4AAA0eAAAPHgAADx4AABEeAAARHgAAEx4AABMeAAAVHgAAFR4AABceAAAXHgAAGR4AABkeAAAbHgAAGx4AAB0eAAAdHgAAHx4AAB8eAAAhHgAAIR4AACMeAAAjHgAAJR4AACUeAAAnHgAAJx4AACkeAAApHgAAKx4AACseAAAtHgAALR4AAC8eAAAvHgAAMR4AADEeAAAzHgAAMx4AADUeAAA1HgAANx4AADceAAA5HgAAOR4AADseAAA7HgAAPR4AAD0eAAA/HgAAPx4AAEEeAABBHgAAQx4AAEMeAABFHgAARR4AAEceAABHHgAASR4AAEkeAABLHgAASx4AAE0eAABNHgAATx4AAE8eAABRHgAAUR4AAFMeAABTHgAAVR4AAFUeAABXHgAAVx4AAFkeAABZHgAAWx4AAFseAABdHgAAXR4AAF8eAABfHgAAYR4AAGEeAABjHgAAYx4AAGUeAABlHgAAZx4AAGceAABpHgAAaR4AAGseAABrHgAAbR4AAG0eAABvHgAAbx4AAHEeAABxHgAAcx4AAHMeAAB1HgAAdR4AAHceAAB3HgAAeR4AAHkeAAB7HgAAex4AAH0eAAB9HgAAfx4AAH8eAACBHgAAgR4AAIMeAACDHgAAhR4AAIUeAACHHgAAhx4AAIkeAACJHgAAix4AAIseAACNHgAAjR4AAI8eAACPHgAAkR4AAJEeAACTHgAAkx4AAJUeAACbHgAAoR4AAKEeAACjHgAAox4AAKUeAAClHgAApx4AAKceAACpHgAAqR4AAKseAACrHgAArR4AAK0eAACvHgAArx4AALEeAACxHgAAsx4AALMeAAC1HgAAtR4AALceAAC3HgAAuR4AALkeAAC7HgAAux4AAL0eAAC9HgAAvx4AAL8eAADBHgAAwR4AAMMeAADDHgAAxR4AAMUeAADHHgAAxx4AAMkeAADJHgAAyx4AAMseAADNHgAAzR4AAM8eAADPHgAA0R4AANEeAADTHgAA0x4AANUeAADVHgAA1x4AANceAADZHgAA2R4AANseAADbHgAA3R4AAN0eAADfHgAA3x4AAOEeAADhHgAA4x4AAOMeAADlHgAA5R4AAOceAADnHgAA6R4AAOkeAADrHgAA6x4AAO0eAADtHgAA7x4AAO8eAADxHgAA8R4AAPMeAADzHgAA9R4AAPUeAAD3HgAA9x4AAPkeAAD5HgAA+x4AAPseAAD9HgAA/R4AAP8eAAAHHwAAEB8AABUfAAAgHwAAJx8AADAfAAA3HwAAQB8AAEUfAABQHwAAVx8AAGAfAABnHwAAcB8AAH0fAACAHwAAtB8AALYfAAC3HwAAvB8AALwfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADMHwAAzB8AANAfAADTHwAA1h8AANcfAADgHwAA5x8AAPIfAAD0HwAA9h8AAPcfAAD8HwAA/B8AAE4hAABOIQAAcCEAAH8hAACEIQAAhCEAANAkAADpJAAAMCwAAF8sAABhLAAAYSwAAGUsAABmLAAAaCwAAGgsAABqLAAAaiwAAGwsAABsLAAAcywAAHMsAAB2LAAAdiwAAIEsAACBLAAAgywAAIMsAACFLAAAhSwAAIcsAACHLAAAiSwAAIksAACLLAAAiywAAI0sAACNLAAAjywAAI8sAACRLAAAkSwAAJMsAACTLAAAlSwAAJUsAACXLAAAlywAAJksAACZLAAAmywAAJssAACdLAAAnSwAAJ8sAACfLAAAoSwAAKEsAACjLAAAoywAAKUsAAClLAAApywAAKcsAACpLAAAqSwAAKssAACrLAAArSwAAK0sAACvLAAArywAALEsAACxLAAAsywAALMsAAC1LAAAtSwAALcsAAC3LAAAuSwAALksAAC7LAAAuywAAL0sAAC9LAAAvywAAL8sAADBLAAAwSwAAMMsAADDLAAAxSwAAMUsAADHLAAAxywAAMksAADJLAAAyywAAMssAADNLAAAzSwAAM8sAADPLAAA0SwAANEsAADTLAAA0ywAANUsAADVLAAA1ywAANcsAADZLAAA2SwAANssAADbLAAA3SwAAN0sAADfLAAA3ywAAOEsAADhLAAA4ywAAOMsAADsLAAA7CwAAO4sAADuLAAA8ywAAPMsAAAALQAAJS0AACctAAAnLQAALS0AAC0tAABBpgAAQaYAAEOmAABDpgAARaYAAEWmAABHpgAAR6YAAEmmAABJpgAAS6YAAEumAABNpgAATaYAAE+mAABPpgAAUaYAAFGmAABTpgAAU6YAAFWmAABVpgAAV6YAAFemAABZpgAAWaYAAFumAABbpgAAXaYAAF2mAABfpgAAX6YAAGGmAABhpgAAY6YAAGOmAABlpgAAZaYAAGemAABnpgAAaaYAAGmmAABrpgAAa6YAAG2mAABtpgAAgaYAAIGmAACDpgAAg6YAAIWmAACFpgAAh6YAAIemAACJpgAAiaYAAIumAACLpgAAjaYAAI2mAACPpgAAj6YAAJGmAACRpgAAk6YAAJOmAACVpgAAlaYAAJemAACXpgAAmaYAAJmmAACbpgAAm6YAACOnAAAjpwAAJacAACWnAAAnpwAAJ6cAACmnAAAppwAAK6cAACunAAAtpwAALacAAC+nAAAvpwAAM6cAADOnAAA1pwAANacAADenAAA3pwAAOacAADmnAAA7pwAAO6cAAD2nAAA9pwAAP6cAAD+nAABBpwAAQacAAEOnAABDpwAARacAAEWnAABHpwAAR6cAAEmnAABJpwAAS6cAAEunAABNpwAATacAAE+nAABPpwAAUacAAFGnAABTpwAAU6cAAFWnAABVpwAAV6cAAFenAABZpwAAWacAAFunAABbpwAAXacAAF2nAABfpwAAX6cAAGGnAABhpwAAY6cAAGOnAABlpwAAZacAAGenAABnpwAAaacAAGmnAABrpwAAa6cAAG2nAABtpwAAb6cAAG+nAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAkacAAJGnAACTpwAAlKcAAJenAACXpwAAmacAAJmnAACbpwAAm6cAAJ2nAACdpwAAn6cAAJ+nAAChpwAAoacAAKOnAACjpwAApacAAKWnAACnpwAAp6cAAKmnAACppwAAtacAALWnAAC3pwAAt6cAALmnAAC5pwAAu6cAALunAAC9pwAAvacAAL+nAAC/pwAAwacAAMGnAADDpwAAw6cAAMinAADIpwAAyqcAAMqnAADRpwAA0acAANenAADXpwAA2acAANmnAAD2pwAA9qcAAFOrAABTqwAAcKsAAL+rAAAA+wAABvsAABP7AAAX+wAAQf8AAFr/AAAoBAEATwQBANgEAQD7BAEAlwUBAKEFAQCjBQEAsQUBALMFAQC5BQEAuwUBALwFAQDADAEA8gwBAMAYAQDfGAEAYG4BAH9uAQAi6QEAQ+kBAAAAAAADAAAAoBMAAPUTAAD4EwAA/RMAAHCrAAC/qwAAAQAAALAPAQDLDwEAQfCLBwvTK7oCAAB4AwAAeQMAAIADAACDAwAAiwMAAIsDAACNAwAAjQMAAKIDAACiAwAAMAUAADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAA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CQAAggkAAIMJAACFCQAAjAkAAI8JAACQCQAAkwkAAKgJAACqCQAAsAkAALIJAACyCQAAtgkAALkJAAC9CQAAvQkAAL8JAADACQAAxwkAAMgJAADLCQAAzAkAAM4JAADOCQAA3AkAAN0JAADfCQAA4QkAAOYJAAD9CQAAAwoAAAMKAAAFCgAACgoAAA8KAAAQCgAAEwoAACgKAAAqCgAAMAoAADIKAAAzCgAANQoAADYKAAA4CgAAOQoAAD4KAABACgAAWQoAAFwKAABeCgAAXgoAAGYKAABvCgAAcgoAAHQKAAB2CgAAdgoAAIMKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvQoAAMAKAADJCgAAyQoAAMsKAADMCgAA0AoAANAKAADgCgAA4QoAAOYKAADxCgAA+QoAAPkKAAACCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAAD0LAAA9CwAAQAsAAEALAABHCwAASAsAAEsLAABMCwAAXAsAAF0LAABfCwAAYQsAAGYLAAB3CwAAgwsAAIMLAACFCwAAigsAAI4LAACQCwAAkgsAAJULAACZCwAAmgsAAJwLAACcCwAAngsAAJ8LAACjCwAApAsAAKgLAACqCwAArgsAALkLAAC/CwAAvwsAAMELAADCCwAAxgsAAMgLAADKCwAAzAsAANALAADQCwAA5gsAAPoLAAABDAAAAwwAAAUMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPQwAAD0MAABBDAAARAwAAFgMAABaDAAAXQwAAF0MAABgDAAAYQwAAGYMAABvDAAAdwwAAIAMAACCDAAAjAwAAI4MAACQDAAAkgwAAKgMAACqDAAAswwAALUMAAC5DAAAvQwAAL4MAADADAAAwQwAAMMMAADEDAAAxwwAAMgMAADKDAAAywwAAN0MAADeDAAA4AwAAOEMAADmDAAA7wwAAPEMAADyDAAAAg0AAAwNAAAODQAAEA0AABINAAA6DQAAPQ0AAD0NAAA/DQAAQA0AAEYNAABIDQAASg0AAEwNAABODQAATw0AAFQNAABWDQAAWA0AAGENAABmDQAAfw0AAIINAACDDQAAhQ0AAJYNAACa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CgAANgoAADgKAAA5CgAAPAoAADwKAAA+CgAAQgoAAEcKAABICgAASwoAAE0KAABRCgAAUQoAAFkKAABcCgAAXgoAAF4KAABmCgAAdQoAAIEKAACDCgAAhQoAAI0KAACPCgAAkQoAAJMKAACoCgAAqgoAALAKAACyCgAAswoAALUKAAC5CgAAvAoAAMUKAADHCgAAyQoAAMsKAADNCgAA0AoAANAKAADgCgAA4woAAOYKAADvCgAA+QoAAP8KAAABCwAAAwsAAAULAAAMCwAADwsAABALAAATCwAAKAsAACoLAAAwCwAAMgsAADMLAAA1CwAAOQsAADwLAABECwAARwsAAEgLAABLCwAATQsAAFULAABXCwAAXAsAAF0LAABfCwAAYwsAAGYLAABvCwAAcQsAAHELAACCCwAAgwsAAIULAACKCwAAjgsAAJALAACSCwAAlQsAAJkLAACaCwAAnAsAAJwLAACeCwAAnwsAAKMLAACkCwAAqAsAAKoLAACuCwAAuQsAAL4LAADCCwAAxgsAAMgLAADKCwAAzQsAANALAADQCwAA1wsAANcLAADmCwAA7wsAAAAMAAAMDAAADgwAABAMAAASDAAAKAwAACoMAAA5DAAAPAwAAEQMAABGDAAASAwAAEoMAABNDAAAVQwAAFYMAABYDAAAWgwAAF0MAABdDAAAYAwAAGMMAABmDAAAbwwAAIAMAACDDAAAhQwAAIwMAACODAAAkAwAAJIMAACoDAAAqgwAALMMAAC1DAAAuQwAALwMAADEDAAAxgwAAMgMAADKDAAAzQwAANUMAADWDAAA3QwAAN4MAADgDAAA4wwAAOYMAADvDAAA8QwAAPIMAAAADQAADA0AAA4NAAAQDQAAEg0AAEQNAABGDQAASA0AAEoNAABODQAAVA0AAFcNAABfDQAAYw0AAGYNAABvDQAAeg0AAH8NAACBDQAAgw0AAIUNAACWDQAAmg0AALENAACzDQAAuw0AAL0NAAC9DQAAwA0AAMYNAADKDQAAyg0AAM8NAADUDQAA1g0AANYNAADYDQAA3w0AAOYNAADvDQAA8g0AAPMNAAABDgAAOg4AAEAOAABODgAAUA4AAFkOAACBDgAAgg4AAIQOAACEDgAAhg4AAIoOAACMDgAAow4AAKUOAAClDgAApw4AAL0OAADADgAAxA4AAMYOAADG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vx4AAMEeAADBHgAAwx4AAMMeAADFHgAAxR4AAMceAADHHgAAyR4AAMkeAADLHgAAyx4AAM0eAADNHgAAzx4AAM8eAADRHgAA0R4AANMeAADTHgAA1R4AANUeAADXHgAA1x4AANkeAADZHgAA2x4AANseAADdHgAA3R4AAN8eAADfHgAA4R4AAOEeAADjHgAA4x4AAOUeAADlHgAA5x4AAOceAADpHgAA6R4AAOseAADrHgAA7R4AAO0eAADvHgAA7x4AAPEeAADxHgAA8x4AAPMeAAD1HgAA9R4AAPceAAD3HgAA+R4AAPkeAAD7HgAA+x4AAP0eAAD9HgAA/x4AAAcfAAAQHwAAFR8AACAfAAAnHwAAMB8AADcfAABAHwAARR8AAFAfAABXHwAAYB8AAGcfAABwHwAAfR8AAIAfAACHHwAAkB8AAJcfAACgHwAApx8AALAfAAC0HwAAth8AALcfAAC+HwAAvh8AAMIfAADEHwAAxh8AAMcfAADQHwAA0x8AANYfAADXHwAA4B8AAOcfAADyHwAA9B8AAPYfAAD3HwAACiEAAAohAAAOIQAADyEAABMhAAATIQAALyEAAC8hAAA0IQAANCEAADkhAAA5IQAAPCEAAD0hAABGIQAASSEAAE4hAABOIQAAhCEAAIQhAAAwLAAAXywAAGEsAABhLAAAZSwAAGYsAABoLAAAaCwAAGosAABqLAAAbCwAAGwsAABxLAAAcSwAAHMsAAB0LAAAdiwAAHssAACBLAAAgSwAAIMsAACDLAAAhSwAAIUsAACHLAAAhywAAIksAACJLAAAiywAAIssAACNLAAAjSwAAI8sAACPLAAAkSwAAJEsAACTLAAAkywAAJUsAACVLAAAlywAAJcsAACZLAAAmSwAAJssAACbLAAAnSwAAJ0sAACfLAAAnywAAKEsAAChLAAAoywAAKMsAAClLAAApSwAAKcsAACnLAAAqSwAAKksAACrLAAAqywAAK0sAACtLAAArywAAK8sAACxLAAAsSwAALMsAACzLAAAtSwAALUsAAC3LAAAtywAALksAAC5LAAAuywAALssAAC9LAAAvSwAAL8sAAC/LAAAwSwAAMEsAADDLAAAwywAAMUsAADFLAAAxywAAMcsAADJLAAAySwAAMssAADLLAAAzSwAAM0sAADPLAAAzywAANEsAADRLAAA0ywAANMsAADVLAAA1SwAANcsAADXLAAA2SwAANksAADbLAAA2ywAAN0sAADdLAAA3ywAAN8sAADhLAAA4SwAAOMsAADkLAAA7CwAAOwsAADuLAAA7iwAAPMsAADzLAAAAC0AACUtAAAnLQAAJy0AAC0tAAAtLQAAQaYAAEGmAABDpgAAQ6YAAEWmAABFpgAAR6YAAEemAABJpgAASaYAAEumAABLpgAATaYAAE2mAABPpgAAT6YAAFGmAABRpgAAU6YAAFOmAABVpgAAVaYAAFemAABXpgAAWaYAAFmmAABbpgAAW6YAAF2mAABdpgAAX6YAAF+mAABhpgAAYaYAAGOmAABjpgAAZaYAAGWmAABnpgAAZ6YAAGmmAABppgAAa6YAAGumAABtpgAAbaYAAIGmAACBpgAAg6YAAIOmAACFpgAAhaYAAIemAACHpgAAiaYAAImmAACLpgAAi6YAAI2mAACNpgAAj6YAAI+mAACRpgAAkaYAAJOmAACTpgAAlaYAAJWmAACXpgAAl6YAAJmmAACZpgAAm6YAAJumAAAjpwAAI6cAACWnAAAlpwAAJ6cAACenAAAppwAAKacAACunAAArpwAALacAAC2nAAAvpwAAMacAADOnAAAzpwAANacAADWnAAA3pwAAN6cAADmnAAA5pwAAO6cAADunAAA9pwAAPacAAD+nAAA/pwAAQacAAEGnAABDpwAAQ6cAAEWnAABFpwAAR6cAAEenAABJpwAASacAAEunAABLpwAATacAAE2nAABPpwAAT6cAAFGnAABRpwAAU6cAAFOnAABVpwAAVacAAFenAABXpwAAWacAAFmnAABbpwAAW6cAAF2nAABdpwAAX6cAAF+nAABhpwAAYacAAGOnAABjpwAAZacAAGWnAABnpwAAZ6cAAGmnAABppwAAa6cAAGunAABtpwAAbacAAG+nAABvpwAAcacAAHinAAB6pwAAeqcAAHynAAB8pwAAf6cAAH+nAACBpwAAgacAAIOnAACDpwAAhacAAIWnAACHpwAAh6cAAIynAACMpwAAjqcAAI6nAACRpwAAkacAAJOnAACVpwAAl6cAAJenAACZpwAAmacAAJunAACbpwAAnacAAJ2nAACfpwAAn6cAAKGnAAChpwAAo6cAAKOnAAClpwAApacAAKenAACnpwAAqacAAKmnAACvpwAA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AACmHgAAph4AAKgeAACoHgAAqh4AAKoeAACsHgAArB4AAK4eAACuHgAAsB4AALAeAACyHgAAsh4AALQeAAC0HgAAth4AALYeAAC4HgAAuB4AALoeAAC6HgAAvB4AALweAAC+HgAAvh4AAMAeAADAHgAAwh4AAMIeAADEHgAAxB4AAMYeAADGHgAAyB4AAMgeAADKHgAAyh4AAMweAADMHgAAzh4AAM4eAADQHgAA0B4AANIeAADSHgAA1B4AANQeAADWHgAA1h4AANgeAADYHgAA2h4AANoeAADcHgAA3B4AAN4eAADeHgAA4B4AAOAeAADiHgAA4h4AAOQeAADkHgAA5h4AAOYeAADoHgAA6B4AAOoeAADqHgAA7B4AAOweAADuHgAA7h4AAPAeAADwHgAA8h4AAPIeAAD0HgAA9B4AAPYeAAD2HgAA+B4AAPgeAAD6HgAA+h4AAPweAAD8HgAA/h4AAP4eAAAIHwAADx8AABgfAAAdHwAAKB8AAC8fAAA4HwAAPx8AAEgfAABNHwAAWR8AAFkfAABbHwAAWx8AAF0fAABdHwAAXx8AAF8fAABoHwAAbx8AALgfAAC7HwAAyB8AAMsfAADYHwAA2x8AAOgfAADsHwAA+B8AAPsfAAACIQAAAiEAAAchAAAHIQAACyEAAA0hAAAQIQAAEiEAABUhAAAVIQAAGSEAAB0hAAAkIQAAJCEAACYhAAAmIQAAKCEAACghAAAqIQAALSEAADAhAAAzIQAAPiEAAD8hAABFIQAARSEAAIMhAACDIQAAACwAAC8sAABgLAAAYCwAAGIsAABkLAAAZywAAGcsAABpLAAAaSwAAGssAABrLAAAbSwAAHAsAAByLAAAciwAAHUsAAB1LAAAfiwAAIAsAACCLAAAgiwAAIQsAACELAAAhiwAAIYsAACILAAAiCwAAIosAACKLAAAjCwAAIwsAACOLAAAjiwAAJAsAACQLAAAkiwAAJIsAACULAAAlCwAAJYsAACWLAAAmCwAAJgsAACaLAAAmiwAAJwsAACcLAAAniwAAJ4sAACgLAAAoCwAAKIsAACiLAAApCwAAKQsAACmLAAApiwAAKgsAACoLAAAqiwAAKosAACsLAAArCwAAK4sAACuLAAAsCwAALAsAACyLAAAsiwAALQsAAC0LAAAtiwAALYsAAC4LAAAuCwAALosAAC6LAAAvCwAALwsAAC+LAAAviwAAMAsAADALAAAwiwAAMIsAADELAAAxCwAAMYsAADGLAAAyCwAAMgsAADKLAAAyiwAAMwsAADMLAAAziwAAM4sAADQLAAA0CwAANIsAADSLAAA1CwAANQsAADWLAAA1iwAANgsAADYLAAA2iwAANosAADcLAAA3CwAAN4sAADeLAAA4CwAAOAsAADiLAAA4iwAAOssAADrLAAA7SwAAO0sAADyLAAA8iwAAECmAABApgAAQqYAAEKmAABEpgAARKYAAEamAABGpgAASKYAAEimAABKpgAASqYAAEymAABMpgAATqYAAE6mAABQpgAAUKYAAFKmAABSpgAAVKYAAFSmAABWpgAAVqYAAFimAABYpgAAWqYAAFqmAABcpgAAXKYAAF6mAABepgAAYKYAAGCmAABipgAAYqYAAGSmAABkpgAAZqYAAGamAABopgAAaKYAAGqmAABqpgAAbKYAAGymAACApgAAgKYAAIKmAACCpgAAhKYAAISmAACGpgAAhqYAAIimAACIpgAAiqYAAIqmAACMpgAAjKYAAI6mAACOpgAAkKYAAJCmAACSpgAAkqYAAJSmAACUpgAAlqYAAJamAACYpgAAmKYAAJqmAACapgAAIqcAACKnAAAkpwAAJKcAACanAAAmpwAAKKcAACinAAAqpwAAKqcAACynAAAspwAALqcAAC6nAAAypwAAMqcAADSnAAA0pwAANqcAADanAAA4pwAAOKcAADqnAAA6pwAAPKcAADynAAA+pwAAPqcAAECnAABApwAAQqcAAEKnAABEpwAARKcAAEanAABGpwAASKcAAEinAABKpwAASqcAAEynAABMpwAATqcAAE6nAABQpwAAUKcAAFKnAABSpwAAVKcAAFSnAABWpwAAVqcAAFinAABYpwAAWqcAAFqnAABcpwAAXKcAAF6nAABepwAAYKcAAGCnAABipwAAYqcAAGSnAABkpwAAZqcAAGanAABopwAAaKcAAGqnAABqpwAAbKcAAGynAABupwAAbqcAAHmnAAB5pwAAe6cAAHunAAB9pwAAfqcAAICnAACApwAAgqcAAIKnAACEpwAAhKcAAIanAACGpwAAi6cAAIunAACNpwAAjacAAJCnAACQpwAAkqcAAJKnAACWpwAAlqcAAJinAACYpwAAmqcAAJqn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ADAFAABXBQAAWAUAAIsFAACMBQAAkAUAAJAFAADIBQAAzwUAAOsFAADuBQAA9QUAAP8FAAAOBwAADgcAAEsHAABMBwAAsgcAAL8HAAD7BwAA/AcAAC4IAAAvCAAAPwgAAD8IAABcCAAAXQgAAF8IAABfCAAAawgAAG8IAACPCAAAjwgAAJIIAACXCAAAhAkAAIQJAACNCQAAjgkAAJEJAACSCQAAqQkAAKkJAACxCQAAsQkAALMJAAC1CQAAugkAALsJAADFCQAAxgkAAMkJAADKCQAAzwkAANYJAADYCQAA2wkAAN4JAADeCQAA5AkAAOUJAAD/CQAAAAoAAAQKAAAECgAACwoAAA4KAAARCgAAEgoAACkKAAApCgAAMQoAADEKAAA0CgAANAoAADcKAAA3CgAAOgoAADsKAAA9CgAAPQoAAEMKAABGCgAASQoAAEoKAABOCgAAUAoAAFIKAABYCgAAXQoAAF0KAABfCgAAZQoAAHcKAACACgAAhAoAAIQKAACOCgAAjgoAAJIKAACSCgAAqQoAAKkKAACxCgAAsQoAALQKAAC0CgAAugoAALsKAADGCgAAxgoAAMoKAADKCgAAzgoAAM8KAADRCgAA3woAAOQKAADlCgAA8goAAPgKAAAACwAAAAsAAAQLAAAECwAADQsAAA4LAAARCwAAEgsAACkLAAApCwAAMQsAADELAAA0CwAANAsAADoLAAA7CwAARQsAAEYLAABJCwAASgsAAE4LAABUCwAAWAsAAFsLAABeCwAAXgsAAGQLAABlCwAAeAsAAIELAACECwAAhAsAAIsLAACNCwAAkQsAAJELAACWCwAAmAsAAJsLAACbCwAAnQsAAJ0LAACgCwAAogsAAKULAACnCwAAqwsAAK0LAAC6CwAAvQsAAMMLAADFCwAAyQsAAMkLAADOCwAAzwsAANELAADWCwAA2AsAAOULAAD7CwAA/wsAAA0MAAANDAAAEQwAABEMAAApDAAAKQwAADoMAAA7DAAARQwAAEUMAABJDAAASQwAAE4MAABUDAAAVwwAAFcMAABbDAAAXAwAAF4MAABfDAAAZAwAAGUMAABwDAAAdgwAAI0MAACNDAAAkQwAAJEMAACpDAAAqQwAALQMAAC0DAAAugwAALsMAADFDAAAxQwAAMkMAADJDAAAzgwAANQMAADXDAAA3AwA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AD0AAwH//wAAQgCdAEcADQH//wAA//8AAP//AAD//wAA//8AAP//AABMACQB//8AAFIANwD//wAA//8AAFUAlwD//wAA//8AAP//AABYAIcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXABWAP//AABhANIA//8AAP//AAD//wAAZACBAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABsAI0A//8AAHEAJwB2ACcA//8AAP//AAB9ANMAgACaAP//AAD//wAAjQBaAP//AACSAM4A//8AAP//AACVAJkA//8AAKEA2AGuAFMAswBaAP//AAD//wAA//8AALkAoQC9AKEA//8AAMIAdADHAJwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADMAI0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzgCUANMALQD//wAA//8AAP//AAD//wAA2ADIAf//AAD//wAA4gDbAf//AAD//wAA//8AAO8AHgH//wAA//8AAP//AAD//wAA+gATAgABGAL//wAA//8AAP//AAAHASUA//8AAP//AAD//wAA//8AAP//AAD//wAACQHtAf//AAD//wAAEgE4AP//AAD//wAAGQGRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACEBNwH//wAA//8AAP//AAD//wAAKwEIAv//AAD//wAA//8AAP//AAA1AW0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADoBGQL//wAA//8AAP//AABdAUQB//8AAP//AABlASYA//8AAGoB1AD//wAAhQGFAIgBkwD//wAA//8AAP//AAD//wAA//8AAP//AACNAcwAogE/AaoBvwH//wAAswHcAf//AAC9AY0AywEMAv//AAD//wAA//8AAP//AADsAZsA//8AAP//AAD//wAA//8AAP//AADxAegB/gG1AAMC+wEKAhgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoCPAH//wAA//8AAP//AAD//wAA//8AACUC7wH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALwKPAP//AAD//wAA//8AADcCYgH//wAA//8AAP//AAD//wAAQAJ8AP//AABDApQA//8AAP//AAD//wAAUAILAv//AAD//wAA//8AAP//AAD//wAA//8AAFwClgD//wAA//8AAF8CKwD//wAA//8AAP//AABiAgACdAIRAf//AAD//wAA//8AAIICFgD//wAA//8AAIcC1wCNAmwA//8AAP//AACSAiUB//8AAP//AAD//wAA//8AAP//AAD//wAAngIWAP//AACnAgUCsQIGAv//AADAAjkA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADFAswA//8AAP//AAD//wAA//8AAMgCbwDeAn4A//8AAP//AAD//wAA4wJ+AP//AADpAtkA//8AAP//AADsAiMB//8AAP//AAD//wAA//8AAP//AAD//wAA9QJKAf//AAD//wAABAOBAQ8DHAEaAzQB//8AACEDnwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKAPrAf//AAD//wAA//8AADEDEwE0A5kA//8AAP//AAD//wAA//8AAP//AAD//wAAOQPSAP//AAD//wAA//8AAEwDOgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABPAyEB//8AAFgD1AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXAP6Af//AAD//wAA//8AAP//AABkA9UA//8AAP//AABnA5EA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGwDIAL//wAA//8AAP//AAD//wAAfAOaAIEDnwD//wAAhgN0AP//AACPA2sA//8AAJQDbwD//wAA//8AAP//AACZAw0B//8AAP//AACgA34B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAwwMLAc8DIgD//wAA//8AAP//AAD//wAA1AMOAP//AADaAzcA//8AAP//AADlAxUA//8AAP//AADsA6AB/wPjAf//AAD//wAA//8AABQEewD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGwT/Af//AAD//wAA//8AAP//AAD//wAAKQSmAf//AAD//wAA//8AAP//AAD//wAA//8AADcE2gH//wAA//8AAEkEswFhBHMA//8AAP//AABmBHMAbgStAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiwR7AP//AACNBPgB//8AAP//AAD//wAAlAS3Af//AAD//wAA//8AAP//AAD//wAA//8AAJ8EQQK4BDQCxwSrAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1AQXAuIECwHnBEYC//8AAP//AAD//wAA//8AAP//AAD2BD8C//8AAP//AAD//wAA//8AAP//AAACBc0B//8AAP//AAD//wAA//8AAP//AAAMBTUB//8AAP//AAASBSEA//8AABkFwQH//wAA//8AAP//AAD//wAA//8AAP//AAAlBW0B//8AAP//AABJBaAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFMFDAFYBdYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAZwVZAP//AAD//wAA//8AAP//AABuBXcA//8AAP//AAD//wAAcwVPAX8F5QH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAjAVVAJMFvAH//wAA//8AAP//AACkBZsA//8AAP//AAC0BXUA//8AAP//AAC5BSsA//8AAP//AADBBcoA0wU1Av//AAD//wAA//8AAP//AAD//wAA2wXmAP//AADeBYkA//8AAP//AAD//wAA//8AAOEFJgH//wAA//8AAP//AAD//wAA//8AAOsFlgEEBk4C//8AACsG6AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAC4GaQAyBtkB//8AAP//AAD//wAA//8AAP//AAD//wAARAbIAP//AABJBr4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFIGMQL//wAA//8AAP//AAD//wAA//8AAFkGZwD//wAAawYfAnwGhgH//wAA//8AAIkG6wCOBhoA//8AAP//AAD//wAAlAZmAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIGOgL//wAA//8AAP//AADABhwAxQZYAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLBhwA//8AANEGygD//wAA//8AAP//AAD//wAA//8AAP//AADXBjIB//8AAOMGkwH//wAA//8AAP//AAD//wAA//8AAP//AAD5BiECDgcbAP//AAD//wAA//8AAP//AAD//wAA//8AABMHagD//wAA//8AABcHBwD//wAA//8AAB0HuQH//wAA//8AADAHTAE6BycC//8AAP//AAD//wAA//8AAP//AABLByUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUH3QD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoHlQH//wAAeAf1AX8H3QD//wAA//8AAP//AACJB9wA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACLB3EAkQdlAf//AAD//wAAoweDAKgHywCtB2sB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMQHKALiB3MB//8AAAII5wD//wAA//8AAAUIPgL//wAAKgjEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1CM0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADgIswD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD0IDQD//wAA//8AAP//AAD//wAA//8AAP//AABDCG0A//8AAEgI/QH//wAA//8AAP//AABVCBYB//8AAP//AAD//wAA//8AAP//AABmCJgBcwhIAf//AAB7COAB//8AAIcIaQD//wAA//8AAP//AAD//wAA//8AAJII4gH//wAA//8AAKMI3wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAApghoAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKsIpAG8CAYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADCCBkA//8AAMcIgAH//wAA//8AAP//AADSCMsB5gjGAf//AAD//wAA8AgCAP//AAD//wAA9ggZAQ8JNAD//wAA//8AAP//AAAYCdUB//8AACEJ0QD//wAA//8AACwJNAD//wAAMQkdADkJkwD//wAA//8AAEEJMgL//wAA//8AAP//AAD//wAA//8AAEoJWQD//wAA//8AAFcJGQBgCWoA//8AAP//AAD//wAAaAkvAf//AABwCfIB//8AAP//AAD//wAA//8AAP//AAB6CS4A//8AAH8JLQD//wAAhglyAI0J7gGYCVcA//8AAP//AAD//wAA//8AAKUJPgH//wAA//8AAP//AACtCSkA//8AAP//AACzCaIB//8AAP//AADLCXkA0gm7Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADoCdsA7Ql2AP//AAD//wAA//8AAP//AADyCZIA/QmIAAcKJgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABoKUgEkCp0A//8AAP//AAApCjoB//8AAP//AAD//wAANAp6AP//AAD//wAA//8AAP//AAA5CjAA//8AAD4KDQL//wAA//8AAFcKhAD//wAA//8AAP//AABaChEB//8AAP//AABdCjMB//8AAP//AAD//wAA//8AAP//AABnCvMB//8AAP//AABzCgwB//8AAP//AAD//wAA//8AAHwKCwD//wAAgwofAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAiQo1AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACUCvcB//8AAP//AAD//wAAngorAv//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAtAoRALkKNQD//wAA//8AAP//AAD//wAA//8AAL4KeADDCucB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM8K9AH//wAA2QoaAP//AADeCm4A//8AAP//AADzClwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD4CqAA//8AAP//AAD//wAA//8AAP0KdQEOC0kB//8AAP//AAD//wAA//8AAP//AAD//wAAGgsQAB8LyQH//wAA//8AAP//AAD//wAA//8AACcLXAE8C1MA//8AAEULdgBQC+UA//8AAP//AAD//wAA//8AAFgLeAD//wAA//8AAP//AAD//wAA//8AAF4L4AD//wAAZAt8AP//AAD//wAAcAuiAP//AAD//wAAeAtcAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhQuVAP//AACKCx0B//8AAP//AACfCzgB//8AAKoLVQD//wAA//8AAP//AAD//wAA//8AAP//AACvC6UBxAtUAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzwvXAN0LAgH//wAA4wuKAf//AAAEDHEAEAzbAP//AAD//wAA//8AAP//AAD//wAA//8AABYMRQH//wAA//8AAP//AAD//wAA//8AAP//AAAiDEsA//8AACgMTAJJDFYA//8AAP//AAD//wAA//8AAP//AABRDPYB//8AAFsM0wH//wAA//8AAP//AAD//wAA//8AAP//AABkDBAA//8AAP//AAD//wAAagyKAP//AABtDBwC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIEMcgD//wAAhgwsAf//AACRDO0A//8AAP//AAD//wAA//8AAP//AAD//wAAmwzhAf//AAD//wAA//8AAP//AACqDPUAsAwKAsIMuwDIDJABzgwhAP//AAD//wAA//8AANMMZAH//wAA7AwFAfAMBQH//wAA//8AAPUM3gD//wAA//8AAP//AAD//wAA//8AAP//AAD6DF0A//8AAP8M8gD//wAA//8AAP//AAAFDW0A//8AAA8NywD//wAA//8AABkNEAEeDQgA//8AACQNggD//wAA//8AAP//AAD//wAAKQ1dADIN9QD//wAA//8AAP//AAD//wAANw3SAf//AAD//wAA//8AAP//AABDDYQB//8AAEwNhwBiDQQC//8AAG4NSgL//wAA//8AAI8NWACeDcoB//8AAP//AACoDewB//8AAP//AAC2DV4A//8AAP//AAD//wAA//8AALoNXgC/DYAA//8AAP//AADFDTYA//8AANAN2AD//wAA//8AANgNYQD//wAA3Q2EAP//AAD//wAA//8AAP//AAD//wAA//8AAO0NAwD//wAA8w2MAf//AAD//wAACg6CAP//AAD//wAA//8AAP//AAD//wAAEg4RAv//AAApDmEA//8AAP//AAD//wAA//8AADEO8QE6DloBVA5nAf//AABsDhMA//8AAP//AACBDqQA//8AAIMOTQD//wAA//8AAJEO6QD//wAA//8AAP//AAD//wAAlA5lAP//AAD//wAA//8AAJkO4wD//wAA//8AAP//AAD//wAA//8AAP//AACeDoAA//8AAKMOHgD//wAAqA5uAP//AACtDqYA//8AAP//AAC5DqwAvA7eAP//AADHDhQC0A4yANQOHgD//wAA//8AAN4OGwHvDqoA8w6qAPgO+gD//wAA//8AAP0OvAADD7YA//8AAAgP9wD//wAADQ/3ABQPmgH//wAA//8AAB4PxgD//wAA//8AACAPLgH//wAAKA/kATEPIAE6D9QB//8AAP//AABHD8cBUQ8fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAXQ89Av//AAB9DwkB//8AAIIPogD//wAA//8AAIcP1gGdD+UA//8AAP//AACiD+IA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKoPfQH//wAA//8AAP//AAD//wAA//8AALsPlwD//wAAyQ8VAM4P8AH//wAA//8AAOYPIgD//wAA7g9BAf//AAD4D70A//8AAP//AAD9Dx0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAAhAUAQ8QrwH//wAA//8AACoQPQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxDZAP//AAD//wAA//8AAEEQPAJiEE4A//8AAHQQWwH//wAA//8AAP//AAD//wAA//8AAIQQfwCJEPwBkRAsAP//AAD//wAA//8AAP//AACYEIsAnRCLAP//AAD//wAApBBEAP//AACoEL0B//8AAP//AAD//wAAtxBAAP//AAD//wAAuhBFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL8QAwHHEFcA//8AAM4QowD//wAA//8AANMQowD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANsQSwL//wAA/BBNAP//AAD//wAA//8AAP//AAABEWoB//8AABMRDgL//wAAIRFVAf//AAD//wAA//8AADcRAAH//wAA//8AADwRVABBEfQA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkRDwBXEb8A//8AAFsRxgD//wAA//8AAP//AABnEQYB//8AAP//AAD//wAAahHtAG8RAQJ5EdAB//8AAP//AAD//wAA//8AAP//AAD//wAAixFQAZMRlAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKQRIgL//wAA//8AAKwRNgH//wAA//8AAP//AAC2EasB//8AAP//AAD//wAA//8AAMYRYgDNEWkB//8AAP//AAD//wAA//8AAP//AAD//wAA3RHmAecRbAH//wAA//8AAPIR6QH//wAA//8AAPwRKgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAJEkwA//8AAP//AAD//wAAGBKHAf//AAD//wAA//8AAP//AAA1EmsAQRI5AP//AABIEmEB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFYSYgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFsSiQH//wAA//8AAG4SHgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfhLJAIwSGACUEikB//8AAP//AAD//wAAphLqAP//AAD//wAArhK3ALMSGgL//wAAvBI5AMESBQD//wAA//8AAP//AAD//wAAxxLBAP//AAD//wAAzBImAv//AAD//wAA5hLdAf4SRAD//wAACBPeAf//AAD//wAA//8AAP//AAAfEykC//8AAP//AAAvE54B//8AAP//AAD//wAA//8AAP//AABCE1ACSRNwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE4TPAD//wAAUxOmAP//AAD//wAA//8AAP//AAD//wAAWBPJAF8T8gD//wAAZBPCAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGkT4AD//wAAehNsAP//AAD//wAA//8AAIoT+gCeE4wAoxOMAP//AACqEyAA//8AAP//AAD//wAArxNwAP//AAC4EzEA//8AALwTQwLWE8UB//8AAP//AADjE0AC//8AAP//AAD//wAA//8AAPgTbwH//wAAChSwAR8UKAD//wAA//8AAP//AAAtFI4B//8AAP//AAD//wAA//8AAP//AAD//wAAOhRUAkQUsQH//wAA//8AAP//AAD//wAAVBQ7Af//AAD//wAA//8AAP//AABpFOEA//8AAP//AAD//wAA//8AAHEUTgH//wAAfBRWAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI4UDACTFHEB//8AALcU9gD//wAAvBSxAMEUZwD//wAA//8AAP//AADGFMMA//8AAP//AAD//wAAzRSnANsUGAD//wAA4BR6Af//AAD//wAA//8AAP//AAD0FLEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPwU4QD//wAA//8AAAEVKgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAFhWhASAVAQH//wAA//8AACUVfwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABAFSAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEkVjwH//wAA//8AAP//AABQFcMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwV4wBkFRAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB0FRcA//8AAP//AAD//wAAfRWYAP//AACCFc4AkxW4AJgV6wD//wAA//8AAP//AACkFVECwxU5AdAVmADcFdAA4RUJAv//AAD//wAA8hV2AfsVJwH//wAA//8AAP//AAD//wAADhacAf//AAD//wAAJBY+AP//AAD//wAA//8AAP//AAD//wAA//8AACkWJAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEMWUwH//wAA//8AAFcWWwD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFwWMwD//wAAYBZbAP//AAD//wAA//8AAGkWlgD//wAA//8AAHUWAQB7FpAA//8AAIAW0QH//wAA//8AAIwWkAD//wAA//8AAP//AAD//wAAlhYJAP//AAD//wAAnBZRAf//AAD//wAA//8AAKUWyAD//wAA//8AAP//AAD//wAArxbsAP//AAD//wAA//8AAP//AAD//wAA//8AALQWnAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADIFjsA//8AAM0WMAH//wAA//8AANYWmQH//wAA6xbXAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9FkIAAhf7AP//AAD//wAA//8AAP//AAAHF/sADhcjABMX/AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAGBfqAP//AAAdF4kA//8AAP//AAD//wAALRcsAv//AAD//wAA//8AAE8XuQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAFQXKgD//wAA//8AAP//AABmF5IB//8AAG4XQgD//wAA//8AAHYXdwGLFyMA//8AAJQXDwH//wAA//8AAP//AAD//wAA//8AAJ4XtAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAshf/AP//AAD//wAA//8AALcX6gH//wAA//8AAP//AADAF6cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMMX0QD//wAA//8AAP//AAD//wAA//8AAP//AADIF6kA//8AAP//AAD//wAA//8AAM0XGgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkXjgDuF18B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AABQYtgD//wAAHxiOAP//AAAoGPMA//8AAP//AAD//wAAMBioADoYAAD//wAA//8AAEIY7wD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABHGPkB//8AAP//AAD//wAAXRgCAv//AAD//wAAixjiAP//AAD//wAA//8AAP//AAD//wAAkBgkAJUYBwGeGKQA//8AAP//AAD//wAApRgtArkYBgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAyxhQAP//AADQGH8A//8AAP//AAD//wAA1xj/AP//AAD//wAA3xhgAP//AAD//wAA//8AAP//AAD//wAA//8AAOQYDwD//wAA//8AAP//AAD//wAA//8AAP//AADpGMAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP4YCAH//wAA//8AAP//AAD//wAABRlPAv//AAD//wAA//8AAP//AAAmGXkA//8AAP//AAD//wAA//8AAP//AAD//wAAKxk7AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1GSMC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEAZAQFJGUcC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGoZtQD//wAA//8AAP//AAD//wAAdBlZAf//AAD//wAA//8AAP//AAD//wAA//8AAJoZegD//wAA//8AAP//AAD//wAApBn4AKkZ7wD//wAA//8AALAZ8QD//wAA//8AAP//AAD//wAAuRmFAP//AAD//wAA//8AAP//AAD//wAAyBleAf//AADaGTAC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADxGfYA//8AAP//AAD//wAA//8AAPcZqAD//wAA/BnCAf//AAD//wAA//8AAAUaPQEqGggB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALxpNAVMasABYGvkAXRpoAP//AAD//wAA//8AAP//AABwGisBehqrAP//AAD//wAA//8AAP//AAB9GjoA//8AAP//AAD//wAA//8AAP//AAD//wAAhxpOAP//AAD//wAAjRpfAJIaSwH//wAA//8AAP//AAD//wAA//8AAJ0a5wCoGswB//8AAP//AACzGgcB//8AAP//AAD//wAAuBp8Af//AAD//wAA//8AAP//AAD//wAA0BotAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2xp0AegaBwL//wAA//8AAP//AAD3GtAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8aLwAEG60AChvBABobCgH//wAA//8AAP//AAD//wAA//8AAP//AAAlG7gBOBvkAP//AAD//wAA//8AAD0bJQD//wAA//8AAP//AAD//wAA//8AAEMbZQD//wAATBuXAVYbrABiG5sB//8AAP//AAD//wAA//8AAP//AABrG7wAcBtJAv//AAD//wAA//8AAP//AAD//wAAkRtAAZsbFQL//wAA//8AAP//AAD//wAA//8AAKYb+AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK0bxwCyG4gB//8AAP//AAD//wAA//8AAP//AAD//wAA0BvfAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAN8bRwH//wAA//8AAOcbQgH//wAA//8AAP//AAD//wAA//8AAO8bowEDHO4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAgcPwD//wAADRwJAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAYHL4AHxyzAP//AAD//wAA//8AACkcNwL//wAA//8AAP//AAD//wAA//8AAD8cEwH//wAAThwVAf//AAD//wAA//8AAP//AABhHL4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHEcMAD//wAAhxy6Af//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAlxxGAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADEHCQA//8AAP//AAD//wAAyhydAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVHD4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADeHEYA//8AAOQcrQD//wAA//8AAP//AAD//wAA//8AAP//AAD6HKcB//8AAP//AAD//wAADB0bAP//AAAVHWAB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACkdsgE+HTgC//8AAP//AAD//wAA//8AAP//AABkHbsA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAaR2sAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB6HTIAkB1GAP//AAD//wAA//8AAP//AAD//wAAlR1jAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAJodQwH//wAA//8AAP//AAD//wAA//8AAP//AAClHXgB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsB2CAf//AAD//wAA//8AAP//AAD//wAA//8AALsdtADAHdoA//8AAP//AADFHa4B4x1NAv//AAAEHkgC//8AAP//AAD//wAA//8AACAesgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAALR7PAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA+HgMCSh7fAf//AAD//wAA//8AAP//AAD//wAAWx4SAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAF4e1gD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGMetQH//wAA//8AAP//AAD//wAA//8AAP//AAB+Hp4A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAI0eQwD//wAA//8AAP//AAD//wAA//8AAP//AACSHvQAlx6vAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACcHkMA//8AAP//AAD//wAA//8AAP//AACnHncA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5HnUA//8AAP//AAD//wAA//8AAMEeEgL//wAA0x7uAP//AAD//wAA3x79AP//AAD//wAA//8AAOQeTwD//wAA6h79AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8h5JAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD3Hr0A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/Hv4B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAwfuQD//wAA//8AAP//AAD//wAA//8AABYfMQD//wAA//8AAP//AAD//wAALB89ADgfeQH//wAA//8AAP//AAD//wAASx9PAP//AAD//wAAXR8UAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAYR/DAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcB+6AHUfHwF+H+kA//8AAIkfYwH//wAA//8AAKEfQgK1HzkCxB9fAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADLH1IA//8AAP//AADPH8QA1R8bAv//AAD//wAA//8AAOgfhgD//wAA//8AAPQfpQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA+R+lAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAAMgrgAIIBIB//8AAP//AAD//wAA//8AAP//AAAbICgB//8AAP//AAD//wAA//8AAP//AAAtIC4C//8AAP//AAD//wAA//8AAP//AAA+IDMA//8AAP//AAD//wAA//8AAFQgsgBZIDsCaCAiAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAeyCLAf//AAD//wAA//8AAJMgVwH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKggxQC3IMIA//8AAP//AAD//wAA//8AAMQgSQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMwgSgD//wAA//8AAP//AADRICwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1CA2Av//AAD//wAA6CDoAP//AAD//wAA//8AAP//AAD0IFIA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD9IFEA//8AAP//AAD//wAA//8AAP//AAAFIQoB//8AAP//AAD//wAADCHPAP//AAAPIUoA//8AAP//AAD//wAA//8AAP//AAAXIR0C//8AACohPAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAyIdwA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAOSGRAf//AABNIV0B//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABpIY0B//8AAP//AAD//wAA//8AAP//AAD//wAAdyFYAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACWIbcA//8AAP//AAChIVQB//8AAP//AAD//wAA//8AAP//AAD//wAAtCETAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAuSEEAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvyGoAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANUhqgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPAhFgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/iGwAP//AAD//wAA//8AAP//AAD//wAA//8AAAQibgH//wAA//8AABoixQD//wAA//8AACEiKgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACYixAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADAirgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AADYi7AA+IhcB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAE8iEgD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABaIkQC//8AAP//AABwInIB//8AAP//AAD//wAAlCK/AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAsyJBAP//AAD//wAAviK0AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAziLPAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA4SJRAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD2IgIB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAHI8cA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAEyNFAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAB4j5AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAKiPxAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAvI/4A//8AAP//AAA4IwoA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAD4jtgH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWyMEAf//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGUjUAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABuI+YA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAfSPTAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACOI9oA//8AAJUjMwL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAqSP+AP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAK4jZAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALIjewH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzCPwAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADRI84B//8AAP//AAD//wAA//8AAOIj8AD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADqI2AA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPkjTAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8jLwL//wAA//8AAP//AAD//wAA//8AABYkZAD//wAAHyQvAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA1JM0A//8AAP//AAD//wAA//8AAP//AABFJLgAVSRHAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAWiQPAv//AABwJPkA//8AAP//AAD//wAAdySKAP//AAD//wAA//8AAP//AAD//wAA//8AAIckEAL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACqJGYA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACxJGMA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AALgkqQH//wAA//8AAMkkOAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM4kwAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADVJMAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOkkQQD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO0kcAH//wAA//8AAAMlQAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAAdJYMB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAA3JboA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAEElUgL//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABgJYUB//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABzJUUC//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACXJa8A//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAKwl1QD//wAA//8AAP//AAD//wAA//8AAP//AAC8JUgA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADBJUcA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAMolaAH//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA1yVIAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOslUwJsYW5hAGxpbmEAegB5aQBtbgBjbgBtYWthAHlpaWkAbWFuaQBpbmthbm5hZGEAY2kAbG8AbGFvAGxhb28Aenp6egBtaWFvAHllemkAaW5ua28AY28AbWUAbG9lAGdyYW4AcGkAbGluZWFyYQBtYXJrAGNhcmkAY2FyaWFuAHBvAG1lbmRla2lrYWt1aQBncmVrAHBlAG1lZXRlaW1heWVrAGlua2hhcm9zaHRoaQBnZW9yAGdyZWVrAG1ybwBtcm9vAGthbmEAbWVybwBtAGdvbm0AY2FrbQBpbm9zbWFueWEAaW5tYW5pY2hhZWFuAGluYXJtZW5pYW4AaW5tcm8AaW5taWFvAGMAaW5jaGFrbWEAY29tbW9uAG1hbmRhaWMAaW5teWFubWFyAGlubWFrYXNhcgBxYWFpAGluaWRlb2dyYXBoaWNzeW1ib2xzYW5kcHVuY3R1YXRpb24AaW5raG1lcgBjYW5zAHByZXBlbmRlZGNvbmNhdGVuYXRpb25tYXJrAGxtAG1hcmMAY29ubmVjdG9ycHVuY3R1YXRpb24AaW5ydW5pYwBpbmNhcmlhbgBpbmF2ZXN0YW4AY29tYmluaW5nbWFyawBpbmN1bmVpZm9ybW51bWJlcnNhbmRwdW5jdHVhdGlvbgBtZXJjAGluY2hvcmFzbWlhbgBwZXJtAGluYWhvbQBpbmlwYWV4dGVuc2lvbnMAaW5jaGVyb2tlZQBpbnNoYXJhZGEAbWFrYXNhcgBpbmFycm93cwBsYwBtYXNhcmFtZ29uZGkAaW5jdW5laWZvcm0AbWMAY2MAaW56YW5hYmF6YXJzcXVhcmUAbGluZXNlcGFyYXRvcgBhcm1uAHFtYXJrAGFybWkAaW5zYW1hcml0YW4AYXJtZW5pYW4AaW5tYXJjaGVuAGlubWFzYXJhbWdvbmRpAHFhYWMAcGMAaW5zY3JpcHRpb25hbHBhcnRoaWFuAGxhdG4AbGF0aW4AcmkAaW50aGFhbmEAaW5raG1lcnN5bWJvbHMAaW5rYXRha2FuYQBpbmN5cmlsbGljAGludGhhaQBpbmNoYW0AaW5rYWl0aGkAenMAbXRlaQBpbml0aWFscHVuY3R1YXRpb24AY3MAaW5zeXJpYWMAcGNtAGludGFrcmkAcHMAbWFuZABpbmthbmFleHRlbmRlZGEAbWVuZABtb2RpAGthdGFrYW5hAGlkZW8AcHJ0aQB5ZXppZGkAaW5pZGVvZ3JhcGhpY2Rlc2NyaXB0aW9uY2hhcmFjdGVycwB4aWRjb250aW51ZQBicmFpAGFzY2lpAHByaXZhdGV1c2UAYXJhYmljAGlubXlhbm1hcmV4dGVuZGVkYQBpbnJ1bWludW1lcmFsc3ltYm9scwBsZXR0ZXIAaW5uYW5kaW5hZ2FyaQBpbm1lZXRlaW1heWVrAGlub2xkbm9ydGhhcmFiaWFuAGluY2prY29tcGF0aWJpbGl0eWZvcm1zAGtuZGEAa2FubmFkYQBpbmNqa2NvbXBhdGliaWxpdHlpZGVvZ3JhcGhzAGwAaW5tb2RpAGluc3BlY2lhbHMAaW50cmFuc3BvcnRhbmRtYXBzeW1ib2xzAGlubWVuZGVraWtha3VpAGxldHRlcm51bWJlcgBpbm1lZGVmYWlkcmluAHhpZGMAaW5jaGVzc3N5bWJvbHMAaW5lbW90aWNvbnMAaW5saW5lYXJhAGlubGFvAGJyYWhtaQBpbm9sZGl0YWxpYwBpbm1pc2NlbGxhbmVvdXNtYXRoZW1hdGljYWxzeW1ib2xzYQBtb25nb2xpYW4AeGlkcwBwc2FsdGVycGFobGF2aQBncmxpbmsAa2l0cwBpbnN1bmRhbmVzZQBpbm9sZHNvZ2RpYW4AZ290aGljAGluYW5jaWVudHN5bWJvbHMAbWVyb2l0aWNjdXJzaXZlAGthbGkAY29udHJvbABwYXR0ZXJud2hpdGVzcGFjZQBpbmFkbGFtAHNrAGx0AGlubWFuZGFpYwBpbmNvbW1vbmluZGljbnVtYmVyZm9ybXMAaW5jamtjb21wYXRpYmlsaXR5aWRlb2dyYXBoc3N1cHBsZW1lbnQAc28AaWRjAGlub2xkc291dGhhcmFiaWFuAHBhbG0AaW5seWNpYW4AaW50b3RvAGlkc2JpbmFyeW9wZXJhdG9yAGlua2FuYXN1cHBsZW1lbnQAaW5jamtzdHJva2VzAHNvcmEAYmFtdW0AaW5vcHRpY2FsY2hhcmFjdGVycmVjb2duaXRpb24AaW5kb21pbm90aWxlcwBiYXRrAGdyZXh0AGJhdGFrAHBhdHdzAGlubWFsYXlhbGFtAGlubW9kaWZpZXJ0b25lbGV0dGVycwBpbnNtYWxsa2FuYWV4dGVuc2lvbgBiYXNzAGlkcwBwcmludABpbmxpbmVhcmJpZGVvZ3JhbXMAaW50YWl0aGFtAGlubXVzaWNhbHN5bWJvbHMAaW56bmFtZW5ueW11c2ljYWxub3RhdGlvbgBzYW1yAGluc3lsb3RpbmFncmkAaW5uZXdhAHNhbWFyaXRhbgBzAGpvaW5jAGluY29udHJvbHBpY3R1cmVzAGxpc3UAcGF1YwBpbm1pc2NlbGxhbmVvdXNzeW1ib2xzAGluYW5jaWVudGdyZWVrbXVzaWNhbG5vdGF0aW9uAGlubWlzY2VsbGFuZW91c3N5bWJvbHNhbmRhcnJvd3MAc20AaW5taXNjZWxsYW5lb3Vzc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAGludWdhcml0aWMAcGQAaXRhbABhbG51bQB6aW5oAGlud2FyYW5nY2l0aQBpbmxhdGluZXh0ZW5kZWRhAGluc2F1cmFzaHRyYQBpbnRhaWxlAGlub2xkdHVya2ljAGlkY29udGludWUAaW5oYW5pZmlyb2hpbmd5YQBzYwBpZHN0AGlubGF0aW5leHRlbmRlZGUAbG93ZXIAYmFsaQBpbmhpcmFnYW5hAGluY2F1Y2FzaWFuYWxiYW5pYW4AaW5kZXNlcmV0AGJsYW5rAGluc3BhY2luZ21vZGlmaWVybGV0dGVycwBjaGVyb2tlZQBpbmx5ZGlhbgBwaG9lbmljaWFuAGNoZXIAYmVuZ2FsaQBtYXJjaGVuAGlud2FuY2hvAGdyYXBoZW1lbGluawBiYWxpbmVzZQBpZHN0YXJ0AGludGFtaWwAaW5tdWx0YW5pAGNoYW0AY2hha21hAGthaXRoaQBpbm1haGFqYW5pAGdyYXBoZW1lYmFzZQBpbm9naGFtAGNhc2VkAGlubWVldGVpbWF5ZWtleHRlbnNpb25zAGtob2praQBpbmFuY2llbnRncmVla251bWJlcnMAcnVucgBraGFyAG1hbmljaGFlYW4AbG93ZXJjYXNlAGNhbmFkaWFuYWJvcmlnaW5hbABpbm9sY2hpa2kAcGxyZABpbmV0aGlvcGljAHNpbmQAY3djbQBpbmVhcmx5ZHluYXN0aWNjdW5laWZvcm0AbGwAemwAaW5zaW5oYWxhAGlua2h1ZGF3YWRpAHhpZHN0YXJ0AHhkaWdpdABiaWRpYwBjaG9yYXNtaWFuAGluc2lkZGhhbQBpbmNvdW50aW5ncm9kbnVtZXJhbHMAYWhvbQBjaHJzAGtobXIAaW5vbGR1eWdodXIAaW5ncmFudGhhAGJhbXUAaW5zY3JpcHRpb25hbHBhaGxhdmkAZ29uZwBtb25nAGlubGF0aW5leHRlbmRlZGMAaW5uZXd0YWlsdWUAYWRsbQBpbm9zYWdlAGluZ2VuZXJhbHB1bmN0dWF0aW9uAGdlb3JnaWFuAGtoYXJvc2h0aGkAc2luaGFsYQBraG1lcgBzdGVybQBjYXNlZGxldHRlcgBtdWx0YW5pAGd1bmphbGFnb25kaQBtYXRoAGluY3lyaWxsaWNzdXBwbGVtZW50AGluZ2VvcmdpYW4AZ290aABpbmNoZXJva2Vlc3VwcGxlbWVudABnbGFnb2xpdGljAHF1b3RhdGlvbm1hcmsAdWlkZW8AaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmEAam9pbmNvbnRyb2wAcnVuaWMAaW5tb25nb2xpYW4AZW1vamkAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmUAZ3JhbnRoYQBpbnRpcmh1dGEAaW5oYXRyYW4AYWRsYW0AbHUAaW5raGl0YW5zbWFsbHNjcmlwdABrdGhpAGluZ3VybXVraGkAc3VuZGFuZXNlAGlub2xkaHVuZ2FyaWFuAHRha3JpAGludGFtaWxzdXBwbGVtZW50AG9yaXlhAGludmFpAGJyYWgAaW5taXNjZWxsYW5lb3VzdGVjaG5pY2FsAHZhaQB2YWlpAHNhdXIAZ3VydQB0YWlsZQBpbmhlcml0ZWQAcGF1Y2luaGF1AHphbmIAcHVuY3QAbGluYgBndXJtdWtoaQB0YWtyAGlubmFiYXRhZWFuAGlua2FuYnVuAGxvZ2ljYWxvcmRlcmV4Y2VwdGlvbgBpbmJoYWlrc3VraQBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uYwBncmFwaGVtZWV4dGVuZABpbmVsYmFzYW4AaW5zb3Jhc29tcGVuZwBoYW4AaGFuaQBsaW1idQB1bmFzc2lnbmVkAHJhZGljYWwAaGFubwBsb3dlcmNhc2VsZXR0ZXIAY250cmwAaW5jamt1bmlmaWVkaWRlb2dyYXBocwBsaW5lYXJiAGluYW5hdG9saWFuaGllcm9nbHlwaHMAaGFudW5vbwBpbmtob2praQBpbmxhdGluZXh0ZW5kZWRhZGRpdGlvbmFsAGluZW5jbG9zZWRhbHBoYW51bWVyaWNzAGFuYXRvbGlhbmhpZXJvZ2x5cGhzAG4AZW1vamltb2RpZmllcgBzZABoaXJhAHNpZGQAbGltYgBiaGtzAHBobGkAbmFuZGluYWdhcmkAbm8Ac2F1cmFzaHRyYQBpbnRhbmdzYQBjd3QAYmhhaWtzdWtpAGluZ3JlZWthbmRjb3B0aWMAbmtvAG5rb28AdGVybQBvc2FnZQB4cGVvAHRuc2EAdGFuZ3NhAGlua2F5YWhsaQBwAGlub3JpeWEAaW55ZXppZGkAaW5hcmFiaWMAaW5waG9lbmljaWFuAGluc2hhdmlhbgBiaWRpY29udHJvbABpbmVuY2xvc2VkaWRlb2dyYXBoaWNzdXBwbGVtZW50AHdhcmEAbXVsdABpbm1lcm9pdGljaGllcm9nbHlwaHMAc2luaABzaGF2aWFuAGlua2FuZ3hpcmFkaWNhbHMAZW5jbG9zaW5nbWFyawBhcmFiAGluc2luaGFsYWFyY2hhaWNudW1iZXJzAGJyYWlsbGUAaW5oYW51bm9vAG9zbWEAYmVuZwBpbmJhc2ljbGF0aW4AaW5hcmFiaWNwcmVzZW50YXRpb25mb3Jtc2EAY3BtbgByZWdpb25hbGluZGljYXRvcgBpbmVuY2xvc2VkYWxwaGFudW1lcmljc3VwcGxlbWVudABlbW9qaW1vZGlmaWVyYmFzZQBpbmdyZWVrZXh0ZW5kZWQAbGVwYwBpbmRvZ3JhAGZvcm1hdABseWNpAGx5Y2lhbgBkaWEAaW5waGFpc3Rvc2Rpc2MAZGkAZGlhawB1bmtub3duAGdyYmFzZQBteW1yAG15YW5tYXIAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmQAZW1vZABpbmdlb21ldHJpY3NoYXBlcwBpbmN5cHJvbWlub2FuAGluc3VuZGFuZXNlc3VwcGxlbWVudAB0b3RvAGdsYWcAdGFpdmlldABhc2NpaWhleGRpZ2l0AG9kaQBwdW5jdHVhdGlvbgB2cwBzdW5kAGluc295b21ibwBpbmltcGVyaWFsYXJhbWFpYwBpbmJhdGFrAGlubGF0aW5leHRlbmRlZGQAaW5udXNodQBpbnRpYmV0YW4AaW5sb3dzdXJyb2dhdGVzAGhhdHJhbgBpbmJsb2NrZWxlbWVudHMAaW5zb2dkaWFuAGluZGluZ2JhdHMAaW5lbHltYWljAGluZGV2YW5hZ2FyaQBlbW9qaWNvbXBvbmVudABpbmthdGFrYW5hcGhvbmV0aWNleHRlbnNpb25zAGlkZW9ncmFwaGljAGNvcHRpYwBpbm51bWJlcmZvcm1zAGhhdHIAaW5jamtjb21wYXRpYmlsaXR5AGlua2FuYWV4dGVuZGVkYgBwYXR0ZXJuc3ludGF4AGF2ZXN0YW4AaW5hcmFiaWNleHRlbmRlZGEAc29nZGlhbgBzb2dvAGludGFuZ3V0AGNvcHQAZ3JhcGgAb2lkYwBpbmJ5emFudGluZW11c2ljYWxzeW1ib2xzAGluaW5zY3JpcHRpb25hbHBhcnRoaWFuAGRpYWNyaXRpYwBpbmluc2NyaXB0aW9uYWxwYWhsYXZpAGlubWF5YW5udW1lcmFscwBpbm15YW5tYXJleHRlbmRlZGIAaW50YWdzAGphdmEAY3BydABuYW5kAHBhdHN5bgB0YWxlAG9pZHMAc2VudGVuY2V0ZXJtaW5hbABpbXBlcmlhbGFyYW1haWMAdGVybWluYWxwdW5jdHVhdGlvbgBseWRpAGx5ZGlhbgBib3BvAGphdmFuZXNlAGN3bABpbmdlb21ldHJpY3NoYXBlc2V4dGVuZGVkAGlub2xkcGVyc2lhbgBpbm9ybmFtZW50YWxkaW5nYmF0cwBpbmJyYWlsbGVwYXR0ZXJucwBpbnZhcmlhdGlvbnNlbGVjdG9ycwBjYXNlaWdub3JhYmxlAGlueWlyYWRpY2FscwBpbm5vYmxvY2sAaW52ZXJ0aWNhbGZvcm1zAGluZXRoaW9waWNzdXBwbGVtZW50AHNoYXJhZGEAaW5iYWxpbmVzZQBpbnZlZGljZXh0ZW5zaW9ucwB3b3JkAGlubWlzY2VsbGFuZW91c21hdGhlbWF0aWNhbHN5bWJvbHNiAHRhbWwAb2xjawBpZHNiAG9sb3dlcgBkZWNpbWFsbnVtYmVyAGF2c3QAaW5jeXJpbGxpY2V4dGVuZGVkYQBvbGNoaWtpAHNocmQAaW50YWl4dWFuamluZ3N5bWJvbHMAaW50YWl2aWV0AHVnYXIAaW5jamtzeW1ib2xzYW5kcHVuY3R1YXRpb24AYm9wb21vZm8AaW5saXN1AGlub2xkcGVybWljAHNpZGRoYW0AemFuYWJhemFyc3F1YXJlAGFzc2lnbmVkAG1lZGYAY2xvc2VwdW5jdHVhdGlvbgBzYXJiAHNvcmFzb21wZW5nAGludmFyaWF0aW9uc2VsZWN0b3Jzc3VwcGxlbWVudABpbmhhbmd1bGphbW8AbWVkZWZhaWRyaW4AcGhhZwBpbmxpc3VzdXBwbGVtZW50AGluY29wdGljAGluc3lyaWFjc3VwcGxlbWVudABpbmhhbmd1bGphbW9leHRlbmRlZGEAY3lybABpbnNob3J0aGFuZGZvcm1hdGNvbnRyb2xzAGluY3lyaWxsaWNleHRlbmRlZGMAZ3VqcgBjd3UAZ3VqYXJhdGkAc3BhY2luZ21hcmsAYWxwaGEAbWx5bQBpbnBhbG15cmVuZQBtYWxheWFsYW0Ac3BhY2UAaW5sZXBjaGEAcGFsbXlyZW5lAHNveW8AbWVyb2l0aWNoaWVyb2dseXBocwB4c3V4AGludGVsdWd1AGluZGV2YW5hZ2FyaWV4dGVuZGVkAGlubWVyb2l0aWNjdXJzaXZlAGRzcnQAdGhhYQB0aGFhbmEAYnVnaQB0aGFpAHNvZ2QAdGl0bGVjYXNlbGV0dGVyAGlubWF0aGVtYXRpY2FsYWxwaGFudW1lcmljc3ltYm9scwBvcmtoAGNhdWNhc2lhbmFsYmFuaWFuAGluYmFtdW0AZGVzZXJldABpbmdlb3JnaWFuc3VwcGxlbWVudABidWdpbmVzZQBzZXBhcmF0b3IAaW5zbWFsbGZvcm12YXJpYW50cwB0aXJoAGluYnJhaG1pAG5kAHBobngAbmV3YQBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3MAbWFoagBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3Nmb3JzeW1ib2xzAG9sZHBlcnNpYW4AbWFoYWphbmkAdGFpdGhhbQBuZXd0YWlsdWUAbmV3bGluZQBzeXJjAGlubW9uZ29saWFuc3VwcGxlbWVudABpbnVuaWZpZWRjYW5hZGlhbmFib3JpZ2luYWxzeWxsYWJpY3NleHRlbmRlZGEAc2hhdwBidWhkAHZpdGhrdXFpAG51bWJlcgBpbnN1dHRvbnNpZ253cml0aW5nAHZhcmlhdGlvbnNlbGVjdG9yAGV0aGkAbGVwY2hhAHRpcmh1dGEAcm9oZwBhaGV4AGluY29wdGljZXBhY3RudW1iZXJzAHdhbmNobwBpbmNqa3VuaWZpZWRpZGVvZ3JhcGhzZXh0ZW5zaW9uZwBraG9qAGN1bmVpZm9ybQBpbmR1cGxveWFuAHVnYXJpdGljAGluc3ltYm9sc2FuZHBpY3RvZ3JhcGhzZXh0ZW5kZWRhAG9sZHBlcm1pYwBpbmNvbWJpbmluZ2RpYWNyaXRpY2FsbWFya3NzdXBwbGVtZW50AGtodWRhd2FkaQB0YW5nAHN5cmlhYwB0YWdiYW53YQBtb2RpZmllcmxldHRlcgBpbmN1cnJlbmN5c3ltYm9scwBpbm55aWFrZW5ncHVhY2h1ZWhtb25nAHRhbWlsAHRhbHUAaW5nb3RoaWMAaW51bmlmaWVkY2FuYWRpYW5hYm9yaWdpbmFsc3lsbGFiaWNzAHdjaG8AaW5jb21iaW5pbmdkaWFjcml0aWNhbG1hcmtzZXh0ZW5kZWQAb2dhbQB0ZWx1AGlkc3RyaW5hcnlvcGVyYXRvcgBpbmJlbmdhbGkAbmwAc3Vycm9nYXRlAGViYXNlAGhhbmcAaW5idWdpbmVzZQBtYXRoc3ltYm9sAGludml0aGt1cWkAdml0aABpbmNqa3JhZGljYWxzc3VwcGxlbWVudABpbmd1amFyYXRpAGluZ2xhZ29saXRpYwBpbmd1bmphbGFnb25kaQBwaGFnc3BhAGN3Y2YAbmNoYXIAb3RoZXJpZGNvbnRpbnVlAHdoaXRlc3BhY2UAaW5saW5lYXJic3lsbGFiYXJ5AHNnbncAb3RoZXIAaGlyYWdhbmEAaW5waGFnc3BhAG90aGVybnVtYmVyAGlucmVqYW5nAG9zZ2UAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmIAaW50YWdhbG9nAGluYmFzc2F2YWgAdGFuZ3V0AGhtbmcAaW5lbmNsb3NlZGNqa2xldHRlcnNhbmRtb250aHMAY3VycmVuY3lzeW1ib2wAaW5saW1idQBpbmJ1aGlkAGluZXRoaW9waWNleHRlbmRlZGEAc3lsbwBkYXNoAHdhcmFuZ2NpdGkAb2FscGhhAG9sZGl0YWxpYwBpbm90dG9tYW5zaXlhcW51bWJlcnMAc3BhY2VzZXBhcmF0b3IAaW5sYXRpbjFzdXBwbGVtZW50AG90aGVyYWxwaGFiZXRpYwBjaGFuZ2Vzd2hlbmNhc2VtYXBwZWQAaW5hZWdlYW5udW1iZXJzAGludW5pZmllZGNhbmFkaWFuYWJvcmlnaW5hbHN5bGxhYmljc2V4dGVuZGVkAGJ1aGlkAGluamF2YW5lc2UAY3lyaWxsaWMAZG9ncmEAbm9uY2hhcmFjdGVyY29kZXBvaW50AGluaGFuZ3Vsc3lsbGFibGVzAGJhc3NhdmFoAGlubGV0dGVybGlrZXN5bWJvbHMAaW5jb21iaW5pbmdoYWxmbWFya3MAaW5hcmFiaWNtYXRoZW1hdGljYWxhbHBoYWJldGljc3ltYm9scwBvcnlhAGlucHJpdmF0ZXVzZWFyZWEAY2hhbmdlc3doZW50aXRsZWNhc2VkAGRvZ3IAaGVicgBpbnRhZ2JhbndhAGludGlmaW5hZ2gAaW5ib3BvbW9mbwBuYXJiAHJqbmcAaW5hbHBoYWJldGljcHJlc2VudGF0aW9uZm9ybXMAaW5jamt1bmlmaWVkaWRlb2dyYXBoc2V4dGVuc2lvbmYAaW5zeW1ib2xzZm9ybGVnYWN5Y29tcHV0aW5nAG9sZGh1bmdhcmlhbgBmaW5hbHB1bmN0dWF0aW9uAGlucGF1Y2luaGF1AGlucHNhbHRlcnBhaGxhdmkAenAAcGhscABpbmFyYWJpY3ByZXNlbnRhdGlvbmZvcm1zYgBub25zcGFjaW5nbWFyawBkZXZhAHRhdnQAaG1ucABkZXZhbmFnYXJpAGtoaXRhbnNtYWxsc2NyaXB0AGtheWFobGkAaW5iYW11bXN1cHBsZW1lbnQAc3lsb3RpbmFncmkAdGlidABlcHJlcwB0aWJldGFuAGVsYmEAb3NtYW55YQBpbmRpdmVzYWt1cnUAb2xkdHVya2ljAGNoYW5nZXN3aGVubG93ZXJjYXNlZABjeXByb21pbm9hbgBpbmV0aGlvcGljZXh0ZW5kZWQAZW1vamlwcmVzZW50YXRpb24AYW55AG90aGVybG93ZXJjYXNlAG91Z3IAaW5oZWJyZXcAc29mdGRvdHRlZABpbm1hdGhlbWF0aWNhbG9wZXJhdG9ycwBpbmFsY2hlbWljYWxzeW1ib2xzAGlubWFoam9uZ3RpbGVzAGhhbmd1bABleHQAb21hdGgAaW50YW5ndXRjb21wb25lbnRzAG90aGVybGV0dGVyAG5iYXQAbmFiYXRhZWFuAG5zaHUAcGFyYWdyYXBoc2VwYXJhdG9yAGluYXJhYmljZXh0ZW5kZWRiAGlubGF0aW5leHRlbmRlZGcAY2hhbmdlc3doZW51cHBlcmNhc2VkAGh1bmcAaW5wbGF5aW5nY2FyZHMAaW5hcmFiaWNzdXBwbGVtZW50AGlueWlqaW5naGV4YWdyYW1zeW1ib2xzAGlucGhvbmV0aWNleHRlbnNpb25zAG90aGVydXBwZXJjYXNlAG90aGVyaWRzdGFydABlbGJhc2FuAGVseW0AY2YAaW5pbmRpY3NpeWFxbnVtYmVycwBvdGhlcnN5bWJvbABleHRlbmRlcgBleHRwaWN0AHdzcGFjZQBwZgBlbHltYWljAGludGFuZ3V0c3VwcGxlbWVudABjeXByaW90AHN5bWJvbABpbmN5cmlsbGljZXh0ZW5kZWRiAGluc3VwZXJzY3JpcHRzYW5kc3Vic2NyaXB0cwBpbnlpc3lsbGFibGVzAGlucGhvbmV0aWNleHRlbnNpb25zc3VwcGxlbWVudABvbGRzb2dkaWFuAGluZ2VvcmdpYW5leHRlbmRlZABobHV3AGRpZ2l0AGluaGFuZ3VsamFtb2V4dGVuZGVkYgBpbmhpZ2hwcml2YXRldXNlc3Vycm9nYXRlcwBpbnBhaGF3aGhtb25nAG9naGFtAGluc3VwcGxlbWVudGFsYXJyb3dzYQBvdXBwZXIAYWdoYgBvdGhlcm1hdGgAbnVzaHUAc295b21ibwBpbmxhdGluZXh0ZW5kZWRiAGFscGhhYmV0aWMAaW5zdXBwbGVtZW50YWxhcnJvd3NjAGluc3VwcGxlbWVudGFsbWF0aGVtYXRpY2Fsb3BlcmF0b3JzAG90aGVyZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABkZXByZWNhdGVkAG9sZG5vcnRoYXJhYmlhbgBpbmN5cHJpb3RzeWxsYWJhcnkAZXh0ZW5kZWRwaWN0b2dyYXBoaWMAdW5pZmllZGlkZW9ncmFwaABwYWhhd2hobW9uZwBkaXZlc2FrdXJ1AHNpZ253cml0aW5nAHRhZ2IAdGlmaW5hZ2gAdXBwZXIAaW5oYWxmd2lkdGhhbmRmdWxsd2lkdGhmb3JtcwB1cHBlcmNhc2UAZXRoaW9waWMAbW9kaWZpZXJzeW1ib2wAb3RoZXJwdW5jdHVhdGlvbgByZWphbmcAaW5ldGhpb3BpY2V4dGVuZGVkYgB0Zm5nAGhleABpbnN1cHBsZW1lbnRhbHB1bmN0dWF0aW9uAHRnbGcAaW5sYXRpbmV4dGVuZGVkZgB0YWdhbG9nAGhhbmlmaXJvaGluZ3lhAGVjb21wAGluZ2xhZ29saXRpY3N1cHBsZW1lbnQAaGV4ZGlnaXQAY2hhbmdlc3doZW5jYXNlZm9sZGVkAGRhc2hwdW5jdHVhdGlvbgBvbGRzb3V0aGFyYWJpYW4AZHVwbABpbmVneXB0aWFuaGllcm9nbHlwaHMAdGVsdWd1AHVwcGVyY2FzZWxldHRlcgBpbmVneXB0aWFuaGllcm9nbHlwaGZvcm1hdGNvbnRyb2xzAGh5cGhlbgBoZWJyZXcAaW5oaWdoc3Vycm9nYXRlcwB6eXl5AG9ncmV4dABvdGhlcmdyYXBoZW1lZXh0ZW5kAGRlcABpbnN1cHBsZW1lbnRhbGFycm93c2IAZGVmYXVsdGlnbm9yYWJsZWNvZGVwb2ludABpbmhhbmd1bGNvbXBhdGliaWxpdHlqYW1vAG9sZHV5Z2h1cgBpbnN1cHBsZW1lbnRhcnlwcml2YXRldXNlYXJlYWEAaW5ib3BvbW9mb2V4dGVuZGVkAGluc3VwcGxlbWVudGFsc3ltYm9sc2FuZHBpY3RvZ3JhcGhzAG55aWFrZW5ncHVhY2h1ZWhtb25nAG9wZW5wdW5jdHVh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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7KBQnJiUOBSQUBxkiHSAQOx87OwIBOxkPOw47Oxw7Ajs7Ows7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Oxg7Fjs7Czs7Ozs7BzsAOzsQOwE7OxA7OzsPOzs7Bjs7OzsAOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwYDDg4ODg4OAQ4ODg4ODg4ODg4ADg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgQODgUODgQODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgoODg4ODgkOAQ4ODg4ODg4ODg4OAA4ODggODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg44ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OAADChk4OB4AODgAFDg4OA84OBQ4HjgAADg4ODg4ODg4Dzg4ODg4GTgKODg4OAU4ADgAOAU4OBQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgAAwoZODgeADg4ABQ4ODgPODgUOB44AAA4ODg4ODg4OA84ODg4OBk4Cjg4ODgFOAA4ADgFODgUODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4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AGwHAQBKbgEAzw8BABYBAADMAAEA2iwAAD8LAQDaBAAAwwQBANoeAACECAEA2h8AAF8JAQC8JAAA1AkBAJoDAAAKAwEAxBAAAMMLAQDaAAAAmQABABQEAQCnDQEAFCwAAEwKAQAUBAAAjQMBABQeAABpBwEAuiQAAM4JAQAUAQAAyQABAP///////wAAwhAAAL0LAQCOAwAARwMBABoEAQC5DQEAGiwAAF4KAQAaBAAAoAMBABoeAAByBwEAGh8AANsIAQAaAQAA0gABAP///////wAAtiQAAMIJAQD///////8AAP///////wAAigMAAOYCAQAYBAEAsw0BABgsAABYCgEAGAQAAJoDAQAYHgAAbwcBABgfAADVCAEAGAEAAM8AAQAOBAEAlQ0BAA4sAAA6CgEADgQAABEEAQAOHgAAYAcBAA4fAADPCAEADgEAAMAAAQAC6QEAFxABAP///////wAAxyQAAPUJAQAMBAEAjw0BAAwsAAA0CgEADAQAAAsEAQAMHgAAXQcBAAwfAADJCAEADAEAAL0AAQAIBAEAgw0BAAgsAAAoCgEACAQAAP8DAQAIHgAAVwcBAAgfAAC9CAEACAEAALcAAQAGBAEAfQ0BAAYsAAAiCgEABgQAAPkDAQAGHgAAVAcBAP///////wAABgEAALQAAQD///////8AAAIFAAD/BAEABAQBAHcNAQAELAAAHAoBAAQEAADzAwEABB4AAFEHAQD///////8AAAQBAACxAAEAAAQBAGsNAQAALAAAEAoBAAAEAADnAwEAAB4AAEsHAQD///////8AAAABAACrAAEA////////AAB1BQEAXg4BAJQFAQCyDgEAKiwAAI4KAQAqBAAA1AMBACoeAACKBwEAKh8AAO0IAQAqAQAA6gABACqnAABLDAEAwgMAACYDAQAmBAEA3Q0BACYsAACCCgEAJgQAAMgDAQAmHgAAhAcBALcEAQD4DQEAJgEAAOQAAQAmpwAARQwBAJ4DAAAYAwEAtx8AAAoAAwC3AQAAwgIBAJIFAQCvDgEAt6sAABUHAQD///////8AALccAAArBgEAewEAAFwBAQB7pwAAtAwBAHurAABhBgEAjAMAAEQDAQAuLAAAmgoBAC4EAADhAwEALh4AAJAHAQAuHwAA+QgBAC4BAADwAAEALqcAAFEMAQCPHwAApAACAI8BAABxAgEA////////AACPqwAAnQYBAAL7AAAMAAIAiAMAAOACAQCPDAEA5Q4BAP///////wAALCwAAJQKAQAsBAAA2wMBACweAACNBwEALB8AAPMIAQAsAQAA7QABACynAABODAEAKCwAAIgKAQAoBAAAzgMBACgeAACHBwEAKB8AAOcIAQAoAQAA5wABACinAABIDAEA////////AAD///////8AAIYFAQCODgEAJAQBANcNAQAkLAAAfAoBACQEAADCAwEAJB4AAIEHAQBHBQAAhgUBACQBAADhAAEAJKcAAEIMAQAiBAEA0Q0BACIsAAB2CgEAIgQAALoDAQAiHgAAfgcBADP/AABTDQEAIgEAAN4AAQAipwAAPwwBANoDAABTAwEAwAQBABMOAQDALAAAGAsBAMAEAACxBAEAwB4AAF0IAQAx/wAATQ0BADsCAABBAgEAwKcAAAINAQCzBAEA7A0BAMAAAABNAAEA////////AAAqIQAAGwABALMfAAA+AAIAswEAAJIBAQCzpwAAGg0BALOrAAAJBwEA////////AACzHAAAHwYBAP///////wAAJiEAADoDAQA1BQAAUAUBALcQAACcCwEAsQQBAOYNAQD///////8AALcYAQCWDwEASgIAAFMCAQCOBQEAow4BALEBAAC5AgEAsacAALACAQCxqwAAAwcBAP///////wAAsRwAABkGAQCxDAEASw8BADwFAABlBQEA////////AAAcAgAAIAIBAE4eAADABwEAigUBAJoOAQBOAQAAGgEBAE6nAAB+DAEAqx8AAOAAAgBOAAAAJQABAKunAAB3AgEAq6sAAPEGAQAWAgAAFwIBAKscAAAHBgEAqwwBADkPAQCXHgAAIgACAJcfAADMAAIAlwEAAIkCAQBOpgAA5QsBAJerAAC1BgEAggUBAIIOAQCXHAAAywUBAJcMAQD9DgEA////////AABObgEA2w8BAHEFAQBSDgEAFAIAABQCAQDEJAAA7AkBAH4sAABEAgEAfgQAAEUEAQB+HgAACQgBACr/AAA4DQEAgAUBAHwOAQB+pwAAtwwBAH6rAABqBgEAGgIAAB0CAQDCJAAA5gkBAKkfAADWAAIAqQEAAK0CAQAm/wAALA0BAKmrAADrBgEAjQUBAKAOAQCpHAAAAQYBAKkMAQAzDwEA////////AAD///////8AABgCAAAaAgEAwBAAALcLAQAgBAEAyw0BACAsAABwCgEAIAQAALMDAQAgHgAAewcBAA4CAAALAgEAIAEAANsAAQCzEAAAkAsBAP///////wAALv8AAEQNAQCzGAEAig8BAP///////wAAkR8AAK4AAgCRAQAAcQEBAAwCAAAIAgEAkasAAKMGAQD///////8AAJEcAAC5BQEAkQwBAOsOAQD///////8AAAgCAAACAgEAsRAAAIoLAQDVAQAAuQEBACz/AAA+DQEAsRgBAIQPAQDVAAAAjQABAAYCAAD/AQEAjwMAAEoDAQD///////8AACj/AAAyDQEA1CwAADYLAQDUBAAAugQBANQeAAB7CAEAjAUBAJ0OAQAEAgAA/AEBAKsQAAB4CwEAOwUAAGIFAQDUAAAAigABAKsYAQByDwEAJP8AACYNAQAAAgAA9gEBAP///////wAA////////AAAc6QEAZRABAP///////wAAiAUBAJQOAQAi/wAAIA0BAP///////wAAKgIAADICAQD///////8AAP4EAAD5BAEA/h4AALoIAQAW6QEAUxABAP4BAADzAQEA////////AABKBQAAjwUBACYCAAAsAgEAHgQBAMUNAQAeLAAAagoBAB4EAACsAwEAHh4AAHgHAQD///////8AAB4BAADYAAEA////////AACpEAAAcgsBABwFAAAmBQEAFOkBAE0QAQCpGAEAbA8BANIEAQBJDgEA0iwAADMLAQDSBAAAtwQBANIeAAB4CAEA0h8AABQAAwAuAgAAOAIBABYFAAAdBQEAGukBAF8QAQDSAAAAhAABAKcfAAD0AAIApwEAAIkBAQD///////8AAKerAADlBgEA////////AACnHAAA+wUBAKcMAQAtDwEA////////AAD///////8AABjpAQBZEAEALAIAADUCAQAUBQAAGgUBAHwEAABCBAEAfB4AAAYIAQAzBQAASgUBAA7pAQA7EAEAKAIAAC8CAQB8qwAAZAYBAEgeAAC3BwEASB8AABcJAQAaBQAAIwUBAEinAAB1DAEAMQUAAEQFAQBIAAAAFQABAAzpAQA1EAEAaywAAK8KAQAkAgAAKQIBAKsDAABBAwEAax8AAD4JAQD///////8AAAjpAQApEAEAGAUAACAFAQBIpgAA2wsBACICAAAmAgEA////////AACXAwAA/QIBAAbpAQAjEAEADgUAABEFAQBIbgEAyQ8BAP///////wAAVh4AAMwHAQBWHwAAPgADAFYBAAAmAQEAVqcAAIoMAQAE6QEAHRABAFYAAAA+AAEADAUAAA4FAQD///////8AABb7AAB9AAIA////////AAAA6QEAERABAP///////wAACAUAAAgFAQD///////8AAFamAADxCwEA////////AACpAwAAOgMBAP///////wAABgUAAAUFAQD///////8AAFZuAQDzDwEA////////AAAU+wAAbQACAP///////wAAtyQAAMUJAQD///////8AAAQFAAACBQEA4iwAAEsLAQDiBAAAzwQBAOIeAACQCAEA4h8AACQAAwDiAQAAzgEBAAAFAAD8BAEATgIAAFkCAQCnEAAAbAsBAP///////wAA////////AACnGAEAZg8BAJEDAADpAgEA////////AAAqBQAAOwUBAFQeAADJBwEAVB8AADkAAwBUAQAAIwEBAFSnAACHDAEA////////AABUAAAAOAABANUDAAAwAwEAJgUAADUFAQA5HwAAAgkBADkBAAD8AAEAEgQBAKENAQASLAAARgoBABIEAACGAwEAEh4AAGYHAQBUpgAA7gsBABIBAADGAAEAEAQBAJsNAQAQLAAAQAoBABAEAACAAwEAEB4AAGMHAQBUbgEA7Q8BABABAADDAAEA////////AABrIQAAsAkBAC4FAABBBQEAjwUBAKYOAQA/HwAAFAkBAD8BAAAFAQEABvsAAB0AAgBSHgAAxgcBAFIfAAA0AAMAUgEAACABAQBSpwAAhAwBAP///////wAAUgAAADEAAQD///////8AAAT7AAAFAAMA/gMAANcCAQAsBQAAPgUBACACAAB9AQEA////////AADAJAAA4AkBAAD7AAAEAAIAUqYAAOsLAQAoBQAAOAUBAFAeAADDBwEAUB8AAFQAAgBQAQAAHQEBAFCnAACBDAEAUm4BAOcPAQBQAAAAKwABAP///////wAAygQBADEOAQDKLAAAJwsBACQFAAAyBQEAyh4AAGwIAQDKHwAAWQkBAMoBAACpAQEA////////AABQpgAA6AsBAMoAAABsAAEAIgUAAC8FAQCnAwAANAMBAPAEAADkBAEA8B4AAKUIAQBQbgEA4Q8BAPABAAAUAAIA2CwAADwLAQDYBAAAwAQBANgeAACBCAEA2B8AAH0JAQD///////8AANinAAAUDQEA////////AADYAAAAkwABANYsAAA5CwEA1gQAAL0EAQDWHgAAfggBANYfAABMAAIA////////AADWpwAAEQ0BAP///////wAA1gAAAJAAAQDIBAEAKw4BAMgsAAAkCwEAuQQBAP4NAQDIHgAAaQgBAMgfAABTCQEAyAEAAKUBAQC5HwAAegkBAP///////wAAyAAAAGYAAQC5qwAAGwcBAP///////wAAuRwAADEGAQAeAgAAIwIBAMYEAQAlDgEAxiwAACELAQD///////8AAMYeAABmCAEAxh8AAEMAAgBOBQAAmwUBAManAABIBwEAxQQBACIOAQDGAAAAYAABAMUEAACiBAEAuwQBAAQOAQC1BAEA8g0BAMUBAAChAQEAxacAAKoCAQC7HwAAUAkBAMUAAABcAAEAtQEAAJUBAQC7qwAAIQcBALWrAAAPBwEAtQAAABEDAQC1HAAAJQYBAK8fAAD0AAIArwEAAI8BAQD///////8AAK+rAAD9BgEAaSwAAKwKAQCvHAAAEwYBAK8MAQBFDwEAaR8AADgJAQB+BQEAdg4BACDpAQBxEAEA////////AAClHwAA6gACAP///////wAASAIAAFACAQClqwAA3wYBAOIDAABfAwEApRwAAPUFAQClDAEAJw8BAP///////wAAOf8AAGUNAQCjHwAA4AACAP///////wAA////////AACjqwAA2QYBAKEfAADWAAIAoxwAAO8FAQCjDAEAIQ8BAKGrAADTBgEA////////AAChHAAA6QUBAKEMAQAbDwEAIAUAACwFAQCHHwAApAACAIcBAABrAQEA////////AACHqwAAhQYBAJEFAQCsDgEAhxwAABoEAQCHDAEAzQ4BAP///////wAA////////AAByLAAAsgoBAHIEAAAzBAEAch4AAPcHAQBNHwAAJgkBAHIBAABQAQEAuRAAAKILAQByqwAARgYBAE0AAAAiAAEAuRgBAJwPAQBwLAAAYgIBAHAEAAAwBAEAcB4AAPQHAQD///////8AAHABAABNAQEA////////AABwqwAAQAYBAG4sAACbAgEAbgQAAC0EAQBuHgAA8QcBAG4fAABHCQEAbgEAAEoBAQBupwAArgwBAE1uAQDYDwEAxRAAAMYLAQAe6QEAaxABAEUBAAAOAQEAuxAAAKgLAQC1EAAAlgsBAEUAAAAMAAEAuxgBAKIPAQC1GAEAkA8BAO4EAADhBAEA7h4AAKIIAQCvEAAAhAsBAO4BAADgAQEA////////AACvGAEAfg8BAGwEAAAqBAEAbB4AAO4HAQBsHwAAQQkBAGwBAABHAQEAbKcAAKsMAQBpIQAAqgkBAEVuAQDADwEApRAAAGYLAQD///////8AAB4FAAApBQEApRgBAGAPAQASAgAAEQIBAP///////wAA8AMAAAoDAQD///////8AAGymAAASDAEAoxAAAGALAQAQAgAADgIBANgDAABQAwEAoxgBAFoPAQChEAAAWgsBAP///////wAA////////AAChGAEAVA8BAP///////wAA////////AADWAwAAHgMBAGoEAAAnBAEAah4AAOsHAQBqHwAAOwkBAGoBAABEAQEAaqcAAKgMAQBoBAAAJAQBAGgeAADoBwEAaB8AADUJAQBoAQAAQQEBAGinAAClDAEAfAUBAHAOAQD///////8AAP///////wAARh4AALQHAQD///////8AAGqmAAAPDAEARqcAAHIMAQBIBQAAiQUBAEYAAAAPAAEA////////AABopgAADAwBAGQsAACkAgEAZAQAAB4EAQBkHgAA4gcBAP///////wAAZAEAADsBAQBkpwAAnwwBAEamAADYCwEA3iwAAEULAQDeBAAAyQQBAN4eAACKCAEAbiEAALkJAQDeAQAAyAEBAEZuAQDDDwEA////////AADeAAAApQABADAeAACTBwEAZKYAAAYMAQAwAQAABQECAFYFAACzBQEAYiwAAJICAQBiBAAAGgQBAGIeAADfBwEA////////AABiAQAAOAEBAGKnAACcDAEA////////AAD///////8AAP///////wAApQMAAC0DAQD///////8AAGwhAACzCQEARB4AALEHAQD///////8AAP///////wAARKcAAG8MAQBipgAAAwwBAEQAAAAJAAEAowMAACYDAQB5AQAAWQEBAHmnAACxDAEAeasAAFsGAQChAwAAIgMBAGAsAACgCgEAYAQAABcEAQBgHgAA2wcBAESmAADVCwEAYAEAADUBAQBgpwAAmQwBAP///////wAA////////AAAS6QEARxABAERuAQC9DwEAMh4AAJYHAQD///////8AADIBAADzAAEAMqcAAFQMAQAQ6QEAQRABAGohAACtCQEAYKYAAAAMAQBUBQAArQUBAP///////wAAcgMAAM4CAQBoIQAApwkBAM0EAQA6DgEA////////AADNBAAArgQBADkFAABcBQEA////////AADNAQAArQEBAP///////wAAcAMAAMsCAQDNAAAAdQABABIFAAAXBQEAzAQBADcOAQDMLAAAKgsBAM8EAQBADgEAzB4AAG8IAQDMHwAARwACABAFAAAUBQEAZCEAAJsJAQDPAQAAsAEBAMwAAAByAAEARQMAAAUDAQDPAAAAewABAD8FAABuBQEAywQBADQOAQDKJAAA/gkBAMsEAACrBAEAUgUAAKcFAQDLHwAAXAkBAMsBAACpAQEA7gMAAHEDAQDDBAEAHA4BAMsAAABvAAEAwwQAAJ8EAQDJBAEALg4BAMMfAABHAAIAyQQAAKgEAQBiIQAAlQkBAMkfAABWCQEAwwAAAFYAAQDJpwAACw0BAL8EAQAQDgEAyQAAAGkAAQBQBQAAoQUBAFUAAAA7AAEAvQQBAAoOAQB2BAAAOQQBAHYeAAD9BwEAv6sAAC0HAQB2AQAAVgEBAL8cAAA9BgEAdqsAAFIGAQC9qwAAJwcBAP///////wAAvRwAADcGAQD///////8AAMgkAAD4CQEA////////AAC5JAAAywkBAFVuAQDwDwEAYCEAAI8JAQCfHwAAzAACAJ8BAAChAgEAwQQBABYOAQCfqwAAzQYBAMEEAACcBAEAnxwAAOMFAQCfDAEAFQ8BADIhAACMCQEAxiQAAPIJAQBFAgAAvwIBAMEAAABQAAEAnR8AAMIAAgCdAQAAngIBAP///////wAAnasAAMcGAQDFJAAA7wkBAJ0cAADdBQEAnQwBAA8PAQC7JAAA0QkBAM0QAADMCwEAmx4AANsHAQCbHwAAuAACADD/AABKDQEA////////AACbqwAAwQYBAEMBAAALAQEAmxwAANcFAQCbDAEACQ8BAEMAAAAGAAEAmR4AACoAAgCZHwAArgACAN4DAABZAwEA////////AACZqwAAuwYBAJUfAADCAAIAmRwAANEFAQCZDAEAAw8B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ANEAAACBAAEA////////AAD0AwAAAAMBABUEAQCqDQEAFSwAAE8KAQAVBAAAkQMBABMEAQCkDQEAEywAAEkKAQATBAAAigMBAOwDAABuAwEAIf8AAB0NAQAPBAEAmA0BAA8sAAA9CgEADwQAABQEAQD///////8AAA8fAADSCAEA////////AADBJAAA4wkBAFUFAACwBQEA6gMAAGsDAQD///////8AAA0EAQCSDQEADSwAADcKAQANBAAADgQBAHYFAQBhDgEADR8AAMwIAQD///////8AAOgDAABoAwEA////////AAD///////8AADb/AABcDQEACwQBAIwNAQALLAAAMQoBAAsEAAAIBAEA////////AAALHwAAxggBAP///////wAA////////AADmAwAAZQMBAAkEAQCGDQEACSwAACsKAQAJBAAAAgQBAOQDAABiAwEACR8AAMAIAQAFBAEAeg0BAAUsAAAfCgEABQQAAPYDAQADBAEAdA0BAAMsAAAZCgEAAwQAAPADAQD///////8AANwDAABWAwEA////////AAArIQAAXAABAAEEAQBuDQEAASwAABMKAQABBAAA6gMBAPwEAAD2BAEA/B4AALcIAQD8HwAAYAACAPwBAADwAQEA////////AAD///////8AAEMFAAB6BQEA+AQAAPAEAQD4HgAAsQgBAPgfAABlCQEA+AEAAOoBAQAnBAEA4A0BACcsAACFCgEAJwQAAMsDAQCVBQEAtQ4BAPYEAADtBAEA9h4AAK4IAQD2HwAAXAACAPYBAAB0AQEAegQAAD8EAQB6HgAAAwgBAEsfAAAgCQEA////////AAA+AgAApgoBAHqrAABeBgEASwAAABsAAQAfBAEAyA0BAB8sAABtCgEAHwQAALADAQCDBQEAhQ4BAP///////wAAOP8AAGINAQD///////8AADoFAABfBQEALywAAJ0KAQAvBAAA5AMBAP///////wAALx8AAPwIAQBJBQAAjAUBAP///////wAAS24BANIPAQA0/wAAVg0BAC0sAACXCgEALQQAAN4DAQD///////8AAC0fAAD2CAEAgQUBAH8OAQB/BQEAeQ4BACv/AAA7DQEAKSwAAIsKAQApBAAA0QMBAP///////wAAKR8AAOoIAQAlBAEA2g0BACUsAAB/CgEAJQQAAMUDAQAjBAEA1A0BACMsAAB5CgEAIwQAAL8DAQARBAEAng0BABEsAABDCgEAEQQAAIMDAQAHBAEAgA0BAAcsAAAlCgEABwQAAPwDAQD///////8AAP///////wAAziQAAAoKAQD///////8AAEECAABKAgEA////////AAD///////8AAPwTAAA8BwEA////////AABCBQAAdwUBAP///////wAA////////AAD///////8AAP///////wAA+BMAADAHAQD///////8AAP///////wAA0QMAAAADAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAh6QEAdBABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAD4FAABrBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAn/wAALw0BAP///////wAA////////AAA2BQAAUwUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAUwUAAKoFAQD///////8AAP///////wAA////////AABABQAAcQUBAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAC//AABHDQEA////////AAD///////8AAP///////wAAeAUBAGcOAQD///////8AABfpAQBWEAEA////////AAAt/wAAQQ0BAP///////wAAdAUBAFsOAQD///////8AAP///////wAAQQUAAHQFAQD///////8AACn/AAA1DQEA////////AAD///////8AAP///////wAA////////AAAl/wAAKQ0BAP///////wAA////////AAAj/wAAIw0BAB3pAQBoEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAFEFAACkBQEA////////AAD///////8AAP///////wAA////////AAD///////8AADgFAABZBQEA////////AAD///////8AAP///////wAAG+kBAGIQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAANAUAAE0FAQAZ6QEAXBABAP///////wAA////////AAD///////8AAE8FAACeBQEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAFekBAFAQAQD///////8AAP///////wAAE+kBAEoQAQD///////8AAP///////wAA////////AAD///////8AAA/pAQA+EAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAF/sAAHUAAgD///////8AAP///////wAADekBADgQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAL6QEAMhABAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAACekBACwQAQD///////8AAP///////wAA////////AAD///////8AAAXpAQAgEAEA////////AAD///////8AAAPpAQAaEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAAAekBABQQAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAV+wAAcQACAP///////wAA////////AAAT+wAAeQACAP///////wAA////////AAD///////8AAB/pAQBuEAEA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAB6BQEAbQ4BAP///////wAASwUAAJIFAQD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD///////8AABHpAQBEEAEABfsAAB0AAgD///////8AAAfpAQAmEAEAA/sAAAAAAwD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAAB+wAACAACAP//////////cgdLB9IAqwBuDYcHzwznAG4BIwX8BEgMxgxzDjgFHQL2ATAIbwSDAS8CvwLrCuQMcA7rBycERAHACBsA8wioDEwGMQBiBZUNwwiUA3cFnwCSAiIKDwxJBp4C4gceBDsB0g8MAKMKnwznD9UIUAVGBlMJQA6uCO0EgwKVCQYMEQleDtsHFwQ1AcAPAACgCpkMRAlSDkQF+A2KCMkEyAEFBH0CRQsADI4K/g2NCMwEywG0D1AASAtXBzgJtwBxDagLWgtxAcMLXQcIBb0A/QYRBF0L+QMCApoKDgWCCsICAweGCWgNCAIKDpMI0gTRAWsCXACHC6sLBA6QCM8EzgGxC1YASwuFDnsHawHbALkC8g2HCMYExQFcDSwFQgsPB4kJaQezAskACQB9DV4GCQe9CE0FGgXmDYEIwAQrBuoIFAI8CxQN9wZgBHcBFQ+9D9wK1QxVDkEJ5Ah+CL0EGw/jBacFOQsRDTkMegHrBqoCswXpBVgOcgsWDpkI2ATXAbUOaQC/DX4LwgMLAXcN5QZMClkDEA6WCNUE1AEnD2MA7wkLBFwDlAaaBpQKIQ8bB/UF9QmfC64PVwtcASMJdwLvBbQMDw+6C5UFFQcmDewNhAjDBAMA+QjdBT8LjgZHBZYLYgMFEAAIPAQDD3EJRwABCl8DrQWzCYwFtw+lANEF+wk7CfEGdQi0BFYD/Q6ZCzALDg38D4EL6QmoBGgJfQHLBb8JCw2qCWQOYwQzD6gPUAPfCtgMWw7IAtMGgAndCQEGvA2uB78DLQ88DL4GSQpsDE0DnA/fBxoEOAH7BQYA1wmcDEMO0gtKBREDGAOTAHsLaAOAApYPAwwgCScIVwQNCgkPug/TCswMIw0+CWUD9wczBFAB1wU0ALIKBwowDAoDegX0BzAETQF1Cy4A1wJvCz0O//90BesOOgaQAOoPFw2bAnkOVglTA9YOuQVvCJgJ5A///+MJKgtQCTQOqAjnBOMBkgmHAFQLUgaiDygOogjhBOABag57ACIOnwjeBN0BxwZ1ALoI+QTzAcUJqAA+AzkHHA6cCNsE2gFABm8A//+EDy0H6AckBEEBLgZ3ECcHpQxvD5UBXAXlByEEPgGmDhIAjAKiDAwMIQdWBQ0ONw4XEMwPJhBgAIoACQx6A8YH8AMgAYIGxg95CoQM7QhKCToOqwjqBOcBKAaNAGUC3w7rCxIHPAfOAv/////MB/wDJgFNECwJhQqKDMsCaw3//0UPHwZTDT8HoAZuAj8P8QuuBK0BEwb9BzkEVgHnCEEADQYyCUcDOQ+GBT0GwwfqAx0BXw13A3MKgQwHBv//sAH//8oG9g9xA3gPXwJiCegL//9uA70LpAngDcAH5AMaASoPKQltCn4MKRD//2sD0AZ9CU0N+AUiBlkC///lC9oNvQfeAxcBuA76AmcKewzUDboH2AMUAf//JQZhCngMVgJHDeILtwtMDrQI8wTtAVMCnADeCwQKtg2rB7YDXwElAOIOQwppDEENawWbBR4Dewi6BP//NRA7DTYLzwuMDZYHigPzANsPCxAZClQM6A4aCVEP+gc2BFMBuQk7AD4CHQ22Bd8GgAVKA3gItwT//9ECoQIzCwgJ//9RCJAEmAGsDvAPDAv2DK8OXAl7D/EHLQRKAZ4JKAAvEK4M///ZBm4FwgndDYgG4QMdEJgCiwZqCu4HKgRHAYEPIgDeD6sMdgb//2gFzwcCBCkB//9mBIsKjQwSDOIK2wxhDv/////YD/cOcQKMCfQLxQJEDckH9gMjAf//xQV/CocMhAf//+QAfQP/////RQxpBGUNNQXuC+UK3gxnDv//LALxDs4NtwfRAy8J/////1sKdQz//78F/AhZDdEJyA20B8sDUAL//9sLVQpyDPMDegKQD3QQfArCDbEHxQNNArEP2AtPCm8MNQloAjUNuQ0AA7oDCAHLCQUDRgrVCy4OpQjkBP//Lw2BAOwCig9KAiYJVg2PAZgNnAeXA/kAlw4pDSUKWgwdCUgH//+SDZkHkQP2ADMHIA0fClcMeg2NB8kL7QBwBncJgQdODOEAFAk+Bf//QgwGCEIEMgU1An4H///eAA4JKQKYBT8M+w3//y8F7w2kAk0AwgHpDSYC9gi/AeMNCBBpCLwBpQF0CWAIJAtiAfAItgkbCwUNRQiEBKEFAAeDCQAL9AaaDqcC/wPuBksPXQiICugGuwb//xgLAg2pBv//GQYREFoImQSeAXMGegkVC/8MpQtXCJYEmwFUCJMEEgv8DKMGDwv5DLIO//9iDeEITgiNBP//zAudBgkL8wypDsYLPwh+BIwBlwbtA/oKkQaODnYKWQHAC0oAGA+xDP//DA+PBYUGYgIGDyMQ///mBQAP0w7aBWcGSQ7BDtQF/w///5kAzgVrCdoCSwiKBFANrQn//wYL8AyjDrANqAewA7sO2wj//z0KZgznA///8gn//3AK5gmTCzoDRALgCX8GJgP//9oJXAL//6UP///pAs8Inw8zCHIEhgGZD2wP7grnDHYOWg8iAy0IbASAAUoN///oCuEMbQ7JCF0EGwMDCD8E2QrSDE8OTwZUDxUD//+SBQ4DDwiRDmUBNgxDBrsKvQz//24QqgX9Ao0LAhC5Af//rQJuCRgMQgfgAmoGsAk0BtIHCAQsATEORBCRCpAMsw2EALMDBQFpC///QAriBnQCJQ73C4YNkweDA3gAUQtHAhMK//+ADZAH///wADYHYwv2AlEMOwIXCUEFdA2KB/UN6gD//zgCKgdLDP//Agk7Bf//Rg6xCPAE6gEyApYAHw7//xMOBw62AXIATgtmAFkAAQ6zAfoG/////1MAcgixBKsEqQFsCC0LZgj6Dv//Jwv//yELJAfcBhgHDAebDcgFmgPWBtQCBgcoCk4P///jAs0GxAYgEKUEwQb//7UGHAYIDacNQg+mA/8A/////zQK//+iBKEBYwgQBgwISATUCR4LQQK4CroMuAaLDqQF//90AxIPkw///x8ArwoVDEgIhwRlBbIG4AUDC68GnQ6VAmQGPA/0DjAPJA8xBv//1Q/uDnEQHg8KBsIF/gXyBeUO3A55BrwF2Q7sBc0O//9CCIEE/////+wJ/QpQEJQO////////iQGqDaUHqQOrD38OShA3CmMM0A7OCQoK/gn//zIQbQbICUQD+AkaEEEDjQ80A8oOWAb//8cOhw8bCEsEFBD//ysOxwp+D3UP//9+AHIP//9mDzkIeAS8AjcDJAz0Cu0Mgg42CHUECQhFBP//8QrqDHwOtwwwAzAHngUtA2kPEgjdAmgB//9bBr4KwAz/////sAX//w4QVQZjDz4AtQpgDxsM8AKDBbwJDwCmCrcI9gTwAVMFogD//9gHFAQyAYYC8w+dCpYMZgdfCcYA///DD///oQn//0cJFwX9C9UHDgQvAeYCEQKXCpMMpA2iB6MD/////0gPMQpgDJ8E3gj6C54NnwedA2MHFgbDACsKXQxUBxkOtABRBxQFsQBsAP////8FBQ4CTgcCBa4ArAb/ATwIewT8Af///wT3CtgIiA5oEP//+QHSCB4H///MCCoIWgR0ASQIVATWCv//xgjQCskM//9hBv//////////FQgzDDcGRAAtDMEKwwz//4kFOADLDZALzgMRAX0FsAJYCh4M//8rAP//jw35D40DcQX//2UJHArtD///xA6nCVkJ//8YAKwK//+bCeEPXwX/////TQmKCzYPjwIyDY8JbAsLCf//ZgucBM8PBAYVAKkK/////2ALWQXFDf//yAMOASoDiQJSCmsQrQ3//6wDAgH//8kPOgr//6YGoQ0+EKAD/AD//10PLgoYCIkNOBCGA4MNxAqAAxYK//94BxAK2AAsDSwQ//+2Av//IQwpBXUH1w3VANsD//8jApIBZAr//yYFBQmgDm8H/wjPACACbAdgB8wAwABaByAFugAhCFEEHQURBRoCzQoLBXwGFwILAh4ITgQFAr4OPg3KCtENKgzUA///UxD//14K//////////8nDP////////////////////////////9fEEUH/////////////////////////////zgN////////////////////////tAv///////9XD/////////////+uC/////////////////////////////+iC////////5wLhAv/////eAv////////////////////////////////zAv//////////////////YhD/////////////Gg3//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1wQ//////////////////////////9WEP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////0cQ/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////2UQ/////////////////////1kQ//////////////////9BEP////87EAAAAAAAAGUA/QBMAB0AGADvAGAARwBcAEMABAA+AAgAOgDqAG0ApABYAFQAUADWAAAANgAFATIAaQB5AH0AAQEqACYA+QAuAHUADABxAPQA5QDgANsA0QAQAMwAxwDCAL0AuACzAK4AqQAUACIAnwCaAJUAkACLAIYAgQBB8IkRC+EIPgAvAB8AOQApABkANAAkABQAQwAPAAoABQAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMA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AAAABAUAAAcFAAABAAAABgUAAAkFAAABAAAACAUAAAsFAAABAAAACgUAAA0FAAABAAAADAUAAA8FAAABAAAADgUAABEFAAABAAAAEAUAABMFAAABAAAAEgUAABUFAAABAAAAFAUAABcFAAABAAAAFgUAABkFAAABAAAAGAUAABsFAAABAAAAGgUAAB0FAAABAAAAHAUAAB8FAAABAAAAHgUAACEFAAABAAAAIAUAACMFAAABAAAAIgUAACUFAAABAAAAJAUAACcFAAABAAAAJgUAACkFAAABAAAAKAUAACsFAAABAAAAKgUAAC0FAAABAAAALAUAAC8FAAABAAAALgUAAGEFAAABAAAAMQUAAGIFAAABAAAAMgUAAGMFAAABAAAAMwUAAGQFAAABAAAANAUAAGUFAAABAAAANQUAAGYFAAABAAAANgUAAGcFAAABAAAANwUAAGgFAAABAAAAOAUAAGkFAAABAAAAOQUAAGoFAAABAAAAOgUAAGsFAAABAAAAOwUAAGwFAAABAAAAPAUAAG0FAAABAAAAPQUAAG4FAAABAAAAPgUAAG8FAAABAAAAPwUAAHAFAAABAAAAQAUAAHEFAAABAAAAQQUAAHIFAAABAAAAQgUAAHMFAAABAAAAQwUAAHQFAAABAAAARAUAAHUFAAABAAAARQUAAHYFAAABAAAARgUAAHcFAAABAAAARwUAAHgFAAABAAAASAUAAHkFAAABAAAASQUAAHoFAAABAAAASgUAAHsFAAABAAAASwUAAHwFAAABAAAATAUAAH0FAAABAAAATQUAAH4FAAABAAAATgUAAH8FAAABAAAATwUAAIAFAAABAAAAUAUAAIEFAAABAAAAUQUAAIIFAAABAAAAUgUAAIMFAAABAAAAUwUAAIQFAAABAAAAVAUAAIUFAAABAAAAVQUAAIYFAAABAAAAVgUAANAQAAABAAAAkBwAANEQAAABAAAAkRwAANIQAAABAAAAkhwAANMQAAABAAAAkxwAANQQAAABAAAAlBwAANUQAAABAAAAlRwAANYQAAABAAAAlhwAANcQAAABAAAAlxwAANgQAAABAAAAmBwAANkQAAABAAAAmRwAANoQAAABAAAAmhwAANsQAAABAAAAmxwAANwQAAABAAAAnBwAAN0QAAABAAAAnRwAAN4QAAABAAAAnhwAAN8QAAABAAAAnxwAAOAQAAABAAAAoBwAAOEQAAABAAAAoRwAAOIQAAABAAAAohwAAOMQAAABAAAAoxwAAOQQAAABAAAApBwAAOUQAAABAAAApRwAAOYQAAABAAAAphwAAOcQAAABAAAApxwAAOgQAAABAAAAqBwAAOkQAAABAAAAqRwAAOoQAAABAAAAqhwAAOsQAAABAAAAqxwAAOwQAAABAAAArBwAAO0QAAABAAAArRwAAO4QAAABAAAArhwAAO8QAAABAAAArxwAAPAQAAABAAAAsBwAAPEQAAABAAAAsRwAAPIQAAABAAAAshwAAPMQAAABAAAAsxwAAPQQAAABAAAAtBwAAPUQAAABAAAAtRwAAPYQAAABAAAAthwAAPcQAAABAAAAtxwAAPgQAAABAAAAuBwAAPkQAAABAAAAuRwAAPoQAAABAAAAuhwAAP0QAAABAAAAvRwAAP4QAAABAAAAvhwAAP8QAAABAAAAvxwAAKATAAABAAAAcKsAAKETAAABAAAAcasAAKITAAABAAAAcqsAAKMTAAABAAAAc6sAAKQTAAABAAAAdKsAAKUTAAABAAAAdasAAKYTAAABAAAAdqsAAKcTAAABAAAAd6sAAKgTAAABAAAAeKsAAKkTAAABAAAAeasAAKoTAAABAAAAeqsAAKsTAAABAAAAe6sAAKwTAAABAAAAfKsAAK0TAAABAAAAfasAAK4TAAABAAAAfqsAAK8TAAABAAAAf6sAALATAAABAAAAgKsAALETAAABAAAAgasAALITAAABAAAAgqsAALMTAAABAAAAg6sAALQTAAABAAAAhKsAALUTAAABAAAAhasAALYTAAABAAAAhqsAALcTAAABAAAAh6sAALgTAAABAAAAiKsAALkTAAABAAAAiasAALoTAAABAAAAiqsAALsTAAABAAAAi6sAALwTAAABAAAAjKsAAL0TAAABAAAAjasAAL4TAAABAAAAjqsAAL8TAAABAAAAj6sAAMATAAABAAAAkKsAAMETAAABAAAAkasAAMITAAABAAAAkqsAAMMTAAABAAAAk6sAAMQTAAABAAAAlKsAAMUTAAABAAAAlasAAMYTAAABAAAAlqsAAMcTAAABAAAAl6sAAMgTAAABAAAAmKsAAMkTAAABAAAAmasAAMoTAAABAAAAmqsAAMsTAAABAAAAm6sAAMwTAAABAAAAnKsAAM0TAAABAAAAnasAAM4TAAABAAAAnqsAAM8TAAABAAAAn6sAANATAAABAAAAoKsAANETAAABAAAAoasAANITAAABAAAAoqsAANMTAAABAAAAo6sAANQTAAABAAAApKsAANUTAAABAAAApasAANYTAAABAAAApqsAANcTAAABAAAAp6sAANgTAAABAAAAqKsAANkTAAABAAAAqasAANoTAAABAAAAqqsAANsTAAABAAAAq6sAANwTAAABAAAArKsAAN0TAAABAAAArasAAN4TAAABAAAArqsAAN8TAAABAAAAr6sAAOATAAABAAAAsKsAAOETAAABAAAAsasAAOITAAABAAAAsqsAAOMTAAABAAAAs6sAAOQTAAABAAAAtKsAAOUTAAABAAAAtasAAOYTAAABAAAAtqsAAOcTAAABAAAAt6sAAOgTAAABAAAAuKsAAOkTAAABAAAAuasAAOoTAAABAAAAuqsAAOsTAAABAAAAu6sAAOwTAAABAAAAvKsAAO0TAAABAAAAvasAAO4TAAABAAAAvqsAAO8TAAABAAAAv6sAAPATAAABAAAA+BMAAPETAAABAAAA+RMAAPITAAABAAAA+hMAAPMTAAABAAAA+xMAAPQTAAABAAAA/BMAAPUTAAABAAAA/RMAAHkdAAABAAAAfacAAH0dAAABAAAAYywAAI4dAAABAAAAxqcAAAEeAAABAAAAAB4AAAMeAAABAAAAAh4AAAUeAAABAAAABB4AAAceAAABAAAABh4AAAkeAAABAAAACB4AAAseAAABAAAACh4AAA0eAAABAAAADB4AAA8eAAABAAAADh4AABEeAAABAAAAEB4AABMeAAABAAAAEh4AABUeAAABAAAAFB4AABceAAABAAAAFh4AABkeAAABAAAAGB4AABseAAABAAAAGh4AAB0eAAABAAAAHB4AAB8eAAABAAAAHh4AACEeAAABAAAAIB4AACMeAAABAAAAIh4AACUeAAABAAAAJB4AACceAAABAAAAJh4AACkeAAABAAAAKB4AACseAAABAAAAKh4AAC0eAAABAAAALB4AAC8eAAABAAAALh4AADEeAAABAAAAMB4AADMeAAABAAAAMh4AADUeAAABAAAANB4AADceAAABAAAANh4AADkeAAABAAAAOB4AADseAAABAAAAOh4AAD0eAAAB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LAAAAQAAABMsAABELAAAAQAAABQsAABFLAAAAQAAABUsAABGLAAAAQAAABYsAABHLAAAAQAAABcsAABILAAAAQAAABgsAABJLAAAAQAAABksAABKLAAAAQAAABosAABLLAAAAQAAABssAABMLAAAAQAAABwsAABNLAAAAQAAAB0sAABOLAAAAQAAAB4sAABPLAAAAQAAAB8sAABQLAAAAQAAACAsAABRLAAAAQAAACEsAABSLAAAAQAAACIsAABTLAAAAQAAACMsAABULAAAAQAAACQsAABVLAAAAQAAACUsAABWLAAAAQAAACYsAABXLAAAAQAAACcsAABYLAAAAQAAACgsAABZLAAAAQAAACksAABaLAAAAQAAACosAABbLAAAAQAAACssAABcLAAAAQAAACwsAABdLAAAAQAAAC0sAABeLAAAAQAAAC4sAABfLAAAAQAAAC8sAABhLAAAAQAAAGAsAABlLAAAAQAAADoCAABmLAAAAQAAAD4CAABoLAAAAQAAAGcsAABqLAAAAQAAAGksAABsLAAAAQAAAGssAABzLAAAAQAAAHIsAAB2LAAAAQAAAHUsAACBLAAAAQAAAIAsAACDLAAAAQAAAIIsAACFLAAAAQAAAIQsAACHLAAAAQAAAIYsAACJLAAAAQAAAIgsAACLLAAAAQAAAIosAACNLAAAAQAAAIwsAACPLAAAAQAAAI4sAACRLAAAAQAAAJAsAACTLAAAAQAAAJIsAACVLAAAAQAAAJQsAACXLAAAAQAAAJYsAACZLAAAAQAAAJgsAACbLAAAAQAAAJosAACdLAAAAQAAAJwsAACfLAAAAQAAAJ4sAAChLAAAAQAAAKAsAACjLAAAAQAAAKIsAAClLAAAAQAAAKQsAACnLAAAAQAAAKYsAACpLAAAAQAAAKgsAACrLAAAAQAAAKosAACtLAAAAQAAAKwsAACvLAAAAQAAAK4sAACxLAAAAQAAALAsAACzLAAAAQAAALIsAAC1LAAAAQAAALQsAAC3LAAAAQAAALYsAAC5LAAAAQAAALgsAAC7LAAAAQAAALosAAC9LAAAAQAAALwsAAC/LAAAAQAAAL4sAADBLAAAAQAAAMAsAADDLAAAAQAAAMIsAADFLAAAAQAAAMQsAADHLAAAAQAAAMYsAADJLAAAAQAAAMgsAADLLAAAAQAAAMosAADN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AgAwJgIAgCYCAOAmAgD0JgIAACcCALA+AgAAUwIAoFMCAMBTAgCwVAIA0FQCAPBUAgAMVQIAIFUCAEBVAgCwVQIAcFYCAJBWAgDgVgIAAFcCADBXAgBQVwIAcFcCAMBrAgBAcAIAoHACAOBxAgAAcgIAMHICAFByAgCQcgIAsHICAECHAgBwiQIAIJkCAOC6AABgmQIAwJkCAPStAgAArgIAIK4CAHy3AgCItwIAoLcCAOC3AgAAuAIAILgCAEC4AgCAuAIA4LwCAHDCAgCcwgIAsMICANDCAgDwwgIADMMCACDDAgBAwwIA0M0CAPDNAgAwzgIAUM4CAIDOAgCgzgIA4NICAADTAgDgogAAINMCAFDTAgBw0wIAkNMCAADUAgBA1gIA4NYCAADXAgAk1wIAMNcCAEDXAgBg1wIAdNcCAIDXAgCQ1wIApNcCALDXAgC81wIAyNcCAODXAgBg2AIAgNgCAKDYAgDw3wIAUOACACDhAgBQ4QIAgOECAFDiAgCQ5gIAwOUAAMDmAgDs5gIAAOcCAPDnAgAc6AIAMOgCAHDoAgAQ6QIAgOsCANTrAgDg6wIAAOwCAGDsAgAw8gIAcPICAPD0AgAQ9QIAgPUCAJz1AgCw9QIA0PUCAPD1AgBQ/QIAcP0CAJD9AgBA/gIAvAADAMgAAwDgAAMAAAEDACABAwCQAQMAkAIDAKAEAwCACgMAhAsDAJALAwCkCwMAsAsDAMQLAwDQCwMAAAwDACAMAwBADAMAYAwDAJAMAwCwDAMA0AwDAHANAwCQDQMAwA0DADAOAwCMEQMAoBEDAMARAwAAEgMAIBIDADQSAwBAEgMAYBIDAOASAwAQ7AAApCgDALAoAwDgKAMAMCkDAFApAwCw6wAAcCkDAFBBAwDQVQMA8FUDABBWAwBUVgMAYFYDAGxWAwCAVgMAFDABALxWAwDIVgMA1FYDAOBWAwDsVgMA+FYDAARXAwAQVwMAHFcDAChXAwA0VwMAQFcDAExXAwBYVwMAZFcDAHBXAwB8VwMAiFcDAJRXAwCgVwMArFcDALhXAwDEVwMA0FcDANxXAwDoVwMA9FcDAABYAwAMWAMAGFgDACRYAwAwWAMAPFgDAEhYAwBUWAMAYFgDAGxYAwB4WAMAhFgDAJBYAwCcWAMAqFgDALRYAwDAWAMAzFgDANhYAwDkWAMA8FgDAPxYAwAIWQMAFFkDACBZAwAsWQMAOFkDAERZAwBQWQMAXFkDAGhZAwB0WQMAgFkDAIxZAwAw1wIAmFkDAKRZAwCwWQMAvFkDAMhZAwDUWQMA4FkDAOxZAwD4WQMABFoDABBaAwAcWgMAKFoDADRaAwBAWgMATFoDAFhaAwBkWgMAcFoDAHxaAwCIWgMAlFoDAKBaAwCsWgMAuFoDAMRaAwDQWgMA3FoDABxKAQDoWgMA9FoDAABbAwAMWwMAGFsDACRbAwAwWwMAPFsDAEhbAwBUWwMAYFsDAGxbAwB4WwMAhFsDAJBbAwCcWwMAqFsDALRbAwDAWwMAzFsDANhbAwDkWwMA8FsDAPxbAwAIXAMAFFwDACBcAwAsXAMAOFwDAERcAwBQXAMAXFwDAGhcAwB0XAMAgFwDAIxcAwCYXAMApFwDALBcAwC8XAMAyFwDANRcAwDgXAMA7FwDAPhcAwAEXQMAEF0DABxdAwAoXQMANF0DAEBdAwBMXQMAWF0DAGRdAwBwXQMAfF0DAIhdAwCUXQMAoF0DAKxdAwC4XQMAxF0DANBdAwDcXQMA6F0DAPRdAwAAXgMADF4DABheAwAkXgMAMF4DADxeAwBIXgMAVF4DAGBeAwBsXgMAeF4DAIReAwCQXgMAnF4DAKheAwC0XgMAwF4DAMxeAwDYXgMA5F4DAPTjAQDIAAMA8F4DAPxeAwAIXwMAFF8DACBfAwAsXwMAOF8DAERfAwBQXwMA7OYCAFxfAwBoXwMAdF8DAIBfAwAMwwIAjF8DAJhfAwCw1wIAdNcCAKRfAwCwXwMAvF8DAMhfAwDUXwMA4F8DAOxfAwD4XwMABGADABBgAwAcYAMAKGADADRgAwBAYAMATGADAFhgAwBkYAMAcGADAHxgAwCIYAMAvAADAJRgAwCgYAMArGADALhgAwDEYAMA0GADANxgAwDoYAMA9GADAABhAwAMYQMAGGEDACRhAwAwYQMAPGEDAEhhAwBUYQMAYGEDAGxhAwB4YQMAhGEDAJBhAwCcYQMAqGEDALRhAwDAYQMAzGEDANhhAwDkYQMA8GEDAPxhAwAIYgMAFGIDACBiAwAsYgMAOGIDAERiAwBQYgMAXGIDAGhiAwB0YgMAgGIDAIxiAwCYYgMApGIDALBiAwC8YgMAyGIDANRiAwDgYgMA7GIDAPhiAwAEYwMAEGMDABxjAwAoYwMANGMDAEBjAwBMYwMAWGMDAGRjAwBwYwMAfGMDAIhjAwCUYwMAoGMDAKxjAwC4YwMAxGMDANBjAwDcYwMA6GMDAPRjAwAAZAMADGQDABhkAwAkZAMAMGQDADxkAwBIZAMAVGQDAGBkAwBsZAMAeGQDAIRkAwCQZAMAnGQDAKhkAwC0ZAMAwGQDAMxkAwDYZAMA5GQDAPBkAwD8ZAMACGUDABRlAwAgZQMALGUDADhlAwBQZQMAFQAAAAsFAAABAAAAAQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAAAAAAIwAAAAUAQey9Egs9JAAAAEMFAAAEAAAAAQAAABYAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAAIQBBtL4SCwUvAAAAHwBByL4SCwEFAEHUvhILATAAQey+EgsOMQAAADIAAABooQQAAAQAQYS/EgsBAQBBlL8SCwX/////CgBB2L8SCwPQx1Q=");let GB=null;function NB(A){return"text"==A||"terminal"==A}function HB(A){if(!GB){const A=gB(FB).then((()=>({createOnigScanner:CB,createOnigString:EB})));GB=new jA({onigLib:A,loadGrammar:A=>sB(A)})}const B=A.filter((A=>!NB(A))).map((A=>{const B=IB(A);if(!B)throw new kB(A);return GB.loadGrammar(B.scopeName)}));return Promise.all(B)}function LB(A){if(NB(A))return{langId:A,grammar:null};const B=IB(A);if(!B)throw new kB(A);const Q=function(A){const{_syncRegistry:B}=GB;return null==B?void 0:B._grammars.get(A)}(B.scopeName);if(!Q)throw new Error(`Syntax highlighting error: grammar for ${A} not loaded`);return{langId:B.id,grammar:Q}}class kB extends Error{constructor(A){super(`Unknown language: ${A}`),this.alias=A}}function RB(A,B,Q){GB.setTheme(Q);const g=function(A){const B=GB.getColorMap();return A.colorNames?B.map((B=>Object.keys(A.colorNames).find((Q=>A.colorNames[Q].toUpperCase()===B.toUpperCase()))||B)):B}(Q);return function(A,B,Q){let g=null;return A.split(/\r?\n|\r/g).map((A=>{const{rawTokens:E,nextStack:C}=MB(B,g,A);return g=C,E.map((({content:A,metadata:B})=>({content:A,style:nB(B,Q)})))}))}(A,B,g)}function KB(A){return A.split(/\r?\n|\r/g).map((A=>[{content:A,style:{}}]))}function YB(A,B){return PB(A.slice(1,-1)).map((A=>{const{from:Q,to:g}=UB(A);return{lineNumber:B,fromColumn:Q,toColumn:g}}))}function UB(A){const[B,Q]=A.split(":");if(!uB(B))throw new yB(B);const g=Number(B);if(g<1)throw new JB;if(Q){if(!uB(Q))throw new yB(Q);return{from:g,to:+Q}}return{from:g,to:g}}function PB(A){return A.split(/,(?![^\[]*\])/g)}function uB(A){A=A.toString();var B=Math.abs(A),Q=parseInt(A,10);return!isNaN(B)&&Q===B&&B.toString()===A}class yB extends Error{constructor(A){super(`Invalid number "${A}" in range string`),this.number=A,Object.setPrototypeOf(this,new.target.prototype)}}class JB extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const pB="#001",dB="#010",SB={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:pB}},{scope:"comment",settings:{foreground:dB}}]};function lB(A,B,Q,g){const E=B?RB(A,B,SB):KB(A),C=[];let I=1;const D=E.map((A=>{const{annotations:B,lineWithoutComments:E}=function(A,B,Q,g){if(g in mB&&A.some((A=>A.style.color===dB))){const B=mB[g];A=A.flatMap((A=>{if(A.style.color!==dB)return[A];const Q=A.content.trimStart();if(Q.startsWith(B)){const g=Q.slice(B.length),E=[{content:A.content.slice(0,A.content.length-g.length),style:{color:pB}}];return g.length&&E.push({content:g,style:A.style}),E}return[A]}))}if(!A.some((A=>A.style.color===pB)))return{annotations:[],lineWithoutComments:A};const E=[];let C=0;for(;C<A.length;){const g=A[C];if(g.style.color!==dB){C++;continue}const I="function"==typeof B?B(g.content):xB(g.content,B);if(!I){C++;continue}const{name:D,query:w,rangeString:o}=I,s=A[C-1],e=A[C+1],c=[];s&&s.style.color===pB&&c.push(s),c.push(g),e&&e.style.color===pB&&c.push(e),E.push({tokens:c,name:D,query:w,rangeString:o,lineNumber:Q}),C+=2}let I=A;for(const A of E)I=I.filter((B=>!A.tokens.includes(B)));I.every((A=>""===A.content.trim()))&&(I=null);return{annotations:E.map((A=>({name:A.name,query:A.query,lineNumber:A.lineNumber,rangeString:A.rangeString}))),lineWithoutComments:I}}(A,g,I,Q);if(C.push(...B),!E)return null;const D=E.map((A=>A.content)).join("");return["mdx","jsx","tsx"].includes(Q)&&B.length>0&&"{}"===D.trim()?null:(I++,D)})).filter((A=>null!==A)).join("\n"),w=C.map((A=>{var{rangeString:B,lineNumber:Q}=A,g=function(A,B){var Q={};for(var g in A)Object.prototype.hasOwnProperty.call(A,g)&&B.indexOf(g)<0&&(Q[g]=A[g]);if(null!=A&&"function"==typeof Object.getOwnPropertySymbols){var E=0;for(g=Object.getOwnPropertySymbols(A);E<g.length;E++)B.indexOf(g[E])<0&&Object.prototype.propertyIsEnumerable.call(A,g[E])&&(Q[g[E]]=A[g[E]])}return Q}(A,["rangeString","lineNumber"]);return Object.assign(Object.assign({},g),{ranges:fB(B,Q,D)})})).filter((A=>A.ranges.length>0));return{newCode:D,annotations:w}}const mB={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function fB(A,B,Q){return A&&A.startsWith("(/")?function(A,B,Q){const g=B.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);const E=new RegExp(g[1],g[2]),C=A.split(/\r?\n/).slice(Q-1).join("\n");if(!E.global){const A=E.exec(C);if(!A)return[];const B=C.slice(0,A.index).split("\n").length+Q-1;return[{fromLineNumber:B,toLineNumber:B+A[0].split("\n").length-1}]}let I;const D=[];for(;I=E.exec(C);){const A=C.slice(0,I.index).split("\n").length+Q-1,B=A+I[0].split("\n").length-1,g=D[D.length-1];g&&g.fromLineNumber===A||D.push({fromLineNumber:A,toLineNumber:B})}return D}(Q,A,B):A&&A.startsWith("[/")?function(A,B,Q){const g=B.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!g)throw new Error(`Invalid RegExp string: ${B}`);let E=g[2]||"";E+="d";const C=new RegExp(g[1],E);let I=A.split(/\r?\n/);I=I.slice(Q-1),C.multiline||(I=[I[0]]);const D=[];return I.forEach(((A,B)=>{if(!C.global){if(D.length>0)return;const g=C.exec(A);if(!g)return;const E=g.indices[1]||g.indices[0];return void D.push({lineNumber:B+Q,fromColumn:E[0]+1,toColumn:E[1]})}let g;for(;g=C.exec(A);){const A=g.indices[1]||g.indices[0];D.push({lineNumber:B+Q,fromColumn:A[0]+1,toColumn:A[1]})}})),D}(Q,A,B):function(A,B){return A?A.startsWith("[")?YB(A,B):PB(A.slice(1,-1)).map((A=>{if(A.includes("[")){const[Q,g]=A.split("["),E=Number(Q),C=B+E-1;if(!uB(C))throw new yB(Q);return YB("["+g,C)}const{from:Q,to:g}=UB(A);return[{fromLineNumber:Q+B-1,toLineNumber:g+B-1}]})).flat():[{fromLineNumber:B,toLineNumber:B}]}(A,B)}function xB(A,B){var Q;const g=A.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),E=g[1],C=g[2],I=null===(Q=g[3])||void 0===Q?void 0:Q.trim();return B.includes(E)?{name:E,rangeString:C,query:I}:null}function OB(A,B){let Q=[],g=1;return A.forEach((A=>{Q.push({fromColumn:g,toColumn:g+A.content.length-1,token:A}),g+=A.content.length})),B.forEach((A=>{Q=function(A,B){const{range:Q}=B,{fromColumn:g,toColumn:E}=Q,C=[];let I=0;for(;I<A.length&&A[I].toColumn<g;)C.push(A[I]),I++;if(I===A.length)return A;const D={annotationName:B.name,annotationQuery:B.query,fromColumn:g,toColumn:E,tokens:[]},w=A[I];if(w.fromColumn<g){const[A,B]=bB(w,g);if(C.push(A),C.push(D),B.toColumn>E){const[A,Q]=bB(B,E+1);D.tokens.push(A),C.push(Q)}else D.tokens.push(B);I++}else C.push(D);for(;I<A.length&&A[I].toColumn<=E;)D.tokens.push(A[I]),I++;if(I===A.length)return C;const o=A[I];if(o.fromColumn<=E){const[A,B]=bB(o,E+1);D.tokens.push(A),C.push(B),I++}for(;I<A.length;)C.push(A[I]),I++;return C}(Q,A)})),Q.map((A=>qB(A)))}function qB(A){return"tokens"in A?{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromColumn:A.fromColumn,toColumn:A.toColumn,tokens:A.tokens.map((A=>qB(A)))}:A.token}function bB(A,B){if("token"in A){const Q=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(0,B-A.fromColumn)}),g=Object.assign(Object.assign({},A.token),{content:A.token.content.slice(B-A.fromColumn)});return[Object.assign(Object.assign({},A),{toColumn:B-1,token:Q}),Object.assign(Object.assign({},A),{fromColumn:B,token:g})]}{const Q=[],g=[];A.tokens.forEach((A=>{if(A.toColumn<B)Q.push(A);else if(A.fromColumn>=B)g.push(A);else{const[E,C]=bB(A,B);Q.push(E),g.push(C)}}));return[Object.assign(Object.assign({},A),{toColumn:B-1,tokens:Q}),Object.assign(Object.assign({},A),{fromColumn:B,tokens:g})]}}function WB(A,B){let Q=A.map(((A,B)=>({fromLineNumber:B+1,toLineNumber:B+1,line:A})));return B.forEach((A=>{Q=function(A,B){const{range:Q,name:g,query:E}=B,{fromLineNumber:C,toLineNumber:I}=Q,D=[];let w=0;for(;w<A.length&&A[w].toLineNumber<C;)D.push(A[w]),w++;if(w===A.length)return D;const o={annotationName:g,annotationQuery:E,fromLineNumber:C,toLineNumber:I,lines:[]},s=A[w];if(s.fromLineNumber<C){const[A,B]=vB(s,C);if(D.push(A),D.push(o),B.toLineNumber>I){const[A,Q]=vB(B,I+1);o.lines.push(A),D.push(Q)}else o.lines.push(B);w++}else D.push(o);for(;w<A.length&&A[w].toLineNumber<=I;)o.lines.push(A[w]),w++;if(w===A.length)return D;const e=A[w];if(e.fromLineNumber<=I){const[A,B]=vB(e,I+1);o.lines.push(A),D.push(B),w++}for(;w<A.length;)D.push(A[w]),w++;return D}(Q,A)})),Q.map((A=>TB(A)))}function TB(A){return"line"in A?{lineNumber:A.fromLineNumber,tokens:A.line.tokens}:{annotationName:A.annotationName,annotationQuery:A.annotationQuery,fromLineNumber:A.fromLineNumber,toLineNumber:A.toLineNumber,lines:A.lines.map((A=>TB(A)))}}function vB(A,B){if("line"in A)return[Object.assign(Object.assign({},A),{toLineNumber:B-1}),Object.assign(Object.assign({},A),{fromLineNumber:B})];{const Q=[],g=[];return A.lines.forEach((A=>{if(A.toLineNumber<B)Q.push(A);else if(A.fromLineNumber>=B)g.push(A);else{const[E,C]=vB(A,B);Q.push(E),g.push(C)}})),[Object.assign(Object.assign({},A),{toLineNumber:B-1,lines:Q}),Object.assign(Object.assign({},A),{fromLineNumber:B,lines:g})]}}function XB(A,B){const{inlineAnnotations:Q,multilineAnnotations:g}=function(A){const B=[],Q=[];return A.forEach((A=>{A.ranges.forEach((g=>{"lineNumber"in g?B.push(Object.assign(Object.assign({},A),{range:g})):Q.push(Object.assign(Object.assign({},A),{range:g}))}))})),{inlineAnnotations:B,multilineAnnotations:Q}}(B);return WB(A.map(((A,B)=>{const g=Q.filter((A=>A.range.lineNumber===B+1));return{lineNumber:B+1,tokens:OB(A,g)}})),g)}var ZB=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],jB={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function VB(A,B){const Q=A.indexOf("[",B);if(-1!==Q){const B=A.indexOf("m",Q);return{sequence:A.substring(Q+2,B).split(";"),startPosition:Q,position:B+1}}return{position:A.length}}function zB(A,B){let Q=1;const g=A[B+Q++];let E;if("2"===g){const g=[A[B+Q++],A[B+Q++],A[B+Q]].map((A=>Number.parseInt(A)));3!==g.length||g.some((A=>Number.isNaN(A)))||(E={type:"rgb",rgb:g})}else if("5"===g){const g=Number.parseInt(A[B+Q]);Number.isNaN(g)||(E={type:"table",index:Number(g)})}return[Q,E]}function _B(A){const B=[];for(let Q=0;Q<A.length;Q++){const g=A[Q],E=Number.parseInt(g);if(!Number.isNaN(E))if(0===E)B.push({type:"resetAll"});else if(E<=9){jB[E]&&B.push({type:"setDecoration",value:jB[E]})}else if(E<=29){const A=jB[E-20];A&&B.push({type:"resetDecoration",value:A})}else if(E<=37)B.push({type:"setForegroundColor",value:{type:"named",name:ZB[E-30]}});else if(38===E){const[g,E]=zB(A,Q);E&&B.push({type:"setForegroundColor",value:E}),Q+=g}else if(39===E)B.push({type:"resetForegroundColor"});else if(E<=47)B.push({type:"setBackgroundColor",value:{type:"named",name:ZB[E-40]}});else if(48===E){const[g,E]=zB(A,Q);E&&B.push({type:"setBackgroundColor",value:E}),Q+=g}else 49===E?B.push({type:"resetBackgroundColor"}):E>=90&&E<=97?B.push({type:"setForegroundColor",value:{type:"named",name:ZB[E-90+8]}}):E>=100&&E<=107&&B.push({type:"setBackgroundColor",value:{type:"named",name:ZB[E-100+8]}})}return B}function $B(A,B){const Q=function(){let A=null,B=null,Q=new Set;return{parse(g){const E=[];let C=0;do{const I=VB(g,C),D=I.sequence?g.substring(C,I.startPosition):g.substring(C);if(D.length>0&&E.push({value:D,foreground:A,background:B,decorations:new Set(Q)}),I.sequence){const g=_B(I.sequence);for(const E of g)"resetAll"===E.type?(A=null,B=null,Q.clear()):"resetForegroundColor"===E.type?A=null:"resetBackgroundColor"===E.type?B=null:"resetDecoration"===E.type&&Q.delete(E.value);for(const E of g)"setForegroundColor"===E.type?A=E.value:"setBackgroundColor"===E.type?B=E.value:"setDecoration"===E.type&&Q.add(E.value)}C=I.position}while(C<g.length);return E}}}(),g=A.split(/\r?\n|\r/g).map((A=>function(A,B,Q){const g=A.parse(B),E=g.map((({value:A,foreground:B,background:g,decorations:E})=>{const C=AQ(B,Q),I={};C&&(I.color=C);const D=AQ(g,Q);return D&&(I.background=D),E.has("bold")&&(I.fontWeight="bold"),E.has("italic")&&(I.fontStyle="italic"),E.has("underline")&&(I.textDecoration="underline"),E.has("strikethrough")&&(I.textDecoration="line-through"),E.has("reverse")&&(I.color=D,I.background=C),E.has("dim")&&(I.opacity=.5),{content:A,style:I}}));return E}(Q,A,B)));return g}function AQ(A,B){if(A){if("named"===A.type){return w(B,"terminal.ansi"+(A.name[0].toUpperCase()+A.name.slice(1)))}if("rgb"===A.type){const[B,Q,g]=A.rgb;return`rgb(${B}, ${Q}, ${g})`}}}async function BQ(A,B){await Promise.all([HB(A),i(B)])}async function QQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");return await BQ([C],Q),gQ(E,C,Q,g)}function gQ(A,B,Q="dark-plus",g={}){const E=A||"",C=B||"text";if("string"!=typeof E)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof C)throw new Error("Syntax highlighter error: lang must be a string");const{langId:I,grammar:D}=LB(C),o=t(Q),s="text"==I?KB(E):"terminal"==I?$B(E,o):(null==g?void 0:g.scopes)?function(A,B,Q){return GB.setTheme(Q),hB(A,B,GB.getColorMap())}(E,D,o):RB(E,D,o),e="terminal"==I?function(A){return{color:w(A,"terminal.foreground"),background:w(A,"terminal.background")}}(o):{color:o.foreground,background:o.background};if(function(A){return"annotations"in A}(g)){return{lines:XB(s,(null==g?void 0:g.annotations)||[]),lang:I,style:e}}return{lines:s,lang:I,style:e}}async function EQ(A,B,Q){if(!Q)return{code:A,annotations:[]};await HB([B]);const{grammar:g,langId:E}=LB(B),{newCode:C,annotations:I}=lB(A,g,E,Q);return{code:C,annotations:I}}async function CQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");await BQ([],A);return h(t(A))}function IQ(A){if(!A)throw new Error("Syntax highlighter error: undefined theme");return h(t(A))}export{n as LANG_NAMES,a as THEME_NAMES,kB as UnknownLanguageError,M as UnknownThemeError,EQ as extractAnnotations,CQ as getThemeColors,IQ as getThemeColorsSync,QQ as highlight,gQ as highlightSync,BQ as preload}; diff --git a/lib/dist/txt.mjs b/lib/dist/txt.mjs new file mode 100644 index 0000000..4bb83cf --- /dev/null +++ b/lib/dist/txt.mjs @@ -0,0 +1 @@ +var t="txt",e="source.txt",n=[{include:"#comment"}],a={comment:{begin:"(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.txt"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{0:{name:"punctuation.definition.comment.txt"}},end:"\\n",name:"comment.line.number-sign.txt"}]}},i={name:"txt",scopeName:e,patterns:n,repository:a};export{i as default,t as name,n as patterns,a as repository,e as scopeName}; diff --git a/lib/dist/worker.esm.mjs b/lib/dist/worker.esm.mjs index ef5196b..2d28d69 100644 --- a/lib/dist/worker.esm.mjs +++ b/lib/dist/worker.esm.mjs @@ -1 +1 @@ -import e from"./onig.wasm?module";async function t(e,t){throw new Error("no fs")}async function s(e){const t=await fetch(`https://lighter.codehike.org/${e}.json`);return await t.json()}const r=e=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(e),o=(e,t)=>e.match(new RegExp(`.{${t}}`,"g")),n=e=>parseInt(e.repeat(2/e.length),16);function c(e,t){return void 0!==e?e/255:"number"!=typeof t||t<0||t>1?1:t}function a(e,t){if(!e)return e;const{r:s,g:a,b:i,a:u}=function(e){if(!e)return;if(!r(e))throw new Error("Invalid color string, must be a valid hex color");const t=Math.floor((e.length-1)/3),s=o(e.slice(1),t),[a,i,u,l]=s.map(n);return{r:a,g:i,b:u,a:c(l,1)}}(e);return function(e){if(!e)return;const{r:t,g:s,b:r,a:o}=e,n=Math.round(255*o);return`#${t.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${r.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`}({r:s,g:a,b:i,a:u*t})}function i(e,t){const s=e.colors||{};if(s[t])return s[t];const r=l[t];if(!r)throw new Error(`Unknown theme color key: ${t}`);return"string"==typeof r?i(e,r):function(e,t){const s=t[e.type];if(Array.isArray(s)){const[t,r,...o]=s;return t(i(e,r),...o)}return s}(e,r)}const u="#6FC3DF",l={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:u},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[a,"tab.activeForeground",.5],light:[a,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:u},"tab.activeBorderTop":{hc:u},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:u},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:u},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:u},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[a,"editor.background",.9],light:[a,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},h=new Map,d=new Map;async function p(e){if("string"==typeof e){const r=e;if(!f.includes(r))throw new b(r);if(!h.has(r)){const e=async function(e){try{return await t()}catch(t){return await s(`themes/${e}`)}}(r).then((e=>(d.set(r,e),e)));h.set(r,e)}return h.get(r)}return e}function m(e){let t=null;if("string"==typeof e){if(t=d.get(e),!t)throw new Error("Syntax highlighting error: theme not loaded")}else t=e;return function(e){if(!e)return;const t=e.settings||e.tokenColors||[],s={name:e.name||"unknown-theme",type:g(e),foreground:"",background:"",settings:t,colors:e.colors||{},colorNames:e.colorNames},r=t.find((e=>!e.scope));if(r){const{foreground:e,background:t}=(null==r?void 0:r.settings)||{},o={};e&&!s.colors["editor.foreground"]&&(o["editor.foreground"]=e),t&&!s.colors["editor.background"]&&(o["editor.background"]=t),Object.keys(o).length>0&&(s.colors=Object.assign(Object.assign({},s.colors),o)),s.foreground=e,s.background=t}r||(s.settings=[{settings:{foreground:i(s,"editor.foreground"),background:i(s,"editor.background")}},...s.settings]);if(s.background=s.background||i(s,"editor.background"),s.foreground=s.foreground||i(s,"editor.foreground"),"from-css"===e.type&&!s.colorNames){const e={};let t=0;s.settings=s.settings.map((s=>{const r=Object.assign(Object.assign({},s),{settings:Object.assign({},s.settings)}),{foreground:o,background:n}=r.settings||{};return o&&!e[o]&&(e[o]=`#${t.toString(16).padStart(6,"0")}`,t++),n&&!e[n]&&(e[n]=`#${t.toString(16).padStart(6,"0")}`,t++),o&&(r.settings.foreground=e[o]),n&&(r.settings.background=e[n]),r})),s.colorNames=e}return s}(t)}function g(e){var t;if("from-css"===e.type)return"from-css";return"light"===(e.type?e.type:(null===(t=e.name)||void 0===t?void 0:t.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const f=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class b extends Error{constructor(e){super(`Unknown theme: ${e}`),this.theme=e}}function y(e){const t=t=>"colorScheme"===t?function(e){return"from-css"===e.type?"var(--ch-0)":e.type}(e):"foreground"===t?e.foreground:"background"===t?e.background:i(e,t);return{colorScheme:t("colorScheme"),foreground:t("foreground"),background:t("background"),lighter:{inlineBackground:t("lighter.inlineBackground")},editor:{background:t("editor.background"),foreground:t("editor.foreground"),lineHighlightBackground:t("editor.lineHighlightBackground"),rangeHighlightBackground:t("editor.rangeHighlightBackground"),infoForeground:t("editor.infoForeground"),selectionBackground:t("editor.selectionBackground")},focusBorder:t("focusBorder"),tab:{activeBackground:t("tab.activeBackground"),activeForeground:t("tab.activeForeground"),inactiveBackground:t("tab.inactiveBackground"),inactiveForeground:t("tab.inactiveForeground"),border:t("tab.border"),activeBorder:t("tab.activeBorder"),activeBorderTop:t("tab.activeBorderTop")},editorGroup:{border:t("editorGroup.border")},editorGroupHeader:{tabsBackground:t("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:t("editorLineNumber.foreground")},input:{background:t("input.background"),foreground:t("input.foreground"),border:t("input.border")},icon:{foreground:t("icon.foreground")},sideBar:{background:t("sideBar.background"),foreground:t("sideBar.foreground"),border:t("sideBar.border")},list:{activeSelectionBackground:t("list.activeSelectionBackground"),activeSelectionForeground:t("list.activeSelectionForeground"),hoverBackground:t("list.hoverBackground"),hoverForeground:t("list.hoverForeground")}}}const _=["abap","actionscript-3","ada","apache","apex","apl","applescript","ara","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","cadence","cdc","clarity","clj","clojure","cmake","cmd","cobol","codeql","coffee","console","cpp","crystal","cs","csharp","css","cue","cypher","d","dart","dax","diff","docker","dockerfile","dream-maker","elixir","elm","erb","erl","erlang","f#","fish","fs","fsharp","fsl","gdresource","gdscript","gdshader","gherkin","git-commit","git-rebase","glimmer-js","glimmer-ts","glsl","gnuplot","go","graphql","groovy","hack","haml","handlebars","haskell","hbs","hcl","hjson","hlsl","hs","html","http","imba","ini","jade","java","javascript","jinja-html","jison","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kusto","latex","less","liquid","lisp","logo","lua","make","makefile","markdown","marko","matlab","md","mdx","mermaid","narrat","nextflow","nginx","nim","nix","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","polar","postcss","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","r","raku","razor","rb","reg","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","sparql","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","tasl","tcl","terminal","tex","text","toml","ts","tsx","turtle","twig","txt","typescript","v","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vyper","wasm","wenyan","wgsl","wolfram","xml","xsl","yaml","yml","zenscript","zsh","文言"],x={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",cpp:"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",cue:"source.cue",cypher:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile","dream-maker":"source.dm",elixir:"source.elixir",elm:"source.elm",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fish:"source.fish",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase","glimmer-js":"source.gjs","glimmer-ts":"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic",http:"source.http",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js","jinja-html":"text.html.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",kotlin:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",less:"source.css.less",liquid:"text.html.liquid",lisp:"source.lisp",logo:"source.logo",lua:"source.lua",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdx:"source.mdx",mermaid:"source.mermaid",narrat:"source.narrat",nextflow:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",polar:"source.polar",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",r:"source.r",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",console:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",sparql:"source.sparql",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",tasl:"source.tasl",tcl:"source.tcl",tex:"text.tex",toml:"source.toml",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",v:"source.v",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml","vue-html":"text.html.vue-html",vue:"source.vue",vyper:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wolfram:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript"},k={"source.abap":{id:"abap",path:"abap.tmLanguage.json",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",path:"actionscript-3.tmLanguage.json",embeddedScopes:[]},"source.ada":{id:"ada",path:"ada.tmLanguage.json",embeddedScopes:[]},"source.apacheconf":{id:"apache",path:"apache.tmLanguage.json",embeddedScopes:[]},"source.apex":{id:"apex",path:"apex.tmLanguage.json",embeddedScopes:[]},"source.apl":{id:"apl",path:"apl.tmLanguage.json",embeddedScopes:["source.java","source.json","source.js","source.css","text.xml","text.html.basic"]},"source.applescript":{id:"applescript",path:"applescript.tmLanguage.json",embeddedScopes:[]},"source.ara":{id:"ara",path:"ara.tmLanguage.json",embeddedScopes:[]},"source.asm.x86_64":{id:"asm",path:"asm.tmLanguage.json",embeddedScopes:[]},"source.astro":{id:"astro",path:"astro.tmLanguage.json",embeddedScopes:["source.tsx","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.ts","source.js","source.json"]},"source.awk":{id:"awk",path:"awk.tmLanguage.json",embeddedScopes:[]},"source.ballerina":{id:"ballerina",path:"ballerina.tmLanguage.json",embeddedScopes:[]},"source.batchfile":{id:"bat",path:"bat.tmLanguage.json",embeddedScopes:[]},"text.beancount":{id:"beancount",path:"beancount.tmLanguage.json",embeddedScopes:[]},"source.berry":{id:"berry",path:"berry.tmLanguage.json",embeddedScopes:[]},"text.bibtex":{id:"bibtex",path:"bibtex.tmLanguage.json",embeddedScopes:[]},"source.bicep":{id:"bicep",path:"bicep.tmLanguage.json",embeddedScopes:[]},"text.html.php.blade":{id:"blade",path:"blade.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.c":{id:"c",path:"c.tmLanguage.json",embeddedScopes:[]},"source.cadence":{id:"cadence",path:"cadence.tmLanguage.json",embeddedScopes:[]},"source.clar":{id:"clarity",path:"clarity.tmLanguage.json",embeddedScopes:[]},"source.clojure":{id:"clojure",path:"clojure.tmLanguage.json",embeddedScopes:[]},"source.cmake":{id:"cmake",path:"cmake.tmLanguage.json",embeddedScopes:[]},"source.cobol":{id:"cobol",path:"cobol.tmLanguage.json",embeddedScopes:["source.css","source.js","source.java","text.html.basic","source.sql"]},"source.ql":{id:"codeql",path:"codeql.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.coffee":{id:"coffee",path:"coffee.tmLanguage.json",embeddedScopes:["source.js"]},"source.cpp":{id:"cpp",path:"cpp.tmLanguage.json",embeddedScopes:["source.c","source.sql","source.glsl"]},"source.crystal":{id:"crystal",path:"crystal.tmLanguage.json",embeddedScopes:["source.shell","source.js","source.c","source.css","source.sql","text.html.basic"]},"source.cs":{id:"csharp",path:"csharp.tmLanguage.json",embeddedScopes:[]},"source.css":{id:"css",path:"css.tmLanguage.json",embeddedScopes:[]},"source.cue":{id:"cue",path:"cue.tmLanguage.json",embeddedScopes:[]},"source.cypher":{id:"cypher",path:"cypher.tmLanguage.json",embeddedScopes:[]},"source.d":{id:"d",path:"d.tmLanguage.json",embeddedScopes:[]},"source.dart":{id:"dart",path:"dart.tmLanguage.json",embeddedScopes:[]},"source.dax":{id:"dax",path:"dax.tmLanguage.json",embeddedScopes:[]},"source.diff":{id:"diff",path:"diff.tmLanguage.json",embeddedScopes:[]},"source.dockerfile":{id:"docker",path:"docker.tmLanguage.json",embeddedScopes:[]},"source.dm":{id:"dream-maker",path:"dream-maker.tmLanguage.json",embeddedScopes:[]},"source.elixir":{id:"elixir",path:"elixir.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.elm":{id:"elm",path:"elm.tmLanguage.json",embeddedScopes:["source.c","source.glsl"]},"text.html.erb":{id:"erb",path:"erb.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.sql","text.xml","source.css","source.js","source.ruby","text.html.basic"]},"source.erlang":{id:"erlang",path:"erlang.tmLanguage.json",embeddedScopes:[]},"source.fish":{id:"fish",path:"fish.tmLanguage.json",embeddedScopes:[]},"source.fsharp":{id:"fsharp",path:"fsharp.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css","text.html.markdown"]},"source.gdresource":{id:"gdresource",path:"gdresource.tmLanguage.json",embeddedScopes:["source.gdscript","source.gdshader"]},"source.gdscript":{id:"gdscript",path:"gdscript.tmLanguage.json",embeddedScopes:[]},"source.gdshader":{id:"gdshader",path:"gdshader.tmLanguage.json",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",path:"gherkin.tmLanguage.json",embeddedScopes:[]},"text.git-commit":{id:"git-commit",path:"git-commit.tmLanguage.json",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",path:"git-rebase.tmLanguage.json",embeddedScopes:["source.shell"]},"source.gjs":{id:"glimmer-js",path:"glimmer-js.tmLanguage.json",embeddedScopes:["source.yaml","source.css","text.html.basic","text.html.handlebars","source.js"]},"source.gts":{id:"glimmer-ts",path:"glimmer-ts.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic","text.html.handlebars","source.ts"]},"source.glsl":{id:"glsl",path:"glsl.tmLanguage.json",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",path:"gnuplot.tmLanguage.json",embeddedScopes:[]},"source.go":{id:"go",path:"go.tmLanguage.json",embeddedScopes:[]},"source.graphql":{id:"graphql",path:"graphql.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js"]},"source.groovy":{id:"groovy",path:"groovy.tmLanguage.json",embeddedScopes:[]},"source.hack":{id:"hack",path:"hack.tmLanguage.json",embeddedScopes:["source.css","source.js","source.sql","text.html.basic"]},"text.haml":{id:"haml",path:"haml.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.php","source.r","source.perl","source.makefile","source.java","source.ini","source.lua","source.shell","source.c","source.sql","text.xml","text.html.basic","source.css","text.html.markdown","source.coffee","source.sass","source.js","source.ruby"]},"text.html.handlebars":{id:"handlebars",path:"handlebars.tmLanguage.json",embeddedScopes:["source.yaml","source.js","source.css","text.html.basic"]},"source.haskell":{id:"haskell",path:"haskell.tmLanguage.json",embeddedScopes:[]},"source.hcl":{id:"hcl",path:"hcl.tmLanguage.json",embeddedScopes:[]},"source.hjson":{id:"hjson",path:"hjson.tmLanguage.json",embeddedScopes:[]},"source.hlsl":{id:"hlsl",path:"hlsl.tmLanguage.json",embeddedScopes:[]},"text.html.basic":{id:"html",path:"html.tmLanguage.json",embeddedScopes:["source.css","source.js"]},"source.http":{id:"http",path:"http.tmLanguage.json",embeddedScopes:["source.tsx","source.js.jsx","source.ts","source.js","source.java","source.graphql","text.xml","source.json","source.shell"]},"source.imba":{id:"imba",path:"imba.tmLanguage.json",embeddedScopes:[]},"source.ini":{id:"ini",path:"ini.tmLanguage.json",embeddedScopes:[]},"source.java":{id:"java",path:"java.tmLanguage.json",embeddedScopes:[]},"source.js":{id:"javascript",path:"javascript.tmLanguage.json",embeddedScopes:[]},"text.html.jinja":{id:"jinja-html",path:"jinja-html.tmLanguage.json",embeddedScopes:["source.css","source.js","text.html.basic"]},"source.jison":{id:"jison",path:"jison.tmLanguage.json",embeddedScopes:["source.js"]},"source.json":{id:"json",path:"json.tmLanguage.json",embeddedScopes:[]},"source.json5":{id:"json5",path:"json5.tmLanguage.json",embeddedScopes:[]},"source.json.comments":{id:"jsonc",path:"jsonc.tmLanguage.json",embeddedScopes:[]},"source.json.lines":{id:"jsonl",path:"jsonl.tmLanguage.json",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",path:"jsonnet.tmLanguage.json",embeddedScopes:[]},"source.jssm":{id:"jssm",path:"jssm.tmLanguage.json",embeddedScopes:[]},"source.js.jsx":{id:"jsx",path:"jsx.tmLanguage.json",embeddedScopes:[]},"source.julia":{id:"julia",path:"julia.tmLanguage.json",embeddedScopes:["source.c","source.glsl","source.sql","source.r","source.js","source.python","source.cpp"]},"source.kotlin":{id:"kotlin",path:"kotlin.tmLanguage.json",embeddedScopes:[]},"source.kusto":{id:"kusto",path:"kusto.tmLanguage.json",embeddedScopes:[]},"text.tex.latex":{id:"latex",path:"latex.tmLanguage.json",embeddedScopes:["source.glsl","source.shell","source.sql","source.cpp","source.c","source.r","source.gnuplot","source.scala","source.rust","source.yaml","source.python","source.ts","source.js","source.ruby","source.julia","source.lua","source.java","text.xml","text.html.basic","source.haskell","source.css","text.tex"]},"source.css.less":{id:"less",path:"less.tmLanguage.json",embeddedScopes:["source.css"]},"text.html.liquid":{id:"liquid",path:"liquid.tmLanguage.json",embeddedScopes:["source.js","source.json","source.css","text.html.basic"]},"source.lisp":{id:"lisp",path:"lisp.tmLanguage.json",embeddedScopes:[]},"source.logo":{id:"logo",path:"logo.tmLanguage.json",embeddedScopes:[]},"source.lua":{id:"lua",path:"lua.tmLanguage.json",embeddedScopes:["source.c"]},"source.makefile":{id:"make",path:"make.tmLanguage.json",embeddedScopes:[]},"text.html.markdown":{id:"markdown",path:"markdown.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","source.js","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","source.css"]},"text.marko":{id:"marko",path:"marko.tmLanguage.json",embeddedScopes:["source.js","source.css.scss","source.css.less","source.css"]},"source.matlab":{id:"matlab",path:"matlab.tmLanguage.json",embeddedScopes:[]},"source.mdx":{id:"mdx",path:"mdx.tmLanguage.json",embeddedScopes:["source.gnuplot","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","text.html.handlebars","source.dart","source.fsharp","source.powershell","source.perl.6","source.json.comments","text.pug","source.groovy","text.git-rebase","text.git-commit","source.batchfile","text.xml.xsl","source.asp.vb.net","source.php","source.js.jsx","source.glsl","source.ts","source.swift","text.xml","source.sql","text.shell-session","source.shell","source.css.scss","source.scala","source.rust","source.ruby","source.r","source.python","source.perl","source.objc","text.html.markdown","source.makefile","source.lua","source.css.less","source.kotlin","source.julia","source.json","source.js","source.java","source.ini","text.html.basic","source.haskell","source.graphql","source.go","source.erlang","source.elm","source.elixir","source.dockerfile","source.diff","source.css","source.cs","source.cpp","source.coffee","source.clojure","source.c","source.yaml","source.toml","source.tsx"]},"source.mermaid":{id:"mermaid",path:"mermaid.tmLanguage.json",embeddedScopes:[]},"source.narrat":{id:"narrat",path:"narrat.tmLanguage.json",embeddedScopes:[]},"source.nextflow":{id:"nextflow",path:"nextflow.tmLanguage.json",embeddedScopes:[]},"source.nginx":{id:"nginx",path:"nginx.tmLanguage.json",embeddedScopes:["source.c","source.lua"]},"source.nim":{id:"nim",path:"nim.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.stylus","source.sass","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.ts","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.css.scss","source.swift","source.objc","source.css.less","source.json.comments","source.json","text.pug","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.coffee","source.clojure","source.batchfile","source.yaml","text.xml.xsl","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.ini","source.java","text.html.markdown","source.glsl","source.css","source.js","text.xml","text.html.basic","source.c"]},"source.nix":{id:"nix",path:"nix.tmLanguage.json",embeddedScopes:[]},"source.objc":{id:"objective-c",path:"objective-c.tmLanguage.json",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",path:"objective-cpp.tmLanguage.json",embeddedScopes:[]},"source.ocaml":{id:"ocaml",path:"ocaml.tmLanguage.json",embeddedScopes:[]},"source.pascal":{id:"pascal",path:"pascal.tmLanguage.json",embeddedScopes:[]},"source.perl":{id:"perl",path:"perl.tmLanguage.json",embeddedScopes:["source.java","source.sql","source.js","source.css","text.xml","text.html.basic"]},"source.php":{id:"php",path:"php.tmLanguage.json",embeddedScopes:["source.java","source.css","source.json","source.js","source.sql","text.xml","text.html.basic"]},"source.plsql.oracle":{id:"plsql",path:"plsql.tmLanguage.json",embeddedScopes:[]},"source.polar":{id:"polar",path:"polar.tmLanguage.json",embeddedScopes:[]},"source.css.postcss":{id:"postcss",path:"postcss.tmLanguage.json",embeddedScopes:[]},"source.powerquery":{id:"powerquery",path:"powerquery.tmLanguage.json",embeddedScopes:[]},"source.powershell":{id:"powershell",path:"powershell.tmLanguage.json",embeddedScopes:[]},"source.prisma":{id:"prisma",path:"prisma.tmLanguage.json",embeddedScopes:[]},"source.prolog":{id:"prolog",path:"prolog.tmLanguage.json",embeddedScopes:[]},"source.proto":{id:"proto",path:"proto.tmLanguage.json",embeddedScopes:[]},"text.pug":{id:"pug",path:"pug.tmLanguage.json",embeddedScopes:["text.html.basic","source.coffee","source.stylus","source.css.scss","source.sass","source.css","source.js"]},"source.puppet":{id:"puppet",path:"puppet.tmLanguage.json",embeddedScopes:[]},"source.purescript":{id:"purescript",path:"purescript.tmLanguage.json",embeddedScopes:[]},"source.python":{id:"python",path:"python.tmLanguage.json",embeddedScopes:[]},"source.r":{id:"r",path:"r.tmLanguage.json",embeddedScopes:[]},"source.perl.6":{id:"raku",path:"raku.tmLanguage.json",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",path:"razor.tmLanguage.json",embeddedScopes:["source.css","source.js","source.cs","text.html.basic"]},"source.reg":{id:"reg",path:"reg.tmLanguage.json",embeddedScopes:[]},"source.rel":{id:"rel",path:"rel.tmLanguage.json",embeddedScopes:[]},"source.riscv":{id:"riscv",path:"riscv.tmLanguage.json",embeddedScopes:[]},"source.rst":{id:"rst",path:"rst.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.c","source.css","text.xml","text.html.basic","source.sql","source.glsl","source.ruby","source.cmake","source.yaml","source.shell","source.js","source.python","source.cpp"]},"source.ruby":{id:"ruby",path:"ruby.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.js","source.c","source.css","source.sql","text.xml","text.html.basic"]},"source.rust":{id:"rust",path:"rust.tmLanguage.json",embeddedScopes:[]},"source.sas":{id:"sas",path:"sas.tmLanguage.json",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",path:"sass.tmLanguage.json",embeddedScopes:[]},"source.scala":{id:"scala",path:"scala.tmLanguage.json",embeddedScopes:[]},"source.scheme":{id:"scheme",path:"scheme.tmLanguage.json",embeddedScopes:[]},"source.css.scss":{id:"scss",path:"scss.tmLanguage.json",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",path:"shaderlab.tmLanguage.json",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",path:"shellscript.tmLanguage.json",embeddedScopes:[]},"text.shell-session":{id:"shellsession",path:"shellsession.tmLanguage.json",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",path:"smalltalk.tmLanguage.json",embeddedScopes:[]},"source.solidity":{id:"solidity",path:"solidity.tmLanguage.json",embeddedScopes:[]},"source.sparql":{id:"sparql",path:"sparql.tmLanguage.json",embeddedScopes:["source.turtle"]},"source.sql":{id:"sql",path:"sql.tmLanguage.json",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",path:"ssh-config.tmLanguage.json",embeddedScopes:[]},"source.stata":{id:"stata",path:"stata.tmLanguage.json",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",path:"stylus.tmLanguage.json",embeddedScopes:[]},"source.svelte":{id:"svelte",path:"svelte.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.tsx","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.json.comments","source.json","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.clojure","source.batchfile","source.yaml","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","text.html.basic","text.html.markdown","text.pug","source.css.postcss","source.css.less","source.css.scss","source.css","source.sass","source.stylus","source.coffee","source.ts","source.js"]},"source.swift":{id:"swift",path:"swift.tmLanguage.json",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",path:"system-verilog.tmLanguage.json",embeddedScopes:[]},"source.tasl":{id:"tasl",path:"tasl.tmLanguage.json",embeddedScopes:[]},"source.tcl":{id:"tcl",path:"tcl.tmLanguage.json",embeddedScopes:[]},"text.tex":{id:"tex",path:"tex.tmLanguage.json",embeddedScopes:["source.r"]},"source.toml":{id:"toml",path:"toml.tmLanguage.json",embeddedScopes:[]},"source.tsx":{id:"tsx",path:"tsx.tmLanguage.json",embeddedScopes:[]},"source.turtle":{id:"turtle",path:"turtle.tmLanguage.json",embeddedScopes:[]},"text.html.twig":{id:"twig",path:"twig.tmLanguage.json",embeddedScopes:["source.java","source.lua","source.shell","source.c","source.json","source.sql","text.xml","text.html.basic","source.ruby","source.python","source.php","source.js","source.css"]},"source.txt":{id:"txt",path:"txt.tmLanguage.json",embeddedScopes:[]},"source.ts":{id:"typescript",path:"typescript.tmLanguage.json",embeddedScopes:[]},"source.v":{id:"v",path:"v.tmLanguage.json",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",path:"vb.tmLanguage.json",embeddedScopes:[]},"source.verilog":{id:"verilog",path:"verilog.tmLanguage.json",embeddedScopes:[]},"source.vhdl":{id:"vhdl",path:"vhdl.tmLanguage.json",embeddedScopes:[]},"source.viml":{id:"viml",path:"viml.tmLanguage.json",embeddedScopes:[]},"text.html.vue-html":{id:"vue-html",path:"vue-html.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic","source.js","source.vue"]},"source.vue":{id:"vue",path:"vue.tmLanguage.json",embeddedScopes:["source.gnuplot","source.haskell","text.tex","source.glsl","text.bibtex","text.tex.latex","source.elixir","source.erlang","text.html.handlebars","source.dart","source.fsharp","source.cs","source.shell","source.scala","source.rust","source.julia","source.python","source.powershell","source.perl.6","source.swift","source.objc","source.groovy","source.go","text.git-rebase","text.git-commit","source.dockerfile","source.diff","source.cpp","source.c","source.coffee","source.clojure","source.batchfile","text.xml.xsl","text.xml","source.asp.vb.net","source.sql","source.php","source.ruby","source.r","source.perl","source.makefile","source.lua","source.java","source.ini","source.graphql","source.toml","source.yaml","source.json5","source.json.comments","source.json","source.tsx","source.js.jsx","source.ts","source.js","source.css.less","source.css.scss","source.css","source.sass","source.stylus","text.pug","text.html.markdown","text.html.basic"]},"source.vyper":{id:"vyper",path:"vyper.tmLanguage.json",embeddedScopes:[]},"source.wat":{id:"wasm",path:"wasm.tmLanguage.json",embeddedScopes:[]},"source.wenyan":{id:"wenyan",path:"wenyan.tmLanguage.json",embeddedScopes:[]},"source.wgsl":{id:"wgsl",path:"wgsl.tmLanguage.json",embeddedScopes:[]},"source.wolfram":{id:"wolfram",path:"wolfram.tmLanguage.json",embeddedScopes:[]},"text.xml":{id:"xml",path:"xml.tmLanguage.json",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",path:"xsl.tmLanguage.json",embeddedScopes:["source.java","text.xml"]},"source.yaml":{id:"yaml",path:"yaml.tmLanguage.json",embeddedScopes:[]},"source.zenscript":{id:"zenscript",path:"zenscript.tmLanguage.json",embeddedScopes:[]}};var j={d:(e,t)=>{for(var s in t)j.o(t,s)&&!j.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},S={};j.d(S,{_X:()=>Qe,Bz:()=>He,ot:()=>ze,u:()=>De,jG:()=>A,Pn:()=>Ke});const w="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var v;function L(e,t){const s=[],r=function(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,s=t.exec(e);return{next:()=>{if(!s)return null;const r=s[0];return s=t.exec(e),r}}}(e);let o=r.next();for(;null!==o;){let e=0;if(2===o.length&&":"===o.charAt(1)){switch(o.charAt(0)){case"R":e=1;break;case"L":e=-1;break;default:console.log(`Unknown priority ${o} in scope selector`)}o=r.next()}let t=c();if(s.push({matcher:t,priority:e}),","!==o)break;o=r.next()}return s;function n(){if("-"===o){o=r.next();const e=n();return t=>!!e&&!e(t)}if("("===o){o=r.next();const e=function(){const e=[];let t=c();for(;t&&(e.push(t),"|"===o||","===o);){do{o=r.next()}while("|"===o||","===o);t=c()}return t=>e.some((e=>e(t)))}();return")"===o&&(o=r.next()),e}if(C(o)){const e=[];do{e.push(o),o=r.next()}while(C(o));return s=>t(e,s)}return null}function c(){const e=[];let t=n();for(;t;)e.push(t),t=n();return t=>e.every((e=>e(t)))}}function C(e){return!!e&&!!e.match(/[\w\.:]+/)}function A(e){"function"==typeof e.dispose&&e.dispose()}function N(e){return Array.isArray(e)?function(e){let t=[];for(let s=0,r=e.length;s<r;s++)t[s]=N(e[s]);return t}(e):"object"==typeof e?function(e){let t={};for(let s in e)t[s]=N(e[s]);return t}(e):e}function P(e,...t){return t.forEach((t=>{for(let s in t)e[s]=t[s]})),e}function R(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return 0===t?e:~t==e.length-1?R(e.substring(0,e.length-1)):e.substr(1+~t)}!function(e){e.toBinaryStr=function(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t},e.print=function(t){const s=e.getLanguageId(t),r=e.getTokenType(t),o=e.getFontStyle(t),n=e.getForeground(t),c=e.getBackground(t);console.log({languageId:s,tokenType:r,fontStyle:o,foreground:n,background:c})},e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(768&e)>>>8},e.containsBalancedBrackets=function(e){return 0!=(1024&e)},e.getFontStyle=function(e){return(30720&e)>>>11},e.getForeground=function(e){return(16744448&e)>>>15},e.getBackground=function(e){return(4278190080&e)>>>24},e.set=function(t,s,r,o,n,c,a){let i=e.getLanguageId(t),u=e.getTokenType(t),l=e.containsBalancedBrackets(t)?1:0,h=e.getFontStyle(t),d=e.getForeground(t),p=e.getBackground(t);return 0!==s&&(i=s),8!==r&&(u=r),null!==o&&(l=o?1:0),-1!==n&&(h=n),0!==c&&(d=c),0!==a&&(p=a),(i<<0|u<<8|l<<10|h<<11|d<<15|p<<24)>>>0}}(v||(v={}));let E=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class I{static hasCaptures(e){return null!==e&&(E.lastIndex=0,E.test(e))}static replaceCaptures(e,t,s){return e.replace(E,((e,r,o,n)=>{let c=s[parseInt(r||o,10)];if(!c)return e;{let e=t.substring(c.start,c.end);for(;"."===e[0];)e=e.substring(1);switch(n){case"downcase":return e.toLowerCase();case"upcase":return e.toUpperCase();default:return e}}}))}}function B(e,t){return e<t?-1:e>t?1:0}function O(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;let s=e.length,r=t.length;if(s===r){for(let r=0;r<s;r++){let s=B(e[r],t[r]);if(0!==s)return s}return 0}return s-r}function G(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function T(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}class q{constructor(e){this.fn=e,this.cache=new Map}get(e){if(this.cache.has(e))return this.cache.get(e);const t=this.fn(e);return this.cache.set(e,t),t}}const F="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};class ${constructor(e){this.scopeName=e}toKey(){return this.scopeName}}class M{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}}class W{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}}class U{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new $(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new W;for(const s of e)D(s,this.initialScopeName,this.repo,t);for(const e of t.references)if(e instanceof $){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName))continue;if(this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}}function D(e,t,s,r){const o=s.lookup(e.scopeName);if(!o){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const n=s.lookup(t);e instanceof $?H({baseGrammar:n,selfGrammar:o},r):z(e.ruleName,{baseGrammar:n,selfGrammar:o,repository:o.repository},r);const c=s.injections(e.scopeName);if(c)for(const e of c)r.add(new $(e))}function z(e,t,s){t.repository&&t.repository[e]&&Q([t.repository[e]],t,s)}function H(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Q(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Q(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Q(e,t,s){for(const r of e){if(s.visitedRule.has(r))continue;s.visitedRule.add(r);const e=r.repository?P({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&Q(r.patterns,{...t,repository:e},s);const o=r.include;if(!o)continue;const n=Z(o);switch(n.kind){case 0:H({...t,selfGrammar:t.baseGrammar},s);break;case 1:H(t,s);break;case 2:z(n.ruleName,{...t,repository:e},s);break;case 3:case 4:const r=n.scopeName===t.selfGrammar.scopeName?t.selfGrammar:n.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(r){const o={baseGrammar:t.baseGrammar,selfGrammar:r,repository:e};4===n.kind?z(n.ruleName,o,s):H(o,s)}else 4===n.kind?s.add(new M(n.scopeName,n.ruleName)):s.add(new $(n.scopeName))}}}class K{constructor(){this.kind=0}}class V{constructor(){this.kind=1}}class Y{constructor(e){this.ruleName=e,this.kind=2}}class X{constructor(e){this.scopeName=e,this.kind=3}}class J{constructor(e,t){this.scopeName=e,this.ruleName=t,this.kind=4}}function Z(e){if("$base"===e)return new K;if("$self"===e)return new V;const t=e.indexOf("#");if(-1===t)return new X(e);if(0===t)return new Y(e.substring(1));{const s=e.substring(0,t),r=e.substring(t+1);return new J(s,r)}}const ee=/\\(\d+)/,te=/\\(\d+)/g;class se{constructor(e,t,s,r){this.$location=e,this.id=t,this._name=s||null,this._nameIsCapturing=I.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=I.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${R(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?I.replaceCaptures(this._name,e,t):this._name}getContentName(e,t){return this._contentNameIsCapturing&&null!==this._contentName?I.replaceCaptures(this._contentName,e,t):this._contentName}}class re extends se{constructor(e,t,s,r,o){super(e,t,s,r),this.retokenizeCapturedWithRuleId=o}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,s,r){throw new Error("Not supported!")}}class oe extends se{constructor(e,t,s,r,o){super(e,t,s,null),this._match=new ue(r,this.id),this.captures=o,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e).compileAG(e,s,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new le,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class ne extends se{constructor(e,t,s,r,o){super(e,t,s,r),this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const s of this.patterns)e.getRule(s).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e).compileAG(e,s,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new le,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class ce extends se{constructor(e,t,s,r,o,n,c,a,i,u){super(e,t,s,r),this._begin=new ue(o,this.id),this.beginCaptures=n,this._end=new ue(c||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=a,this.applyEndPatternLast=i||!1,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e,t).compileAG(e,s,r)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new le;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}}class ae extends se{constructor(e,t,s,r,o,n,c,a,i){super(e,t,s,r),this._begin=new ue(o,this.id),this.beginCaptures=n,this.whileCaptures=a,this._while=new ue(c,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e).compileAG(e,s,r)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new le;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,s,r){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,s,r)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new le,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}}class ie{static createCaptureRule(e,t,s,r,o){return e.registerRule((e=>new re(t,e,s,r,o)))}static getCompiledRuleId(e,t,s){return e.id||t.registerRule((r=>{if(e.id=r,e.match)return new oe(e.$vscodeTextmateLocation,e.id,e.name,e.match,ie._compileCaptures(e.captures,t,s));if(void 0===e.begin){e.repository&&(s=P({},s,e.repository));let r=e.patterns;return void 0===r&&e.include&&(r=[{include:e.include}]),new ne(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,ie._compilePatterns(r,t,s))}return e.while?new ae(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,ie._compileCaptures(e.beginCaptures||e.captures,t,s),e.while,ie._compileCaptures(e.whileCaptures||e.captures,t,s),ie._compilePatterns(e.patterns,t,s)):new ce(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,ie._compileCaptures(e.beginCaptures||e.captures,t,s),e.end,ie._compileCaptures(e.endCaptures||e.captures,t,s),e.applyEndPatternLast,ie._compilePatterns(e.patterns,t,s))})),e.id}static _compileCaptures(e,t,s){let r=[];if(e){let o=0;for(const t in e){if("$vscodeTextmateLocation"===t)continue;const e=parseInt(t,10);e>o&&(o=e)}for(let e=0;e<=o;e++)r[e]=null;for(const o in e){if("$vscodeTextmateLocation"===o)continue;const n=parseInt(o,10);let c=0;e[o].patterns&&(c=ie.getCompiledRuleId(e[o],t,s)),r[n]=ie.createCaptureRule(t,e[o].$vscodeTextmateLocation,e[o].name,e[o].contentName,c)}}return r}static _compilePatterns(e,t,s){let r=[];if(e)for(let o=0,n=e.length;o<n;o++){const n=e[o];let c=-1;if(n.include){const e=Z(n.include);switch(e.kind){case 0:case 1:c=ie.getCompiledRuleId(s[n.include],t,s);break;case 2:let r=s[e.ruleName];r&&(c=ie.getCompiledRuleId(r,t,s));break;case 3:case 4:const o=e.scopeName,a=4===e.kind?e.ruleName:null,i=t.getExternalGrammar(o,s);if(i)if(a){let e=i.repository[a];e&&(c=ie.getCompiledRuleId(e,t,i.repository))}else c=ie.getCompiledRuleId(i.repository.$self,t,i.repository)}}else c=ie.getCompiledRuleId(n,t,s);if(-1!==c){const e=t.getRule(c);let s=!1;if((e instanceof ne||e instanceof ce||e instanceof ae)&&e.hasMissingPatterns&&0===e.patterns.length&&(s=!0),s)continue;r.push(c)}}return{patterns:r,hasMissingPatterns:(e?e.length:0)!==r.length}}}class ue{constructor(e,t){if(e){const t=e.length;let s=0,r=[],o=!1;for(let n=0;n<t;n++)if("\\"===e.charAt(n)&&n+1<t){const t=e.charAt(n+1);"z"===t?(r.push(e.substring(s,n)),r.push("$(?!\\n)(?<!\\n)"),s=n+2):"A"!==t&&"G"!==t||(o=!0),n++}this.hasAnchor=o,0===s?this.source=e:(r.push(e.substring(s,t)),this.source=r.join(""))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,this.hasBackReferences=ee.test(this.source)}clone(){return new ue(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,t){let s=t.map((t=>e.substring(t.start,t.end)));return te.lastIndex=0,this.source.replace(te,((e,t)=>T(s[parseInt(t,10)]||"")))}_buildAnchorCache(){let e,t,s,r,o=[],n=[],c=[],a=[];for(e=0,t=this.source.length;e<t;e++)s=this.source.charAt(e),o[e]=s,n[e]=s,c[e]=s,a[e]=s,"\\"===s&&e+1<t&&(r=this.source.charAt(e+1),"A"===r?(o[e+1]="￿",n[e+1]="￿",c[e+1]="A",a[e+1]="A"):"G"===r?(o[e+1]="￿",n[e+1]="G",c[e+1]="￿",a[e+1]="G"):(o[e+1]=r,n[e+1]=r,c[e+1]=r,a[e+1]=r),e++);return{A0_G0:o.join(""),A0_G1:n.join(""),A1_G0:c.join(""),A1_G1:a.join("")}}resolveAnchors(e,t){return this.hasAnchor&&this._anchorCache?e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source}}class le{constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map((e=>e.source));this._cached=new he(e,t,this._items.map((e=>e.ruleId)))}return this._cached}compileAG(e,t,s){return this._hasAnchors?t?s?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G0):s?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,s){let r=this._items.map((e=>e.resolveAnchors(t,s)));return new he(e,r,this._items.map((e=>e.ruleId)))}}class he{constructor(e,t,s){this.regExps=t,this.rules=s,this.scanner=e.createOnigScanner(t)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const e=[];for(let t=0,s=this.rules.length;t<s;t++)e.push(" - "+this.rules[t]+": "+this.regExps[t]);return e.join("\n")}findNextMatchSync(e,t,s){const r=this.scanner.findNextMatchSync(e,t,s);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}}class de{constructor(e,t,s){this._colorMap=e,this._defaults=t,this._root=s,this._cachedMatchRoot=new q((e=>this._root.match(e)))}static createFromRawTheme(e,t){return this.createFromParsedTheme(function(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,s=[],r=0;for(let e=0,o=t.length;e<o;e++){let o,n=t[e];if(!n.settings)continue;if("string"==typeof n.scope){let e=n.scope;e=e.replace(/^[,]+/,""),e=e.replace(/[,]+$/,""),o=e.split(",")}else o=Array.isArray(n.scope)?n.scope:[""];let c=-1;if("string"==typeof n.settings.fontStyle){c=0;let e=n.settings.fontStyle.split(" ");for(let t=0,s=e.length;t<s;t++)switch(e[t]){case"italic":c|=1;break;case"bold":c|=2;break;case"underline":c|=4;break;case"strikethrough":c|=8}}let a=null;"string"==typeof n.settings.foreground&&G(n.settings.foreground)&&(a=n.settings.foreground);let i=null;"string"==typeof n.settings.background&&G(n.settings.background)&&(i=n.settings.background);for(let t=0,n=o.length;t<n;t++){let n=o[t].trim().split(" "),u=n[n.length-1],l=null;n.length>1&&(l=n.slice(0,n.length-1),l.reverse()),s[r++]=new fe(u,l,e,c,a,i)}}return s}(e),t)}static createFromParsedTheme(e,t){return function(e,t){e.sort(((e,t)=>{let s=B(e.scope,t.scope);return 0!==s?s:(s=O(e.parentScopes,t.parentScopes),0!==s?s:e.index-t.index)}));let s=0,r="#000000",o="#ffffff";for(;e.length>=1&&""===e[0].scope;){let t=e.shift();-1!==t.fontStyle&&(s=t.fontStyle),null!==t.foreground&&(r=t.foreground),null!==t.background&&(o=t.background)}let n=new be(t),c=new ge(s,n.getId(r),n.getId(o)),a=new _e(new ye(0,null,-1,0,0),[]);for(let t=0,s=e.length;t<s;t++){let s=e[t];a.insert(0,s.scope,s.parentScopes,s.fontStyle,n.getId(s.foreground),n.getId(s.background))}return new de(n,c,a)}(e,t)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(null===e)return this._defaults;const t=e.scopeName,s=this._cachedMatchRoot.get(t).find((t=>function(e,t){if(null===t)return!0;let s=0,r=t[s];for(;e;){if(me(e.scopeName,r)){if(s++,s===t.length)return!0;r=t[s]}e=e.parent}return!1}(e.parent,t.parentScopes)));return s?new ge(s.fontStyle,s.foreground,s.background):null}}class pe{constructor(e,t){this.parent=e,this.scopeName=t}static push(e,t){for(const s of t)e=new pe(e,s);return e}static from(...e){let t=null;for(let s=0;s<e.length;s++)t=new pe(t,e[s]);return t}push(e){return new pe(this,e)}getSegments(){let e=this;const t=[];for(;e;)t.push(e.scopeName),e=e.parent;return t.reverse(),t}toString(){return this.getSegments().join(" ")}extends(e){return this===e||null!==this.parent&&this.parent.extends(e)}getExtensionIfDefined(e){const t=[];let s=this;for(;s&&s!==e;)t.push(s.scopeName),s=s.parent;return s===e?t.reverse():void 0}}function me(e,t){return t===e||e.startsWith(t)&&"."===e[t.length]}class ge{constructor(e,t,s){this.fontStyle=e,this.foregroundId=t,this.backgroundId=s}}class fe{constructor(e,t,s,r,o,n){this.scope=e,this.parentScopes=t,this.index=s,this.fontStyle=r,this.foreground=o,this.background=n}}class be{constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,s=e.length;t<s;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(null===e)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}}class ye{constructor(e,t,s,r,o){this.scopeDepth=e,this.parentScopes=t,this.fontStyle=s,this.foreground=r,this.background=o}clone(){return new ye(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let t=[];for(let s=0,r=e.length;s<r;s++)t[s]=e[s].clone();return t}acceptOverwrite(e,t,s,r){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==s&&(this.foreground=s),0!==r&&(this.background=r)}}class _e{constructor(e,t=[],s={}){this._mainRule=e,this._children=s,this._rulesWithParentScopes=t}static _sortBySpecificity(e){return 1===e.length||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const s=e.parentScopes,r=t.parentScopes;let o=null===s?0:s.length,n=null===r?0:r.length;if(o===n)for(let e=0;e<o;e++){const t=s[e].length,o=r[e].length;if(t!==o)return o-t}return n-o}return t.scopeDepth-e.scopeDepth}match(e){if(""===e)return _e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));let t,s,r=e.indexOf(".");return-1===r?(t=e,s=""):(t=e.substring(0,r),s=e.substring(r+1)),this._children.hasOwnProperty(t)?this._children[t].match(s):_e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))}insert(e,t,s,r,o,n){if(""===t)return void this._doInsertHere(e,s,r,o,n);let c,a,i,u=t.indexOf(".");-1===u?(c=t,a=""):(c=t.substring(0,u),a=t.substring(u+1)),this._children.hasOwnProperty(c)?i=this._children[c]:(i=new _e(this._mainRule.clone(),ye.cloneArr(this._rulesWithParentScopes)),this._children[c]=i),i.insert(e+1,a,s,r,o,n)}_doInsertHere(e,t,s,r,o){if(null!==t){for(let n=0,c=this._rulesWithParentScopes.length;n<c;n++){let c=this._rulesWithParentScopes[n];if(0===O(c.parentScopes,t))return void c.acceptOverwrite(e,s,r,o)}-1===s&&(s=this._mainRule.fontStyle),0===r&&(r=this._mainRule.foreground),0===o&&(o=this._mainRule.background),this._rulesWithParentScopes.push(new ye(e,t,s,r,o))}else this._mainRule.acceptOverwrite(e,s,r,o)}}class xe{constructor(e,t){this.languageId=e,this.tokenType=t}}class ke{constructor(e,t){this._getBasicScopeAttributes=new q((e=>{const t=this._scopeToLanguage(e),s=this._toStandardTokenType(e);return new xe(t,s)})),this._defaultAttributes=new xe(e,8),this._embeddedLanguagesMatcher=new je(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return null===e?ke._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(ke.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}ke._NULL_SCOPE_METADATA=new xe(0,0),ke.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class je{constructor(e){if(0===e.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map((([e,t])=>T(e)));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);return t?this.values.get(t[1]):void 0}}class Se{constructor(e,t){this.stack=e,this.stoppedEarly=t}}function we(e,t,s,r,o,n,c,a){const i=t.content.length;let u=!1,l=-1;if(c){const c=function(e,t,s,r,o,n){let c=o.beginRuleCapturedEOL?0:-1;const a=[];for(let t=o;t;t=t.pop()){const s=t.getRule(e);s instanceof ae&&a.push({rule:s,stack:t})}for(let i=a.pop();i;i=a.pop()){const{ruleScanner:a,findOptions:u}=Le(i.rule,e,i.stack.endRule,s,r===c),l=a.findNextMatchSync(t,r,u);if(w&&(console.log(" scanning for while rule"),console.log(a.toString())),!l){w&&console.log(" popping "+i.rule.debugName+" - "+i.rule.debugWhileRegExp),o=i.stack.pop();break}if(-2!==l.ruleId){o=i.stack.pop();break}l.captureIndices&&l.captureIndices.length&&(n.produce(i.stack,l.captureIndices[0].start),Ce(e,t,s,i.stack,n,i.rule.whileCaptures,l.captureIndices),n.produce(i.stack,l.captureIndices[0].end),c=l.captureIndices[0].end,l.captureIndices[0].end>r&&(r=l.captureIndices[0].end,s=!1))}return{stack:o,linePos:r,anchorPosition:c,isFirstLine:s}}(e,t,s,r,o,n);o=c.stack,r=c.linePos,s=c.isFirstLine,l=c.anchorPosition}const h=Date.now();for(;!u;){if(0!==a&&Date.now()-h>a)return new Se(o,!0);d()}return new Se(o,!1);function d(){w&&(console.log(""),console.log(`@@scanNext ${r}: |${t.content.substr(r).replace(/\n$/,"\\n")}|`));const c=function(e,t,s,r,o,n){const c=function(e,t,s,r,o,n){const c=o.getRule(e),{ruleScanner:a,findOptions:i}=ve(c,e,o.endRule,s,r===n);let u=0;w&&(u=F());const l=a.findNextMatchSync(t,r,i);if(w){const e=F()-u;e>5&&console.warn(`Rule ${c.debugName} (${c.id}) matching took ${e} against '${t}'`),console.log(` scanning for (linePos: ${r}, anchorPosition: ${n})`),console.log(a.toString()),l&&console.log(`matched rule id: ${l.ruleId} from ${l.captureIndices[0].start} to ${l.captureIndices[0].end}`)}return l?{captureIndices:l.captureIndices,matchedRuleId:l.ruleId}:null}(e,t,s,r,o,n),a=e.getInjections();if(0===a.length)return c;const i=function(e,t,s,r,o,n,c){let a,i=Number.MAX_VALUE,u=null,l=0;const h=n.contentNameScopesList.getScopeNames();for(let n=0,d=e.length;n<d;n++){const d=e[n];if(!d.matcher(h))continue;const p=t.getRule(d.ruleId),{ruleScanner:m,findOptions:g}=ve(p,t,null,r,o===c),f=m.findNextMatchSync(s,o,g);if(!f)continue;w&&(console.log(` matched injection: ${d.debugSelector}`),console.log(m.toString()));const b=f.captureIndices[0].start;if(!(b>=i)&&(i=b,u=f.captureIndices,a=f.ruleId,l=d.priority,i===o))break}return u?{priorityMatch:-1===l,captureIndices:u,matchedRuleId:a}:null}(a,e,t,s,r,o,n);if(!i)return c;if(!c)return i;const u=c.captureIndices[0].start,l=i.captureIndices[0].start;return l<u||i.priorityMatch&&l===u?i:c}(e,t,s,r,o,l);if(!c)return w&&console.log(" no more matches."),n.produce(o,i),void(u=!0);const a=c.captureIndices,h=c.matchedRuleId,d=!!(a&&a.length>0)&&a[0].end>r;if(-1===h){const c=o.getRule(e);w&&console.log(" popping "+c.debugName+" - "+c.debugEndRegExp),n.produce(o,a[0].start),o=o.withContentNameScopesList(o.nameScopesList),Ce(e,t,s,o,n,c.endCaptures,a),n.produce(o,a[0].end);const h=o;if(o=o.parent,l=h.getAnchorPos(),!d&&h.getEnterPos()===r)return w&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),o=h,n.produce(o,i),void(u=!0)}else{const c=e.getRule(h);n.produce(o,a[0].start);const p=o,m=c.getName(t.content,a),g=o.contentNameScopesList.pushAttributed(m,e);if(o=o.push(h,r,l,a[0].end===i,null,g,g),c instanceof ce){const r=c;w&&console.log(" pushing "+r.debugName+" - "+r.debugBeginRegExp),Ce(e,t,s,o,n,r.beginCaptures,a),n.produce(o,a[0].end),l=a[0].end;const h=r.getContentName(t.content,a),m=g.pushAttributed(h,e);if(o=o.withContentNameScopesList(m),r.endHasBackReferences&&(o=o.withEndRule(r.getEndWithResolvedBackReferences(t.content,a))),!d&&p.hasSameRuleAs(o))return w&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),o=o.pop(),n.produce(o,i),void(u=!0)}else if(c instanceof ae){const r=c;w&&console.log(" pushing "+r.debugName),Ce(e,t,s,o,n,r.beginCaptures,a),n.produce(o,a[0].end),l=a[0].end;const h=r.getContentName(t.content,a),m=g.pushAttributed(h,e);if(o=o.withContentNameScopesList(m),r.whileHasBackReferences&&(o=o.withEndRule(r.getWhileWithResolvedBackReferences(t.content,a))),!d&&p.hasSameRuleAs(o))return w&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),o=o.pop(),n.produce(o,i),void(u=!0)}else{const r=c;if(w&&console.log(" matched "+r.debugName+" - "+r.debugMatchRegExp),Ce(e,t,s,o,n,r.captures,a),n.produce(o,a[0].end),o=o.pop(),!d)return w&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),o=o.safePop(),n.produce(o,i),void(u=!0)}}a[0].end>r&&(r=a[0].end,s=!1)}}function ve(e,t,s,r,o){return{ruleScanner:e.compileAG(t,s,r,o),findOptions:0}}function Le(e,t,s,r,o){return{ruleScanner:e.compileWhileAG(t,s,r,o),findOptions:0}}function Ce(e,t,s,r,o,n,c){if(0===n.length)return;const a=t.content,i=Math.min(n.length,c.length),u=[],l=c[0].end;for(let t=0;t<i;t++){const i=n[t];if(null===i)continue;const h=c[t];if(0===h.length)continue;if(h.start>l)break;for(;u.length>0&&u[u.length-1].endPos<=h.start;)o.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop();if(u.length>0?o.produceFromScopes(u[u.length-1].scopes,h.start):o.produce(r,h.start),i.retokenizeCapturedWithRuleId){const t=i.getName(a,c),n=r.contentNameScopesList.pushAttributed(t,e),u=i.getContentName(a,c),l=n.pushAttributed(u,e),d=r.push(i.retokenizeCapturedWithRuleId,h.start,-1,!1,null,n,l),p=e.createOnigString(a.substring(0,h.end));we(e,p,s&&0===h.start,h.start,d,o,!1,0),A(p);continue}const d=i.getName(a,c);if(null!==d){const t=(u.length>0?u[u.length-1].scopes:r.contentNameScopesList).pushAttributed(d,e);u.push(new Ae(t,h.end))}}for(;u.length>0;)o.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop()}class Ae{constructor(e,t){this.scopes=e,this.endPos=t}}function Ne(e,t,s,r,o){const n=L(t,Pe),c=ie.getCompiledRuleId(s,r,o.repository);for(const s of n)e.push({debugSelector:t,matcher:s.matcher,ruleId:c,grammar:o,priority:s.priority})}function Pe(e,t){if(t.length<e.length)return!1;let s=0;return e.every((e=>{for(let r=s;r<t.length;r++)if(Re(t[r],e))return s=r+1,!0;return!1}))}function Re(e,t){if(!e)return!1;if(e===t)return!0;const s=t.length;return e.length>s&&e.substr(0,s)===t&&"."===e[s]}class Ee{constructor(e,t,s,r,o,n,c,a){if(this._rootScopeName=e,this.balancedBracketSelectors=n,this._onigLib=a,this._basicScopeAttributesProvider=new ke(s,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=c,this._grammar=Ie(t,null),this._injections=null,this._tokenTypeMatchers=[],o)for(const e of Object.keys(o)){const t=L(e,Pe);for(const s of t)this._tokenTypeMatchers.push({matcher:s.matcher,type:o[e]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e=[],t=this._rootScopeName,s=(e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e))(t);if(s){const r=s.injections;if(r)for(let t in r)Ne(e,t,r[t],this,s);const o=this._grammarRepository.injections(t);o&&o.forEach((t=>{const s=this.getExternalGrammar(t);if(s){const t=s.injectionSelector;t&&Ne(e,t,s,this,s)}}))}return e.sort(((e,t)=>e.priority-t.priority)),e}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),w&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const e of this._injections)console.log(` - ${e.debugSelector}`)}return this._injections}registerRule(e){const t=++this._lastRuleId,s=e(t);return this._ruleId2desc[t]=s,s}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const s=this._grammarRepository.lookup(e);if(s)return this._includedGrammars[e]=Ie(s,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,s=0){const r=this._tokenize(e,t,!1,s);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,s=0){const r=this._tokenize(e,t,!0,s);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,s,r){let o;if(-1===this._rootId&&(this._rootId=ie.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),t&&t!==Oe.NULL)o=!1,t.reset();else{o=!0;const e=this._basicScopeAttributesProvider.getDefaultAttributes(),s=this.themeProvider.getDefaults(),r=v.set(0,e.languageId,e.tokenType,null,s.fontStyle,s.foregroundId,s.backgroundId),n=this.getRule(this._rootId).getName(null,null);let c;c=n?Be.createRootAndLookUpScopeName(n,r,this):Be.createRoot("unknown",r),t=new Oe(null,this._rootId,-1,-1,!1,null,c,c)}e+="\n";const n=this.createOnigString(e),c=n.content.length,a=new Te(s,e,this._tokenTypeMatchers,this.balancedBracketSelectors),i=we(this,n,o,0,t,a,!0,r);return A(n),{lineLength:c,lineTokens:a,ruleStack:i.stack,stoppedEarly:i.stoppedEarly}}}function Ie(e,t){return(e=N(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}class Be{constructor(e,t,s){this.parent=e,this.scopePath=t,this.tokenAttributes=s}static fromExtension(e,t){let s=e,r=e?.scopePath??null;for(const e of t)r=pe.push(r,e.scopeNames),s=new Be(s,r,e.encodedTokenAttributes);return s}static createRoot(e,t){return new Be(null,new pe(null,e),t)}static createRootAndLookUpScopeName(e,t,s){const r=s.getMetadataForScope(e),o=new pe(null,e),n=s.themeProvider.themeMatch(o),c=Be.mergeAttributes(t,r,n);return new Be(null,o,c)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return Be.equals(this,e)}static equals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}}static mergeAttributes(e,t,s){let r=-1,o=0,n=0;return null!==s&&(r=s.fontStyle,o=s.foregroundId,n=s.backgroundId),v.set(e,t.languageId,t.tokenType,null,r,o,n)}pushAttributed(e,t){if(null===e)return this;if(-1===e.indexOf(" "))return Be._pushAttributed(this,e,t);const s=e.split(/ /g);let r=this;for(const e of s)r=Be._pushAttributed(r,e,t);return r}static _pushAttributed(e,t,s){const r=s.getMetadataForScope(t),o=e.scopePath.push(t),n=s.themeProvider.themeMatch(o),c=Be.mergeAttributes(e.tokenAttributes,r,n);return new Be(e,o,c)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){const t=[];let s=this;for(;s&&s!==e;)t.push({encodedTokenAttributes:s.tokenAttributes,scopeNames:s.scopePath.getExtensionIfDefined(s.parent?.scopePath??null)}),s=s.parent;return s===e?t.reverse():void 0}}class Oe{constructor(e,t,s,r,o,n,c,a){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=o,this.endRule=n,this.nameScopesList=c,this.contentNameScopesList=a,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=s,this._anchorPos=r}equals(e){return null!==e&&Oe._equals(this,e)}static _equals(e,t){return e===t||!!this._structuralEquals(e,t)&&Be.equals(e.contentNameScopesList,t.contentNameScopesList)}static _structuralEquals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){Oe._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,s,r,o,n,c){return new Oe(this,e,t,s,r,o,n,c)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new Oe(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(e,t){const s=Be.fromExtension(e?.nameScopesList??null,t.nameScopesList);return new Oe(e,t.ruleId,t.enterPos??-1,t.anchorPos??-1,t.beginRuleCapturedEOL,t.endRule,s,Be.fromExtension(s,t.contentNameScopesList))}}Oe.NULL=new Oe(null,0,0,0,!1,null,null,null);class Ge{constructor(e,t){this.allowAny=!1,this.balancedBracketScopes=e.flatMap((e=>"*"===e?(this.allowAny=!0,[]):L(e,Pe).map((e=>e.matcher)))),this.unbalancedBracketScopes=t.flatMap((e=>L(e,Pe).map((e=>e.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}}class Te{constructor(e,t,s,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=s,this._lineText=w?t:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let s=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const t=e?.getScopeNames()??[];for(const e of this._tokenTypeOverrides)e.matcher(t)&&(s=v.set(s,0,e.type,null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(s=v.set(s,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s)return void(this._lastTokenEndIndex=t);if(w){const s=e?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e<s.length;e++)console.log(" * "+s[e])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(s),void(this._lastTokenEndIndex=t)}const s=e?.getScopeNames()??[];if(w){console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e<s.length;e++)console.log(" * "+s[e])}this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:s}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const s=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e<t;e++)s[e]=this._binaryTokens[e];return s}}function qe(e,t,s){const r=e.length;let o=0,n=1,c=0;function a(t){if(null===s)o+=t;else for(;t>0;)10===e.charCodeAt(o)?(o++,n++,c=0):(o++,c++),t--}function i(e){null===s?o=e:a(e-o)}function u(){for(;o<r;){let t=e.charCodeAt(o);if(32!==t&&9!==t&&13!==t&&10!==t)break;a(1)}}function l(t){return e.substr(o,t.length)===t&&(a(t.length),!0)}function h(t){let s=e.indexOf(t,o);i(-1!==s?s+t.length:r)}function d(t){let s=e.indexOf(t,o);if(-1!==s){let r=e.substring(o,s);return i(s+t.length),r}{let t=e.substr(o);return i(r),t}}r>0&&65279===e.charCodeAt(0)&&(o=1);let p=0,m=null,g=[],f=[],b=null;function y(e,t){g.push(p),f.push(m),p=e,m=t}function _(){if(0===g.length)return x("illegal state stack");p=g.pop(),m=f.pop()}function x(t){throw new Error("Near offset "+o+": "+t+" ~~~"+e.substr(o,50)+"~~~")}const k=function(){if(null===b)return x("missing <key>");let e={};null!==s&&(e[s]={filename:t,line:n,char:c}),m[b]=e,b=null,y(1,e)},j=function(){if(null===b)return x("missing <key>");let e=[];m[b]=e,b=null,y(2,e)},S=function(){let e={};null!==s&&(e[s]={filename:t,line:n,char:c}),m.push(e),y(1,e)},w=function(){let e=[];m.push(e),y(2,e)};function v(){if(1!==p)return x("unexpected </dict>");_()}function L(){return 1===p||2!==p?x("unexpected </array>"):void _()}function C(e){if(1===p){if(null===b)return x("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function A(e){if(isNaN(e))return x("cannot parse float");if(1===p){if(null===b)return x("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function N(e){if(isNaN(e))return x("cannot parse integer");if(1===p){if(null===b)return x("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function P(e){if(1===p){if(null===b)return x("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function R(e){if(1===p){if(null===b)return x("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function E(e){if(1===p){if(null===b)return x("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function I(){let e=d(">"),t=!1;return 47===e.charCodeAt(e.length-1)&&(t=!0,e=e.substring(0,e.length-1)),{name:e.trim(),isClosed:t}}function B(e){if(e.isClosed)return"";let t=d("</");return h(">"),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;o<r&&(u(),!(o>=r));){const i=e.charCodeAt(o);if(a(1),60!==i)return x("expected <");if(o>=r)return x("unexpected end of input");const d=e.charCodeAt(o);if(63===d){a(1),h("?>");continue}if(33===d){if(a(1),l("--")){h("--\x3e");continue}h(">");continue}if(47===d){if(a(1),u(),l("plist")){h(">");continue}if(l("dict")){h(">"),v();continue}if(l("array")){h(">"),L();continue}return x("unexpected closed tag")}let g=I();switch(g.name){case"dict":1===p?k():2===p?S():(m={},null!==s&&(m[s]={filename:t,line:n,char:c}),y(1,m)),g.isClosed&&v();continue;case"array":1===p?j():2===p?w():(m=[],y(2,m)),g.isClosed&&L();continue;case"key":O=B(g),1!==p?x("unexpected <key>"):null!==b?x("too many <key>"):b=O;continue;case"string":C(B(g));continue;case"real":A(parseFloat(B(g)));continue;case"integer":N(parseInt(B(g),10));continue;case"date":P(new Date(B(g)));continue;case"data":R(B(g));continue;case"true":B(g),E(!0);continue;case"false":B(g),E(!1);continue}if(!/^plist/.test(g.name))return x("unexpected opened tag "+g.name)}var O;return m}function Fe(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}class $e{constructor(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0}}class Me{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(e){return{filename:e,line:this.line,char:this.char}}}function We(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;let s,r=e.source,o=e.pos,n=e.len,c=e.line,a=e.char;for(;;){if(o>=n)return!1;if(s=r.charCodeAt(o),32!==s&&9!==s&&13!==s){if(10!==s)break;o++,c++,a=0}else o++,a++}if(t.offset=o,t.line=c,t.char=a,34===s){for(t.type=1,o++,a++;;){if(o>=n)return!1;if(s=r.charCodeAt(o),o++,a++,92!==s){if(34===s)break}else o++,a++}t.value=r.substring(t.offset+1,o-1).replace(/\\u([0-9A-Fa-f]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))).replace(/\\(.)/g,((t,s)=>{switch(s){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:Fe(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===s)t.type=2,o++,a++;else if(123===s)t.type=3,o++,a++;else if(93===s)t.type=4,o++,a++;else if(125===s)t.type=5,o++,a++;else if(58===s)t.type=6,o++,a++;else if(44===s)t.type=7,o++,a++;else if(110===s){if(t.type=8,o++,a++,s=r.charCodeAt(o),117!==s)return!1;if(o++,a++,s=r.charCodeAt(o),108!==s)return!1;if(o++,a++,s=r.charCodeAt(o),108!==s)return!1;o++,a++}else if(116===s){if(t.type=9,o++,a++,s=r.charCodeAt(o),114!==s)return!1;if(o++,a++,s=r.charCodeAt(o),117!==s)return!1;if(o++,a++,s=r.charCodeAt(o),101!==s)return!1;o++,a++}else if(102===s){if(t.type=10,o++,a++,s=r.charCodeAt(o),97!==s)return!1;if(o++,a++,s=r.charCodeAt(o),108!==s)return!1;if(o++,a++,s=r.charCodeAt(o),115!==s)return!1;if(o++,a++,s=r.charCodeAt(o),101!==s)return!1;o++,a++}else for(t.type=11;;){if(o>=n)return!1;if(s=r.charCodeAt(o),!(46===s||s>=48&&s<=57||101===s||69===s||45===s||43===s))break;o++,a++}return t.len=o-t.offset,null===t.value&&(t.value=r.substr(t.offset,t.len)),e.pos=o,e.line=c,e.char=a,!0}class Ue{constructor(e,t){this._onigLibPromise=t,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=e}dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}async grammarForScopeName(e,t,s,r,o){if(!this._grammars.has(e)){let n=this._rawGrammars.get(e);if(!n)return null;this._grammars.set(e,function(e,t,s,r,o,n,c,a){return new Ee(e,t,s,r,o,n,c,a)}(e,n,t,s,r,o,this,await this._onigLibPromise))}return this._grammars.get(e)}}function De(e,t){let s=0;const r=[];let o=e,n=t;for(;o!==n;)o&&(!n||o.depth>=n.depth)?(s++,o=o.parent):(r.push(n.toStateStackFrame()),n=n.parent);return{pops:s,newFrames:r.reverse()}}function ze(e,t){let s=e;for(let e=0;e<t.pops;e++)s=s.parent;for(const e of t.newFrames)s=Oe.pushFrame(s,e);return s}class He{constructor(e){this._options=e,this._syncRegistry=new Ue(de.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(de.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,s){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:s})}loadGrammarWithConfiguration(e,t,s){return this._loadGrammar(e,t,s.embeddedLanguages,s.tokenTypes,new Ge(s.balancedBracketSelectors||[],s.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}async _loadGrammar(e,t,s,r,o){const n=new U(this._syncRegistry,e);for(;n.Q.length>0;)await Promise.all(n.Q.map((e=>this._loadSingleGrammar(e.scopeName)))),n.processQueue();return this._grammarForScopeName(e,t,s,r,o)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const s="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,s)}}async addGrammar(e,t=[],s=0,r=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,s,r)}_grammarForScopeName(e,t=0,s=null,r=null,o=null){return this._syncRegistry.grammarForScopeName(e,t,s,r,o)}}const Qe=Oe.NULL,Ke=function(e,t=null){return null!==t&&/\.json$/.test(t)?(s=e,w?function(e,t,s){let r=new $e(e),o=new Me,n=0,c=null,a=[],i=[];function u(){a.push(n),i.push(c)}function l(){n=a.pop(),c=i.pop()}function h(e){Fe(r,e)}for(;We(r,o);){if(0===n){if(null!==c&&h("too many constructs in root"),3===o.type){c={},c.$vscodeTextmateLocation=o.toLocation(t),u(),n=1;continue}if(2===o.type){c=[],u(),n=4;continue}h("unexpected token in root")}if(2===n){if(5===o.type){l();continue}if(7===o.type){n=3;continue}h("expected , or }")}if(1===n||3===n){if(1===n&&5===o.type){l();continue}if(1===o.type){let e=o.value;if(We(r,o)&&6===o.type||h("expected colon"),We(r,o)||h("expected value"),n=2,1===o.type){c[e]=o.value;continue}if(8===o.type){c[e]=null;continue}if(9===o.type){c[e]=!0;continue}if(10===o.type){c[e]=!1;continue}if(11===o.type){c[e]=parseFloat(o.value);continue}if(2===o.type){let t=[];c[e]=t,u(),n=4,c=t;continue}if(3===o.type){let s={};s.$vscodeTextmateLocation=o.toLocation(t),c[e]=s,u(),n=1,c=s;continue}}h("unexpected token in dict")}if(5===n){if(4===o.type){l();continue}if(7===o.type){n=6;continue}h("expected , or ]")}if(4===n||6===n){if(4===n&&4===o.type){l();continue}if(n=5,1===o.type){c.push(o.value);continue}if(8===o.type){c.push(null);continue}if(9===o.type){c.push(!0);continue}if(10===o.type){c.push(!1);continue}if(11===o.type){c.push(parseFloat(o.value));continue}if(2===o.type){let e=[];c.push(e),u(),n=4,c=e;continue}if(3===o.type){let e={};e.$vscodeTextmateLocation=o.toLocation(t),c.push(e),u(),n=1,c=e;continue}h("unexpected token in array")}h("unknown state")}return 0!==i.length&&h("unclosed constructs"),c}(s,t):JSON.parse(s)):function(e,t){return w?function(e,t,s){return qe(e,t,"$vscodeTextmateLocation")}(e,t):function(e){return qe(e,null,null)}(e)}(e,t);var s};var Ve=S.Bz,Ye=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,s,r=void 0!==(e=e||{})?e:{};r.ready=new Promise((function(e,r){t=e,s=r}));var o,n=Object.assign({},r),c=!1;o=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),"object"==typeof t||S(s),t);var s},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var a,i,u=r.print||console.log.bind(console),l=r.printErr||console.warn.bind(console);Object.assign(r,n),n=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(a=r.wasmBinary),r.noExitRuntime,"object"!=typeof WebAssembly&&S("no native wasm support detected");var h,d,p,m=!1,g="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function f(e,t,s){for(var r=t+s,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.buffer&&g)return g.decode(e.subarray(t,o));for(var n="";t<o;){var c=e[t++];if(128&c){var a=63&e[t++];if(192!=(224&c)){var i=63&e[t++];if((c=224==(240&c)?(15&c)<<12|a<<6|i:(7&c)<<18|a<<12|i<<6|63&e[t++])<65536)n+=String.fromCharCode(c);else{var u=c-65536;n+=String.fromCharCode(55296|u>>10,56320|1023&u)}}else n+=String.fromCharCode((31&c)<<6|a)}else n+=String.fromCharCode(c)}return n}function b(e){h=e,r.HEAP8=new Int8Array(e),r.HEAP16=new Int16Array(e),r.HEAP32=new Int32Array(e),r.HEAPU8=d=new Uint8Array(e),r.HEAPU16=new Uint16Array(e),r.HEAPU32=p=new Uint32Array(e),r.HEAPF32=new Float32Array(e),r.HEAPF64=new Float64Array(e)}r.INITIAL_MEMORY;var y=[],_=[],x=[],k=0,j=null;function S(e){r.onAbort&&r.onAbort(e),l(e="Aborted("+e+")"),m=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw s(t),t}var w,v,L,C="data:application/octet-stream;base64,";function A(e){return e.startsWith(C)}function N(e){try{if(e==w&&a)return new Uint8Array(a);if(o)return o(e);throw"both async and sync fetching of the wasm failed"}catch(e){S(e)}}function P(e){for(;e.length>0;)e.shift()(r)}function R(e){try{return i.grow(e-h.byteLength+65535>>>16),b(i.buffer),1}catch(e){}}A(w="onig.wasm")||(v=w,w=r.locateFile?r.locateFile(v,""):""+v),L="undefined"!=typeof dateNow?dateNow:()=>performance.now();var E=[null,[],[]];function I(e,t){var s=E[e];0===t||10===t?((1===e?u:l)(f(s,0)),s.length=0):s.push(t)}var B,O={emscripten_get_now:L,emscripten_memcpy_big:function(e,t,s){d.copyWithin(e,t,t+s)},emscripten_resize_heap:function(e){var t=d.length,s=2147483648;if((e>>>=0)>s)return!1;let r=(e,t)=>e+(t-e%t)%t;for(var o=1;o<=4;o*=2){var n=t*(1+.2/o);if(n=Math.min(n,e+100663296),R(Math.min(s,r(Math.max(e,n),65536))))return!0}return!1},fd_write:function(e,t,s,r){for(var o=0,n=0;n<s;n++){var c=p[t>>2],a=p[t+4>>2];t+=8;for(var i=0;i<a;i++)I(e,d[c+i]);o+=a}return p[r>>2]=o,0}};function G(e){function s(){B||(B=!0,r.calledRun=!0,m||(P(_),t(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),x.unshift(e);var e;P(x)}()))}k>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),y.unshift(e);var e;P(y)}(),k>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),s()}),1)):s()))}if(function(){var e={env:O,wasi_snapshot_preview1:O};function t(e,t){var s,o=e.exports;r.asm=o,b((i=r.asm.memory).buffer),r.asm.__indirect_function_table,s=r.asm.__wasm_call_ctors,_.unshift(s),function(e){if(k--,r.monitorRunDependencies&&r.monitorRunDependencies(k),0==k&&j){var t=j;j=null,t()}}()}function o(e){t(e.instance)}function n(t){return(!a&&c&&"function"==typeof fetch?fetch(w,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+w+"'";return e.arrayBuffer()})).catch((function(){return N(w)})):Promise.resolve().then((function(){return N(w)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){l("failed to asynchronously prepare wasm: "+e),S(e)}))}if(k++,r.monitorRunDependencies&&r.monitorRunDependencies(k),r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){l("Module.instantiateWasm callback failed with error: "+e),s(e)}(a||"function"!=typeof WebAssembly.instantiateStreaming||A(w)||"function"!=typeof fetch?n(o):fetch(w,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return l("wasm streaming compile failed: "+e),l("falling back to ArrayBuffer instantiation"),n(o)}))}))).catch(s)}(),r.___wasm_call_ctors=function(){return(r.___wasm_call_ctors=r.asm.__wasm_call_ctors).apply(null,arguments)},r.___errno_location=function(){return(r.___errno_location=r.asm.__errno_location).apply(null,arguments)},r._omalloc=function(){return(r._omalloc=r.asm.omalloc).apply(null,arguments)},r._ofree=function(){return(r._ofree=r.asm.ofree).apply(null,arguments)},r._getLastOnigError=function(){return(r._getLastOnigError=r.asm.getLastOnigError).apply(null,arguments)},r._createOnigScanner=function(){return(r._createOnigScanner=r.asm.createOnigScanner).apply(null,arguments)},r._freeOnigScanner=function(){return(r._freeOnigScanner=r.asm.freeOnigScanner).apply(null,arguments)},r._findNextOnigScannerMatch=function(){return(r._findNextOnigScannerMatch=r.asm.findNextOnigScannerMatch).apply(null,arguments)},r._findNextOnigScannerMatchDbg=function(){return(r._findNextOnigScannerMatchDbg=r.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},r.stackSave=function(){return(r.stackSave=r.asm.stackSave).apply(null,arguments)},r.stackRestore=function(){return(r.stackRestore=r.asm.stackRestore).apply(null,arguments)},r.stackAlloc=function(){return(r.stackAlloc=r.asm.stackAlloc).apply(null,arguments)},r.dynCall_jiji=function(){return(r.dynCall_jiji=r.asm.dynCall_jiji).apply(null,arguments)},r.UTF8ToString=function(e,t){return e?f(d,e,t):""},j=function e(){B||G(),B||(j=e)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return G(),e.ready});let Xe=null;class Je{static _utf8ByteLength(e){let t=0;for(let s=0,r=e.length;s<r;s++){const o=e.charCodeAt(s);let n=o,c=!1;if(o>=55296&&o<=56319&&s+1<r){const t=e.charCodeAt(s+1);t>=56320&&t<=57343&&(n=65536+(o-55296<<10)|t-56320,c=!0)}t+=n<=127?1:n<=2047?2:n<=65535?3:4,c&&s++}return t}constructor(e){const t=e.length,s=Je._utf8ByteLength(e),r=s!==t,o=r?new Uint32Array(t+1):null;r&&(o[t]=s);const n=r?new Uint32Array(s+1):null;r&&(n[s]=t);const c=new Uint8Array(s);let a=0;for(let s=0;s<t;s++){const i=e.charCodeAt(s);let u=i,l=!1;if(i>=55296&&i<=56319&&s+1<t){const t=e.charCodeAt(s+1);t>=56320&&t<=57343&&(u=65536+(i-55296<<10)|t-56320,l=!0)}r&&(o[s]=a,l&&(o[s+1]=a),u<=127?n[a+0]=s:u<=2047?(n[a+0]=s,n[a+1]=s):u<=65535?(n[a+0]=s,n[a+1]=s,n[a+2]=s):(n[a+0]=s,n[a+1]=s,n[a+2]=s,n[a+3]=s)),u<=127?c[a++]=u:u<=2047?(c[a++]=192|(1984&u)>>>6,c[a++]=128|(63&u)>>>0):u<=65535?(c[a++]=224|(61440&u)>>>12,c[a++]=128|(4032&u)>>>6,c[a++]=128|(63&u)>>>0):(c[a++]=240|(1835008&u)>>>18,c[a++]=128|(258048&u)>>>12,c[a++]=128|(4032&u)>>>6,c[a++]=128|(63&u)>>>0),l&&s++}this.utf16Length=t,this.utf8Length=s,this.utf16Value=e,this.utf8Value=c,this.utf16OffsetToUtf8=o,this.utf8OffsetToUtf16=n}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class Ze{constructor(e){if(this.id=++Ze.LAST_ID,!Xe)throw new Error("Must invoke loadWASM first.");this._onigBinding=Xe,this.content=e;const t=new Je(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!Ze._sharedPtrInUse?(Ze._sharedPtr||(Ze._sharedPtr=Xe._omalloc(1e4)),Ze._sharedPtrInUse=!0,Xe.HEAPU8.set(t.utf8Value,Ze._sharedPtr),this.ptr=Ze._sharedPtr):this.ptr=t.createString(Xe)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===Ze._sharedPtr?Ze._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}Ze.LAST_ID=0,Ze._sharedPtr=0,Ze._sharedPtrInUse=!1;class et{constructor(e){if(!Xe)throw new Error("Must invoke loadWASM first.");const t=[],s=[];for(let r=0,o=e.length;r<o;r++){const o=new Je(e[r]);t[r]=o.createString(Xe),s[r]=o.utf8Length}const r=Xe._omalloc(4*e.length);Xe.HEAPU32.set(t,r/4);const o=Xe._omalloc(4*e.length);Xe.HEAPU32.set(s,o/4);const n=Xe._createOnigScanner(r,o,e.length);for(let s=0,r=e.length;s<r;s++)Xe._ofree(t[s]);Xe._ofree(o),Xe._ofree(r),0===n&&function(e){throw new Error(e.UTF8ToString(e._getLastOnigError()))}(Xe),this._onigBinding=Xe,this._ptr=n}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(e,t,s){let r=false,o=0;if("number"==typeof s?(8&s&&(r=!0),o=s):"boolean"==typeof s&&(r=s),"string"==typeof e){e=new Ze(e);const s=this._findNextMatchSync(e,t,r,o);return e.dispose(),s}return this._findNextMatchSync(e,t,r,o)}_findNextMatchSync(e,t,s,r){const o=this._onigBinding;let n;if(n=s?o._findNextOnigScannerMatchDbg(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),r):o._findNextOnigScannerMatch(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),r),0===n)return null;const c=o.HEAPU32;let a=n/4;const i=c[a++],u=c[a++];let l=[];for(let t=0;t<u;t++){const s=e.convertUtf8OffsetToUtf16(c[a++]),r=e.convertUtf8OffsetToUtf16(c[a++]);l[t]={start:s,end:r,length:r-s}}return{index:i,captureIndices:l}}}let tt=!1,st=null;function rt(e){if(tt)return st;let t,s,r,o;if(tt=!0,function(e){return"function"==typeof e.instantiator}(e))t=e.instantiator,s=e.print;else{let r;!function(e){return void 0!==e.data}(e)?r=e:(r=e.data,s=e.print),t=function(e){return"undefined"!=typeof Response&&e instanceof Response}(r)?"function"==typeof WebAssembly.instantiateStreaming?function(e){return t=>WebAssembly.instantiateStreaming(e,t)}(r):function(e){return async t=>{const s=await e.arrayBuffer();return WebAssembly.instantiate(s,t)}}(r):function(e){return t=>WebAssembly.instantiate(e,t)}(r)}return st=new Promise(((e,t)=>{r=e,o=t})),function(e,t,s,r){Ye({print:t,instantiateWasm:(t,s)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>s(e.instance)),r),{}}}).then((e=>{Xe=e,s()}))}(t,s,r,o),st}function ot(e){return new Ze(e)}function nt(e){return new et(e)}function ct(e){const t=x[e];if(!t)return;const{id:s}=k[t];return{id:s,scopeName:t}}const at=new Map;let it,ut;async function lt(e){if(at.has(e))return at.get(e);const t=function(e){return k[e]}(e);if(!t)return Promise.resolve(void 0);let r;if(void 0===it&&(r=ht(t.path),it=r.then((()=>!0)).catch((()=>!1))),void 0===ut&&(ut=await it),ut){const s=r||ht(t.path);return at.set(e,s),s}const o=s(`grammars/${t.id}`);t.embeddedScopes.forEach((e=>{if(!at.has(e)){const t=o.then((t=>t.find((t=>t.scopeName===e))));at.set(e,t)}}));const n=o.then((t=>t.find((t=>t.scopeName===e))));return at.set(e,n),n}async function ht(e){return await t()}const dt=30720,pt=16744448,mt=16775168,gt=11,ft=15,bt={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function yt(e,t,s,r){const{tokens:o,ruleStack:n}=e.tokenizeLine2(s,t),c=[];let a=s.length;for(let e=o.length-2;e>=0;e-=2){const t=o[e],r=o[e+1],n=s.slice(t,a);c.unshift({content:n,metadata:r}),a=t}let i=[];if(null==r?void 0:r.preserveWhitespace)i=c;else for(let e=0;e<c.length;e++){const t=c[e];if(""!==t.content.trim()){const e=i[i.length-1];e&&(e.metadata&mt)==(t.metadata&mt)?e.content+=t.content:i.push(t)}else i.length>0?i[i.length-1].content+=t.content:e<c.length-1?c[e+1].content=t.content+c[e+1].content:i.push(t)}return{rawTokens:i,nextStack:n}}function _t(e,t,s){let r=null;return e.split(/\r?\n|\r/g).map((e=>{const{rawTokens:o,nextStack:n}=yt(t,r,e,{preserveWhitespace:!0}),c=o.map((({content:e,metadata:t})=>({content:e,style:xt(t,s)}))),a=function(e,t,s,r){const{tokens:o}=s.tokenizeLine(e,t),n=[];for(let t=0;t<o.length;t++){const{startIndex:s,endIndex:c,scopes:a}=o[t];let i=0;const u=r.find((e=>{if(i+=e.content.length,s<i)return!0}));n.push(Object.assign(Object.assign({},u),{content:e.slice(s,c),scopes:a.reverse()}))}return n}(e,r,t,c);return r=n,a}))}function xt(e,t){const s={color:t[(e&pt)>>>ft]},r=(e&dt)>>>gt;return r&bt.Italic&&(s.fontStyle="italic"),r&bt.Bold&&(s.fontWeight="bold"),r&bt.Underline&&(s.textDecoration="underline"),r&bt.Strikethrough&&(s.textDecoration="line-through"),s}var kt={instantiator:t=>WebAssembly.instantiate(e,t).then((e=>({instance:e})))};let jt=null;function St(e){return"text"==e||"terminal"==e}function wt(e){if(!jt){const e=rt(kt).then((()=>({createOnigScanner:nt,createOnigString:ot})));jt=new Ve({onigLib:e,loadGrammar:e=>lt(e)})}const t=e.filter((e=>!St(e))).map((e=>{const t=ct(e);if(!t)throw new Lt(e);return jt.loadGrammar(t.scopeName)}));return Promise.all(t)}function vt(e){if(St(e))return{langId:e,grammar:null};const t=ct(e);if(!t)throw new Lt(e);const s=function(e){const{_syncRegistry:t}=jt;return null==t?void 0:t._grammars.get(e)}(t.scopeName);if(!s)throw new Error(`Syntax highlighting error: grammar for ${e} not loaded`);return{langId:t.id,grammar:s}}class Lt extends Error{constructor(e){super(`Unknown language: ${e}`),this.alias=e}}function Ct(e,t,s){jt.setTheme(s);const r=function(e){const t=jt.getColorMap();return e.colorNames?t.map((t=>Object.keys(e.colorNames).find((s=>e.colorNames[s].toUpperCase()===t.toUpperCase()))||t)):t}(s);return function(e,t,s){let r=null;return e.split(/\r?\n|\r/g).map((e=>{const{rawTokens:o,nextStack:n}=yt(t,r,e);return r=n,o.map((({content:e,metadata:t})=>({content:e,style:xt(t,s)})))}))}(e,t,r)}function At(e){return e.split(/\r?\n|\r/g).map((e=>[{content:e,style:{}}]))}function Nt(e,t){return Rt(e.slice(1,-1)).map((e=>{const{from:s,to:r}=Pt(e);return{lineNumber:t,fromColumn:s,toColumn:r}}))}function Pt(e){const[t,s]=e.split(":");if(!Et(t))throw new It(t);const r=Number(t);if(r<1)throw new Bt;if(s){if(!Et(s))throw new It(s);return{from:r,to:+s}}return{from:r,to:r}}function Rt(e){return e.split(/,(?![^\[]*\])/g)}function Et(e){e=e.toString();var t=Math.abs(e),s=parseInt(e,10);return!isNaN(t)&&s===t&&t.toString()===e}class It extends Error{constructor(e){super(`Invalid number "${e}" in range string`),this.number=e,Object.setPrototypeOf(this,new.target.prototype)}}class Bt extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const Ot="#001",Gt="#010",Tt={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:Ot}},{scope:"comment",settings:{foreground:Gt}}]};function qt(e,t,s,r){const o=t?Ct(e,t,Tt):At(e),n=[];let c=1;const a=o.map((e=>{const{annotations:t,lineWithoutComments:o}=function(e,t,s,r){if(r in Ft&&e.some((e=>e.style.color===Gt))){const t=Ft[r];e=e.flatMap((e=>{if(e.style.color!==Gt)return[e];const s=e.content.trimStart();if(s.startsWith(t)){const r=s.slice(t.length),o=[{content:e.content.slice(0,e.content.length-r.length),style:{color:Ot}}];return r.length&&o.push({content:r,style:e.style}),o}return[e]}))}if(!e.some((e=>e.style.color===Ot)))return{annotations:[],lineWithoutComments:e};const o=[];let n=0;for(;n<e.length;){const r=e[n];if(r.style.color!==Gt){n++;continue}const c="function"==typeof t?t(r.content):Mt(r.content,t);if(!c){n++;continue}const{name:a,query:i,rangeString:u}=c,l=e[n-1],h=e[n+1],d=[];l&&l.style.color===Ot&&d.push(l),d.push(r),h&&h.style.color===Ot&&d.push(h),o.push({tokens:d,name:a,query:i,rangeString:u,lineNumber:s}),n+=2}let c=e;for(const e of o)c=c.filter((t=>!e.tokens.includes(t)));c.every((e=>""===e.content.trim()))&&(c=null);return{annotations:o.map((e=>({name:e.name,query:e.query,lineNumber:e.lineNumber,rangeString:e.rangeString}))),lineWithoutComments:c}}(e,r,c,s);if(n.push(...t),!o)return null;const a=o.map((e=>e.content)).join("");return["mdx","jsx","tsx"].includes(s)&&t.length>0&&"{}"===a.trim()?null:(c++,a)})).filter((e=>null!==e)).join("\n"),i=n.map((e=>{var{rangeString:t,lineNumber:s}=e,r=function(e,t){var s={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(s[r[o]]=e[r[o]])}return s}(e,["rangeString","lineNumber"]);return Object.assign(Object.assign({},r),{ranges:$t(t,s,a)})})).filter((e=>e.ranges.length>0));return{newCode:a,annotations:i}}const Ft={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function $t(e,t,s){return e&&e.startsWith("(/")?function(e,t,s){const r=t.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!r)throw new Error(`Invalid RegExp string: ${t}`);const o=new RegExp(r[1],r[2]),n=e.split(/\r?\n/).slice(s-1).join("\n");if(!o.global){const e=o.exec(n);if(!e)return[];const t=n.slice(0,e.index).split("\n").length+s-1;return[{fromLineNumber:t,toLineNumber:t+e[0].split("\n").length-1}]}let c;const a=[];for(;c=o.exec(n);){const e=n.slice(0,c.index).split("\n").length+s-1,t=e+c[0].split("\n").length-1,r=a[a.length-1];r&&r.fromLineNumber===e||a.push({fromLineNumber:e,toLineNumber:t})}return a}(s,e,t):e&&e.startsWith("[/")?function(e,t,s){const r=t.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!r)throw new Error(`Invalid RegExp string: ${t}`);let o=r[2]||"";o+="d";const n=new RegExp(r[1],o);let c=e.split(/\r?\n/);c=c.slice(s-1),n.multiline||(c=[c[0]]);const a=[];return c.forEach(((e,t)=>{if(!n.global){if(a.length>0)return;const r=n.exec(e);if(!r)return;const o=r.indices[1]||r.indices[0];return void a.push({lineNumber:t+s,fromColumn:o[0]+1,toColumn:o[1]})}let r;for(;r=n.exec(e);){const e=r.indices[1]||r.indices[0];a.push({lineNumber:t+s,fromColumn:e[0]+1,toColumn:e[1]})}})),a}(s,e,t):function(e,t){return e?e.startsWith("[")?Nt(e,t):Rt(e.slice(1,-1)).map((e=>{if(e.includes("[")){const[s,r]=e.split("["),o=Number(s),n=t+o-1;if(!Et(n))throw new It(s);return Nt("["+r,n)}const{from:s,to:r}=Pt(e);return[{fromLineNumber:s+t-1,toLineNumber:r+t-1}]})).flat():[{fromLineNumber:t,toLineNumber:t}]}(e,t)}function Mt(e,t){var s;const r=e.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),o=r[1],n=r[2],c=null===(s=r[3])||void 0===s?void 0:s.trim();return t.includes(o)?{name:o,rangeString:n,query:c}:null}function Wt(e,t){let s=[],r=1;return e.forEach((e=>{s.push({fromColumn:r,toColumn:r+e.content.length-1,token:e}),r+=e.content.length})),t.forEach((e=>{s=function(e,t){const{range:s}=t,{fromColumn:r,toColumn:o}=s,n=[];let c=0;for(;c<e.length&&e[c].toColumn<r;)n.push(e[c]),c++;if(c===e.length)return e;const a={annotationName:t.name,annotationQuery:t.query,fromColumn:r,toColumn:o,tokens:[]},i=e[c];if(i.fromColumn<r){const[e,t]=Dt(i,r);if(n.push(e),n.push(a),t.toColumn>o){const[e,s]=Dt(t,o+1);a.tokens.push(e),n.push(s)}else a.tokens.push(t);c++}else n.push(a);for(;c<e.length&&e[c].toColumn<=o;)a.tokens.push(e[c]),c++;if(c===e.length)return n;const u=e[c];if(u.fromColumn<=o){const[e,t]=Dt(u,o+1);a.tokens.push(e),n.push(t),c++}for(;c<e.length;)n.push(e[c]),c++;return n}(s,e)})),s.map((e=>Ut(e)))}function Ut(e){return"tokens"in e?{annotationName:e.annotationName,annotationQuery:e.annotationQuery,fromColumn:e.fromColumn,toColumn:e.toColumn,tokens:e.tokens.map((e=>Ut(e)))}:e.token}function Dt(e,t){if("token"in e){const s=Object.assign(Object.assign({},e.token),{content:e.token.content.slice(0,t-e.fromColumn)}),r=Object.assign(Object.assign({},e.token),{content:e.token.content.slice(t-e.fromColumn)});return[Object.assign(Object.assign({},e),{toColumn:t-1,token:s}),Object.assign(Object.assign({},e),{fromColumn:t,token:r})]}{const s=[],r=[];e.tokens.forEach((e=>{if(e.toColumn<t)s.push(e);else if(e.fromColumn>=t)r.push(e);else{const[o,n]=Dt(e,t);s.push(o),r.push(n)}}));return[Object.assign(Object.assign({},e),{toColumn:t-1,tokens:s}),Object.assign(Object.assign({},e),{fromColumn:t,tokens:r})]}}function zt(e,t){let s=e.map(((e,t)=>({fromLineNumber:t+1,toLineNumber:t+1,line:e})));return t.forEach((e=>{s=function(e,t){const{range:s,name:r,query:o}=t,{fromLineNumber:n,toLineNumber:c}=s,a=[];let i=0;for(;i<e.length&&e[i].toLineNumber<n;)a.push(e[i]),i++;if(i===e.length)return a;const u={annotationName:r,annotationQuery:o,fromLineNumber:n,toLineNumber:c,lines:[]},l=e[i];if(l.fromLineNumber<n){const[e,t]=Qt(l,n);if(a.push(e),a.push(u),t.toLineNumber>c){const[e,s]=Qt(t,c+1);u.lines.push(e),a.push(s)}else u.lines.push(t);i++}else a.push(u);for(;i<e.length&&e[i].toLineNumber<=c;)u.lines.push(e[i]),i++;if(i===e.length)return a;const h=e[i];if(h.fromLineNumber<=c){const[e,t]=Qt(h,c+1);u.lines.push(e),a.push(t),i++}for(;i<e.length;)a.push(e[i]),i++;return a}(s,e)})),s.map((e=>Ht(e)))}function Ht(e){return"line"in e?{lineNumber:e.fromLineNumber,tokens:e.line.tokens}:{annotationName:e.annotationName,annotationQuery:e.annotationQuery,fromLineNumber:e.fromLineNumber,toLineNumber:e.toLineNumber,lines:e.lines.map((e=>Ht(e)))}}function Qt(e,t){if("line"in e)return[Object.assign(Object.assign({},e),{toLineNumber:t-1}),Object.assign(Object.assign({},e),{fromLineNumber:t})];{const s=[],r=[];return e.lines.forEach((e=>{if(e.toLineNumber<t)s.push(e);else if(e.fromLineNumber>=t)r.push(e);else{const[o,n]=Qt(e,t);s.push(o),r.push(n)}})),[Object.assign(Object.assign({},e),{toLineNumber:t-1,lines:s}),Object.assign(Object.assign({},e),{fromLineNumber:t,lines:r})]}}function Kt(e,t){const{inlineAnnotations:s,multilineAnnotations:r}=function(e){const t=[],s=[];return e.forEach((e=>{e.ranges.forEach((r=>{"lineNumber"in r?t.push(Object.assign(Object.assign({},e),{range:r})):s.push(Object.assign(Object.assign({},e),{range:r}))}))})),{inlineAnnotations:t,multilineAnnotations:s}}(t);return zt(e.map(((e,t)=>{const r=s.filter((e=>e.range.lineNumber===t+1));return{lineNumber:t+1,tokens:Wt(e,r)}})),r)}var Vt=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],Yt={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function Xt(e,t){const s=e.indexOf("[",t);if(-1!==s){const t=e.indexOf("m",s);return{sequence:e.substring(s+2,t).split(";"),startPosition:s,position:t+1}}return{position:e.length}}function Jt(e,t){let s=1;const r=e[t+s++];let o;if("2"===r){const r=[e[t+s++],e[t+s++],e[t+s]].map((e=>Number.parseInt(e)));3!==r.length||r.some((e=>Number.isNaN(e)))||(o={type:"rgb",rgb:r})}else if("5"===r){const r=Number.parseInt(e[t+s]);Number.isNaN(r)||(o={type:"table",index:Number(r)})}return[s,o]}function Zt(e){const t=[];for(let s=0;s<e.length;s++){const r=e[s],o=Number.parseInt(r);if(!Number.isNaN(o))if(0===o)t.push({type:"resetAll"});else if(o<=9){Yt[o]&&t.push({type:"setDecoration",value:Yt[o]})}else if(o<=29){const e=Yt[o-20];e&&t.push({type:"resetDecoration",value:e})}else if(o<=37)t.push({type:"setForegroundColor",value:{type:"named",name:Vt[o-30]}});else if(38===o){const[r,o]=Jt(e,s);o&&t.push({type:"setForegroundColor",value:o}),s+=r}else if(39===o)t.push({type:"resetForegroundColor"});else if(o<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:Vt[o-40]}});else if(48===o){const[r,o]=Jt(e,s);o&&t.push({type:"setBackgroundColor",value:o}),s+=r}else 49===o?t.push({type:"resetBackgroundColor"}):o>=90&&o<=97?t.push({type:"setForegroundColor",value:{type:"named",name:Vt[o-90+8]}}):o>=100&&o<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:Vt[o-100+8]}})}return t}function es(e,t){const s=function(){let e=null,t=null,s=new Set;return{parse(r){const o=[];let n=0;do{const c=Xt(r,n),a=c.sequence?r.substring(n,c.startPosition):r.substring(n);if(a.length>0&&o.push({value:a,foreground:e,background:t,decorations:new Set(s)}),c.sequence){const r=Zt(c.sequence);for(const o of r)"resetAll"===o.type?(e=null,t=null,s.clear()):"resetForegroundColor"===o.type?e=null:"resetBackgroundColor"===o.type?t=null:"resetDecoration"===o.type&&s.delete(o.value);for(const o of r)"setForegroundColor"===o.type?e=o.value:"setBackgroundColor"===o.type?t=o.value:"setDecoration"===o.type&&s.add(o.value)}n=c.position}while(n<r.length);return o}}}(),r=e.split(/\r?\n|\r/g).map((e=>function(e,t,s){const r=e.parse(t),o=r.map((({value:e,foreground:t,background:r,decorations:o})=>{const n=ts(t,s),c={};n&&(c.color=n);const a=ts(r,s);return a&&(c.background=a),o.has("bold")&&(c.fontWeight="bold"),o.has("italic")&&(c.fontStyle="italic"),o.has("underline")&&(c.textDecoration="underline"),o.has("strikethrough")&&(c.textDecoration="line-through"),o.has("reverse")&&(c.color=a,c.background=n),o.has("dim")&&(c.opacity=.5),{content:e,style:c}}));return o}(s,e,t)));return r}function ts(e,t){if(e){if("named"===e.type){return i(t,"terminal.ansi"+(e.name[0].toUpperCase()+e.name.slice(1)))}if("rgb"===e.type){const[t,s,r]=e.rgb;return`rgb(${t}, ${s}, ${r})`}}}async function ss(e,t){await Promise.all([wt(e),p(t)])}async function rs(e,t,s="dark-plus",r={}){const o=e||"",n=t||"text";if("string"!=typeof o)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof n)throw new Error("Syntax highlighter error: lang must be a string");return await ss([n],s),os(o,n,s,r)}function os(e,t,s="dark-plus",r={}){const o=e||"",n=t||"text";if("string"!=typeof o)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof n)throw new Error("Syntax highlighter error: lang must be a string");const{langId:c,grammar:a}=vt(n),u=m(s),l="text"==c?At(o):"terminal"==c?es(o,u):(null==r?void 0:r.scopes)?function(e,t,s){return jt.setTheme(s),_t(e,t,jt.getColorMap())}(o,a,u):Ct(o,a,u),h="terminal"==c?function(e){return{color:i(e,"terminal.foreground"),background:i(e,"terminal.background")}}(u):{color:u.foreground,background:u.background};if(function(e){return"annotations"in e}(r)){return{lines:Kt(l,(null==r?void 0:r.annotations)||[]),lang:c,style:h}}return{lines:l,lang:c,style:h}}async function ns(e,t,s){if(!s)return{code:e,annotations:[]};await wt([t]);const{grammar:r,langId:o}=vt(t),{newCode:n,annotations:c}=qt(e,r,o,s);return{code:n,annotations:c}}async function cs(e){if(!e)throw new Error("Syntax highlighter error: undefined theme");await ss([],e);return y(m(e))}function as(e){if(!e)throw new Error("Syntax highlighter error: undefined theme");return y(m(e))}export{_ as LANG_NAMES,f as THEME_NAMES,Lt as UnknownLanguageError,b as UnknownThemeError,ns as extractAnnotations,cs as getThemeColors,as as getThemeColorsSync,rs as highlight,os as highlightSync,ss as preload}; +import e from"./onig.wasm?module";async function t(e){throw new Error("no fs")}async function s(e){const t=await fetch(`https://lighter.codehike.org/${e}.json`);if(t.ok)return await t.json()}const r=e=>/^#([A-Fa-f0-9]{3,4}){1,2}$/.test(e),o=(e,t)=>e.match(new RegExp(`.{${t}}`,"g")),n=e=>parseInt(e.repeat(2/e.length),16);function c(e,t){return void 0!==e?e/255:"number"!=typeof t||t<0||t>1?1:t}function i(e,t){if(!e)return e;const{r:s,g:i,b:a,a:u}=function(e){if(!e)return;if(!r(e))throw new Error("Invalid color string, must be a valid hex color");const t=Math.floor((e.length-1)/3),s=o(e.slice(1),t),[i,a,u,l]=s.map(n);return{r:i,g:a,b:u,a:c(l,1)}}(e);return function(e){if(!e)return;const{r:t,g:s,b:r,a:o}=e,n=Math.round(255*o);return`#${t.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}${r.toString(16).padStart(2,"0")}${n.toString(16).padStart(2,"0")}`}({r:s,g:i,b:a,a:u*t})}function a(e,t){const s=e.colors||{};if(s[t])return s[t];const r=l[t];if(!r)throw new Error(`Unknown theme color key: ${t}`);return"string"==typeof r?a(e,r):function(e,t){const s=t[e.type];if(Array.isArray(s)){const[t,r,...o]=s;return t(a(e,r),...o)}return s}(e,r)}const u="#6FC3DF",l={"editor.foreground":{dark:"#bbbbbb",light:"#333333",hc:"#ffffff"},"editorLineNumber.foreground":{dark:"#858585",light:"#237893",hc:"#fffffe"},"editor.selectionBackground":{light:"#ADD6FF",dark:"#264F78",hc:"#f3f518"},"editor.background":{light:"#fffffe",dark:"#1E1E1E",hc:"#000000"},"editorGroupHeader.tabsBackground":{dark:"#252526",light:"#F3F3F3"},"tab.activeBackground":"editor.background","tab.activeForeground":{dark:"#ffffff",light:"#333333",hc:"#ffffff"},"tab.border":{dark:"#252526",light:"#F3F3F3",hc:u},"tab.activeBorder":"tab.activeBackground","tab.inactiveBackground":{dark:"#2D2D2D",light:"#ECECEC"},"tab.inactiveForeground":{dark:[i,"tab.activeForeground",.5],light:[i,"tab.activeForeground",.5],hc:"#ffffff"},"diffEditor.insertedTextBackground":{dark:"#9ccc2c33",light:"#9ccc2c40"},"diffEditor.removedTextBackground":{dark:"#ff000033",light:"#ff000033"},"diffEditor.insertedLineBackground":{dark:"#9bb95533",light:"#9bb95533"},"diffEditor.removedLineBackground":{dark:"#ff000033",light:"#ff000033"},"icon.foreground":{dark:"#C5C5C5",light:"#424242",hc:"#FFFFFF"},"sideBar.background":{dark:"#252526",light:"#F3F3F3",hc:"#000000"},"sideBar.foreground":"editor.foreground","sideBar.border":"sideBar.background","list.inactiveSelectionBackground":{dark:"#37373D",light:"#E4E6F1"},"list.inactiveSelectionForeground":{},"list.hoverBackground":{dark:"#2A2D2E",light:"#F0F0F0"},"list.hoverForeground":{},"editorGroupHeader.tabsBorder":{hc:u},"tab.activeBorderTop":{hc:u},"tab.hoverBackground":"tab.inactiveBackground","tab.hoverForeground":"tab.inactiveForeground","editor.rangeHighlightBackground":{dark:"#ffffff0b",light:"#fdff0033"},"editor.infoForeground":{dark:"#3794FF",light:"#1a85ff",hc:"#3794FF"},"input.border":{hc:u},"input.background":{dark:"#3C3C3C",light:"#fffffe",hc:"#000000"},"input.foreground":"editor.foreground","editor.lineHighlightBackground":{},focusBorder:{light:"#0090F1",dark:"#007FD4",hc:u},"editorGroup.border":{dark:"#444444",light:"#E7E7E7",hc:u},"list.activeSelectionBackground":{dark:"#094771",light:"#0060C0",hc:"#000000"},"list.activeSelectionForeground":{dark:"#fffffe",light:"#fffffe",hc:"#fffffe"},"lighter.inlineBackground":{dark:[i,"editor.background",.9],light:[i,"editor.background",.9]},"terminal.background":"editor.background","terminal.foreground":"editor.foreground","terminal.ansiBlack":{dark:"#000000",light:"#000000",hc:"#000000"},"terminal.ansiRed":{dark:"#cd3131",light:"#cd3131",hc:"#cd0000"},"terminal.ansiGreen":{dark:"#0DBC79",light:"#00BC00",hc:"#00cd00"},"terminal.ansiYellow":{dark:"#e5e510",light:"#949800",hc:"#cdcd00"},"terminal.ansiBlue":{dark:"#2472c8",light:"#0451a5",hc:"#0000ee"},"terminal.ansiMagenta":{dark:"#bc3fbc",light:"#bc05bc",hc:"#cd00cd"},"terminal.ansiCyan":{dark:"#11a8cd",light:"#0598bc",hc:"#00cdcd"},"terminal.ansiWhite":{dark:"#e5e5e5",light:"#555555",hc:"#e5e5e5"},"terminal.ansiBrightBlack":{dark:"#666666",light:"#666666",hc:"#7f7f7f"},"terminal.ansiBrightRed":{dark:"#f14c4c",light:"#cd3131",hc:"#ff0000"},"terminal.ansiBrightGreen":{dark:"#23d18b",light:"#14CE14",hc:"#00ff00"},"terminal.ansiBrightYellow":{dark:"#f5f543",light:"#b5ba00",hc:"#ffff00"},"terminal.ansiBrightBlue":{dark:"#3b8eea",light:"#0451a5",hc:"#5c5cff"},"terminal.ansiBrightMagenta":{dark:"#d670d6",light:"#bc05bc",hc:"#ff00ff"},"terminal.ansiBrightCyan":{dark:"#29b8db",light:"#0598bc",hc:"#00ffff"},"terminal.ansiBrightWhite":{dark:"#e5e5e5",light:"#a5a5a5",hc:"#ffffff"}},d=new Map,h=new Map;async function p(e){if("string"==typeof e){const t=e;if(!g.includes(t))throw new b(t);if(!d.has(t)){const e=async function(e){try{return await async function(e){throw new Error("no fs")}()}catch(t){return await s(`themes/${e}`)}}(t).then((e=>(h.set(t,e),e)));d.set(t,e)}return d.get(t)}return e}function m(e){let t=null;if("string"==typeof e){if(t=h.get(e),!t)throw new Error("Syntax highlighting error: theme not loaded")}else t=e;return function(e){if(!e)return;const t=e.settings||e.tokenColors||[],s={name:e.name||"unknown-theme",type:f(e),foreground:"",background:"",settings:t,colors:e.colors||{},colorNames:e.colorNames},r=t.find((e=>!e.scope));if(r){const{foreground:e,background:t}=(null==r?void 0:r.settings)||{},o={};e&&!s.colors["editor.foreground"]&&(o["editor.foreground"]=e),t&&!s.colors["editor.background"]&&(o["editor.background"]=t),Object.keys(o).length>0&&(s.colors=Object.assign(Object.assign({},s.colors),o)),s.foreground=e,s.background=t}r||(s.settings=[{settings:{foreground:a(s,"editor.foreground"),background:a(s,"editor.background")}},...s.settings]);if(s.background=s.background||a(s,"editor.background"),s.foreground=s.foreground||a(s,"editor.foreground"),"from-css"===e.type&&!s.colorNames){const e={};let t=0;s.settings=s.settings.map((s=>{const r=Object.assign(Object.assign({},s),{settings:Object.assign({},s.settings)}),{foreground:o,background:n}=r.settings||{};return o&&!e[o]&&(e[o]=`#${t.toString(16).padStart(6,"0")}`,t++),n&&!e[n]&&(e[n]=`#${t.toString(16).padStart(6,"0")}`,t++),o&&(r.settings.foreground=e[o]),n&&(r.settings.background=e[n]),r})),s.colorNames=e}return s}(t)}function f(e){var t;if("from-css"===e.type)return"from-css";return"light"===(e.type?e.type:(null===(t=e.name)||void 0===t?void 0:t.toLowerCase().includes("light"))?"light":"dark")?"light":"dark"}const g=["dark-plus","dracula-soft","dracula","github-dark","github-dark-dimmed","github-from-css","github-light","light-plus","material-darker","material-default","material-from-css","material-lighter","material-ocean","material-palenight","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","slack-dark","slack-ochin","solarized-dark","solarized-light"];class b extends Error{constructor(e){super(`Unknown theme: ${e}`),this.theme=e}}function y(e){const t=t=>"colorScheme"===t?function(e){return"from-css"===e.type?"var(--ch-0)":e.type}(e):"foreground"===t?e.foreground:"background"===t?e.background:a(e,t);return{colorScheme:t("colorScheme"),foreground:t("foreground"),background:t("background"),lighter:{inlineBackground:t("lighter.inlineBackground")},editor:{background:t("editor.background"),foreground:t("editor.foreground"),lineHighlightBackground:t("editor.lineHighlightBackground"),rangeHighlightBackground:t("editor.rangeHighlightBackground"),infoForeground:t("editor.infoForeground"),selectionBackground:t("editor.selectionBackground")},focusBorder:t("focusBorder"),tab:{activeBackground:t("tab.activeBackground"),activeForeground:t("tab.activeForeground"),inactiveBackground:t("tab.inactiveBackground"),inactiveForeground:t("tab.inactiveForeground"),border:t("tab.border"),activeBorder:t("tab.activeBorder"),activeBorderTop:t("tab.activeBorderTop")},editorGroup:{border:t("editorGroup.border")},editorGroupHeader:{tabsBackground:t("editorGroupHeader.tabsBackground")},editorLineNumber:{foreground:t("editorLineNumber.foreground")},input:{background:t("input.background"),foreground:t("input.foreground"),border:t("input.border")},icon:{foreground:t("icon.foreground")},sideBar:{background:t("sideBar.background"),foreground:t("sideBar.foreground"),border:t("sideBar.border")},list:{activeSelectionBackground:t("list.activeSelectionBackground"),activeSelectionForeground:t("list.activeSelectionForeground"),hoverBackground:t("list.hoverBackground"),hoverForeground:t("list.hoverForeground")}}}const _=["abap","actionscript-3","ada","adoc","angular-html","angular-ts","apache","apex","apl","applescript","ara","asciidoc","asm","astro","awk","ballerina","bash","bat","batch","be","beancount","berry","bibtex","bicep","blade","c","c#","c++","cadence","cdc","clarity","clj","clojure","closure-templates","cmake","cmd","cobol","codeowners","codeql","coffee","coffeescript","common-lisp","console","cpp","cql","crystal","cs","csharp","css","csv","cue","cypher","d","dart","dax","desktop","diff","docker","dockerfile","dotenv","dream-maker","edge","elisp","elixir","elm","emacs-lisp","erb","erl","erlang","f","f#","f03","f08","f18","f77","f90","f95","fennel","fish","fluent","for","fortran-fixed-form","fortran-free-form","fs","fsharp","fsl","ftl","gdresource","gdscript","gdshader","genie","gherkin","git-commit","git-rebase","gjs","gleam","glimmer-js","glimmer-ts","glsl","gnuplot","go","gql","graphql","groovy","gts","hack","haml","handlebars","haskell","haxe","hbs","hcl","hjson","hlsl","hs","html","html-derivative","http","hxml","hy","imba","ini","jade","java","javascript","jinja","jison","jl","js","json","json5","jsonc","jsonl","jsonnet","jssm","jsx","julia","kotlin","kql","kt","kts","kusto","latex","lean","lean4","less","liquid","lisp","lit","log","logo","lua","luau","make","makefile","markdown","marko","matlab","md","mdc","mdx","mediawiki","mermaid","mojo","move","nar","narrat","nextflow","nf","nginx","nim","nix","nu","nushell","objc","objective-c","objective-cpp","ocaml","pascal","perl","perl6","php","plsql","po","postcss","pot","potx","powerquery","powershell","prisma","prolog","properties","proto","ps","ps1","pug","puppet","purescript","py","python","ql","qml","qmldir","qss","r","racket","raku","razor","rb","reg","regex","regexp","rel","riscv","rs","rst","ruby","rust","sas","sass","scala","scheme","scss","sh","shader","shaderlab","shell","shellscript","shellsession","smalltalk","solidity","soy","sparql","spl","splunk","sql","ssh-config","stata","styl","stylus","svelte","swift","system-verilog","systemd","tasl","tcl","templ","terminal","terraform","tex","text","tf","tfvars","toml","ts","ts-tags","tsp","tsv","tsx","turtle","twig","txt","typ","typescript","typespec","typst","v","vala","vb","verilog","vhdl","vim","viml","vimscript","vue","vue-html","vy","vyper","wasm","wenyan","wgsl","wiki","wikitext","wl","wolfram","xml","xsl","yaml","yml","zenscript","zig","zsh","文言"],k={abap:"source.abap","actionscript-3":"source.actionscript.3",ada:"source.ada","angular-html":"text.html.derivative.ng","angular-ts":"source.ts.ng",apache:"source.apacheconf",apex:"source.apex",apl:"source.apl",applescript:"source.applescript",ara:"source.ara",asciidoc:"text.asciidoc",adoc:"text.asciidoc",asm:"source.asm.x86_64",astro:"source.astro",awk:"source.awk",ballerina:"source.ballerina",bat:"source.batchfile",batch:"source.batchfile",beancount:"text.beancount",berry:"source.berry",be:"source.berry",bibtex:"text.bibtex",bicep:"source.bicep",blade:"text.html.php.blade",c:"source.c",cadence:"source.cadence",cdc:"source.cadence",clarity:"source.clar",clojure:"source.clojure",clj:"source.clojure",cmake:"source.cmake",cobol:"source.cobol",codeowners:"text.codeowners",codeql:"source.ql",ql:"source.ql",coffee:"source.coffee",coffeescript:"source.coffee","common-lisp":"source.commonlisp",lisp:"source.commonlisp",cpp:"source.cpp","c++":"source.cpp",crystal:"source.crystal",csharp:"source.cs","c#":"source.cs",cs:"source.cs",css:"source.css",csv:"text.csv",cue:"source.cue",cypher:"source.cypher",cql:"source.cypher",d:"source.d",dart:"source.dart",dax:"source.dax",desktop:"source.desktop",diff:"source.diff",docker:"source.dockerfile",dockerfile:"source.dockerfile",dotenv:"source.dotenv","dream-maker":"source.dm",edge:"text.html.edge",elixir:"source.elixir",elm:"source.elm","emacs-lisp":"source.emacs.lisp",elisp:"source.emacs.lisp",erb:"text.html.erb",erlang:"source.erlang",erl:"source.erlang",fennel:"source.fnl",fish:"source.fish",fluent:"source.ftl",ftl:"source.ftl","fortran-fixed-form":"source.fortran.fixed",f:"source.fortran.fixed",for:"source.fortran.fixed",f77:"source.fortran.fixed","fortran-free-form":"source.fortran.free",f90:"source.fortran.free",f95:"source.fortran.free",f03:"source.fortran.free",f08:"source.fortran.free",f18:"source.fortran.free",fsharp:"source.fsharp","f#":"source.fsharp",fs:"source.fsharp",gdresource:"source.gdresource",gdscript:"source.gdscript",gdshader:"source.gdshader",genie:"source.genie",gherkin:"text.gherkin.feature","git-commit":"text.git-commit","git-rebase":"text.git-rebase",gleam:"source.gleam","glimmer-js":"source.gjs",gjs:"source.gjs","glimmer-ts":"source.gts",gts:"source.gts",glsl:"source.glsl",gnuplot:"source.gnuplot",go:"source.go",graphql:"source.graphql",gql:"source.graphql",groovy:"source.groovy",hack:"source.hack",haml:"text.haml",handlebars:"text.html.handlebars",hbs:"text.html.handlebars",haskell:"source.haskell",hs:"source.haskell",haxe:"source.hx",hcl:"source.hcl",hjson:"source.hjson",hlsl:"source.hlsl",html:"text.html.basic","html-derivative":"text.html.derivative",http:"source.http",hxml:"source.hxml",hy:"source.hy",imba:"source.imba",ini:"source.ini",properties:"source.ini",java:"source.java",javascript:"source.js",js:"source.js",jinja:"source.jinja",jison:"source.jison",json:"source.json",json5:"source.json5",jsonc:"source.json.comments",jsonl:"source.json.lines",jsonnet:"source.jsonnet",jssm:"source.jssm",fsl:"source.jssm",jsx:"source.js.jsx",julia:"source.julia",jl:"source.julia",kotlin:"source.kotlin",kt:"source.kotlin",kts:"source.kotlin",kusto:"source.kusto",kql:"source.kusto",latex:"text.tex.latex",lean:"source.lean4",lean4:"source.lean4",less:"source.css.less",liquid:"text.html.liquid",log:"text.log",logo:"source.logo",lua:"source.lua",luau:"source.luau",make:"source.makefile",makefile:"source.makefile",markdown:"text.html.markdown",md:"text.html.markdown",marko:"text.marko",matlab:"source.matlab",mdc:"text.markdown.mdc",mdx:"source.mdx",mermaid:"markdown.mermaid.codeblock",mojo:"source.mojo",move:"source.move",narrat:"source.narrat",nar:"source.narrat",nextflow:"source.nextflow",nf:"source.nextflow",nginx:"source.nginx",nim:"source.nim",nix:"source.nix",nushell:"source.nushell",nu:"source.nushell","objective-c":"source.objc",objc:"source.objc","objective-cpp":"source.objcpp",ocaml:"source.ocaml",pascal:"source.pascal",perl:"source.perl",php:"source.php",plsql:"source.plsql.oracle",po:"source.po",pot:"source.po",potx:"source.po",postcss:"source.css.postcss",powerquery:"source.powerquery",powershell:"source.powershell",ps:"source.powershell",ps1:"source.powershell",prisma:"source.prisma",prolog:"source.prolog",proto:"source.proto",pug:"text.pug",jade:"text.pug",puppet:"source.puppet",purescript:"source.purescript",python:"source.python",py:"source.python",qml:"source.qml",qmldir:"source.qmldir",qss:"source.qss",r:"source.r",racket:"source.racket",raku:"source.perl.6",perl6:"source.perl.6",razor:"text.aspnetcorerazor",reg:"source.reg",regexp:"source.regexp.python",regex:"source.regexp.python",rel:"source.rel",riscv:"source.riscv",rst:"source.rst",ruby:"source.ruby",rb:"source.ruby",rust:"source.rust",rs:"source.rust",sas:"source.sas",sass:"source.sass",scala:"source.scala",scheme:"source.scheme",scss:"source.css.scss",shaderlab:"source.shaderlab",shader:"source.shaderlab",shellscript:"source.shell",bash:"source.shell",sh:"source.shell",shell:"source.shell",zsh:"source.shell",shellsession:"text.shell-session",console:"text.shell-session",smalltalk:"source.smalltalk",solidity:"source.solidity",soy:"text.html.soy","closure-templates":"text.html.soy",sparql:"source.sparql",splunk:"source.splunk_search",spl:"source.splunk_search",sql:"source.sql","ssh-config":"source.ssh-config",stata:"source.stata",stylus:"source.stylus",styl:"source.stylus",svelte:"source.svelte",swift:"source.swift","system-verilog":"source.systemverilog",systemd:"source.systemd",tasl:"source.tasl",tcl:"source.tcl",templ:"source.templ",terraform:"source.hcl.terraform",tf:"source.hcl.terraform",tfvars:"source.hcl.terraform",tex:"text.tex",toml:"source.toml","ts-tags":"source.ts.tags",lit:"source.ts.tags",tsv:"text.tsv",tsx:"source.tsx",turtle:"source.turtle",twig:"text.html.twig",txt:"source.txt",typescript:"source.ts",ts:"source.ts",typespec:"source.tsp",tsp:"source.tsp",typst:"source.typst",typ:"source.typst",v:"source.v",vala:"source.vala",vb:"source.asp.vb.net",cmd:"source.asp.vb.net",verilog:"source.verilog",vhdl:"source.vhdl",viml:"source.viml",vim:"source.viml",vimscript:"source.viml",vue:"source.vue","vue-html":"text.html.vue-html",vyper:"source.vyper",vy:"source.vyper",wasm:"source.wat",wenyan:"source.wenyan","文言":"source.wenyan",wgsl:"source.wgsl",wikitext:"source.wikitext",mediawiki:"source.wikitext",wiki:"source.wikitext",wolfram:"source.wolfram",wl:"source.wolfram",xml:"text.xml",xsl:"text.xml.xsl",yaml:"source.yaml",yml:"source.yaml",zenscript:"source.zenscript",zig:"source.zig"},S={"source.abap":{id:"abap",embeddedScopes:[]},"source.actionscript.3":{id:"actionscript-3",embeddedScopes:[]},"source.ada":{id:"ada",embeddedScopes:[]},"text.html.derivative.ng":{id:"angular-html",embeddedScopes:["text.html.basic"]},"source.ts.ng":{id:"angular-ts",embeddedScopes:[]},"source.apacheconf":{id:"apache",embeddedScopes:[]},"source.apex":{id:"apex",embeddedScopes:[]},"source.apl":{id:"apl",embeddedScopes:["text.html.basic","text.xml","source.css","source.js","source.json"]},"source.applescript":{id:"applescript",embeddedScopes:[]},"source.ara":{id:"ara",embeddedScopes:[]},"text.asciidoc":{id:"asciidoc",embeddedScopes:["text.html.basic","source.yaml","text.csv","source.c","source.clojure","source.coffee","source.cpp","source.css","source.cs","source.diff","source.dockerfile","source.elixir","source.elm","source.erlang","source.go","source.groovy","source.haskell","source.java","source.js","source.json","source.js.jsx","source.julia","source.kotlin","source.css.less","source.makefile","source.objc","source.ocaml","source.perl","source.python","source.r","source.ruby","source.rust","source.sass","source.scala","source.css.scss","source.shell","source.sql","source.swift","source.toml","source.ts","text.xml"]},"source.asm.x86_64":{id:"asm",embeddedScopes:[]},"source.astro":{id:"astro",embeddedScopes:["source.json","source.js","source.ts","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.css.postcss","source.tsx"]},"source.awk":{id:"awk",embeddedScopes:[]},"source.ballerina":{id:"ballerina",embeddedScopes:[]},"source.batchfile":{id:"bat",embeddedScopes:[]},"text.beancount":{id:"beancount",embeddedScopes:[]},"source.berry":{id:"berry",embeddedScopes:[]},"text.bibtex":{id:"bibtex",embeddedScopes:[]},"source.bicep":{id:"bicep",embeddedScopes:[]},"text.html.php.blade":{id:"blade",embeddedScopes:["text.html.basic","text.xml","source.sql","source.js","source.json","source.css"]},"source.c":{id:"c",embeddedScopes:[]},"source.cadence":{id:"cadence",embeddedScopes:[]},"source.clar":{id:"clarity",embeddedScopes:[]},"source.clojure":{id:"clojure",embeddedScopes:[]},"source.cmake":{id:"cmake",embeddedScopes:[]},"source.cobol":{id:"cobol",embeddedScopes:["source.sql","text.html.basic","source.java"]},"text.codeowners":{id:"codeowners",embeddedScopes:[]},"source.ql":{id:"codeql",embeddedScopes:[]},"source.coffee":{id:"coffee",embeddedScopes:["source.js"]},"source.commonlisp":{id:"common-lisp",embeddedScopes:[]},"source.cpp":{id:"cpp",embeddedScopes:["source.regexp.python","source.glsl","source.sql"]},"source.crystal":{id:"crystal",embeddedScopes:["text.html.basic","source.sql","source.css","source.c","source.js","source.shell"]},"source.cs":{id:"csharp",embeddedScopes:[]},"source.css":{id:"css",embeddedScopes:[]},"text.csv":{id:"csv",embeddedScopes:[]},"source.cue":{id:"cue",embeddedScopes:[]},"source.cypher":{id:"cypher",embeddedScopes:[]},"source.d":{id:"d",embeddedScopes:[]},"source.dart":{id:"dart",embeddedScopes:[]},"source.dax":{id:"dax",embeddedScopes:[]},"source.desktop":{id:"desktop",embeddedScopes:[]},"source.diff":{id:"diff",embeddedScopes:[]},"source.dockerfile":{id:"docker",embeddedScopes:[]},"source.dotenv":{id:"dotenv",embeddedScopes:[]},"source.dm":{id:"dream-maker",embeddedScopes:[]},"text.html.edge":{id:"edge",embeddedScopes:["source.ts","text.html.basic","text.html.derivative"]},"source.elixir":{id:"elixir",embeddedScopes:["text.html.basic"]},"source.elm":{id:"elm",embeddedScopes:["source.glsl"]},"source.emacs.lisp":{id:"emacs-lisp",embeddedScopes:[]},"text.html.erb":{id:"erb",embeddedScopes:["text.html.basic","source.ruby"]},"source.erlang":{id:"erlang",embeddedScopes:[]},"source.fnl":{id:"fennel",embeddedScopes:[]},"source.fish":{id:"fish",embeddedScopes:[]},"source.ftl":{id:"fluent",embeddedScopes:[]},"source.fortran.fixed":{id:"fortran-fixed-form",embeddedScopes:["source.fortran.free"]},"source.fortran.free":{id:"fortran-free-form",embeddedScopes:[]},"source.fsharp":{id:"fsharp",embeddedScopes:["text.html.markdown"]},"source.gdresource":{id:"gdresource",embeddedScopes:["source.gdshader","source.gdscript"]},"source.gdscript":{id:"gdscript",embeddedScopes:[]},"source.gdshader":{id:"gdshader",embeddedScopes:[]},"source.genie":{id:"genie",embeddedScopes:[]},"text.gherkin.feature":{id:"gherkin",embeddedScopes:[]},"text.git-commit":{id:"git-commit",embeddedScopes:["source.diff"]},"text.git-rebase":{id:"git-rebase",embeddedScopes:["source.shell"]},"source.gleam":{id:"gleam",embeddedScopes:[]},"source.gjs":{id:"glimmer-js",embeddedScopes:["source.js","source.ts","source.css","text.html.basic"]},"source.gts":{id:"glimmer-ts",embeddedScopes:["source.ts","source.css","source.js","text.html.basic"]},"source.glsl":{id:"glsl",embeddedScopes:["source.c"]},"source.gnuplot":{id:"gnuplot",embeddedScopes:[]},"source.go":{id:"go",embeddedScopes:[]},"source.graphql":{id:"graphql",embeddedScopes:["source.js","source.ts","source.js.jsx","source.tsx"]},"source.groovy":{id:"groovy",embeddedScopes:[]},"source.hack":{id:"hack",embeddedScopes:["text.html.basic","source.sql"]},"text.haml":{id:"haml",embeddedScopes:["source.ruby","source.js","source.sass","source.coffee","text.html.markdown","source.css"]},"text.html.handlebars":{id:"handlebars",embeddedScopes:["text.html.basic","source.css","source.js","source.yaml"]},"source.haskell":{id:"haskell",embeddedScopes:[]},"source.hx":{id:"haxe",embeddedScopes:[]},"source.hcl":{id:"hcl",embeddedScopes:[]},"source.hjson":{id:"hjson",embeddedScopes:[]},"source.hlsl":{id:"hlsl",embeddedScopes:[]},"text.html.basic":{id:"html",embeddedScopes:["source.js","source.css"]},"text.html.derivative":{id:"html-derivative",embeddedScopes:["text.html.basic"]},"source.http":{id:"http",embeddedScopes:["source.shell","source.json","text.xml","source.graphql"]},"source.hxml":{id:"hxml",embeddedScopes:["source.hx"]},"source.hy":{id:"hy",embeddedScopes:[]},"source.imba":{id:"imba",embeddedScopes:["source.ts"]},"source.ini":{id:"ini",embeddedScopes:[]},"source.java":{id:"java",embeddedScopes:[]},"source.js":{id:"javascript",embeddedScopes:[]},"source.jinja":{id:"jinja",embeddedScopes:[]},"source.jison":{id:"jison",embeddedScopes:["source.js"]},"source.json":{id:"json",embeddedScopes:[]},"source.json5":{id:"json5",embeddedScopes:[]},"source.json.comments":{id:"jsonc",embeddedScopes:[]},"source.json.lines":{id:"jsonl",embeddedScopes:[]},"source.jsonnet":{id:"jsonnet",embeddedScopes:[]},"source.jssm":{id:"jssm",embeddedScopes:[]},"source.js.jsx":{id:"jsx",embeddedScopes:[]},"source.julia":{id:"julia",embeddedScopes:["source.cpp","source.python","source.js","source.r","source.sql"]},"source.kotlin":{id:"kotlin",embeddedScopes:[]},"source.kusto":{id:"kusto",embeddedScopes:[]},"text.tex.latex":{id:"latex",embeddedScopes:["text.tex","source.shell","source.css","source.gnuplot","source.haskell","text.html.basic","source.java","source.julia","source.js","source.lua","source.python","source.ruby","source.rust","source.ts","text.xml","source.yaml","source.scala"]},"source.lean4":{id:"lean",embeddedScopes:[]},"source.css.less":{id:"less",embeddedScopes:[]},"text.html.liquid":{id:"liquid",embeddedScopes:["text.html.basic","source.css","source.json","source.js"]},"text.log":{id:"log",embeddedScopes:[]},"source.logo":{id:"logo",embeddedScopes:[]},"source.lua":{id:"lua",embeddedScopes:["source.c"]},"source.luau":{id:"luau",embeddedScopes:[]},"source.makefile":{id:"make",embeddedScopes:[]},"text.html.markdown":{id:"markdown",embeddedScopes:["source.css","text.html.basic","source.ini","source.java","source.lua","source.makefile","source.perl","source.r","source.ruby","source.php","source.sql","source.asp.vb.net","text.xml","text.xml.xsl","source.yaml","source.batchfile","source.clojure","source.coffee","source.c","source.cpp","source.diff","source.dockerfile","text.git-commit","text.git-rebase","source.go","source.groovy","text.pug","source.js","source.json","source.json.comments","source.css.less","source.objc","source.swift","source.css.scss","source.perl.6","source.powershell","source.python","source.julia","source.regexp.python","source.rust","source.scala","source.shell","source.ts","source.tsx","source.cs","source.fsharp","source.dart","text.html.handlebars","text.log","source.erlang","source.elixir","text.tex.latex","text.bibtex","text.html.derivative"]},"text.marko":{id:"marko",embeddedScopes:["source.css","source.css.less","source.css.scss","source.js"]},"source.matlab":{id:"matlab",embeddedScopes:[]},"text.markdown.mdc":{id:"mdc",embeddedScopes:["text.html.markdown","source.yaml","text.html.derivative"]},"source.mdx":{id:"mdx",embeddedScopes:["source.tsx","source.toml","source.yaml","source.c","source.clojure","source.coffee","source.cpp","source.cs","source.css","source.diff","source.dockerfile","source.elixir","source.elm","source.erlang","source.go","source.graphql","source.haskell","text.html.basic","source.ini","source.java","source.js","source.json","source.julia","source.kotlin","source.css.less","source.lua","source.makefile","text.html.markdown","source.objc","source.perl","source.python","source.r","source.ruby","source.rust","source.scala","source.css.scss","source.shell","text.shell-session","source.sql","text.xml","source.swift","source.ts"]},"markdown.mermaid.codeblock":{id:"mermaid",embeddedScopes:[]},"source.mojo":{id:"mojo",embeddedScopes:[]},"source.move":{id:"move",embeddedScopes:[]},"source.narrat":{id:"narrat",embeddedScopes:[]},"source.nextflow":{id:"nextflow",embeddedScopes:[]},"source.nginx":{id:"nginx",embeddedScopes:["source.lua"]},"source.nim":{id:"nim",embeddedScopes:["source.c","text.html.basic","text.xml","source.js","source.css","source.glsl","text.html.markdown"]},"source.nix":{id:"nix",embeddedScopes:[]},"source.nushell":{id:"nushell",embeddedScopes:[]},"source.objc":{id:"objective-c",embeddedScopes:[]},"source.objcpp":{id:"objective-cpp",embeddedScopes:[]},"source.ocaml":{id:"ocaml",embeddedScopes:[]},"source.pascal":{id:"pascal",embeddedScopes:[]},"source.perl":{id:"perl",embeddedScopes:["text.html.basic","text.xml","source.css","source.js","source.sql"]},"source.php":{id:"php",embeddedScopes:["text.html.basic","text.xml","source.sql","source.js","source.json","source.css"]},"source.plsql.oracle":{id:"plsql",embeddedScopes:[]},"source.po":{id:"po",embeddedScopes:[]},"source.css.postcss":{id:"postcss",embeddedScopes:[]},"source.powerquery":{id:"powerquery",embeddedScopes:[]},"source.powershell":{id:"powershell",embeddedScopes:[]},"source.prisma":{id:"prisma",embeddedScopes:[]},"source.prolog":{id:"prolog",embeddedScopes:[]},"source.proto":{id:"proto",embeddedScopes:[]},"text.pug":{id:"pug",embeddedScopes:["source.js","source.css","source.sass","source.css.scss","source.stylus","source.coffee","text.html.basic"]},"source.puppet":{id:"puppet",embeddedScopes:[]},"source.purescript":{id:"purescript",embeddedScopes:[]},"source.python":{id:"python",embeddedScopes:[]},"source.qml":{id:"qml",embeddedScopes:["source.js"]},"source.qmldir":{id:"qmldir",embeddedScopes:[]},"source.qss":{id:"qss",embeddedScopes:[]},"source.r":{id:"r",embeddedScopes:[]},"source.racket":{id:"racket",embeddedScopes:[]},"source.perl.6":{id:"raku",embeddedScopes:[]},"text.aspnetcorerazor":{id:"razor",embeddedScopes:["text.html.basic","source.cs"]},"source.reg":{id:"reg",embeddedScopes:[]},"source.regexp.python":{id:"regexp",embeddedScopes:[]},"source.rel":{id:"rel",embeddedScopes:[]},"source.riscv":{id:"riscv",embeddedScopes:[]},"source.rst":{id:"rst",embeddedScopes:["text.html.derivative","source.cpp","source.python","source.js","source.shell","source.yaml","source.cmake","source.ruby"]},"source.ruby":{id:"ruby",embeddedScopes:["text.html.basic","text.xml","source.sql","source.css","source.c","source.js","source.shell","source.lua"]},"source.rust":{id:"rust",embeddedScopes:[]},"source.sas":{id:"sas",embeddedScopes:["source.sql"]},"source.sass":{id:"sass",embeddedScopes:[]},"source.scala":{id:"scala",embeddedScopes:[]},"source.scheme":{id:"scheme",embeddedScopes:[]},"source.css.scss":{id:"scss",embeddedScopes:["source.css"]},"source.shaderlab":{id:"shaderlab",embeddedScopes:["source.hlsl"]},"source.shell":{id:"shellscript",embeddedScopes:[]},"text.shell-session":{id:"shellsession",embeddedScopes:["source.shell"]},"source.smalltalk":{id:"smalltalk",embeddedScopes:[]},"source.solidity":{id:"solidity",embeddedScopes:[]},"text.html.soy":{id:"soy",embeddedScopes:["text.html.basic"]},"source.sparql":{id:"sparql",embeddedScopes:["source.turtle"]},"source.splunk_search":{id:"splunk",embeddedScopes:[]},"source.sql":{id:"sql",embeddedScopes:[]},"source.ssh-config":{id:"ssh-config",embeddedScopes:[]},"source.stata":{id:"stata",embeddedScopes:["source.sql"]},"source.stylus":{id:"stylus",embeddedScopes:[]},"source.svelte":{id:"svelte",embeddedScopes:["source.js","source.ts","source.coffee","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.css.postcss","text.pug","text.html.markdown"]},"source.swift":{id:"swift",embeddedScopes:[]},"source.systemverilog":{id:"system-verilog",embeddedScopes:[]},"source.systemd":{id:"systemd",embeddedScopes:[]},"source.tasl":{id:"tasl",embeddedScopes:[]},"source.tcl":{id:"tcl",embeddedScopes:[]},"source.templ":{id:"templ",embeddedScopes:["source.go","source.js","source.css"]},"source.hcl.terraform":{id:"terraform",embeddedScopes:[]},"text.tex":{id:"tex",embeddedScopes:["source.r"]},"source.toml":{id:"toml",embeddedScopes:[]},"source.ts.tags":{id:"ts-tags",embeddedScopes:["source.ts"]},"text.tsv":{id:"tsv",embeddedScopes:[]},"source.tsx":{id:"tsx",embeddedScopes:[]},"source.turtle":{id:"turtle",embeddedScopes:[]},"text.html.twig":{id:"twig",embeddedScopes:["source.css","source.js","source.css.scss","source.php","source.python","source.ruby"]},"source.txt":{id:"txt",embeddedScopes:[]},"source.ts":{id:"typescript",embeddedScopes:[]},"source.tsp":{id:"typespec",embeddedScopes:[]},"source.typst":{id:"typst",embeddedScopes:[]},"source.v":{id:"v",embeddedScopes:[]},"source.vala":{id:"vala",embeddedScopes:[]},"source.asp.vb.net":{id:"vb",embeddedScopes:[]},"source.verilog":{id:"verilog",embeddedScopes:[]},"source.vhdl":{id:"vhdl",embeddedScopes:[]},"source.viml":{id:"viml",embeddedScopes:[]},"source.vue":{id:"vue",embeddedScopes:["text.html.basic","text.html.markdown","text.pug","source.stylus","source.sass","source.css","source.css.scss","source.css.less","source.js","source.ts","source.js.jsx","source.tsx","source.coffee","source.json","source.json.comments","source.json5","source.yaml","source.toml","source.graphql","text.html.derivative"]},"text.html.vue-html":{id:"vue-html",embeddedScopes:["source.vue","source.js"]},"source.vyper":{id:"vyper",embeddedScopes:[]},"source.wat":{id:"wasm",embeddedScopes:[]},"source.wenyan":{id:"wenyan",embeddedScopes:[]},"source.wgsl":{id:"wgsl",embeddedScopes:[]},"source.wikitext":{id:"wikitext",embeddedScopes:["text.html.basic","source.css","source.ini","source.java","source.lua","source.makefile","source.perl","source.r","source.ruby","source.php","source.sql","source.asp.vb.net","text.xml","text.xml.xsl","source.yaml","source.batchfile","source.clojure","source.coffee","source.c","source.cpp","source.diff","source.dockerfile","source.go","source.groovy","text.pug","source.js","source.json.comments","source.css.less","source.objc","source.swift","source.css.scss","source.perl.6","source.powershell","source.python","source.julia","source.rust","source.scala","source.shell","source.ts","source.cs","source.fsharp","source.dart","text.html.handlebars","text.html.markdown","source.erlang","source.elixir","text.tex.latex","text.bibtex","source.json"]},"source.wolfram":{id:"wolfram",embeddedScopes:[]},"text.xml":{id:"xml",embeddedScopes:["source.java"]},"text.xml.xsl":{id:"xsl",embeddedScopes:["text.xml"]},"source.yaml":{id:"yaml",embeddedScopes:[]},"source.zenscript":{id:"zenscript",embeddedScopes:[]},"source.zig":{id:"zig",embeddedScopes:[]}};var x={d:(e,t)=>{for(var s in t)x.o(t,s)&&!x.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},w={};x.d(w,{_X:()=>Qe,Bz:()=>He,ot:()=>ze,u:()=>De,jG:()=>N,Pn:()=>Ke});const v="undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG;var C;function j(e,t){const s=[],r=function(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,s=t.exec(e);return{next:()=>{if(!s)return null;const r=s[0];return s=t.exec(e),r}}}(e);let o=r.next();for(;null!==o;){let e=0;if(2===o.length&&":"===o.charAt(1)){switch(o.charAt(0)){case"R":e=1;break;case"L":e=-1;break;default:console.log(`Unknown priority ${o} in scope selector`)}o=r.next()}let t=c();if(s.push({matcher:t,priority:e}),","!==o)break;o=r.next()}return s;function n(){if("-"===o){o=r.next();const e=n();return t=>!!e&&!e(t)}if("("===o){o=r.next();const e=function(){const e=[];let t=c();for(;t&&(e.push(t),"|"===o||","===o);){do{o=r.next()}while("|"===o||","===o);t=c()}return t=>e.some((e=>e(t)))}();return")"===o&&(o=r.next()),e}if(A(o)){const e=[];do{e.push(o),o=r.next()}while(A(o));return s=>t(e,s)}return null}function c(){const e=[];let t=n();for(;t;)e.push(t),t=n();return t=>e.every((e=>e(t)))}}function A(e){return!!e&&!!e.match(/[\w\.:]+/)}function N(e){"function"==typeof e.dispose&&e.dispose()}function P(e){return Array.isArray(e)?function(e){let t=[];for(let s=0,r=e.length;s<r;s++)t[s]=P(e[s]);return t}(e):"object"==typeof e?function(e){let t={};for(let s in e)t[s]=P(e[s]);return t}(e):e}function R(e,...t){return t.forEach((t=>{for(let s in t)e[s]=t[s]})),e}function E(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return 0===t?e:~t==e.length-1?E(e.substring(0,e.length-1)):e.substr(1+~t)}!function(e){e.toBinaryStr=function(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t},e.print=function(t){const s=e.getLanguageId(t),r=e.getTokenType(t),o=e.getFontStyle(t),n=e.getForeground(t),c=e.getBackground(t);console.log({languageId:s,tokenType:r,fontStyle:o,foreground:n,background:c})},e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(768&e)>>>8},e.containsBalancedBrackets=function(e){return 0!=(1024&e)},e.getFontStyle=function(e){return(30720&e)>>>11},e.getForeground=function(e){return(16744448&e)>>>15},e.getBackground=function(e){return(4278190080&e)>>>24},e.set=function(t,s,r,o,n,c,i){let a=e.getLanguageId(t),u=e.getTokenType(t),l=e.containsBalancedBrackets(t)?1:0,d=e.getFontStyle(t),h=e.getForeground(t),p=e.getBackground(t);return 0!==s&&(a=s),8!==r&&(u=r),null!==o&&(l=o?1:0),-1!==n&&(d=n),0!==c&&(h=c),0!==i&&(p=i),(a<<0|u<<8|l<<10|d<<11|h<<15|p<<24)>>>0}}(C||(C={}));let I=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;class L{static hasCaptures(e){return null!==e&&(I.lastIndex=0,I.test(e))}static replaceCaptures(e,t,s){return e.replace(I,((e,r,o,n)=>{let c=s[parseInt(r||o,10)];if(!c)return e;{let e=t.substring(c.start,c.end);for(;"."===e[0];)e=e.substring(1);switch(n){case"downcase":return e.toLowerCase();case"upcase":return e.toUpperCase();default:return e}}}))}}function B(e,t){return e<t?-1:e>t?1:0}function O(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;let s=e.length,r=t.length;if(s===r){for(let r=0;r<s;r++){let s=B(e[r],t[r]);if(0!==s)return s}return 0}return s-r}function G(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function T(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}class q{constructor(e){this.fn=e,this.cache=new Map}get(e){if(this.cache.has(e))return this.cache.get(e);const t=this.fn(e);return this.cache.set(e,t),t}}const F="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};class ${constructor(e){this.scopeName=e}toKey(){return this.scopeName}}class M{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}}class W{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}}class U{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new $(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new W;for(const s of e)D(s,this.initialScopeName,this.repo,t);for(const e of t.references)if(e instanceof $){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName))continue;if(this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}}function D(e,t,s,r){const o=s.lookup(e.scopeName);if(!o){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const n=s.lookup(t);e instanceof $?H({baseGrammar:n,selfGrammar:o},r):z(e.ruleName,{baseGrammar:n,selfGrammar:o,repository:o.repository},r);const c=s.injections(e.scopeName);if(c)for(const e of c)r.add(new $(e))}function z(e,t,s){t.repository&&t.repository[e]&&Q([t.repository[e]],t,s)}function H(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Q(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Q(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Q(e,t,s){for(const r of e){if(s.visitedRule.has(r))continue;s.visitedRule.add(r);const e=r.repository?R({},t.repository,r.repository):t.repository;Array.isArray(r.patterns)&&Q(r.patterns,{...t,repository:e},s);const o=r.include;if(!o)continue;const n=Z(o);switch(n.kind){case 0:H({...t,selfGrammar:t.baseGrammar},s);break;case 1:H(t,s);break;case 2:z(n.ruleName,{...t,repository:e},s);break;case 3:case 4:const r=n.scopeName===t.selfGrammar.scopeName?t.selfGrammar:n.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(r){const o={baseGrammar:t.baseGrammar,selfGrammar:r,repository:e};4===n.kind?z(n.ruleName,o,s):H(o,s)}else 4===n.kind?s.add(new M(n.scopeName,n.ruleName)):s.add(new $(n.scopeName))}}}class K{constructor(){this.kind=0}}class V{constructor(){this.kind=1}}class Y{constructor(e){this.ruleName=e,this.kind=2}}class X{constructor(e){this.scopeName=e,this.kind=3}}class J{constructor(e,t){this.scopeName=e,this.ruleName=t,this.kind=4}}function Z(e){if("$base"===e)return new K;if("$self"===e)return new V;const t=e.indexOf("#");if(-1===t)return new X(e);if(0===t)return new Y(e.substring(1));{const s=e.substring(0,t),r=e.substring(t+1);return new J(s,r)}}const ee=/\\(\d+)/,te=/\\(\d+)/g;class se{constructor(e,t,s,r){this.$location=e,this.id=t,this._name=s||null,this._nameIsCapturing=L.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=L.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${E(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?L.replaceCaptures(this._name,e,t):this._name}getContentName(e,t){return this._contentNameIsCapturing&&null!==this._contentName?L.replaceCaptures(this._contentName,e,t):this._contentName}}class re extends se{constructor(e,t,s,r,o){super(e,t,s,r),this.retokenizeCapturedWithRuleId=o}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,s,r){throw new Error("Not supported!")}}class oe extends se{constructor(e,t,s,r,o){super(e,t,s,null),this._match=new ue(r,this.id),this.captures=o,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e).compileAG(e,s,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new le,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class ne extends se{constructor(e,t,s,r,o){super(e,t,s,r),this.patterns=o.patterns,this.hasMissingPatterns=o.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const s of this.patterns)e.getRule(s).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e).compileAG(e,s,r)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new le,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}class ce extends se{constructor(e,t,s,r,o,n,c,i,a,u){super(e,t,s,r),this._begin=new ue(o,this.id),this.beginCaptures=n,this._end=new ue(c||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=i,this.applyEndPatternLast=a||!1,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e,t).compileAG(e,s,r)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new le;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}}class ie extends se{constructor(e,t,s,r,o,n,c,i,a){super(e,t,s,r),this._begin=new ue(o,this.id),this.beginCaptures=n,this.whileCaptures=i,this._while=new ue(c,-2),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=a.patterns,this.hasMissingPatterns=a.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,r){return this._getCachedCompiledPatterns(e).compileAG(e,s,r)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new le;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,s,r){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,s,r)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new le,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}}class ae{static createCaptureRule(e,t,s,r,o){return e.registerRule((e=>new re(t,e,s,r,o)))}static getCompiledRuleId(e,t,s){return e.id||t.registerRule((r=>{if(e.id=r,e.match)return new oe(e.$vscodeTextmateLocation,e.id,e.name,e.match,ae._compileCaptures(e.captures,t,s));if(void 0===e.begin){e.repository&&(s=R({},s,e.repository));let r=e.patterns;return void 0===r&&e.include&&(r=[{include:e.include}]),new ne(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,ae._compilePatterns(r,t,s))}return e.while?new ie(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,ae._compileCaptures(e.beginCaptures||e.captures,t,s),e.while,ae._compileCaptures(e.whileCaptures||e.captures,t,s),ae._compilePatterns(e.patterns,t,s)):new ce(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,ae._compileCaptures(e.beginCaptures||e.captures,t,s),e.end,ae._compileCaptures(e.endCaptures||e.captures,t,s),e.applyEndPatternLast,ae._compilePatterns(e.patterns,t,s))})),e.id}static _compileCaptures(e,t,s){let r=[];if(e){let o=0;for(const t in e){if("$vscodeTextmateLocation"===t)continue;const e=parseInt(t,10);e>o&&(o=e)}for(let e=0;e<=o;e++)r[e]=null;for(const o in e){if("$vscodeTextmateLocation"===o)continue;const n=parseInt(o,10);let c=0;e[o].patterns&&(c=ae.getCompiledRuleId(e[o],t,s)),r[n]=ae.createCaptureRule(t,e[o].$vscodeTextmateLocation,e[o].name,e[o].contentName,c)}}return r}static _compilePatterns(e,t,s){let r=[];if(e)for(let o=0,n=e.length;o<n;o++){const n=e[o];let c=-1;if(n.include){const e=Z(n.include);switch(e.kind){case 0:case 1:c=ae.getCompiledRuleId(s[n.include],t,s);break;case 2:let r=s[e.ruleName];r&&(c=ae.getCompiledRuleId(r,t,s));break;case 3:case 4:const o=e.scopeName,i=4===e.kind?e.ruleName:null,a=t.getExternalGrammar(o,s);if(a)if(i){let e=a.repository[i];e&&(c=ae.getCompiledRuleId(e,t,a.repository))}else c=ae.getCompiledRuleId(a.repository.$self,t,a.repository)}}else c=ae.getCompiledRuleId(n,t,s);if(-1!==c){const e=t.getRule(c);let s=!1;if((e instanceof ne||e instanceof ce||e instanceof ie)&&e.hasMissingPatterns&&0===e.patterns.length&&(s=!0),s)continue;r.push(c)}}return{patterns:r,hasMissingPatterns:(e?e.length:0)!==r.length}}}class ue{constructor(e,t){if(e){const t=e.length;let s=0,r=[],o=!1;for(let n=0;n<t;n++)if("\\"===e.charAt(n)&&n+1<t){const t=e.charAt(n+1);"z"===t?(r.push(e.substring(s,n)),r.push("$(?!\\n)(?<!\\n)"),s=n+2):"A"!==t&&"G"!==t||(o=!0),n++}this.hasAnchor=o,0===s?this.source=e:(r.push(e.substring(s,t)),this.source=r.join(""))}else this.hasAnchor=!1,this.source=e;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=t,this.hasBackReferences=ee.test(this.source)}clone(){return new ue(this.source,this.ruleId)}setSource(e){this.source!==e&&(this.source=e,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(e,t){let s=t.map((t=>e.substring(t.start,t.end)));return te.lastIndex=0,this.source.replace(te,((e,t)=>T(s[parseInt(t,10)]||"")))}_buildAnchorCache(){let e,t,s,r,o=[],n=[],c=[],i=[];for(e=0,t=this.source.length;e<t;e++)s=this.source.charAt(e),o[e]=s,n[e]=s,c[e]=s,i[e]=s,"\\"===s&&e+1<t&&(r=this.source.charAt(e+1),"A"===r?(o[e+1]="￿",n[e+1]="￿",c[e+1]="A",i[e+1]="A"):"G"===r?(o[e+1]="￿",n[e+1]="G",c[e+1]="￿",i[e+1]="G"):(o[e+1]=r,n[e+1]=r,c[e+1]=r,i[e+1]=r),e++);return{A0_G0:o.join(""),A0_G1:n.join(""),A1_G0:c.join(""),A1_G1:i.join("")}}resolveAnchors(e,t){return this.hasAnchor&&this._anchorCache?e?t?this._anchorCache.A1_G1:this._anchorCache.A1_G0:t?this._anchorCache.A0_G1:this._anchorCache.A0_G0:this.source}}class le{constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map((e=>e.source));this._cached=new de(e,t,this._items.map((e=>e.ruleId)))}return this._cached}compileAG(e,t,s){return this._hasAnchors?t?s?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G0):s?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,s){let r=this._items.map((e=>e.resolveAnchors(t,s)));return new de(e,r,this._items.map((e=>e.ruleId)))}}class de{constructor(e,t,s){this.regExps=t,this.rules=s,this.scanner=e.createOnigScanner(t)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const e=[];for(let t=0,s=this.rules.length;t<s;t++)e.push(" - "+this.rules[t]+": "+this.regExps[t]);return e.join("\n")}findNextMatchSync(e,t,s){const r=this.scanner.findNextMatchSync(e,t,s);return r?{ruleId:this.rules[r.index],captureIndices:r.captureIndices}:null}}class he{constructor(e,t,s){this._colorMap=e,this._defaults=t,this._root=s,this._cachedMatchRoot=new q((e=>this._root.match(e)))}static createFromRawTheme(e,t){return this.createFromParsedTheme(function(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,s=[],r=0;for(let e=0,o=t.length;e<o;e++){let o,n=t[e];if(!n.settings)continue;if("string"==typeof n.scope){let e=n.scope;e=e.replace(/^[,]+/,""),e=e.replace(/[,]+$/,""),o=e.split(",")}else o=Array.isArray(n.scope)?n.scope:[""];let c=-1;if("string"==typeof n.settings.fontStyle){c=0;let e=n.settings.fontStyle.split(" ");for(let t=0,s=e.length;t<s;t++)switch(e[t]){case"italic":c|=1;break;case"bold":c|=2;break;case"underline":c|=4;break;case"strikethrough":c|=8}}let i=null;"string"==typeof n.settings.foreground&&G(n.settings.foreground)&&(i=n.settings.foreground);let a=null;"string"==typeof n.settings.background&&G(n.settings.background)&&(a=n.settings.background);for(let t=0,n=o.length;t<n;t++){let n=o[t].trim().split(" "),u=n[n.length-1],l=null;n.length>1&&(l=n.slice(0,n.length-1),l.reverse()),s[r++]=new ge(u,l,e,c,i,a)}}return s}(e),t)}static createFromParsedTheme(e,t){return function(e,t){e.sort(((e,t)=>{let s=B(e.scope,t.scope);return 0!==s?s:(s=O(e.parentScopes,t.parentScopes),0!==s?s:e.index-t.index)}));let s=0,r="#000000",o="#ffffff";for(;e.length>=1&&""===e[0].scope;){let t=e.shift();-1!==t.fontStyle&&(s=t.fontStyle),null!==t.foreground&&(r=t.foreground),null!==t.background&&(o=t.background)}let n=new be(t),c=new fe(s,n.getId(r),n.getId(o)),i=new _e(new ye(0,null,-1,0,0),[]);for(let t=0,s=e.length;t<s;t++){let s=e[t];i.insert(0,s.scope,s.parentScopes,s.fontStyle,n.getId(s.foreground),n.getId(s.background))}return new he(n,c,i)}(e,t)}getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(null===e)return this._defaults;const t=e.scopeName,s=this._cachedMatchRoot.get(t).find((t=>function(e,t){if(null===t)return!0;let s=0,r=t[s];for(;e;){if(me(e.scopeName,r)){if(s++,s===t.length)return!0;r=t[s]}e=e.parent}return!1}(e.parent,t.parentScopes)));return s?new fe(s.fontStyle,s.foreground,s.background):null}}class pe{constructor(e,t){this.parent=e,this.scopeName=t}static push(e,t){for(const s of t)e=new pe(e,s);return e}static from(...e){let t=null;for(let s=0;s<e.length;s++)t=new pe(t,e[s]);return t}push(e){return new pe(this,e)}getSegments(){let e=this;const t=[];for(;e;)t.push(e.scopeName),e=e.parent;return t.reverse(),t}toString(){return this.getSegments().join(" ")}extends(e){return this===e||null!==this.parent&&this.parent.extends(e)}getExtensionIfDefined(e){const t=[];let s=this;for(;s&&s!==e;)t.push(s.scopeName),s=s.parent;return s===e?t.reverse():void 0}}function me(e,t){return t===e||e.startsWith(t)&&"."===e[t.length]}class fe{constructor(e,t,s){this.fontStyle=e,this.foregroundId=t,this.backgroundId=s}}class ge{constructor(e,t,s,r,o,n){this.scope=e,this.parentScopes=t,this.index=s,this.fontStyle=r,this.foreground=o,this.background=n}}class be{constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,s=e.length;t<s;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(null===e)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}}class ye{constructor(e,t,s,r,o){this.scopeDepth=e,this.parentScopes=t,this.fontStyle=s,this.foreground=r,this.background=o}clone(){return new ye(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(e){let t=[];for(let s=0,r=e.length;s<r;s++)t[s]=e[s].clone();return t}acceptOverwrite(e,t,s,r){this.scopeDepth>e?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==s&&(this.foreground=s),0!==r&&(this.background=r)}}class _e{constructor(e,t=[],s={}){this._mainRule=e,this._children=s,this._rulesWithParentScopes=t}static _sortBySpecificity(e){return 1===e.length||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const s=e.parentScopes,r=t.parentScopes;let o=null===s?0:s.length,n=null===r?0:r.length;if(o===n)for(let e=0;e<o;e++){const t=s[e].length,o=r[e].length;if(t!==o)return o-t}return n-o}return t.scopeDepth-e.scopeDepth}match(e){if(""===e)return _e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes));let t,s,r=e.indexOf(".");return-1===r?(t=e,s=""):(t=e.substring(0,r),s=e.substring(r+1)),this._children.hasOwnProperty(t)?this._children[t].match(s):_e._sortBySpecificity([].concat(this._mainRule).concat(this._rulesWithParentScopes))}insert(e,t,s,r,o,n){if(""===t)return void this._doInsertHere(e,s,r,o,n);let c,i,a,u=t.indexOf(".");-1===u?(c=t,i=""):(c=t.substring(0,u),i=t.substring(u+1)),this._children.hasOwnProperty(c)?a=this._children[c]:(a=new _e(this._mainRule.clone(),ye.cloneArr(this._rulesWithParentScopes)),this._children[c]=a),a.insert(e+1,i,s,r,o,n)}_doInsertHere(e,t,s,r,o){if(null!==t){for(let n=0,c=this._rulesWithParentScopes.length;n<c;n++){let c=this._rulesWithParentScopes[n];if(0===O(c.parentScopes,t))return void c.acceptOverwrite(e,s,r,o)}-1===s&&(s=this._mainRule.fontStyle),0===r&&(r=this._mainRule.foreground),0===o&&(o=this._mainRule.background),this._rulesWithParentScopes.push(new ye(e,t,s,r,o))}else this._mainRule.acceptOverwrite(e,s,r,o)}}class ke{constructor(e,t){this.languageId=e,this.tokenType=t}}class Se{constructor(e,t){this._getBasicScopeAttributes=new q((e=>{const t=this._scopeToLanguage(e),s=this._toStandardTokenType(e);return new ke(t,s)})),this._defaultAttributes=new ke(e,8),this._embeddedLanguagesMatcher=new xe(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return null===e?Se._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(Se.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}Se._NULL_SCOPE_METADATA=new ke(0,0),Se.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class xe{constructor(e){if(0===e.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map((([e,t])=>T(e)));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);return t?this.values.get(t[1]):void 0}}class we{constructor(e,t){this.stack=e,this.stoppedEarly=t}}function ve(e,t,s,r,o,n,c,i){const a=t.content.length;let u=!1,l=-1;if(c){const c=function(e,t,s,r,o,n){let c=o.beginRuleCapturedEOL?0:-1;const i=[];for(let t=o;t;t=t.pop()){const s=t.getRule(e);s instanceof ie&&i.push({rule:s,stack:t})}for(let a=i.pop();a;a=i.pop()){const{ruleScanner:i,findOptions:u}=je(a.rule,e,a.stack.endRule,s,r===c),l=i.findNextMatchSync(t,r,u);if(v&&(console.log(" scanning for while rule"),console.log(i.toString())),!l){v&&console.log(" popping "+a.rule.debugName+" - "+a.rule.debugWhileRegExp),o=a.stack.pop();break}if(-2!==l.ruleId){o=a.stack.pop();break}l.captureIndices&&l.captureIndices.length&&(n.produce(a.stack,l.captureIndices[0].start),Ae(e,t,s,a.stack,n,a.rule.whileCaptures,l.captureIndices),n.produce(a.stack,l.captureIndices[0].end),c=l.captureIndices[0].end,l.captureIndices[0].end>r&&(r=l.captureIndices[0].end,s=!1))}return{stack:o,linePos:r,anchorPosition:c,isFirstLine:s}}(e,t,s,r,o,n);o=c.stack,r=c.linePos,s=c.isFirstLine,l=c.anchorPosition}const d=Date.now();for(;!u;){if(0!==i&&Date.now()-d>i)return new we(o,!0);h()}return new we(o,!1);function h(){v&&(console.log(""),console.log(`@@scanNext ${r}: |${t.content.substr(r).replace(/\n$/,"\\n")}|`));const c=function(e,t,s,r,o,n){const c=function(e,t,s,r,o,n){const c=o.getRule(e),{ruleScanner:i,findOptions:a}=Ce(c,e,o.endRule,s,r===n);let u=0;v&&(u=F());const l=i.findNextMatchSync(t,r,a);if(v){const e=F()-u;e>5&&console.warn(`Rule ${c.debugName} (${c.id}) matching took ${e} against '${t}'`),console.log(` scanning for (linePos: ${r}, anchorPosition: ${n})`),console.log(i.toString()),l&&console.log(`matched rule id: ${l.ruleId} from ${l.captureIndices[0].start} to ${l.captureIndices[0].end}`)}return l?{captureIndices:l.captureIndices,matchedRuleId:l.ruleId}:null}(e,t,s,r,o,n),i=e.getInjections();if(0===i.length)return c;const a=function(e,t,s,r,o,n,c){let i,a=Number.MAX_VALUE,u=null,l=0;const d=n.contentNameScopesList.getScopeNames();for(let n=0,h=e.length;n<h;n++){const h=e[n];if(!h.matcher(d))continue;const p=t.getRule(h.ruleId),{ruleScanner:m,findOptions:f}=Ce(p,t,null,r,o===c),g=m.findNextMatchSync(s,o,f);if(!g)continue;v&&(console.log(` matched injection: ${h.debugSelector}`),console.log(m.toString()));const b=g.captureIndices[0].start;if(!(b>=a)&&(a=b,u=g.captureIndices,i=g.ruleId,l=h.priority,a===o))break}return u?{priorityMatch:-1===l,captureIndices:u,matchedRuleId:i}:null}(i,e,t,s,r,o,n);if(!a)return c;if(!c)return a;const u=c.captureIndices[0].start,l=a.captureIndices[0].start;return l<u||a.priorityMatch&&l===u?a:c}(e,t,s,r,o,l);if(!c)return v&&console.log(" no more matches."),n.produce(o,a),void(u=!0);const i=c.captureIndices,d=c.matchedRuleId,h=!!(i&&i.length>0)&&i[0].end>r;if(-1===d){const c=o.getRule(e);v&&console.log(" popping "+c.debugName+" - "+c.debugEndRegExp),n.produce(o,i[0].start),o=o.withContentNameScopesList(o.nameScopesList),Ae(e,t,s,o,n,c.endCaptures,i),n.produce(o,i[0].end);const d=o;if(o=o.parent,l=d.getAnchorPos(),!h&&d.getEnterPos()===r)return v&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),o=d,n.produce(o,a),void(u=!0)}else{const c=e.getRule(d);n.produce(o,i[0].start);const p=o,m=c.getName(t.content,i),f=o.contentNameScopesList.pushAttributed(m,e);if(o=o.push(d,r,l,i[0].end===a,null,f,f),c instanceof ce){const r=c;v&&console.log(" pushing "+r.debugName+" - "+r.debugBeginRegExp),Ae(e,t,s,o,n,r.beginCaptures,i),n.produce(o,i[0].end),l=i[0].end;const d=r.getContentName(t.content,i),m=f.pushAttributed(d,e);if(o=o.withContentNameScopesList(m),r.endHasBackReferences&&(o=o.withEndRule(r.getEndWithResolvedBackReferences(t.content,i))),!h&&p.hasSameRuleAs(o))return v&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),o=o.pop(),n.produce(o,a),void(u=!0)}else if(c instanceof ie){const r=c;v&&console.log(" pushing "+r.debugName),Ae(e,t,s,o,n,r.beginCaptures,i),n.produce(o,i[0].end),l=i[0].end;const d=r.getContentName(t.content,i),m=f.pushAttributed(d,e);if(o=o.withContentNameScopesList(m),r.whileHasBackReferences&&(o=o.withEndRule(r.getWhileWithResolvedBackReferences(t.content,i))),!h&&p.hasSameRuleAs(o))return v&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),o=o.pop(),n.produce(o,a),void(u=!0)}else{const r=c;if(v&&console.log(" matched "+r.debugName+" - "+r.debugMatchRegExp),Ae(e,t,s,o,n,r.captures,i),n.produce(o,i[0].end),o=o.pop(),!h)return v&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),o=o.safePop(),n.produce(o,a),void(u=!0)}}i[0].end>r&&(r=i[0].end,s=!1)}}function Ce(e,t,s,r,o){return{ruleScanner:e.compileAG(t,s,r,o),findOptions:0}}function je(e,t,s,r,o){return{ruleScanner:e.compileWhileAG(t,s,r,o),findOptions:0}}function Ae(e,t,s,r,o,n,c){if(0===n.length)return;const i=t.content,a=Math.min(n.length,c.length),u=[],l=c[0].end;for(let t=0;t<a;t++){const a=n[t];if(null===a)continue;const d=c[t];if(0===d.length)continue;if(d.start>l)break;for(;u.length>0&&u[u.length-1].endPos<=d.start;)o.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop();if(u.length>0?o.produceFromScopes(u[u.length-1].scopes,d.start):o.produce(r,d.start),a.retokenizeCapturedWithRuleId){const t=a.getName(i,c),n=r.contentNameScopesList.pushAttributed(t,e),u=a.getContentName(i,c),l=n.pushAttributed(u,e),h=r.push(a.retokenizeCapturedWithRuleId,d.start,-1,!1,null,n,l),p=e.createOnigString(i.substring(0,d.end));ve(e,p,s&&0===d.start,d.start,h,o,!1,0),N(p);continue}const h=a.getName(i,c);if(null!==h){const t=(u.length>0?u[u.length-1].scopes:r.contentNameScopesList).pushAttributed(h,e);u.push(new Ne(t,d.end))}}for(;u.length>0;)o.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop()}class Ne{constructor(e,t){this.scopes=e,this.endPos=t}}function Pe(e,t,s,r,o){const n=j(t,Re),c=ae.getCompiledRuleId(s,r,o.repository);for(const s of n)e.push({debugSelector:t,matcher:s.matcher,ruleId:c,grammar:o,priority:s.priority})}function Re(e,t){if(t.length<e.length)return!1;let s=0;return e.every((e=>{for(let r=s;r<t.length;r++)if(Ee(t[r],e))return s=r+1,!0;return!1}))}function Ee(e,t){if(!e)return!1;if(e===t)return!0;const s=t.length;return e.length>s&&e.substr(0,s)===t&&"."===e[s]}class Ie{constructor(e,t,s,r,o,n,c,i){if(this._rootScopeName=e,this.balancedBracketSelectors=n,this._onigLib=i,this._basicScopeAttributesProvider=new Se(s,r),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=c,this._grammar=Le(t,null),this._injections=null,this._tokenTypeMatchers=[],o)for(const e of Object.keys(o)){const t=j(e,Re);for(const s of t)this._tokenTypeMatchers.push({matcher:s.matcher,type:o[e]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e=[],t=this._rootScopeName,s=(e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e))(t);if(s){const r=s.injections;if(r)for(let t in r)Pe(e,t,r[t],this,s);const o=this._grammarRepository.injections(t);o&&o.forEach((t=>{const s=this.getExternalGrammar(t);if(s){const t=s.injectionSelector;t&&Pe(e,t,s,this,s)}}))}return e.sort(((e,t)=>e.priority-t.priority)),e}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),v&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const e of this._injections)console.log(` - ${e.debugSelector}`)}return this._injections}registerRule(e){const t=++this._lastRuleId,s=e(t);return this._ruleId2desc[t]=s,s}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const s=this._grammarRepository.lookup(e);if(s)return this._includedGrammars[e]=Le(s,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,s=0){const r=this._tokenize(e,t,!1,s);return{tokens:r.lineTokens.getResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}tokenizeLine2(e,t,s=0){const r=this._tokenize(e,t,!0,s);return{tokens:r.lineTokens.getBinaryResult(r.ruleStack,r.lineLength),ruleStack:r.ruleStack,stoppedEarly:r.stoppedEarly}}_tokenize(e,t,s,r){let o;if(-1===this._rootId&&(this._rootId=ae.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections()),t&&t!==Oe.NULL)o=!1,t.reset();else{o=!0;const e=this._basicScopeAttributesProvider.getDefaultAttributes(),s=this.themeProvider.getDefaults(),r=C.set(0,e.languageId,e.tokenType,null,s.fontStyle,s.foregroundId,s.backgroundId),n=this.getRule(this._rootId).getName(null,null);let c;c=n?Be.createRootAndLookUpScopeName(n,r,this):Be.createRoot("unknown",r),t=new Oe(null,this._rootId,-1,-1,!1,null,c,c)}e+="\n";const n=this.createOnigString(e),c=n.content.length,i=new Te(s,e,this._tokenTypeMatchers,this.balancedBracketSelectors),a=ve(this,n,o,0,t,i,!0,r);return N(n),{lineLength:c,lineTokens:i,ruleStack:a.stack,stoppedEarly:a.stoppedEarly}}}function Le(e,t){return(e=P(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}class Be{constructor(e,t,s){this.parent=e,this.scopePath=t,this.tokenAttributes=s}static fromExtension(e,t){let s=e,r=e?.scopePath??null;for(const e of t)r=pe.push(r,e.scopeNames),s=new Be(s,r,e.encodedTokenAttributes);return s}static createRoot(e,t){return new Be(null,new pe(null,e),t)}static createRootAndLookUpScopeName(e,t,s){const r=s.getMetadataForScope(e),o=new pe(null,e),n=s.themeProvider.themeMatch(o),c=Be.mergeAttributes(t,r,n);return new Be(null,o,c)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(e){return Be.equals(this,e)}static equals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}}static mergeAttributes(e,t,s){let r=-1,o=0,n=0;return null!==s&&(r=s.fontStyle,o=s.foregroundId,n=s.backgroundId),C.set(e,t.languageId,t.tokenType,null,r,o,n)}pushAttributed(e,t){if(null===e)return this;if(-1===e.indexOf(" "))return Be._pushAttributed(this,e,t);const s=e.split(/ /g);let r=this;for(const e of s)r=Be._pushAttributed(r,e,t);return r}static _pushAttributed(e,t,s){const r=s.getMetadataForScope(t),o=e.scopePath.push(t),n=s.themeProvider.themeMatch(o),c=Be.mergeAttributes(e.tokenAttributes,r,n);return new Be(e,o,c)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(e){const t=[];let s=this;for(;s&&s!==e;)t.push({encodedTokenAttributes:s.tokenAttributes,scopeNames:s.scopePath.getExtensionIfDefined(s.parent?.scopePath??null)}),s=s.parent;return s===e?t.reverse():void 0}}class Oe{constructor(e,t,s,r,o,n,c,i){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=o,this.endRule=n,this.nameScopesList=c,this.contentNameScopesList=i,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=s,this._anchorPos=r}equals(e){return null!==e&&Oe._equals(this,e)}static _equals(e,t){return e===t||!!this._structuralEquals(e,t)&&Be.equals(e.contentNameScopesList,t.contentNameScopesList)}static _structuralEquals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){Oe._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,s,r,o,n,c){return new Oe(this,e,t,s,r,o,n,c)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new Oe(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(e,t){const s=Be.fromExtension(e?.nameScopesList??null,t.nameScopesList);return new Oe(e,t.ruleId,t.enterPos??-1,t.anchorPos??-1,t.beginRuleCapturedEOL,t.endRule,s,Be.fromExtension(s,t.contentNameScopesList))}}Oe.NULL=new Oe(null,0,0,0,!1,null,null,null);class Ge{constructor(e,t){this.allowAny=!1,this.balancedBracketScopes=e.flatMap((e=>"*"===e?(this.allowAny=!0,[]):j(e,Re).map((e=>e.matcher)))),this.unbalancedBracketScopes=t.flatMap((e=>j(e,Re).map((e=>e.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}}class Te{constructor(e,t,s,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=s,this._lineText=v?t:null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let s=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const t=e?.getScopeNames()??[];for(const e of this._tokenTypeOverrides)e.matcher(t)&&(s=C.set(s,0,e.type,null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(s=C.set(s,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s)return void(this._lastTokenEndIndex=t);if(v){const s=e?.getScopeNames()??[];console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e<s.length;e++)console.log(" * "+s[e])}return this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(s),void(this._lastTokenEndIndex=t)}const s=e?.getScopeNames()??[];if(v){console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e<s.length;e++)console.log(" * "+s[e])}this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:s}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const s=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e<t;e++)s[e]=this._binaryTokens[e];return s}}function qe(e,t,s){const r=e.length;let o=0,n=1,c=0;function i(t){if(null===s)o+=t;else for(;t>0;)10===e.charCodeAt(o)?(o++,n++,c=0):(o++,c++),t--}function a(e){null===s?o=e:i(e-o)}function u(){for(;o<r;){let t=e.charCodeAt(o);if(32!==t&&9!==t&&13!==t&&10!==t)break;i(1)}}function l(t){return e.substr(o,t.length)===t&&(i(t.length),!0)}function d(t){let s=e.indexOf(t,o);a(-1!==s?s+t.length:r)}function h(t){let s=e.indexOf(t,o);if(-1!==s){let r=e.substring(o,s);return a(s+t.length),r}{let t=e.substr(o);return a(r),t}}r>0&&65279===e.charCodeAt(0)&&(o=1);let p=0,m=null,f=[],g=[],b=null;function y(e,t){f.push(p),g.push(m),p=e,m=t}function _(){if(0===f.length)return k("illegal state stack");p=f.pop(),m=g.pop()}function k(t){throw new Error("Near offset "+o+": "+t+" ~~~"+e.substr(o,50)+"~~~")}const S=function(){if(null===b)return k("missing <key>");let e={};null!==s&&(e[s]={filename:t,line:n,char:c}),m[b]=e,b=null,y(1,e)},x=function(){if(null===b)return k("missing <key>");let e=[];m[b]=e,b=null,y(2,e)},w=function(){let e={};null!==s&&(e[s]={filename:t,line:n,char:c}),m.push(e),y(1,e)},v=function(){let e=[];m.push(e),y(2,e)};function C(){if(1!==p)return k("unexpected </dict>");_()}function j(){return 1===p||2!==p?k("unexpected </array>"):void _()}function A(e){if(1===p){if(null===b)return k("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function N(e){if(isNaN(e))return k("cannot parse float");if(1===p){if(null===b)return k("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function P(e){if(isNaN(e))return k("cannot parse integer");if(1===p){if(null===b)return k("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function R(e){if(1===p){if(null===b)return k("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function E(e){if(1===p){if(null===b)return k("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function I(e){if(1===p){if(null===b)return k("missing <key>");m[b]=e,b=null}else 2===p?m.push(e):m=e}function L(){let e=h(">"),t=!1;return 47===e.charCodeAt(e.length-1)&&(t=!0,e=e.substring(0,e.length-1)),{name:e.trim(),isClosed:t}}function B(e){if(e.isClosed)return"";let t=h("</");return d(">"),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;o<r&&(u(),!(o>=r));){const a=e.charCodeAt(o);if(i(1),60!==a)return k("expected <");if(o>=r)return k("unexpected end of input");const h=e.charCodeAt(o);if(63===h){i(1),d("?>");continue}if(33===h){if(i(1),l("--")){d("--\x3e");continue}d(">");continue}if(47===h){if(i(1),u(),l("plist")){d(">");continue}if(l("dict")){d(">"),C();continue}if(l("array")){d(">"),j();continue}return k("unexpected closed tag")}let f=L();switch(f.name){case"dict":1===p?S():2===p?w():(m={},null!==s&&(m[s]={filename:t,line:n,char:c}),y(1,m)),f.isClosed&&C();continue;case"array":1===p?x():2===p?v():(m=[],y(2,m)),f.isClosed&&j();continue;case"key":O=B(f),1!==p?k("unexpected <key>"):null!==b?k("too many <key>"):b=O;continue;case"string":A(B(f));continue;case"real":N(parseFloat(B(f)));continue;case"integer":P(parseInt(B(f),10));continue;case"date":R(new Date(B(f)));continue;case"data":E(B(f));continue;case"true":B(f),I(!0);continue;case"false":B(f),I(!1);continue}if(!/^plist/.test(f.name))return k("unexpected opened tag "+f.name)}var O;return m}function Fe(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}class $e{constructor(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0}}class Me{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(e){return{filename:e,line:this.line,char:this.char}}}function We(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;let s,r=e.source,o=e.pos,n=e.len,c=e.line,i=e.char;for(;;){if(o>=n)return!1;if(s=r.charCodeAt(o),32!==s&&9!==s&&13!==s){if(10!==s)break;o++,c++,i=0}else o++,i++}if(t.offset=o,t.line=c,t.char=i,34===s){for(t.type=1,o++,i++;;){if(o>=n)return!1;if(s=r.charCodeAt(o),o++,i++,92!==s){if(34===s)break}else o++,i++}t.value=r.substring(t.offset+1,o-1).replace(/\\u([0-9A-Fa-f]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))).replace(/\\(.)/g,((t,s)=>{switch(s){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:Fe(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===s)t.type=2,o++,i++;else if(123===s)t.type=3,o++,i++;else if(93===s)t.type=4,o++,i++;else if(125===s)t.type=5,o++,i++;else if(58===s)t.type=6,o++,i++;else if(44===s)t.type=7,o++,i++;else if(110===s){if(t.type=8,o++,i++,s=r.charCodeAt(o),117!==s)return!1;if(o++,i++,s=r.charCodeAt(o),108!==s)return!1;if(o++,i++,s=r.charCodeAt(o),108!==s)return!1;o++,i++}else if(116===s){if(t.type=9,o++,i++,s=r.charCodeAt(o),114!==s)return!1;if(o++,i++,s=r.charCodeAt(o),117!==s)return!1;if(o++,i++,s=r.charCodeAt(o),101!==s)return!1;o++,i++}else if(102===s){if(t.type=10,o++,i++,s=r.charCodeAt(o),97!==s)return!1;if(o++,i++,s=r.charCodeAt(o),108!==s)return!1;if(o++,i++,s=r.charCodeAt(o),115!==s)return!1;if(o++,i++,s=r.charCodeAt(o),101!==s)return!1;o++,i++}else for(t.type=11;;){if(o>=n)return!1;if(s=r.charCodeAt(o),!(46===s||s>=48&&s<=57||101===s||69===s||45===s||43===s))break;o++,i++}return t.len=o-t.offset,null===t.value&&(t.value=r.substr(t.offset,t.len)),e.pos=o,e.line=c,e.char=i,!0}class Ue{constructor(e,t){this._onigLibPromise=t,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=e}dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}async grammarForScopeName(e,t,s,r,o){if(!this._grammars.has(e)){let n=this._rawGrammars.get(e);if(!n)return null;this._grammars.set(e,function(e,t,s,r,o,n,c,i){return new Ie(e,t,s,r,o,n,c,i)}(e,n,t,s,r,o,this,await this._onigLibPromise))}return this._grammars.get(e)}}function De(e,t){let s=0;const r=[];let o=e,n=t;for(;o!==n;)o&&(!n||o.depth>=n.depth)?(s++,o=o.parent):(r.push(n.toStateStackFrame()),n=n.parent);return{pops:s,newFrames:r.reverse()}}function ze(e,t){let s=e;for(let e=0;e<t.pops;e++)s=s.parent;for(const e of t.newFrames)s=Oe.pushFrame(s,e);return s}class He{constructor(e){this._options=e,this._syncRegistry=new Ue(he.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(he.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,s){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:s})}loadGrammarWithConfiguration(e,t,s){return this._loadGrammar(e,t,s.embeddedLanguages,s.tokenTypes,new Ge(s.balancedBracketSelectors||[],s.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}async _loadGrammar(e,t,s,r,o){const n=new U(this._syncRegistry,e);for(;n.Q.length>0;)await Promise.all(n.Q.map((e=>this._loadSingleGrammar(e.scopeName)))),n.processQueue();return this._grammarForScopeName(e,t,s,r,o)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const s="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,s)}}async addGrammar(e,t=[],s=0,r=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,s,r)}_grammarForScopeName(e,t=0,s=null,r=null,o=null){return this._syncRegistry.grammarForScopeName(e,t,s,r,o)}}const Qe=Oe.NULL,Ke=function(e,t=null){return null!==t&&/\.json$/.test(t)?(s=e,v?function(e,t,s){let r=new $e(e),o=new Me,n=0,c=null,i=[],a=[];function u(){i.push(n),a.push(c)}function l(){n=i.pop(),c=a.pop()}function d(e){Fe(r,e)}for(;We(r,o);){if(0===n){if(null!==c&&d("too many constructs in root"),3===o.type){c={},c.$vscodeTextmateLocation=o.toLocation(t),u(),n=1;continue}if(2===o.type){c=[],u(),n=4;continue}d("unexpected token in root")}if(2===n){if(5===o.type){l();continue}if(7===o.type){n=3;continue}d("expected , or }")}if(1===n||3===n){if(1===n&&5===o.type){l();continue}if(1===o.type){let e=o.value;if(We(r,o)&&6===o.type||d("expected colon"),We(r,o)||d("expected value"),n=2,1===o.type){c[e]=o.value;continue}if(8===o.type){c[e]=null;continue}if(9===o.type){c[e]=!0;continue}if(10===o.type){c[e]=!1;continue}if(11===o.type){c[e]=parseFloat(o.value);continue}if(2===o.type){let t=[];c[e]=t,u(),n=4,c=t;continue}if(3===o.type){let s={};s.$vscodeTextmateLocation=o.toLocation(t),c[e]=s,u(),n=1,c=s;continue}}d("unexpected token in dict")}if(5===n){if(4===o.type){l();continue}if(7===o.type){n=6;continue}d("expected , or ]")}if(4===n||6===n){if(4===n&&4===o.type){l();continue}if(n=5,1===o.type){c.push(o.value);continue}if(8===o.type){c.push(null);continue}if(9===o.type){c.push(!0);continue}if(10===o.type){c.push(!1);continue}if(11===o.type){c.push(parseFloat(o.value));continue}if(2===o.type){let e=[];c.push(e),u(),n=4,c=e;continue}if(3===o.type){let e={};e.$vscodeTextmateLocation=o.toLocation(t),c.push(e),u(),n=1,c=e;continue}d("unexpected token in array")}d("unknown state")}return 0!==a.length&&d("unclosed constructs"),c}(s,t):JSON.parse(s)):function(e,t){return v?function(e,t,s){return qe(e,t,"$vscodeTextmateLocation")}(e,t):function(e){return qe(e,null,null)}(e)}(e,t);var s};var Ve=w.Bz,Ye=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,s,r=void 0!==(e=e||{})?e:{};r.ready=new Promise((function(e,r){t=e,s=r}));var o,n=Object.assign({},r),c=!1;o=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),"object"==typeof t||w(s),t);var s},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var i,a,u=r.print||console.log.bind(console),l=r.printErr||console.warn.bind(console);Object.assign(r,n),n=null,r.arguments&&r.arguments,r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(i=r.wasmBinary),r.noExitRuntime,"object"!=typeof WebAssembly&&w("no native wasm support detected");var d,h,p,m=!1,f="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function g(e,t,s){for(var r=t+s,o=t;e[o]&&!(o>=r);)++o;if(o-t>16&&e.buffer&&f)return f.decode(e.subarray(t,o));for(var n="";t<o;){var c=e[t++];if(128&c){var i=63&e[t++];if(192!=(224&c)){var a=63&e[t++];if((c=224==(240&c)?(15&c)<<12|i<<6|a:(7&c)<<18|i<<12|a<<6|63&e[t++])<65536)n+=String.fromCharCode(c);else{var u=c-65536;n+=String.fromCharCode(55296|u>>10,56320|1023&u)}}else n+=String.fromCharCode((31&c)<<6|i)}else n+=String.fromCharCode(c)}return n}function b(e){d=e,r.HEAP8=new Int8Array(e),r.HEAP16=new Int16Array(e),r.HEAP32=new Int32Array(e),r.HEAPU8=h=new Uint8Array(e),r.HEAPU16=new Uint16Array(e),r.HEAPU32=p=new Uint32Array(e),r.HEAPF32=new Float32Array(e),r.HEAPF64=new Float64Array(e)}r.INITIAL_MEMORY;var y=[],_=[],k=[],S=0,x=null;function w(e){r.onAbort&&r.onAbort(e),l(e="Aborted("+e+")"),m=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw s(t),t}var v,C,j,A="data:application/octet-stream;base64,";function N(e){return e.startsWith(A)}function P(e){try{if(e==v&&i)return new Uint8Array(i);if(o)return o(e);throw"both async and sync fetching of the wasm failed"}catch(e){w(e)}}function R(e){for(;e.length>0;)e.shift()(r)}function E(e){try{return a.grow(e-d.byteLength+65535>>>16),b(a.buffer),1}catch(e){}}N(v="onig.wasm")||(C=v,v=r.locateFile?r.locateFile(C,""):""+C),j="undefined"!=typeof dateNow?dateNow:()=>performance.now();var I=[null,[],[]];function L(e,t){var s=I[e];0===t||10===t?((1===e?u:l)(g(s,0)),s.length=0):s.push(t)}var B,O={emscripten_get_now:j,emscripten_memcpy_big:function(e,t,s){h.copyWithin(e,t,t+s)},emscripten_resize_heap:function(e){var t=h.length,s=2147483648;if((e>>>=0)>s)return!1;let r=(e,t)=>e+(t-e%t)%t;for(var o=1;o<=4;o*=2){var n=t*(1+.2/o);if(n=Math.min(n,e+100663296),E(Math.min(s,r(Math.max(e,n),65536))))return!0}return!1},fd_write:function(e,t,s,r){for(var o=0,n=0;n<s;n++){var c=p[t>>2],i=p[t+4>>2];t+=8;for(var a=0;a<i;a++)L(e,h[c+a]);o+=i}return p[r>>2]=o,0}};function G(e){function s(){B||(B=!0,r.calledRun=!0,m||(R(_),t(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),function(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)e=r.postRun.shift(),k.unshift(e);var e;R(k)}()))}S>0||(function(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)e=r.preRun.shift(),y.unshift(e);var e;R(y)}(),S>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("")}),1),s()}),1)):s()))}if(function(){var e={env:O,wasi_snapshot_preview1:O};function t(e,t){var s,o=e.exports;r.asm=o,b((a=r.asm.memory).buffer),r.asm.__indirect_function_table,s=r.asm.__wasm_call_ctors,_.unshift(s),function(e){if(S--,r.monitorRunDependencies&&r.monitorRunDependencies(S),0==S&&x){var t=x;x=null,t()}}()}function o(e){t(e.instance)}function n(t){return(!i&&c&&"function"==typeof fetch?fetch(v,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+v+"'";return e.arrayBuffer()})).catch((function(){return P(v)})):Promise.resolve().then((function(){return P(v)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){l("failed to asynchronously prepare wasm: "+e),w(e)}))}if(S++,r.monitorRunDependencies&&r.monitorRunDependencies(S),r.instantiateWasm)try{return r.instantiateWasm(e,t)}catch(e){l("Module.instantiateWasm callback failed with error: "+e),s(e)}(i||"function"!=typeof WebAssembly.instantiateStreaming||N(v)||"function"!=typeof fetch?n(o):fetch(v,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return l("wasm streaming compile failed: "+e),l("falling back to ArrayBuffer instantiation"),n(o)}))}))).catch(s)}(),r.___wasm_call_ctors=function(){return(r.___wasm_call_ctors=r.asm.__wasm_call_ctors).apply(null,arguments)},r.___errno_location=function(){return(r.___errno_location=r.asm.__errno_location).apply(null,arguments)},r._omalloc=function(){return(r._omalloc=r.asm.omalloc).apply(null,arguments)},r._ofree=function(){return(r._ofree=r.asm.ofree).apply(null,arguments)},r._getLastOnigError=function(){return(r._getLastOnigError=r.asm.getLastOnigError).apply(null,arguments)},r._createOnigScanner=function(){return(r._createOnigScanner=r.asm.createOnigScanner).apply(null,arguments)},r._freeOnigScanner=function(){return(r._freeOnigScanner=r.asm.freeOnigScanner).apply(null,arguments)},r._findNextOnigScannerMatch=function(){return(r._findNextOnigScannerMatch=r.asm.findNextOnigScannerMatch).apply(null,arguments)},r._findNextOnigScannerMatchDbg=function(){return(r._findNextOnigScannerMatchDbg=r.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},r.stackSave=function(){return(r.stackSave=r.asm.stackSave).apply(null,arguments)},r.stackRestore=function(){return(r.stackRestore=r.asm.stackRestore).apply(null,arguments)},r.stackAlloc=function(){return(r.stackAlloc=r.asm.stackAlloc).apply(null,arguments)},r.dynCall_jiji=function(){return(r.dynCall_jiji=r.asm.dynCall_jiji).apply(null,arguments)},r.UTF8ToString=function(e,t){return e?g(h,e,t):""},x=function e(){B||G(),B||(x=e)},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return G(),e.ready});let Xe=null;class Je{static _utf8ByteLength(e){let t=0;for(let s=0,r=e.length;s<r;s++){const o=e.charCodeAt(s);let n=o,c=!1;if(o>=55296&&o<=56319&&s+1<r){const t=e.charCodeAt(s+1);t>=56320&&t<=57343&&(n=65536+(o-55296<<10)|t-56320,c=!0)}t+=n<=127?1:n<=2047?2:n<=65535?3:4,c&&s++}return t}constructor(e){const t=e.length,s=Je._utf8ByteLength(e),r=s!==t,o=r?new Uint32Array(t+1):null;r&&(o[t]=s);const n=r?new Uint32Array(s+1):null;r&&(n[s]=t);const c=new Uint8Array(s);let i=0;for(let s=0;s<t;s++){const a=e.charCodeAt(s);let u=a,l=!1;if(a>=55296&&a<=56319&&s+1<t){const t=e.charCodeAt(s+1);t>=56320&&t<=57343&&(u=65536+(a-55296<<10)|t-56320,l=!0)}r&&(o[s]=i,l&&(o[s+1]=i),u<=127?n[i+0]=s:u<=2047?(n[i+0]=s,n[i+1]=s):u<=65535?(n[i+0]=s,n[i+1]=s,n[i+2]=s):(n[i+0]=s,n[i+1]=s,n[i+2]=s,n[i+3]=s)),u<=127?c[i++]=u:u<=2047?(c[i++]=192|(1984&u)>>>6,c[i++]=128|(63&u)>>>0):u<=65535?(c[i++]=224|(61440&u)>>>12,c[i++]=128|(4032&u)>>>6,c[i++]=128|(63&u)>>>0):(c[i++]=240|(1835008&u)>>>18,c[i++]=128|(258048&u)>>>12,c[i++]=128|(4032&u)>>>6,c[i++]=128|(63&u)>>>0),l&&s++}this.utf16Length=t,this.utf8Length=s,this.utf16Value=e,this.utf8Value=c,this.utf16OffsetToUtf8=o,this.utf8OffsetToUtf16=n}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class Ze{constructor(e){if(this.id=++Ze.LAST_ID,!Xe)throw new Error("Must invoke loadWASM first.");this._onigBinding=Xe,this.content=e;const t=new Je(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!Ze._sharedPtrInUse?(Ze._sharedPtr||(Ze._sharedPtr=Xe._omalloc(1e4)),Ze._sharedPtrInUse=!0,Xe.HEAPU8.set(t.utf8Value,Ze._sharedPtr),this.ptr=Ze._sharedPtr):this.ptr=t.createString(Xe)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===Ze._sharedPtr?Ze._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}Ze.LAST_ID=0,Ze._sharedPtr=0,Ze._sharedPtrInUse=!1;class et{constructor(e){if(!Xe)throw new Error("Must invoke loadWASM first.");const t=[],s=[];for(let r=0,o=e.length;r<o;r++){const o=new Je(e[r]);t[r]=o.createString(Xe),s[r]=o.utf8Length}const r=Xe._omalloc(4*e.length);Xe.HEAPU32.set(t,r/4);const o=Xe._omalloc(4*e.length);Xe.HEAPU32.set(s,o/4);const n=Xe._createOnigScanner(r,o,e.length);for(let s=0,r=e.length;s<r;s++)Xe._ofree(t[s]);Xe._ofree(o),Xe._ofree(r),0===n&&function(e){throw new Error(e.UTF8ToString(e._getLastOnigError()))}(Xe),this._onigBinding=Xe,this._ptr=n}dispose(){this._onigBinding._freeOnigScanner(this._ptr)}findNextMatchSync(e,t,s){let r=false,o=0;if("number"==typeof s?(8&s&&(r=!0),o=s):"boolean"==typeof s&&(r=s),"string"==typeof e){e=new Ze(e);const s=this._findNextMatchSync(e,t,r,o);return e.dispose(),s}return this._findNextMatchSync(e,t,r,o)}_findNextMatchSync(e,t,s,r){const o=this._onigBinding;let n;if(n=s?o._findNextOnigScannerMatchDbg(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),r):o._findNextOnigScannerMatch(this._ptr,e.id,e.ptr,e.utf8Length,e.convertUtf16OffsetToUtf8(t),r),0===n)return null;const c=o.HEAPU32;let i=n/4;const a=c[i++],u=c[i++];let l=[];for(let t=0;t<u;t++){const s=e.convertUtf8OffsetToUtf16(c[i++]),r=e.convertUtf8OffsetToUtf16(c[i++]);l[t]={start:s,end:r,length:r-s}}return{index:a,captureIndices:l}}}let tt=!1,st=null;function rt(e){if(tt)return st;let t,s,r,o;if(tt=!0,function(e){return"function"==typeof e.instantiator}(e))t=e.instantiator,s=e.print;else{let r;!function(e){return void 0!==e.data}(e)?r=e:(r=e.data,s=e.print),t=function(e){return"undefined"!=typeof Response&&e instanceof Response}(r)?"function"==typeof WebAssembly.instantiateStreaming?function(e){return t=>WebAssembly.instantiateStreaming(e,t)}(r):function(e){return async t=>{const s=await e.arrayBuffer();return WebAssembly.instantiate(s,t)}}(r):function(e){return t=>WebAssembly.instantiate(e,t)}(r)}return st=new Promise(((e,t)=>{r=e,o=t})),function(e,t,s,r){Ye({print:t,instantiateWasm:(t,s)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>s(e.instance)),r),{}}}).then((e=>{Xe=e,s()}))}(t,s,r,o),st}function ot(e){return new Ze(e)}function nt(e){return new et(e)}function ct(e){const t=k[e];if(!t)return;const{id:s}=S[t];return{id:s,scopeName:t}}const it=new Map;let at,ut;async function lt(e){if(it.has(e))return it.get(e);const r=function(e){return S[e]}(e);if(!r)return Promise.resolve(void 0);let o;if(void 0===at&&(o=t(r.id),at=o.then((()=>!0)).catch((()=>!1))),void 0===ut&&(ut=await at),ut){const s=o||t(r.id);return it.set(e,s),s}const n=s(`grammars/${r.id}`);r.embeddedScopes.forEach((e=>{if(!it.has(e)){const t=n.then((t=>null==t?void 0:t.find((t=>t.scopeName===e))));it.set(e,t)}}));const c=n.then((t=>null==t?void 0:t.find((t=>t.scopeName===e))));return it.set(e,c),c}const dt=30720,ht=16744448,pt=16775168,mt=11,ft=15,gt={NotSet:-1,None:0,Italic:1,Bold:2,Underline:4,Strikethrough:8};function bt(e,t,s,r){const{tokens:o,ruleStack:n}=e.tokenizeLine2(s,t),c=[];let i=s.length;for(let e=o.length-2;e>=0;e-=2){const t=o[e],r=o[e+1],n=s.slice(t,i);c.unshift({content:n,metadata:r}),i=t}let a=[];if(null==r?void 0:r.preserveWhitespace)a=c;else for(let e=0;e<c.length;e++){const t=c[e];if(""!==t.content.trim()){const e=a[a.length-1];e&&(e.metadata&pt)==(t.metadata&pt)?e.content+=t.content:a.push(t)}else a.length>0?a[a.length-1].content+=t.content:e<c.length-1?c[e+1].content=t.content+c[e+1].content:a.push(t)}return{rawTokens:a,nextStack:n}}function yt(e,t,s){let r=null;return e.split(/\r?\n|\r/g).map((e=>{const{rawTokens:o,nextStack:n}=bt(t,r,e,{preserveWhitespace:!0}),c=o.map((({content:e,metadata:t})=>({content:e,style:_t(t,s)}))),i=function(e,t,s,r){const{tokens:o}=s.tokenizeLine(e,t),n=[];for(let t=0;t<o.length;t++){const{startIndex:s,endIndex:c,scopes:i}=o[t];let a=0;const u=r.find((e=>{if(a+=e.content.length,s<a)return!0}));n.push(Object.assign(Object.assign({},u),{content:e.slice(s,c),scopes:i.reverse()}))}return n}(e,r,t,c);return r=n,i}))}function _t(e,t){const s={color:t[(e&ht)>>>ft]},r=(e&dt)>>>mt;return r>.Italic&&(s.fontStyle="italic"),r>.Bold&&(s.fontWeight="bold"),r>.Underline&&(s.textDecoration="underline"),r>.Strikethrough&&(s.textDecoration="line-through"),s}var kt={instantiator:t=>WebAssembly.instantiate(e,t).then((e=>({instance:e})))};let St=null;function xt(e){return"text"==e||"terminal"==e}function wt(e){if(!St){const e=rt(kt).then((()=>({createOnigScanner:nt,createOnigString:ot})));St=new Ve({onigLib:e,loadGrammar:e=>lt(e)})}const t=e.filter((e=>!xt(e))).map((e=>{const t=ct(e);if(!t)throw new Ct(e);return St.loadGrammar(t.scopeName)}));return Promise.all(t)}function vt(e){if(xt(e))return{langId:e,grammar:null};const t=ct(e);if(!t)throw new Ct(e);const s=function(e){const{_syncRegistry:t}=St;return null==t?void 0:t._grammars.get(e)}(t.scopeName);if(!s)throw new Error(`Syntax highlighting error: grammar for ${e} not loaded`);return{langId:t.id,grammar:s}}class Ct extends Error{constructor(e){super(`Unknown language: ${e}`),this.alias=e}}function jt(e,t,s){St.setTheme(s);const r=function(e){const t=St.getColorMap();return e.colorNames?t.map((t=>Object.keys(e.colorNames).find((s=>e.colorNames[s].toUpperCase()===t.toUpperCase()))||t)):t}(s);return function(e,t,s){let r=null;return e.split(/\r?\n|\r/g).map((e=>{const{rawTokens:o,nextStack:n}=bt(t,r,e);return r=n,o.map((({content:e,metadata:t})=>({content:e,style:_t(t,s)})))}))}(e,t,r)}function At(e){return e.split(/\r?\n|\r/g).map((e=>[{content:e,style:{}}]))}function Nt(e,t){return Rt(e.slice(1,-1)).map((e=>{const{from:s,to:r}=Pt(e);return{lineNumber:t,fromColumn:s,toColumn:r}}))}function Pt(e){const[t,s]=e.split(":");if(!Et(t))throw new It(t);const r=Number(t);if(r<1)throw new Lt;if(s){if(!Et(s))throw new It(s);return{from:r,to:+s}}return{from:r,to:r}}function Rt(e){return e.split(/,(?![^\[]*\])/g)}function Et(e){e=e.toString();var t=Math.abs(e),s=parseInt(e,10);return!isNaN(t)&&s===t&&t.toString()===e}class It extends Error{constructor(e){super(`Invalid number "${e}" in range string`),this.number=e,Object.setPrototypeOf(this,new.target.prototype)}}class Lt extends Error{constructor(){super("Invalid line or column number in range string"),Object.setPrototypeOf(this,new.target.prototype)}}const Bt="#001",Ot="#010",Gt={name:"comments",type:"light",foreground:"",background:"",colors:{},settings:[{settings:{foreground:"#000"}},{scope:["punctuation.definition.comment"],settings:{foreground:Bt}},{scope:"comment",settings:{foreground:Ot}}]};function Tt(e,t,s,r){const o=t?jt(e,t,Gt):At(e),n=[];let c=1;const i=o.map((e=>{const{annotations:t,lineWithoutComments:o}=function(e,t,s,r){if(r in qt&&e.some((e=>e.style.color===Ot))){const t=qt[r];e=e.flatMap((e=>{if(e.style.color!==Ot)return[e];const s=e.content.trimStart();if(s.startsWith(t)){const r=s.slice(t.length),o=[{content:e.content.slice(0,e.content.length-r.length),style:{color:Bt}}];return r.length&&o.push({content:r,style:e.style}),o}return[e]}))}if(!e.some((e=>e.style.color===Bt)))return{annotations:[],lineWithoutComments:e};const o=[];let n=0;for(;n<e.length;){const r=e[n];if(r.style.color!==Ot){n++;continue}const c="function"==typeof t?t(r.content):$t(r.content,t);if(!c){n++;continue}const{name:i,query:a,rangeString:u}=c,l=e[n-1],d=e[n+1],h=[];l&&l.style.color===Bt&&h.push(l),h.push(r),d&&d.style.color===Bt&&h.push(d),o.push({tokens:h,name:i,query:a,rangeString:u,lineNumber:s}),n+=2}let c=e;for(const e of o)c=c.filter((t=>!e.tokens.includes(t)));c.every((e=>""===e.content.trim()))&&(c=null);return{annotations:o.map((e=>({name:e.name,query:e.query,lineNumber:e.lineNumber,rangeString:e.rangeString}))),lineWithoutComments:c}}(e,r,c,s);if(n.push(...t),!o)return null;const i=o.map((e=>e.content)).join("");return["mdx","jsx","tsx"].includes(s)&&t.length>0&&"{}"===i.trim()?null:(c++,i)})).filter((e=>null!==e)).join("\n"),a=n.map((e=>{var{rangeString:t,lineNumber:s}=e,r=function(e,t){var s={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(s[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(s[r[o]]=e[r[o]])}return s}(e,["rangeString","lineNumber"]);return Object.assign(Object.assign({},r),{ranges:Ft(t,s,i)})})).filter((e=>e.ranges.length>0));return{newCode:i,annotations:a}}const qt={"actionscript-3":"//",ada:"--",asm:"#",dart:"//",fsharp:"//",graphql:"#",http:"#",rust:"//",sparql:"#",wgsl:"//",jsonnet:"//",kql:"//",zenscript:"//",kusto:"//",turtle:"#",abap:"*",beancount:";",kotlin:"//",hlsl:"//",berry:"#",cypher:"//",elm:"--",nix:"#",viml:'"',solidity:"//",bat:"REM",shaderlab:"//",sas:"*"};function Ft(e,t,s){return e&&e.startsWith("(/")?function(e,t,s){const r=t.match(/\(\/([\s\S]*?)\/([gimuy]*)\)/);if(!r)throw new Error(`Invalid RegExp string: ${t}`);const o=new RegExp(r[1],r[2]),n=e.split(/\r?\n/).slice(s-1).join("\n");if(!o.global){const e=o.exec(n);if(!e)return[];const t=n.slice(0,e.index).split("\n").length+s-1;return[{fromLineNumber:t,toLineNumber:t+e[0].split("\n").length-1}]}let c;const i=[];for(;c=o.exec(n);){const e=n.slice(0,c.index).split("\n").length+s-1,t=e+c[0].split("\n").length-1,r=i[i.length-1];r&&r.fromLineNumber===e||i.push({fromLineNumber:e,toLineNumber:t})}return i}(s,e,t):e&&e.startsWith("[/")?function(e,t,s){const r=t.match(/\[\/([\s\S]*?)\/([gimuy]*)\]/);if(!r)throw new Error(`Invalid RegExp string: ${t}`);let o=r[2]||"";o+="d";const n=new RegExp(r[1],o);let c=e.split(/\r?\n/);c=c.slice(s-1),n.multiline||(c=[c[0]]);const i=[];return c.forEach(((e,t)=>{if(!n.global){if(i.length>0)return;const r=n.exec(e);if(!r)return;const o=r.indices[1]||r.indices[0];return void i.push({lineNumber:t+s,fromColumn:o[0]+1,toColumn:o[1]})}let r;for(;r=n.exec(e);){const e=r.indices[1]||r.indices[0];i.push({lineNumber:t+s,fromColumn:e[0]+1,toColumn:e[1]})}})),i}(s,e,t):function(e,t){return e?e.startsWith("[")?Nt(e,t):Rt(e.slice(1,-1)).map((e=>{if(e.includes("[")){const[s,r]=e.split("["),o=Number(s),n=t+o-1;if(!Et(n))throw new It(s);return Nt("["+r,n)}const{from:s,to:r}=Pt(e);return[{fromLineNumber:s+t-1,toLineNumber:r+t-1}]})).flat():[{fromLineNumber:t,toLineNumber:t}]}(e,t)}function $t(e,t){var s;const r=e.match(/\s*([\w-]+)?(\([^\)]*\)|\[[^\]]*\])?(.*)$/),o=r[1],n=r[2],c=null===(s=r[3])||void 0===s?void 0:s.trim();return t.includes(o)?{name:o,rangeString:n,query:c}:null}function Mt(e,t){let s=[],r=1;return e.forEach((e=>{s.push({fromColumn:r,toColumn:r+e.content.length-1,token:e}),r+=e.content.length})),t.forEach((e=>{s=function(e,t){const{range:s}=t,{fromColumn:r,toColumn:o}=s,n=[];let c=0;for(;c<e.length&&e[c].toColumn<r;)n.push(e[c]),c++;if(c===e.length)return e;const i={annotationName:t.name,annotationQuery:t.query,fromColumn:r,toColumn:o,tokens:[]},a=e[c];if(a.fromColumn<r){const[e,t]=Ut(a,r);if(n.push(e),n.push(i),t.toColumn>o){const[e,s]=Ut(t,o+1);i.tokens.push(e),n.push(s)}else i.tokens.push(t);c++}else n.push(i);for(;c<e.length&&e[c].toColumn<=o;)i.tokens.push(e[c]),c++;if(c===e.length)return n;const u=e[c];if(u.fromColumn<=o){const[e,t]=Ut(u,o+1);i.tokens.push(e),n.push(t),c++}for(;c<e.length;)n.push(e[c]),c++;return n}(s,e)})),s.map((e=>Wt(e)))}function Wt(e){return"tokens"in e?{annotationName:e.annotationName,annotationQuery:e.annotationQuery,fromColumn:e.fromColumn,toColumn:e.toColumn,tokens:e.tokens.map((e=>Wt(e)))}:e.token}function Ut(e,t){if("token"in e){const s=Object.assign(Object.assign({},e.token),{content:e.token.content.slice(0,t-e.fromColumn)}),r=Object.assign(Object.assign({},e.token),{content:e.token.content.slice(t-e.fromColumn)});return[Object.assign(Object.assign({},e),{toColumn:t-1,token:s}),Object.assign(Object.assign({},e),{fromColumn:t,token:r})]}{const s=[],r=[];e.tokens.forEach((e=>{if(e.toColumn<t)s.push(e);else if(e.fromColumn>=t)r.push(e);else{const[o,n]=Ut(e,t);s.push(o),r.push(n)}}));return[Object.assign(Object.assign({},e),{toColumn:t-1,tokens:s}),Object.assign(Object.assign({},e),{fromColumn:t,tokens:r})]}}function Dt(e,t){let s=e.map(((e,t)=>({fromLineNumber:t+1,toLineNumber:t+1,line:e})));return t.forEach((e=>{s=function(e,t){const{range:s,name:r,query:o}=t,{fromLineNumber:n,toLineNumber:c}=s,i=[];let a=0;for(;a<e.length&&e[a].toLineNumber<n;)i.push(e[a]),a++;if(a===e.length)return i;const u={annotationName:r,annotationQuery:o,fromLineNumber:n,toLineNumber:c,lines:[]},l=e[a];if(l.fromLineNumber<n){const[e,t]=Ht(l,n);if(i.push(e),i.push(u),t.toLineNumber>c){const[e,s]=Ht(t,c+1);u.lines.push(e),i.push(s)}else u.lines.push(t);a++}else i.push(u);for(;a<e.length&&e[a].toLineNumber<=c;)u.lines.push(e[a]),a++;if(a===e.length)return i;const d=e[a];if(d.fromLineNumber<=c){const[e,t]=Ht(d,c+1);u.lines.push(e),i.push(t),a++}for(;a<e.length;)i.push(e[a]),a++;return i}(s,e)})),s.map((e=>zt(e)))}function zt(e){return"line"in e?{lineNumber:e.fromLineNumber,tokens:e.line.tokens}:{annotationName:e.annotationName,annotationQuery:e.annotationQuery,fromLineNumber:e.fromLineNumber,toLineNumber:e.toLineNumber,lines:e.lines.map((e=>zt(e)))}}function Ht(e,t){if("line"in e)return[Object.assign(Object.assign({},e),{toLineNumber:t-1}),Object.assign(Object.assign({},e),{fromLineNumber:t})];{const s=[],r=[];return e.lines.forEach((e=>{if(e.toLineNumber<t)s.push(e);else if(e.fromLineNumber>=t)r.push(e);else{const[o,n]=Ht(e,t);s.push(o),r.push(n)}})),[Object.assign(Object.assign({},e),{toLineNumber:t-1,lines:s}),Object.assign(Object.assign({},e),{fromLineNumber:t,lines:r})]}}function Qt(e,t){const{inlineAnnotations:s,multilineAnnotations:r}=function(e){const t=[],s=[];return e.forEach((e=>{e.ranges.forEach((r=>{"lineNumber"in r?t.push(Object.assign(Object.assign({},e),{range:r})):s.push(Object.assign(Object.assign({},e),{range:r}))}))})),{inlineAnnotations:t,multilineAnnotations:s}}(t);return Dt(e.map(((e,t)=>{const r=s.filter((e=>e.range.lineNumber===t+1));return{lineNumber:t+1,tokens:Mt(e,r)}})),r)}var Kt=["black","red","green","yellow","blue","magenta","cyan","white","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite"],Vt={1:"bold",2:"dim",3:"italic",4:"underline",7:"reverse",9:"strikethrough"};function Yt(e,t){const s=e.indexOf("[",t);if(-1!==s){const t=e.indexOf("m",s);return{sequence:e.substring(s+2,t).split(";"),startPosition:s,position:t+1}}return{position:e.length}}function Xt(e,t){let s=1;const r=e[t+s++];let o;if("2"===r){const r=[e[t+s++],e[t+s++],e[t+s]].map((e=>Number.parseInt(e)));3!==r.length||r.some((e=>Number.isNaN(e)))||(o={type:"rgb",rgb:r})}else if("5"===r){const r=Number.parseInt(e[t+s]);Number.isNaN(r)||(o={type:"table",index:Number(r)})}return[s,o]}function Jt(e){const t=[];for(let s=0;s<e.length;s++){const r=e[s],o=Number.parseInt(r);if(!Number.isNaN(o))if(0===o)t.push({type:"resetAll"});else if(o<=9){Vt[o]&&t.push({type:"setDecoration",value:Vt[o]})}else if(o<=29){const e=Vt[o-20];e&&t.push({type:"resetDecoration",value:e})}else if(o<=37)t.push({type:"setForegroundColor",value:{type:"named",name:Kt[o-30]}});else if(38===o){const[r,o]=Xt(e,s);o&&t.push({type:"setForegroundColor",value:o}),s+=r}else if(39===o)t.push({type:"resetForegroundColor"});else if(o<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:Kt[o-40]}});else if(48===o){const[r,o]=Xt(e,s);o&&t.push({type:"setBackgroundColor",value:o}),s+=r}else 49===o?t.push({type:"resetBackgroundColor"}):o>=90&&o<=97?t.push({type:"setForegroundColor",value:{type:"named",name:Kt[o-90+8]}}):o>=100&&o<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:Kt[o-100+8]}})}return t}function Zt(e,t){const s=function(){let e=null,t=null,s=new Set;return{parse(r){const o=[];let n=0;do{const c=Yt(r,n),i=c.sequence?r.substring(n,c.startPosition):r.substring(n);if(i.length>0&&o.push({value:i,foreground:e,background:t,decorations:new Set(s)}),c.sequence){const r=Jt(c.sequence);for(const o of r)"resetAll"===o.type?(e=null,t=null,s.clear()):"resetForegroundColor"===o.type?e=null:"resetBackgroundColor"===o.type?t=null:"resetDecoration"===o.type&&s.delete(o.value);for(const o of r)"setForegroundColor"===o.type?e=o.value:"setBackgroundColor"===o.type?t=o.value:"setDecoration"===o.type&&s.add(o.value)}n=c.position}while(n<r.length);return o}}}(),r=e.split(/\r?\n|\r/g).map((e=>function(e,t,s){const r=e.parse(t),o=r.map((({value:e,foreground:t,background:r,decorations:o})=>{const n=es(t,s),c={};n&&(c.color=n);const i=es(r,s);return i&&(c.background=i),o.has("bold")&&(c.fontWeight="bold"),o.has("italic")&&(c.fontStyle="italic"),o.has("underline")&&(c.textDecoration="underline"),o.has("strikethrough")&&(c.textDecoration="line-through"),o.has("reverse")&&(c.color=i,c.background=n),o.has("dim")&&(c.opacity=.5),{content:e,style:c}}));return o}(s,e,t)));return r}function es(e,t){if(e){if("named"===e.type){return a(t,"terminal.ansi"+(e.name[0].toUpperCase()+e.name.slice(1)))}if("rgb"===e.type){const[t,s,r]=e.rgb;return`rgb(${t}, ${s}, ${r})`}}}async function ts(e,t){await Promise.all([wt(e),p(t)])}async function ss(e,t,s="dark-plus",r={}){const o=e||"",n=t||"text";if("string"!=typeof o)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof n)throw new Error("Syntax highlighter error: lang must be a string");return await ts([n],s),rs(o,n,s,r)}function rs(e,t,s="dark-plus",r={}){const o=e||"",n=t||"text";if("string"!=typeof o)throw new Error("Syntax highlighter error: code must be a string");if("string"!=typeof n)throw new Error("Syntax highlighter error: lang must be a string");const{langId:c,grammar:i}=vt(n),u=m(s),l="text"==c?At(o):"terminal"==c?Zt(o,u):(null==r?void 0:r.scopes)?function(e,t,s){return St.setTheme(s),yt(e,t,St.getColorMap())}(o,i,u):jt(o,i,u),d="terminal"==c?function(e){return{color:a(e,"terminal.foreground"),background:a(e,"terminal.background")}}(u):{color:u.foreground,background:u.background};if(function(e){return"annotations"in e}(r)){return{lines:Qt(l,(null==r?void 0:r.annotations)||[]),lang:c,style:d}}return{lines:l,lang:c,style:d}}async function os(e,t,s){if(!s)return{code:e,annotations:[]};await wt([t]);const{grammar:r,langId:o}=vt(t),{newCode:n,annotations:c}=Tt(e,r,o,s);return{code:n,annotations:c}}async function ns(e){if(!e)throw new Error("Syntax highlighter error: undefined theme");await ts([],e);return y(m(e))}function cs(e){if(!e)throw new Error("Syntax highlighter error: undefined theme");return y(m(e))}export{_ as LANG_NAMES,g as THEME_NAMES,Ct as UnknownLanguageError,b as UnknownThemeError,os as extractAnnotations,ns as getThemeColors,cs as getThemeColorsSync,ss as highlight,rs as highlightSync,ts as preload}; diff --git a/lib/grammars/txt.json b/lib/grammars/txt.json deleted file mode 100644 index 30154d7..0000000 --- a/lib/grammars/txt.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "txt", - "scopeName": "source.txt", - "patterns": [ - { - "include": "#comment" - } - ], - "repository": { - "comment": { - "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.txt" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.txt" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.txt" - } - ] - } - } -} diff --git a/lib/package.json b/lib/package.json index a18571f..5847312 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,26 +1,25 @@ { "name": "@code-hike/lighter", + "type": "module", "version": "0.9.4", + "description": "Code Hike's syntax highlighter", "license": "MIT", - "main": "./dist/index.cjs.js", - "module": "./dist/index.esm.mjs", - "types": "./dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", "worker": "./dist/worker.esm.mjs", "browser": "./dist/browser.esm.mjs", - "import": "./dist/index.esm.mjs", - "require": "./dist/index.cjs.js", - "default": "./dist/index.cjs.js" + "default": "./dist/index.esm.mjs" }, - "./grammars/*": "./grammars/*", - "./themes/*": "./themes/*" + "./dist/*": "./dist/*", + "./package.json": "./package.json", + "./*": "./dist/*" }, + "main": "./dist/index.esm.js", + "module": "./dist/index.esm.mjs", + "types": "./dist/index.d.ts", "files": [ - "dist/", - "grammars/", - "themes/" + "dist" ], "devDependencies": { "@babel/core": "^7.19.0", @@ -41,18 +40,19 @@ "typescript": "^4.9.4", "vitest": "1.0.0-beta.1", "vscode-oniguruma": "1.7.0", - "vscode-textmate": "9.0.0" + "vscode-textmate": "9.0.0", + "tm-grammars": "1.16.2" }, "scripts": { "build": "rollup -c", "watch": "rollup -c -w", - "test": "vitest", + "test": "vitest --test-timeout 10000", "typecheck": "vitest typecheck", "regenerate": "node ./utils/update.mjs" }, "repository": "https://github.com/code-hike/lighter", - "homepage": "https://lighter.codehike.org", - "funding": "https://github.com/code-hike/lighter?sponsor=1", + "homepage": "https://codehike.org", + "funding": "https://github.com/sponsors/code-hike", "dependencies": { "ansi-sequence-parser": "1.1.1" } diff --git a/lib/rollup.config.js b/lib/rollup.config.js index 389ae51..722a28f 100644 --- a/lib/rollup.config.js +++ b/lib/rollup.config.js @@ -5,6 +5,7 @@ import json from "@rollup/plugin-json"; import typescript from "rollup-plugin-typescript2"; import dts from "rollup-plugin-dts"; import terser from "@rollup/plugin-terser"; +import path from "path"; const pkg = require("./package.json"); @@ -22,10 +23,24 @@ const plugins = [ export default [ { input: "src/index.ts", - output: [ - { file: "dist/index.cjs.js", format: "cjs" }, - { file: "dist/index.esm.mjs", format: "esm" }, - ], + output: { + dir: "dist", + format: "esm", + entryFileNames: "[name].esm.mjs", + chunkFileNames: (chunkInfo) => { + // move dynamic imported json grammars to the dist folder as mjs + if (chunkInfo.facadeModuleId.includes("tm-grammars")) { + const fileName = path.basename(chunkInfo.facadeModuleId, ".json"); + return `grammar/${fileName}.mjs`; + } + // move dynamic imported json themes to the dist folder as mjs + if (chunkInfo.facadeModuleId.includes("themes")) { + const fileName = path.basename(chunkInfo.facadeModuleId, ".json"); + return `theme/${fileName}.mjs`; + } + return "[name].mjs"; + }, + }, plugins, }, { diff --git a/lib/src/dynamic-imports.ts b/lib/src/dynamic-imports.ts new file mode 100644 index 0000000..4162279 --- /dev/null +++ b/lib/src/dynamic-imports.ts @@ -0,0 +1,493 @@ +// generated by lib/utils/01.dynamic-imports.mjs + +export async function importGrammar(langId: string): Promise<any> { + switch (langId) { + case "abap": + return import("tm-grammars/grammars/abap.json"); + case "actionscript-3": + return import("tm-grammars/grammars/actionscript-3.json"); + case "ada": + return import("tm-grammars/grammars/ada.json"); + case "angular-html": + return import("tm-grammars/grammars/angular-html.json"); + case "angular-ts": + return import("tm-grammars/grammars/angular-ts.json"); + case "apache": + return import("tm-grammars/grammars/apache.json"); + case "apex": + return import("tm-grammars/grammars/apex.json"); + case "apl": + return import("tm-grammars/grammars/apl.json"); + case "applescript": + return import("tm-grammars/grammars/applescript.json"); + case "ara": + return import("tm-grammars/grammars/ara.json"); + case "asciidoc": + return import("tm-grammars/grammars/asciidoc.json"); + case "asm": + return import("tm-grammars/grammars/asm.json"); + case "astro": + return import("tm-grammars/grammars/astro.json"); + case "awk": + return import("tm-grammars/grammars/awk.json"); + case "ballerina": + return import("tm-grammars/grammars/ballerina.json"); + case "bat": + return import("tm-grammars/grammars/bat.json"); + case "beancount": + return import("tm-grammars/grammars/beancount.json"); + case "berry": + return import("tm-grammars/grammars/berry.json"); + case "bibtex": + return import("tm-grammars/grammars/bibtex.json"); + case "bicep": + return import("tm-grammars/grammars/bicep.json"); + case "blade": + return import("tm-grammars/grammars/blade.json"); + case "c": + return import("tm-grammars/grammars/c.json"); + case "cadence": + return import("tm-grammars/grammars/cadence.json"); + case "clarity": + return import("tm-grammars/grammars/clarity.json"); + case "clojure": + return import("tm-grammars/grammars/clojure.json"); + case "cmake": + return import("tm-grammars/grammars/cmake.json"); + case "cobol": + return import("tm-grammars/grammars/cobol.json"); + case "codeowners": + return import("tm-grammars/grammars/codeowners.json"); + case "codeql": + return import("tm-grammars/grammars/codeql.json"); + case "coffee": + return import("tm-grammars/grammars/coffee.json"); + case "common-lisp": + return import("tm-grammars/grammars/common-lisp.json"); + case "cpp": + return import("tm-grammars/grammars/cpp.json"); + case "crystal": + return import("tm-grammars/grammars/crystal.json"); + case "csharp": + return import("tm-grammars/grammars/csharp.json"); + case "css": + return import("tm-grammars/grammars/css.json"); + case "csv": + return import("tm-grammars/grammars/csv.json"); + case "cue": + return import("tm-grammars/grammars/cue.json"); + case "cypher": + return import("tm-grammars/grammars/cypher.json"); + case "d": + return import("tm-grammars/grammars/d.json"); + case "dart": + return import("tm-grammars/grammars/dart.json"); + case "dax": + return import("tm-grammars/grammars/dax.json"); + case "desktop": + return import("tm-grammars/grammars/desktop.json"); + case "diff": + return import("tm-grammars/grammars/diff.json"); + case "docker": + return import("tm-grammars/grammars/docker.json"); + case "dotenv": + return import("tm-grammars/grammars/dotenv.json"); + case "dream-maker": + return import("tm-grammars/grammars/dream-maker.json"); + case "edge": + return import("tm-grammars/grammars/edge.json"); + case "elixir": + return import("tm-grammars/grammars/elixir.json"); + case "elm": + return import("tm-grammars/grammars/elm.json"); + case "emacs-lisp": + return import("tm-grammars/grammars/emacs-lisp.json"); + case "erb": + return import("tm-grammars/grammars/erb.json"); + case "erlang": + return import("tm-grammars/grammars/erlang.json"); + case "fennel": + return import("tm-grammars/grammars/fennel.json"); + case "fish": + return import("tm-grammars/grammars/fish.json"); + case "fluent": + return import("tm-grammars/grammars/fluent.json"); + case "fortran-fixed-form": + return import("tm-grammars/grammars/fortran-fixed-form.json"); + case "fortran-free-form": + return import("tm-grammars/grammars/fortran-free-form.json"); + case "fsharp": + return import("tm-grammars/grammars/fsharp.json"); + case "gdresource": + return import("tm-grammars/grammars/gdresource.json"); + case "gdscript": + return import("tm-grammars/grammars/gdscript.json"); + case "gdshader": + return import("tm-grammars/grammars/gdshader.json"); + case "genie": + return import("tm-grammars/grammars/genie.json"); + case "gherkin": + return import("tm-grammars/grammars/gherkin.json"); + case "git-commit": + return import("tm-grammars/grammars/git-commit.json"); + case "git-rebase": + return import("tm-grammars/grammars/git-rebase.json"); + case "gleam": + return import("tm-grammars/grammars/gleam.json"); + case "glimmer-js": + return import("tm-grammars/grammars/glimmer-js.json"); + case "glimmer-ts": + return import("tm-grammars/grammars/glimmer-ts.json"); + case "glsl": + return import("tm-grammars/grammars/glsl.json"); + case "gnuplot": + return import("tm-grammars/grammars/gnuplot.json"); + case "go": + return import("tm-grammars/grammars/go.json"); + case "graphql": + return import("tm-grammars/grammars/graphql.json"); + case "groovy": + return import("tm-grammars/grammars/groovy.json"); + case "hack": + return import("tm-grammars/grammars/hack.json"); + case "haml": + return import("tm-grammars/grammars/haml.json"); + case "handlebars": + return import("tm-grammars/grammars/handlebars.json"); + case "haskell": + return import("tm-grammars/grammars/haskell.json"); + case "haxe": + return import("tm-grammars/grammars/haxe.json"); + case "hcl": + return import("tm-grammars/grammars/hcl.json"); + case "hjson": + return import("tm-grammars/grammars/hjson.json"); + case "hlsl": + return import("tm-grammars/grammars/hlsl.json"); + case "html": + return import("tm-grammars/grammars/html.json"); + case "html-derivative": + return import("tm-grammars/grammars/html-derivative.json"); + case "http": + return import("tm-grammars/grammars/http.json"); + case "hxml": + return import("tm-grammars/grammars/hxml.json"); + case "hy": + return import("tm-grammars/grammars/hy.json"); + case "imba": + return import("tm-grammars/grammars/imba.json"); + case "ini": + return import("tm-grammars/grammars/ini.json"); + case "java": + return import("tm-grammars/grammars/java.json"); + case "javascript": + return import("tm-grammars/grammars/javascript.json"); + case "jinja": + return import("tm-grammars/grammars/jinja.json"); + case "jison": + return import("tm-grammars/grammars/jison.json"); + case "json": + return import("tm-grammars/grammars/json.json"); + case "json5": + return import("tm-grammars/grammars/json5.json"); + case "jsonc": + return import("tm-grammars/grammars/jsonc.json"); + case "jsonl": + return import("tm-grammars/grammars/jsonl.json"); + case "jsonnet": + return import("tm-grammars/grammars/jsonnet.json"); + case "jssm": + return import("tm-grammars/grammars/jssm.json"); + case "jsx": + return import("tm-grammars/grammars/jsx.json"); + case "julia": + return import("tm-grammars/grammars/julia.json"); + case "kotlin": + return import("tm-grammars/grammars/kotlin.json"); + case "kusto": + return import("tm-grammars/grammars/kusto.json"); + case "latex": + return import("tm-grammars/grammars/latex.json"); + case "lean": + return import("tm-grammars/grammars/lean.json"); + case "less": + return import("tm-grammars/grammars/less.json"); + case "liquid": + return import("tm-grammars/grammars/liquid.json"); + case "log": + return import("tm-grammars/grammars/log.json"); + case "logo": + return import("tm-grammars/grammars/logo.json"); + case "lua": + return import("tm-grammars/grammars/lua.json"); + case "luau": + return import("tm-grammars/grammars/luau.json"); + case "make": + return import("tm-grammars/grammars/make.json"); + case "markdown": + return import("tm-grammars/grammars/markdown.json"); + case "marko": + return import("tm-grammars/grammars/marko.json"); + case "matlab": + return import("tm-grammars/grammars/matlab.json"); + case "mdc": + return import("tm-grammars/grammars/mdc.json"); + case "mdx": + return import("tm-grammars/grammars/mdx.json"); + case "mermaid": + return import("tm-grammars/grammars/mermaid.json"); + case "mojo": + return import("tm-grammars/grammars/mojo.json"); + case "move": + return import("tm-grammars/grammars/move.json"); + case "narrat": + return import("tm-grammars/grammars/narrat.json"); + case "nextflow": + return import("tm-grammars/grammars/nextflow.json"); + case "nginx": + return import("tm-grammars/grammars/nginx.json"); + case "nim": + return import("tm-grammars/grammars/nim.json"); + case "nix": + return import("tm-grammars/grammars/nix.json"); + case "nushell": + return import("tm-grammars/grammars/nushell.json"); + case "objective-c": + return import("tm-grammars/grammars/objective-c.json"); + case "objective-cpp": + return import("tm-grammars/grammars/objective-cpp.json"); + case "ocaml": + return import("tm-grammars/grammars/ocaml.json"); + case "pascal": + return import("tm-grammars/grammars/pascal.json"); + case "perl": + return import("tm-grammars/grammars/perl.json"); + case "php": + return import("tm-grammars/grammars/php.json"); + case "plsql": + return import("tm-grammars/grammars/plsql.json"); + case "po": + return import("tm-grammars/grammars/po.json"); + case "postcss": + return import("tm-grammars/grammars/postcss.json"); + case "powerquery": + return import("tm-grammars/grammars/powerquery.json"); + case "powershell": + return import("tm-grammars/grammars/powershell.json"); + case "prisma": + return import("tm-grammars/grammars/prisma.json"); + case "prolog": + return import("tm-grammars/grammars/prolog.json"); + case "proto": + return import("tm-grammars/grammars/proto.json"); + case "pug": + return import("tm-grammars/grammars/pug.json"); + case "puppet": + return import("tm-grammars/grammars/puppet.json"); + case "purescript": + return import("tm-grammars/grammars/purescript.json"); + case "python": + return import("tm-grammars/grammars/python.json"); + case "qml": + return import("tm-grammars/grammars/qml.json"); + case "qmldir": + return import("tm-grammars/grammars/qmldir.json"); + case "qss": + return import("tm-grammars/grammars/qss.json"); + case "r": + return import("tm-grammars/grammars/r.json"); + case "racket": + return import("tm-grammars/grammars/racket.json"); + case "raku": + return import("tm-grammars/grammars/raku.json"); + case "razor": + return import("tm-grammars/grammars/razor.json"); + case "reg": + return import("tm-grammars/grammars/reg.json"); + case "regexp": + return import("tm-grammars/grammars/regexp.json"); + case "rel": + return import("tm-grammars/grammars/rel.json"); + case "riscv": + return import("tm-grammars/grammars/riscv.json"); + case "rst": + return import("tm-grammars/grammars/rst.json"); + case "ruby": + return import("tm-grammars/grammars/ruby.json"); + case "rust": + return import("tm-grammars/grammars/rust.json"); + case "sas": + return import("tm-grammars/grammars/sas.json"); + case "sass": + return import("tm-grammars/grammars/sass.json"); + case "scala": + return import("tm-grammars/grammars/scala.json"); + case "scheme": + return import("tm-grammars/grammars/scheme.json"); + case "scss": + return import("tm-grammars/grammars/scss.json"); + case "shaderlab": + return import("tm-grammars/grammars/shaderlab.json"); + case "shellscript": + return import("tm-grammars/grammars/shellscript.json"); + case "shellsession": + return import("tm-grammars/grammars/shellsession.json"); + case "smalltalk": + return import("tm-grammars/grammars/smalltalk.json"); + case "solidity": + return import("tm-grammars/grammars/solidity.json"); + case "soy": + return import("tm-grammars/grammars/soy.json"); + case "sparql": + return import("tm-grammars/grammars/sparql.json"); + case "splunk": + return import("tm-grammars/grammars/splunk.json"); + case "sql": + return import("tm-grammars/grammars/sql.json"); + case "ssh-config": + return import("tm-grammars/grammars/ssh-config.json"); + case "stata": + return import("tm-grammars/grammars/stata.json"); + case "stylus": + return import("tm-grammars/grammars/stylus.json"); + case "svelte": + return import("tm-grammars/grammars/svelte.json"); + case "swift": + return import("tm-grammars/grammars/swift.json"); + case "system-verilog": + return import("tm-grammars/grammars/system-verilog.json"); + case "systemd": + return import("tm-grammars/grammars/systemd.json"); + case "tasl": + return import("tm-grammars/grammars/tasl.json"); + case "tcl": + return import("tm-grammars/grammars/tcl.json"); + case "templ": + return import("tm-grammars/grammars/templ.json"); + case "terraform": + return import("tm-grammars/grammars/terraform.json"); + case "tex": + return import("tm-grammars/grammars/tex.json"); + case "toml": + return import("tm-grammars/grammars/toml.json"); + case "ts-tags": + return import("tm-grammars/grammars/ts-tags.json"); + case "tsv": + return import("tm-grammars/grammars/tsv.json"); + case "tsx": + return import("tm-grammars/grammars/tsx.json"); + case "turtle": + return import("tm-grammars/grammars/turtle.json"); + case "twig": + return import("tm-grammars/grammars/twig.json"); + case "txt": + return import("../tm-grammars/txt.json"); + case "typescript": + return import("tm-grammars/grammars/typescript.json"); + case "typespec": + return import("tm-grammars/grammars/typespec.json"); + case "typst": + return import("tm-grammars/grammars/typst.json"); + case "v": + return import("tm-grammars/grammars/v.json"); + case "vala": + return import("tm-grammars/grammars/vala.json"); + case "vb": + return import("tm-grammars/grammars/vb.json"); + case "verilog": + return import("tm-grammars/grammars/verilog.json"); + case "vhdl": + return import("tm-grammars/grammars/vhdl.json"); + case "viml": + return import("tm-grammars/grammars/viml.json"); + case "vue": + return import("tm-grammars/grammars/vue.json"); + case "vue-html": + return import("tm-grammars/grammars/vue-html.json"); + case "vyper": + return import("tm-grammars/grammars/vyper.json"); + case "wasm": + return import("tm-grammars/grammars/wasm.json"); + case "wenyan": + return import("tm-grammars/grammars/wenyan.json"); + case "wgsl": + return import("tm-grammars/grammars/wgsl.json"); + case "wikitext": + return import("tm-grammars/grammars/wikitext.json"); + case "wolfram": + return import("tm-grammars/grammars/wolfram.json"); + case "xml": + return import("tm-grammars/grammars/xml.json"); + case "xsl": + return import("tm-grammars/grammars/xsl.json"); + case "yaml": + return import("tm-grammars/grammars/yaml.json"); + case "zenscript": + return import("tm-grammars/grammars/zenscript.json"); + case "zig": + return import("tm-grammars/grammars/zig.json"); + default: + throw new Error("no grammar for " + langId); + } +} + +export async function importTheme(name: string): Promise<any> { + switch (name) { + case "dark-plus": + return import("../themes/dark-plus.json"); + case "dracula-soft": + return import("../themes/dracula-soft.json"); + case "dracula": + return import("../themes/dracula.json"); + case "github-dark-dimmed": + return import("../themes/github-dark-dimmed.json"); + case "github-dark": + return import("../themes/github-dark.json"); + case "github-from-css": + return import("../themes/github-from-css.json"); + case "github-light": + return import("../themes/github-light.json"); + case "light-plus": + return import("../themes/light-plus.json"); + case "material-darker": + return import("../themes/material-darker.json"); + case "material-default": + return import("../themes/material-default.json"); + case "material-from-css": + return import("../themes/material-from-css.json"); + case "material-lighter": + return import("../themes/material-lighter.json"); + case "material-ocean": + return import("../themes/material-ocean.json"); + case "material-palenight": + return import("../themes/material-palenight.json"); + case "min-dark": + return import("../themes/min-dark.json"); + case "min-light": + return import("../themes/min-light.json"); + case "monokai": + return import("../themes/monokai.json"); + case "nord": + return import("../themes/nord.json"); + case "one-dark-pro": + return import("../themes/one-dark-pro.json"); + case "poimandres": + return import("../themes/poimandres.json"); + case "rose-pine-dawn": + return import("../themes/rose-pine-dawn.json"); + case "rose-pine-moon": + return import("../themes/rose-pine-moon.json"); + case "rose-pine": + return import("../themes/rose-pine.json"); + case "slack-dark": + return import("../themes/slack-dark.json"); + case "slack-ochin": + return import("../themes/slack-ochin.json"); + case "solarized-dark": + return import("../themes/solarized-dark.json"); + case "solarized-light": + return import("../themes/solarized-light.json"); + default: + throw new Error("no theme for " + name); + } +} diff --git a/lib/src/file-system.browser.ts b/lib/src/file-system.browser.ts index 9e4c7b0..2dd22ed 100644 --- a/lib/src/file-system.browser.ts +++ b/lib/src/file-system.browser.ts @@ -1,3 +1,7 @@ -export async function readJSON(folder: string, filename: string): Promise<any> { +export async function readGrammar(langId: string): Promise<any> { + throw new Error("no fs"); +} + +export async function readTheme(themeName: string): Promise<any> { throw new Error("no fs"); } diff --git a/lib/src/file-system.ts b/lib/src/file-system.ts index c05e08d..f83b4ff 100644 --- a/lib/src/file-system.ts +++ b/lib/src/file-system.ts @@ -1,24 +1,10 @@ -import resolveSync from "./resolve"; +import type { IRawGrammar } from "vscode-textmate"; +import { importGrammar, importTheme } from "./dynamic-imports"; -export async function readJSON(folder: string, filename: string) { - // throw new Error("no file system"); - const fs = await import("fs").then((m) => m.promises); - const path = await import("path"); - const { URL } = await import("url"); - const __dirname = new URL(".", import.meta.url).pathname; - try { - let folderPath = path.resolve(__dirname, "..", folder); - let filepath = path.resolve(folderPath, filename); - const result = await fs.readFile(filepath, "utf8"); - if (!result) { - throw new Error("no results"); - } - return JSON.parse(result); - } catch (e) { - // console.log("using resolve"); - const indexFile = resolveSync("@code-hike/lighter", { basedir: __dirname }); - let folderPath = path.resolve(indexFile, "..", "..", folder); - let filepath = path.resolve(folderPath, filename); - return JSON.parse(await fs.readFile(filepath, "utf8")); - } +export async function readGrammar(langId: string): Promise<IRawGrammar> { + return importGrammar(langId); +} + +export async function readTheme(themeName: string): Promise<any> { + return importTheme(themeName); } diff --git a/lib/src/grammars.ts b/lib/src/grammars.ts index 2a2ac96..661f420 100644 --- a/lib/src/grammars.ts +++ b/lib/src/grammars.ts @@ -1,5 +1,5 @@ import type { IRawGrammar } from "vscode-textmate"; -import { readJSON } from "./file-system"; +import { readGrammar } from "./file-system"; import { scopeToLangData } from "./language"; import { fetchJSON } from "./network"; @@ -24,7 +24,7 @@ export async function loadGrammarByScope( let grammarPromise: undefined | Promise<IRawGrammar> = undefined; if (shouldUseFileSystemPromise === undefined) { - grammarPromise = loadGrammarFromFile(lang.path); + grammarPromise = readGrammar(lang.id); shouldUseFileSystemPromise = grammarPromise .then(() => true) .catch(() => false); @@ -35,7 +35,7 @@ export async function loadGrammarByScope( } if (shouldUseFileSystem) { - const promise = grammarPromise || loadGrammarFromFile(lang.path); + const promise = grammarPromise || readGrammar(lang.id); sourceToGrammarPromise.set(scope, promise); return promise; } @@ -48,20 +48,17 @@ export async function loadGrammarByScope( const subScopes = lang.embeddedScopes; subScopes.forEach((subScope) => { if (!sourceToGrammarPromise.has(subScope)) { - const subPromise = fetchPromise.then( - (gs) => gs.find((g) => g.scopeName === subScope)! + const subPromise = fetchPromise.then((gs) => + gs?.find((g) => g.scopeName === subScope) ); + sourceToGrammarPromise.set(subScope, subPromise); } }); - const promise = fetchPromise.then( - (gs: IRawGrammar[]) => gs.find((g) => g.scopeName === scope)! + const promise = fetchPromise.then((gs: IRawGrammar[]) => + gs?.find((g) => g.scopeName === scope) ); sourceToGrammarPromise.set(scope, promise); return promise; } - -export async function loadGrammarFromFile(path: string) { - return (await readJSON("grammars", path)) as IRawGrammar; -} diff --git a/lib/src/language-data.ts b/lib/src/language-data.ts index ba7c652..0e394e5 100644 --- a/lib/src/language-data.ts +++ b/lib/src/language-data.ts @@ -1,14 +1,18 @@ -// generated by lib/utils/3.update-languages-data.mjs +// generated by lib/utils/02.languages-data.mjs export const LANG_NAMES = [ "abap", "actionscript-3", "ada", + "adoc", + "angular-html", + "angular-ts", "apache", "apex", "apl", "applescript", "ara", + "asciidoc", "asm", "astro", "awk", @@ -24,72 +28,107 @@ export const LANG_NAMES = [ "blade", "c", "c#", + "c++", "cadence", "cdc", "clarity", "clj", "clojure", + "closure-templates", "cmake", "cmd", "cobol", + "codeowners", "codeql", "coffee", + "coffeescript", + "common-lisp", "console", "cpp", + "cql", "crystal", "cs", "csharp", "css", + "csv", "cue", "cypher", "d", "dart", "dax", + "desktop", "diff", "docker", "dockerfile", + "dotenv", "dream-maker", + "edge", + "elisp", "elixir", "elm", + "emacs-lisp", "erb", "erl", "erlang", + "f", "f#", + "f03", + "f08", + "f18", + "f77", + "f90", + "f95", + "fennel", "fish", + "fluent", + "for", + "fortran-fixed-form", + "fortran-free-form", "fs", "fsharp", "fsl", + "ftl", "gdresource", "gdscript", "gdshader", + "genie", "gherkin", "git-commit", "git-rebase", + "gjs", + "gleam", "glimmer-js", "glimmer-ts", "glsl", "gnuplot", "go", + "gql", "graphql", "groovy", + "gts", "hack", "haml", "handlebars", "haskell", + "haxe", "hbs", "hcl", "hjson", "hlsl", "hs", "html", + "html-derivative", "http", + "hxml", + "hy", "imba", "ini", "jade", "java", "javascript", - "jinja-html", + "jinja", "jison", + "jl", "js", "json", "json5", @@ -101,26 +140,41 @@ export const LANG_NAMES = [ "julia", "kotlin", "kql", + "kt", + "kts", "kusto", "latex", + "lean", + "lean4", "less", "liquid", "lisp", + "lit", + "log", "logo", "lua", + "luau", "make", "makefile", "markdown", "marko", "matlab", "md", + "mdc", "mdx", + "mediawiki", "mermaid", + "mojo", + "move", + "nar", "narrat", "nextflow", + "nf", "nginx", "nim", "nix", + "nu", + "nushell", "objc", "objective-c", "objective-cpp", @@ -130,8 +184,10 @@ export const LANG_NAMES = [ "perl6", "php", "plsql", - "polar", + "po", "postcss", + "pot", + "potx", "powerquery", "powershell", "prisma", @@ -146,11 +202,17 @@ export const LANG_NAMES = [ "py", "python", "ql", + "qml", + "qmldir", + "qss", "r", + "racket", "raku", "razor", "rb", "reg", + "regex", + "regexp", "rel", "riscv", "rs", @@ -170,7 +232,10 @@ export const LANG_NAMES = [ "shellsession", "smalltalk", "solidity", + "soy", "sparql", + "spl", + "splunk", "sql", "ssh-config", "stata", @@ -179,19 +244,31 @@ export const LANG_NAMES = [ "svelte", "swift", "system-verilog", + "systemd", "tasl", "tcl", + "templ", "terminal", + "terraform", "tex", "text", + "tf", + "tfvars", "toml", "ts", + "ts-tags", + "tsp", + "tsv", "tsx", "turtle", "twig", "txt", + "typ", "typescript", + "typespec", + "typst", "v", + "vala", "vb", "verilog", "vhdl", @@ -200,16 +277,21 @@ export const LANG_NAMES = [ "vimscript", "vue", "vue-html", + "vy", "vyper", "wasm", "wenyan", "wgsl", + "wiki", + "wikitext", + "wl", "wolfram", "xml", "xsl", "yaml", "yml", "zenscript", + "zig", "zsh", "文言" ]; @@ -219,11 +301,14 @@ export type LanguageName = | "abap" | "actionscript-3" | "ada" + | "angular-html" + | "angular-ts" | "apache" | "apex" | "apl" | "applescript" | "ara" + | "asciidoc" | "asm" | "astro" | "awk" @@ -240,32 +325,45 @@ export type LanguageName = | "clojure" | "cmake" | "cobol" + | "codeowners" | "codeql" | "coffee" + | "common-lisp" | "cpp" | "crystal" | "csharp" | "css" + | "csv" | "cue" | "cypher" | "d" | "dart" | "dax" + | "desktop" | "diff" | "docker" + | "dotenv" | "dream-maker" + | "edge" | "elixir" | "elm" + | "emacs-lisp" | "erb" | "erlang" + | "fennel" | "fish" + | "fluent" + | "fortran-fixed-form" + | "fortran-free-form" | "fsharp" | "gdresource" | "gdscript" | "gdshader" + | "genie" | "gherkin" | "git-commit" | "git-rebase" + | "gleam" | "glimmer-js" | "glimmer-ts" | "glsl" @@ -277,16 +375,20 @@ export type LanguageName = | "haml" | "handlebars" | "haskell" + | "haxe" | "hcl" | "hjson" | "hlsl" | "html" + | "html-derivative" | "http" + | "hxml" + | "hy" | "imba" | "ini" | "java" | "javascript" - | "jinja-html" + | "jinja" | "jison" | "json" | "json5" @@ -299,22 +401,28 @@ export type LanguageName = | "kotlin" | "kusto" | "latex" + | "lean" | "less" | "liquid" - | "lisp" + | "log" | "logo" | "lua" + | "luau" | "make" | "markdown" | "marko" | "matlab" + | "mdc" | "mdx" | "mermaid" + | "mojo" + | "move" | "narrat" | "nextflow" | "nginx" | "nim" | "nix" + | "nushell" | "objective-c" | "objective-cpp" | "ocaml" @@ -322,7 +430,7 @@ export type LanguageName = | "perl" | "php" | "plsql" - | "polar" + | "po" | "postcss" | "powerquery" | "powershell" @@ -333,10 +441,15 @@ export type LanguageName = | "puppet" | "purescript" | "python" + | "qml" + | "qmldir" + | "qss" | "r" + | "racket" | "raku" | "razor" | "reg" + | "regexp" | "rel" | "riscv" | "rst" @@ -352,7 +465,9 @@ export type LanguageName = | "shellsession" | "smalltalk" | "solidity" + | "soy" | "sparql" + | "splunk" | "sql" | "ssh-config" | "stata" @@ -360,40 +475,53 @@ export type LanguageName = | "svelte" | "swift" | "system-verilog" + | "systemd" | "tasl" | "tcl" + | "templ" + | "terraform" | "tex" | "toml" + | "ts-tags" + | "tsv" | "tsx" | "turtle" | "twig" | "txt" | "typescript" + | "typespec" + | "typst" | "v" + | "vala" | "vb" | "verilog" | "vhdl" | "viml" - | "vue-html" | "vue" + | "vue-html" | "vyper" | "wasm" | "wenyan" | "wgsl" + | "wikitext" | "wolfram" | "xml" | "xsl" | "yaml" - | "zenscript"; + | "zenscript" + | "zig"; export type ScopeName = | "source.abap" | "source.actionscript.3" | "source.ada" + | "text.html.derivative.ng" + | "source.ts.ng" | "source.apacheconf" | "source.apex" | "source.apl" | "source.applescript" | "source.ara" + | "text.asciidoc" | "source.asm.x86_64" | "source.astro" | "source.awk" @@ -410,32 +538,45 @@ export type ScopeName = | "source.clojure" | "source.cmake" | "source.cobol" + | "text.codeowners" | "source.ql" | "source.coffee" + | "source.commonlisp" | "source.cpp" | "source.crystal" | "source.cs" | "source.css" + | "text.csv" | "source.cue" | "source.cypher" | "source.d" | "source.dart" | "source.dax" + | "source.desktop" | "source.diff" | "source.dockerfile" + | "source.dotenv" | "source.dm" + | "text.html.edge" | "source.elixir" | "source.elm" + | "source.emacs.lisp" | "text.html.erb" | "source.erlang" + | "source.fnl" | "source.fish" + | "source.ftl" + | "source.fortran.fixed" + | "source.fortran.free" | "source.fsharp" | "source.gdresource" | "source.gdscript" | "source.gdshader" + | "source.genie" | "text.gherkin.feature" | "text.git-commit" | "text.git-rebase" + | "source.gleam" | "source.gjs" | "source.gts" | "source.glsl" @@ -447,16 +588,20 @@ export type ScopeName = | "text.haml" | "text.html.handlebars" | "source.haskell" + | "source.hx" | "source.hcl" | "source.hjson" | "source.hlsl" | "text.html.basic" + | "text.html.derivative" | "source.http" + | "source.hxml" + | "source.hy" | "source.imba" | "source.ini" | "source.java" | "source.js" - | "text.html.jinja" + | "source.jinja" | "source.jison" | "source.json" | "source.json5" @@ -469,22 +614,28 @@ export type ScopeName = | "source.kotlin" | "source.kusto" | "text.tex.latex" + | "source.lean4" | "source.css.less" | "text.html.liquid" - | "source.lisp" + | "text.log" | "source.logo" | "source.lua" + | "source.luau" | "source.makefile" | "text.html.markdown" | "text.marko" | "source.matlab" + | "text.markdown.mdc" | "source.mdx" - | "source.mermaid" + | "markdown.mermaid.codeblock" + | "source.mojo" + | "source.move" | "source.narrat" | "source.nextflow" | "source.nginx" | "source.nim" | "source.nix" + | "source.nushell" | "source.objc" | "source.objcpp" | "source.ocaml" @@ -492,7 +643,7 @@ export type ScopeName = | "source.perl" | "source.php" | "source.plsql.oracle" - | "source.polar" + | "source.po" | "source.css.postcss" | "source.powerquery" | "source.powershell" @@ -503,10 +654,15 @@ export type ScopeName = | "source.puppet" | "source.purescript" | "source.python" + | "source.qml" + | "source.qmldir" + | "source.qss" | "source.r" + | "source.racket" | "source.perl.6" | "text.aspnetcorerazor" | "source.reg" + | "source.regexp.python" | "source.rel" | "source.riscv" | "source.rst" @@ -522,7 +678,9 @@ export type ScopeName = | "text.shell-session" | "source.smalltalk" | "source.solidity" + | "text.html.soy" | "source.sparql" + | "source.splunk_search" | "source.sql" | "source.ssh-config" | "source.stata" @@ -530,35 +688,44 @@ export type ScopeName = | "source.svelte" | "source.swift" | "source.systemverilog" + | "source.systemd" | "source.tasl" | "source.tcl" + | "source.templ" + | "source.hcl.terraform" | "text.tex" | "source.toml" + | "source.ts.tags" + | "text.tsv" | "source.tsx" | "source.turtle" | "text.html.twig" | "source.txt" | "source.ts" + | "source.tsp" + | "source.typst" | "source.v" + | "source.vala" | "source.asp.vb.net" | "source.verilog" | "source.vhdl" | "source.viml" - | "text.html.vue-html" | "source.vue" + | "text.html.vue-html" | "source.vyper" | "source.wat" | "source.wenyan" | "source.wgsl" + | "source.wikitext" | "source.wolfram" | "text.xml" | "text.xml.xsl" | "source.yaml" - | "source.zenscript"; + | "source.zenscript" + | "source.zig"; export type LanguageData = { id: LanguageName; - path: string; embeddedScopes: ScopeName[]; }; @@ -566,11 +733,15 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "abap": "source.abap", "actionscript-3": "source.actionscript.3", "ada": "source.ada", + "angular-html": "text.html.derivative.ng", + "angular-ts": "source.ts.ng", "apache": "source.apacheconf", "apex": "source.apex", "apl": "source.apl", "applescript": "source.applescript", "ara": "source.ara", + "asciidoc": "text.asciidoc", + "adoc": "text.asciidoc", "asm": "source.asm.x86_64", "astro": "source.astro", "awk": "source.awk", @@ -591,45 +762,75 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "clj": "source.clojure", "cmake": "source.cmake", "cobol": "source.cobol", + "codeowners": "text.codeowners", "codeql": "source.ql", "ql": "source.ql", "coffee": "source.coffee", + "coffeescript": "source.coffee", + "common-lisp": "source.commonlisp", + "lisp": "source.commonlisp", "cpp": "source.cpp", + "c++": "source.cpp", "crystal": "source.crystal", "csharp": "source.cs", "c#": "source.cs", "cs": "source.cs", "css": "source.css", + "csv": "text.csv", "cue": "source.cue", "cypher": "source.cypher", + "cql": "source.cypher", "d": "source.d", "dart": "source.dart", "dax": "source.dax", + "desktop": "source.desktop", "diff": "source.diff", "docker": "source.dockerfile", "dockerfile": "source.dockerfile", + "dotenv": "source.dotenv", "dream-maker": "source.dm", + "edge": "text.html.edge", "elixir": "source.elixir", "elm": "source.elm", + "emacs-lisp": "source.emacs.lisp", + "elisp": "source.emacs.lisp", "erb": "text.html.erb", "erlang": "source.erlang", "erl": "source.erlang", + "fennel": "source.fnl", "fish": "source.fish", + "fluent": "source.ftl", + "ftl": "source.ftl", + "fortran-fixed-form": "source.fortran.fixed", + "f": "source.fortran.fixed", + "for": "source.fortran.fixed", + "f77": "source.fortran.fixed", + "fortran-free-form": "source.fortran.free", + "f90": "source.fortran.free", + "f95": "source.fortran.free", + "f03": "source.fortran.free", + "f08": "source.fortran.free", + "f18": "source.fortran.free", "fsharp": "source.fsharp", "f#": "source.fsharp", "fs": "source.fsharp", "gdresource": "source.gdresource", "gdscript": "source.gdscript", "gdshader": "source.gdshader", + "genie": "source.genie", "gherkin": "text.gherkin.feature", "git-commit": "text.git-commit", "git-rebase": "text.git-rebase", + "gleam": "source.gleam", "glimmer-js": "source.gjs", + "gjs": "source.gjs", "glimmer-ts": "source.gts", + "gts": "source.gts", "glsl": "source.glsl", "gnuplot": "source.gnuplot", "go": "source.go", "graphql": "source.graphql", + "gql": "source.graphql", "groovy": "source.groovy", "hack": "source.hack", "haml": "text.haml", @@ -637,18 +838,22 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "hbs": "text.html.handlebars", "haskell": "source.haskell", "hs": "source.haskell", + "haxe": "source.hx", "hcl": "source.hcl", "hjson": "source.hjson", "hlsl": "source.hlsl", "html": "text.html.basic", + "html-derivative": "text.html.derivative", "http": "source.http", + "hxml": "source.hxml", + "hy": "source.hy", "imba": "source.imba", "ini": "source.ini", "properties": "source.ini", "java": "source.java", "javascript": "source.js", "js": "source.js", - "jinja-html": "text.html.jinja", + "jinja": "source.jinja", "jison": "source.jison", "json": "source.json", "json5": "source.json5", @@ -659,28 +864,41 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "fsl": "source.jssm", "jsx": "source.js.jsx", "julia": "source.julia", + "jl": "source.julia", "kotlin": "source.kotlin", + "kt": "source.kotlin", + "kts": "source.kotlin", "kusto": "source.kusto", "kql": "source.kusto", "latex": "text.tex.latex", + "lean": "source.lean4", + "lean4": "source.lean4", "less": "source.css.less", "liquid": "text.html.liquid", - "lisp": "source.lisp", + "log": "text.log", "logo": "source.logo", "lua": "source.lua", + "luau": "source.luau", "make": "source.makefile", "makefile": "source.makefile", "markdown": "text.html.markdown", "md": "text.html.markdown", "marko": "text.marko", "matlab": "source.matlab", + "mdc": "text.markdown.mdc", "mdx": "source.mdx", - "mermaid": "source.mermaid", + "mermaid": "markdown.mermaid.codeblock", + "mojo": "source.mojo", + "move": "source.move", "narrat": "source.narrat", + "nar": "source.narrat", "nextflow": "source.nextflow", + "nf": "source.nextflow", "nginx": "source.nginx", "nim": "source.nim", "nix": "source.nix", + "nushell": "source.nushell", + "nu": "source.nushell", "objective-c": "source.objc", "objc": "source.objc", "objective-cpp": "source.objcpp", @@ -689,7 +907,9 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "perl": "source.perl", "php": "source.php", "plsql": "source.plsql.oracle", - "polar": "source.polar", + "po": "source.po", + "pot": "source.po", + "potx": "source.po", "postcss": "source.css.postcss", "powerquery": "source.powerquery", "powershell": "source.powershell", @@ -704,11 +924,17 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "purescript": "source.purescript", "python": "source.python", "py": "source.python", + "qml": "source.qml", + "qmldir": "source.qmldir", + "qss": "source.qss", "r": "source.r", + "racket": "source.racket", "raku": "source.perl.6", "perl6": "source.perl.6", "razor": "text.aspnetcorerazor", "reg": "source.reg", + "regexp": "source.regexp.python", + "regex": "source.regexp.python", "rel": "source.rel", "riscv": "source.riscv", "rst": "source.rst", @@ -725,14 +951,18 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "shader": "source.shaderlab", "shellscript": "source.shell", "bash": "source.shell", - "console": "source.shell", "sh": "source.shell", "shell": "source.shell", "zsh": "source.shell", "shellsession": "text.shell-session", + "console": "text.shell-session", "smalltalk": "source.smalltalk", "solidity": "source.solidity", + "soy": "text.html.soy", + "closure-templates": "text.html.soy", "sparql": "source.sparql", + "splunk": "source.splunk_search", + "spl": "source.splunk_search", "sql": "source.sql", "ssh-config": "source.ssh-config", "stata": "source.stata", @@ -741,17 +971,30 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "svelte": "source.svelte", "swift": "source.swift", "system-verilog": "source.systemverilog", + "systemd": "source.systemd", "tasl": "source.tasl", "tcl": "source.tcl", + "templ": "source.templ", + "terraform": "source.hcl.terraform", + "tf": "source.hcl.terraform", + "tfvars": "source.hcl.terraform", "tex": "text.tex", "toml": "source.toml", + "ts-tags": "source.ts.tags", + "lit": "source.ts.tags", + "tsv": "text.tsv", "tsx": "source.tsx", "turtle": "source.turtle", "twig": "text.html.twig", "txt": "source.txt", "typescript": "source.ts", "ts": "source.ts", + "typespec": "source.tsp", + "tsp": "source.tsp", + "typst": "source.typst", + "typ": "source.typst", "v": "source.v", + "vala": "source.vala", "vb": "source.asp.vb.net", "cmd": "source.asp.vb.net", "verilog": "source.verilog", @@ -759,1663 +1002,1339 @@ export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = { "viml": "source.viml", "vim": "source.viml", "vimscript": "source.viml", - "vue-html": "text.html.vue-html", "vue": "source.vue", + "vue-html": "text.html.vue-html", "vyper": "source.vyper", + "vy": "source.vyper", "wasm": "source.wat", "wenyan": "source.wenyan", "文言": "source.wenyan", "wgsl": "source.wgsl", + "wikitext": "source.wikitext", + "mediawiki": "source.wikitext", + "wiki": "source.wikitext", "wolfram": "source.wolfram", + "wl": "source.wolfram", "xml": "text.xml", "xsl": "text.xml.xsl", "yaml": "source.yaml", "yml": "source.yaml", - "zenscript": "source.zenscript" + "zenscript": "source.zenscript", + "zig": "source.zig" }; export const scopeToLanguageData: Record<ScopeName, LanguageData> = { "source.abap": { "id": "abap", - "path": "abap.tmLanguage.json", "embeddedScopes": [] }, "source.actionscript.3": { "id": "actionscript-3", - "path": "actionscript-3.tmLanguage.json", "embeddedScopes": [] }, "source.ada": { "id": "ada", - "path": "ada.tmLanguage.json", + "embeddedScopes": [] + }, + "text.html.derivative.ng": { + "id": "angular-html", + "embeddedScopes": [ + "text.html.basic" + ] + }, + "source.ts.ng": { + "id": "angular-ts", "embeddedScopes": [] }, "source.apacheconf": { "id": "apache", - "path": "apache.tmLanguage.json", "embeddedScopes": [] }, "source.apex": { "id": "apex", - "path": "apex.tmLanguage.json", "embeddedScopes": [] }, "source.apl": { "id": "apl", - "path": "apl.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.json", - "source.js", - "source.css", + "text.html.basic", "text.xml", - "text.html.basic" + "source.css", + "source.js", + "source.json" ] }, "source.applescript": { "id": "applescript", - "path": "applescript.tmLanguage.json", "embeddedScopes": [] }, "source.ara": { "id": "ara", - "path": "ara.tmLanguage.json", "embeddedScopes": [] }, + "text.asciidoc": { + "id": "asciidoc", + "embeddedScopes": [ + "text.html.basic", + "source.yaml", + "text.csv", + "source.c", + "source.clojure", + "source.coffee", + "source.cpp", + "source.css", + "source.cs", + "source.diff", + "source.dockerfile", + "source.elixir", + "source.elm", + "source.erlang", + "source.go", + "source.groovy", + "source.haskell", + "source.java", + "source.js", + "source.json", + "source.js.jsx", + "source.julia", + "source.kotlin", + "source.css.less", + "source.makefile", + "source.objc", + "source.ocaml", + "source.perl", + "source.python", + "source.r", + "source.ruby", + "source.rust", + "source.sass", + "source.scala", + "source.css.scss", + "source.shell", + "source.sql", + "source.swift", + "source.toml", + "source.ts", + "text.xml" + ] + }, "source.asm.x86_64": { "id": "asm", - "path": "asm.tmLanguage.json", "embeddedScopes": [] }, "source.astro": { "id": "astro", - "path": "astro.tmLanguage.json", "embeddedScopes": [ - "source.tsx", - "source.css.postcss", - "source.css.less", - "source.css.scss", - "source.css", - "source.sass", - "source.stylus", - "source.ts", + "source.json", "source.js", - "source.json" + "source.ts", + "source.stylus", + "source.sass", + "source.css", + "source.css.scss", + "source.css.less", + "source.css.postcss", + "source.tsx" ] }, "source.awk": { "id": "awk", - "path": "awk.tmLanguage.json", "embeddedScopes": [] }, "source.ballerina": { "id": "ballerina", - "path": "ballerina.tmLanguage.json", "embeddedScopes": [] }, "source.batchfile": { "id": "bat", - "path": "bat.tmLanguage.json", "embeddedScopes": [] }, "text.beancount": { "id": "beancount", - "path": "beancount.tmLanguage.json", "embeddedScopes": [] }, "source.berry": { "id": "berry", - "path": "berry.tmLanguage.json", "embeddedScopes": [] }, "text.bibtex": { "id": "bibtex", - "path": "bibtex.tmLanguage.json", "embeddedScopes": [] }, "source.bicep": { "id": "bicep", - "path": "bicep.tmLanguage.json", "embeddedScopes": [] }, "text.html.php.blade": { "id": "blade", - "path": "blade.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.css", - "source.json", - "source.js", - "source.sql", + "text.html.basic", "text.xml", - "text.html.basic" + "source.sql", + "source.js", + "source.json", + "source.css" ] }, "source.c": { "id": "c", - "path": "c.tmLanguage.json", "embeddedScopes": [] }, "source.cadence": { "id": "cadence", - "path": "cadence.tmLanguage.json", "embeddedScopes": [] }, "source.clar": { "id": "clarity", - "path": "clarity.tmLanguage.json", "embeddedScopes": [] }, "source.clojure": { "id": "clojure", - "path": "clojure.tmLanguage.json", "embeddedScopes": [] }, "source.cmake": { "id": "cmake", - "path": "cmake.tmLanguage.json", "embeddedScopes": [] }, "source.cobol": { "id": "cobol", - "path": "cobol.tmLanguage.json", "embeddedScopes": [ - "source.css", - "source.js", - "source.java", + "source.sql", "text.html.basic", - "source.sql" + "source.java" ] }, + "text.codeowners": { + "id": "codeowners", + "embeddedScopes": [] + }, "source.ql": { "id": "codeql", - "path": "codeql.tmLanguage.json", - "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.stylus", - "source.sass", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.tsx", - "source.ts", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.css.scss", - "source.swift", - "source.objc", - "source.css.less", - "source.json.comments", - "source.json", - "source.js", - "text.pug", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.c", - "source.coffee", - "source.clojure", - "source.batchfile", - "source.yaml", - "text.xml.xsl", - "text.xml", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.java", - "source.ini", - "text.html.basic", - "source.css", - "text.html.markdown" - ] + "embeddedScopes": [] }, "source.coffee": { "id": "coffee", - "path": "coffee.tmLanguage.json", "embeddedScopes": [ "source.js" ] }, + "source.commonlisp": { + "id": "common-lisp", + "embeddedScopes": [] + }, "source.cpp": { "id": "cpp", - "path": "cpp.tmLanguage.json", "embeddedScopes": [ - "source.c", - "source.sql", - "source.glsl" + "source.regexp.python", + "source.glsl", + "source.sql" ] }, "source.crystal": { "id": "crystal", - "path": "crystal.tmLanguage.json", "embeddedScopes": [ - "source.shell", - "source.js", - "source.c", - "source.css", + "text.html.basic", "source.sql", - "text.html.basic" + "source.css", + "source.c", + "source.js", + "source.shell" ] }, "source.cs": { "id": "csharp", - "path": "csharp.tmLanguage.json", "embeddedScopes": [] }, "source.css": { "id": "css", - "path": "css.tmLanguage.json", + "embeddedScopes": [] + }, + "text.csv": { + "id": "csv", "embeddedScopes": [] }, "source.cue": { "id": "cue", - "path": "cue.tmLanguage.json", "embeddedScopes": [] }, "source.cypher": { "id": "cypher", - "path": "cypher.tmLanguage.json", "embeddedScopes": [] }, "source.d": { "id": "d", - "path": "d.tmLanguage.json", "embeddedScopes": [] }, "source.dart": { "id": "dart", - "path": "dart.tmLanguage.json", "embeddedScopes": [] }, "source.dax": { "id": "dax", - "path": "dax.tmLanguage.json", + "embeddedScopes": [] + }, + "source.desktop": { + "id": "desktop", "embeddedScopes": [] }, "source.diff": { "id": "diff", - "path": "diff.tmLanguage.json", "embeddedScopes": [] }, "source.dockerfile": { "id": "docker", - "path": "docker.tmLanguage.json", + "embeddedScopes": [] + }, + "source.dotenv": { + "id": "dotenv", "embeddedScopes": [] }, "source.dm": { "id": "dream-maker", - "path": "dream-maker.tmLanguage.json", "embeddedScopes": [] }, + "text.html.edge": { + "id": "edge", + "embeddedScopes": [ + "source.ts", + "text.html.basic", + "text.html.derivative" + ] + }, "source.elixir": { "id": "elixir", - "path": "elixir.tmLanguage.json", "embeddedScopes": [ - "source.css", - "source.js", "text.html.basic" ] }, "source.elm": { "id": "elm", - "path": "elm.tmLanguage.json", "embeddedScopes": [ - "source.c", "source.glsl" ] }, + "source.emacs.lisp": { + "id": "emacs-lisp", + "embeddedScopes": [] + }, "text.html.erb": { "id": "erb", - "path": "erb.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.lua", - "source.shell", - "source.c", - "source.sql", - "text.xml", - "source.css", - "source.js", - "source.ruby", - "text.html.basic" + "text.html.basic", + "source.ruby" ] }, "source.erlang": { "id": "erlang", - "path": "erlang.tmLanguage.json", + "embeddedScopes": [] + }, + "source.fnl": { + "id": "fennel", "embeddedScopes": [] }, "source.fish": { "id": "fish", - "path": "fish.tmLanguage.json", + "embeddedScopes": [] + }, + "source.ftl": { + "id": "fluent", + "embeddedScopes": [] + }, + "source.fortran.fixed": { + "id": "fortran-fixed-form", + "embeddedScopes": [ + "source.fortran.free" + ] + }, + "source.fortran.free": { + "id": "fortran-free-form", "embeddedScopes": [] }, "source.fsharp": { "id": "fsharp", - "path": "fsharp.tmLanguage.json", "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.stylus", - "source.sass", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.cs", - "source.tsx", - "source.ts", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.css.scss", - "source.swift", - "source.objc", - "source.css.less", - "source.json.comments", - "source.json", - "source.js", - "text.pug", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.c", - "source.coffee", - "source.clojure", - "source.batchfile", - "source.yaml", - "text.xml.xsl", - "text.xml", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.java", - "source.ini", - "text.html.basic", - "source.css", "text.html.markdown" ] }, "source.gdresource": { "id": "gdresource", - "path": "gdresource.tmLanguage.json", "embeddedScopes": [ - "source.gdscript", - "source.gdshader" + "source.gdshader", + "source.gdscript" ] }, "source.gdscript": { "id": "gdscript", - "path": "gdscript.tmLanguage.json", "embeddedScopes": [] }, "source.gdshader": { "id": "gdshader", - "path": "gdshader.tmLanguage.json", + "embeddedScopes": [] + }, + "source.genie": { + "id": "genie", "embeddedScopes": [] }, "text.gherkin.feature": { "id": "gherkin", - "path": "gherkin.tmLanguage.json", "embeddedScopes": [] }, "text.git-commit": { "id": "git-commit", - "path": "git-commit.tmLanguage.json", "embeddedScopes": [ "source.diff" ] }, "text.git-rebase": { "id": "git-rebase", - "path": "git-rebase.tmLanguage.json", "embeddedScopes": [ "source.shell" ] }, + "source.gleam": { + "id": "gleam", + "embeddedScopes": [] + }, "source.gjs": { "id": "glimmer-js", - "path": "glimmer-js.tmLanguage.json", "embeddedScopes": [ - "source.yaml", + "source.js", + "source.ts", "source.css", - "text.html.basic", - "text.html.handlebars", - "source.js" + "text.html.basic" ] }, "source.gts": { "id": "glimmer-ts", - "path": "glimmer-ts.tmLanguage.json", "embeddedScopes": [ - "source.yaml", - "source.js", + "source.ts", "source.css", - "text.html.basic", - "text.html.handlebars", - "source.ts" + "source.js", + "text.html.basic" ] }, "source.glsl": { "id": "glsl", - "path": "glsl.tmLanguage.json", "embeddedScopes": [ "source.c" ] }, "source.gnuplot": { "id": "gnuplot", - "path": "gnuplot.tmLanguage.json", "embeddedScopes": [] }, "source.go": { "id": "go", - "path": "go.tmLanguage.json", "embeddedScopes": [] }, "source.graphql": { "id": "graphql", - "path": "graphql.tmLanguage.json", "embeddedScopes": [ - "source.tsx", - "source.js.jsx", + "source.js", "source.ts", - "source.js" + "source.js.jsx", + "source.tsx" ] }, "source.groovy": { "id": "groovy", - "path": "groovy.tmLanguage.json", "embeddedScopes": [] }, "source.hack": { "id": "hack", - "path": "hack.tmLanguage.json", "embeddedScopes": [ - "source.css", - "source.js", - "source.sql", - "text.html.basic" + "text.html.basic", + "source.sql" ] }, "text.haml": { "id": "haml", - "path": "haml.tmLanguage.json", "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.stylus", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.tsx", - "source.ts", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.css.scss", - "source.swift", - "source.objc", - "source.css.less", - "source.json.comments", - "source.json", - "text.pug", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.clojure", - "source.batchfile", - "source.yaml", - "text.xml.xsl", - "source.asp.vb.net", - "source.php", - "source.r", - "source.perl", - "source.makefile", - "source.java", - "source.ini", - "source.lua", - "source.shell", - "source.c", - "source.sql", - "text.xml", - "text.html.basic", - "source.css", - "text.html.markdown", - "source.coffee", - "source.sass", + "source.ruby", "source.js", - "source.ruby" + "source.sass", + "source.coffee", + "text.html.markdown", + "source.css" ] }, "text.html.handlebars": { "id": "handlebars", - "path": "handlebars.tmLanguage.json", "embeddedScopes": [ - "source.yaml", - "source.js", + "text.html.basic", "source.css", - "text.html.basic" + "source.js", + "source.yaml" ] }, "source.haskell": { "id": "haskell", - "path": "haskell.tmLanguage.json", + "embeddedScopes": [] + }, + "source.hx": { + "id": "haxe", "embeddedScopes": [] }, "source.hcl": { "id": "hcl", - "path": "hcl.tmLanguage.json", "embeddedScopes": [] }, "source.hjson": { "id": "hjson", - "path": "hjson.tmLanguage.json", "embeddedScopes": [] }, "source.hlsl": { "id": "hlsl", - "path": "hlsl.tmLanguage.json", "embeddedScopes": [] }, "text.html.basic": { "id": "html", - "path": "html.tmLanguage.json", "embeddedScopes": [ - "source.css", - "source.js" + "source.js", + "source.css" + ] + }, + "text.html.derivative": { + "id": "html-derivative", + "embeddedScopes": [ + "text.html.basic" ] }, "source.http": { "id": "http", - "path": "http.tmLanguage.json", "embeddedScopes": [ - "source.tsx", - "source.js.jsx", - "source.ts", - "source.js", - "source.java", - "source.graphql", - "text.xml", + "source.shell", "source.json", - "source.shell" + "text.xml", + "source.graphql" + ] + }, + "source.hxml": { + "id": "hxml", + "embeddedScopes": [ + "source.hx" ] }, + "source.hy": { + "id": "hy", + "embeddedScopes": [] + }, "source.imba": { "id": "imba", - "path": "imba.tmLanguage.json", - "embeddedScopes": [] + "embeddedScopes": [ + "source.ts" + ] }, "source.ini": { "id": "ini", - "path": "ini.tmLanguage.json", "embeddedScopes": [] }, "source.java": { "id": "java", - "path": "java.tmLanguage.json", "embeddedScopes": [] }, "source.js": { "id": "javascript", - "path": "javascript.tmLanguage.json", "embeddedScopes": [] }, - "text.html.jinja": { - "id": "jinja-html", - "path": "jinja-html.tmLanguage.json", - "embeddedScopes": [ - "source.css", - "source.js", - "text.html.basic" - ] + "source.jinja": { + "id": "jinja", + "embeddedScopes": [] }, "source.jison": { "id": "jison", - "path": "jison.tmLanguage.json", "embeddedScopes": [ "source.js" ] }, "source.json": { "id": "json", - "path": "json.tmLanguage.json", "embeddedScopes": [] }, "source.json5": { "id": "json5", - "path": "json5.tmLanguage.json", "embeddedScopes": [] }, "source.json.comments": { "id": "jsonc", - "path": "jsonc.tmLanguage.json", "embeddedScopes": [] }, "source.json.lines": { "id": "jsonl", - "path": "jsonl.tmLanguage.json", "embeddedScopes": [] }, "source.jsonnet": { "id": "jsonnet", - "path": "jsonnet.tmLanguage.json", "embeddedScopes": [] }, "source.jssm": { "id": "jssm", - "path": "jssm.tmLanguage.json", "embeddedScopes": [] }, "source.js.jsx": { "id": "jsx", - "path": "jsx.tmLanguage.json", "embeddedScopes": [] }, "source.julia": { "id": "julia", - "path": "julia.tmLanguage.json", "embeddedScopes": [ - "source.c", - "source.glsl", - "source.sql", - "source.r", - "source.js", + "source.cpp", "source.python", - "source.cpp" + "source.js", + "source.r", + "source.sql" ] }, "source.kotlin": { "id": "kotlin", - "path": "kotlin.tmLanguage.json", "embeddedScopes": [] }, "source.kusto": { "id": "kusto", - "path": "kusto.tmLanguage.json", "embeddedScopes": [] }, "text.tex.latex": { "id": "latex", - "path": "latex.tmLanguage.json", "embeddedScopes": [ - "source.glsl", + "text.tex", "source.shell", - "source.sql", - "source.cpp", - "source.c", - "source.r", + "source.css", "source.gnuplot", - "source.scala", - "source.rust", - "source.yaml", - "source.python", - "source.ts", - "source.js", - "source.ruby", + "source.haskell", + "text.html.basic", + "source.java", "source.julia", + "source.js", "source.lua", - "source.java", + "source.python", + "source.ruby", + "source.rust", + "source.ts", "text.xml", - "text.html.basic", - "source.haskell", - "source.css", - "text.tex" + "source.yaml", + "source.scala" ] }, + "source.lean4": { + "id": "lean", + "embeddedScopes": [] + }, "source.css.less": { "id": "less", - "path": "less.tmLanguage.json", - "embeddedScopes": [ - "source.css" - ] + "embeddedScopes": [] }, "text.html.liquid": { "id": "liquid", - "path": "liquid.tmLanguage.json", "embeddedScopes": [ - "source.js", - "source.json", + "text.html.basic", "source.css", - "text.html.basic" + "source.json", + "source.js" ] }, - "source.lisp": { - "id": "lisp", - "path": "lisp.tmLanguage.json", + "text.log": { + "id": "log", "embeddedScopes": [] }, "source.logo": { "id": "logo", - "path": "logo.tmLanguage.json", "embeddedScopes": [] }, "source.lua": { "id": "lua", - "path": "lua.tmLanguage.json", "embeddedScopes": [ "source.c" ] }, + "source.luau": { + "id": "luau", + "embeddedScopes": [] + }, "source.makefile": { "id": "make", - "path": "make.tmLanguage.json", "embeddedScopes": [] }, "text.html.markdown": { "id": "markdown", - "path": "markdown.tmLanguage.json", "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.stylus", - "source.sass", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.tsx", - "source.ts", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.css.scss", - "source.swift", - "source.objc", - "source.css.less", - "source.json.comments", - "source.json", - "source.js", - "text.pug", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.c", - "source.coffee", - "source.clojure", - "source.batchfile", - "source.yaml", - "text.xml.xsl", - "text.xml", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.java", - "source.ini", + "source.css", "text.html.basic", - "source.css" - ] + "source.ini", + "source.java", + "source.lua", + "source.makefile", + "source.perl", + "source.r", + "source.ruby", + "source.php", + "source.sql", + "source.asp.vb.net", + "text.xml", + "text.xml.xsl", + "source.yaml", + "source.batchfile", + "source.clojure", + "source.coffee", + "source.c", + "source.cpp", + "source.diff", + "source.dockerfile", + "text.git-commit", + "text.git-rebase", + "source.go", + "source.groovy", + "text.pug", + "source.js", + "source.json", + "source.json.comments", + "source.css.less", + "source.objc", + "source.swift", + "source.css.scss", + "source.perl.6", + "source.powershell", + "source.python", + "source.julia", + "source.regexp.python", + "source.rust", + "source.scala", + "source.shell", + "source.ts", + "source.tsx", + "source.cs", + "source.fsharp", + "source.dart", + "text.html.handlebars", + "text.log", + "source.erlang", + "source.elixir", + "text.tex.latex", + "text.bibtex", + "text.html.derivative" + ] }, "text.marko": { "id": "marko", - "path": "marko.tmLanguage.json", "embeddedScopes": [ - "source.js", - "source.css.scss", + "source.css", "source.css.less", - "source.css" + "source.css.scss", + "source.js" ] }, "source.matlab": { "id": "matlab", - "path": "matlab.tmLanguage.json", "embeddedScopes": [] }, - "source.mdx": { - "id": "mdx", - "path": "mdx.tmLanguage.json", + "text.markdown.mdc": { + "id": "mdc", "embeddedScopes": [ - "source.gnuplot", - "text.tex", - "source.stylus", - "source.sass", - "text.bibtex", - "text.tex.latex", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.powershell", - "source.perl.6", - "source.json.comments", - "text.pug", - "source.groovy", - "text.git-rebase", - "text.git-commit", - "source.batchfile", - "text.xml.xsl", - "source.asp.vb.net", - "source.php", - "source.js.jsx", - "source.glsl", - "source.ts", - "source.swift", - "text.xml", - "source.sql", - "text.shell-session", - "source.shell", - "source.css.scss", - "source.scala", - "source.rust", - "source.ruby", - "source.r", - "source.python", - "source.perl", - "source.objc", "text.html.markdown", - "source.makefile", - "source.lua", - "source.css.less", - "source.kotlin", - "source.julia", - "source.json", - "source.js", - "source.java", - "source.ini", - "text.html.basic", - "source.haskell", - "source.graphql", - "source.go", - "source.erlang", - "source.elm", - "source.elixir", - "source.dockerfile", - "source.diff", - "source.css", - "source.cs", - "source.cpp", - "source.coffee", - "source.clojure", - "source.c", "source.yaml", + "text.html.derivative" + ] + }, + "source.mdx": { + "id": "mdx", + "embeddedScopes": [ + "source.tsx", "source.toml", - "source.tsx" + "source.yaml", + "source.c", + "source.clojure", + "source.coffee", + "source.cpp", + "source.cs", + "source.css", + "source.diff", + "source.dockerfile", + "source.elixir", + "source.elm", + "source.erlang", + "source.go", + "source.graphql", + "source.haskell", + "text.html.basic", + "source.ini", + "source.java", + "source.js", + "source.json", + "source.julia", + "source.kotlin", + "source.css.less", + "source.lua", + "source.makefile", + "text.html.markdown", + "source.objc", + "source.perl", + "source.python", + "source.r", + "source.ruby", + "source.rust", + "source.scala", + "source.css.scss", + "source.shell", + "text.shell-session", + "source.sql", + "text.xml", + "source.swift", + "source.ts" ] }, - "source.mermaid": { + "markdown.mermaid.codeblock": { "id": "mermaid", - "path": "mermaid.tmLanguage.json", + "embeddedScopes": [] + }, + "source.mojo": { + "id": "mojo", + "embeddedScopes": [] + }, + "source.move": { + "id": "move", "embeddedScopes": [] }, "source.narrat": { "id": "narrat", - "path": "narrat.tmLanguage.json", "embeddedScopes": [] }, "source.nextflow": { "id": "nextflow", - "path": "nextflow.tmLanguage.json", "embeddedScopes": [] }, "source.nginx": { "id": "nginx", - "path": "nginx.tmLanguage.json", "embeddedScopes": [ - "source.c", "source.lua" ] }, "source.nim": { "id": "nim", - "path": "nim.tmLanguage.json", "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.stylus", - "source.sass", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.tsx", - "source.ts", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.css.scss", - "source.swift", - "source.objc", - "source.css.less", - "source.json.comments", - "source.json", - "text.pug", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.coffee", - "source.clojure", - "source.batchfile", - "source.yaml", - "text.xml.xsl", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.ini", - "source.java", - "text.html.markdown", - "source.glsl", - "source.css", - "source.js", - "text.xml", + "source.c", "text.html.basic", - "source.c" + "text.xml", + "source.js", + "source.css", + "source.glsl", + "text.html.markdown" ] }, "source.nix": { "id": "nix", - "path": "nix.tmLanguage.json", + "embeddedScopes": [] + }, + "source.nushell": { + "id": "nushell", "embeddedScopes": [] }, "source.objc": { "id": "objective-c", - "path": "objective-c.tmLanguage.json", "embeddedScopes": [] }, "source.objcpp": { "id": "objective-cpp", - "path": "objective-cpp.tmLanguage.json", "embeddedScopes": [] }, "source.ocaml": { "id": "ocaml", - "path": "ocaml.tmLanguage.json", "embeddedScopes": [] }, "source.pascal": { "id": "pascal", - "path": "pascal.tmLanguage.json", "embeddedScopes": [] }, "source.perl": { "id": "perl", - "path": "perl.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.sql", - "source.js", - "source.css", + "text.html.basic", "text.xml", - "text.html.basic" + "source.css", + "source.js", + "source.sql" ] }, "source.php": { "id": "php", - "path": "php.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.css", - "source.json", - "source.js", - "source.sql", + "text.html.basic", "text.xml", - "text.html.basic" + "source.sql", + "source.js", + "source.json", + "source.css" ] }, "source.plsql.oracle": { "id": "plsql", - "path": "plsql.tmLanguage.json", "embeddedScopes": [] }, - "source.polar": { - "id": "polar", - "path": "polar.tmLanguage.json", + "source.po": { + "id": "po", "embeddedScopes": [] }, "source.css.postcss": { "id": "postcss", - "path": "postcss.tmLanguage.json", "embeddedScopes": [] }, "source.powerquery": { "id": "powerquery", - "path": "powerquery.tmLanguage.json", "embeddedScopes": [] }, "source.powershell": { "id": "powershell", - "path": "powershell.tmLanguage.json", "embeddedScopes": [] }, "source.prisma": { "id": "prisma", - "path": "prisma.tmLanguage.json", "embeddedScopes": [] }, "source.prolog": { "id": "prolog", - "path": "prolog.tmLanguage.json", "embeddedScopes": [] }, "source.proto": { "id": "proto", - "path": "proto.tmLanguage.json", "embeddedScopes": [] }, "text.pug": { "id": "pug", - "path": "pug.tmLanguage.json", "embeddedScopes": [ - "text.html.basic", - "source.coffee", - "source.stylus", - "source.css.scss", - "source.sass", + "source.js", "source.css", - "source.js" + "source.sass", + "source.css.scss", + "source.stylus", + "source.coffee", + "text.html.basic" ] }, "source.puppet": { "id": "puppet", - "path": "puppet.tmLanguage.json", "embeddedScopes": [] }, "source.purescript": { "id": "purescript", - "path": "purescript.tmLanguage.json", "embeddedScopes": [] }, "source.python": { "id": "python", - "path": "python.tmLanguage.json", + "embeddedScopes": [] + }, + "source.qml": { + "id": "qml", + "embeddedScopes": [ + "source.js" + ] + }, + "source.qmldir": { + "id": "qmldir", + "embeddedScopes": [] + }, + "source.qss": { + "id": "qss", "embeddedScopes": [] }, "source.r": { "id": "r", - "path": "r.tmLanguage.json", + "embeddedScopes": [] + }, + "source.racket": { + "id": "racket", "embeddedScopes": [] }, "source.perl.6": { "id": "raku", - "path": "raku.tmLanguage.json", "embeddedScopes": [] }, "text.aspnetcorerazor": { "id": "razor", - "path": "razor.tmLanguage.json", "embeddedScopes": [ - "source.css", - "source.js", - "source.cs", - "text.html.basic" + "text.html.basic", + "source.cs" ] }, "source.reg": { "id": "reg", - "path": "reg.tmLanguage.json", + "embeddedScopes": [] + }, + "source.regexp.python": { + "id": "regexp", "embeddedScopes": [] }, "source.rel": { "id": "rel", - "path": "rel.tmLanguage.json", "embeddedScopes": [] }, "source.riscv": { "id": "riscv", - "path": "riscv.tmLanguage.json", "embeddedScopes": [] }, "source.rst": { "id": "rst", - "path": "rst.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.lua", - "source.c", - "source.css", - "text.xml", - "text.html.basic", - "source.sql", - "source.glsl", - "source.ruby", - "source.cmake", - "source.yaml", - "source.shell", - "source.js", + "text.html.derivative", + "source.cpp", "source.python", - "source.cpp" + "source.js", + "source.shell", + "source.yaml", + "source.cmake", + "source.ruby" ] }, "source.ruby": { "id": "ruby", - "path": "ruby.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.lua", - "source.shell", - "source.js", - "source.c", - "source.css", - "source.sql", + "text.html.basic", "text.xml", - "text.html.basic" + "source.sql", + "source.css", + "source.c", + "source.js", + "source.shell", + "source.lua" ] }, "source.rust": { "id": "rust", - "path": "rust.tmLanguage.json", "embeddedScopes": [] }, "source.sas": { "id": "sas", - "path": "sas.tmLanguage.json", "embeddedScopes": [ "source.sql" ] }, "source.sass": { "id": "sass", - "path": "sass.tmLanguage.json", "embeddedScopes": [] }, "source.scala": { "id": "scala", - "path": "scala.tmLanguage.json", "embeddedScopes": [] }, "source.scheme": { "id": "scheme", - "path": "scheme.tmLanguage.json", "embeddedScopes": [] }, "source.css.scss": { "id": "scss", - "path": "scss.tmLanguage.json", "embeddedScopes": [ "source.css" ] }, "source.shaderlab": { "id": "shaderlab", - "path": "shaderlab.tmLanguage.json", "embeddedScopes": [ "source.hlsl" ] }, "source.shell": { "id": "shellscript", - "path": "shellscript.tmLanguage.json", "embeddedScopes": [] }, "text.shell-session": { "id": "shellsession", - "path": "shellsession.tmLanguage.json", "embeddedScopes": [ "source.shell" ] }, "source.smalltalk": { "id": "smalltalk", - "path": "smalltalk.tmLanguage.json", "embeddedScopes": [] }, "source.solidity": { "id": "solidity", - "path": "solidity.tmLanguage.json", "embeddedScopes": [] }, + "text.html.soy": { + "id": "soy", + "embeddedScopes": [ + "text.html.basic" + ] + }, "source.sparql": { "id": "sparql", - "path": "sparql.tmLanguage.json", "embeddedScopes": [ "source.turtle" ] }, + "source.splunk_search": { + "id": "splunk", + "embeddedScopes": [] + }, "source.sql": { "id": "sql", - "path": "sql.tmLanguage.json", "embeddedScopes": [] }, "source.ssh-config": { "id": "ssh-config", - "path": "ssh-config.tmLanguage.json", "embeddedScopes": [] }, "source.stata": { "id": "stata", - "path": "stata.tmLanguage.json", "embeddedScopes": [ "source.sql" ] }, "source.stylus": { "id": "stylus", - "path": "stylus.tmLanguage.json", "embeddedScopes": [] }, - "source.svelte": { - "id": "svelte", - "path": "svelte.tmLanguage.json", - "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.tsx", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.swift", - "source.objc", - "source.json.comments", - "source.json", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.c", - "source.clojure", - "source.batchfile", - "source.yaml", - "text.xml.xsl", - "text.xml", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.java", - "source.ini", - "text.html.basic", - "text.html.markdown", - "text.pug", - "source.css.postcss", - "source.css.less", - "source.css.scss", - "source.css", - "source.sass", - "source.stylus", - "source.coffee", + "source.svelte": { + "id": "svelte", + "embeddedScopes": [ + "source.js", "source.ts", - "source.js" + "source.coffee", + "source.stylus", + "source.sass", + "source.css", + "source.css.scss", + "source.css.less", + "source.css.postcss", + "text.pug", + "text.html.markdown" ] }, "source.swift": { "id": "swift", - "path": "swift.tmLanguage.json", "embeddedScopes": [] }, "source.systemverilog": { "id": "system-verilog", - "path": "system-verilog.tmLanguage.json", + "embeddedScopes": [] + }, + "source.systemd": { + "id": "systemd", "embeddedScopes": [] }, "source.tasl": { "id": "tasl", - "path": "tasl.tmLanguage.json", "embeddedScopes": [] }, "source.tcl": { "id": "tcl", - "path": "tcl.tmLanguage.json", + "embeddedScopes": [] + }, + "source.templ": { + "id": "templ", + "embeddedScopes": [ + "source.go", + "source.js", + "source.css" + ] + }, + "source.hcl.terraform": { + "id": "terraform", "embeddedScopes": [] }, "text.tex": { "id": "tex", - "path": "tex.tmLanguage.json", "embeddedScopes": [ "source.r" ] }, "source.toml": { "id": "toml", - "path": "toml.tmLanguage.json", + "embeddedScopes": [] + }, + "source.ts.tags": { + "id": "ts-tags", + "embeddedScopes": [ + "source.ts" + ] + }, + "text.tsv": { + "id": "tsv", "embeddedScopes": [] }, "source.tsx": { "id": "tsx", - "path": "tsx.tmLanguage.json", "embeddedScopes": [] }, "source.turtle": { "id": "turtle", - "path": "turtle.tmLanguage.json", "embeddedScopes": [] }, "text.html.twig": { "id": "twig", - "path": "twig.tmLanguage.json", "embeddedScopes": [ - "source.java", - "source.lua", - "source.shell", - "source.c", - "source.json", - "source.sql", - "text.xml", - "text.html.basic", - "source.ruby", - "source.python", - "source.php", + "source.css", "source.js", - "source.css" + "source.css.scss", + "source.php", + "source.python", + "source.ruby" ] }, "source.txt": { "id": "txt", - "path": "txt.tmLanguage.json", "embeddedScopes": [] }, "source.ts": { "id": "typescript", - "path": "typescript.tmLanguage.json", + "embeddedScopes": [] + }, + "source.tsp": { + "id": "typespec", + "embeddedScopes": [] + }, + "source.typst": { + "id": "typst", "embeddedScopes": [] }, "source.v": { "id": "v", - "path": "v.tmLanguage.json", + "embeddedScopes": [] + }, + "source.vala": { + "id": "vala", "embeddedScopes": [] }, "source.asp.vb.net": { "id": "vb", - "path": "vb.tmLanguage.json", "embeddedScopes": [] }, "source.verilog": { "id": "verilog", - "path": "verilog.tmLanguage.json", "embeddedScopes": [] }, "source.vhdl": { "id": "vhdl", - "path": "vhdl.tmLanguage.json", "embeddedScopes": [] }, "source.viml": { "id": "viml", - "path": "viml.tmLanguage.json", "embeddedScopes": [] }, - "text.html.vue-html": { - "id": "vue-html", - "path": "vue-html.tmLanguage.json", + "source.vue": { + "id": "vue", "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.swift", - "source.objc", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.c", - "source.coffee", - "source.clojure", - "source.batchfile", - "text.xml.xsl", - "text.xml", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.java", - "source.ini", - "source.graphql", - "source.toml", - "source.yaml", - "source.json5", - "source.json.comments", - "source.json", - "source.tsx", - "source.js.jsx", - "source.ts", - "source.css.less", - "source.css.scss", - "source.css", - "source.sass", - "source.stylus", - "text.pug", - "text.html.markdown", "text.html.basic", + "text.html.markdown", + "text.pug", + "source.stylus", + "source.sass", + "source.css", + "source.css.scss", + "source.css.less", "source.js", - "source.vue" + "source.ts", + "source.js.jsx", + "source.tsx", + "source.coffee", + "source.json", + "source.json.comments", + "source.json5", + "source.yaml", + "source.toml", + "source.graphql", + "text.html.derivative" ] }, - "source.vue": { - "id": "vue", - "path": "vue.tmLanguage.json", + "text.html.vue-html": { + "id": "vue-html", "embeddedScopes": [ - "source.gnuplot", - "source.haskell", - "text.tex", - "source.glsl", - "text.bibtex", - "text.tex.latex", - "source.elixir", - "source.erlang", - "text.html.handlebars", - "source.dart", - "source.fsharp", - "source.cs", - "source.shell", - "source.scala", - "source.rust", - "source.julia", - "source.python", - "source.powershell", - "source.perl.6", - "source.swift", - "source.objc", - "source.groovy", - "source.go", - "text.git-rebase", - "text.git-commit", - "source.dockerfile", - "source.diff", - "source.cpp", - "source.c", - "source.coffee", - "source.clojure", - "source.batchfile", - "text.xml.xsl", - "text.xml", - "source.asp.vb.net", - "source.sql", - "source.php", - "source.ruby", - "source.r", - "source.perl", - "source.makefile", - "source.lua", - "source.java", - "source.ini", - "source.graphql", - "source.toml", - "source.yaml", - "source.json5", - "source.json.comments", - "source.json", - "source.tsx", - "source.js.jsx", - "source.ts", - "source.js", - "source.css.less", - "source.css.scss", - "source.css", - "source.sass", - "source.stylus", - "text.pug", - "text.html.markdown", - "text.html.basic" + "source.vue", + "source.js" ] }, "source.vyper": { "id": "vyper", - "path": "vyper.tmLanguage.json", "embeddedScopes": [] }, "source.wat": { "id": "wasm", - "path": "wasm.tmLanguage.json", "embeddedScopes": [] }, "source.wenyan": { "id": "wenyan", - "path": "wenyan.tmLanguage.json", "embeddedScopes": [] }, "source.wgsl": { "id": "wgsl", - "path": "wgsl.tmLanguage.json", "embeddedScopes": [] }, + "source.wikitext": { + "id": "wikitext", + "embeddedScopes": [ + "text.html.basic", + "source.css", + "source.ini", + "source.java", + "source.lua", + "source.makefile", + "source.perl", + "source.r", + "source.ruby", + "source.php", + "source.sql", + "source.asp.vb.net", + "text.xml", + "text.xml.xsl", + "source.yaml", + "source.batchfile", + "source.clojure", + "source.coffee", + "source.c", + "source.cpp", + "source.diff", + "source.dockerfile", + "source.go", + "source.groovy", + "text.pug", + "source.js", + "source.json.comments", + "source.css.less", + "source.objc", + "source.swift", + "source.css.scss", + "source.perl.6", + "source.powershell", + "source.python", + "source.julia", + "source.rust", + "source.scala", + "source.shell", + "source.ts", + "source.cs", + "source.fsharp", + "source.dart", + "text.html.handlebars", + "text.html.markdown", + "source.erlang", + "source.elixir", + "text.tex.latex", + "text.bibtex", + "source.json" + ] + }, "source.wolfram": { "id": "wolfram", - "path": "wolfram.tmLanguage.json", "embeddedScopes": [] }, "text.xml": { "id": "xml", - "path": "xml.tmLanguage.json", "embeddedScopes": [ "source.java" ] }, "text.xml.xsl": { "id": "xsl", - "path": "xsl.tmLanguage.json", "embeddedScopes": [ - "source.java", "text.xml" ] }, "source.yaml": { "id": "yaml", - "path": "yaml.tmLanguage.json", "embeddedScopes": [] }, "source.zenscript": { "id": "zenscript", - "path": "zenscript.tmLanguage.json", + "embeddedScopes": [] + }, + "source.zig": { + "id": "zig", "embeddedScopes": [] } }; diff --git a/lib/src/network.browser.ts b/lib/src/network.browser.ts index c576876..9f1e603 100644 --- a/lib/src/network.browser.ts +++ b/lib/src/network.browser.ts @@ -6,5 +6,9 @@ const LIGHTER_VERSION = "__LIGHTER_VERSION__"; // /themes/${name}.json export async function fetchJSON(endpoint: string) { const r = await fetch(`https://lighter.codehike.org/${endpoint}.json`); + // console.log(`https://lighter.codehike.org/${endpoint}.json`, r.status); + if (!r.ok) { + return undefined; + } return await r.json(); } diff --git a/lib/src/network.ts b/lib/src/network.ts index 36c1b49..286c7c2 100644 --- a/lib/src/network.ts +++ b/lib/src/network.ts @@ -5,6 +5,7 @@ const LIGHTER_VERSION = "__LIGHTER_VERSION__"; // /grammars/${name}.json // /themes/${name}.json export async function fetchJSON(endpoint: string) { + console.warn("[WARN] Code Hike:", "fetching resource from network", endpoint); if (typeof fetch === "function") { // console.log(`using fetch`, `https://lighter.codehike.org/${endpoint}.json`); const r = await fetch(`https://lighter.codehike.org/${endpoint}.json`); diff --git a/lib/src/resolve/index.js b/lib/src/resolve/index.js deleted file mode 100644 index b4e636a..0000000 --- a/lib/src/resolve/index.js +++ /dev/null @@ -1,327 +0,0 @@ -// from https://github.com/browserify/resolve -// MIT License -// removed the "is-core-module" dependency because it fails on edge runtime -export default function resolveSync(x, options) { - var fs = require("fs"); - var path = require("path"); - // var parse = path.parse || require("path-parse"); // eslint-disable-line global-require - var parse = path.parse; - - var os = require("os"); - - function normalizeOptions(x, opts) { - return opts || {}; - } - - var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { - var prefix = "/"; - if (/^([A-Za-z]:)/.test(absoluteStart)) { - prefix = ""; - } else if (/^\\\\/.test(absoluteStart)) { - prefix = "\\\\"; - } - - var paths = [absoluteStart]; - var parsed = parse(absoluteStart); - while (parsed.dir !== paths[paths.length - 1]) { - paths.push(parsed.dir); - parsed = parse(parsed.dir); - } - - return paths.reduce(function (dirs, aPath) { - return dirs.concat( - modules.map(function (moduleDir) { - return path.resolve(prefix, aPath, moduleDir); - }) - ); - }, []); - }; - - function nodeModulesPaths(start, opts, request) { - var modules = - opts && opts.moduleDirectory - ? [].concat(opts.moduleDirectory) - : ["node_modules"]; - - if (opts && typeof opts.paths === "function") { - return opts.paths( - request, - start, - function () { - return getNodeModulesDirs(start, modules); - }, - opts - ); - } - - var dirs = getNodeModulesDirs(start, modules); - return opts && opts.paths ? dirs.concat(opts.paths) : dirs; - } - - const getHomedir = - os.homedir || - function homedir() { - var home = process.env.HOME; - var user = - process.env.LOGNAME || - process.env.USER || - process.env.LNAME || - process.env.USERNAME; - - if (process.platform === "win32") { - return ( - process.env.USERPROFILE || - process.env.HOMEDRIVE + process.env.HOMEPATH || - home || - null - ); - } - - if (process.platform === "darwin") { - return home || (user ? "/Users/" + user : null); - } - - if (process.platform === "linux") { - return ( - home || - (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null) - ); // eslint-disable-line no-extra-parens - } - - return home || null; - }; - - var caller = function () { - // see https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi - var origPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = function (_, stack) { - return stack; - }; - var stack = new Error().stack; - Error.prepareStackTrace = origPrepareStackTrace; - return stack[2].getFileName(); - }; - - var realpathFS = - process.platform !== "win32" && - fs.realpathSync && - typeof fs.realpathSync.native === "function" - ? fs.realpathSync.native - : fs.realpathSync; - - var homedir = getHomedir(); - var defaultPaths = function () { - return [ - path.join(homedir, ".node_modules"), - path.join(homedir, ".node_libraries"), - ]; - }; - - var defaultIsFile = function isFile(file) { - try { - var stat = fs.statSync(file, { throwIfNoEntry: false }); - } catch (e) { - if (e && (e.code === "ENOENT" || e.code === "ENOTDIR")) return false; - throw e; - } - return !!stat && (stat.isFile() || stat.isFIFO()); - }; - - var defaultIsDir = function isDirectory(dir) { - try { - var stat = fs.statSync(dir, { throwIfNoEntry: false }); - } catch (e) { - if (e && (e.code === "ENOENT" || e.code === "ENOTDIR")) return false; - throw e; - } - return !!stat && stat.isDirectory(); - }; - - var defaultRealpathSync = function realpathSync(x) { - try { - return realpathFS(x); - } catch (realpathErr) { - if (realpathErr.code !== "ENOENT") { - throw realpathErr; - } - } - return x; - }; - - var maybeRealpathSync = function maybeRealpathSync(realpathSync, x, opts) { - if (opts && opts.preserveSymlinks === false) { - return realpathSync(x); - } - return x; - }; - - var defaultReadPackageSync = function defaultReadPackageSync( - readFileSync, - pkgfile - ) { - var body = readFileSync(pkgfile); - try { - var pkg = JSON.parse(body); - return pkg; - } catch (jsonErr) {} - }; - - var getPackageCandidates = function getPackageCandidates(x, start, opts) { - var dirs = nodeModulesPaths(start, opts, x); - for (var i = 0; i < dirs.length; i++) { - dirs[i] = path.join(dirs[i], x); - } - return dirs; - }; - - if (typeof x !== "string") { - throw new TypeError("Path must be a string."); - } - var opts = normalizeOptions(x, options); - - var isFile = opts.isFile || defaultIsFile; - var readFileSync = opts.readFileSync || fs.readFileSync; - var isDirectory = opts.isDirectory || defaultIsDir; - var realpathSync = opts.realpathSync || defaultRealpathSync; - var readPackageSync = opts.readPackageSync || defaultReadPackageSync; - if (opts.readFileSync && opts.readPackageSync) { - throw new TypeError( - "`readFileSync` and `readPackageSync` are mutually exclusive." - ); - } - var packageIterator = opts.packageIterator; - - var extensions = opts.extensions || [".js"]; - var includeCoreModules = opts.includeCoreModules !== false; - var basedir = opts.basedir || path.dirname(caller()); - var parent = opts.filename || basedir; - - opts.paths = opts.paths || defaultPaths(); - - // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory - var absoluteStart = maybeRealpathSync( - realpathSync, - path.resolve(basedir), - opts - ); - - if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x)) { - var res = path.resolve(absoluteStart, x); - if (x === "." || x === ".." || x.slice(-1) === "/") res += "/"; - var m = loadAsFileSync(res) || loadAsDirectorySync(res); - if (m) return maybeRealpathSync(realpathSync, m, opts); - } else { - var n = loadNodeModulesSync(x, absoluteStart); - if (n) return maybeRealpathSync(realpathSync, n, opts); - } - - var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); - err.code = "MODULE_NOT_FOUND"; - throw err; - - function loadAsFileSync(x) { - var pkg = loadpkg(path.dirname(x)); - - if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { - var rfile = path.relative(pkg.dir, x); - var r = opts.pathFilter(pkg.pkg, x, rfile); - if (r) { - x = path.resolve(pkg.dir, r); // eslint-disable-line no-param-reassign - } - } - - if (isFile(x)) { - return x; - } - - for (var i = 0; i < extensions.length; i++) { - var file = x + extensions[i]; - if (isFile(file)) { - return file; - } - } - } - - function loadpkg(dir) { - if (dir === "" || dir === "/") return; - if (process.platform === "win32" && /^\w:[/\\]*$/.test(dir)) { - return; - } - if (/[/\\]node_modules[/\\]*$/.test(dir)) return; - - var pkgfile = path.join( - maybeRealpathSync(realpathSync, dir, opts), - "package.json" - ); - - if (!isFile(pkgfile)) { - return loadpkg(path.dirname(dir)); - } - - var pkg = readPackageSync(readFileSync, pkgfile); - - if (pkg && opts.packageFilter) { - // v2 will pass pkgfile - pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment - } - - return { pkg: pkg, dir: dir }; - } - - function loadAsDirectorySync(x) { - var pkgfile = path.join( - maybeRealpathSync(realpathSync, x, opts), - "/package.json" - ); - if (isFile(pkgfile)) { - try { - var pkg = readPackageSync(readFileSync, pkgfile); - } catch (e) {} - - if (pkg && opts.packageFilter) { - // v2 will pass pkgfile - pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment - } - - if (pkg && pkg.main) { - if (typeof pkg.main !== "string") { - var mainError = new TypeError( - "package “" + pkg.name + "” `main` must be a string" - ); - mainError.code = "INVALID_PACKAGE_MAIN"; - throw mainError; - } - if (pkg.main === "." || pkg.main === "./") { - pkg.main = "index"; - } - try { - var m = loadAsFileSync(path.resolve(x, pkg.main)); - if (m) return m; - var n = loadAsDirectorySync(path.resolve(x, pkg.main)); - if (n) return n; - } catch (e) {} - } - } - - return loadAsFileSync(path.join(x, "/index")); - } - - function loadNodeModulesSync(x, start) { - var thunk = function () { - return getPackageCandidates(x, start, opts); - }; - var dirs = packageIterator - ? packageIterator(x, start, thunk, opts) - : thunk(); - - for (var i = 0; i < dirs.length; i++) { - var dir = dirs[i]; - if (isDirectory(path.dirname(dir))) { - var m = loadAsFileSync(dir); - if (m) return m; - var n = loadAsDirectorySync(dir); - if (n) return n; - } - } - } -} diff --git a/lib/src/theme.ts b/lib/src/theme.ts index 14d79b3..33dd784 100644 --- a/lib/src/theme.ts +++ b/lib/src/theme.ts @@ -1,4 +1,4 @@ -import { readJSON } from "./file-system"; +import { readTheme } from "./file-system"; import { fetchJSON } from "./network"; import { getColor, getColorScheme } from "./theme-colors"; @@ -39,7 +39,7 @@ export function getTheme(theme: Theme): FinalTheme { async function reallyLoadThemeByName(name: StringTheme): Promise<RawTheme> { try { - return await readJSON("themes", name + ".json"); + return await readTheme(name); } catch (e) { return await fetchJSON(`themes/${name}`); } diff --git a/lib/tsconfig.json b/lib/tsconfig.json index c1c4cee..9655111 100644 --- a/lib/tsconfig.json +++ b/lib/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "moduleResolution": "node", "module": "esnext", - "target": "es2017" + "target": "es2017", + "resolveJsonModule": true } } diff --git a/lib/utils/01.dynamic-imports.mjs b/lib/utils/01.dynamic-imports.mjs new file mode 100644 index 0000000..5a61e77 --- /dev/null +++ b/lib/utils/01.dynamic-imports.mjs @@ -0,0 +1,45 @@ +import grammars from "./grammars.mjs"; +import themes from "./themes.mjs"; +import { promises as fs } from "fs"; + +async function updateDynamicImports() { + const grammarCases = grammars + .map( + (g) => ` case "${g.name}": + return import("${g.importPath}");` + ) + .join("\n"); + + const themeCases = themes + .map( + (name) => ` case "${name}": + return import("../themes/${name}.json");` + ) + .join("\n"); + + const content = `// generated by lib/utils/01.dynamic-imports.mjs + +export async function importGrammar(langId: string): Promise<any> { + switch (langId) { +${grammarCases} + default: + throw new Error("no grammar for " + langId); + } +} + +export async function importTheme(name: string): Promise<any> { + switch (name) { +${themeCases} + default: + throw new Error("no theme for " + name); + } +} +`; + await fs.writeFile("./src/dynamic-imports.ts", content, "utf8"); +} + +await updateDynamicImports(); + +console.log("Updated lib/src/dynamic-imports.ts"); + +// console.table(grammars.map((g) => ({ name: g.name, size: g.byteSize }))); diff --git a/lib/utils/02.language-data.mjs b/lib/utils/02.language-data.mjs new file mode 100644 index 0000000..0bdb301 --- /dev/null +++ b/lib/utils/02.language-data.mjs @@ -0,0 +1,107 @@ +import { promises as fs } from "fs"; +import grammars from "./grammars.mjs"; + +async function updateLibData() { + const aliasOrIdToScope = {}; + // languages.forEach((language) => { + // aliasOrIdToScope[language.id] = language.scopeName; + // (language.aliases || []).forEach((alias) => { + // aliasOrIdToScope[alias] = language.scopeName; + // }); + // }); + + grammars.forEach((g) => { + aliasOrIdToScope[g.name] = g.scopeName; + (g.aliases || []).forEach((alias) => { + aliasOrIdToScope[alias] = g.scopeName; + }); + }); + + const scopeToLanguageData = {}; + // languages.forEach((language) => { + // scopeToLanguageData[language.scopeName] = { + // id: language.id, + // path: language.path, + // embeddedScopes: getDependentLangs(language.id).map((l) => l.scopeName), + // }; + // }); + grammars.forEach((g) => { + scopeToLanguageData[g.scopeName] = { + id: g.name, + embeddedScopes: getDependentLangs(g.embedded || []).map( + (l) => l.scopeName + ), + }; + }); + + const nameList = grammars.map((l) => `\n | "${l.name}"`).join(""); + const scopeList = grammars.map((l) => `\n | "${l.scopeName}"`).join(""); + + const LANG_NAMES = [...Object.keys(aliasOrIdToScope), "text", "terminal"]; + LANG_NAMES.sort(); + + const content = `// generated by lib/utils/02.languages-data.mjs + +export const LANG_NAMES = ${JSON.stringify(LANG_NAMES, null, 2)}; +type NamesTuple = typeof LANG_NAMES; +export type LanguageAlias = NamesTuple[number]; +export type LanguageName = ${nameList}; +export type ScopeName = ${scopeList}; + +export type LanguageData = { + id: LanguageName; + embeddedScopes: ScopeName[]; +}; + +export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = ${JSON.stringify( + aliasOrIdToScope, + null, + 2 + )}; +export const scopeToLanguageData: Record<ScopeName, LanguageData> = ${JSON.stringify( + scopeToLanguageData, + null, + 2 + )}; +`; + + await fs.writeFile("./src/language-data.ts", content, "utf8"); +} + +function getDependentLangs(embedded) { + // console.log(embedded); + return embedded + .map((name) => { + const r = grammars.find((g) => g.name === name); + // console.log(name, r); + return r; + }) + .filter(Boolean); + + // if (!language) { + // return []; + // } + + // const idsToExpand = [language.id]; + // const dependentLanguages = []; + + // while (idsToExpand.length) { + // const id = idsToExpand.shift(); + + // const alreadyExpanded = dependentLanguages.find((l) => l.id === id); + + // if (!alreadyExpanded) { + // const lang = languages.find((l) => l.id === id); + // dependentLanguages.unshift(lang); + // if (lang.embeddedLangs) { + // idsToExpand.push(...lang.embeddedLangs); + // } + // } + // } + + // return dependentLanguages.filter((l) => l.id !== langId); +} + +await updateLibData(); + +console.log("Updated lib/src/language-data.ts"); diff --git a/lib/utils/1.download-grammars.mjs b/lib/utils/1.download-grammars.mjs deleted file mode 100644 index f9f2b2d..0000000 --- a/lib/utils/1.download-grammars.mjs +++ /dev/null @@ -1,31 +0,0 @@ -import fs from "fs"; -import path from "path"; -import fetch from "node-fetch"; - -// download all jsons from https://github.com/shikijs/shiki/tree/main/packages/shiki/languages -// and write them to lib/grammars - -const url = `https://api.github.com/repos/shikijs/shiki/contents/packages/shiki/languages`; - -async function downloadGrammar(file) { - if (file.type === "file") { - console.log(`Downloading: ${file.name}`); - const filePath = path.join("grammars", file.name); - const fileResponse = await fetch(file.download_url); - const content = await fileResponse.text(); - fs.writeFileSync(filePath, content); - } -} - -async function downloadGrammars() { - try { - const response = await fetch(url); - const files = await response.json(); - await Promise.all(files.map(downloadGrammar)); - console.log("Folder download complete"); - } catch (error) { - console.error(`Error downloading folder: ${error.message}`); - } -} - -await downloadGrammars(); diff --git a/lib/utils/2.update-languages.mjs b/lib/utils/2.update-languages.mjs deleted file mode 100644 index 49a60f5..0000000 --- a/lib/utils/2.update-languages.mjs +++ /dev/null @@ -1,106 +0,0 @@ -// based on https://github.dev/shikijs/shiki/blob/99a9a3dcd2f2504d36b0672968fb05be53fd73cb/scripts/grammars/updateGrammarSourceFiles.ts -// License MIT Pine Wu -import fs from "fs"; -import { parse as jsoncParse } from "jsonc-parser"; - -console.log("Updating lib/util/languages.mjs..."); - -const languageAliases = { - bat: ["batch"], - berry: ["be"], - cadence: ["cdc"], - clojure: ["clj"], - codeql: ["ql"], - csharp: ["c#", "cs"], - docker: ["dockerfile"], - erlang: ["erl"], - fsharp: ["f#", "fs"], - haskell: ["hs"], - handlebars: ["hbs"], - ini: ["properties"], - javascript: ["js"], - jssm: ["fsl"], - kusto: ["kql"], - make: ["makefile"], - markdown: ["md"], - "objective-c": ["objc"], - powershell: ["ps", "ps1"], - pug: ["jade"], - python: ["py"], - raku: ["perl6"], - ruby: ["rb"], - rust: ["rs"], - "html-ruby-erb": ["erb"], - shaderlab: ["shader"], - shellscript: ["bash", "console", "sh", "shell", "zsh"], - stylus: ["styl"], - typescript: ["ts"], - vb: ["cmd"], - viml: ["vim", "vimscript"], - wenyan: ["文言"], - yaml: ["yml"], -}; - -const idsToIgnore = ["jinja", "php-html", "cpp-macro"]; - -function getLanguagesData() { - const files = fs.readdirSync("./grammars"); - const ids = files - .map((f) => f.replace(".tmLanguage.json", "")) - .filter((id) => !idsToIgnore.includes(id)); - - const scopeToIdMap = {}; - const idToGrammar = {}; - ids.forEach((id) => { - const src = fs.readFileSync(`grammars/${id}.tmLanguage.json`, "utf-8"); - const errors = []; - const json = jsoncParse(src, errors, { allowTrailingComma: true }); - if (errors.length) throw errors[0]; - - idToGrammar[id] = { src, json }; - scopeToIdMap[json.scopeName] = id; - }); - - return ids.map((id) => { - const grammarSrc = idToGrammar[id].src; - const grammar = idToGrammar[id].json; - - const data = { - id, - scopeName: grammar.scopeName, - path: `${id}.tmLanguage.json`, - }; - - if (languageAliases[id]) { - data.aliases = languageAliases[id]; - } - - const embeddedLangs = new Set(); - const matches = [...grammarSrc.matchAll(/"include": "([^#$].+)"/g)]; - matches.forEach(([, captured]) => { - const scope = captured.split("#")[0]; - if ( - !grammar.scopeName || - (grammar.scopeName && scope !== grammar.scopeName) - ) { - if (scopeToIdMap[scope]) { - embeddedLangs.add(scopeToIdMap[scope]); - } - } - }); - - if (embeddedLangs.size > 0) { - data.embeddedLangs = [...embeddedLangs]; - } - - return data; - }); -} - -const result = getLanguagesData(); -const content = `// generated by lib/utils/2.update-languages.mjs -export const languages = ${JSON.stringify(result, null, 2)};`; - -fs.writeFileSync("./utils/languages.mjs", content, "utf8"); - -console.log("Done updating lib/util/languages.mjs"); diff --git a/lib/utils/3.update-languages-data.mjs b/lib/utils/3.update-languages-data.mjs deleted file mode 100644 index e154663..0000000 --- a/lib/utils/3.update-languages-data.mjs +++ /dev/null @@ -1,86 +0,0 @@ -import { languages } from "./languages.mjs"; -import { promises as fs } from "fs"; - -async function updateLibData() { - const aliasOrIdToScope = {}; - languages.forEach((language) => { - aliasOrIdToScope[language.id] = language.scopeName; - (language.aliases || []).forEach((alias) => { - aliasOrIdToScope[alias] = language.scopeName; - }); - }); - - const scopeToLanguageData = {}; - languages.forEach((language) => { - scopeToLanguageData[language.scopeName] = { - id: language.id, - path: language.path, - embeddedScopes: getDependentLangs(language.id).map((l) => l.scopeName), - }; - }); - - const nameList = languages.map((l) => `\n | "${l.id}"`).join(""); - const scopeList = languages.map((l) => `\n | "${l.scopeName}"`).join(""); - - const LANG_NAMES = [...Object.keys(aliasOrIdToScope), "text", "terminal"]; - LANG_NAMES.sort(); - - const content = `// generated by lib/utils/3.update-languages-data.mjs - -export const LANG_NAMES = ${JSON.stringify(LANG_NAMES, null, 2)}; -type NamesTuple = typeof LANG_NAMES; -export type LanguageAlias = NamesTuple[number]; -export type LanguageName = ${nameList}; -export type ScopeName = ${scopeList}; - -export type LanguageData = { - id: LanguageName; - path: string; - embeddedScopes: ScopeName[]; -}; - -export const aliasOrIdToScope: Record<LanguageAlias, ScopeName> = ${JSON.stringify( - aliasOrIdToScope, - null, - 2 - )}; -export const scopeToLanguageData: Record<ScopeName, LanguageData> = ${JSON.stringify( - scopeToLanguageData, - null, - 2 - )}; -`; - - await fs.writeFile("./src/language-data.ts", content, "utf8"); -} - -function getDependentLangs(langId) { - const language = languages.find((l) => l.id === langId); - - if (!language) { - return []; - } - - const idsToExpand = [language.id]; - const dependentLanguages = []; - - while (idsToExpand.length) { - const id = idsToExpand.shift(); - - const alreadyExpanded = dependentLanguages.find((l) => l.id === id); - - if (!alreadyExpanded) { - const lang = languages.find((l) => l.id === id); - dependentLanguages.unshift(lang); - if (lang.embeddedLangs) { - idsToExpand.push(...lang.embeddedLangs); - } - } - } - - return dependentLanguages.filter((l) => l.id !== langId); -} - -await updateLibData(); - -console.log("Updated lib/src/language-data.ts"); diff --git a/lib/utils/grammars.mjs b/lib/utils/grammars.mjs new file mode 100644 index 0000000..c4b2e97 --- /dev/null +++ b/lib/utils/grammars.mjs @@ -0,0 +1,17 @@ +import { grammars } from "tm-grammars"; + +const all = [ + ...grammars.map((g) => ({ + ...g, + importPath: `tm-grammars/grammars/${g.name}.json`, + })), + { + name: "txt", + scopeName: "source.txt", + importPath: "../tm-grammars/txt.json", + }, +]; + +all.sort((a, b) => a.name.localeCompare(b.name)); + +export default all; diff --git a/lib/utils/themes.mjs b/lib/utils/themes.mjs new file mode 100644 index 0000000..3b739a0 --- /dev/null +++ b/lib/utils/themes.mjs @@ -0,0 +1,9 @@ +import fs from "fs"; + +const files = fs.readdirSync("./themes"); + +const ids = files + .filter((f) => f.endsWith("json")) + .map((f) => f.replace(".json", "")); + +export default ids; diff --git a/lib/utils/update.mjs b/lib/utils/update.mjs index 8865344..e7d5b28 100644 --- a/lib/utils/update.mjs +++ b/lib/utils/update.mjs @@ -1,11 +1,2 @@ -// download grammars to lib/grammars -await import("./1.download-grammars.mjs"); - -// regenerate lib/utils/languages.mjs -await import("./2.update-languages.mjs"); - -// regenerate lib/src/language-data.ts -await import("./3.update-languages-data.mjs"); - -// regenerate web/public/grammars/*.json and web/public/themes/*.json -await import("./4.update-public-folder.mjs"); +await import("./01.dynamic-imports.mjs"); +await import("./02.language-data.mjs"); diff --git a/yarn.lock b/yarn.lock index b292fb3..e09d20c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2867,6 +2867,11 @@ tinyspy@^2.2.0: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.0.tgz#9dc04b072746520b432f77ea2c2d17933de5d6ce" integrity sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg== +tm-grammars@1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/tm-grammars/-/tm-grammars-1.16.2.tgz#a2311f5af90a2fa8293b9ce995d4b74114417956" + integrity sha512-XTxg7/sFP6pLrLaBap1tmzWQjozFUBpw2EC/uE3ElAEtxJtzVMUkPes+ixR5HC88wFdDyRxYilvIHRRCSDZ3nQ== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" From 477a1a2da117824d974d90afc65115dfb3f581ee Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo <pombopombopombo@gmail.com> Date: Fri, 2 Aug 2024 17:40:17 +0200 Subject: [PATCH 7/9] Update test --- web/app/layout.js | 2 +- web/app/test/page.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/app/layout.js b/web/app/layout.js index 851fe51..791603d 100644 --- a/web/app/layout.js +++ b/web/app/layout.js @@ -1,4 +1,4 @@ -import "@code-hike/lighter/themes/github-from-css.css"; +import "../../lib/themes/github-from-css.css"; export default function RootLayout({ children }) { return ( diff --git a/web/app/test/page.js b/web/app/test/page.js index e1bad5f..bb9c915 100644 --- a/web/app/test/page.js +++ b/web/app/test/page.js @@ -104,4 +104,4 @@ const terminalCode = ` │ ◠ ◡ ◠ Good luck out there, astronaut! 🚀 ╰─────╯`.trim(); -export const runtime = "edge"; +// export const runtime = "edge"; From b6ec951241429af717e97819d81012f594a167e9 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo <pombopombopombo@gmail.com> Date: Fri, 2 Aug 2024 17:45:55 +0200 Subject: [PATCH 8/9] v1.0.0-beta.0 --- .changeset/pre.json | 12 ++++++++++++ .changeset/seven-buckets-walk.md | 5 +++++ lib/CHANGELOG.md | 6 ++++++ lib/package.json | 2 +- test/CHANGELOG.md | 7 +++++++ test/package.json | 4 ++-- web/CHANGELOG.md | 7 +++++++ web/package.json | 4 ++-- 8 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 .changeset/pre.json create mode 100644 .changeset/seven-buckets-walk.md diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000..fe158d9 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,12 @@ +{ + "mode": "pre", + "tag": "beta", + "initialVersions": { + "@code-hike/lighter": "0.9.4", + "lighter-test": "0.1.47", + "lighter-web": "0.1.47" + }, + "changesets": [ + "seven-buckets-walk" + ] +} diff --git a/.changeset/seven-buckets-walk.md b/.changeset/seven-buckets-walk.md new file mode 100644 index 0000000..b785e27 --- /dev/null +++ b/.changeset/seven-buckets-walk.md @@ -0,0 +1,5 @@ +--- +"@code-hike/lighter": major +--- + +Drop CJS and use dynamic imports for grammars diff --git a/lib/CHANGELOG.md b/lib/CHANGELOG.md index 9453c66..0e67d99 100644 --- a/lib/CHANGELOG.md +++ b/lib/CHANGELOG.md @@ -1,5 +1,11 @@ # @code-hike/lighter +## 1.0.0-beta.0 + +### Major Changes + +- Drop CJS and use dynamic imports for grammars + ## 0.9.4 ### Patch Changes diff --git a/lib/package.json b/lib/package.json index 5847312..ad625e3 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,7 +1,7 @@ { "name": "@code-hike/lighter", "type": "module", - "version": "0.9.4", + "version": "1.0.0-beta.0", "description": "Code Hike's syntax highlighter", "license": "MIT", "exports": { diff --git a/test/CHANGELOG.md b/test/CHANGELOG.md index a10da7e..e719eb4 100644 --- a/test/CHANGELOG.md +++ b/test/CHANGELOG.md @@ -1,5 +1,12 @@ # lighter-test +## 0.1.48-beta.0 + +### Patch Changes + +- Updated dependencies + - @code-hike/lighter@1.0.0-beta.0 + ## 0.1.47 ### Patch Changes diff --git a/test/package.json b/test/package.json index 672e950..57a8df6 100644 --- a/test/package.json +++ b/test/package.json @@ -2,8 +2,8 @@ "name": "lighter-test", "private": true, "type": "module", - "version": "0.1.47", + "version": "0.1.48-beta.0", "dependencies": { - "@code-hike/lighter": "0.9.4" + "@code-hike/lighter": "1.0.0-beta.0" } } diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index e3de9fb..650dbfc 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -1,5 +1,12 @@ # lighter-web +## 0.1.48-beta.0 + +### Patch Changes + +- Updated dependencies + - @code-hike/lighter@1.0.0-beta.0 + ## 0.1.47 ### Patch Changes diff --git a/web/package.json b/web/package.json index 79882ee..20074f0 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "private": "true", - "version": "0.1.47", + "version": "0.1.48-beta.0", "name": "lighter-web", "scripts": { "dev": "next dev", @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@code-hike/lighter": "0.9.4", + "@code-hike/lighter": "1.0.0-beta.0", "next": "13.4.10", "react": "^18.2.0", "react-dom": "^18.2.0" From 8b41d671bca118108b59a53ffc380faa20cd1765 Mon Sep 17 00:00:00 2001 From: Rodrigo Pombo <pombopombopombo@gmail.com> Date: Mon, 5 Aug 2024 14:34:45 +0200 Subject: [PATCH 9/9] Add warning message when using network --- .changeset/pre.json | 12 ------------ .changeset/seven-buckets-walk.md | 5 ----- lib/CHANGELOG.md | 10 ++++++++++ lib/package.json | 2 +- lib/src/network.browser.ts | 3 +++ lib/src/network.ts | 4 +++- test/CHANGELOG.md | 8 ++++++++ test/package.json | 4 ++-- web/CHANGELOG.md | 8 ++++++++ web/package.json | 4 ++-- 10 files changed, 37 insertions(+), 23 deletions(-) delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/seven-buckets-walk.md diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index fe158d9..0000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "mode": "pre", - "tag": "beta", - "initialVersions": { - "@code-hike/lighter": "0.9.4", - "lighter-test": "0.1.47", - "lighter-web": "0.1.47" - }, - "changesets": [ - "seven-buckets-walk" - ] -} diff --git a/.changeset/seven-buckets-walk.md b/.changeset/seven-buckets-walk.md deleted file mode 100644 index b785e27..0000000 --- a/.changeset/seven-buckets-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@code-hike/lighter": major ---- - -Drop CJS and use dynamic imports for grammars diff --git a/lib/CHANGELOG.md b/lib/CHANGELOG.md index 0e67d99..327fd29 100644 --- a/lib/CHANGELOG.md +++ b/lib/CHANGELOG.md @@ -1,5 +1,15 @@ # @code-hike/lighter +## 1.0.0 + +### Major Changes + +- b6ec951: Drop CJS and use dynamic imports for grammars + +### Patch Changes + +- Add warning message when using network + ## 1.0.0-beta.0 ### Major Changes diff --git a/lib/package.json b/lib/package.json index ad625e3..4854201 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,7 +1,7 @@ { "name": "@code-hike/lighter", "type": "module", - "version": "1.0.0-beta.0", + "version": "1.0.0", "description": "Code Hike's syntax highlighter", "license": "MIT", "exports": { diff --git a/lib/src/network.browser.ts b/lib/src/network.browser.ts index 9f1e603..7b76d50 100644 --- a/lib/src/network.browser.ts +++ b/lib/src/network.browser.ts @@ -5,6 +5,9 @@ const LIGHTER_VERSION = "__LIGHTER_VERSION__"; // /grammars/${name}.json // /themes/${name}.json export async function fetchJSON(endpoint: string) { + console.warn( + `Code Hike warning: Fetching resource from network "${endpoint}"` + ); const r = await fetch(`https://lighter.codehike.org/${endpoint}.json`); // console.log(`https://lighter.codehike.org/${endpoint}.json`, r.status); if (!r.ok) { diff --git a/lib/src/network.ts b/lib/src/network.ts index 286c7c2..169907c 100644 --- a/lib/src/network.ts +++ b/lib/src/network.ts @@ -5,7 +5,9 @@ const LIGHTER_VERSION = "__LIGHTER_VERSION__"; // /grammars/${name}.json // /themes/${name}.json export async function fetchJSON(endpoint: string) { - console.warn("[WARN] Code Hike:", "fetching resource from network", endpoint); + console.warn( + `Code Hike warning: Fetching resource from network "${endpoint}"` + ); if (typeof fetch === "function") { // console.log(`using fetch`, `https://lighter.codehike.org/${endpoint}.json`); const r = await fetch(`https://lighter.codehike.org/${endpoint}.json`); diff --git a/test/CHANGELOG.md b/test/CHANGELOG.md index e719eb4..1070c04 100644 --- a/test/CHANGELOG.md +++ b/test/CHANGELOG.md @@ -1,5 +1,13 @@ # lighter-test +## 0.1.48 + +### Patch Changes + +- Updated dependencies +- Updated dependencies [b6ec951] + - @code-hike/lighter@1.0.0 + ## 0.1.48-beta.0 ### Patch Changes diff --git a/test/package.json b/test/package.json index 57a8df6..5bcb00b 100644 --- a/test/package.json +++ b/test/package.json @@ -2,8 +2,8 @@ "name": "lighter-test", "private": true, "type": "module", - "version": "0.1.48-beta.0", + "version": "0.1.48", "dependencies": { - "@code-hike/lighter": "1.0.0-beta.0" + "@code-hike/lighter": "1.0.0" } } diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index 650dbfc..056300d 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -1,5 +1,13 @@ # lighter-web +## 0.1.48 + +### Patch Changes + +- Updated dependencies +- Updated dependencies [b6ec951] + - @code-hike/lighter@1.0.0 + ## 0.1.48-beta.0 ### Patch Changes diff --git a/web/package.json b/web/package.json index 20074f0..70a0efd 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "private": "true", - "version": "0.1.48-beta.0", + "version": "0.1.48", "name": "lighter-web", "scripts": { "dev": "next dev", @@ -8,7 +8,7 @@ "start": "next start" }, "dependencies": { - "@code-hike/lighter": "1.0.0-beta.0", + "@code-hike/lighter": "1.0.0", "next": "13.4.10", "react": "^18.2.0", "react-dom": "^18.2.0"